Methodology and Motivation

Motivation

Before Numbeo was founded in April 2009, there was no accessible online database for free personal use that allowed users to easily compare the cost of living worldwide using structured data, indices, and advanced tools.

Other cost-of-living reports available at the time had several limitations: their data was often hidden behind paywalls or expensive subscriptions, their city coverage was limited, and they relied on manually collected data (a process inherently prone to errors), lacking transparency regarding reliability and accuracy. Factors such as seasonal price fluctuations (e.g., cheaper fruits and vegetables during the summer), price variations across different stores and restaurants, discrepancies in the pricing of similar items within the same store, temporary shortages, and human error made scaling such research difficult.

Pre-2009, available reports for free personal use only provided cost-of-living indices, which were insufficient for personal estimates due to variations in individual lifestyles. Factors such as family size, dining preferences (home-cooked meals vs. restaurants), housing choices (buying vs. renting, location), transportation methods, and spending habits on tobacco or alcohol all contributed to different living costs.

Just before the Great Recession (World Economic Crysis of 2007-2009), the founder of Numbeo noticed the impact of the real estate bubble on people's relocation decisions and believed there was a need for better tools to analyze these trends.

Consequently, Numbeo was established in 2009 to provide comprehensive information on consumer prices, allowing individuals to estimate their own expenses. Numbeo leverages crowdsourcing to collect reliable data and offers a platform for diverse systematic research using its extensive dataset.

 

Methodology

Data Collection and Processing

Numbeo's data collection process involves a combination of user-generated input and manually gathered information from reputable sources, such as supermarket websites, taxi company websites, and government institutions. The manually collected data from each source are entered twice a year and assigned a weight three times higher than user-generated input to enhance reliability.

Numbeo performs both automatic and semi-automatic filters (algorithms) to reduce noise in the collected data.

Numbeo restricts entries from specific IP addresses that are identified as spammers, including public proxies and Tor nodes.

Some of our automatic filters use a combination of user behavior and past data for the specific city/country to identify the likelihood of a certain input being spam. Currently, Numbeo uses more than 30 sophisticated filters to ensure data accuracy and integrity. The efficacy of each filter is enhanced as more inputs are included.

Numbeo's advanced filters are designed to eliminate bias in the algorithm development process. For example, one filter examines previously discarded data (classified as spam) and reintegrates it into the calculation if it finds that a significant subset of this data is statistically relevant. Another filter used to identify irregular spam data works as follows: if a certain item in a city has a high number of data classified as spam, and those data have a relatively small standard deviation from users who are not classified as spammers, it suggests that these data are probably misclassified, and the algorithm corrects the classification accordingly. These filters are crucial to ensure data accuracy and objectivity.

Due to the proprietary nature of Numbeo's filtering and algorithmic methods, we cannot disclose further details. However, in summary, Numbeo utilizes heuristic technology to maintain high data quality, and regularly removes statistically improbable or incorrect data using existing data and user behavior as a benchmark.

Data Archiving

Numbeo archives older data for historical reference. By default, data older than 12 months is removed. However, in popular cities, this timeframe may be reduced to 3 months. If fresh data is unavailable, Numbeo may use data up to 18 months old, but only if inflation indicators suggest price stability in that country.

Numbeo also incorporates user feedback to refine its methodology and improve data quality.

Aggregating Data for a Country

Country-level data is calculated using all entries from all cities within a country. This process differs from simply averaging all city data. Instead, Numbeo weighs each city based on the number of contributors. Since a country typically has more data points than an individual city, national-level data tends to be more robust.

Calculating Indexes

The definitions of the indexes used in the cost of living section can be found on our website under Cost of living indexes explanation page.

