BudgetStateMunicipalitiesNL

342 Dutch municipalities · 2025

BUDGET met?

6%of the 342 Dutch municipalities spent no more in 2025 than the budget their council adopted.

Every November a municipal council adopts a budget for the year ahead. After the year it files the accounts. Both are published in one format, line by line. We set them side by side for every municipality since 2017. In 2025 they spent €5.5 billion more than they budgeted (+7.2%), and received €9.4 billion more than they expected (+12%). 6 did not file both reports.

Care
Social domain+11%

€33.6 bn budgeted, €37.3 bn spent

over in 9 of 9
Youth care+11%

€6,565 m budgeted, €7,290 m spent

over in 9 of 9
Care and support (Wmo)+2.3%

€7,462 m budgeted, €7,636 m spent

over in 8 of 9
Place
Roads, transport and water+2.4%

€5,143 m budgeted, €5,265 m spent

over in 6 of 9
Housing and planning+15%

€2,692 m budgeted, €3,093 m spent

over in 9 of 9
Health and environment+4.5%

€7,029 m budgeted, €7,342 m spent

over in 9 of 9
Community
Education+4.9%

€3,332 m budgeted, €3,494 m spent

over in 9 of 9
Sport, culture and recreation+6.1%

€6,674 m budgeted, €7,080 m spent

over in 9 of 9
Safety+4.9%

€2,866 m budgeted, €3,005 m spent

over in 9 of 9
The town hall
Governance and general revenue+3.4%

€13.3 bn budgeted, €13.7 bn spent

over in 9 of 9
Economy−11%

€1,711 m budgeted, €1,517 m spent

over in 6 of 9

342 municipalities · 2017–2025 · 6,713 reports · 2,495,775 filled lines · spending on the budget scale: under ← within 2% → over

9 of 9years since 2017 in which the municipalities together spent more than they had budgeted
+11%on youth care in 2025 against its budget. Over budget in 9 of 9 years
42rules broken since 2017: 31 times not both reports filed, 11 times a filing error

Policy areas · 2025

Where the budget gives way

The nine main policy areas every municipality reports on, and the two care budgets inside the social domain that decide most years: what the councils adopted in November, against what the accounts say was spent.

Governance and general revenueBestuur en ondersteuning+3.4%€13.7 bn
SafetyVeiligheid+4.9%€3,005 m
Roads, transport and waterVerkeer, vervoer en waterstaat+2.4%€5,265 m
EconomyEconomie−11%€1,517 m
EducationOnderwijs+4.9%€3,494 m
Sport, culture and recreationSport, cultuur en recreatie+6.1%€7,080 m
Social domainSociaal domein+11%€37.3 bn
Health and environmentVolksgezondheid en milieu+4.5%€7,342 m
Housing and planningVolkshuisvesting, leefomgeving en stedelijke vernieuwing+15%€3,093 m
Youth careJeugdhulp+11%€7,290 m
Care and support (Wmo)+2.3%€7,636 m
Policy areaBudget 2025SpentGap
Governance and general revenueBestuur en ondersteuning€13.3 bn€13.7 bn+3.4%
SafetyVeiligheid€2,866 m€3,005 m+4.9%
Roads, transport and waterVerkeer, vervoer en waterstaat€5,143 m€5,265 m+2.4%
EconomyEconomie€1,711 m€1,517 m−11%
EducationOnderwijs€3,332 m€3,494 m+4.9%
Sport, culture and recreationSport, cultuur en recreatie€6,674 m€7,080 m+6.1%
Social domainSociaal domein€33.6 bn€37.3 bn+11%
Health and environmentVolksgezondheid en milieu€7,029 m€7,342 m+4.5%
Housing and planningVolkshuisvesting, leefomgeving en stedelijke vernieuwing€2,692 m€3,093 m+15%
Youth careJeugdhulp€6,565 m€7,290 m+11%
Care and support (Wmo)€7,462 m€7,636 m+2.3%

Year by year

Every year, a pattern

Spending against the budget, for all municipalities together, and how many of them stayed within what they had adopted. The budget is the one adopted before the year began; the amendments councils pass during the year are part of the gap.

Spending against the budget

0%+2%+4%+6%+8%+10%+12%2017201820192020202120222023202420252017gap +4.7%budgeted €52.0 bnspent €54.4 bn2018gap +7.1%budgeted €52.3 bnspent €56.0 bn2019gap +5.9%budgeted €54.9 bnspent €58.1 bn2020gap +9.5%budgeted €56.9 bnspent €62.3 bn2021gap +6.9%budgeted €58.6 bnspent €62.7 bn2022gap +9.4%budgeted €59.3 bnspent €64.9 bn2023gap +12%budgeted €64.9 bnspent €72.6 bn2024gap +8.8%budgeted €71.4 bnspent €77.6 bn2025gap +7.2%budgeted €76.4 bnspent €81.8 bn0%+2%+4%+6%+8%+10%+12%201720192021202320252017gap +4.7%budgeted €52.0 bnspent €54.4 bn2018gap +7.1%budgeted €52.3 bnspent €56.0 bn2019gap +5.9%budgeted €54.9 bnspent €58.1 bn2020gap +9.5%budgeted €56.9 bnspent €62.3 bn2021gap +6.9%budgeted €58.6 bnspent €62.7 bn2022gap +9.4%budgeted €59.3 bnspent €64.9 bn2023gap +12%budgeted €64.9 bnspent €72.6 bn2024gap +8.8%budgeted €71.4 bnspent €77.6 bn2025gap +7.2%budgeted €76.4 bnspent €81.8 bn

