Voedselhubs en de kracht van Voedselcirkel Amsterdam

Rapportage · Voedselhub

Voedselhubs en de kracht van Voedselcirkel Amsterdam

Wat een stedelijke voedselhub waardevol maakt, en wat de momentopname van Voedselcirkel Amsterdam laat zien over waarde, werking en de basis die versterking vraagt.

De kern

Niet de kilo’s, maar de coördinatie

Voedselcirkel Amsterdam functioneert als stedelijke voedselhub en vertegenwoordigt naar schatting €822.516 aan maatschappelijke waarde per jaar (2025), met een conservatieve ondergrens van €744.891. De waarde zit niet in de kilo’s, maar in het verbinden en organiseren: overschotten verzamelen, koppelen aan vraag, kwaliteit bewaken en gericht opnieuw verdelen.

±€823.000
waarde per jaar (2025)
±€745.000
conservatieve ondergrens
NPS +46
gemiddelde waardering 8,5
67
bereikte initiatieven (±57 structureel)

Download het rapport (PDF) Lees de rapportage

Voorblad van de rapportage De kracht van Voedselhubs van New Economy
245,6 ton
verwerkt voedsel in 2025
210,7 ton
doorgezet naar initiatieven
±281.000
maaltijdequivalenten doorgezet
18.000–21.000
huishoudens bereikt per jaar (geschat)
Samenvatting

In het kort

Een goed functionerende voedselhub is vooral een betrouwbaar netwerk van vrijwilligers, meer dan een loods met busjes. Het is de regelaar van een stedelijk voedselnetwerk, en juist daar zit de waarde.

Gezond en betaalbaar eten staat onder druk, terwijl bruikbaar voedsel verloren gaat — in Amsterdam alleen al circa 166 kiloton in 2023. Een voedselhub brengt die twee werelden bij elkaar. Wat een hub waardevol maakt, zijn niet de kilo’s, maar de coördinatie: overschotten verzamelen, koppelen aan vraag, kwaliteit bewaken en gericht opnieuw verdelen.

Daarmee verlaagt een hub de drempel voor kleine initiatieven, omdat acquisitie, sortering en logistiek worden gebundeld. De hub zet grillige overschotstromen om in bruikbaar, passend aanbod voor de wijk. En het netwerk wordt minder afhankelijk van losse, toevallige relaties.

Hoe groot die waarde kan zijn, is onderzocht voor Voedselcirkel Amsterdam, in opdracht van Voedselcirkel Amsterdam en Gemeente Amsterdam. Eén jaar als stedelijke hub (2025): circa 245,6 ton voedsel verwerkt en circa 210,7 ton doorgezet naar initiatieven, ongeveer 281.000 maaltijdequivalenten, een geschat bereik van 18.000 tot 21.000 huishoudens, en circa €822.516 maatschappelijke waarde per jaar. Afnemers geven de hub een 8,5 en een Net Promoter Score van +46.

En dat is nog maar één hub. Voor het hele Amsterdamse netwerk van voedselinitiatieven loopt de mogelijke waarde op tot grofweg €70 tot €120 miljoen per jaar — een andere schaal, die bewust niet bij de waarde van de hub wordt opgeteld.

Juist omdat een hub zoveel waarde levert, is het belangrijk om te zien waar het sterker kan. De grootste kansen zitten niet in uitbreiding, maar in het versterken van de basis: voorspelbaarder aanbod en betere logistiek (logistiek scoort een 6,7, lager dan de waardering zelf), passender aanbod (de wijk mist vooral eiwit zoals vis, vlees en zuivel), en een stabiele locatie, voldoende koeling en duidelijke afspraken over rollen.

Deel I · Context

Wat is een voedselhub

Voedselhubs leveren maatschappelijke waarde doordat ze voedselreststromen verzamelen, matchen met vraag, tijdelijk opslaan en gericht opnieuw verdelen. In een stedelijke context is die rol extra zichtbaar, omdat daar grote volumes overschotten en een dicht netwerk van buurtinitiatieven naast elkaar bestaan. In Amsterdam ging in 2023 naar schatting circa 166 kiloton voedsel verloren.

Deze rapportage richt zich op de stedelijke, sociale voedselhub: een schakel die overschotten en buurtinitiatieven met elkaar verbindt, met coördinatie als kern.