Numbeo's Cost of Living Index is based on estimated average expenses for a four-person family in a given city. Please note that the weights used in our calculation may change over time. Currently, the weights used are as follows:

    
MariaDB [livingcost]> select name, category, cpi_factor as cost_of_living_factor, rent_factor from item where cpi_factor > 0 or rent_factor > 0 order by category, relative_id;
+--------------------------------------------------------------------------+---------------------+-----------------------+-------------+
| name                                                                     | category            | cost_of_living_factor | rent_factor |
+--------------------------------------------------------------------------+---------------------+-----------------------+-------------+
| Price per Square Meter to Buy Apartment in City Centre                   | Buy Apartment Price |                  0.02 |           0 |
| Price per Square Meter to Buy Apartment Outside of Centre                | Buy Apartment Price |                  0.02 |           0 |
| 1 Pair of Jeans (Levis 501 Or Similar)                                   | Clothing And Shoes  |                  0.35 |           0 |
| 1 Summer Dress in a Chain Store (Zara, H&M, ...)                         | Clothing And Shoes  |                  0.35 |           0 |
| 1 Pair of Nike Running Shoes (Mid-Range)                                 | Clothing And Shoes  |                  0.35 |           0 |
| 1 Pair of Men Leather Business Shoes                                     | Clothing And Shoes  |                  0.35 |           0 |
| Milk (regular), (1 liter)                                                | Markets             |                    25 |           0 |
| Loaf of Fresh White Bread (500g)                                         | Markets             |                    31 |           0 |
| Rice (white), (1kg)                                                      | Markets             |                    14 |           0 |
| Eggs (regular) (12)                                                      | Markets             |                    20 |           0 |
| Local Cheese (1kg)                                                       | Markets             |                    12 |           0 |
| Chicken Fillets (1kg)                                                    | Markets             |                    15 |           0 |
| Beef Round (1kg) (or Equivalent Back Leg Red Meat)                       | Markets             |                    15 |           0 |
| Apples (1kg)                                                             | Markets             |                    31 |           0 |
| Banana (1kg)                                                             | Markets             |                    25 |           0 |
| Oranges (1kg)                                                            | Markets             |                    30 |           0 |
| Tomato (1kg)                                                             | Markets             |                    22 |           0 |
| Potato (1kg)                                                             | Markets             |                    24 |           0 |
| Onion (1kg)                                                              | Markets             |                    10 |           0 |
| Lettuce (1 head)                                                         | Markets             |                    18 |           0 |
| Water (1.5 liter bottle)                                                 | Markets             |                    30 |           0 |
| Bottle of Wine (Mid-Range)                                               | Markets             |                     4 |           0 |
| Domestic Beer (0.5 liter bottle)                                         | Markets             |                     6 |           0 |
| Imported Beer (0.33 liter bottle)                                        | Markets             |                     6 |           0 |
| Cigarettes 20 Pack (Marlboro)                                            | Markets             |                    15 |           0 |
| Apartment (1 bedroom) in City Centre                                     | Rent Per Month      |                  0.03 |        0.25 |
| Apartment (1 bedroom) Outside of Centre                                  | Rent Per Month      |                  0.03 |        0.25 |
| Apartment (3 bedrooms) in City Centre                                    | Rent Per Month      |                  0.03 |        0.25 |
| Apartment (3 bedrooms) Outside of Centre                                 | Rent Per Month      |                  0.03 |        0.25 |
| Meal, Inexpensive Restaurant                                             | Restaurants         |                    16 |           0 |
| Meal for 2 People, Mid-range Restaurant, Three-course                    | Restaurants         |                     4 |           0 |
| McMeal at McDonalds (or Equivalent Combo Meal)                           | Restaurants         |                    12 |           0 |
| Domestic Beer (0.5 liter draught)                                        | Restaurants         |                     6 |           0 |
| Imported Beer (0.33 liter bottle)                                        | Restaurants         |                     6 |           0 |
| Cappuccino (regular)                                                     | Restaurants         |                    30 |           0 |
| Coke/Pepsi (0.33 liter bottle)                                           | Restaurants         |                    10 |           0 |
| Water (0.33 liter bottle)                                                | Restaurants         |                    10 |           0 |
| Fitness Club, Monthly Fee for 1 Adult                                    | Sports And Leisure  |                   2.3 |           0 |
| Tennis Court Rent (1 Hour on Weekend)                                    | Sports And Leisure  |                     3 |           0 |
| Cinema, International Release, 1 Seat                                    | Sports And Leisure  |                     6 |           0 |
| One-way Ticket (Local Transport)                                         | Transportation      |                    20 |           0 |
| Monthly Pass (Regular Price)                                             | Transportation      |                   1.5 |           0 |
| Taxi Start (Normal Tariff)                                               | Transportation      |                     5 |           0 |
| Taxi 1km (Normal Tariff)                                                 | Transportation      |                    20 |           0 |
| Taxi 1hour Waiting (Normal Tariff)                                       | Transportation      |                   0.7 |           0 |
| Gasoline (1 liter)                                                       | Transportation      |                    60 |           0 |
| Volkswagen Golf 1.4 90 KW Trendline (Or Equivalent New Car)              | Transportation      |                0.0035 |           0 |
| Toyota Corolla Sedan 1.6l 97kW Comfort (Or Equivalent New Car)           | Transportation      |                0.0035 |           0 |
| Basic (Electricity, Heating, Cooling, Water, Garbage) for 85m2 Apartment | Utilities (Monthly) |                     1 |           0 |
| Mobile Phone Monthly Plan with Calls and 10GB+ Data                      | Utilities (Monthly) |                     4 |           0 |
| Internet (60 Mbps or More, Unlimited Data, Cable/ADSL)                   | Utilities (Monthly) |                     1 |           0 |
+--------------------------------------------------------------------------+---------------------+-----------------------+-------------+

