Data Journalist · Berlin

Rodrigo
Gutierrez
Data Journalist

Visual storytelling on cities, climate & society — from raw data to finished narrative.

PythonRQGISD3.jsAdobe suiteNLPGeospatial

POLITICO Europe · 2023–2026

Selected works

EU policy journalism across energy, climate, electoral behaviour, industry and technology. Click any project to explore.

Visualizations below produced at POLITICO Europe (2023–2026). All rights remain with POLITICO Europe. Reproduced solely to demonstrate research and technical approach. Please do not redistribute.

Personal work · GIS

Mapping urban fabric & land cover

Two maps, one question: how does space get used? Berlin at block resolution, Germany from orbit.

Berlin map Germany render

Personal work · GIS · Berlin

Every street, every block

OpenStreetMap road and path data at block resolution — built surface, footpaths, and green space across the whole city.

01 — Berlin

Every street, every block

OpenStreetMap processed in QGIS at block resolution. The result is a precise picture of Berlin's built fabric — streets, footpaths, cycle lanes, and the green space between them.

QGIS · OpenStreetMap · Python

01 — Berlin

Reading the city at block level

At this resolution you can see the difference between a densely built Altbau block in Prenzlauer Berg and a suburban row-house strip in Pankow. Built surface versus permeable green — visible at a glance across all 892 km² of the city.

01 — Berlin

A foundation for deeper analysis

This layer feeds into density calculations, walkability scoring, and green-space proximity analyses. Once the geometry is clean, overlaying census data, transit stops, or crime incidents becomes straightforward.

02 — Germany

National land-cover from orbit

Copernicus satellite imagery reclassified into land-cover categories — forest, farmland, urban fabric, wetlands, water — rendered at country scale in a single coherent view.

QGIS · Copernicus Land Monitoring Service · R

02 — Germany

The texture of a country

What strikes you at country scale is how much of Germany is still forest and field. The Ruhr, Rhine-Main, and Berlin appear as dense grey patches in an otherwise green and beige landscape. Urban sprawl is real — but contained.

02 — Germany

Why raster beats choropleth

A standard district-level choropleth would average out the variation and hide the patchwork. The raster approach shows exactly where farmland ends and forest begins — no administrative boundary required.

Berlin · Urban crime

Berlin bike thefts: €20M lost in a year

A full data investigation into the city's bike-theft epidemic — geography, timing, hotspots, and the economics of loss.

Bike thefts overview Bike thefts map Bike thefts chart Bike thefts hotspots Bike thefts districts Bike thefts values

Berlin · Urban crime · 2023

A city-wide epidemic

28,000 bikes stolen. €20M declared. In one year.

20M€

01 — Scale

A city-wide epidemic

Over 28,000 bikes reported stolen in Berlin in 2023 — one of the highest figures in Germany. The numbers have remained stubbornly high for years despite targeted police campaigns and public awareness initiatives.

20M€

in declared bike value stolen in one year.

01 — Scale

Why it matters beyond the statistics

A stolen bike is not just a financial loss. For many Berliners — especially lower-income residents — a bike is the primary mode of transport. Losing it can mean losing access to work, childcare, or daily errands for weeks.

01 — Scale

How the data was collected

Berlin's police publish detailed theft records through the official open data portal. The dataset covers reported incidents with location, time, and declared value — roughly 60–70% of actual thefts, since many go unreported.

Python · GeoPandas · Berlin Polizei open data

02 — Geography

The map of risk

Thefts cluster along U-Bahn corridors and in inner-city Kieze. Mapping at LOR planning unit level reveals the concentration clearly: the centre and east bear a disproportionate share of incidents relative to their cycling population.

02 — Geography

Where you park matters more than where you live

The hotspot areas correlate strongly with high footfall zones — markets, stations, shopping streets — rather than with residential density. It's about opportunity, not neighbourhood character.

03 — When

Not a night-time crime

Contrary to intuition, theft does not peak after dark. Analysis of reported timestamps shows risk stretching from morning rush hour all the way to early evening — bikes left outside offices and cafés are the primary targets.

