Piekbuiberging

Deze indicator zet de bergingsopgave bij hevige neerslag in bestaand bebouwd gebied af tegen de blauw-groene bergingscapaciteit die in het zichtjaar beschikbaar komt. Hij wordt per casus en per zichtjaar berekend, gerapporteerd op een grid van 500 meter en geaggregeerd naar de indicatorregio en voor heel Nederland.

Let op: dit is de indicator die de stedelijke bergingsopgave en de gerealiseerde retentie boekhoudt. Niet te verwarren met de sector waterberging, de landgebruiksklasse die per waterbergingsregio wordt gealloceerd om het veen nat te houden. Die staat beschreven in Uitwerking waterberging.

De indicator heette tot #720 waterberging, precies zoals die sector, en stond onder die naam ook in de opleveringstabel. Sindsdien heet hij piekbuiberging, in de configuratie en in de kolomnamen. Wie een oudere uitdraai leest vindt daar nog Waterberging_Vraag, Waterberging_RestvraagPositief en Waterberging_Afname.


Plaats in de boom

De indicator hangt onder elke casus en elk zichtjaar:

/Indicatoren/<casus>/Zichtjaren/<jaar>/Piekbuiberging

De definitie erft van het basisjaar (container Piekbuiberging := Basisjaar/Piekbuiberging, cfg/main/Templates/Indicatoren/Piekbuiberging.dms) en voegt via #include<Aanbod.dms> het zichtjaar-aanbod toe. De opgave wordt op het AdminDomain van 25 meter bepaald en daarna gesommeerd naar het rapportagegrid van 500 meter (Grid_ref = '500m', Geography/rdc_500m).

Opgave

De opgave is de bergingsopgave bij een hevige neerslaggebeurtenis. Hij wordt eenmalig in het basisjaar bepaald (Basisjaar/Piekbuiberging in cfg/main/Templates/Indicatoren_T/Basisjaar.dms) en per zichtjaar overgenomen:

Opgave = WaterdiepteBijHevigeNeerslag x NrMeter2PerCell x BestaandBebouwdGebied

De waterdieptekaart komt van Deltares en staat in SourceData/Water. Welke kaart wordt gebruikt bepaalt de parameter Kans_ref: die stond tot augustus 2026 op 100 en staat sindsdien op 1000, dus de indicator rekent nu met WaterdiepteBijHevigeNeerslag_T1000 in plaats van de T100-kaart. Beide zijn rasters van 25 meter; de T100-kaart is van december 2025, de T1000-kaart van januari 2026. Bij een zwaardere bui staat er meer water, dus de opgave is met die omzetting groter geworden en de ingevulde fractie navenant kleiner: over bebouwd gebied geeft de T100-kaart 347,3 mln m3 en de T1000-kaart 497,0.

Wat de bronkaart voorstelt

Beide kaarten komen uit de reeks waterdiepte bij kortdurende hevige neerslag van de Klimaateffectatlas. Die reeks is doorgerekend voor drie bui-intensiteiten, 35, 70 en 140 mm in twee uur, met herhalingstijden van ongeveer 10, 100 en 1000 jaar. De kaart die RSopen gebruikt hoort dus bij 140 mm in twee uur. Tot #741 noemde de configuratie bij allebei de kaarten 70 mm, wat voor een 1/1000-gebeurtenis niet kan; dat is gecorrigeerd.

Vier aannames uit de bijsluiter bepalen wat de kaart wel en niet vertelt, en ze komen alle vier verderop op deze pagina terug.

  • Riool. De bergings- en afvoercapaciteit is 20 mm per uur, dus over de twee bui-uren verdwijnt tot 40 mm voordat er iets blijft staan. Aangenomen is daarbij dat de verharde buitenruimte in de bebouwde kom optimaal op het riool is aangesloten.
  • Simulatieduur. De kaart geeft de maximaal opgetreden waterdiepte over een bui van twee uur plus vier droge uren. Het maximum treedt per cel op een eigen moment op.
  • Oppervlaktewater. De interactie met het oppervlaktewatersysteem is verwaarloosd en oppervlaktewater heeft een onbeperkte bergingscapaciteit. Dat is aan de kaart te zien: cellen die binnen bebouwd gebied voor minstens 99 procent uit water bestaan staan gemiddeld op 2,4 mm.
  • Hoogtemodel. AHN2, ingemeten tussen 2007 en 2012, met de expliciete kanttekening dat de kaart niet bruikbaar is voor bebouwing van na 2012. Van de begrenzing bebouwd gebied van 2022 was 56.813 ha in 2012 nog geen bebouwd gebied, 12,3 procent van het oppervlak en 9,3 procent van de opgave.

De kaart is aan twee kanten afgekapt, gemeten op het geleverde raster in september 2026. Onderaan op 0,05 m, de klassegrens waaronder de Klimaateffectatlas een locatie als droog toont: er is geen enkele cel met een waarde tussen 0 en 0,05 m, en binnen bebouwd gebied staan 791.483 cellen op exact 0,05 m, samen 24,7 van de 497,0 mln m3. Bovenaan op precies 0,30 m: 63.986 cellen binnen bebouwd gebied, samen 12,0 mln m3, dus de diepe plekken zijn afgesneden. Daartussen is de kaart continu en niet in klassen geleverd, ruim vijftien miljoen unieke waarden. Wat er onder de ondergrens is gebeurd, op nul zetten of ophogen naar 0,05, is uit het raster niet te zien.

Is de opgave een gelijktijdig volume

Niet per cel, en dat is een eigenschap van de bronkaart en niet van RSopen. Een optelling van celmaxima is geen volume dat ergens tegelijk op straat staat.

