Methodology
How every neighbourhood gets its score
300+ official Dutch data sources. Normalised scores. Street-level precision. No black boxes.
THE 1–20 SCALE
Every indicator and every dimension score uses the same 1–20 scale — normalized at country level, not city level. A transport score of 17 in Amsterdam means the same level of connectivity as a score of 17 in Utrecht, relative to the entire Netherlands.
NORMALIZATION
Raw data arrives in different units — crime rates, distances, percentages, counts. We apply normalization logic that fits what each indicator actually measures.
More is better
Higher raw value maps to a higher score. Used where abundance signals quality.
e.g. number of transit stops within 1 kmLess is better
Inverted scale — a lower raw value produces a higher score.
e.g. crime incidents per 1,000 residents, benefit dependency rateProximity
Closer to a facility → higher score. Reflects real-world accessibility.
e.g. nearest GP, supermarket, pharmacyProportional mapping
Percentage values mapped proportionally onto the 1–20 range.
e.g. housing occupancy rate, WOZ increase rateCountry-level percentile
Position within the full national distribution using P50 and P90 thresholds — cities like Amsterdam score in absolute terms, not relative to local demand.
e.g. transport connectivity composite, green density indexSIX DIMENSIONS
Social Life
Venues, bars, cafes and restaurants weighted by quality signals and review density
Transportation
NS train frequency, GVB/RET stops, motorway proximity and cycling infrastructure
Education
DUO school ratings, proximity to schools, weighted by CITO score performance
Green
Parks, gardens, forest areas, pet-friendly amenities and environmental quality
Health
GP, dentist, physio and hospital access weighted by proximity and density
Investment
WOZ appreciation, population growth patterns and area stability signals
HOW SCORES ARE BUILT
Each postcode goes through a deterministic pipeline — the same steps, every time, across all 470K+ postal codes.
Raw data ingestion
Official sources (CBS, Politie, NS, DUO, RIVM, Kadaster) are loaded and merged into a normalised feature set per PC6 postcode.
Per-indicator normalization
Each indicator is transformed using the logic that fits its nature: higher-is-better, lower-is-better, distance-based, percentage, or country-level percentile.
PCA per dimension
For each of the six dimensions, a separate PCA space is constructed. An ideal point (median/mean profile) is defined in that space.
Distance → rank → score
Each postcode's distance to the ideal point is computed, ranked nationally, and converted to a score using a defined curve (typically 60–99 range), with deterministic jitter applied to avoid ties.
Post-score alignment
Cluster and breakdown scores are reconciled for consistency. An optional Leefbarometer calibration layer can be applied as a final step.
OFFICIAL SOURCES ONLY
We don't scrape. We use the same data the Dutch government uses.
Data is validated, normalised and updated regularly.
No black boxes
We're not hiding behind a black box. Each Life Score is composed of weighted indicators, and those indicators change by lifestyle profile because what matters to a family is different from what matters to a remote worker or urban explorer.
Unlike tools that show vague liveability ratings without explaining their sources, every CasaCanal score is traceable to official Dutch government data. You can compare locations fairly because the same methodology and normalisation scale is used across the Netherlands.
As we improve data quality and refine models, scores can evolve. That is intentional: updates reflect better evidence, not opaque algorithm changes.