Numbeo

Methodology and motivation for Numbeo.com

 

Motivation

Before Numbeo was created there were several other reports about cost of living indices, i.e. reports from Mercer, UBS and Economist. However, in those reports the data behind the research was usually hidden or expensive to purchase. There were no guarantees that their data are correct. Their research was very limited in the number of cities included in the research and is difficult to scale without significant increase in expenses. Also, there were no insight about the error rate in their manually collected data. Manual collection of cost of living data is error prone:

Some of those reports publishes just an index, which is not enough for a personal estimate since a person is not an average person due to different lifestyles such as:

Other available cost of living sources didn't provide a systematic way to extract custom indices. Numbeo provides a world-class software for extracting various economic indicators for free (i.e. using our "Basket of goods and services" tool).

Before the Great Recession (World Economic Crysis of 2007-2009) price of properties worldwide tended to look like a crazy to the founder of this website. The price of a small flat in a third world country he currently lives in was same as 310 ultra modern TFT monitors at that time. The wild speculation in property prices suggested that people really needed a tool for a speculation or to turn their speculation down.

So, that's how Numbeo was born. Numbeo :

Methodology

Collecting and processing data

To collect data Numbeo relies on user inputs and manually collected data from authoritative sources (websites of supermarkets, taxi company websites, governmental institutions, newspaper articles, other surveys, etc.). There are automatic and semi-automatic filters to filter out noise data. The simplest filter is working as follows : if, for a particular price in a city, values are 5, 6, 20 and 4 in a reasonable time span, the value 20 is discarded as a noise.

Afterwards, ¼ (one quarter) of lowest and highest inputs are discarded as borderline cases. Out of remaining entries, mean value is calculated and lowest and highest number is displayed.

There are more sophisticated filters in use. The filters are performing better when there are more inputs. One of those is to prevent bad training of data, it digs into discarded data (spam data) and if notices irregularities, it moves them back into the calculation.

To put it briefly, Numbeo uses heuristic technology. Using the existing data Numbeo periodically discards data which most likely are incorrect statistically. Numbeo also archives the values of old data (currently data which are more than 18 months old). The values of old data are preserved to be used for historical purposes. Due to higher number of inputs for a country than for a city, data showed on a country level in general contains lower noise than data showed on a city level.

Currencies
We do use multiple currency feeds including European Central Bank feed to update our internal currency exchange rates almost every hour. We save in our database EUR, USD and local currency values on the day they are entered. When calculating averages, we do reuse one of those entries based on currency stability history and predominant currency in the country to try to minimize cross currency comparison errors.
Taxes
Our data about prices shall have GST and VAT included. Our average salary data shall contain the value after income taxes. So we can use these data directly to estimate local purchases power.

Calculating indices

Numbeo indices are a best guess of relative average expenses in a given city. Weights are subject of change over time. But since methodology is not hidden, as the moment of writing these weights are as follows :

mysql> select name, category, cpi_factor, rent_factor from item order by category, relative_id;
+-----------------------------------------------------------------+------------------------+------------+-------------+
| name                                                            | category               | cpi_factor | rent_factor |
+-----------------------------------------------------------------+------------------------+------------+-------------+
| Price per Square Meter to Buy Apartment in City Centre          | Buy Apartment Price    |          0 |           0 |
| Price per Square Meter to Buy Apartment Outside of Centre       | Buy Apartment Price    |          0 |           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 Shoes                                            | Clothing And Shoes     |       0.35 |           0 |
| 1 Pair of Men Leather 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                |         16 |           0 |
| Eggs (12)                                                       | Markets                |         28 |           0 |
| Local Cheese (1kg)                                              | Markets                |         13 |           0 |
| Chicken Breasts (Boneless, Skinless), (1kg)                     | Markets                |         30 |           0 |
| Apples (1kg)                                                    | Markets                |         36 |           0 |
| Oranges (1kg)                                                   | Markets                |         36 |           0 |
| Tomato (1kg)                                                    | Markets                |         24 |           0 |
| Potato (1kg)                                                    | Markets                |         30 |           0 |
| Lettuce (1 head)                                                | Markets                |       16.5 |           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 |
| Pack of Cigarettes (Marlboro)                                   | Markets                |         15 |           0 |
| Apartment (1 bedroom) in City Centre                            | Rent Per Month         |          0 |        0.25 |
| Apartment (1 bedroom) Outside of Centre                         | Rent Per Month         |          0 |        0.25 |
| Apartment (3 bedrooms) in City Centre                           | Rent Per Month         |          0 |        0.25 |
| Apartment (3 bedrooms) Outside of Centre                        | Rent Per Month         |          0 |        0.25 |
| Meal, Inexpensive Restaurant                                    | Restaurants            |         16 |           0 |
| Meal for 2, Mid-range Restaurant, Three-course                  | Restaurants            |        3.5 |           0 |
| Combo Meal at McDonalds or Similar                              | Restaurants            |          6 |           0 |
| Domestic Beer (0.5 liter draught)                               | Restaurants            |          5 |           0 |
| Imported Beer (0.33 liter bottle)                               | Restaurants            |          5 |           0 |
| Cappuccino (regular)                                            | Restaurants            |         15 |           0 |
| Coke/Pepsi (0.33 liter bottle)                                  | Restaurants            |          6 |           0 |
| Water (0.33 liter bottle)                                       | Restaurants            |          6 |           0 |
| Average Monthly Disposable Salary (After Tax)                   | Salaries And Financing |          0 |           0 |
| Mortgage Interest Rate in Percentages (%), Yearly               | Salaries And Financing |          0 |           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 |           0 |
| Gasoline (1 liter)                                              | Transportation         |         60 |           0 |
| Volkswagen Golf 1.4 90 KW Trendline (Or Equivalent New Car)     | Transportation         |     0.0065 |           0 |
| Basic (Electricity, Heating, Water, Garbage) for 85m2 Apartment | Utilities (Monthly)    |          1 |           0 |
| 1 min. of Prepaid Mobile Tariff Local (No Discounts or Plans)   | Utilities (Monthly)    |        320 |           0 |
| Internet (6 Mbps, Unlimited Data, Cable/ADSL)                   | Utilities (Monthly)    |          1 |           0 |
+-----------------------------------------------------------------+------------------------+------------+-------------+
49 rows in set (0.00 sec)

    

      Local_Puchasing_Power_Index = (Average_Disposable_Salary(This_City) / BasketConsumerPlusRent(This_City)) / (Average_Disposable_Salary(New_York) / BasketConsumerPlusRent(New_York))
      
      BasketConsumerPlusRent(City) = Average_monthly_disposable_income(City) / sum_of (Price_in_the_city * (cpi_factor + rent_factor))
    

To calculate indices for a country, we use all entries (for all cities) to calculate country average. Note that it is different from the average of indices for all cities in that country we have in the database. Due to underlying formulas used (discarding top and bottom 25% of the data before calculating the median value), sometimes low and high price of an item in one city might look not on par with low and high values of that country - that is due to underlying formulas used in calculations. So, in country average prices and indices calculations, we are weighting city by number of contributors.

Data deprecation policy
Cost of living section uses data up to 18 months ago (and other sections which uses the same data set), since for some smaller cities/countries with lower number of Internet users there are not so many contributions as for London, UK, for example. In special cases, when there are very low number of entries for a given item, we use entries as old as 24 months because we think that those data might not be changed if no one did edit existing data.

Note that some other sections of the website uses different data deprecation policies. Each month, old data are moved to archives and can be pulled with our API.

More Information

If you need more information about the calculations, please Contact Us.