Er is wel een plafond om het totaal aan af te meten. De maaiveldberging van een gebied piekt aan het einde van de bui: daarna is er geen bron meer en zijn er twee putten, riool en bodem. Het grootste gelijktijdige volume is dus de neerslag min wat riool en bodem in die twee uur hebben weggenomen, ongeacht waar het water staat.

De 497,0 mln m3 komt over de 460.880 ha bebouwd gebied neer op een gebiedsgemiddelde waterschijf van 107,8 mm. Bij 140 mm bruto en een riool van 20 mm per uur over het hele oppervlak is het plafond 100 mm en ligt de opgave er 7,8 procent boven. Werkt die 20 mm per uur alleen op het aangesloten verharde deel, dat binnen bebouwd gebied 54,4 procent van het oppervlak is, dan is het plafond 118 mm en zit de opgave er comfortabel onder. De bijsluiter laat beide lezingen toe. De verhouding tussen de som van celmaxima en het werkelijke gelijktijdige volume ligt daarmee tussen ongeveer 1,0 en 1,5, met de rioollezing en de infiltratiecapaciteit als de twee onbekenden. Als landelijke bergingsopgave is het getal dus bruikbaar, met die marge erbij.

Lokaal is het effect groter. Over de 125 blokken van 2 km die voor minstens 95 procent uit bebouwd gebied bestaan is het gemiddelde 113,9 mm, de mediaan 113,8 en het maximum 161,9 mm. Dat maximum ligt boven de bruto neerslag, en zo’n blok is voor een bui van twee uur bijna gesloten, dus instroom van buiten kan de verklaring niet zijn. De niet-gelijktijdigheid is dus reëel en zit vooral in de ruimtelijke verdeling. Zie [[Piekbuiberging#aanbod-boven-de-blokopgave Aanbod boven de blokopgave]].

Het masker BestaandBebouwdGebied is de eigen begrenzing bebouwd gebied (BaseData/Omgeving/UrbanContour, tot september 2026 BBGSamengesteld), met het peiljaar uit ModelParameters/BegrenzingBebouwdGebied_jaar. Dat zijn vlakken op volle resolutie, dus dorpen en dorpsranden vallen erbinnen en verspreide bebouwing erbuiten. Buiten die begrenzing is de opgave nul. Sinds #741 geldt datzelfde masker ook voor het aanbod, zodat opgave en aanbod op hetzelfde gebied slaan.

In het basisjaar geldt Restopgave = Opgave. Dat is een bewuste aanname: eventueel al aanwezige bergingscapaciteit telt als verbruikt, en alles wat de indicator in een zichtjaar aan aanbod optelt komt daar bovenop.

Aanbod

Het aanbod is de extra bergingscapaciteit in m3 die door blauw-groene maatregelen in het zichtjaar beschikbaar komt (Aanbod.dms). Het wordt per cel van 25 meter bepaald en gesplitst naar cellen waar de allocatie wel of niet heeft toegeslagen:

Aanbod/Totaal = WaarAllocatieHeeftPlaatsgevonden/Totaal + WaarGeenAllocatieHeeftPlaatsgevonden/Totaal

De scheidslijn is Stand/Sector_rel. Die is gevuld zodra de allocatie de cel sinds het basisjaar heeft aangeraakt, dus de tweede tak gaat over alles wat sindsdien onaangeroerd is gebleven.

Maatregelen en bergingscapaciteit

Elke maatregel is een oppervlak maal een fractie maal een bergingscapaciteit in m3 per m2. Die capaciteiten staan in Classifications/WaterretentieK, met als bron de tabellen aanleg- en beheerkosten van Deltares.

Maatregel m3/m2 Bij nieuwe ontwikkeling In bestaand gebied
GroenDak 0,01 wonen, werken, verblijfsrecreatie, op het platte deel van het dak ja, op het platte deel van de bestaande daken
BlauwDak 0,10 wonen, werken, verblijfsrecreatie, alleen op het platte deel van het dak ja, alleen op het platte deel van de bestaande daken
GroenDakSchuin 0,00 het schuine deel van een groen dak het schuine deel van een groen dak
Halfverharding 0,05 wonen, werken, verblijfsrecreatie ja, via de BGT
Wadi 0,30 wonen, werken, verblijfsrecreatie ja, via de BGT
HolleWeg 0,10 wonen, werken, verblijfsrecreatie, op het wijkwegdeel van de openbare verharding ja, via de BGT
HalfverhardingWijkweg 0,05 nee, daar dekt Halfverharding de hele openbare verharding ja, via de BGT
HalfverhardingWoonerf 0,05 nee, idem ja, via de BGT
HalfverhardingInrit 0,05 nee, idem ja, via de BGT
DoorlatendGroen 0,05 alleen wonen, alleen op hoge gronden ingebouwd, bron nog leeg
BergingOpWater 0,50 alleen wonen ingebouwd, bron nog leeg
Waterplein 0,75 nee nee
InfiltratieveldMetOpslag 0,80 nee nee
Infiltratiekratten 0,40 nee nee

De onderste drie staan in de klassificatie maar worden nergens toegepast: er is geen kaart die zegt waar ze liggen of kunnen liggen. Dat is precies wat de vlag HeeftBenodigdeVelddata regelt. De subset MetBenodigdeVelddata bevat de acht maatregelen die in bestaand gebied uit een oppervlaktekaart kunnen worden afgeleid, en de bestaand-gebied-tak loopt daaroverheen. De klassificatie draagt ook aanleg- en onderhoudskosten per m2; die worden door deze indicator niet gebruikt, want er is nog geen kostenindicator voor waterberging.

Naast WaterretentieK staat er een ongebruikte WaterretentieKOrg in de configuratie: de oorspronkelijke aanlevering van acht maatregelen, in 2025 door Deltares geleverd voor het PBL-project Herijking klimaatrisico’s NAS. Verschil met de reeks die nu gebruikt wordt: DoorlatendGroen en BergingOpWater zijn erbij gekomen, en de wadi is van 0,35 naar 0,30 m3/m2 gegaan.

Waarom de halfverharding in vier klassegroepen uiteenvalt

Halfverharding, HalfverhardingWijkweg, HalfverhardingWoonerf en HalfverhardingInrit dragen alle vier hetzelfde kental van 0,05 m3/m2. Ze bestaan sinds #757 los van elkaar omdat het aandeel dat werkelijk halfverhard wordt per variant kan verschillen per soort oppervlak, en dat aandeel is een variantparameter. De BGT-klassenkaart wordt weggeschreven voordat de variant bekend is, dus een aandeel per variant kan alleen als een eigen kaart met een eigen fractie. Welke BGT-klassen in welke groep vallen staat in Classifications/Grondgebruik/BGT.dms:

Groep BGT-klassen Oppervlak landelijk
Halfverharding fietspad, parkeervlak, voetgangersgebied, voetpad, de onbegroeide terreindelen met open of gesloten verharding en enkele functionele gebieden zoals sportterrein en begraafplaats 383,6 mln m2
HalfverhardingWijkweg rijbaan lokale weg, OV-baan 391,8 mln m2
HalfverhardingWoonerf woonerf 2,3 mln m2
HalfverhardingInrit inrit 22,6 mln m2

Twee dingen vallen daaraan op. De wijkweg is in oppervlak de grootste van de vier, en het woonerf is verwaarloosbaar: de BGT registreert het overgrote deel van wat in het spraakgebruik een woonerf is als rijbaan lokale weg. De rijbaan van een regionale weg valt in geen enkele groep en krijgt dus nooit een maatregel.

De wijkwegklassen staan ook in de kaart van de holle weg. Dat is bedoeld: een straat kan tegelijk een doorlatende verharding en een hol profiel hebben, en dan tellen de twee kentallen op tot 0,15 m3/m2 op het deel waar beide liggen. Deltares gaf in #757 voor de bestaande stad aan dat in de NbS-varianten alle wijkwegen halfverhard zijn en dat daarvan 30 procent hol is; dat is alleen te lezen als twee lagen op hetzelfde oppervlak, want als verdeling zouden de twee percentages elkaar tegenspreken.

Platte en schuine daken

Sinds #746 maakt de indicator onderscheid tussen het platte en het schuine deel van een dak. Team Stad van Deltares stelde dat een blauw dak alleen op een plat dak kan, in bestaande en nieuwe stad, en dat een groen dak op een schuin dak niets bergt. Dat besluit is naar de letter doorgevoerd, met twee mechanismen. Het groene dak ligt op het hele dak en krijgt op het schuine deel het kental van de rij GroenDakSchuin in WaterretentieK, en dat is nul: het schuine deel wordt wel groen maar bergt niets. Het blauwe dak ligt alleen op het platte deel, dus de blauwe fractie per variant is een aandeel van de platte daken. In m3 komen beide vormen op hetzelfde neer; in m2 niet, en het aangelegde oppervlak per dakvorm blijft in de items zichtbaar.

De BAG kent geen dakvorm. De container ModelParameters/Piekbuiberging/Dakvorm draagt daarom een proxy op basis van het pandtype van het model: een meergezinspand (appartementen) en een werkpand gelden als plat, een eengezinspand en een verblijfsrecreatiepand als schuin. Dat is een aanname en geen zuivere boven- of ondergrens: onder appartementen en werkpanden zit schuin gedekte bebouwing, onder eengezinswoningen zitten bungalows en andere platte daken, en de pandtypering rekent een gesplitst pand met meer dan een woning tot de appartementen. De fracties staan als getal in die container (FractiePlatDak per WP2, FractiePlatDakWerken en FractiePlatDakVerblijfsrecreatie), zodat een betere bron, bijvoorbeeld het daktype per pand uit 3D BAG, alleen een getal verandert en geen code. In dezelfde container staan sinds #746 ook de blokmaat, de keuze van de dieptekaart en het tijdprofiel, zodat alle parameters van de indicator in de metadata van een levering verschijnen.

Waar het platte aandeel vandaan komt verschilt per tak. In bestaand gebied levert BaseData/StateBasisjaar/Wonen/Footprint_WP2 de woonfootprint per cel per woningtype, rechtstreeks uit de BAG-panden van het basisjaar via dezelfde toedelingsmatrix als de stand; de verhouding daarvan wordt op de standfootprint gezet, zodat het totale dak precies de stand blijft, en een controle toetst dat de twee delen samen op de stand uitkomen; de werkfootprint telt geheel als plat. In nieuwe ontwikkeling volgt het aandeel uit het woningtype van het ontwikkelpakket van de cel, en bij BAG-nieuwbouw uit de woningtelling van de cel; nieuwe werkpanden zijn plat, nieuwe verblijfsrecreatie schuin.

Ter illustratie de meting op de standen van zichtjaar 2040 in de ontwikkelomgeving van de NL2120-toepassing (3 september 2026, geen eigenschap van de indicator): het platte aandeel van de bestaande daken komt op 48,9 procent, het dakenaanbod in bestaand gebied halveert daardoor in elke variant, en in NbSGenuanceerd krijgen nieuwe werkpanden 3,9 mln m3 blauw dak dat er tot dan niet was. De dekkingsgraad ging in die variant van 28,4 naar 23,0 procent.

Waar (her)ontwikkeling heeft plaatsgevonden

Voor cellen waar wonen, werken of verblijfsrecreatie is gealloceerd wordt het aanbod uit het ontwikkelpakket afgeleid. Bij wonen telt het aanbod op uit zeven onderdelen:

  • Groene en blauwe daken op het platte deel van de nieuwe panden, over de pandfootprint uit de stand, afgekapt op het celoppervlak. Het platte aandeel komt uit het woningtype van het ontwikkelpakket, zie Platte en schuine daken hierboven.
  • Halfverharding op het verharde uitgeefbare terrein en, met een eigen fractie, op het verharde openbare terrein.
  • De holle weg op het wijkwegdeel van het verharde openbare terrein, sinds #757. Het ontwikkelpakket kent geen rijbaan apart, dus welk deel van de openbare verharding rijbaan is staat als AandeelWijkwegInOpenbareVerharding in ModelParameters/Piekbuiberging. De fractie in VariantK slaat daardoor op de wijkweg zelf, net als in bestaand gebied, en de twee zijn onderling vergelijkbaar. Op uitgeefbaar terrein komt geen holle weg, want daar ligt geen straat.
  • Wadi’s op het uitgeefbare en het openbare gras.
  • Doorlatend groen op het deel van het gras dat geen wadi wordt, en op het overige groen, dus het niet-gras deel.
  • Berging op het wateroppervlak van het ontwikkelpakket, via peilopzet.

De terreinaandelen komen uit het ontwikkelpakket van de cel (OP_Buurt/Terreinoppervlakte, uitgesplitst naar uitgeefbaar en openbaar en naar verhard, gras, overig groen en water). Voor gealloceerde BAG-nieuwbouw is er geen ontwikkelpakkettypologie om op te steunen en valt de berekening terug op de werkelijke pandfootprint plus de standaardaannames uit ModelParameters/Wonen: de helft van het restterrein is uitgeefbaar, tien procent daarvan is verhard en veertig procent van het groen is gras. BAG-nieuwbouwcellen worden herkend aan de expliciete vlag IsBAGnieuwbouwWonen en niet meer aan een lege OP_rel, want sinds #550 hebben ook BAG-cellen een gematchte OP. In de BAG-tak zit geen water, en dat is een aanname en geen meting.

Zes van de zeven termen hadden die tak op BAG-nieuwbouw en de zevende, berging op water, niet: die zocht altijd op OP_rel op. Sinds #741 volgen alle zeven dezelfde tak. Dat kost 12,9 mln m3 aan wateraanbod in de NL2120-toepassing, variant NbSGenuanceerd, zichtjaar 2120, en het meeste daarvan lag buiten bestaand bebouwd gebied.

De optelling van de zeven termen

De zeven maatregelen worden sinds #741 elk met MakeDefined opgeteld en niet meer als kale som. Dat is geen stijlkwestie. Een float-null propageert door een optelling heen, dus een enkele ontbrekende term maakte het hele celtotaal null, waarna een MakeDefined een laag hoger er stil nul van maakte. Zo’n cel leverde dan niets, ook niet de zes termen die er wel stonden. Nu betekent een ontbrekende term alleen dat die maatregel daar nul oplevert, wat op elk van de zeven de bedoelde uitleg is. De diagnose-uitdraai telt de cellen met een ontbrekende term als nb_cellen_termnull, zodat een toename opvalt.

Wat die nullen veroorzaakte staat onder [[Piekbuiberging#historie Historie]]: een schrijffout die twee van de zeven termen op elkaar deelde in plaats van ze op te tellen.

Twee begrenzingen zitten in de wonen-tak zelf. Doorlatend groen telt alleen op de hoge gronden (NbSOPToepassingsgebied/Hoog_NL, sinds #698 de pleistocene helft van de Basiskaart Natuurlijk Systeem Nederland en niet langer de cellen zonder overstromingsdiepte, zie Beschikbaarheid onder Hoge en lage gronden), want infiltreren in de laaggelegen delen levert geen berging op. En de fractie doorlatend groen wordt begrensd op wat er na de wadi-fractie overblijft, zodat hetzelfde gras niet twee keer wordt ingezet.

Werken en verblijfsrecreatie lopen via een gedeeld sjabloon (WerkenEnVerblijfsrecreatie) en kennen vier containers met vijf maatregelen: groene en blauwe daken, halfverharding op uitgeefbaar en openbaar verhard terrein, de holle weg op het wijkwegdeel van dat openbare terrein, en wadi’s op uitgeefbaar en openbaar gras. Geen doorlatend groen en geen berging op water. De blauwe dakterm is er sinds #746: niet-woonpanden zijn onder de dakvormproxy juist plat, en tot dan leverden nieuwe werkdaken in een variant met een groene fractie van nul niets. Zij hebben geen ontwikkelpakketten, dus de terreinaandelen komen uit VariantParameters/FractiesGroenInWerken en FractiesGroenInVerblijfsrecreatie. Verblijfsrecreatie telt alleen mee wanneer die sector in ModelParameters/SectorAllocRegio actief is; staat hij uit, dan valt de term uit de som.

Waar geen (her)ontwikkeling heeft plaatsgevonden

Voor de overige cellen zijn er twee termen.

Groene en blauwe daken op de bestaande bebouwing: het platte deel van het dakoppervlak maal FractieGroenDakBestaandeBouwIn2050 en FractieBlauwDakBestaandeBouwIn2050 maal de bergingscapaciteit van een groen respectievelijk blauw dak; het schuine deel bergt niets, zie Platte en schuine daken hierboven. Het dakoppervlak is de som van de pandfootprint van wonen en werken in het basisjaar. De footprint van verblijfsrecreatie telt daar niet bovenop, ook al bestaat die uit echte panden. Logiespanden vallen via vbo_gebruiksdoel_plus_ref onder de Jobs6-subsector Ov_consumentendiensten en zitten daarmee al in de werken-footprint. Wonen plus werken dekt zo de hele BAG-pandfootprint, op de restcategorie overige gebruiksfunctie na.

Beide termen kunnen een tijdprofiel krijgen. De fracties dragen 2050 in hun naam, maar zonder profiel gelden ze al volledig in het eerste zichtjaar en veranderen ze daarna niet meer, zodat de dekkingsgraad in bestaand gebied een vlakke lijn is. De schakelaar OpbouwBestaandGebied in ModelParameters/Piekbuiberging laat het aanbod in bestaand gebied lineair oplopen van nul in het basisjaar naar de volle fractie in OpbouwEindjaar (2050); met zichtjaren in stappen van tien jaar raakt dat alleen het eerste zichtjaar, waar de factor 17/27 is. De schakelaar staat aan sinds 3 september 2026, op verzoek van Deltares in #746; FALSE is de stand van daarvoor. Gemeten op de standen van 2040 in de NL2120-toepassing (3 september 2026): het aanbod in bestaand gebied gaat in het eerste zichtjaar met factor 17/27 omlaag, in NbSGenuanceerd van 199,3 naar 125,5 mln m3, en de dekkingsgraad daar van 23,1 naar 15,9 procent; vanaf 2050 is er geen verschil meer. Nieuwe ontwikkeling heeft dit profiel niet nodig, want die komt mee met de allocatie.

Maatregelen op overig terrein: voor elk van de acht maatregelen met velddata levert de BGT een capaciteitskaart in m2 (SourceData/Grondgebruik/BGT), die maal de variantfractie en maal de bergingscapaciteit gaat. De zes kaarten voor halfverharding, wadi, holle weg, wijkweg, woonerf en inrit worden op 2,5 meter uit de BGT-vlakken afgeleid en naar 25 meter opgeteld. Ze worden weggeschreven door WriteBaseData/Impl/WaterbergingCapaciteit; die stap stond van augustus 2026 tot #757 uitgeschakeld op de aanname dat de lagen geen lezer hadden, terwijl juist deze tak ze leest. Ontbreken ze, dan meldt de keten per kaart een leesfout zonder dat de run omvalt, en komt het aanbod te laag uit. De kaarten voor doorlatend groen en berging op water staan nog op nul, in afwachting van de invoer voor de bestaande stad; hun variantfracties staan op dit moment ook op nul, dus die twee maatregelen zijn nu alleen in nieuwe ontwikkeling actief.

Fracties per variant

Welk deel van elk oppervlak daadwerkelijk als maatregel wordt uitgevoerd staat per variant in VariantParameters/VariantK. Welke varianten er zijn hoort bij de toepassing en niet bij het model; ter illustratie de waarden van de vier varianten uit Toepassing NL2120, waar BAU en BAU2 een terughoudende inschatting hanteren en de twee NbS-varianten een ambitieuze.

Parameter BAU BAU2 NbSMax NbSGenuanceerd
FractieGroenDakNieuwbouw 0,30 0,30 0,00 0,00
FractieBlauwDakNieuwbouw 0,00 0,00 1,00 0,70
FractieHalfverhardingNieuwbouwUitgeefbaar 0,10 0,10 0,30 0,30
FractieHalfverhardingNieuwbouwOpenbaar 0,00 0,00 1,00 1,00
FractieHolleWegNieuwbouwWijkweg 0,10 0,10 0,30 0,30
FractieWadiNieuwbouwUitgeefbaarGras 0,05 0,05 0,30 0,30
FractieWadiNieuwbouwOpenbaarGras 0,10 0,10 0,50 0,50
FractieDoorlatendGroenNieuwbouw 0,00 0,00 1,00 1,00
FractieBergingOpWaterNieuwbouw 0,00 0,00 1,00 1,00
FractieGroenDakBestaandeBouwIn2050 0,30 0,30 0,00 0,00
FractieBlauwDakBestaandeBouwIn2050 0,00 0,00 1,00 0,70
FractieWaterretentieCapaciteitHalfVerharding 0,00 0,00 1,00 1,00
FractieWaterretentieCapaciteitHolleWeg 0,10 0,10 0,30 0,30
FractieWaterretentieCapaciteitHalfverhardingWijkweg 0,00 0,00 1,00 1,00
FractieWaterretentieCapaciteitHalfverhardingWoonerf 0,00 0,00 1,00 1,00
FractieWaterretentieCapaciteitHalfverhardingInrit 0,00 0,00 0,00 1,00
FractieWaterretentieCapaciteitWadi 0,10 0,10 0,50 0,50
FractieWaterretentieCapaciteitDoorlatendGroen 0,00 0,00 0,00 0,00
FractieWaterretentieCapaciteitBergingOpWater 0,00 0,00 0,00 0,00

De bovenste negen gelden bij nieuwe ontwikkeling, de onderste negen in bestaand gebied. Groen en blauw dak wisselen elkaar af: in de NbS-varianten gaat het nieuwbouwdak van groen naar blauw, en dat is een tienvoudige bergingscapaciteit per m2. De laatste twee regels horen bij de kaarten die nog op nul staan.

De waarden voor de halfverharding en voor de klassegroepen komen sinds #757 van team Stad van Deltares en zijn geen inschatting van het model: geen infiltratie in de BAU-varianten, en in beide NbS-varianten wordt alles wat halfverhard kan worden dat ook. De inrit is het enige dat de twee NbS-varianten onderscheidt, omdat NbSMax geen voortuinen met inritten meer kent en een inrit die er niet is ook niet halfverhard kan zijn. Het woonerf staat in beide op 1,00, want dat is openbare ruimte en staat los van de tuinindeling.

Ter illustratie de meting op de standen van zichtjaar 2040 in de ontwikkelomgeving van de NL2120-toepassing (3 september 2026, geen eigenschap van de indicator): in NbSGenuanceerd gaat het aanbod binnen bestaand bebouwd gebied door deze reeks wijzigingen van 79,4 naar 90,3 mln m3 en de dekkingsgraad van ongeveer 15,9 naar 18,1 procent. De wijkweg levert daarvan 6,2 mln m3, de verhoging van de halfverharding 3,9, en woonerf en inrit samen 0,3. In BAU werkt het andersom, want daar valt de halfverharding weg: het aanbod gaat van 10,9 naar 10,7 mln m3 en de dekkingsgraad van 2,20 naar 2,15 procent.

Wegstrepen per blok

Op het grid van 500 meter worden opgave en aanbod tegen elkaar weggestreept. De namen hieronder gelden sinds #720; daarvoor heetten ze Vraag, Restvraag, RestvraagPositief, Afname en Relatief.

Attribuut Formule Betekenis
Aanbod aanbod in het blok, gemaskeerd op bestaand bebouwd gebied de capaciteit die tegen de opgave mag worden weggestreept
AanbodBuitenBBG AanbodOngemaskeerd min Aanbod capaciteit buiten de begrenzing, telt niet mee
AanbodOngemaskeerd alle capaciteit in het blok alleen als controlesom, de twee erboven tellen hiertoe op
Restopgave Opgave min Aanbod resterende opgave, kan negatief zijn bij overcapaciteit
Ongedekt max(Restopgave, 0) nog niet ingevulde opgave
AanbodZonderOpgave max(Aanbod min Opgave, 0) aanbod dat in zijn blok geen opgave tegenkomt en dus uit de dekkingsgraad valt
Gedekt Opgave min Ongedekt deel van de opgave dat is ingevuld, begrensd op de opgave
Dekkingsgraad Gedekt gedeeld door Opgave fractie van de opgave die is ingevuld, 0 tot 1
Dekkingsgraad_Ongeklemd min(Aanbod, Opgave) gedeeld door Opgave dezelfde fractie zonder de klemming per blok, alleen op regio- en NL-niveau

De maskering van het aanbod

Tot #741 was de opgave op celniveau op bestaand bebouwd gebied gemaskeerd en het aanbod niet. Binnen een blok telde daarna alles mee, dus een uitleglocatie tegen de dorpsrand streepte de plassen in de oude kern weg. Dat lek groeide bovendien met de tijd, want het model bouwt aan de stadsrand terwijl de begrenzing op het basisjaar bevroren staat. Sinds #741 draagt het aanbod hetzelfde masker als de opgave.

Gemeten in de NL2120-toepassing, variant NbSGenuanceerd, zichtjaar 2120, op de standen van 1 september 2026, met de aanbodkant in beide kolommen op de code van vóór de reparatie uit [[Piekbuiberging#historie Historie]], zodat alleen de maskering verschilt:
  zonder maskering met maskering
aanbod (mln m3) 361,3 146,1
aanbod buiten bebouwd gebied (mln m3) niet geteld 215,3
gedekte opgave (mln m3) 185,3 145,5
dekkingsgraad 37,3 procent 29,3 procent

Met die reparatie erbij komt het aanbod op 145,5 mln m3 en de dekkingsgraad op 29,1 procent. Het aanbod buiten bebouwd gebied stijgt dan naar 234,9, want de teruggekomen grastermen liggen grotendeels aan de stadsrand.

Er hangt een gevolg aan dat bij het lezen van de kaart telt: nieuwbouw die net buiten de basisjaarbegrenzing landt is in het zichtjaar wel degelijk stad en bergt daar echt water, maar levert in deze indicator noch opgave noch aanbod. Dat is de prijs van symmetrie zolang de dieptekaart een basisjaargrootheid op AHN2 is. Een dieptekaart die met de stad meebeweegt zou dat oplossen; die is er niet.

En de post die eruit valt is niet nul waard. Bebouwd gebied is geen gesloten systeem: het is 13,7 procent van het land en de grens loopt dwars door stroomgebieden heen. Een deel van de plassen binnen de kom bestaat uit water dat van buiten kwam, naar schatting 7 tot 30 procent van de opgave, afhankelijk van dezelfde rioollezing en infiltratiecapaciteit als hierboven. Berging bovenstrooms van de kom zou dat echt verkleinen. De juiste variabele is dus niet binnen of buiten de bebouwde kom maar bovenstrooms of benedenstrooms, en die is er niet. Maskeren op de begrenzing heeft het teken goed en de geometrie fout: het gooit de nuttige bovenstroomse rand weg samen met de nutteloze benedenstroomse. De oude regel deed het omgekeerde, en veel erger, want die schreef aan beide soorten volledig krediet toe over de 500.851 ha niet-bebouwd gebied die in de blokken met opgave lag.

Aanbod boven de blokopgave

Aanbod boven de opgave in hetzelfde blok vervalt. Het kan niet naar een naburig blok stromen, want er zit geen afstroming in het model. Tot #741 was dit de grootste enkele post van de indicator: 176,0 van 361,3 mln m3, oftewel 48,7 procent van het aanbod. Met de maskering hierboven is er 0,777 mln m3 van over, 0,5 procent van het aanbod.

Dat overschot bestond dus vrijwel geheel uit aanbod buiten bebouwd gebied dat in een randblok tegen een kleine opgave aanliep, en niet uit een echte overmaat aan berging op de plek van de opgave. Sinds de maskering ligt het aanbod vrijwel overal ruim onder de blokopgave. De post staat als AanbodZonderOpgave in de uitdraai, met de ongeklemde dekkingsgraad ernaast, zodat per run te zien is of dat zo blijft.

Wat de blokmaat doet met de uitkomst

Grid_ref heeft twee standen, 100m en 500m, en staat op 500m. Deltares zette hem in januari 2026 van 100 naar 500 meter. Er is geen onderbouwing in de configuratie voor welke afstand de goede is. Gemeten in de NL2120-toepassing, variant NbSGenuanceerd, zichtjaar 2120, na de maskering van #741:

blokmaat gedekt (mln m3) aanbod zonder opgave (mln m3) dekkingsgraad
100 meter 137,3 8,196 27,6 procent
500 meter 144,7 0,777 29,1 procent
geen klemming, heel Nederland 145,5 0,0 29,3 procent

De opgave (497,0 mln m3) en het aanbod (145,5 mln m3) zijn in alle drie de regels dezelfde getallen; alleen de afstand waarover ze elkaar mogen vinden verschilt. De hele spreiding is nu 1,7 procentpunt.

Vóór #741 was dat anders. Gemeten op dezelfde standen met het aanbod nog ongemaskeerd stond er 29,8 procent op 100 meter, 37,3 procent op 500 meter en 72,7 procent ongeklemd, met 213,0, 176,0 en 0,0 mln m3 aanbod zonder opgave. De blokmaat leek daarmee de op een na grootste knop van de indicator. Dat was hij niet: wat de blokmaat wegstreepte was vooral aanbod buiten bebouwd gebied dat in een randblok tegen een kleine opgave aanliep. Zodra opgave en aanbod op hetzelfde gebied slaan houdt de klemming nauwelijks nog iets tegen. De twee knoppen hingen ook meetbaar samen: in de blokken met opgave ligt op 500 meter 500.851 ha buiten de begrenzing en op 100 meter 89.742 ha.

Lees de dekkingsgraad nog steeds als een uitkomst met een marge en niet als een puntgetal, en vergelijk varianten onderling in plaats van het niveau te citeren. De grootste marge zit sinds #741 niet meer in de blokmaat maar in de bronkaart, zie hierboven.

De hydrologische argumenten wijzen overigens naar 100 meter als werkmaat. Alle maatregelen die het model gebruikt werken aan de bron: op het dak, op het eigen terrein of in de eigen straat, met koppelafstanden van tientallen meters. De drie maatregelen met een wijkbereik, waterplein, infiltratieveld met opslag en infiltratiekratten, hebben HeeftBenodigdeVelddata op false en worden nergens toegepast. Daar komt bij dat het riool met 20 mm per uur al in de opgavekaart zit, dus transport over afstand is aan die kant al verrekend en een koppelafstand van 500 meter telt dat een tweede keer. Tegenover die argumenten staat de positionele onzekerheid van AHN2, en die raakt orde tien procent van de opgave. Nu de keuze nog maar 1,7 procentpunt waard is, is Grid_ref op 500m blijven staan.

Kaarten

Twee rasters gaan mee in de oplevering, allebei op de blokmaat en niet op het AdminDomain van 25 meter:

  • Piekbuiberging_Ongedekt_m3_per500m, het deel van de opgave dat niet wordt gedekt.
  • Piekbuiberging_Gedekt_m3_per500m, de keerzijde daarvan.

De blokmaat staat sinds #720 in de bestandsnaam. Dat is geen cosmetiek: vierhonderd cellen van de andere kaarten passen in een cel van deze twee, dus wie ze cel voor cel met de 25-meterkaarten combineert krijgt onzin. Piekbuiberging_Gedekt bestond tot #720 alleen op papier. Het item had wel een StorageName, maar stond in geen enkele ExplicitSuppliers, dus het bestand werd nooit geschreven.

Lees een blok niet als een uitspraak over een wijk. Een blok op nul betekent niet dat het daar droog blijft, maar dat er in dat blok ergens meer capaciteit dan opgave is geteld.

Per provincie en voor heel Nederland

PerRegio aggregeert het grid van 500 meter naar de regio-indeling die ModelParameters/Advanced/IndicatorRegio_ref aanwijst, en PerNL telt het hele land op. Elk blok van 500 meter krijgt sinds #705 de meest voorkomende regio van de onderliggende cellen (modus) in plaats van een eigen poly2grid op de regiogeometrie, zodat het blok dezelfde kaart volgt als de celaggregaties en ook een indeling zonder geometrie mee kan doen. Beide geven Opgave, Aanbod, Restopgave, Ongedekt, AanbodZonderOpgave, Gedekt, Dekkingsgraad en Dekkingsgraad_Ongeklemd. Let op dat Dekkingsgraad per regio uit de opgetelde opgave en dekking wordt berekend en dus niet het gemiddelde is van de gridwaarden.

Aannames en beperkingen

  • De opgave is een basisjaargrootheid. De waterdieptekaart en de begrenzing bebouwd gebied zijn die van het basisjaar en veranderen niet mee met het zichtjaar, dus stedelijke uitbreiding vergroot de opgave niet en verdichting binnen de begrenzing evenmin. Alleen het aanbod is dynamisch.
  • Bestaande bergingscapaciteit telt als verbruikt. De indicator meet de verandering ten opzichte van het basisjaar en niet het absolute tekort.
  • Opgave en aanbod worden pas op 500 meter tegen elkaar weggestreept. Binnen die 500 meter doet de ligging van maatregel en plas niet mee, en er is geen afstroming tussen gridcellen. Zie hierboven wat die keuze met de uitkomst doet.
  • Het aanbod is een rekensom van oppervlakken maal fracties maal kentallen, geen hydrologische berekening. Er zit geen leegloop, geen verzadiging en geen buiverloop in.
  • Een cel die aan de sector waterberging wordt toegewezen valt in geen van beide takken: hij telt niet als nieuwe stedelijke ontwikkeling en niet meer als onaangeroerd bestaand gebied. In bebouwd gebied komt dat zelden voor, want de bergingsclaim landt in het veen.
  • De dakvorm is een proxy op het pandtype en geen waarneming: onder appartementen en werkpanden zit ook schuin gedekte bebouwing, onder eengezinswoningen zitten ook platte daken. Een betere bron is het daktype per pand uit 3D BAG; die zit niet in de brondata.
  • Doorlatend groen en berging op water zijn wel ingebouwd maar in bestaand gebied nog niet gevuld. Zolang die kaarten leeg zijn is het verschil tussen de varianten in bestaand gebied kleiner dan de parameters suggereren.

Historie

Tot augustus 2026 telde de dakensom in de bestaand-gebied-tak ook de footprint van verblijfsrecreatie mee, boven op wonen en werken. Logiespanden zaten daardoor twee keer in het dakoppervlak. Landelijk ging het in basisjaar 2023 om 10,8 miljoen m2 op een dakensom van 971 miljoen m2, oftewel 1,11 procent, verspreid over ruim 96.000 cellen van 25 bij 25 meter. Omdat de restopgave per gridcel op nul wordt afgekapt, woog die overschatting lokaal zwaarder dan het landelijke percentage suggereert. De achtergrond staat bij #364.

In dezelfde maand is de vraagkant van de 1/100-bui naar de 1/1000-bui gegaan, zie hierboven.

Van 7 januari 2026 tot #741 zaten de wadi’s en het doorlatend groen op gras niet in het aanbod van wonen. In de optelling van de zeven maatregelen droeg OpGrasUitgeefbaar/Resultaat een slash aan het eind, en GeoDMS leest a/ + b als a gedeeld door b. De twee grastermen werden dus niet opgeteld maar op elkaar gedeeld, en wat in de som terechtkwam was hun verhouding. Het wonen-aanbod komt op zichtjaar 2120 in NbSGenuanceerd daardoor uit op 121,1 in plaats van 140,2 mln m3. De deling had een tweede gevolg: waar het openbaar gras nul is deelde hij door nul, en die null nam via de kale optelling de hele cel mee, inclusief daken en halfverharding. Dat raakte 11.257 van 1.296.044 wonencellen. De werken-tak had dezelfde optelling zonder de slash en was in orde, en juist dat verschil maakte de fout zichtbaar toen het aanbod per maatregel werd uitgesplitst.

Wie leveringen over die periode vergelijkt moet dit weten: het aanbod van wonen springt bij deze reparatie omhoog zonder dat er aan een aanname iets is veranderd.

Tot #746 (september 2026) lagen groene en blauwe daken op het hele dakoppervlak, dus ook op schuine daken, en kende de nieuwbouwtak van werken en verblijfsrecreatie geen blauwe term. Gemeten op de standen van 2040 in de NL2120-toepassing halveerde het dakenaanbod in bestaand gebied bij die wijziging, en de dekkingsgraad in NbSGenuanceerd ging van 28,4 naar 23,0 procent; ook hier springt de uitkomst zonder een verandering van aanname.

Configuratie

  • Indicator: /Indicatoren/<casus>/Zichtjaren/<jaar>/Piekbuiberging (cfg/main/Templates/Indicatoren/Piekbuiberging.dms, met Piekbuiberging/Aanbod.dms en Piekbuiberging/Aanbod/WaarAllocatieHeeftPlaatsgevonden.dms).
  • Opgave-basis: Basisjaar/Piekbuiberging (cfg/main/Templates/Indicatoren_T/Basisjaar.dms), met Grid_ref = '500m' en Kans_ref = '1000'.
  • Waterdieptekaarten: SourceData/Water/WaterdiepteBijHevigeNeerslag_T100 en _T1000 (cfg/main/SourceData/Water.dms).
  • Maatregelen en bergingscapaciteit: Classifications/WaterretentieK (cfg/main/Classifications.dms).
  • Capaciteitskaarten bestaand gebied: SourceData/Grondgebruik/BGT (cfg/main/SourceData/Grondgebruik/bgt.dms).
  • Fracties per variant: VariantParameters/VariantK (cfg/main/VariantParameters/VariantK.dms).
  • Export: Piekbuiberging_Gedekt_m3_per500m en Piekbuiberging_Ongedekt_m3_per500m als raster, plus zeven kolommen Piekbuiberging_* in RegionaleIndicatoren.csv (Templates/Indicatoren_T/Export.dms).
  • Uitdraai voor de toets: /Diagnose/Ongemeten/uitdraaiWB schrijft piekbuiberging_<casus>_<jaar>.txt, gelezen door batch/ToetsOplevering.ps1.

Zie ook Uitwerking waterberging voor de sector waterberging, Verharding voor de verhardingsgraad die mede bepaalt hoeveel hemelwater niet kan infiltreren, en Ontkoppelde bestanden voor de BGT-capaciteitskaarten die als tif worden weggeschreven en teruggelezen.