Who stayed within the budget

withinoverfiling errornot filed
01002003004002017201820192020202120222023202420252017 · 388 listed69 within312 over5 filing error2 not filed2018 · 380 listed44 within327 over1 filing error8 not filed2019 · 355 listed37 within318 over0 filing error0 not filed2020 · 355 listed11 within341 over1 filing error2 not filed2021 · 352 listed22 within328 over1 filing error1 not filed2022 · 345 listed12 within325 over0 filing error8 not filed2023 · 342 listed7 within332 over1 filing error2 not filed2024 · 342 listed16 within322 over2 filing error2 not filed2025 · 342 listed20 within316 over0 filing error6 not filed0100200300400201720192021202320252017 · 388 listed69 within312 over5 filing error2 not filed2018 · 380 listed44 within327 over1 filing error8 not filed2019 · 355 listed37 within318 over0 filing error0 not filed2020 · 355 listed11 within341 over1 filing error2 not filed2021 · 352 listed22 within328 over1 filing error1 not filed2022 · 345 listed12 within325 over0 filing error8 not filed2023 · 342 listed7 within332 over1 filing error2 not filed2024 · 342 listed16 within322 over2 filing error2 not filed2025 · 342 listed20 within316 over0 filing error6 not filed
YearListedWithin budgetRules brokenBudgetedSpentGapIncome gap
2025342206%6€76.4 bn€81.8 bn+7.2%+12%
2024342165%4€71.4 bn€77.6 bn+8.8%+12%
202334272%3€64.9 bn€72.6 bn+12%+15%
2022345123%8€59.3 bn€64.9 bn+9.4%+18%
2021352226%2€58.6 bn€62.7 bn+6.9%+12%
2020355113%3€56.9 bn€62.3 bn+9.5%+19%
20193553710%0€54.9 bn€58.1 bn+5.9%+6.2%
20183804412%9€52.3 bn€56.0 bn+7.1%+8.6%
20173886918%7€52.0 bn€54.4 bn+4.7%+6.6%

All 342 · 2025

Every municipality, one square

Today's municipalities by province, each coloured by how far its spending landed from its budget in 2025 — a cross where it did not file both reports, stripes where it filed with errors. Hover for the numbers; click for the municipality.

Spending against the budget:more than 10% under2–10% underwithin 2%2–10% overmore than 10% overfiling errornot filed

Drenthe

12 municipalities0 of 12 within budget

Flevoland

6 municipalities2 of 6 within budget

Fryslân

18 municipalities2 of 18 within budget

Gelderland

51 municipalities3 of 51 within budget

Groningen

10 municipalities0 of 10 within budget

Limburg

31 municipalities1 of 31 within budget

Noord-Brabant

56 municipalities2 of 56 within budget

Noord-Holland

44 municipalities2 of 44 within budget

Overijssel

25 municipalities2 of 25 within budget

Utrecht

26 municipalities1 of 26 within budget

Zeeland

13 municipalities2 of 13 within budget

Zuid-Holland

50 municipalities3 of 50 within budget

Top 10s

The highest and the lowest 10

The 10 municipalities whose spending came out highest against the budget their council adopted, and the 10 whose spending came out lowest — as a share of that budget, so a town of 5,000 and a city of 900,000 compare. Not filing both reports, or filing them with errors, ranks first, repeat offenders first. Pick a year and a province. Ties share a rank.

Highest 10

2025

Those who broke the rules first — nothing filed, then a filing error, repeat offenders first — then the highest spending against the budget.

  1. 1VijfheerenlandenUtrechtnot filed3 of 9 years
  2. 2Midden-DrentheDrenthenot filed2 of 9 years
  3. 3De BiltUtrechtnot filed
  4. 3DuivenGelderlandnot filed
  5. 3LandsmeerNoord-Hollandnot filed
  6. 3RozendaalGelderlandnot filed
  7. 7AmelandFryslân+32%€38 m
  8. 8Aa en HunzeDrenthe+28%€100 m
  9. 9OostzaanNoord-Holland+27%€38 m
  10. 10WaterlandNoord-Holland+27%€66 m

Lowest 10

2025

The lowest spending against the budget, filed in full and without error.

  1. 1Bergen op ZoomNoord-Brabant−9.0%€335 m
  2. 2LeudalLimburg−5.8%€106 m
  3. 3KoggenlandNoord-Holland−4.2%€75 m
  4. 4SchiermonnikoogFryslân−2.1%€13 m
  5. 5NieuwkoopZuid-Holland−2.0%€85 m
  6. 5ZoetermeerZuid-Holland−2.0%€528 m
  7. 7GoesZeeland−1.7%€191 m
  8. 8AmersfoortUtrecht−1.4%€700 m
  9. 9ZevenaarGelderland−1.3%€180 m
  10. 10VlielandFryslân−1.1%€11 m
Spending against the budget:more than 10% under2–10% underwithin 2%2–10% overmore than 10% overfiling errornot filed

Provinces · 2025

The municipalities by province

Each province totalled over the municipalities it had in each year.