03 — When

The 7am–9pm window

The highest-risk window is 8am to 2pm — while owners are at work or running errands. The idea that locks only matter at night turns out to be exactly wrong. Lock your bike even for a ten-minute coffee stop.

04 — Hotspots

One theft every 1.9 days

Alt-Treptow tops the ranking with 193 thefts — roughly one every two days. Oranienburgerstraße, Boxhagener Platz, and Warschauer Straße follow closely. A handful of specific streets generate a strikingly large share of all incidents city-wide.

04 — Hotspots

The role of infrastructure

Many top-ranked streets lack quality bike parking. Where rings and stands are scarce, bikes get locked to railings, poles, and scaffolding — making them easier targets and harder to secure properly.

05 — Districts

Mitte alone: nearly 1 in 5

Half of all Berlin thefts are concentrated in just three of the twelve districts. Mitte, Friedrichshain-Kreuzberg, and Pankow together define the city's theft geography — reflecting both cycling density and high-footfall public space.

06 — Loss

Median loss: €894

Declared values range from sub-€100 commuter bikes to €5,000 cargo models. The median declared loss is €894 — a significant sum for most Berliners, and a figure that has been rising year-on-year as average bike quality improves and e-bikes become more common.

€894

median declared value per stolen bike.

Berlin · Urban equity

Kitas, poverty, and proximity

Where are Berlin's childcare facilities — and do they reach the children who need them most? Supply and need tell two very different stories.

Kitas overview Kitas density Kitas poverty Kitas mismatch Kitas distance

Berlin · Urban equity

Where do Berlin's children go?

Hundreds of Kitas — but not always where they're needed most.

Python · QGIS · Amt für Statistik Berlin-Brandenburg

01 — Context

Childcare as a right — in theory

Germany's Kita-Rechtsanspruch guarantees every child a place from age one. In Berlin, over 2,500 facilities serve the city's youngest residents. But a legal right and a practical reality are not always the same thing.

Python · QGIS · Amt für Statistik Berlin-Brandenburg

01 — Context

The question behind the map

Proximity is everything in early childcare. A Kita two kilometres away — without a direct bus connection — is not really accessible for a parent dropping off a toddler before an 8am shift. The data lets us ask: who actually has access?

02 — Supply

Dense in the centre, thin at the edges

Facility locations hexagonally binned reveal a familiar spatial pattern. Mitte, Prenzlauer Berg, and Kreuzberg are well served. Spandau, Marzahn-Hellersdorf, and the outer south-east lag behind — fewer facilities covering larger, less walkable areas.

02 — Supply

The centre-periphery gap

The pattern mirrors urban investment more broadly. Inner-city districts benefited from decades of renovation and new construction. Peripheral areas — many of them GDR-era Plattenbau settlements — have seen slower facility growth relative to population.

03 — Need

Child poverty maps differently

Social benefit data paints a starkly different geography. Child poverty concentrates in Neukölln, northern Wedding, and Marzahn-Hellersdorf — the very districts where Kita density is lowest.

03 — Need

The children who would benefit most

Children from low-income households gain the most from quality early education — in language development, social skills, and later academic outcomes. The supply gap hits precisely where the developmental benefit would be greatest.

04 — Mismatch

When you overlay the two maps

The structural gap becomes impossible to ignore. Districts with the fewest Kitas per child consistently score highest on the city's social deprivation index. It is not just an urban planning failure — it is an equity failure baked into the city's infrastructure.

04 — Mismatch

What the numbers say

In Marzahn-Hellersdorf, there are roughly 28% fewer Kita places per child under three compared to Pankow, despite similar or higher rates of child poverty. The gap is not marginal — it is structural and persistent.

05 — Distance

Every extra metre costs

Average walking distance to the nearest Kita correlates strongly with deprivation rank across planning units. For families without a car — the majority in low-income households — that extra distance is not an inconvenience. It determines whether a parent can hold a full-time job.

