Skip to main content

DBA compliance marker

Since the Wet DBA handhavingsmoratorium was lifted on 1 January 2025, the Belastingdienst actively enforces the rules on schijnzelfstandigheid (false self-employment). A single negative assessment can reclassify a ZZP engagement to werknemer status, triggering loonheffing and sociale-zekerheid-premies across multiple tax years. Shillinq's DBA compliance marker turns that legal regime into a structured, evidence-driven workflow: a per-engagement intake, a rolling risk score, automated monitoring flags, a curated evidence dossier, and an audit-ready export.

This feature serves both audiences Shillinq supports: the ZZP-perspectief (opdrachtnemer-zijde) and the opdrachtgever-perspectief (MKB inhuur-veiligheid).

The six registers​

RegisterWhat it holds
DBA OpdrachtThe per-engagement record — intake status, chosen modelovereenkomst, current risk score and band, open-flag count, evidence-dossier link.
DBA IntakeThe questionnaire answers, scored on the three Wet-DBA pijlers plus the Deliveroo criteria.
Modelovereenkomst RegisterBelastingdienst-approved templates and your own variants, with version history and a validity date.
DBA RisicoflagImmutable monitoring flags (factuurpatroon, concentratie, langjarigheid, VBAR threshold, …), each with its legal basis and a suggested action.
DBA Portfolio RisicoThe periodic roll-up across all your active engagements (revenue concentration, long-term relations, exclusivity).
DBA Evidence DossierThe stukkenlijst per engagement, with file references, SHA-256 hashes and a completeness score.

Choosing a compliance mode​

At first configuration each onderneming picks a compliance mode (REQ-DBA-000):

  • Soft mode — high-risk engagements raise warnings but never block. The risk level is recorded in the audit log; monitoring flags appear on the dashboard.
  • Hard mode — a HOOG-risk engagement blocks the first factuur until a manager records an override reason (kept in the audit trail).
  • Intermediair mode — adds the stricter tussenkomst-driehoek assessment for brokered engagements.

The mode applies to every future engagement under that administration.

The DBA intake​

The DBA intake is deferred until you send the first factuur for an engagement, and enforced there — no factuur leaves the system without a completed intake (REQ-DBA-001). This keeps dead leads overhead-free while making the assessment unavoidable once money changes hands.

For a one-off engagement under €5.000 you are offered a verkorte intake (3 questions instead of the full 20); its risk band is recorded as VERKORT_LAGE_DREMPEL.

How the risk score works​

The score runs 0–100 and is the sum of four subtotals (REQ-DBA-003):

PijlerRangeWhat it measures
Gezagsverhouding0–20Instructions, fixed presence, mandatory team meetings (authority/control).
Persoonlijke arbeid0–20Whether you can — and actually do — let yourself be replaced.
Financieel risico0–20Invoice patterns, payment guarantee, own investment.
Deliveroo-criteria0–40Case-law factors: nature of work, duration, exclusivity, own clients, own marketing.

The total maps onto four risk bands:

BandScoreMeaning
LAAG0–24Low risk.
LAAG_MIDDEN25–49Elevated — monitor.
MIDDEN_HOOG50–74High — advisory caution.
HOOG75–100Very high — blockable in hard mode.

The score is computed from your intake answers. The band derivation, the first-factuur gate and the VBAR check are the only logic that runs outside the declarative engine; everything else is data.

Modelovereenkomsten​

When the intake is complete, link a modelovereenkomst to the engagement (REQ-DBA-002). Shillinq ships the known Belastingdienst templates (tussenkomst-vrij v3 – 2024, leverancier-zelfstandig v2), and you may upload your own. On linking, the model's essential bepalingen are shown as a checklist — confirm that your actual contract contains each clause. If a model is past its validity date, monitoring raises a MODELOVEREENKOMST_VERLOPEN flag and advises you to pick the current version.

Reading monitoring flags​

