NUMBEO

Methodology and motivation for Numbeo.com

Motivation

Before Numbeo was created (April 2009), no other free database about a cost of living (with structured data and indices) existed.

Other cost of living reports had the data behind their research hidden or expensive to purchase. Their research was very limited in the number of cities included. It is difficult to scale up without a significant increase in expenses since they relied on manually collected data. Also, there were no insight about the error rate in their manually collected data. Manual collection of cost of living data is error prone:

Reports available before the year 2009 usually include 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 apartment 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.). Manually collected data from established sources are reentered twice per year.

We perform 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 recent time span, the value 20 is discarded as a noise (as it value is more than 4 times than the average value)

Another filter discards ¼ (one quarter) of lowest and highest inputs as borderline cases have a higher probability to be incorrect. Out of remaining entries, the lowest, highest and mean value are calculated and displayed.

There are more sophisticated filters in use. The filters are performing better when there are more inputs.

One of the advanced filters tries to eliminate bad training data. It digs into discarded data (spam data) and if notices irregularities, it moves them back into the calculation.

To summarize our filters, Numbeo uses heuristic technology to get the data quality. Using the existing data Numbeo periodically discards data which most likely are incorrect statistically.

Numbeo also archives the values of old data (our default data deprecation policy is 12 months, although we use data up to 18 months old when we don't have fresh data and indicators suggest that inflation is low in a particular country). The values of old data are preserved to be used for historical purposes.

Aggregating data for a country

To aggregate data for a country, we use all entries (for all cities) to calculate country average data. Note that it is different from the aggregating calculated data for all cities in that country (for which we have data in the database). Due to underlying formulas used (discarding top and bottom 25% of the data before calculating display values), 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 anomaly appears due to underlying formulas used. So, in calculations for the country, we are weighting a city by the number of contributors. Since they are the 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.

Indices

The definition of indices used in cost of living section of the website is available here.

Currencies

We do use multiple currency feeds including European Central Bank feed to update our internal currency exchange rates almost every hour. For each entry of the contributors, we do save in our database the value in EUR, USD and currency of the input (using current exchange rate). When calculating averages, we do reuse one of those entries based on currency stability and predominant currency in the country to try to minimize cross currency comparison errors.

To show historical data, we do use monthly historical exchange rates to calculate data (mid-month currency exchange rate). If end users choose a custom display currency for displaying historical data in a year, the mid-year currency exchange rate is used to calculate displayed data.

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

Cost of Living Index is built based on our best guess of average expenses in a given city for a four-person family. Weights are subject to change over time. But since the methodology is not hidden, as the moment of writing these weights 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 |
+--------------------------------------------------------------------------+---------------------+-----------------------+-------------+
| 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 Breasts (Boneless, Skinless), (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 |        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 People, Mid-range Restaurant, Three-course                    | Restaurants         |                   3.5 |           0 |
| McMeal at McDonalds (or Equivalent Combo Meal)                           | 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 |
| 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 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 |
| 1 min. of Prepaid Mobile Tariff Local (No Discounts or Plans)            | Utilities (Monthly) |                   320 |           0 |
| Internet (60 Mbps or More, Unlimited Data, Cable/ADSL)                   | Utilities (Monthly) |                     1 |           0 |
+--------------------------------------------------------------------------+---------------------+-----------------------+-------------+
      Local_Puchasing_Power_Index = (Average_Disposable_Salary(This_City) / BasketConsumerPlusRent(This_City)) / (Average_Disposable_Salary(New_York) / BasketConsumerPlusRent(New_York))
      
      BasketConsumerPlusRent(City) = sum_of (Price_in_the_city * (cost_of_living_factor + rent_factor))
    

Data Archiving Policy

Cost of living section uses data entered in the last 12 months ago (in a special case, when there are very low number of entries in a city and the indicators suggest that inflation in a country is low, we use entries as old as 18 months because we think that those data might not be changed if no one did edit existing data). Other sections which use the same data set uses the same data archiving policy.

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

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. Our partners might have different cartographic policy which could be reflected in software at our website.

More Information

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