Zes waardedimensies van een voedselhub

WaardedimensieBetekenis in de praktijk
Vermindering van voedselverspillingEetbare stromen worden eerder herverdeeld dan afgevoerd of vernietigd.
Toegang tot voedselLokale initiatieven krijgen toegang tot aanbod dat zij anders moeilijker kunnen organiseren.
Bundeling van logistiekOphalen, sorteren, opslag en distributie worden efficiënter georganiseerd dan via losse routes.
Versterking van samenwerkingInitiatieven delen informatie, middelen en afstemming rond schaarste, timing en gebruik.
Kwaliteit en productmixSturing op bruikbaarheid, variatie, voedselveiligheid en aansluiting op lokale vraag.
Veerkracht van het voedselsysteemMinder afhankelijkheid van één-op-één relaties en incidentele improvisatie.

Niet alleen verplaatsen, maar organiseren. Een voedselhub functioneert niet automatisch goed omdat er vraag is. Bepalend is de samenhang tussen governance, logistiek, productkwaliteit, relatiebeheer, communicatie en financiële houdbaarheid.

Deel II · Casus

Voedselcirkel Amsterdam als stedelijke hub

Voedselcirkel Amsterdam ontstond doordat voedselinitiatieven hun krachten bundelden rond overschotten, logistiek en buurtgerichte distributie. De hub is niet van bovenaf opgezet, maar uit het netwerk zelf gegroeid. Het kerndoel volgens de statuten: voedselverspilling reduceren, armoede en eenzaamheid tegengaan, en het aanbod van overschotten samenbrengen met de vraag naar voedsel in Amsterdam.

Vrijwilligers van Voedselcirkel Amsterdam sorteren geredde groente en fruit bij de voedselhub
Vrijwilligers sorteren geredde groente en fruit bij Voedselcirkel Amsterdam.

Momentopname 2025

IndicatorWaarde / duiding (2025)
Verwerkt voedselCirca 245,6 ton
Netto gered voedsel (bruikbaar behouden)Circa 234,7 ton
Aantoonbaar doorgezet naar initiatievenCirca 210,7 ton
Bereikte initiatieven67, waarvan naar schatting circa 57 structureel
Geschat aantal bereikte huishoudensCirca 18.000–21.000, waarvan circa 16.500–19.500 structureel
Relatief gezond of vers aandeel (bekende keten)Circa 47,6%
Gemonetariseerde maatschappelijke waardeCirca €822.516 per jaar; ondergrens circa €744.891

De casus laat drie dingen zien. Een voedselhub verlaagt de toetredingsdrempel voor kleinere initiatieven doordat acquisitie, eerste selectie, opslag en een deel van de logistiek worden gebundeld. Waarde ontstaat niet alleen uit volume, maar uit het vermogen om grillige overschotstromen om te zetten in bruikbaar aanbod. En de meerwaarde blijft niet beperkt tot de stad — al wordt in een stad de noodzaak van afstemming, snelheid en netwerkcoördinatie het sterkst zichtbaar.

Onderzoeksopzet

Aanpak en bronnen

De rapportage is een compacte, praktijkgerichte analyse en geen volledig causaal impactonderzoek. De centrale vraag: welke waarde heeft Voedselcirkel Amsterdam, hoe functioneert de hub in de praktijk en welke randvoorwaarden vragen om versterking? De uitwerking volgt vijf focuspunten — hubfunctie, waardering door partners, logistiek en voedselkwaliteit, organisatieontwikkeling en maatschappelijke waarde.

Een literatuurkader over voedselhubs is gecombineerd met interne praktijkdata, samen aangeduid als Data VA 2025–26: een enquête (32 reacties, 11–28 maart 2026), twee registratiebestanden over instroom en uitstroom (juli 2025–april 2026), de geïntegreerde jaaranalyse 2025, documentanalyse van operationele communicatie (waaronder de WhatsApp-export ‘Voedsel uitwisselen’, 8 november 2024 t/m 12 februari 2026), een interne analyse van de organisatieontwikkeling en verdiepende interviews met afnemers. De kracht van deze aanpak zit in triangulatie: enquête, interviews, registraties en documentanalyse naast elkaar leggen.