A daily monitoring job inspects your active engagements and appends immutable flags when a high-risk pattern appears. Flags are advisory (they never mutate once raised) and each cites its fiscal basis and a concrete action.

FlagRaised whenSuggested action
FACTUURFREQUENTIE_LIJKT_OP_LOONSame-day, same-amount monthly invoices for 6+ months (variation < 0.04).Vary the amount to actual hours; invoice per deliverable.
CONCENTRATIE_WAARSCHUWINGOne client is more than 70% of 12-month revenue.Spread engagements across more clients.
LANGJARIGE_HOOFDRELATIEA client relationship runs over 2 years with more than 50% revenue.Document your ondernemerschap; diversify.
VBAR_GRENS_ONDERSCHREDENEffective hourly rate below the VBAR threshold (EUR 33, peil 2024).Raise the rate or record a written justification.
VERVANGBAARHEID_THEORETISCHThe contract allows replacement but it never happened (18m+).Exercise or document real substitution.
MULTIPLE_ENGAGEMENT_ZELFDE_CONCERNMultiple engagements with entities sharing one UBO.Review the concern-wide exposure.
ICT_INTEGRATIE_IN_TEAMDaily scrum/stand-up participation with fixed employees (ICT-kader).Reduce team integration where possible.
HERBEOORDELING_OVERDUEA 12-month+ engagement's yearly reassessment is unanswered for 30 days.Confirm or update the intake.

The VBAR threshold​

For every outgoing factuur Shillinq computes the effective hourly rate (amount ÷ hours). If it falls below the VBAR threshold (default EUR 33, peil 2024) a warning appears; in hard mode the factuur is blocked until override (REQ-DBA-016). The threshold is a configurable administration setting, so when the legislation indexes it you update one value — no migration needed.

The evidence dossier​

Each engagement builds a DBAEvidenceDossier — the stukkenlijst you would hand the Belastingdienst in a control (REQ-DBA-007). A stuk has a type (GETEKENDE_OVEREENKOMST, FACTUUR_EERSTE, URENSTAAT_KWARTAAL, EMAIL_ARCHIVE, …), a file reference, the date it was added, and a SHA-256 hash as immutable proof.

The completeness score (0–1) reflects which required stukken are present. A dossier with the signed agreement and first factuur but no quarterly urenstaten scores about 0.67, and the UI lists exactly what is missing.

Including e-mail communication is opt-in (AVG art. 6): you explicitly consent before wederpartij correspondence is archived. All evidence is kept 7 years from the engagement end-date (art. 52 AWR).

Exporting an audit report​

On request, generate an audit-ready PDF per engagement (REQ-DBA-008). It contains the intake answers, the chosen modelovereenkomst with its bepalingen checklist, the risk-score progression, the generated flags with their actions, and the evidence inventory with SHA-256 hashes. The hash of the export itself is recorded in the audit trail, so the document you produced can later be proven unchanged.

Yearly reassessment and termination​

Engagements running longer than 12 months trigger a yearly herbeoordeling on the intake anniversary (REQ-DBA-009); if it goes unanswered for 30 days a HERBEOORDELING_OVERDUE flag is raised.

When you mark an engagement beëindigd, Shillinq closes the evidence trail, generates an end-report, and starts the 7-year retention clock — the dossier becomes read-only and a delete-eligible date is computed (REQ-DBA-018).

This feature is grounded in the Wet DBA (deregulering beoordeling arbeidsrelaties, mei 2016), Burgerlijk Wetboek art. 7:610, the Deliveroo-arrest (HR 24-3-2023, ECLI:NL:HR:2023:443), the draft VBAR (Verduidelijking Beoordeling Arbeidsrelaties en Rechtsvermoeden) uurtarief-rechtsvermoeden, and the 7-year bewaartermijn of art. 52 AWR. The risk model encodes published criteria; it does not replace professional fiscal or legal advice.