Compare Housing Costs & Affordability
compare_housingHousing cost and affordability across countries, built for remote workers. Returns monthly rent plus TWO ratios that together answer the real question: rent as a share of the LOCAL median wage (are locals priced out?) and as a share of YOUR remote income (can you afford it?). The gap between them - arbitrageGap, in percentage points - is the single number saying whether a place is cheap FOR YOU; pass remoteIncome to get it. Also returns price-to-income and price-to-rent as a percentage of each country's OWN long-run average (OECD), and mortgage rates (ECB, euro area only; absent elsewhere rather than estimated). IMPORTANT: those affordability percentages compare a country with its own history, NOT with other countries - 127 for Spain means 27% less affordable than Spain's norm, not 27% dearer than Germany. Every rent carries rentBasis: 'measured' where a real Eurostat city figure exists (Spain, Portugal, Switzerland only) or 'modelled' from the site's price basket, which understates housing by up to ~40% where housing has decoupled from the general price level. National averages; not financial advice.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'affordability' = rent as a share of your remote income, lowest first (falls back to raw rent when no income given); 'rent' = monthly rent; 'localBurden' = rent as a share of the local median wage; 'priceToIncome' = price-to-income vs long-run average. | affordability |
| flatM2 | No | Flat size in m² used to convert measured per-m² rents. Default 70; echoed back so the assumption is visible. | |
| country | No | Optional ISO 3166-1 alpha-2 code; echoes that country's row and rank. | |
| remoteIncome | No | Your monthly income in USD, earned remotely. Enables rentPctOfYourIncome and arbitrageGap; omit for the local-only view. | |
| maxRentPctOfIncome | No | Optional filter: keep only countries where rent is at most this percentage of your remote income. Requires remoteIncome. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | No | ||
| rows | No | ||
| focus | No | ||
| updated | No | ||
| excluded | No | ||
| attribution | No |