Weights for Cost of Living Plus Rent Index are calculated by summing cost_of_living_factor and rent_factor from the table above. The prices are multiplied by those weights, and the resulting number is devided by the corresponding value for New York City and multiplied by 100; therefore, New York City has always the index 100.

To calculate Local Purchasing Power Index, Numbeo determines the cost of a "basket" of typical consumer goods and services, including rent, in both locations (using the weights above). This basket represents the average expenses for a four person family living in that city, including rent. Next, we divide the average net salary by the cost of this weighted basket for both the city in question and for the New York City. This division reveals how many "baskets" an average salary can purchase in each location. Finally, Numbeo divides the result for the city being analyzed by the result for the New York City. This final calculation produces the Local Purchasing Power Index. An index of 100 indicates that purchasing power is equivalent to the New York City, while values above 100 suggest higher local purchasing power, and values below 100 signify lower local purchasing power.

Currencies

Numbeo updates its currency exchange rates almost hourly using multiple feeds, including data from the European Central Bank. For each user input, Numbeo stores the value in EUR, USD, and the currency of the input, using the current exchange rate. When calculating averages, Numbeo chooses currency to use based on currency stability and the predominant currency in the country, in order to minimize errors in cross-currency comparisons.

To display historical data, Numbeo uses monthly historical exchange rates to calculate data based on the mid-month currency exchange rate. If end-users choose a custom display currency for showing historical data in a given year, the mid-year currency exchange rate is used to calculate the displayed data.

Taxes

Numbeo collects data with included sales taxes like GST and VAT. When it comes to average salary data, it collects the value after income taxes. These figures are utilized directly to estimate local purchasing power.

Data Archiving Policy

Numbeo utilizes an adaptive archive policy for its data:

To calculate and display latest prices, in most cases, we use data that is no more than 12 months old. However, In instances where we have a low number of contributors, we may utilize older data to present information, as it is preferable to provide even data that is 24 months old than to have no data at all. Other sections on the website that utilize the same data set follow the same data archiving policy.

It is important to note that some other sections of the website may utilize different data archiving policies.

Archived data is available through Numbeo's API (Application Programming Interface), allowing developers and researchers to retrieve historical information.

Cartographic Policy

Our cartographic policy is of portraying the world from a de facto point of view; that is, to portray to the best of our judgment the current reality. It's important to note that some of our partners may have different cartographic policies, and these differences may be reflected in the maps used on our website.

We currently use the following services for geolocation data and maps: Geoapify and OpenStreetMap.

Data Privacy

We collect and process personal information from our users, such as email addresses, in order to provide them with a personalized experience and to improve our services. We also collect non-personal information such as IP addresses and browser types, which are used for statistical purposes and to help diagnose problems with our servers.

We store all personal information on secure servers and take reasonable precautions to protect it from unauthorized access, disclosure, alteration, or destruction. We do not sell or rent personal information to third parties, and we only share it with third-party service providers who need the information to perform services on our behalf and who are bound by confidentiality agreements.

We may also disclose personal information if we are required to do so by law or in response to a court order or other legal process.

We provide users with the ability to update or delete their personal information, and we honor all requests to do so. We also provide users with the ability to opt out of receiving promotional communications from us.

Overall, Numbeo is committed to protecting the privacy of our users and complying with all applicable privacy laws and regulations. We regularly review and update our privacy policies and practices to ensure that we are providing the highest level of privacy protection possible.

More details about our privacy policy can be found here.

More Information

If you need more information, please Contact Us.