05 — Distance

Access as infrastructure

Childcare proximity is as much urban infrastructure as a bus stop or a park. The cities that have taken this seriously — Vienna, Stockholm, Paris — have invested in micro-scale facility planning rather than district-level averages. Berlin has the data to do the same.

Germany · Housing · Demographics

Two Germanys, two rent markets

Census 2022 data at 10×10 km raster cells reveals a country still split. Between Chemnitz and Munich: €585 a month for the same 75m² flat.

German rent map German rent detail German rent distribution German rent trends

Germany · Housing · Zensus 2022

Two Germanys, two rent markets

The colour shift from south to east encodes 35 years of divergent economic trajectory.

€5.40 → €13.20

01 — The data

The most detailed rent map Germany has ever had

Germany's Census 2022 released granular rent data for the first time in over a decade. Processed at 10×10 km grid cells and visualised across the full country, the result is an unprecedented picture of housing cost geography.

R · QGIS · Statistisches Bundesamt Zensus 2022

01 — The data

East and West, 35 years on

The East–West divide is immediate and unmistakeable. The colour shift from deep amber in Bavaria to pale tones across Saxony, Thuringia, and Brandenburg does not need a caption — the data encodes 35 years of divergent economic trajectory.

€5.40

average rent per m² in Chemnitz — the cheapest major city.

01 — The data

Why the raster matters

Standard analyses use city or district averages, masking the variation within. At 10×10 km, you can see how a single city conceals a spectrum — the inner ring of Munich costs dramatically more than its outer suburbs, even though they share a postcode area.

02 — Cities

Munich at three times Chemnitz

Munich's average of €13.20/m² sits at the far end of a distribution spanning more than €8. Hamburg, Frankfurt, and Stuttgart cluster in the expensive tier. Leipzig and Dresden, despite rapid growth, remain relatively affordable — for now.

€13.20

average rent per m² in Munich — the most expensive major city.

02 — Cities

The middle class caught in between

The cities where jobs are being created — Munich, Frankfurt, Stuttgart — are also the cities where housing costs are highest. For workers arriving from eastern states or from abroad, the wage premium rarely covers the rent premium.

03 — Impact

€585 a month separates two lives

For a standard 75m² flat — appropriate for a small family — the monthly gap between Germany's cheapest and most expensive major cities is €585. That is not just a housing cost difference. It is a life-choice constraint.

€585

monthly gap for a 75m² flat between Chemnitz and Munich.

03 — Impact

Mobility as a housing issue

High rents in economically dynamic cities act as a brake on labour mobility. Workers who would benefit from moving to Munich or Frankfurt cannot afford to do so. The housing map and the opportunity map no longer align.

04 — Trends

The gap is widening

Rents in southern and western cities have risen faster than in the East throughout the 2010s and early 2020s. The structural divide is not just a legacy of reunification — it is being actively reproduced by market dynamics, planning constraints, and migration patterns that concentrate demand in an ever-smaller set of cities.

Statistisches Bundesamt Zensus 2022 · R · QGIS

04 — Trends

What the data cannot show yet

The 2022 Census is a snapshot. The next comparable dataset may not arrive for another decade. In the meantime, the rent gap will keep widening — and the stories behind the numbers will keep being lived.

Interactive · Built with D3.js

Explorable graphics

Hover, drag, click. Mock data — real chart types I use in my work.

GDP vs. renewable energy — European countries

Each circle is a country · size = CO₂ per capita · Hover · Click legend to filter regions

Simulated data · illustrative prototype

EU electricity mix 2010–2024

Move mouse to read values by year

Simulated data · illustrative prototype

EU policy connections

Drag nodes · Filter by theme

Simulated data · illustrative prototype

Who wins in the European Parliament?

Share of plenary roll-call votes won by each political group · Hover a bar

POLITICO analysis · European Parliament roll-call data · reproduced for portfolio demonstration

Let's
talk.

Open to data journalism roles, freelance visualization projects, and research collaborations.