📊 Mietspiegel Digitization

German rent data, made accessible
Berlin verified · 23 city datasets 3 sources 🗺️ Map 📊 Compare 📈 Trends 🔬 Experiments 💾 Data About
Open Data · Berlin Verified · Cross-City in Progress

German rent indices,
freed from PDFs

Every Mietspiegel in Germany digitized into validated, searchable, interactive data. Three independent sources reconciled. All values are Nettokaltmiete (net cold rent).

23
Cities
€11.73
Berlin Mietspiegel
€12.07
Market Asking
€7.97
Census (Actual)
+51%
New vs Existing Gap
1

Newest flats cost 93% more

In the official Mietspiegel 2023 table, building age nearly doubles the rent for the same size in the same Lage.

+93%
2003-2017 vs 1973-1990 East, 40-60 m², einfache Lage
Neubau (2003-2017): €12.37/m² · Ost-Nachkriegsbau (1973-1990): €6.41/m²
Both values are Mittelwerte from the official Mietspiegeltabelle 2023 (Stichtag 01.09.2022). The age of the walls is nearly as powerful as the address.
2

The two Berlins

If you signed a lease last month, you pay €4.10/m² more than your neighbor who's been there 5 years. On a 70 m² flat: €287/month — €3,444/year.

+51%
Market premium over existing rents
Market asking: €12.07/m² · Census actual: €7.97/m² · Official Mietspiegel: €11.73/m²
The city is splitting into two populations: those who got in, and those who didn't.

Market vs Official vs Census

Three independent sources for the same city — the gap between them is the story
3

The market runs ahead of the official table

Nine of 12 Berlin districts have market asking rents above the city-wide Immoscout average — but none exceeds the per-apartment legal cap.

9/12
Districts above the city-wide market average (€10.79/m²)
286,428 addresses covered · Charlottenburg-Wilmersdorf +18.6% (highest) · Neukölln -9.3% (lowest)
The Mietpreisbremse cap (110% of the Mietspiegel range) is per apartment — use the Rent Check to compare a specific flat.

Market vs Official Rent by District

Gap between Immoscout24 asking rent and Mietspiegel official rent per Bezirk
4

Your neighborhood is your rent

Same building age, same size band — a pre-1918 flat in guter Lage rents 22% more than one in einfacher Lage. That's €141/month extra on a 70 m² flat.

+22%
Gut vs einfach Lage premium (35-40 m², pre-1918, official table)
The neighborhood matters — and the spread differs by city. In Essen, the gut/einfach spread is 2.2× — the most unequal city in the dataset. In Dresden, it's 1.05× — the most equitable.

Rent Inequality by City

Ratio of gut Lage to einfach Lage rents — higher = more inequality
5

New walls, higher bills

A 65-85 m² flat in guter Lage costs 84% more in a 2016-2022 building than in a pre-1918 Altbau. €499/month for the privilege of new walls.

Berlin Mietspiegel 2024 — Mittel Lage

Official rent by building age and size (€/m² net cold)
6

What €1,200 buys

At €1,200/month cold rent, you can afford 99 m² at market rates. An existing tenant in the same building might be paying that for 151 m². The question isn't "can you afford Berlin?" — it's "when did you arrive?"

99 m²
At market rate vs 151 m² for existing tenants
At €12.07/m² (market), €1,200 gets you 99 m². At €7.97/m² (census), the same money covers 151 m². The difference is 52 m² — an entire room.
7

What if the Mietspiegel rose 5%?

An A/B policy simulator models the impact. A 5% increase would shift €482M/year from tenants to landlords — €0.56/m² across 1M+ units.

€482M
Annual impact of +5% Mietspiegel increase
MDE: €0.68/m² (5.6% of Berlin avg) · α = 0.05 · Power = 80% · A +5% rent change is below the detectable threshold; +10% is detectable.
View full experiment results →
8

Cities, ranked (verification status documented)

Munich is 4.5× more expensive than Chemnitz. But the gut/einfach spread tells a different story — Essen has the highest inequality (2.2×), Dresden the most equitable (1.05×).

Loading cities...
Full comparison table →

⚙️ Analytics Engineering

This project includes a full analytics layer beyond the dashboard.

🗄️ BigQuery Star Schema
Fact + dimension tables for 23 city datasets. One row per Mietspiegel cell. Each city JSON carries verification_status — Berlin is fully verified.
View SQL →
📊 LookML Model
984-line Looker model with explores for rent cells, cities, historical trends, and districts.
View LookML →
🔍 10 SQL Queries
Production queries: city rankings, Wohnlage premiums, YoY growth, market-vs-official gap.
View Queries →
🧪 A/B Experiment Framework
Policy simulator with MDE, power analysis, guardrail metrics, and decision rules.
View Experiments →
✅ Data Validation
14 automated plausibility checks in CI. Monotonicity, range, and cross-source reconciliation gates.
View Pipeline →
📖 Metric Dictionary
Cold vs warm rent definitions, data source documentation, derived metric formulas.
View Metrics →

Open source & free

No tracking, no cookies, no accounts. Data from official sources. Built by a Senior Data Analyst in Berlin.

⭐ Star on GitHub Download Data