NL Tax Winst uit onderneming
Background helper with two modes that are never blended:
- Annual 2025 profit determination: determine the belastbare winst uit
onderneming for an IB-ondernemer by following the ordered chain in
winstberekening-2025.md -- from a finalized profit-and-loss statement and
finalized balance, through the investeringsaftrek, the ondernemersaftrek and
the MKB-winstvrijstelling. Return that amount with every line of its
derivation, its provenance, and its open questions to the annual workflow,
which owns the box 1 total and every artifact.
- Provisional 2026 expected-profit forecast: record the taxpayer's sourced,
user-reviewed forecast for
Winst uit onderneming as
onderneming.geschatte_winst. Do not prepare annual accounts, annual
deductions, a Zvw amount, cessation profit, or final tax; raise the separate
voorlopige aanslag Zvw with the taxpayer without sizing it.
This helper may be called through a Skill/Task tool or inlined by an owning workflow when no such tool exists. The same output contract applies either way.
Read first
Resolve every workspace/... path against workspace_root from
session-progress.yaml (or profile.yaml); never create a second workspace/
tree. _shared/ is the plugin-shared folder at this skill's ../_shared/.
Read ../_shared/runtime-contract.md first. Resolve bundled files relative to
this skill directory with the host's skill-resource or file tools. Do not
depend on shell visibility or vendor-specific environment variables.
Select the owning workflow's mode before loading mode-specific material. Never
load both modes for comparison.
For annual 2025 profit determination, read the reviewed 2025 knowledge notes
below. They are canonical for every rate, amount, and threshold. Never
paraphrase a figure from memory; return each loaded source_id to the owning
workflow so it can append the ID to the active workflow's
session-progress.yaml → sources_loaded_by_workflow list and mirror it in
top-level sources_loaded. Always read the first three. Open each remaining
note when the taxpayer's own facts touch it, and report the exact path when one
cannot be opened:
../_shared/knowledge/years/2025/entrepreneur/winstberekening-2025.md -- the ordered chain, the winst cap, and the line each downstream base is read off
../_shared/knowledge/years/2025/entrepreneur/zakelijke-schema-2025.md -- the winst-en-verliesrekening and balans rubrieken, the entrepreneur questions, the double-entry facts, and the onderneming.* identifiers
reference/winst-2025.md -- the annual computation contract this helper follows
../_shared/knowledge/years/2025/entrepreneur/ondernemer-criteria.md -- ondernemer status and the urencriterium
../_shared/knowledge/years/2025/entrepreneur/ondernemersaftrek.md -- the components and their conditions
../_shared/knowledge/years/2025/entrepreneur/mkb-winstvrijstelling.md -- the exemption and its base
../_shared/knowledge/years/2025/entrepreneur/investeringsaftrek.md -- KIA, EIA, MIA, and the desinvesteringsbijtelling
../_shared/knowledge/years/2025/entrepreneur/winst-en-kosten.md -- turnover, deductible and beperkt aftrekbare kosten, and the fiscal corrections
../_shared/knowledge/years/2025/entrepreneur/afschrijving-en-bedrijfsmiddelen-2025.md -- vermogensetikettering, depreciation, and the fiscale-reserves boundary
../_shared/knowledge/years/2025/entrepreneur/vervoer-2025.md -- car, bestelauto, private vehicle, and fiets treatment
../_shared/knowledge/years/2025/entrepreneur/aanloopfase-en-starters-2025.md -- aanloopkosten, a first partial year, and the starter reliefs
../_shared/knowledge/years/2025/entrepreneur/partner-en-meewerken-2025.md -- the meewerkende-partner routes and the arbeidsbeloning boundary
../_shared/knowledge/years/2025/entrepreneur/samenwerkingsverband-2025.md -- recognition and routing of vof, maatschap, cv, medegerechtigde, agrarisch, and zeevarenden
../_shared/knowledge/years/2025/entrepreneur/row-en-dba-2025.md -- the bron van inkomen pre-screen and the prepared resultaat uit overige werkzaamheden path
../_shared/knowledge/years/2025/entrepreneur/staking-2025.md -- what a staking is, and where computation stops
../_shared/knowledge/years/2025/entrepreneur/verlies-en-verrekening-2025.md -- a negative outcome and the niet-gerealiseerde zelfstandigenaftrek carry-forward
../_shared/knowledge/years/2025/entrepreneur/zvw-2025.md -- the bijdrage Zorgverzekeringswet and its base
../_shared/knowledge/years/2025/entrepreneur/inkomensvoorzieningen-2025.md -- lijfrente ruimte, AOV premiums, and the oudedagsreserve run-down
../_shared/knowledge/years/2025/entrepreneur/entrepreneur-aangifte.md -- portal, channel, deadlines, and the evidence list
For provisional 2026 expected-profit forecast, load
reference/winst-2026-provisional.md together with the two 2026 knowledge notes
it names:
../_shared/knowledge/years/2026/provisional/winst-provisional-2026.md
../_shared/knowledge/years/2026/provisional/zvw-provisional-2026.md
Do not load the annual 2025 entrepreneur notes or reference/winst-2025.md;
this mode needs one sourced, user-reviewed forecast, not annual rates,
deductions, accounts, or the annual profit chain.
There are no bundled calculators for this helper. The chain is arithmetic the
agent performs itself from the reviewed notes, printing every line and the
evidence under it; it never replaces the taxpayer's own bookkeeping or an
adviser's judgment.
Do
- Select annual or provisional mode from the owning workflow; never blend them.
- For annual mode, confirm the finalized profit-and-loss statement and finalized
balance belong to tax year 2025 and are internally identified as
final/reviewed. Without both, collect facts and questions and leave the chain
unresolved rather than estimating a line.
- Run the bron van inkomen pre-screen and the category test before collecting any
figure (
row-en-dba-2025.md). Loon, winst uit onderneming, and resultaat uit
overige werkzaamheden are decided per activity on facts the taxpayer confirms.
- Run the chain in
winstberekening-2025.md strictly in its published order:
winst uit onderneming, minus investeringsaftrek, minus ondernemersaftrek, minus
the MKB-winstvrijstelling, giving the belastbare winst uit onderneming. Print
each line with its amount, the note the rule came from, and the evidence under
it, so the arithmetic stays traceable.
- Apply the winst cap on the ondernemersaftrek, and check the startersaftrek
exception before applying it. When the cap bites, report the niet-gerealiseerde
zelfstandigenaftrek, the beschikking that fixes it, and the fact that it is not
set off automatically.
- State the tariefsaanpassing qualitatively when the threshold is in play, say
that ordinary business costs and the investeringsaftrek are not affected, and
say that the aangifte computes the correction itself. Never present an
agent-computed correction as the amount that will be assessed.
- Return the belastbare winst uit onderneming to the annual workflow as the winst
component of box 1, together with the downstream bases and the line each one is
read off. Re-read the chain note before emitting them instead of recalling them
from a similar case.
- Keep the computed chain in the workpack narrative. The aangifte computes the
ondernemersaftrek components, their total, the MKB-winstvrijstelling, the
kleinschaligheidsinvesteringsaftrek, and the belastbare winst itself from the
figures and the yes/no answers the taxpayer types, so never return
onderneming.belastbare_winst, onderneming.zelfstandigenaftrek,
onderneming.startersaftrek, onderneming.ondernemersaftrek_totaal,
onderneming.mkb_winstvrijstelling, or
onderneming.kleinschaligheidsinvesteringsaftrek as manual-entry rows. Present
each as a computed expectation the taxpayer checks on screen.
- Carry the vermogensvergelijking as a self-check: the winstberekening has to
reconcile to the saldo of the winst-en-verliesrekening. Ask for the opening and
the closing ondernemingsvermogen separately, report a mismatch, and never
adjust a figure to force agreement.
- Recognise the taxpayer's business form and route it, using the per-form table
in
reference/winst-2025.md. Recognition, fact collection, and saying which
reliefs fall away are in scope; the computation for a non-eenmanszaak form is
not.
- On a negative outcome, say that the MKB-winstvrijstelling made the loss smaller
and hand the loss to
verlies-en-verrekening-2025.md. A loss year still
requires a filed return.
- For provisional mode, collect one expected-profit forecast for the full 2026
year, its basis, source provenance, and explicit user review. Return only
onderneming.geschatte_winst plus review notes, the separate voorlopige
aanslag Zvw point, and open questions. Never return a Zvw field or value for
the income-tax field map; the companion is prose and a separate human check.
- Keep outputs suitable for preparation workpacks and manual review.
- When facts are missing, return a structured question packet instead of
inventing zeros.
Handoffs
- Zvw. An ondernemer receives a second, separate aanslag for the
inkomensafhankelijke bijdrage Zorgverzekeringswet alongside the aanslag
inkomstenbelasting, and one return feeds both. In annual mode, hand the
belastbare winst uit onderneming to
zvw-2025.md as the bijdrage-inkomen and
let that note supply the percentage and the maximumbijdrage-inkomen. Ask
whether the taxpayer also had loon, pensioen, or an uitkering and, for each,
ask for the "loon Zorgverzekeringswet" on the jaaropgaaf, because the ceiling
is shared; never assume there was none. Present the method, never a predicted
assessment amount, and never deduct the bijdrage from the winst. In provisional
mode, raise the separate voorlopige aanslag Zvw from
zvw-provisional-2026.md without waiting to be asked. Say that the two
assessments have separate change routes, that coupling is not established in
the reviewed sources, and that the taxpayer checks the Zvw assessment
separately and records what they find.
- Lijfrente. Hand the winst before the ondernemersaftrek to
inkomensvoorzieningen-2025.md as the winst component of the premiegrondslag.
The chain note fixes which line that is; inkomensvoorzieningen-2025.md fixes
which year the premiegrondslag is measured over and owns every figure in the
jaarruimte and the reserveringsruimte. AOV premiums are never a business cost.
- The two bases are different figures. The Zvw base sits at the end of the
chain and the lijfrente base sits earlier, so the lijfrente base is the larger
amount whenever the ondernemersaftrek or the MKB-winstvrijstelling is positive.
Label both with their line and never reuse one amount for the other.
- Resultaat uit overige werkzaamheden is a prepared path, not a dead end.
Prepare it as income minus deductible costs on the winstbepalingsregels, using
row-en-dba-2025.md with winst-en-kosten.md and
afschrijving-en-bedrijfsmiddelen-2025.md. The ondernemersaftrek, the
MKB-winstvrijstelling, the investeringsaftrek, and the fiscale reserves are all
absent; quantify what that costs from the taxpayer's own figures instead of
describing it. The resultaat is reported in the privedeel under
box1.resultaat_overige_werkzaamheden, it carries a bijdrage Zvw, it never
opens the zakelijke schema, and it is not divisible between fiscal partners.
Do not ask for an hours count in order to settle this category.
Question packet
Return missing inputs to the calling workflow in this shape:
- question_id: "annual.winst.ondernemer.status"
workflow: "annual_2025"
section: "winst.ondernemer_status"
prompt_for_user: "Do you run your own business as an IB-ondernemer (eenmanszaak / ZZP), and did you meet the urencriterium in 2025 as described in the entrepreneur knowledge note?"
acceptable_sources: ["file", "user_chat"]
evidence_hint: "KvK registration, urenadministratie, winst-en-verliesrekening"
- question_id: "annual.winst.ondernemersaftrek.startersaftrek"
workflow: "annual_2025"
section: "winst.ondernemersaftrek"
prompt_for_user: "For the regular startersaftrek: in the calendar years before 2025, were there years in which you were not an IB-ondernemer, and how often has the zelfstandigenaftrek already been applied? Also say whether there was a geruisloze terugkeer uit a BV in that period."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "prior-year aangiften or aanslagen, notes on start date and ondernemersaftrek history"
- question_id: "annual.winst.result.omzet_kosten"
workflow: "annual_2025"
section: "winst.result"
prompt_for_user: "What was your 2025 turnover (omzet) and total deductible business costs? A winst-en-verliesrekening or bookkeeping export is ideal."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "winst-en-verliesrekening, balans, facturen"
- question_id: "annual.winst.vorm.samenwerkingsverband"
workflow: "annual_2025"
section: "winst.ondernemingsvorm"
prompt_for_user: "Do you run the business on your own as an eenmanszaak, or together with others in a vof, maatschap, or cv? Please also say whether you put in only money without running the business, and whether any asset you own privately is used by the business."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "KvK extract, vennootschaps- or maatschapscontract, agreement on assets made available"
- question_id: "annual.winst.investeringsaftrek.investeringen"
workflow: "annual_2025"
section: "winst.investeringsaftrek"
prompt_for_user: "Did the business buy or improve any bedrijfsmiddelen in 2025, and did it sell or transfer an asset on which an investeringsaftrek was claimed earlier? Please list each item with its invoice, date, and amount."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "investment invoices, asset register, RVO verklaring for EIA or MIA"
- question_id: "annual.winst.balans.ondernemingsvermogen"
workflow: "annual_2025"
section: "winst.balans"
prompt_for_user: "What was the ondernemingsvermogen at the start and at the end of the 2025 boekjaar, and what were the priveonttrekkingen and privestortingen? Please give the opening and the closing figure separately."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "finalized balans with both columns, grootboek, private-use records"
- question_id: "annual.winst.verlies.niet_gerealiseerde_zelfstandigenaftrek"
workflow: "annual_2025"
section: "winst.verlies"
prompt_for_user: "Do you carry a niet-gerealiseerde zelfstandigenaftrek balance from an earlier year, and can you show the beschikking that fixed it?"
acceptable_sources: ["file", "user_chat"]
evidence_hint: "aanslagbiljet carrying the beschikking, running balance kept from earlier returns"
- question_id: "annual.winst.zvw.loon_zorgverzekeringswet"
workflow: "annual_2025"
section: "winst.zvw"
prompt_for_user: "Did you also have loon, pension, or a benefit in 2025? If so, what is the 'loon Zorgverzekeringswet' shown on each jaaropgaaf?"
acceptable_sources: ["file", "user_chat"]
evidence_hint: "2025 jaaropgaaf per employer or benefits agency"
- question_id: "annual.winst.lijfrente.premies"
workflow: "annual_2025"
section: "winst.inkomensvoorzieningen"
prompt_for_user: "Did you pay lijfrente premiums or deposits in 2025, and did you hold an arbeidsongeschiktheidsverzekering? Please give the amounts and the exact payment dates."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "insurer statements with payment dates, bank statements, policy summary"
- question_id: "annual.winst.row.inkomsten_en_kosten"
workflow: "annual_2025"
section: "winst.resultaat_overige_werkzaamheden"
prompt_for_user: "For work you did outside employment and outside a business of your own: what did you invoice or receive in 2025, and what costs did you make for that work?"
acceptable_sources: ["file", "user_chat"]
evidence_hint: "invoices or payment statements, cost receipts, purchase invoices for assets used"
- question_id: "provisional.winst.expected_profit"
workflow: "provisional_2026"
section: "winst_forecast"
prompt_for_user: "What is your reviewed best estimate of full-year 2026 profit from the enterprise, and what forecast or current bookkeeping supports it?"
acceptable_sources: ["file", "user_chat"]
evidence_hint: "current profit forecast, year-to-date bookkeeping, or user-reviewed estimate"
- question_id: "provisional.winst.zvw.voorlopige_aanslag"
workflow: "provisional_2026"
section: "winst_forecast"
prompt_for_user: "Did you also receive a separate voorlopige aanslag Zorgverzekeringswet for 2026, and which income is it based on? It has its own change route; whether an income-tax change is coupled to it is not established, so check it separately."
acceptable_sources: ["file", "user_chat"]
evidence_hint: "the voorlopige aanslag Zvw 2026 letter or the copy in the taxpayer's own portal"
The calling skill asks these questions, records the answers with source,
quote/evidence_id, and timestamp under its own workflow notes tree, then
re-runs this helper contract. The annual workflow owns persistence in annual
mode. The provisional workflow owns persistence in provisional mode. The helper
owns no persisted artifact. Do not write caller-owned notes.
Never
- Do not claim that the helper gives binding tax advice or a final assessment.
The aangifte the taxpayer files and the aanslag they receive stay
authoritative, and the chain in the workpack is what they check against them.
- Do not compute a stakingswinst, a herinvesteringsreserve or
kostenegalisatiereserve movement, an oudedagsreserve release, or a
stakingslijfrente. Record the facts and route them to manual review.
- Do not compute a terbeschikkingstellingsresultaat or apply the
terbeschikkingstellingsvrijstelling.
- Do not apply the medegerechtigde loss cap or decide whether a
samenwerkingsverband is ongebruikelijk. Both need running records this helper
does not hold.
- Do not compute a winstaandeel, a KIA apportionment, buitenvennootschappelijk
vermogen, or any other per-participant figure for a vof, maatschap, or cv.
Recognising and routing the form is in scope; splitting the profit is not.
- Do not compute DGA/BV winst or a corporate-tax interaction.
- Do not compute a youngtimer bijtelling or a claimed zonnecelauto outcome.
- Do not decide a borderline ondernemer-versus-resultaat-uit-overige-werkzaamheden
qualification. Put the criteria to the taxpayer, collect their facts against
each one, state what each outcome costs in reliefs, and route the decision
itself to manual review.
- Do not treat a btw-ondernemer, a KvK registration, the KOR, the absence of
loondienst, or a modelovereenkomst as proof of IB-ondernemerschap.
- Do not turn the provisional expected-profit forecast into business accounts,
annual deductions, a Zvw amount, cessation profit, or final tax.
- Do not return a chain output the aangifte computes as a manual-entry
field-map row, and never widen the single supported provisional business field.
- Do not write field maps, annual/provisional workpack templates, source
registers, supported workflow files, or shared eval data.
Return structured facts and open questions to the owning workflow. Do not
persist any final artifact, including shared notes, question packets, session
state, workpacks, or field maps. In either mode, only the calling owning workflow
may read historical helper notes for resume compatibility.
Authenticated-portal boundary: Never use a browser, Claude in Chrome, computer
use, screen interaction, a connector, or another tool to open or operate an
authenticated tax portal; never log in, enter or change values, click controls,
sign, send, submit, retrieve private account data, or ask for, accept, store, or
process credentials or sessions. Those actions remain human-only even with
taxpayer permission or available credentials.
1---2name: nl-tax-winst3description: Use when an owning Dutch tax workflow needs the annual 2025 belastbare winst uit onderneming determined from the reviewed profit chain, or one sourced 2026 provisional expected-profit forecast.4---56# NL Tax Winst uit onderneming78Background helper with two modes that are never blended:910- **Annual 2025 profit determination:** determine the belastbare winst uit11 onderneming for an IB-ondernemer by following the ordered chain in12 `winstberekening-2025.md` -- from a finalized profit-and-loss statement and13 finalized balance, through the investeringsaftrek, the ondernemersaftrek and14 the MKB-winstvrijstelling. Return that amount with every line of its15 derivation, its provenance, and its open questions to the annual workflow,16 which owns the box 1 total and every artifact.17- **Provisional 2026 expected-profit forecast:** record the taxpayer's sourced,18 user-reviewed forecast for `Winst uit onderneming` as19 `onderneming.geschatte_winst`. Do not prepare annual accounts, annual20 deductions, a Zvw amount, cessation profit, or final tax; raise the separate21 voorlopige aanslag Zvw with the taxpayer without sizing it.2223This helper may be called through a Skill/Task tool or inlined by an owning workflow when no such tool exists. The same output contract applies either way.2425## Read first2627Resolve every `workspace/...` path against `workspace_root` from28`session-progress.yaml` (or `profile.yaml`); never create a second `workspace/`29tree. `_shared/` is the plugin-shared folder at this skill's `../_shared/`.30Read `../_shared/runtime-contract.md` first. Resolve bundled files relative to31this skill directory with the host's skill-resource or file tools. Do not32depend on shell visibility or vendor-specific environment variables.3334Select the owning workflow's mode before loading mode-specific material. Never35load both modes for comparison.3637For **annual 2025 profit determination**, read the reviewed 2025 knowledge notes38below. They are canonical for every rate, amount, and threshold. Never39paraphrase a figure from memory; return each loaded `source_id` to the owning40workflow so it can append the ID to the active workflow's41`session-progress.yaml` → `sources_loaded_by_workflow` list and mirror it in42top-level `sources_loaded`. Always read the first three. Open each remaining43note when the taxpayer's own facts touch it, and report the exact path when one44cannot be opened:4546- `../_shared/knowledge/years/2025/entrepreneur/winstberekening-2025.md` -- the ordered chain, the winst cap, and the line each downstream base is read off47- `../_shared/knowledge/years/2025/entrepreneur/zakelijke-schema-2025.md` -- the winst-en-verliesrekening and balans rubrieken, the entrepreneur questions, the double-entry facts, and the `onderneming.*` identifiers48- `reference/winst-2025.md` -- the annual computation contract this helper follows49- `../_shared/knowledge/years/2025/entrepreneur/ondernemer-criteria.md` -- ondernemer status and the urencriterium50- `../_shared/knowledge/years/2025/entrepreneur/ondernemersaftrek.md` -- the components and their conditions51- `../_shared/knowledge/years/2025/entrepreneur/mkb-winstvrijstelling.md` -- the exemption and its base52- `../_shared/knowledge/years/2025/entrepreneur/investeringsaftrek.md` -- KIA, EIA, MIA, and the desinvesteringsbijtelling53- `../_shared/knowledge/years/2025/entrepreneur/winst-en-kosten.md` -- turnover, deductible and beperkt aftrekbare kosten, and the fiscal corrections54- `../_shared/knowledge/years/2025/entrepreneur/afschrijving-en-bedrijfsmiddelen-2025.md` -- vermogensetikettering, depreciation, and the fiscale-reserves boundary55- `../_shared/knowledge/years/2025/entrepreneur/vervoer-2025.md` -- car, bestelauto, private vehicle, and fiets treatment56- `../_shared/knowledge/years/2025/entrepreneur/aanloopfase-en-starters-2025.md` -- aanloopkosten, a first partial year, and the starter reliefs57- `../_shared/knowledge/years/2025/entrepreneur/partner-en-meewerken-2025.md` -- the meewerkende-partner routes and the arbeidsbeloning boundary58- `../_shared/knowledge/years/2025/entrepreneur/samenwerkingsverband-2025.md` -- recognition and routing of vof, maatschap, cv, medegerechtigde, agrarisch, and zeevarenden59- `../_shared/knowledge/years/2025/entrepreneur/row-en-dba-2025.md` -- the bron van inkomen pre-screen and the prepared resultaat uit overige werkzaamheden path60- `../_shared/knowledge/years/2025/entrepreneur/staking-2025.md` -- what a staking is, and where computation stops61- `../_shared/knowledge/years/2025/entrepreneur/verlies-en-verrekening-2025.md` -- a negative outcome and the niet-gerealiseerde zelfstandigenaftrek carry-forward62- `../_shared/knowledge/years/2025/entrepreneur/zvw-2025.md` -- the bijdrage Zorgverzekeringswet and its base63- `../_shared/knowledge/years/2025/entrepreneur/inkomensvoorzieningen-2025.md` -- lijfrente ruimte, AOV premiums, and the oudedagsreserve run-down64- `../_shared/knowledge/years/2025/entrepreneur/entrepreneur-aangifte.md` -- portal, channel, deadlines, and the evidence list6566For **provisional 2026 expected-profit forecast**, load67`reference/winst-2026-provisional.md` together with the two 2026 knowledge notes68it names:6970- `../_shared/knowledge/years/2026/provisional/winst-provisional-2026.md`71- `../_shared/knowledge/years/2026/provisional/zvw-provisional-2026.md`7273Do not load the annual 2025 entrepreneur notes or `reference/winst-2025.md`;74this mode needs one sourced, user-reviewed forecast, not annual rates,75deductions, accounts, or the annual profit chain.7677There are no bundled calculators for this helper. The chain is arithmetic the78agent performs itself from the reviewed notes, printing every line and the79evidence under it; it never replaces the taxpayer's own bookkeeping or an80adviser's judgment.8182## Do8384- Select annual or provisional mode from the owning workflow; never blend them.85- For annual mode, confirm the finalized profit-and-loss statement and finalized86 balance belong to tax year 2025 and are internally identified as87 final/reviewed. Without both, collect facts and questions and leave the chain88 unresolved rather than estimating a line.89- Run the bron van inkomen pre-screen and the category test before collecting any90 figure (`row-en-dba-2025.md`). Loon, winst uit onderneming, and resultaat uit91 overige werkzaamheden are decided per activity on facts the taxpayer confirms.92- Run the chain in `winstberekening-2025.md` strictly in its published order:93 winst uit onderneming, minus investeringsaftrek, minus ondernemersaftrek, minus94 the MKB-winstvrijstelling, giving the belastbare winst uit onderneming. Print95 each line with its amount, the note the rule came from, and the evidence under96 it, so the arithmetic stays traceable.97- Apply the winst cap on the ondernemersaftrek, and check the startersaftrek98 exception before applying it. When the cap bites, report the niet-gerealiseerde99 zelfstandigenaftrek, the beschikking that fixes it, and the fact that it is not100 set off automatically.101- State the tariefsaanpassing qualitatively when the threshold is in play, say102 that ordinary business costs and the investeringsaftrek are not affected, and103 say that the aangifte computes the correction itself. Never present an104 agent-computed correction as the amount that will be assessed.105- Return the belastbare winst uit onderneming to the annual workflow as the winst106 component of box 1, together with the downstream bases and the line each one is107 read off. Re-read the chain note before emitting them instead of recalling them108 from a similar case.109- Keep the computed chain in the workpack narrative. The aangifte computes the110 ondernemersaftrek components, their total, the MKB-winstvrijstelling, the111 kleinschaligheidsinvesteringsaftrek, and the belastbare winst itself from the112 figures and the yes/no answers the taxpayer types, so never return113 `onderneming.belastbare_winst`, `onderneming.zelfstandigenaftrek`,114 `onderneming.startersaftrek`, `onderneming.ondernemersaftrek_totaal`,115 `onderneming.mkb_winstvrijstelling`, or116 `onderneming.kleinschaligheidsinvesteringsaftrek` as manual-entry rows. Present117 each as a computed expectation the taxpayer checks on screen.118- Carry the vermogensvergelijking as a self-check: the winstberekening has to119 reconcile to the saldo of the winst-en-verliesrekening. Ask for the opening and120 the closing ondernemingsvermogen separately, report a mismatch, and never121 adjust a figure to force agreement.122- Recognise the taxpayer's business form and route it, using the per-form table123 in `reference/winst-2025.md`. Recognition, fact collection, and saying which124 reliefs fall away are in scope; the computation for a non-eenmanszaak form is125 not.126- On a negative outcome, say that the MKB-winstvrijstelling made the loss smaller127 and hand the loss to `verlies-en-verrekening-2025.md`. A loss year still128 requires a filed return.129- For provisional mode, collect one expected-profit forecast for the full 2026130 year, its basis, source provenance, and explicit user review. Return only131 `onderneming.geschatte_winst` plus review notes, the separate voorlopige132 aanslag Zvw point, and open questions. Never return a Zvw field or value for133 the income-tax field map; the companion is prose and a separate human check.134- Keep outputs suitable for preparation workpacks and manual review.135- When facts are missing, return a structured question packet instead of136 inventing zeros.137138## Handoffs139140- **Zvw.** An ondernemer receives a second, separate aanslag for the141 inkomensafhankelijke bijdrage Zorgverzekeringswet alongside the aanslag142 inkomstenbelasting, and one return feeds both. In annual mode, hand the143 belastbare winst uit onderneming to `zvw-2025.md` as the bijdrage-inkomen and144 let that note supply the percentage and the maximumbijdrage-inkomen. Ask145 whether the taxpayer also had loon, pensioen, or an uitkering and, for each,146 ask for the "loon Zorgverzekeringswet" on the jaaropgaaf, because the ceiling147 is shared; never assume there was none. Present the method, never a predicted148 assessment amount, and never deduct the bijdrage from the winst. In provisional149 mode, raise the separate voorlopige aanslag Zvw from150 `zvw-provisional-2026.md` without waiting to be asked. Say that the two151 assessments have separate change routes, that coupling is not established in152 the reviewed sources, and that the taxpayer checks the Zvw assessment153 separately and records what they find.154- **Lijfrente.** Hand the winst before the ondernemersaftrek to155 `inkomensvoorzieningen-2025.md` as the winst component of the premiegrondslag.156 The chain note fixes which line that is; `inkomensvoorzieningen-2025.md` fixes157 which year the premiegrondslag is measured over and owns every figure in the158 jaarruimte and the reserveringsruimte. AOV premiums are never a business cost.159- **The two bases are different figures.** The Zvw base sits at the end of the160 chain and the lijfrente base sits earlier, so the lijfrente base is the larger161 amount whenever the ondernemersaftrek or the MKB-winstvrijstelling is positive.162 Label both with their line and never reuse one amount for the other.163- **Resultaat uit overige werkzaamheden is a prepared path, not a dead end.**164 Prepare it as income minus deductible costs on the winstbepalingsregels, using165 `row-en-dba-2025.md` with `winst-en-kosten.md` and166 `afschrijving-en-bedrijfsmiddelen-2025.md`. The ondernemersaftrek, the167 MKB-winstvrijstelling, the investeringsaftrek, and the fiscale reserves are all168 absent; quantify what that costs from the taxpayer's own figures instead of169 describing it. The resultaat is reported in the privedeel under170 `box1.resultaat_overige_werkzaamheden`, it carries a bijdrage Zvw, it never171 opens the zakelijke schema, and it is not divisible between fiscal partners.172 Do not ask for an hours count in order to settle this category.173174## Question packet175176Return missing inputs to the calling workflow in this shape:177178```yaml179- question_id: "annual.winst.ondernemer.status"180 workflow: "annual_2025"181 section: "winst.ondernemer_status"182 prompt_for_user: "Do you run your own business as an IB-ondernemer (eenmanszaak / ZZP), and did you meet the urencriterium in 2025 as described in the entrepreneur knowledge note?"183 acceptable_sources: ["file", "user_chat"]184 evidence_hint: "KvK registration, urenadministratie, winst-en-verliesrekening"185- question_id: "annual.winst.ondernemersaftrek.startersaftrek"186 workflow: "annual_2025"187 section: "winst.ondernemersaftrek"188 prompt_for_user: "For the regular startersaftrek: in the calendar years before 2025, were there years in which you were not an IB-ondernemer, and how often has the zelfstandigenaftrek already been applied? Also say whether there was a geruisloze terugkeer uit a BV in that period."189 acceptable_sources: ["file", "user_chat"]190 evidence_hint: "prior-year aangiften or aanslagen, notes on start date and ondernemersaftrek history"191- question_id: "annual.winst.result.omzet_kosten"192 workflow: "annual_2025"193 section: "winst.result"194 prompt_for_user: "What was your 2025 turnover (omzet) and total deductible business costs? A winst-en-verliesrekening or bookkeeping export is ideal."195 acceptable_sources: ["file", "user_chat"]196 evidence_hint: "winst-en-verliesrekening, balans, facturen"197- question_id: "annual.winst.vorm.samenwerkingsverband"198 workflow: "annual_2025"199 section: "winst.ondernemingsvorm"200 prompt_for_user: "Do you run the business on your own as an eenmanszaak, or together with others in a vof, maatschap, or cv? Please also say whether you put in only money without running the business, and whether any asset you own privately is used by the business."201 acceptable_sources: ["file", "user_chat"]202 evidence_hint: "KvK extract, vennootschaps- or maatschapscontract, agreement on assets made available"203- question_id: "annual.winst.investeringsaftrek.investeringen"204 workflow: "annual_2025"205 section: "winst.investeringsaftrek"206 prompt_for_user: "Did the business buy or improve any bedrijfsmiddelen in 2025, and did it sell or transfer an asset on which an investeringsaftrek was claimed earlier? Please list each item with its invoice, date, and amount."207 acceptable_sources: ["file", "user_chat"]208 evidence_hint: "investment invoices, asset register, RVO verklaring for EIA or MIA"209- question_id: "annual.winst.balans.ondernemingsvermogen"210 workflow: "annual_2025"211 section: "winst.balans"212 prompt_for_user: "What was the ondernemingsvermogen at the start and at the end of the 2025 boekjaar, and what were the priveonttrekkingen and privestortingen? Please give the opening and the closing figure separately."213 acceptable_sources: ["file", "user_chat"]214 evidence_hint: "finalized balans with both columns, grootboek, private-use records"215- question_id: "annual.winst.verlies.niet_gerealiseerde_zelfstandigenaftrek"216 workflow: "annual_2025"217 section: "winst.verlies"218 prompt_for_user: "Do you carry a niet-gerealiseerde zelfstandigenaftrek balance from an earlier year, and can you show the beschikking that fixed it?"219 acceptable_sources: ["file", "user_chat"]220 evidence_hint: "aanslagbiljet carrying the beschikking, running balance kept from earlier returns"221- question_id: "annual.winst.zvw.loon_zorgverzekeringswet"222 workflow: "annual_2025"223 section: "winst.zvw"224 prompt_for_user: "Did you also have loon, pension, or a benefit in 2025? If so, what is the 'loon Zorgverzekeringswet' shown on each jaaropgaaf?"225 acceptable_sources: ["file", "user_chat"]226 evidence_hint: "2025 jaaropgaaf per employer or benefits agency"227- question_id: "annual.winst.lijfrente.premies"228 workflow: "annual_2025"229 section: "winst.inkomensvoorzieningen"230 prompt_for_user: "Did you pay lijfrente premiums or deposits in 2025, and did you hold an arbeidsongeschiktheidsverzekering? Please give the amounts and the exact payment dates."231 acceptable_sources: ["file", "user_chat"]232 evidence_hint: "insurer statements with payment dates, bank statements, policy summary"233- question_id: "annual.winst.row.inkomsten_en_kosten"234 workflow: "annual_2025"235 section: "winst.resultaat_overige_werkzaamheden"236 prompt_for_user: "For work you did outside employment and outside a business of your own: what did you invoice or receive in 2025, and what costs did you make for that work?"237 acceptable_sources: ["file", "user_chat"]238 evidence_hint: "invoices or payment statements, cost receipts, purchase invoices for assets used"239- question_id: "provisional.winst.expected_profit"240 workflow: "provisional_2026"241 section: "winst_forecast"242 prompt_for_user: "What is your reviewed best estimate of full-year 2026 profit from the enterprise, and what forecast or current bookkeeping supports it?"243 acceptable_sources: ["file", "user_chat"]244 evidence_hint: "current profit forecast, year-to-date bookkeeping, or user-reviewed estimate"245- question_id: "provisional.winst.zvw.voorlopige_aanslag"246 workflow: "provisional_2026"247 section: "winst_forecast"248 prompt_for_user: "Did you also receive a separate voorlopige aanslag Zorgverzekeringswet for 2026, and which income is it based on? It has its own change route; whether an income-tax change is coupled to it is not established, so check it separately."249 acceptable_sources: ["file", "user_chat"]250 evidence_hint: "the voorlopige aanslag Zvw 2026 letter or the copy in the taxpayer's own portal"251```252253The calling skill asks these questions, records the answers with `source`,254`quote`/`evidence_id`, and timestamp under its own workflow notes tree, then255re-runs this helper contract. The annual workflow owns persistence in annual256mode. The provisional workflow owns persistence in provisional mode. The helper257owns no persisted artifact. Do not write caller-owned notes.258259## Never260261- Do not claim that the helper gives binding tax advice or a final assessment.262 The aangifte the taxpayer files and the aanslag they receive stay263 authoritative, and the chain in the workpack is what they check against them.264- Do not compute a stakingswinst, a herinvesteringsreserve or265 kostenegalisatiereserve movement, an oudedagsreserve release, or a266 stakingslijfrente. Record the facts and route them to manual review.267- Do not compute a terbeschikkingstellingsresultaat or apply the268 terbeschikkingstellingsvrijstelling.269- Do not apply the medegerechtigde loss cap or decide whether a270 samenwerkingsverband is ongebruikelijk. Both need running records this helper271 does not hold.272- Do not compute a winstaandeel, a KIA apportionment, buitenvennootschappelijk273 vermogen, or any other per-participant figure for a vof, maatschap, or cv.274 Recognising and routing the form is in scope; splitting the profit is not.275- Do not compute DGA/BV winst or a corporate-tax interaction.276- Do not compute a youngtimer bijtelling or a claimed zonnecelauto outcome.277- Do not decide a borderline ondernemer-versus-resultaat-uit-overige-werkzaamheden278 qualification. Put the criteria to the taxpayer, collect their facts against279 each one, state what each outcome costs in reliefs, and route the decision280 itself to manual review.281- Do not treat a btw-ondernemer, a KvK registration, the KOR, the absence of282 loondienst, or a modelovereenkomst as proof of IB-ondernemerschap.283- Do not turn the provisional expected-profit forecast into business accounts,284 annual deductions, a Zvw amount, cessation profit, or final tax.285- Do not return a chain output the aangifte computes as a manual-entry286 field-map row, and never widen the single supported provisional business field.287- Do not write field maps, annual/provisional workpack templates, source288 registers, supported workflow files, or shared eval data.289290Return structured facts and open questions to the owning workflow. Do not291persist any final artifact, including shared notes, question packets, session292state, workpacks, or field maps. In either mode, only the calling owning workflow293may read historical helper notes for resume compatibility.294295Authenticated-portal boundary: Never use a browser, Claude in Chrome, computer296use, screen interaction, a connector, or another tool to open or operate an297authenticated tax portal; never log in, enter or change values, click controls,298sign, send, submit, retrieve private account data, or ask for, accept, store, or299process credentials or sessions. Those actions remain human-only even with300taxpayer permission or available credentials.