Conservatief en op openbare bronnen gebaseerd. De waarderingsmethode steunt zo veel mogelijk op openbare bronankers voor voedselkosten, milieuprijzen en kosteneffectiviteit van gezondheidswinst (Nibud; RIVM; CE Delft, 2024; Zorginstituut Nederland, 2024).

Bevindingen

Hoe de hub in de praktijk werkt

Ontzorgen: de hubfunctie

Vanuit het perspectief van afnemers functioneert Voedselcirkel Amsterdam als ontzorgende hub. De operationele groepschat liet over de periode 8 november 2024 t/m 12 februari 2026 een herkenbaar werkpatroon zien: 2.608 berichten over 67 actieve weken en 269 actieve dagen, waarvan bijna 58% op maandag en donderdag. Uit de registraties blijkt dat tussen juli 2025 en april 2026 114 keer voedsel is binnengekomen en 792 keer is uitgedeeld.

“Ik zou niet weten wat ik anders… dan zou dat op mij vallen, en dan zou ik geen tijd meer hebben om dit te doen. [Voedselcirkel] scheelt echt super veel werk.”Afnemer, interview

Tegelijk leunt de werking nog sterk op onderlinge relaties en minder op een volledig uitgewerkt systeem. De communicatie wordt vooral gedragen door een kleine groep kartrekkers, en het grootste deel van het voedsel komt via bestaande contacten binnen.

Tevredenheid: warm draagvlak, kwetsbare uitvoering

De waardering van huidige afnemers is overwegend positief. De aanbevelingsvraag komt uit op een Net Promoter Score van +46, naast een gemiddelde aanbevelingsscore van 8,5. De logistieke ondersteuning scoort met 6,7 duidelijk lager dan de algemene bereidheid om de hub aan te bevelen.

Kernscore huidige afnemers (n=26)GemiddeldeNPS-opbouw
Aanbeveling8,5Promoters (9–10): 61,5%
Logistieke ondersteuning6,7Passief (7–8): 23,1%
Kwaliteit voedsel7,2Criticasters (0–6): 15,4%
Ervaren gezondheid7,6NPS: +46

Er is geen standaardervaring. Van de 24 goed te classificeren reacties werken 12 initiatieven volledig via de hub en 12 deels zelfstandig. Wie alleen via de hub werkt, is positiever over de logistieke ondersteuning (gemiddeld 7,8 tegenover 5,5) en beveelt de hub vaker aan (9,4 tegenover 7,7).

“Als je hier binnenkomt, voel je je gewoon thuis.”Afnemer, interview

Logistiek is de motor, geen bijzaak

Het meest terugkerende knelpunt is de instabiliteit van het aanbod: hoeveelheid en samenstelling fluctueren sterk, waardoor initiatieven hun eigen uitgifte lastig kunnen plannen. Logistieke middelen leveren direct resultaat.

22.735 kg
gered voedsel in 2025, alleen al via de Food Center-bus. Logistiek — bus, koeling en regie — is de motor van de hub, geen bijzaak.

Er is niet alleen behoefte aan meer kilo’s, maar vooral aan een gevarieerder en beter passend aanbod, met name eiwitrijke en houdbare producten.

Meest gemiste productgroepAandeel van afnemers
Vis61,5%
Vlees57,7%
Zuivel46,2%
Groenten en fruit23,1%

Van de instroom bestaat ongeveer 58% uit groente en fruit; bij de uitgifte loopt dat op tot rond de 75%.

Niet te weinig voedsel, maar te weinig afstemming. De instabiliteit van het aanbod komt niet voort uit een tekort. Amsterdam verspilt jaarlijks circa 166 kiloton voedsel (2023), waarvan circa 49 kiloton bij huishoudens en circa 32 kiloton in de horeca, volgens Onderzoek en Statistiek Amsterdam (Monitor Voedsel 2024). Ter vergelijking: de hub verwerkte in 2025 circa 245,6 ton, oftewel ongeveer 0,25 kiloton, een fractie van dat stedelijke overschot. Het knelpunt is dus matching, logistiek en coördinatie, niet de beschikbaarheid van voedsel.

Organisatie: een tussenfase

