Transparent housing market data
kvadrat.house is an independent dashboard that pulls the official Macedonian housing market data into one place - no estimates, and nothing scraped from a listing site.
The official data exists - it is just buried
Registered sales live in the Cadastre's Registry of Prices and Rents, but they are buried in quarterly PDFs with no usable text layer - you cannot search them and you cannot copy out of them. Listing sites, meanwhile, show asking prices rather than contracts that closed. This project pulls the figures out of those PDFs, ties them to the long-run NBRM/BIS index, and presents them readably in both languages, with a page reference for every value.
Only official sources
- Agency for Real Estate CadastreRegistry of Prices and Rents · quarterly and annual bulletins
- National Bank of MacedoniaQuarterly house price index for the city of Skopje, compiled from apartments advertised for sale
- Bank for International SettlementsInternational residential property price database
- FRED · St. Louis FedFree API mirror of the BIS series (QMKN628BIS, QMKN368BIS, QMKR628BIS)
- State Statistical OfficeAverage wages, building permits, dwelling completions
All values are pulled directly from these sources; nothing is scraped from a listing site.
What comes from contracts, and what from adverts
Worth stating plainly, because the difference matters. The per-municipality prices, the sale counts and the market value all come from the Registry of Prices and Rents - those are contracts that closed. The house price index (charts 1, 2 and 4) is produced by the NBRM, but its own footnote says it is built from apartments advertised for sale in the city of Skopje. So: an official central-bank statistic, but compiled from asking prices rather than contracts. That is why the index is used for movement over time, while every euro level on this site comes from the Cadastre.
How often the data refreshes
- BIS / NBRM indexWeekly (cron, GitHub Actions)The script checks for new quarterly values and opens a pull request if anything changed. BIS publishes one to two quarters behind.
- Cadastre (quarterly)Quarterly, by handThe only source still done manually. The PDFs carry no usable text layer, so the tables are read off rendered pages. Updated roughly 4-6 weeks after the quarter closes.
- DZS (wages)Monthly, automatedAverage net wage from MakStat table 175 via the PXWeb API. Used on the Affordability page to set wages against prices.
- NBRM (mortgage rate)Monthly, automatedWeighted rate on newly granted housing loans in denars with a currency clause - the dominant mortgage type here. Drives the 30-year mortgage calculator.
- Regional comparisonWeekly, automatedBIS indices for Serbia, Bulgaria, Croatia, Greece, Romania and Slovenia, through the same source as the Skopje index.
How it's built
- Next.js 16 + React 19
- Tailwind CSS 4 + Base UI (coss)
- Recharts (charts)
- next-intl (i18n)
- TypeScript
- Vercel (hosting)
Every value on this site has a clear source: a reference down to the exact PDF page or the FRED/NBRM series it was extracted from.
Andrej Acevski
Found something off?
If you notice an inaccuracy in any number, have an idea for a new chart, or think another source should be added, reach out directly via LinkedIn.
