Is er meer overlast in mijn buurt dan vorig jaar?
De politie telt overlastmeldingen per buurt en per maand, dus deze vraag kun je echt beantwoorden: zet dezelfde maanden van dit jaar en vorig jaar naast elkaar. In heel Nederland kwamen er van januari tot en met september 2026 380.026 meldingen binnen, 7,9% meer dan in dezelfde maanden van 2025. Ruim vier vijfde van die stijging komt van meldingen over verwarde personen (van 126.584 naar 149.519). In Utrecht daalde het totaal juist met 2%, terwijl Lunetten-Zuid en Transwijk-Noord driekwart meer meldingen hadden. Een melding is geen gebeurtenis, kleine buurten schommelen sterk en vóór maart 2021 registreerde de politie anders.
Kort antwoordLandelijk wel: 380.026 overlastmeldingen in januari tot en met september 2026, tegen 352.128 in dezelfde maanden van 2025 (+7,9%). Per buurt verschilt het sterk. Draai het script met je eigen gemeentecode.
Geregistreerde overlast: 462 duizend meldingen per jaar in 2025, 65% meer dan in 2012
Geregistreerde overlast, 2012 – 2025, in duizend meldingen per jaar. Het hoogste punt was 2021 (537).
Stap voor stap
- 1
Zoek je buurtcode op (BU…) in de wijk- en buurtkaart.
- 2
Haal de maandcijfers van die buurt op uit de overlasttabel.
- 3
Deel door het aantal inwoners uit de kerncijfers, voor een eerlijke vergelijking.
Koppelen via buurtcode (BU)
Begin met AI
Plak deze prompt in Claude of ChatGPT. Hij noemt de echte endpoints, de koppelsleutel en de valkuilen, zodat de assistent meteen bruikbare code schrijft. Controleer de uitkomst altijd met de bron zelf.
Bouw een kleine webpagina (één HTML-bestand met JavaScript) waarin ik een gemeente kies en per buurt zie of er dit jaar meer of minder overlast is dan vorig jaar.
Data: politiecijfers via CBS, OData v3, geen sleutel, CORS staat open:
https://dataderden.cbs.nl/ODataApi/OData/47024NED/TypedDataSet?$filter=Overlast eq '0.0.0 ' and substringof('BU0344',WijkenEnBuurten) and Perioden eq '2026MM09'&$format=json
Wat je moet weten:
- GeregistreerdeOverlast_1 is het aantal meldingen. Perioden: '2026MM09' is een maand, '2025JJ00' een heel jaar.
- Sleutels hebben een vaste lengte en zijn met spaties aangevuld: '0.0.0 ', 'E33 ', 'GM0344 ', 'NL00 '. Zonder die spaties krijg je een lege lijst en geen foutmelding.
- Soorten (dimensie Overlast): 0.0.0 totaal, E33 verward persoon, E35 jeugd, E38 alcohol of drugs, E41 zwervers, M22 geluidshinder overig.
- Buurtnamen: /WijkenEnBuurten?$filter=Municipality eq 'GM0344'. Gemeenten zijn de regels waarvan de Key met GM begint.
- Maximaal 10.000 rijen per antwoord; volg odata.nextLink.
- Maanden zonder meldingen kunnen ontbreken of met 0 in de data staan: tel een ontbrekende maand als 0.
- Vergelijk januari tot en met de nieuwste maand van dit jaar met dezelfde maanden van vorig jaar, niet de laatste maand met de vorige.
- De politie werkt oude maanden achteraf bij: haal altijd de hele reeks opnieuw op. Vóór maart 2021 is anders geregistreerd (trendbreuk).
Uitkomst: bovenaan het totaal voor de gemeente en de nieuwste maand in de data. Daaronder een sorteerbare tabel per buurt met meldingen vorig jaar, dit jaar en het verschil in procent. Buurten met minder dan 50 meldingen grijs, met 'te klein om te vergelijken'.
Optioneel: meldingen per 1.000 inwoners met AantalInwoners_5 uit CBS 86358NED (kerncijfers 2026), gekoppeld op buurtcode. Buurtcodes kunnen per jaar verschillen; laat buurten zonder koppeling weg en zeg hoeveel het er zijn.
Probeer het zelf
Een klein script dat de kern van de vraag beantwoordt. Nodig: Python 3.10+ en requests. Getest op 2026-10-15; hieronder de echte uitvoer van die proefdraai.
# Overlast per buurt: de eerste negen maanden van 2026 tegen dezelfde maanden van 2025.
# Bron: politie via CBS, tabel 47024NED (dataderden.cbs.nl). Geen sleutel nodig.
import requests
UA = {"User-Agent": "opendataindex-voorbeeld/0.2 (+https://opendataindex.nl)"}
BASIS = "https://dataderden.cbs.nl/ODataApi/OData/47024NED"
GEMEENTE = "0344" # Utrecht; zoek je eigen code op (GM + 4 cijfers)
MAANDEN = 9 # januari t/m september: de nieuwste maand in de tabel
def rijen(filter_):
url, uit = f"{BASIS}/TypedDataSet", []
params = {"$filter": filter_, "$select": "WijkenEnBuurten,Perioden,GeregistreerdeOverlast_1", "$format": "json"}
while url: # max 10.000 rijen per antwoord; volg odata.nextLink
j = requests.get(url, params=params, headers=UA, timeout=60).json()
uit += j["value"]
url, params = j.get("odata.nextLink"), None
return uit
perioden = [f"{j}MM{m:02d}" for j in (2025, 2026) for m in range(1, MAANDEN + 1)]
per = " or ".join(f"Perioden eq '{p}'" for p in perioden)
# Let op: '0.0.0 ' (totaal) heeft een spatie aan het eind, net als de andere sleutels.
data = rijen(f"Overlast eq '0.0.0 ' and substringof('BU{GEMEENTE}',WijkenEnBuurten) and ({per})")
namen = {b["Key"].strip(): b["Title"] for b in requests.get(
f"{BASIS}/WijkenEnBuurten", params={"$filter": f"Municipality eq 'GM{GEMEENTE}'", "$format": "json"},
headers=UA, timeout=60).json()["value"]}
som = {}
for r in data:
jaar = r["Perioden"][:4]
buurt = r["WijkenEnBuurten"].strip()
som.setdefault(buurt, {"2025": 0, "2026": 0})[jaar] += r["GeregistreerdeOverlast_1"] or 0
t25 = sum(v["2025"] for v in som.values()); t26 = sum(v["2026"] for v in som.values())
print(f"Gemeente GM{GEMEENTE}, {len(som)} buurten, jan-sep: 2025 {t25:,} -> 2026 {t26:,} meldingen ({(t26 - t25) / t25:+.1%})")
print("\nGrootste stijging (buurten met minstens 50 meldingen in 2025):")
groot = [(b, v) for b, v in som.items() if v["2025"] >= 50]
for b, v in sorted(groot, key=lambda x: x[1]["2026"] / x[1]["2025"], reverse=True)[:10]:
print(f" {b} {namen.get(b, '?')[:28]:28} {v['2025']:>5} -> {v['2026']:>5} ({(v['2026'] - v['2025']) / v['2025']:+.0%})")
Gemeente GM0344, 111 buurten, jan-sep: 2025 13,583 -> 2026 13,311 meldingen (-2.0%) Grootste stijging (buurten met minstens 50 meldingen in 2025): BU03440223 2e Daalsebuurt en omgeving 67 -> 124 (+85%) BU03440823 Transwijk-Noord 168 -> 295 (+76%) BU03440712 Lunetten-Zuid 168 -> 293 (+74%) BU03440415 Tuinwijk-Oost 73 -> 111 (+52%) BU03441013 Vleuten 83 -> 126 (+52%) BU03441032 De Meern-Zuid 66 -> 100 (+52%) BU03440433 Wittevrouwen 83 -> 125 (+51%) BU03440221 Nijenoord, Hoogstraat en omg 56 -> 81 (+45%) BU03440931 Leidsche Rijn-Centrum 232 -> 327 (+41%) BU03440423 Voordorp en Voorveldsepolder 82 -> 112 (+37%)
De bronnen3