De communicatie heeft een duidelijk, praktisch ritme. De ontwikkelopgave is niet om de informele werkwijze te vervangen, maar om die beter te ondersteunen: kanalen duidelijker gebruiken, afspraken eenduidig vastleggen en een helder besluitvormingsproces inrichten. Het werk leunt nog sterk op een klein aantal sleutelfiguren en op vrijwilligers, waaronder mensen met een afstand tot de arbeidsmarkt.

“Respect voor ieder die daar nu werkt.”Afnemer, interview · Voedselbanken Nederland telde landelijk circa 13.000 vrijwilligers (2020)

De organisatie bevindt zich in een tussenfase: stevig genoeg om op door te bouwen, maar kwetsbaar zolang basisvoorwaarden rond middelen, rollen, besluitvorming en vervanging nog niet goed geregeld zijn.

Maatschappelijke waarde

Waarde op twee schalen

De maatschappelijke waarde van Voedselcirkel Amsterdam als ketenbrede voedselhub is op basis van de jaaranalyse 2025 geschat op ongeveer €822.516 per jaar.

OnderdeelWaarde per jaar (2025)
Gered voedselCirca €469.375
Vermeden klimaatschadeCirca €146.680
Gezondheidswinst (doorgezette gezonde stroom)Circa €128.836
Activeringswaarde (vrijwilligers)Circa €77.625
Totaal maatschappelijke waardeCirca €822.516

De conservatieve ondergrens, zonder de activeringscomponent, bedraagt circa €744.891 per jaar. Wanneer alleen de fysieke voedselstroom binnen de hub wordt meegerekend, ligt de waarde tussen circa €131.124 en €208.749 per jaar. De berekening is bewust conservatief: voor gezondheid is alleen gerekend met het aantoonbare aandeel gezond voedsel in de keten, en effecten op koopkracht of bestaanszekerheid zijn niet extra meegerekend. Voor huishoudens is de waarde tegelijk heel praktisch en financieel merkbaar.

“Dat scheelt je misschien €5, €10 boodschappen. Als je dat hele jaar door gaat tellen, is dat wel een groot bedrag.”Afnemer, interview

Twee maten naast elkaar: logistieke output en sociaal bereik

De cijfers vragen om zorgvuldige interpretatie. ‘Verwerkt’ zegt iets over de totale omvang van de operatie, ‘gered’ over wat nog bruikbaar was en ‘doorgezet’ over wat daadwerkelijk in het netwerk terechtkwam. Het aantoonbaar doorgezette volume van 210.706,4 kg komt — na correctie voor het eetbare aandeel en omgerekend naar maaltijdgewicht van circa 550 gram — neer op ongeveer 281.000 maaltijdequivalenten. Het sociale bereik wordt geschat op 18.000 tot 21.000 huishoudens per jaar. Deze twee cijfers worden bewust niet samengevoegd, omdat ze verschillende soorten impact meten. De bandbreedte van huishoudens is een netwerkinschatting en geen exact getelde lijst van unieke huishoudens.

Positie binnen het Amsterdamse netwerk

Voedselcirkel Amsterdam is een belangrijke, maar niet volledige schakel. Onderzoek en Statistiek Amsterdam bracht ruim 600 voedselinitiatieven in beeld, waarvan circa 150 sociale initiatieven werken aan een eerlijk en betaalbaar voedselsysteem. Van de circa 73.400 minimahuishoudens worden naar schatting ongeveer 23.500 via voedselinitiatieven geholpen, en ruim 7.000 steunen voor het grootste deel van hun wekelijkse voedsel op zulke initiatieven.

Het netwerk als geheel: een scenario, geen optelsom. Voor het hele Amsterdamse netwerk ligt de mogelijke maatschappelijke waarde grofweg tussen €70 en €120 miljoen per jaar. Dat is een scenario-inschatting voor het systeem als geheel en moet niet worden opgeteld bij de waarde van Voedselcirkel Amsterdam zelf.

Conclusie

De kracht van Voedselcirkel Amsterdam

Voedselcirkel Amsterdam laat zien dat er in de stad niet alleen behoefte is aan een voedselhub, maar ook aan een manier waarop bestaande initiatieven beter samenwerken en samen meer bereiken. De grootste kracht ligt in het vermogen om te verbinden en te organiseren: de hub is uit samenwerking tussen initiatieven zelf ontstaan, ontlast initiatieven, helpt nieuwe starten en bestaande groeien, en fungeert als toegankelijke infrastructuur waarin voedsel, vertrouwen, korte lijnen en samenwerking samenkomen.

