Building a free home value estimator for 81 Turkish provinces with central bank data

2026-11-04来源 dev.toEnglish

Ask any homeowner in Turkey what their flat is worth and you will usually get a number someone heard from a neighbour. Listing sites show asking prices, which are often wishful. Official statistics exist, but they are spread across several publications and few people know how to read them.

We run Acilden, a property listing site, and we wanted a tool that answers "what is my home worth?" for any province in Turkey without asking the user to sign up. The result is Evim ne eder? (What is my home worth?). This post is about the data behind it and a few decisions that turned out to matter more than the code.

The data sources

There is no single public dataset that gives you a reliable price per square metre for every province. We ended up combining four:

Source What it gives Granularity Frequency
TCMB housing unit price TL per m² for sale province quarterly
TCMB housing unit rent TL per m² per month province quarterly
TCMB House Price Index and new-tenant rent index index value region (NUTS-2, e.g. TR41 = Bursa, Eskişehir, Bilecik) monthly
TÜİK house sales number of sales, total and mortgaged province monthly

The Central Bank of the Republic of Turkey (TCMB) publishes these through its EVDS data service. Two things surprised us:

  1. Province-level unit prices are not available for every province every quarter. In the third quarter of 2026, 76 of the 81 provinces had a published unit price. The UI has to say so, instead of silently falling back to something else.
  2. The monthly index is regional, not provincial. The House Price Index for TR41 moves Bursa, Eskişehir and Bilecik together. It is great for showing a trend, but you cannot use it to say one province got more expensive than its neighbour.

We fetch the series on a schedule with a cron job and store them, so a page view never waits on an external API.

From statistics to one home

A province average is not a valuation. A 20-year-old ground-floor flat and a new flat with a sea view in the same district can differ by a lot. So the tool asks for the things that move the price: property type, province and district, address on a map, size in m², number of rooms, building age, and a checklist of features.

Then it does two things:

  • It starts from the official unit price for the province and adjusts it for the property's characteristics.
  • Where we have enough real listings nearby, it compares against them as well. Where we don't, it says that the estimate leans on the official average.

Show a range, not a number

The most important product decision: the result is three scenarios, not one figure. A single number looks precise and is almost always wrong. A range tells the owner what a quick sale, a typical sale and an optimistic sale might look like, and it is honest about the uncertainty.

Rent and gross yield

Because TCMB also publishes rent per m², we can show rental value and a gross yield next to the sale estimate. The formula is deliberately simple and stated on the page:

<?php // Gross rental yield from the official per-m² series. // $unitRent: TL per m² per month, $unitPrice: TL per m² function grossYield(float $unitRent, float $unitPrice): float { return ($unitRent * 12) / $unitPrice; // e.g. 220.8 * 12 / 42675 ≈ 0.0621 } // Years for rent to repay the price, ignoring tax, fees, vacancy and maintenance. function paybackYears(float $unitRent, float $unitPrice): float { return $unitPrice / ($unitRent * 12); // ≈ 16.1 years for Bursa, Q3 2026 } 

For Bursa in the third quarter of 2026 that gives 42,675 TL/m², 220.8 TL/m² monthly rent and a gross yield of about 6.21%. Each province has its own page with these figures and how it ranks against the others, for example Bursa.

We print the caveats right under the number: gross yield ignores tax, building fees, empty months and maintenance, and all figures are nominal, not inflation-adjusted. With annual price changes above 20%, leaving that out would mislead people.

Things we would tell anyone building something similar

  • Label every number with its source and period. "42,675 TL/m², TCMB, 2026-Q3" is useful. "42,675 TL/m²" on its own is not.
  • Do not mix granularities silently. A regional index and a provincial price answer different questions.
  • Missing data is information. If a province has no series this quarter, say it.
  • Asking prices are not sale prices. If you use listing data, say so on the page.
  • No sign-up wall. People want an answer first, so the tool works without an account.

The tool is free and works for all 81 provinces: acilden.com/evim-ne-eder.php. The interface is in Turkish. If you work with official housing data in your country, I'd like to hear how you dealt with regional and provincial series that don't line up.

原文:https://www.a8q9.cn/en/article/building-a-free-home-value-estimator-for-81-turkish-provinces-with-central-bank--11964e.html

相关文章