ProvinceListedWithin budgetBudget 2025SpentGapRules broken
Drenthe1200%€1,924 m€2,141 m+11%1
Flevoland6233%€1,963 m€2,037 m+3.8%0
Fryslân18211%€2,781 m€3,054 m+9.8%0
Gelderland5136%€8,206 m€8,824 m+7.5%2
Groningen1000%€3,079 m€3,335 m+8.3%0
Limburg3113%€4,761 m€5,183 m+8.9%0
Noord-Brabant5624%€10.3 bn€11.1 bn+7.3%0
Noord-Holland4425%€13.9 bn€14.9 bn+7.5%1
Overijssel2528%€4,955 m€5,417 m+9.3%0
Utrecht2614%€5,013 m€5,320 m+6.1%2
Zeeland13215%€1,677 m€1,774 m+5.8%0
Zuid-Holland5036%€17.8 bn€18.7 bn+5.4%0

Look up · 2025

All 342 municipalities

Every municipality: its budget against its accounts in 2025, its income's gap, and how often its spending came out over budget since the first year. Those who broke the rules first. Search by name, sort on a column, or click a municipality for its page.

Click a column's head to sort.

MunicipalityProvinceBudget 2025SpentGapIncome gapYears over2017–2025
VijfheerenlandenUtrecht—€215 mbudget not filed—4 of 9
Midden-DrentheDrenthe—€123 mbudget not filed—6 of 9
De BiltUtrecht—€146 mbudget not filed—7 of 9
DuivenGelderland€82 m—accounts not filed—8 of 9
LandsmeerNoord-Holland—€39 mbudget not filed—8 of 9
RozendaalGelderland€11 m—accounts not filed—7 of 9
AmelandFryslân€29 m€38 m+32%+18%6 of 9
Aa en HunzeDrenthe€78 m€100 m+28%+34%8 of 9
OostzaanNoord-Holland€30 m€38 m+27%+36%8 of 9
WaterlandNoord-Holland€52 m€66 m+27%+37%9 of 9
Beek (L.)Limburg€55 m€70 m+26%+34%9 of 9
LandgraafLimburg€149 m€188 m+26%+27%9 of 9
DongenNoord-Brabant€76 m€96 m+26%+28%9 of 9
Midden-DelflandZuid-Holland€59 m€73 m+24%+21%8 of 9
GoirleNoord-Brabant€68 m€83 m+22%+19%9 of 9
OpmeerNoord-Holland€42 m€51 m+22%+27%4 of 9
WesterveldDrenthe€66 m€81 m+22%+22%9 of 9
BorneOverijssel€76 m€92 m+21%+18%8 of 9
CoevordenDrenthe€132 m€159 m+20%+14%9 of 9
Gooise MerenNoord-Holland€180 m€216 m+20%+18%9 of 9
Reusel-De MierdenNoord-Brabant€39 m€46 m+20%+28%7 of 9
PurmerendNoord-Holland€330 m€394 m+20%+21%7 of 9
HeerdeGelderland€60 m€72 m+19%+22%9 of 9
Loon op ZandNoord-Brabant€77 m€91 m+19%+16%8 of 9
OldenzaalOverijssel€122 m€145 m+19%+21%9 of 9
Horst aan de MaasLimburg€150 m€179 m+19%+20%9 of 9
MaasdrielGelderland€76 m€90 m+19%+20%9 of 9
MontfoortUtrecht€36 m€43 m+19%+17%9 of 9
BaarnUtrecht€78 m€93 m+18%+20%9 of 9
De WoldenDrenthe€73 m€86 m+18%+19%9 of 9
VoorstGelderland€74 m€88 m+18%+18%9 of 9
UitgeestNoord-Holland€35 m€41 m+18%+18%9 of 9
ZwolleOverijssel€644 m€759 m+18%+18%9 of 9
De Fryske MarrenFryslân€169 m€199 m+17%+17%8 of 9
Olst-WijheOverijssel€58 m€68 m+17%+19%9 of 9
MeierijstadNoord-Brabant€287 m€336 m+17%+26%8 of 9
Eijsden-MargratenLimburg€78 m€91 m+17%+21%8 of 9
RoermondLimburg€263 m€307 m+17%+17%9 of 9
BergeijkNoord-Brabant€56 m€65 m+17%+20%9 of 9
HattemGelderland€38 m€44 m+16%+19%9 of 9
Baarle-NassauNoord-Brabant€25 m€29 m+16%+20%9 of 9
LaarbeekNoord-Brabant€65 m€76 m+16%+28%7 of 9
BrummenGelderland€68 m€79 m+16%+14%9 of 9
ScherpenzeelGelderland€30 m€35 m+16%+14%9 of 9
BarendrechtZuid-Holland€141 m€164 m+16%+19%8 of 9
OmmenOverijssel€64 m€74 m+16%+22%9 of 9
AlblasserdamZuid-Holland€68 m€79 m+15%+18%9 of 9
HeerlenLimburg€502 m€576 m+15%+16%9 of 9
Noardeast-FryslânFryslân€178 m€204 m+15%+21%7 of 9
Nuenen, Gerwen en NederwettenNoord-Brabant€63 m€73 m+15%+15%9 of 9
TubbergenOverijssel€59 m€68 m+15%+17%8 of 9
DantumadielFryslân€71 m€82 m+14%+17%8 of 9
Neder-BetuweGelderland€79 m€91 m+14%+38%9 of 9
LopikUtrecht€44 m€50 m+14%+14%9 of 9
SomerenNoord-Brabant€60 m€68 m+14%+24%8 of 9
WinterswijkGelderland€124 m€142 m+14%+15%8 of 9
Borger-OdoornDrenthe€95 m€108 m+14%+15%8 of 9
NoordenveldDrenthe€108 m€123 m+14%+12%9 of 9
WaadhoekeFryslân€165 m€187 m+14%+14%6 of 9
AstenNoord-Brabant€56 m€64 m+14%+14%9 of 9
Voorne aan ZeeZuid-Holland€252 m€286 m+14%+12%1 of 9
PekelaGroningen€60 m€68 m+14%+25%8 of 9
BunschotenUtrecht€60 m€68 m+13%+10%8 of 9
LosserOverijssel€80 m€90 m+13%+11%7 of 9
MontferlandGelderland€123 m€140 m+13%+14%9 of 9
Son en BreugelNoord-Brabant€50 m€57 m+13%+10%9 of 9
TwenterandOverijssel€151 m€172 m+13%+14%8 of 9
HilvarenbeekNoord-Brabant€48 m€54 m+13%+15%9 of 9
Wijk bij DuurstedeUtrecht€66 m€75 m+13%+20%9 of 9
OldambtGroningen€188 m€213 m+13%+20%9 of 9
BernhezeNoord-Brabant€89 m€100 m+13%+17%9 of 9
NederweertLimburg€56 m€63 m+13%+21%9 of 9
EemnesUtrecht€31 m€35 m+13%+11%9 of 9
Stichtse VechtUtrecht€184 m€208 m+13%+13%9 of 9
West Maas en WaalGelderland€57 m€65 m+13%+17%9 of 9
Alphen aan den RijnZuid-Holland€410 m€463 m+13%+16%9 of 9
Echt-SusterenLimburg€109 m€123 m+13%+18%9 of 9
ZuidplasZuid-Holland€138 m€156 m+13%+9.2%9 of 9
DinkellandOverijssel€77 m€87 m+13%+20%9 of 9
HeusdenNoord-Brabant€134 m€151 m+13%+13%7 of 9
KerkradeLimburg€218 m€245 m+13%+17%9 of 9
WormerlandNoord-Holland€53 m€60 m+13%+24%8 of 9
ZeistUtrecht€223 m€251 m+13%+13%9 of 9
WestervoortGelderland€51 m€58 m+13%+16%9 of 9
OoststellingwerfFryslân€95 m€106 m+12%+18%9 of 9
RidderkerkZuid-Holland€167 m€188 m+12%+15%8 of 9
TytsjerksteradielFryslân€109 m€122 m+12%+16%9 of 9
DeurneNoord-Brabant€105 m€118 m+12%+21%7 of 9
Oude IJsselstreekGelderland€139 m€156 m+12%+18%9 of 9
Dijk en WaardNoord-Holland€287 m€322 m+12%+23%3 of 9
HalderbergeNoord-Brabant€101 m€113 m+12%+11%9 of 9
PuttenGelderland€69 m€77 m+12%+15%9 of 9
WestlandZuid-Holland€359 m€403 m+12%+19%9 of 9
BoxtelNoord-Brabant€119 m€134 m+12%+18%8 of 9
VeenendaalUtrecht€247 m€277 m+12%+21%9 of 9
AlmeloOverijssel€374 m€419 m+12%+11%8 of 9
HoornNoord-Holland€292 m€327 m+12%+22%9 of 9
HuizenNoord-Holland€127 m€143 m+12%+15%9 of 9
TerschellingFryslân€31 m€35 m+12%+12%9 of 9
AlbrandswaardZuid-Holland€72 m€81 m+12%+15%8 of 9
EemsdeltaGroningen€300 m€336 m+12%+16%3 of 9
HulstZeeland€92 m€103 m+12%+7.0%7 of 9
Sint-MichielsgestelNoord-Brabant€82 m€91 m+12%+15%9 of 9
VeendamGroningen€135 m€151 m+12%+14%8 of 9
VughtNoord-Brabant€107 m€120 m+12%+14%5 of 9
Het HogelandGroningen€215 m€240 m+12%+14%7 of 9
NunspeetGelderland€91 m€101 m+12%+18%9 of 9
OisterwijkNoord-Brabant€99 m€111 m+12%+15%9 of 9
UrkFlevoland€72 m€80 m+12%+11%9 of 9
Hendrik-Ido-AmbachtZuid-Holland€92 m€103 m+12%+12%8 of 9
Mook en MiddelaarLimburg€25 m€28 m+12%+18%8 of 9
DrechterlandNoord-Holland€57 m€64 m+12%+18%9 of 9
EindhovenNoord-Brabant€1,158 m€1,292 m+12%+16%9 of 9
Gilze en RijenNoord-Brabant€83 m€93 m+12%+16%8 of 9
EnkhuizenNoord-Holland€73 m€81 m+11%+17%9 of 9
MaasgouwLimburg€78 m€87 m+11%+19%8 of 9
TexelNoord-Holland€81 m€90 m+11%+19%8 of 9
EerselNoord-Brabant€59 m€66 m+11%+16%9 of 9
WesterkwartierGroningen€217 m€241 m+11%+13%7 of 9
Alphen-ChaamNoord-Brabant€30 m€33 m+11%+13%9 of 9
ApeldoornGelderland€748 m€831 m+11%+15%8 of 9
BerkellandGelderland€144 m€160 m+11%+18%7 of 9
LisseZuid-Holland€75 m€83 m+11%+17%8 of 9
Hardinxveld-GiessendamZuid-Holland€53 m€59 m+11%+17%9 of 9
AalsmeerNoord-Holland€102 m€113 m+11%+13%7 of 9
West BetuweGelderland€156 m€173 m+11%+13%5 of 9
AchtkarspelenFryslân€103 m€114 m+11%+15%9 of 9
Stede BroecNoord-Holland€72 m€79 m+11%+18%9 of 9
WoudenbergUtrecht€39 m€43 m+11%+13%7 of 9
IJsselsteinUtrecht€99 m€109 m+11%+19%9 of 9
DeventerOverijssel€450 m€496 m+10%+13%9 of 9
MeerssenLimburg€60 m€66 m+10%+14%8 of 9
BorseleZeeland€77 m€84 m+10%+27%9 of 9
BurenGelderland€85 m€93 m+10%+7.8%9 of 9
AaltenGelderland€87 m€96 m+10%+13%9 of 9
AlkmaarNoord-Holland€494 m€543 m+10%+13%9 of 9
AltenaNoord-Brabant€173 m€190 m+10%+11%7 of 9
BrunssumLimburg€117 m€129 m+10%+12%8 of 9
RoosendaalNoord-Brabant€336 m€370 m+10%+14%9 of 9
WoensdrechtNoord-Brabant€66 m€73 m+10%+20%8 of 9
GoudaZuid-Holland€371 m€408 m+10.0%+15%9 of 9
SteenbergenNoord-Brabant€77 m€85 m+10.0%+14%9 of 9
TerneuzenZeeland€229 m€252 m+10%+13%9 of 9
Hollands KroonNoord-Holland€155 m€170 m+9.9%+9.4%9 of 9
HoogeveenDrenthe€231 m€254 m+9.9%+16%8 of 9
RenswoudeUtrecht€19 m€21 m+9.8%+22%8 of 9
MeppelDrenthe€139 m€152 m+9.6%+19%8 of 9
StadskanaalGroningen€155 m€169 m+9.6%+14%9 of 9
DrimmelenNoord-Brabant€78 m€86 m+9.5%+17%9 of 9
ElburgGelderland€78 m€86 m+9.5%+15%7 of 9
Gemert-BakelNoord-Brabant€103 m€112 m+9.5%+17%9 of 9
LeusdenUtrecht€90 m€98 m+9.5%+19%9 of 9
ZandvoortNoord-Holland€76 m€83 m+9.5%+12%9 of 9
TeylingenZuid-Holland€104 m€114 m+9.4%+12%9 of 9
ZwartewaterlandOverijssel€76 m€83 m+9.4%+15%9 of 9
DiemenNoord-Holland€109 m€119 m+9.3%+18%7 of 9
LeeuwardenFryslân€689 m€752 m+9.2%+14%8 of 9
WijdemerenNoord-Holland€68 m€74 m+9.1%+14%9 of 9
ValkenswaardNoord-Brabant€108 m€117 m+9.0%+11%9 of 9
BronckhorstGelderland€109 m€118 m+8.9%+13%9 of 9
HaarlemNoord-Holland€754 m€821 m+8.9%+13%9 of 9
Land van CuijkNoord-Brabant€309 m€337 m+8.9%+17%3 of 9
CastricumNoord-Holland€95 m€103 m+8.8%+13%9 of 9
Gulpen-WittemLimburg€50 m€54 m+8.8%+11%9 of 9
Peel en MaasLimburg€127 m€139 m+8.8%+17%7 of 9
CranendonckNoord-Brabant€70 m€77 m+8.7%+19%8 of 9
NissewaardZuid-Holland€368 m€400 m+8.7%+15%9 of 9
VlaardingenZuid-Holland€380 m€413 m+8.7%+8.5%7 of 9
WeertLimburg€201 m€218 m+8.7%+12%9 of 9
WierdenOverijssel€73 m€79 m+8.7%+16%8 of 9
ZaanstadNoord-Holland€698 m€758 m+8.7%+14%9 of 9
BeverwijkNoord-Holland€156 m€170 m+8.6%+7.7%8 of 9
HardenbergOverijssel€248 m€269 m+8.6%+14%9 of 9
BladelNoord-Brabant€67 m€73 m+8.3%+10%9 of 9
EmmenDrenthe€505 m€547 m+8.3%+9.0%9 of 9
VoerendaalLimburg€38 m€41 m+8.3%+16%9 of 9
Berg en DalGelderland€121 m€130 m+8.2%+14%7 of 9
BestNoord-Brabant€94 m€101 m+8.2%+12%9 of 9
OverbetuweGelderland€145 m€157 m+8.2%+11%9 of 9
RhedenGelderland€175 m€190 m+8.2%+10%9 of 9
Hof van TwenteOverijssel€117 m€127 m+8.1%+14%8 of 9
ZwijndrechtZuid-Holland€177 m€192 m+8.1%+11%9 of 9
HeerenveenFryslân€212 m€229 m+8.0%+14%8 of 9
NoordwijkZuid-Holland€158 m€171 m+8.0%+14%9 of 9
VeereZeeland€88 m€95 m+8.0%+17%7 of 9
AssenDrenthe€393 m€424 m+7.9%+8.8%7 of 9
NijmegenGelderland€931 m€1,005 m+7.9%+13%9 of 9
WeststellingwerfFryslân€105 m€113 m+7.9%+13%9 of 9
Súdwest-FryslânFryslân€364 m€392 m+7.8%+8.9%9 of 9
ZaltbommelGelderland€101 m€109 m+7.8%+8.2%9 of 9
VoorschotenZuid-Holland€79 m€85 m+7.7%+5.3%8 of 9
KampenOverijssel€211 m€227 m+7.6%+99%9 of 9
NoordoostpolderFlevoland€176 m€189 m+7.6%+19%9 of 9
Geldrop-MierloNoord-Brabant€123 m€132 m+7.5%+9.9%9 of 9
's-GravenhageZuid-Holland€3,259 m€3,499 m+7.4%+25%9 of 9
EdeGelderland€465 m€499 m+7.4%+16%9 of 9
SoestUtrecht€149 m€160 m+7.4%+13%6 of 9
DrontenFlevoland€155 m€166 m+7.3%+12%7 of 9
GroningenGroningen€1,368 m€1,468 m+7.3%+13%8 of 9
Middelburg (Z.)Zeeland€214 m€230 m+7.3%+14%9 of 9
Bodegraven-ReeuwijkZuid-Holland€118 m€126 m+7.2%+9.9%9 of 9
HelmondNoord-Brabant€411 m€440 m+7.2%+17%9 of 9
SteenwijkerlandOverijssel€171 m€184 m+7.2%+16%9 of 9
VenrayLimburg€169 m€181 m+7.2%+21%9 of 9
WageningenGelderland€143 m€154 m+7.2%+15%9 of 9
DoesburgGelderland€47 m€51 m+7.1%+13%9 of 9
ReimerswaalZeeland€72 m€77 m+7.1%+23%9 of 9
WoerdenUtrecht€185 m€198 m+7.1%+11%8 of 9
De Ronde VenenUtrecht€139 m€149 m+7.0%+18%9 of 9
DordrechtZuid-Holland€699 m€747 m+7.0%+8.5%8 of 9
VlissingenZeeland€280 m€300 m+7.0%+8.3%5 of 9
DelftZuid-Holland€490 m€524 m+6.9%+12%8 of 9
Goeree-OverflakkeeZuid-Holland€180 m€192 m+6.9%+13%9 of 9
PapendrechtZuid-Holland€109 m€116 m+6.9%+6.4%9 of 9
TholenZeeland€91 m€97 m+6.9%+21%8 of 9
HaarlemmermeerNoord-Holland€602 m€642 m+6.7%+11%9 of 9
KatwijkZuid-Holland€230 m€245 m+6.7%+9.6%8 of 9
OegstgeestZuid-Holland€76 m€81 m+6.7%+7.3%9 of 9
TielGelderland€183 m€196 m+6.7%+11%9 of 9
OirschotNoord-Brabant€61 m€65 m+6.6%+25%7 of 9
Ouder-AmstelNoord-Holland€58 m€62 m+6.5%+6.3%8 of 9
SimpelveldLimburg€34 m€36 m+6.4%+14%9 of 9
ZoeterwoudeZuid-Holland€31 m€33 m+6.4%+8.7%7 of 9
BarneveldGelderland€191 m€203 m+6.3%+12%9 of 9
MedemblikNoord-Holland€159 m€169 m+6.3%+7.2%9 of 9
AmsterdamNoord-Holland€6,419 m€6,814 m+6.2%+7.3%8 of 9
ArnhemGelderland€932 m€990 m+6.2%+12%9 of 9
GeertruidenbergNoord-Brabant€76 m€80 m+6.2%+7.9%9 of 9
NijkerkGelderland€145 m€154 m+6.1%+8.8%8 of 9
BredaNoord-Brabant€876 m€929 m+6.0%+10%9 of 9
EnschedeOverijssel€890 m€944 m+6.0%+11%7 of 9
GennepLimburg€69 m€73 m+6.0%+5.6%9 of 9
Noord-BevelandZeeland€36 m€38 m+6.0%+20%9 of 9
Sittard-GeleenLimburg€454 m€481 m+6.0%+12%9 of 9
Bergen (L.)Limburg€43 m€46 m+5.9%+12%7 of 9
BloemendaalNoord-Holland€79 m€84 m+5.9%+8.4%9 of 9
Valkenburg aan de GeulLimburg€69 m€73 m+5.9%+12%9 of 9
Kaag en BraassemZuid-Holland€88 m€93 m+5.8%+16%9 of 9
EpeGelderland€111 m€117 m+5.7%+13%7 of 9
MaashorstNoord-Brabant€207 m€219 m+5.7%+15%3 of 9
OudewaterUtrecht€32 m€34 m+5.7%+13%8 of 9
RoerdalenLimburg€72 m€76 m+5.7%+15%8 of 9
UtrechtUtrecht€1,922 m€2,032 m+5.7%+9.5%9 of 9
RaalteOverijssel€127 m€134 m+5.6%+15%9 of 9
SmallingerlandFryslân€257 m€271 m+5.6%+9.9%6 of 9
HeemskerkNoord-Holland€133 m€140 m+5.5%+10%9 of 9
RucphenNoord-Brabant€78 m€82 m+5.5%+7.9%7 of 9
DoetinchemGelderland€300 m€316 m+5.2%+9.8%9 of 9
ErmeloGelderland€102 m€107 m+5.2%+15%9 of 9
MaassluisZuid-Holland€126 m€133 m+5.2%+15%8 of 9
CulemborgGelderland€101 m€106 m+5.1%+11%8 of 9
Etten-LeurNoord-Brabant€156 m€164 m+5.1%+10%8 of 9
Heeze-LeendeNoord-Brabant€52 m€54 m+5.1%+8.9%8 of 9
UithoornNoord-Holland€99 m€104 m+5.1%+8.6%7 of 9
KapelleZeeland€44 m€46 m+5.0%+16%9 of 9
MaastrichtLimburg€622 m€653 m+5.0%+11%7 of 9
HarlingenFryslân€81 m€85 m+4.8%+15%9 of 9
SchiedamZuid-Holland€371 m€389 m+4.8%+19%8 of 9
VaalsLimburg€44 m€46 m+4.7%+10%9 of 9
HillegomZuid-Holland€68 m€71 m+4.6%+14%8 of 9
HilversumNoord-Holland€380 m€397 m+4.6%+7.5%9 of 9
LeiderdorpZuid-Holland€87 m€91 m+4.6%+11%6 of 9
BeeselLimburg€48 m€50 m+4.5%+11%9 of 9
Hoeksche WaardZuid-Holland€263 m€274 m+4.5%+12%6 of 9
WaddinxveenZuid-Holland€111 m€116 m+4.4%+3.1%9 of 9
WassenaarZuid-Holland€93 m€97 m+4.4%+8.1%9 of 9
Bergen (NH.)Noord-Holland€100 m€104 m+4.3%+12%9 of 9
BoekelNoord-Brabant€34 m€35 m+4.3%+20%8 of 9
HeilooNoord-Holland€66 m€69 m+4.3%+14%8 of 9
MoerdijkNoord-Brabant€147 m€153 m+4.3%+6.3%9 of 9
MolenlandenZuid-Holland€131 m€136 m+4.3%+14%7 of 9
VelsenNoord-Holland€252 m€263 m+4.3%+13%8 of 9
AlmereFlevoland€1,070 m€1,115 m+4.2%+11%7 of 9
Krimpen aan den IJsselZuid-Holland€101 m€105 m+4.2%+8.2%9 of 9
SliedrechtZuid-Holland€98 m€102 m+4.2%+8.7%9 of 9
WaalwijkNoord-Brabant€209 m€217 m+4.1%+4.9%8 of 9
AmstelveenNoord-Holland€352 m€366 m+4.0%+9.3%9 of 9
Den HelderNoord-Holland€264 m€275 m+3.9%+5.7%9 of 9
HeumenGelderland€56 m€58 m+3.9%+2.0%9 of 9
ZundertNoord-Brabant€69 m€72 m+3.8%+7.6%8 of 9
Stein (L.)Limburg€84 m€87 m+3.7%+9.9%8 of 9
's-HertogenboschNoord-Brabant€833 m€863 m+3.6%+8.3%9 of 9
HellendoornOverijssel€123 m€127 m+3.6%+7.8%7 of 9
Rijswijk (ZH.)Zuid-Holland€243 m€252 m+3.6%+10%9 of 9
BlaricumNoord-Holland€41 m€43 m+3.5%+0.2%8 of 9
Pijnacker-NootdorpZuid-Holland€161 m€167 m+3.5%+5.3%7 of 9
OssNoord-Brabant€410 m€424 m+3.4%+9.2%8 of 9
ZutphenGelderland€218 m€226 m+3.3%+9.2%9 of 9
LochemGelderland€112 m€116 m+3.2%+13%9 of 9
Utrechtse HeuvelrugUtrecht€154 m€159 m+3.1%+5.4%9 of 9
BunnikUtrecht€47 m€48 m+3.0%+5.1%8 of 9
NieuwegeinUtrecht€248 m€256 m+3.0%+11%7 of 9
TynaarloDrenthe€105 m€108 m+3.0%+10%9 of 9
DrutenGelderland€68 m€70 m+2.8%+9.2%9 of 9
LansingerlandZuid-Holland€190 m€195 m+2.7%+12%9 of 9
RenkumGelderland€113 m€116 m+2.6%+5.1%8 of 9
OosterhoutNoord-Brabant€236 m€242 m+2.4%+8.8%7 of 9
Hengelo (O.)Overijssel€396 m€405 m+2.3%+8.7%9 of 9
KrimpenerwaardZuid-Holland€188 m€192 m+2.3%+6.4%9 of 9
SchagenNoord-Holland€152 m€156 m+2.2%+14%7 of 9
WaalreNoord-Brabant€48 m€49 m+2.2%+10%9 of 9
HarderwijkGelderland€207 m€211 m+2.1%+9.3%8 of 9
HeemstedeNoord-Holland€90 m€92 m+2.0%+6.7%9 of 9
TilburgNoord-Brabant€1,161 m€1,184 m+2.0%+8.1%7 of 9
LeidenZuid-Holland€675 m€688 m+1.9%+8.2%9 of 9
RotterdamZuid-Holland€4,703 m€4,787 m+1.8%+5.4%8 of 9
Capelle aan den IJsselZuid-Holland€280 m€285 m+1.7%+7.6%7 of 9
Oost GelreGelderland€99 m€101 m+1.7%+11%9 of 9
RhenenUtrecht€66 m€67 m+1.7%+8.1%9 of 9
BeuningenGelderland€85 m€87 m+1.6%+11%6 of 9
Midden-GroningenGroningen€305 m€310 m+1.6%+6.1%7 of 9
HoutenUtrecht€144 m€146 m+1.5%+9.3%8 of 9
OldebroekGelderland€91 m€93 m+1.5%+5.0%9 of 9
HaaksbergenOverijssel€84 m€85 m+1.2%+6.7%9 of 9
WesterwoldeGroningen€137 m€138 m+1.2%+15%7 of 9
Leidschendam-VoorburgZuid-Holland€288 m€291 m+1.1%+6.2%9 of 9
Laren (NH.)Noord-Holland€36 m€36 m+1.0%+2.6%9 of 9
VenloLimburg€553 m€557 m+0.7%+8.7%9 of 9
BeekdaelenLimburg€112 m€113 m+0.5%+13%5 of 9
Schouwen-DuivelandZeeland€155 m€156 m+0.5%+4.8%9 of 9
OpsterlandFryslân€101 m€101 m+0.4%+4.4%8 of 9
DalfsenOverijssel€100 m€100 m+0.3%+9.7%9 of 9
ZeewoldeFlevoland€86 m€86 m0%+12%6 of 9
Edam-VolendamNoord-Holland€115 m€115 m−0.1%+9.7%5 of 9
StaphorstOverijssel€60 m€60 m−0.1%+8.0%6 of 9
VeldhovenNoord-Brabant€158 m€158 m−0.1%+5.6%6 of 9
WijchenGelderland€141 m€141 m−0.1%+7.8%8 of 9
SluisZeeland€105 m€105 m−0.4%+17%7 of 9
LingewaardGelderland€149 m€148 m−0.6%+7.8%8 of 9
GorinchemZuid-Holland€177 m€175 m−0.8%+7.3%8 of 9
LelystadFlevoland€404 m€401 m−1.0%+7.1%7 of 9
Rijssen-HoltenOverijssel€124 m€123 m−1.0%+13%8 of 9
VlielandFryslân€11 m€11 m−1.1%+21%5 of 9
ZevenaarGelderland€183 m€180 m−1.3%+1.3%4 of 9
AmersfoortUtrecht€710 m€700 m−1.4%+4.3%6 of 9
GoesZeeland€195 m€191 m−1.7%+5.7%8 of 9
NieuwkoopZuid-Holland€87 m€85 m−2.0%+3.0%7 of 9
ZoetermeerZuid-Holland€539 m€528 m−2.0%+8.7%6 of 9
SchiermonnikoogFryslân€13 m€13 m−2.1%−5.5%8 of 9
KoggenlandNoord-Holland€79 m€75 m−4.2%+7.8%5 of 9
LeudalLimburg€113 m€106 m−5.8%+7.4%8 of 9
Bergen op ZoomNoord-Brabant€368 m€335 m−9.0%−6.4%7 of 9