€823k
geschatte maatschappelijke waarde per jaar (2025) van Voedselcirkel Amsterdam als ketenbrede voedselhub, met een conservatieve ondergrens van circa €745.000.

De grootste kwetsbaarheid is dat deze relationele kracht nog niet is vertaald naar stabiele randvoorwaarden. Ondersteuning van een initiatief als Voedselcirkel Amsterdam is vooral een investering in het voorkomen van verspilling en sociale problemen. De volgende stap zit niet in uitbreiding, maar in het versterken van de basis.

Handelingsperspectief

Aanbevelingen

De aanbevelingen zijn geordend in twee lagen. Op basis van de bevindingen is nu meer winst te behalen met het verbeteren van organisatie, logistiek, communicatie en dagelijkse praktijk dan met nieuwe conceptuele modellen.

Korte termijn (0–6 maanden)

  • Registratie en stuurinformatie. Een minimaal werkend registratiesysteem met beperkte productcategorieën, vaste definities en een kleine kernset indicatoren — goed genoeg en consequent boven volledig maar onwerkbaar.
  • Locatie, koeling en logistieke basis. Een operationeel continuïteitsplan voor locatie, koeling, opslag en voertuigen, met een minimale eisenlijst voor een nieuwe locatie.
  • Overleggen, kanalen en spelregels. Operationeel overleg scheiden van bestuurlijk overleg, met heldere spelregels bij schaarste en een aparte route voor feedback.
  • Rollen, besluitvorming en kennisborging. Een licht governancepakket: eenvoudige rolverdeling, basisprocedure voor besluitvorming en een kort overdrachtsdocument voor sleutelfuncties.
  • Partnermonitoring en matching. Monitoring vanuit rol- en gebruiksprofielen, met expliciete acceptatie- en matchingcriteria zodat passender — niet alleen méér — aanbod wordt georganiseerd.

Vervolg na stabilisatie van de basis

  • Gerichte logistieke en aanbodpilot met een beperkt aantal passende partners, waarin niet alleen toevoer maar ook kosten, productmix, verwerkingslast, reddingspercentage en koudeketen worden getest.
  • Latere infrastructuurstap rond compactere sortering, beter passende decentrale uitgiftepunten en sterkere logistieke regie — nadrukkelijk pas na stabilisatie.
  • Gemengd financieringsmodel dat publieke financiering, maatschappelijke waarde, in-kind partnerschappen en gerichte investeringen combineert.
Vervolg

Monitoringskader

Het monitoringskader is licht genoeg om uitvoerbaar te blijven, maar stevig genoeg voor sturing, leren en verantwoording. De huidige zwakte is geen gebrek aan ambitie, maar een registratie die nog te complex en te weinig consequent is.

DomeinIndicatorFrequentie
Volume en doorzetKg instroom, voorraadmutaties, kg doorgezet, aandeel doorgezetMaand
DeelnemersActieve leveranciers, afnemerstypen, afhaalfrequentieMaand
Kwaliteit en productmixProductgroepen, bruikbaarheid, gezond aandeel, topuitvalMaand/kwartaal
LogistiekAandeel geleverd versus opgehaald, incidentenMaand
OrganisatieKritieke taken, coördinatiecapaciteit, overlegritmeKwartaal
Maatschappelijke waardeOntzorging, gebruiksvormen, bereik, structureel bereikHalfjaar/jaar

Voor deze casus is één onderscheid cruciaal: volg niet alleen hoeveel initiatieven zijn aangesloten, maar ook welk gebruiksprofiel zij hebben. Voor de jaarlijkse actualisatie zijn structureel bereik, het aandeel relatief gezond of vers voedsel en het onderscheid tussen verwerkt, netto gered en aantoonbaar doorgezet volume de belangrijkste indicatoren.

Verantwoording

Methode en bronnen

