Use this skill with your AI agent
Paste this skill into your AI agent's context, or save the file to your project. Works with any AI agent that reads markdown.
| 1 | --- |
| 2 | name: nl-return-assembly |
| 3 | description: Final orchestrator skill that assembles the complete Netherlands filing package for Netherlands-resident self-employed individuals and sole proprietors (ZZP/eenmanszaak). Consumes outputs from all Netherlands content skills (nl-btw-return for BTW-aangifte, nl-income-tax for aangifte inkomstenbelasting Box 1/2/3, nl-zvw for zorgverzekeringswet bijdrage) to produce a single unified reviewer package containing every worksheet, every form, every brief section, all cross-skill reconciliations, and the final action list with payment instructions, filing instructions, and next-year planning. This is the capstone skill that runs last and produces the final deliverable. MUST be loaded alongside all Netherlands content skills listed above. Netherlands full-year residents only. Self-employed individuals and sole proprietors only. |
| 4 | version: 1.0 |
| 5 | jurisdiction: NL |
| 6 | category: orchestrator |
| 7 | --- |
| 8 | |
| 9 | # Netherlands Return Assembly Skill v1.0 |
| 10 | |
| 11 | ## CRITICAL EXECUTION DIRECTIVE -- READ FIRST |
| 12 | |
| 13 | **When this skill is invoked, you have already passed through intake. The user has consented to the full workflow. Execute all steps without pausing for permission.** |
| 14 | |
| 15 | Specifically: |
| 16 | |
| 17 | - **Do NOT ask the user "how deep do you want me to go"** or "do you want the full package" or any variant. The user asked for their tax returns. They want their tax returns. Produce them. |
| 18 | - **Do NOT announce how many tokens or tool calls this will take.** Execute. |
| 19 | - **Do NOT ask which deliverables to prioritise.** Produce all deliverables listed in Section 4. If you run out of context mid-execution, finish the computation work first (numbers, positions, flags) then produce whatever formatted outputs you can, and at the very end state clearly which deliverables were not produced and why. |
| 20 | - **Do NOT re-validate scope that intake already validated.** If `nl-freelance-intake` produced an intake package, trust it. You can cross-check specific numbers during reconciliation but do not re-interrogate the user about residency, business structure, or anything else intake already captured. |
| 21 | - **Do NOT pause between content skills to check in.** Run them in dependency order (Section 2) without prose status updates between each one. A single status message at the end is fine. |
| 22 | - **Self-checks are targets, not blockers.** If a self-check fails, note it in the reviewer brief's open flags section and continue. Do NOT halt the entire workflow because one self-check had an ambiguous answer. |
| 23 | - **Primary source citations go in the final reviewer brief, not in intermediate computation steps.** |
| 24 | |
| 25 | **The user has already been told (by the intake skill) that the final package requires belastingadviseur signoff before filing. State it once in the final output and move on.** |
| 26 | |
| 27 | **Failure mode to avoid:** The skill halts mid-execution and asks the user a meta-question about workflow pacing. If you feel the urge to ask "how should I proceed," the correct action is to pick the most defensible path and proceed, flagging the decision in the reviewer brief so the reviewer can challenge it. |
| 28 | |
| 29 | --- |
| 30 | |
| 31 | ## What this file is |
| 32 | |
| 33 | The final capstone skill for Netherlands self-employed returns. Every Netherlands content skill feeds into this one. The output is the complete reviewer package that a belastingadviseur can review, sign off on, and deliver to the client along with filing instructions. |
| 34 | |
| 35 | This skill coordinates execution of the content skills, verifies cross-skill consistency, and assembles the final deliverable. |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## Section 1 -- Scope |
| 40 | |
| 41 | Produces the complete Netherlands filing package for: |
| 42 | - Full-year Netherlands residents |
| 43 | - Self-employed individuals and sole proprietors (ZZP/eenmanszaak) |
| 44 | - Tax year 2025 |
| 45 | - Filing BTW-aangifte (quarterly/monthly or KOR annual), aangifte inkomstenbelasting (IB -- Box 1, Box 2 if applicable, Box 3), ZVW bijdrage reconciliation, voorlopige aanslag 2026 recommendation |
| 46 | |
| 47 | --- |
| 48 | |
| 49 | ## Section 2 -- Execution order and dependency chain |
| 50 | |
| 51 | The skill enforces the following execution order: |
| 52 | |
| 53 | 1. **`nl-btw-return`** -- BTW-aangifte (quarterly/monthly for regular registration, annual KOR declaration) |
| 54 | - Runs first because BTW turnover figures feed into the IB-aangifte |
| 55 | - For regular BTW: prepare Q4 2025 BTW-aangifte if not yet filed; verify Q1-Q3 figures; check ICP opgave completeness |
| 56 | - For KOR: verify turnover remains under EUR 20,000; prepare annual KOR declaration if required |
| 57 | - Output: BTW-aangifte box values (rubrieken 1a through 5e), voorbelasting recovered/blocked, omzet (ex-BTW), ICP opgave data |
| 58 | |
| 59 | 2. **`nl-income-tax`** -- Aangifte inkomstenbelasting (annual) |
| 60 | - Depends on BTW output: omzet (rubriek 1a) must use ex-BTW turnover for regular BTW clients |
| 61 | - Depends on BTW output: blocked voorbelasting becomes a deductible bedrijfskost |
| 62 | - Computes winst uit onderneming, ondernemersaftrek (zelfstandigenaftrek + startersaftrek), MKB-winstvrijstelling |
| 63 | - Computes eigen woning (eigenwoningforfait minus hypotheekrenteaftrek) in Box 1 |
| 64 | - Computes Box 3 vermogensrendementsheffing |
| 65 | - Applies heffingskortingen (algemene heffingskorting, arbeidskorting) |
| 66 | - Output: IB-aangifte values, belastbaar inkomen per box, verschuldigde inkomstenbelasting, heffingskortingen, te betalen/terug te ontvangen |
| 67 | |
| 68 | 3. **`nl-zvw`** -- Zorgverzekeringswet bijdrage (annual reconciliation) |
| 69 | - Depends on IB: bijdrage-inkomen is based on Box 1 inkomen (winst uit onderneming + employment income) |
| 70 | - ZVW bijdrage for self-employed: 5.32% of bijdrage-inkomen up to EUR 71,628 (2025 maximum bijdrage-inkomen) |
| 71 | - Output: annual ZVW bijdrage, voorlopige aanslag ZVW paid, shortfall/overpayment |
| 72 | |
| 73 | 4. **Voorlopige aanslag 2026 recommendation** (forward-looking) |
| 74 | - Based on 2025 final IB + ZVW liability |
| 75 | - Recommendation to request/adjust voorlopige aanslag via MijnBelastingdienst |
| 76 | - Output: recommended voorlopige aanslag amounts for IB and ZVW |
| 77 | |
| 78 | If any upstream content skill fails to produce validated output, the assembly skill notes the failure in the reviewer brief and continues with available data rather than halting entirely. |
| 79 | |
| 80 | --- |
| 81 | |
| 82 | ## Section 3 -- Cross-skill reconciliation |
| 83 | |
| 84 | ### Cross-check 1: BTW omzet matches IB winst uit onderneming gross income |
| 85 | |
| 86 | | BTW Output | IB Input | Rule | |
| 87 | |-----------|----------|------| |
| 88 | | BTW-aangifte rubriek 1a (leveringen/diensten belast met hoog tarief) + 1b (laag tarief) + 1e (leveringen/diensten belast met 0% of niet bij u belast) | IB omzet (gross receipts for winst uit onderneming) | Must match within EUR 1 | |
| 89 | | Regular BTW: sum of rubrieken 1a + 1b + 1c + 1d + 1e | IB omzet | Turnover is ex-BTW | |
| 90 | | KOR: declared turnover on annual declaration | IB omzet | Turnover is gross (no BTW separation) | |
| 91 | |
| 92 | **If mismatch:** Flag for reviewer. Common causes: timing differences (factuurstelsel vs kasstelsel), ICP diensten (rubriek 3b) not appearing in rubriek 1a, bad debt write-offs, foreign income not subject to Dutch BTW. |
| 93 | |
| 94 | ### Cross-check 2: ZVW bijdrage-inkomen matches IB Box 1 income |
| 95 | |
| 96 | | ZVW Input | Source | Rule | |
| 97 | |-----------|--------|------| |
| 98 | | Bijdrage-inkomen | IB Box 1 verzamelinkomen (winst + employment income, before persoonsgebonden aftrek) | ZVW is based on Box 1 income | |
| 99 | | Voorlopige aanslag ZVW paid | Bank statement / Belastingdienst beschikking | Reconcile against final ZVW liability | |
| 100 | |
| 101 | **If mismatch:** Verify the bijdrage-inkomen definition. Note that eigen woning aftrek (negative Box 1 component) reduces bijdrage-inkomen. |
| 102 | |
| 103 | ### Cross-check 3: Voorlopige aanslag reconciliation |
| 104 | |
| 105 | | Voorlopige Aanslag | Source | Rule | |
| 106 | |-------------------|--------|------| |
| 107 | | Voorlopige aanslag IB 2025 paid | Bank statement / beschikking | Enters IB-aangifte as voorheffing | |
| 108 | | Voorlopige aanslag ZVW 2025 paid | Bank statement / beschikking | Enters ZVW reconciliation | |
| 109 | | Final IB + ZVW liability | Computed by nl-income-tax + nl-zvw | Difference = te betalen or terug te ontvangen | |
| 110 | |
| 111 | **If mismatch:** Common cause is first year of self-employment (no voorlopige aanslag), or Belastingdienst adjusted the voorlopige aanslag mid-year. |
| 112 | |
| 113 | ### Cross-check 4: BTW voorbelasting and income tax deductions consistency |
| 114 | |
| 115 | | Item | BTW Treatment | Income Tax Treatment | |
| 116 | |------|--------------|---------------------| |
| 117 | | Reclaimable voorbelasting (regular BTW) | Claimed in BTW-aangifte rubriek 5b | NOT a deduction in IB (netto bedrag only) | |
| 118 | | Blocked voorbelasting (regular BTW) | Not claimed | IS a deduction in IB (added to cost) | |
| 119 | | All BTW paid (KOR) | No recovery | IS a deduction in IB (bruto bedrag is cost) | |
| 120 | | Representatiekosten BTW | 100% BTW reclaimable | Only 80% of net cost deductible for IB (Art. 3.15 Wet IB 2001) | |
| 121 | | Privégebruik auto (BUA) | BTW correction via BUA (besluit uitsluiting aftrek) on BTW-aangifte | Separate private-use correction for IB | |
| 122 | |
| 123 | **If inconsistency:** An expense claimed net of BTW on the IB while also not claimed on the BTW-aangifte means the BTW is lost. Flag for reviewer. |
| 124 | |
| 125 | ### Cross-check 5: Ondernemersaftrek computation chain |
| 126 | |
| 127 | | Step | Computation | Rule | |
| 128 | |------|------------|------| |
| 129 | | Winst uit onderneming (before ondernemersaftrek) | Omzet minus bedrijfskosten minus afschrijvingen | Starting point | |
| 130 | | Zelfstandigenaftrek | EUR 2,470 (2025) if urencriterium met | Art. 3.76 Wet IB 2001 | |
| 131 | | Startersaftrek | EUR 2,123 (2025) if eligible | Art. 3.76a Wet IB 2001 | |
| 132 | | Winst after zelfstandigenaftrek | Winst minus zelfstandigenaftrek minus startersaftrek | Intermediate | |
| 133 | | MKB-winstvrijstelling | 13.31% of winst after zelfstandigenaftrek | Art. 3.79a Wet IB 2001 | |
| 134 | | Belastbare winst | Winst after zelfstandigenaftrek minus MKB-winstvrijstelling | To Box 1 | |
| 135 | |
| 136 | **If computation error:** Verify order of operations. MKB-winstvrijstelling applies AFTER zelfstandigenaftrek, not before. |
| 137 | |
| 138 | --- |
| 139 | |
| 140 | ## Section 4 -- Final reviewer package contents |
| 141 | |
| 142 | ### Documents |
| 143 | |
| 144 | 1. **Executive summary** -- one-page overview: filing status, winst uit onderneming, belastbaar inkomen per box, totaal verschuldigde belasting, BTW position, ZVW bijdrage, terug te ontvangen/te betalen |
| 145 | 2. **BTW-aangifte worksheet** -- rubriek-by-rubriek with formulas (Q4 2025 or KOR annual) |
| 146 | 3. **IB-aangifte worksheet** -- Box 1 (winst, eigen woning, employment), Box 2 (if applicable), Box 3 (vermogen), heffingskortingen, verschuldigde belasting |
| 147 | 4. **Capital allowances schedule (afschrijvingsstaat)** -- asset register with aanschafwaarde, datum, afschrijvingspercentage, jaarlijkse afschrijving, boekwaarde |
| 148 | 5. **ZVW reconciliation** -- bijdrage-inkomen, percentage, maximum, voorlopige aanslag paid, shortfall/overpayment |
| 149 | 6. **Voorlopige aanslag 2026 recommendation** -- recommended IB and ZVW amounts |
| 150 | 7. **Cross-skill reconciliation summary** -- all five cross-checks with pass/fail and notes |
| 151 | 8. **Reviewer brief** -- comprehensive narrative with positions, citations, flags, self-check results |
| 152 | 9. **Client action list** -- what the client needs to do, with dates and amounts |
| 153 | |
| 154 | ### Reviewer brief contents |
| 155 | |
| 156 | ```markdown |
| 157 | # Complete Return Package: [Client Name] -- Tax Year 2025 |
| 158 | |
| 159 | ## Executive Summary |
| 160 | - Filing status: [Single / Fiscal partner] |
| 161 | - Residence: Netherlands (full-year) |
| 162 | - Business: ZZP / eenmanszaak (KvK [number]) |
| 163 | - BTW registration: Regular / KOR |
| 164 | - BTW-aangifte position (Q4 or annual): EUR X te betalen / EUR X terug |
| 165 | - Winst uit onderneming (before aftrekken): EUR X |
| 166 | - Zelfstandigenaftrek: EUR X |
| 167 | - Startersaftrek: EUR X |
| 168 | - MKB-winstvrijstelling: EUR X |
| 169 | - Belastbare winst uit onderneming: EUR X |
| 170 | - Eigen woning aftrek: EUR X |
| 171 | - Belastbaar inkomen Box 1: EUR X |
| 172 | - Belastbaar inkomen Box 3: EUR X |
| 173 | - Verschuldigde inkomstenbelasting: EUR X |
| 174 | - Heffingskortingen: EUR X |
| 175 | - Voorlopige aanslag IB paid: EUR X |
| 176 | - Te betalen / terug te ontvangen IB: EUR X |
| 177 | - ZVW bijdrage: EUR X |
| 178 | - Voorlopige aanslag ZVW paid: EUR X |
| 179 | - Te betalen / terug te ontvangen ZVW: EUR X |
| 180 | - Total te betalen / terug te ontvangen: EUR X |
| 181 | |
| 182 | ## BTW-aangifte |
| 183 | [Content from nl-btw-return output] |
| 184 | - Registration type and period |
| 185 | - Rubriek 1a: Leveringen/diensten belast met hoog tarief (21%) |
| 186 | - Rubriek 1b: Leveringen/diensten belast met laag tarief (9%) |
| 187 | - Rubriek 1c: Leveringen/diensten belast met overige tarieven |
| 188 | - Rubriek 1d: Privégebruik |
| 189 | - Rubriek 1e: Leveringen/diensten belast met 0% of niet bij u belast |
| 190 | - Rubriek 2a: Verleggingsregelingen |
| 191 | - Rubriek 3a/3b: Prestaties naar/in het buitenland (ICP) |
| 192 | - Rubriek 4a/4b: Prestaties vanuit het buitenland |
| 193 | - Rubriek 5a: Verschuldigde omzetbelasting |
| 194 | - Rubriek 5b: Voorbelasting |
| 195 | - Rubriek 5c/5d/5e: Subtotaal, vermindering, totaal |
| 196 | - BUA correctie (besluit uitsluiting aftrek voorbelasting) |
| 197 | - ICP opgave reconciliation |
| 198 | |
| 199 | ## Aangifte Inkomstenbelasting |
| 200 | |
| 201 | ### Box 1 -- Inkomen uit werk en woning |
| 202 | [Content from nl-income-tax output] |
| 203 | - Winst uit onderneming: |
| 204 | - Omzet: EUR X |
| 205 | - Bedrijfskosten: EUR X |
| 206 | - Afschrijvingen: EUR X |
| 207 | - Winst vóór ondernemersaftrek: EUR X |
| 208 | - Zelfstandigenaftrek: EUR X |
| 209 | - Startersaftrek: EUR X |
| 210 | - MKB-winstvrijstelling: EUR X |
| 211 | - Belastbare winst: EUR X |
| 212 | - FOR dotatie: EUR X (if applicable) |
| 213 | - Inkomsten uit dienstbetrekking: EUR X (if applicable) |
| 214 | - Eigen woning: |
| 215 | - WOZ-waarde: EUR X |
| 216 | - Eigenwoningforfait: EUR X |
| 217 | - Hypotheekrente aftrek: EUR X |
| 218 | - Eigen woning saldo: EUR X |
| 219 | - Inkomen Box 1: EUR X |
| 220 | |
| 221 | ### Box 2 -- Inkomen uit aanmerkelijk belang |
| 222 | - Not applicable for eenmanszaak (flag if any AB income discovered) |
| 223 | |
| 224 | ### Box 3 -- Inkomen uit sparen en beleggen |
| 225 | - Peildatum 1 januari 2025: |
| 226 | - Banktegoeden: EUR X |
| 227 | - Beleggingen: EUR X |
| 228 | - Overige bezittingen: EUR X |
| 229 | - Schulden: EUR X |
| 230 | - Rendementsgrondslag: EUR X |
| 231 | - Peildatum 1 januari 2026: [same structure] |
| 232 | - Heffingsvrij vermogen: EUR X (EUR 57,000 single / EUR 114,000 fiscal partners -- 2025) |
| 233 | - Voordeel uit sparen en beleggen: EUR X |
| 234 | - Verschuldigde belasting Box 3: EUR X (36% in 2025) |
| 235 | |
| 236 | ### Heffingskortingen |
| 237 | - Algemene heffingskorting: EUR X (income-dependent phase-out) |
| 238 | - Arbeidskorting: EUR X (income-dependent, for winst uit onderneming) |
| 239 | - Total heffingskortingen: EUR X |
| 240 | |
| 241 | ### Verschuldigde belasting |
| 242 | - Box 1 belasting (schijventarief): EUR X |
| 243 | - Schijf 1 (EUR 0 - 38,441): 36.97% |
| 244 | - Schijf 2 (EUR 38,441 - 75,624): 49.50% |
| 245 | - Box 3 belasting: EUR X |
| 246 | - Totaal verschuldigde belasting: EUR X |
| 247 | - Minus heffingskortingen: EUR X |
| 248 | - Minus voorlopige aanslag IB: EUR X |
| 249 | - Te betalen / terug te ontvangen: EUR X |
| 250 | |
| 251 | ## Zorgverzekeringswet (ZVW) |
| 252 | [Content from nl-zvw output] |
| 253 | - Bijdrage-inkomen: EUR X |
| 254 | - ZVW percentage: 5.32% |
| 255 | - Maximum bijdrage-inkomen: EUR 71,628 (2025) |
| 256 | - ZVW bijdrage: EUR X |
| 257 | - Voorlopige aanslag ZVW paid: EUR X |
| 258 | - Te betalen / terug te ontvangen: EUR X |
| 259 | |
| 260 | ## Voorlopige Aanslag 2026 |
| 261 | - Based on 2025 final IB + ZVW liability |
| 262 | - Recommended voorlopige aanslag IB 2026: EUR X |
| 263 | - Recommended voorlopige aanslag ZVW 2026: EUR X |
| 264 | - Action: request via MijnBelastingdienst or wait for Belastingdienst to issue |
| 265 | |
| 266 | ## Cross-skill Reconciliation |
| 267 | - BTW omzet vs IB winst omzet: [pass/fail] |
| 268 | - ZVW bijdrage-inkomen vs IB Box 1: [pass/fail] |
| 269 | - Voorlopige aanslag reconciliation: [pass/fail] |
| 270 | - BTW voorbelasting vs IB deductions: [pass/fail] |
| 271 | - Ondernemersaftrek computation chain: [pass/fail] |
| 272 | |
| 273 | ## Reviewer Attention Flags |
| 274 | [Aggregated from all upstream skills] |
| 275 | - T2 items requiring belastingadviseur confirmation |
| 276 | - Mixed-use expense percentages (auto, telefoon, internet) |
| 277 | - Werkruimte deduction (if claimed) |
| 278 | - Urencriterium confirmation |
| 279 | - Startersaftrek eligibility |
| 280 | - Any turnover approaching EUR 20,000 KOR threshold |
| 281 | - Any income approaching schijf boundary (EUR 38,441) |
| 282 | - FOR dotatie appropriateness |
| 283 | - Box 3 vermogen composition and categorisation (sparen vs beleggen vs overig) |
| 284 | |
| 285 | ## Positions Taken |
| 286 | [List with legislation citations] |
| 287 | - e.g., "Zelfstandigenaftrek claimed: EUR 2,470 -- Art. 3.76 Wet IB 2001, urencriterium confirmed by client" |
| 288 | - e.g., "Auto zakelijk gebruik 75% -- client-stated, kilometeradministratie available -- Art. 3.16 Wet IB 2001" |
| 289 | - e.g., "Laptop capitalised and depreciated at 20% p.a. over 5 years -- Art. 3.30 Wet IB 2001" |
| 290 | - e.g., "MKB-winstvrijstelling 13.31% applied -- Art. 3.79a Wet IB 2001" |
| 291 | - e.g., "Representatiekosten 80% limitation applied -- Art. 3.15 Wet IB 2001" |
| 292 | |
| 293 | ## Planning Notes for 2026 |
| 294 | - Voorlopige aanslag recommendation (IB + ZVW) |
| 295 | - KOR threshold monitoring (if approaching EUR 20,000) |
| 296 | - Capital allowances continuing into 2026 (boekwaarde schedule) |
| 297 | - FOR stand and conversion planning (lijfrente aankoop) |
| 298 | - Any legislative changes affecting 2026 (Belastingplan 2026 measures, schijventarief changes) |
| 299 | - Urencriterium documentation reminder |
| 300 | |
| 301 | ## Client Action List |
| 302 | |
| 303 | ### Immediate (before 1 May 2026 -- IB filing deadline): |
| 304 | 1. Review this return package with your belastingadviseur |
| 305 | 2. File aangifte inkomstenbelasting via MijnBelastingdienst |
| 306 | 3. Pay any te betalen amount for IB and ZVW |
| 307 | 4. File Q4 2025 BTW-aangifte (if not yet filed) -- deadline was 31 January 2026 |
| 308 | 5. Request/adjust voorlopige aanslag 2026 via MijnBelastingdienst |
| 309 | |
| 310 | ### BTW filing calendar (quarterly): |
| 311 | - Q1 2026 (Jan-Mar): file by 30 April 2026 |
| 312 | - Q2 2026 (Apr-Jun): file by 31 July 2026 |
| 313 | - Q3 2026 (Jul-Sep): file by 31 October 2026 |
| 314 | - Q4 2026 (Oct-Dec): file by 31 January 2027 |
| 315 | |
| 316 | ### ICP opgave (if applicable): |
| 317 | - Monthly or quarterly (aligned with BTW filing frequency) |
| 318 | - Due same date as BTW-aangifte |
| 319 | |
| 320 | ### Ongoing: |
| 321 | 1. Issue BTW-compliant facturen for all sales (Art. 35a Wet OB 1968) |
| 322 | 2. Retain all purchase invoices and receipts (7-year bewaarplicht -- Art. 52 AWR) |
| 323 | 3. Maintain kilometeradministratie if claiming auto expenses |
| 324 | 4. Maintain urenadministratie for urencriterium |
| 325 | 5. Monitor turnover for KOR threshold (EUR 20,000) |
| 326 | 6. Track capital assets in the afschrijvingsstaat |
| 327 | 7. Monitor FOR stand and plan lijfrente conversion before AOW-leeftijd |
| 328 | ``` |
| 329 | |
| 330 | --- |
| 331 | |
| 332 | ## Section 5 -- Refusals |
| 333 | |
| 334 | **R-NL-1 -- Upstream skill did not run.** Name the specific skill. Note: this is a warning, not a hard stop. Continue with available data and flag the gap. |
| 335 | |
| 336 | **R-NL-2 -- Upstream self-check failed.** Name the specific check and note it in the reviewer brief. Continue. |
| 337 | |
| 338 | **R-NL-3 -- Cross-skill reconciliation failed.** Name the specific reconciliation and describe the discrepancy. Flag for reviewer but continue. |
| 339 | |
| 340 | **R-NL-4 -- Intake incomplete.** Specific missing intake items prevent computation. List what is missing and ask the user for the specific data point. |
| 341 | |
| 342 | **R-NL-5 -- Out-of-scope item discovered during assembly.** E.g., Box 2 aanmerkelijk belang income, foreign source income requiring voorkoming dubbele belasting, or partnership income. Flag and exclude from computation. |
| 343 | |
| 344 | --- |
| 345 | |
| 346 | ## Section 6 -- Self-checks |
| 347 | |
| 348 | **Check NL1 -- All upstream skills executed.** nl-btw-return, nl-income-tax, nl-zvw all produced output. |
| 349 | |
| 350 | **Check NL2 -- BTW omzet matches IB winst omzet.** Within EUR 1 tolerance. |
| 351 | |
| 352 | **Check NL3 -- ZVW uses correct bijdrage-inkomen.** Box 1 verzamelinkomen matches the figure used for ZVW computation. |
| 353 | |
| 354 | **Check NL4 -- Ondernemersaftrek computation order correct.** Zelfstandigenaftrek applied before MKB-winstvrijstelling. MKB-winstvrijstelling percentage applied to winst AFTER zelfstandigenaftrek. |
| 355 | |
| 356 | **Check NL5 -- Regular BTW treatment correct.** Output BTW excluded from omzet; reclaimable voorbelasting excluded from bedrijfskosten; blocked voorbelasting included in bedrijfskosten. |
| 357 | |
| 358 | **Check NL6 -- KOR treatment correct.** No output BTW charged; all input BTW included in bedrijfskosten (bruto = cost). |
| 359 | |
| 360 | **Check NL7 -- Box 3 vermogensrendementsheffing computed correctly.** Heffingsvrij vermogen applied. Correct categorisation of banktegoeden, beleggingen, overige bezittingen. 2025 forfaitaire rendementen applied per category. |
| 361 | |
| 362 | **Check NL8 -- Heffingskortingen correctly computed.** Algemene heffingskorting phased out based on income. Arbeidskorting computed on winst uit onderneming + employment income. Inkomensafhankelijke combinatiekorting if applicable. |
| 363 | |
| 364 | **Check NL9 -- Schijventarief correctly applied.** 2025 rates: 36.97% up to EUR 38,441; 49.50% above EUR 38,441. |
| 365 | |
| 366 | **Check NL10 -- Filing calendar is complete.** All deadlines for BTW, IB, ICP, and voorlopige aanslag are listed with specific dates. |
| 367 | |
| 368 | **Check NL11 -- No form numbers in user-facing messages.** Internal notes can reference rubrieken and artikelen; user-facing messages use plain Dutch/English where possible. |
| 369 | |
| 370 | **Check NL12 -- Reviewer brief contains legislation citations.** Every position taken references the specific article of the relevant Wet (Wet IB 2001, Wet OB 1968, ZVW, AWR). |
| 371 | |
| 372 | --- |
| 373 | |
| 374 | ## Section 7 -- Output files |
| 375 | |
| 376 | The final output is **three files**: |
| 377 | |
| 378 | 1. **`[client_slug]_2025_nl_master.xlsx`** -- Single master workbook containing every worksheet. Sheets include: Cover, BTW-aangifte (Q4 or Annual), IB-aangifte (Box 1/2/3), Afschrijvingsstaat, Bedrijfskosten Detail, ZVW Reconciliation, Voorlopige Aanslag 2026, Ondernemersaftrek Berekening, Cross-Check Summary. Use live formulas where possible -- e.g., IB omzet references the BTW turnover cell; ondernemersaftrek chain is formula-driven; Box 3 references peildatum amounts. Verify no `#REF!` errors. Verify computed values match the Python/computation model within EUR 1 before shipping. |
| 379 | |
| 380 | 2. **`reviewer_brief.md`** -- Single markdown file covering all sections from Section 4 above: executive summary, BTW, IB (all boxes), ZVW, voorlopige aanslag, cross-skill reconciliation, flags, positions, planning notes. |
| 381 | |
| 382 | 3. **`client_action_list.md`** -- Single markdown file with step-by-step actions: immediate filings and payments, quarterly BTW calendar for 2026, ongoing compliance reminders. |
| 383 | |
| 384 | **If execution runs out of context mid-build:** produce whatever is complete, then state at the end which of the three files were not produced or are partial. |
| 385 | |
| 386 | **All files are placed in `/mnt/user-data/outputs/` and presented to the user via the `present_files` tool at the end.** |
| 387 | |
| 388 | --- |
| 389 | |
| 390 | ## Section 8 -- Cross-skill references |
| 391 | |
| 392 | **Inputs:** |
| 393 | - `nl-freelance-intake` -- structured intake package (JSON) |
| 394 | - `nl-btw-return` -- BTW-aangifte rubriek values and classification output |
| 395 | - `nl-income-tax` -- IB-aangifte values and computation output (Box 1/2/3) |
| 396 | - `nl-zvw` -- ZVW bijdrage reconciliation output |
| 397 | |
| 398 | **Outputs:** The final reviewer package. No downstream skill. |
| 399 | |
| 400 | --- |
| 401 | |
| 402 | ## Section 9 -- Known gaps |
| 403 | |
| 404 | 1. PDF form filling is not automated. The reviewer uses the worksheets to fill the official aangifte on MijnBelastingdienst. |
| 405 | 2. E-filing is handled by the reviewer via MijnBelastingdienst portal, not by this skill. |
| 406 | 3. Payment execution is the client's responsibility; the skill only provides instructions and amounts. |
| 407 | 4. VOF (vennootschap onder firma) returns are not supported -- only eenmanszaak. |
| 408 | 5. Box 2 (aanmerkelijk belang) is out of scope for eenmanszaak; flagged if discovered. |
| 409 | 6. Multi-year capital allowance tracking assumes the prior year afschrijvingsstaat is provided. If not, only current-year acquisitions are depreciated. |
| 410 | 7. Voorkoming dubbele belasting (double taxation relief) is out of scope. |
| 411 | 8. Toeslagen (zorgtoeslag, huurtoeslag, kindgebonden budget) are not computed -- these are separate applications via Belastingdienst/Toeslagen. |
| 412 | 9. The package is complete only for the 2025 tax year; 2026 appears only as prospective planning. |
| 413 | 10. Box 3 vermogensrendementsheffing uses the 2025 forfaitaire rendementen; actual rendementen may differ under the Wet rechtsherstel box 3 if applicable. |
| 414 | |
| 415 | ### Change log |
| 416 | - **v1.0 (May 2026):** Initial draft. Modelled on mt-return-assembly v0.1 adapted for Netherlands jurisdiction with three content skills (BTW-aangifte, IB-aangifte, ZVW). |
| 417 | |
| 418 | ## End of skill |
| 419 | |
| 420 | |
| 421 | --- |
| 422 | |
| 423 | ## Disclaimer |
| 424 | |
| 425 | This skill and its outputs are provided for informational and computational purposes only and do not constitute tax, legal, or financial advice. Open Accountants and its contributors accept no liability for any errors, omissions, or outcomes arising from the use of this skill. All outputs must be reviewed and signed off by a qualified professional (such as a CPA, EA, tax attorney, or equivalent licensed practitioner in your jurisdiction) before filing or acting upon. |
| 426 | |
| 427 | The most up-to-date, verified version of this skill is maintained at [openaccountants.com](https://openaccountants.com). Log in to access the latest version, request a professional review from a licensed accountant, and track updates as tax law changes. |
| 428 |
Run this skill, then get an accountant to check it
After running the full skill pack in your AI agent, sign up and upload your worksheet. We'll connect you with a trusted accountant in our network who can review your numbers before you file.
Verification status
Research-verified
Drafted from authoritative sources (tax authority sites, Big-4 summaries). Awaiting credentialed sign-off.
Needs section-by-section practitioner review to reach accountant-verified.
Section review progress
About
Final orchestrator skill that assembles the complete Netherlands filing package for Netherlands-resident self-employed individuals and sole proprietors (ZZP/eenmanszaak). Consumes outputs from all Netherlands content skills (nl-btw-return for BTW-aangifte, nl-income-tax for aangifte inkomstenbelasting Box 1/2/3, nl-zvw for zorgverzekeringswet bijdrage) to produce a single unified reviewer package containing every worksheet, every form, every brief section, all cross-skill reconciliations, and the final action list with payment instructions, filing instructions, and next-year planning. This is the capstone skill that runs last and produces the final deliverable. MUST be loaded alongside all Netherlands content skills listed above. Netherlands full-year residents only. Self-employed individuals and sole proprietors only.
Use this skill
This skill is open source and free to use in any AI agent. Copy it, download it, or clone the repo. If you find an error, report an issue — a licensed accountant will review.