300+ datasets. One score.
Most neighbourhood tools pick a handful of indicators and call it a score. CasaCanal ingests over 300 official Dutch government datasets — demographic, economic, spatial, environmental, educational, health, transport and amenity data — and processes them into a single, transparent Life Score for every postcode in the Netherlands.
Why data depth matters
Two postcodes in the same Amsterdam neighbourhood can score very differently on safety, school access or green space. Detecting that difference requires more than CBS averages — it requires combining dozens of indicators at PC6 (street) level, weighting them against national percentiles, and cross-referencing them across multiple official sources. That is what CasaCanal does for every one of the 470,000+ postcodes we score.
What we process
Below is a breakdown of every data category we ingest, the official Dutch source it comes from, and what it contributes to the Life Score.
| Data Category | Variables included | Source | Dimension powered |
|---|---|---|---|
| Demographics & Population | Total residents, age distribution (0-95+ in 5-year bands), household composition (single, with/without children), marital status, population density, urbanisation degree, address density | CBS (Centraal Bureau voor de Statistiek) | Social Life, Investment |
| Income & Wealth | Average income per resident and per income recipient, median household wealth, income distribution (lowest 40% / highest 20% share), households at or below social minimum (100% / 110% / 120% thresholds) | CBS | Investment, Social Life |
| Housing Stock | Total housing stock, owner-occupied vs rental split, housing corporation share, unoccupied percentage, average WOZ value, construction year (pre-2000 / post-2000), dwelling type (apartment, terraced, corner, semi-detached, detached) | CBS, Kadaster | Investment |
| WOZ Value Appreciation | Municipality-level WOZ values 2019-2024, year-on-year increase rate, normalised appreciation score relative to national percentile | Kadaster (Dutch Land Registry) | Investment |
| Safety & Crime | Crime incidents per 1,000 residents, latest reported crime count, month-on-month change percentage — mapped to PC6 level via buurt code | Politie (National Police) | Safety |
| Education — Schools | Primary school CITO test scores (standardised to 0-100 scale across 4 test types: IEP, ROUTE 8, AMN, Centrale Eindtoets), number of tested students, average distance from home to school, number of schools within 3km, school type and denomination | DUO (Dienst Uitvoering Onderwijs) | Education |
| Education — Historical Liveability | Leefbaarometer class score for every neighbourhood across 8 time points: 2002, 2008, 2012, 2014, 2016, 2018, 2020, 2022 — used as a long-run liveability signal and investment trajectory indicator | Leefbaarometer (Ministry of the Interior / BZK) | Education, Investment |
| Public Transport — Rail | Distance to nearest train station (total), distance to major intercity transfer station, distance to main road entrance | CBS transport data / NS (Nederlandse Spoorwegen) | Transport |
| Public Transport — Local Stops | Number of bus stops within 0.5km, 1km and 5km; number of tram/metro stops within 0.5km, 1km and 5km; number of other PT stops within 0.5km, 1km and 5km — mode-specific, radius-banded counts for every PC6 | NDOV (Nationaal Databestand Openbaar Vervoer) — GVB, RET, HTM and regional operators | Transport |
| Cycling Infrastructure | Total length of cycling network per municipality (km), used to weight cycling accessibility relative to postcode | CBS cycling infrastructure data | Transport |
| Health Access | Distance to nearest GP practice, number of GPs within 1km / 3km / 5km, availability of on-call GP service, distance to nearest pharmacy, distance to nearest hospital, hospitals within 5km / 10km / 20km, distance to nearest clinic, clinics within 5km / 10km / 20km | RIVM (Rijksinstituut voor Volksgezondheid en Milieu) | Health |
| Green Space & Nature | Number of parks within 300m and 500m, number of gardens within 500m, number of wooded areas within 500m, distance to nearest park (metres), distance to nearest green area (metres) | OpenStreetMap (OSM) geodata — parks, leisure areas, natural areas | Green Space |
| Amenity Density & Quality | For each of 16 amenity categories (bars, gyms, supermarkets, stores, shopping malls, restaurants/takeaway, night clubs, primary schools, secondary schools, doctors, dentists, laundromats, veterinary care, meal delivery, ATMs, museums, cinemas, theatres, libraries, swimming pools, fire stations): count within radius + average Google rating + average review count. Also: weighted counts of hospitals, pharmacies, train stations, bus stations, light rail stations, subway stations, transit stations, universities, parking, gas stations, movie theatres nearby. | Google Places API | Social Life, Health, Education, Transport |
| Labour Market & Business | Net labour participation rate, share of employees vs self-employed, number of business establishments by sector (agriculture, industry, trade/hospitality, transport/ICT, finance/real estate, professional services, government/education/care, culture/recreation), passenger cars per household, cars by surface area, motorcycles | CBS | Social Life, Investment |
| Energy Consumption | Average electricity consumption (total, and by dwelling type: apartment, terraced, corner, semi-detached, detached, rental, owner-occupied), average gas consumption (same breakdown), percentage of homes on district heating | CBS | Investment (used as proxy for housing quality and age) |
| Location Hierarchy & Coordinates | PC6 postcode to buurt (neighbourhood) to wijk (district) to gemeente (municipality) full mapping, latitude/longitude centroid for every postcode | CBS / Kadaster location registry | All (infrastructure for spatial joins) |
How we turn 300+ datasets into one score
Raw data arrives in different scales, units and geographies. Crime is reported at buurt level. Schools are located at postcode. Transport stops are GPS coordinates. Google Places data is aggregated at PC4. Our pipeline resolves all of these to PC6 — the six-character postcode that represents a single street segment — so that every indicator is comparable at the finest granularity the Dutch postcode system supports.
Each indicator is then normalised to a 0-1 scale using national-level percentiles. This means Amsterdam's transport advantage over a rural Frisian postcode is preserved in the score — we do not normalise within cities or municipalities, which would hide real differences. The result is that every postcode in the Netherlands is scored against the same national benchmark.
Normalised indicators are grouped into six dimensions (Safety, Transport, Education, Green Space, Health, Investment) and weighted into a composite Life Score. The full weighting methodology and normalisation methods used for each of the 300+ variables are documented on the methodology page.
Update frequency
Official Dutch datasets are updated on annual or quarterly cycles. CasaCanal follows these cycles.
| Source | Update frequency | Next expected update |
|---|---|---|
| CBS demographics, income, housing | Annual | 2025 data (2026 release) |
| Politie crime data | Annual | 2025 data (2026 release) |
| DUO school data | Annual | 2025-2026 school year |
| Leefbaarometer | Every 2 years | 2024 class scores (est. 2025) |
| Kadaster WOZ | Annual | 2025 data (2026 release) |
| NDOV transport stops | Quarterly | Rolling |
| Google Places | Quarterly | Rolling |
| OSM green space | Quarterly | Rolling |
CasaCanal does not use proprietary data, purchased lists or estimated values. Every score we publish is traceable to a publicly available Dutch government or open data source. If you have a question about a specific data point or want to understand how a score was calculated for your postcode, contact us.