Voor de inkomende registratie is een indicatieve kg-schatting gemaakt op basis van het aantal kratten of dozen maal het gemelde eenheidsgewicht; voor de uitgaande registratie via koppeling van productnamen aan bekende eenheidsgewichten. Daardoor ontstaat een bruikbare orde van grootte, maar nog geen volledig sluitende massabalans. In de jaaranalyse 2025 is onderscheid gemaakt tussen verwerkt, netto gered en aantoonbaar doorgezet voedsel.

Maaltijdequivalenten zijn berekend met circa 550 gram eetbaar maaltijdgewicht en een technische correctie voor het eetbare aandeel van afgerond 0,73. De uitkomst is een technische outputmaat voor de logistieke voedselstroom, niet een telling van geconsumeerde maaltijden. Het bereik in huishoudens is een netwerkinschatting; overlap tussen initiatieven is niet volledig uit te sluiten.

De O+S-cijfers over Amsterdamse voedselverspilling komen uit de Monitor Voedsel (Onderzoek en Statistiek Amsterdam, 2024). De volledige methodische verantwoording, aannames, systeemgrenzen en bronverwijzingen staan in het rapport (Bijlage A en Bronnen).

Hoe te citeren

New Economy (2026). De kracht van Voedselhubs — het voorbeeld van Voedselcirkel Amsterdam. Opgesteld door Carmen Schwering, Anne Crijns en Pepijn Duijvestein, in opdracht van Voedselcirkel Amsterdam en Gemeente Amsterdam. Beschikbaar via neweconomy.eco. Licentie: CC BY 4.0.
Download

Het volledige rapport

  • De kracht van Voedselhubs (PDF) Het voorbeeld van Voedselcirkel Amsterdam · juni 2026 · ±11 MB. Download de rapportage
Veelgestelde vragen

Veelgestelde vragen

Wat is een voedselhub?

Een voedselhub verzamelt voedselreststromen, matcht ze met vraag, slaat ze tijdelijk op en verdeelt ze gericht opnieuw. Een hub is niet alleen een doorgeefpunt, maar een schakel die coördinatie, kwaliteitscontrole en logistiek voor een netwerk van buurtinitiatieven organiseert.

Wat is Voedselcirkel Amsterdam?

Voedselcirkel Amsterdam is een stedelijke voedselhub die uit samenwerking tussen voedselinitiatieven is ontstaan. De hub verbindt voedseloverschotten, logistiek en buurtinitiatieven, en regelt ophalen, eerste selectie, opslag, matching en transport.

Hoeveel maatschappelijke waarde vertegenwoordigt Voedselcirkel Amsterdam?

De maatschappelijke waarde als ketenbrede voedselhub is geschat op ongeveer €822.516 per jaar (2025), met een conservatieve ondergrens van €744.891. Voor het hele Amsterdamse netwerk geldt een scenario van grofweg €70–120 miljoen per jaar, dat niet bij de waarde van Voedselcirkel Amsterdam moet worden opgeteld.

Hoeveel voedsel verwerkt Voedselcirkel Amsterdam per jaar?

In 2025 verwerkte de hub circa 245,6 ton voedsel, waarvan circa 234,7 ton werd gered en circa 210,7 ton aantoonbaar werd doorgezet naar initiatieven. Dat staat gelijk aan ongeveer 281.000 maaltijdequivalenten.

Wat is de belangrijkste aanbeveling uit de rapportage?

De volgende stap zit niet in uitbreiding, maar in het versterken van de basis: betere registratie, duidelijke afspraken over rollen en besluitvorming, heldere regels bij schaarste, stabiele locatie- en koelvoorzieningen en consequente monitoring.

Verder lezen

Gerelateerd

Deze rapportage is beschikbaar onder de licentie Creative Commons Naamsvermelding 4.0 (CC BY 4.0).

Verken de kracht van voedselhubs

Van momentopname naar een werkende, verbindende voedselinfrastructuur voor een stad, stadsdeel of netwerk van initiatieven.