Method

How this was measured

Every number on this site comes from what municipalities report themselves. Nothing is estimated or imputed; where data is missing or wrong, the page says so.

The reports

Every municipality files its budget and its accounts in one standard format: every policy area against every kind of cost and income, unedited, as public data. We read every filing since 2017: 6,713 reports, 2,495,775 filled lines.

Budget and actual

Budget is the primary budget the council adopts in November for the year ahead — the plan before the year begins. Actual is the annual accounts, filed the summer after. Amendments passed during the year are not in what municipalities file, so they are part of the gap: a council that approved more spending mid-year still shows as over its original plan. That is the question the site asks — how far the year moved from the plan.

What counts as spending

All costs (lasten) and income (baten) on the policy areas, as the BBV rules total them before reserves. Left out: the two lines that move money rather than spend it — reserve movements (0.10) and the year's result (0.11) — and land development (8.2, grondexploitatie), where land is bought, serviced and sold and its costs are capitalised as stock, so both sides swing with deals rather than services. Amounts are those of the latest release.

The rules

Every municipality must file its budget and its accounts, and file them right. A year without both reports leaves nothing to hold the plan against. A report whose negative spending lines add up to more than 5% of its total is a filing error — a budget does not plan negative youth care. Both count as a budget not met and rank first; a municipality that breaks the rules again is shown as such. In 2017–2025: 31 years without both reports, 11 with a filing error.

Comparable years

The comparison starts in 2017: the BBV reform replaced the old function codes with today's policy areas that year. The social domain was recoded in 2023 and again in 2025; youth care and Wmo care are held together across both recodings. Every municipality listed for a year is counted; the money is totalled over those that filed both reports. Mergers (388 municipalities in 2017, 342 now) change who is counted, never the totals of those that filed. A province is totalled over the municipalities it had in each year, by that year's map.

Public data

Budgets and accounts, population and municipal boundaries: CBS, CC BY 4.0. Compiled, checked and published by DopeCode. Updated 3 November 2026; the figures are fetched again whenever new reports are out.