Geregistreerde overlast per buurtUitgewerkt
Elke maand telt de politie hoeveel meldingen van overlast er binnenkwamen, per buurt en per soort: van verwarde personen en jeugd tot geluidshinder en drugs. CBS publiceert de cijfers als open tabel, met een maand vertraging.

Kerncijfers wijken en buurten
Ruim honderd cijfers per buurt: inwoners naar leeftijd, huishoudens, WOZ-waarde, inkomen, uitkeringen, auto's en afstand tot voorzieningen. Elk jaar een nieuwe tabel.

Wijk- en buurtkaart
De officiële grenzen van alle gemeenten, wijken en buurten, als kaartlaag (WFS) en als download. De geometrie die je nodig hebt om buurtcijfers op een kaart te zetten.
Hoe de bronnen samenkomen
- Geregistreerde overlast per buurtKerncijfers wijken en buurtenvia
buurtcode (BU)Inkomen en inwoners staan per buurt in de kerncijfers. In Staat van bleek de samenhang tussen laag inkomen en overlast sterk (ρ ≈ 0,58).
- Geregistreerde overlast per buurtWijk- en buurtkaartvia
buurtcode (BU)De buurtgrenzen maken van de tabel een kaart. Gebruik de grenzen van hetzelfde jaar als de indeling van de cijfers.
- Kerncijfers wijken en buurtenGeregistreerde overlast per buurtvia
buurtcode (BU)De kerncijfers leveren de noemer voor bijna elke buurtvergelijking.
- Wijk- en buurtkaartKerncijfers wijken en buurtenvia
buurtcode (BU)Koppel op code en kies dezelfde jaargang voor grenzen en cijfers.
Meer voorbeelden met deze data
Meldingen van overlast: gemiddeld het hoogst in juli, het laagst in februari
Gemiddelde grootte van een huishouden: het hoogst in Urk (3,2 personen), het laagst in Wageningen en 2 andere gemeenten (1,6 personen)
Woningen zonder aardgasaansluiting: het hoogst in Purmerend (67%), het laagst in Simpelveld en 3 andere gemeenten (2%)
Stroom die een woning gemiddeld teruglevert aan het net: het hoogst in Tubbergen (2.120 kWh), het laagst in Amsterdam (140 kWh)
Ook in de indexen
Datasets uit data.overheid.nl, het Nationaal Georegister, CBS, Eurostat en de stadsportalen die bij deze vraag passen.
- Geregistreerde overlast; soort overlast, wijk en buurtPolitie
- Kwadrant (Wijken - Buurten)dataportaal Breda
- Geregistreerde overlast; soort overlast, wijk en buurtPolitie
- Plangebied Wijkerbroek te Wijk bij Duurstede, gemeente Wijk bij Duurstede; Plangebied Wijkerbroek te Wijk bij Duurstede, gemeente Wijk bij Duurstede; archeologisch vooronderzoek: een inventariserend veldonderzoek (verkennend en karterend booronderzoek)DANS Data Station Archaeology
- Inventariserend veldonderzoek - verkennende fase Zonnepark Wijkersloot te Wijk bij Duurstede, gemeente Wijk bij Duurstede (UT) Inventariserend veldonderzoek - verkennende fase Zonnepark Wijkersloot te Wijk bij Duurstede, gemeente Wijk bij Duurstede (UT)DANS Data Station Archaeology
- 2017100301 gemeente Wijk bij Duurstede Wijk bij Duurstede Markt 24 Markt 24, Wijk bij Duurstede, gemeente Wijk bij Duurstede: inventariserend veldonderzoek in de vorm van boringenin de verkennendefaseDANS Data Station Archaeology
- De kaart toont het aandeel fiets- en wandelpaden per buurt. Een lichtgroene kleur betekent relatief veel fiets- en wandelpaden. Die komen voor in buurten waar meer mensen wonen, voornamelijk binnen de bebouwde kom. Het landelijk gebied heeft minder fiets- en wandelpaden en ook minder …Provincie Noord-Holland
- CBS Wijken en Buurten 2026 versie 0 ATOMBeheer PDOK
- CBS Wijken en Buurten 2026 versie 0 WMSBeheer PDOK
- CBS Wijken en Buurten 2026 versie 0 OGC API FeaturesBeheer PDOK
Andere uitgezochte vragen
- Hoeveel subsidie krijgt een stichting in Amsterdam?3 bronnen
- Hoeveel warmer is het geworden?2 bronnen
- Hoe schoon is de lucht in mijn straat?3 bronnen
- Hoe ziet mijn omgeving eruit vanuit de ruimte?3 bronnen
- Stegen de huizenprijzen hier harder dan in de rest van Europa?2 bronnen
- Hoeveel auto's rijden er elektrisch in mijn gemeente?2 bronnen