Plan een gesprek over voedselhubs
Scroll naar boven
ite nodig; verwijder dit snippet en de pagina is exact terug bij af. Plaatsing: WPCode -> nieuw snippet -> type HTML -> Footer / site-wide. De guard hieronder beperkt het tot pagina 8365 (Utrecht). ============================================================ */ (function(){ "use strict"; function init(){ var b = document.body; if(!b) return; // GUARD: alleen op de pilotpagina (single project, postid-8365) if(!b.classList.contains("single-project") || !b.classList.contains("postid-8365")) return; // idempotent: niet dubbel bouwen if(document.querySelector(".ne-leesbalk")) return; var root = document.querySelector(".ne-rd"); if(!root) return;// --- hoofdstukken: echte ankers, over containers heen, in leesvolgorde --- var sel = ".ne-rd .rd-report > section[id], .ne-rd .report > section[id], .ne-rd .huisband[id], .ne-rd .ne-inzichtenband[id], .ne-rd #gerelateerd"; var nodes = [].slice.call(document.querySelectorAll(sel)); // dedupe + documentvolgorde nodes = nodes.filter(function(n,i){ return nodes.indexOf(n) === i; }); nodes.sort(function(a,c){ return (a.compareDocumentPosition(c) & 2) ? 1 : -1; }); if(nodes.length < 2) return;var hoofdstukken = nodes.map(function(n){ var h = n.querySelector("h2"); var t = h ? h.textContent.replace(/\s+/g," ").trim() : (n.id || "Hoofdstuk"); return { id:n.id, titel:t, el:n }; }); var total = hoofdstukken.length, current = 0;// --- #downloads-fix: de downloadband heeft geen id, knoppen linken er wel naar --- if(!document.getElementById("downloads")){ var dl = document.querySelector(".ne-rd .dlband"); if(dl) dl.id = "downloads"; }// --- CSS injecteren (identiek aan het toekomstige post-31-blok) --- var css = "" +"@media(max-width:760px){" +"body.single-project:has(.ne-leesbalk) .ne-rd .rd-report p,body.single-project:has(.ne-leesbalk) .ne-rd .report p{font-size:16px;line-height:1.78;color:#243b3e;margin:0 0 14px}" +"body.single-project:has(.ne-leesbalk) .ne-rd .rd-report h2,body.single-project:has(.ne-leesbalk) .ne-rd .report h2{font-size:21px;margin:22px 0 8px}" +"body.single-project:has(.ne-leesbalk) .ne-rd .rd-report{max-width:62ch}" +"body.single-project:has(.ne-leesbalk) .ne-rd .inzet-label{font-family:'Unlock',sans-serif;font-size:10px;letter-spacing:.09em;color:#159b86;margin:6px 0 8px}" +"}" +"@media(max-width:900px){body.single-project:has(.ne-leesbalk) .ne-rd .rd-toc{display:none}}" +"@media(max-width:900px){" +"body.single-project:has(.ne-leesbalk) .site-main{padding-bottom:72px}" +"body.single-project:has(.ne-leesbalk) .ne-rd .huisband[id],body.single-project:has(.ne-leesbalk) .ne-rd .ne-inzichtenband[id],body.single-project:has(.ne-leesbalk) .ne-rd #gerelateerd{scroll-margin-top:120px}" +".ne-leesbalk{position:fixed;left:0;right:0;bottom:0;z-index:1200;display:flex;align-items:center;gap:10px;padding:9px 12px;background:#0f3b42;padding-bottom:calc(9px + env(safe-area-inset-bottom))}" +".ne-leesbalk .lb-btn,.ne-leesbalk .lb-arrow{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.1);color:#9cfffa;flex:0 0 auto;text-decoration:none;border:0;cursor:pointer}" +".ne-leesbalk .lb-btn svg,.ne-leesbalk .lb-arrow svg{width:20px;height:20px}" +".ne-leesbalk .lb-mid{flex:1;min-width:0}" +".ne-leesbalk .lb-pos{font-size:12.5px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}" +".ne-leesbalk .lb-prog{height:3px;border-radius:2px;background:rgba(255,255,255,.15);margin-top:5px;overflow:hidden}" +".ne-leesbalk .lb-prog i{display:block;height:100%;width:0;background:#47e23c;border-radius:2px;transition:width .25s}" +".ne-leesbalk .lb-nav{display:flex;gap:6px;flex:0 0 auto}" +".lb-overlay{position:fixed;inset:0;z-index:1250;background:rgba(15,59,66,.4);opacity:0;visibility:hidden;transition:opacity .28s ease}" +".lb-overlay.is-open{opacity:1;visibility:visible}" +".ne-leessheet{position:fixed;left:0;right:0;bottom:0;z-index:1300;background:#fff;border-radius:18px 18px 0 0;transform:translateY(110%);transition:transform .28s ease;box-shadow:0 -8px 24px rgba(15,59,66,.18);max-height:70vh;overflow:auto;padding-bottom:calc(8px + env(safe-area-inset-bottom))}" +".ne-leessheet.is-open{transform:translateY(0)}" +".lb-grip{display:block;width:38px;height:4px;border-radius:3px;background:#d4dedc;margin:9px auto 2px}" +".lb-sheethead{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 6px;font-family:'Marmelad',serif;font-size:17px;color:#1a535c}" +".lb-close{font-size:24px;color:#8aa4a7;cursor:pointer;line-height:1;border:0;background:0;padding:0 4px}" +".lb-ch{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #f0f4f3;text-decoration:none}" +".lb-ch .n{font-family:'Marmelad',serif;font-size:15px;color:#9bb3b6;flex:0 0 26px;text-align:center}" +".lb-ch .t{font-size:14px;color:#243b3e}" +".lb-ch.is-current{background:#e7f7f2;border-top-color:#cdeee5}" +".lb-ch.is-current .n{color:#159b86}" +".lb-ch.is-current .t{color:#0f3b42;font-weight:700}" +"}" +"@media(min-width:901px){.ne-leesbalk,.ne-leessheet,.lb-overlay{display:none}}"; var st = document.createElement("style"); st.id = "ne-leesbalk-css"; st.textContent = css; document.head.appendChild(st);// --- iconen --- var icoLijst = ''; var icoOmhoog = ''; var icoOmlaag = '';// --- balk --- var bar = document.createElement("div"); bar.className = "ne-leesbalk"; bar.setAttribute("aria-label","Leesbalk"); bar.innerHTML = '' +'
Hoofdstuk 1 / '+total+'
' +'
' +''+icoOmhoog+'' +''+icoOmlaag+'' +'
';// --- sheet --- var sheet = document.createElement("nav"); sheet.className = "ne-leessheet"; sheet.setAttribute("aria-label","Inhoudsopgave"); var rows = '' +'
Inhoudsopgave
'; hoofdstukken.forEach(function(h,i){ var nr = (i+1<10?"0":"")+(i+1); rows += ''+nr+''+h.titel+''; }); sheet.innerHTML = rows;var overlay = document.createElement("div"); overlay.className = "lb-overlay";b.appendChild(bar); b.appendChild(overlay); b.appendChild(sheet);var pos = bar.querySelector(".lb-pos"); var prog = bar.querySelector(".lb-prog i"); var arrows = bar.querySelectorAll(".lb-arrow"); var chs = [].slice.call(sheet.querySelectorAll(".lb-ch"));function setCurrent(i){ current = Math.max(0, Math.min(total-1, i)); if(pos) pos.textContent = "Hoofdstuk "+(current+1)+" / "+total; if(prog) prog.style.width = Math.round((current+1)/total*100)+"%"; chs.forEach(function(c,k){ c.classList.toggle("is-current", k===current); }); if(arrows[0]) arrows[0].setAttribute("href","#"+hoofdstukken[Math.max(0,current-1)].id); if(arrows[1]) arrows[1].setAttribute("href","#"+hoofdstukken[Math.min(total-1,current+1)].id); } setCurrent(0);// live positie if("IntersectionObserver" in window){ var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ var idx = hoofdstukken.findIndex(function(h){ return h.el === e.target; }); if(idx > -1) setCurrent(idx); } }); }, { rootMargin:"-45% 0px -45% 0px", threshold:0 }); hoofdstukken.forEach(function(h){ io.observe(h.el); }); }// open / sluit function open(){ overlay.classList.add("is-open"); sheet.classList.add("is-open"); } function close(){ overlay.classList.remove("is-open"); sheet.classList.remove("is-open"); } bar.querySelector(".lb-btn").addEventListener("click", open); overlay.addEventListener("click", close); sheet.querySelector(".lb-close").addEventListener("click", close); chs.forEach(function(c){ c.addEventListener("click", close); }); }if(document.readyState === "loading"){ document.addEventListener("DOMContentLoaded", init); } else { init(); } })();