BBV Paragrafen
BBV art. 9 prescribes seven paragrafen that every gemeente, provincie and waterschap jaarrekening must contain:
- Lokale heffingen
- Weerstandsvermogen en risicobeheersing
- Onderhoud kapitaalgoederen
- Financiering
- Bedrijfsvoering
- Verbonden partijen
- Grondbeleid
Shillinq stores each as one Paragraaf record per
(administrationId, type, boekjaar). The Paragrafen workspace
gives every paragraaf a template-driven editor, auto-populates
the quantitative fields from the rest of the BBV-administratie
and surfaces a completeness score per paragraaf.
Goal
By the end of this guide you can:
- open each of the seven paragrafen,
- understand which fields are auto-populated and which require a narrative,
- complete the paragraaf to 100% so the jaarrekening can be published, and
- diagnose the completeness gate when a publication is blocked.
Prerequisites
- A Programma + meerjarenraming has been published for the boekjaar in question.
- The Reserves & Voorzieningen workspace contains all current reserves and voorzieningen — see Reserves & Voorzieningen.
- The MVA-register is up to date — see MVA-administratie.
Open the paragrafen workspace
- Open Shillinq → Overheid → BBV → Paragrafen.
- The route is
/bbv/paragrafen. - The index renders one card per paragraaf type, with a completeness percentage (0-100) and a green/amber/red badge.
Section 1 — Index view (the cards)
Each card surfaces:
- Type — one of the seven paragraaf names.
- Voltooiing — percentage of obligatory fields filled.
- Auto-populated — count of fields filled by the engine
(e.g.
weerstandsratio,algemene reserve saldo,MVA boekwaarde ultimo). - Status —
draft/concept/vastgesteld. - Laatst bewerkt — timestamp + user.
The badge thresholds are:
| Status | Rule |
|---|---|
| Green | voltooiing = 100% |
| Amber | 60% ≤ voltooiing < 100% |
| Red | voltooiing < 60% |
Section 2 — Template-driven editor
Each paragraaf type has its own template; the editor mounts the template fields in order and inlines the auto-populated quantitative fields. A few examples:
Weerstandsvermogen
- Auto:
algemeneReserveSaldo,bestemmingsreservesSaldo,risicoTotaal,weerstandsratio = (algemene + bestemming) / risico. - Narrative: assessment of the ratio against the council's vastgestelde minimum, explanation of structural vs. incidentele risico's.
Financiering
- Auto:
renteOmslag,langeFinancieringssaldo,korteFinancieringssaldo,kasgeldlimiet,renterisiconormBezetting. - Narrative: rente-visie, treasurer's strategy.
Onderhoud kapitaalgoederen
- Auto:
mvaBoekwaardeUltimopermvaCategorie,voorzieningenOnderhoud. - Narrative: per-category onderhoudstoestand assessment, beleidskaders en bijbehorende uitvoeringsplannen.
Grondbeleid
- Auto:
nietInExploitatieGenomenGronden,bouwgrondInExploitatie,voorzieningenGrondexploitatie. - Narrative: visie en de keuze tussen actieve en faciliterende grondpolitiek; deze paragraaf wordt voor T4 verrijkt met de outputs van de sibling grondexploitatie spec.
The remaining four paragrafen (Lokale heffingen, Bedrijfsvoering, Verbonden partijen, plus the optional integraliteitsverklaringen) follow the same auto + narrative pattern.
Section 3 — Completeness gate (REQ-BBV-007)
When a controller invokes Vaststellen on a Jaarrekening the
BbvComplianceGuard::paragrafen_compleet_ok precondition runs:
required = [
'lokale-heffingen',
'weerstandsvermogen',
'onderhoud-kapitaalgoederen',
'financiering',
'bedrijfsvoering',
'verbonden-partijen',
'grondbeleid',
]
for each type in required:
if no Paragraaf with (administrationId, type, boekjaar):
fail with BBVConstraintError("REQ-BBV-007: paragraaf {type} ontbreekt (BBV art. 9)")
The error lists every missing paragraaf; you do not need to fix them one at a time.
Section 4 — Troubleshooting
Weerstandsratio shows N/A
The ratio requires both a positive risicoTotaal and at least
one reserve. Confirm the Risicobeheersing workspace contains
identified risico's, and that the algemene reserve has a
non-zero saldoEindJaar.
Auto-populated field shows yesterday's data
Auto-population batches nightly. Use the Herberekenen action on the paragraaf card to force a recompute; expect a few seconds for a typical administration.
Vaststellen fails after I added the missing paragraaf
The completeness gate only runs against vastgesteld paragrafen.
Newly-added paragrafen sit in draft; vaststel each one
individually before re-trying the Jaarrekening vaststelling.
What you have now
Seven complete and vastgestelde paragrafen, with auto-populated quantitative fields wired to the underlying registers. Continue with the Reserves & Voorzieningen, MVA-administratie or Rechtmatigheid workflows depending on which paragraaf still needs more narrative.
See also
- Reserves & Voorzieningen — drives the weerstandsvermogen and grondbeleid quantitatives.
- MVA-administratie — drives the onderhoud-kapitaalgoederen quantitatives.
- Rechtmatigheidsverantwoording — the separate verklaring that ships alongside the paragrafen.