Je hebt net een offerte verstuurd en typt daarna in een zoekbalk: “minimaal uurtarief berekenen”. De tools die je vindt vragen vaak hetzelfde: je gewenste jaarinkomen, je declarabele uren, en bij de betere ook je verwachte belastingbedrag. Dat laatste vakje is het probleem. Niemand weet hoeveel belasting hij gaat betalen vóórdat hij weet hoeveel hij gaat verdienen, en hoeveel hij gaat verdienen is nu juist de vraag. Het is de spiegelbeeldvraag van je netto-effectief uurtarief: niet wat hou je over aan een tarief, maar welk tarief heb je nodig om iets over te houden.

De cirkel die elke rekentool negeert

Elke gepubliceerde formule voor een minimaal uurtarief loopt tegen dezelfde muur op. Je belasting hangt af van je winst. Je winst hangt af van je omzet. Je omzet hangt af van het tarief dat je nog moet berekenen. Drie stappen, en je bent weer terug bij het begin.

De meeste rekentools breken die cirkel door je te vragen zelf een jaarlijks belastingbedrag in te vullen: het lastigste getal van de hele som, en het getal dat mensen het vaakst verkeerd inschatten. Vul je te weinig in, dan reken je jezelf een tarief voor dat in de praktijk tekortschiet.

Er is een andere manier om die cirkel te sluiten: niet gokken, maar testen. Probeer een omzet, reken de volledige belastingketen door (zelfstandigenaftrek, MKB-winstvrijstelling, de schijven, de kortingen, de ZVW-bijdrage) en kijk wat er netto overblijft. Te weinig? Probeer een hogere omzet. Dat is precies wat de rekenmotor achter de minimaal-uurtarief-tool doet: hij test net zolang tot het netto-resultaat exact het bedrag is dat jij nodig hebt.

Waarom een vast percentage die cirkel niet kan sluiten

Zelfs wie de cirkel wél doorbreekt, struikelt vaak over de volgende aanname: dat belasting een vast percentage van je omzet is. Dat is niet zo. De zelfstandigenaftrek is een vast bedrag, geen percentage, en wordt kleiner ten opzichte van je winst naarmate die winst groeit. De MKB-winstvrijstelling werkt wél procentueel, maar over een steeds grotere grondslag. De heffingskortingen bouwen juist af bij hogere winst. Het resultaat is een belastingketen die niet lineair meebeweegt met wat je nodig hebt. De volledige keten, met de schijven van 2026, staat uitgewerkt in hoeveel belasting je als zzp’er betaalt.

Dat heeft een concreet gevolg: twee keer zoveel netto-inkomen nodig hebben, betekent niet twee keer zo’n hoog tarief. Neem een zzp’er die €30.000 per jaar aan leefkosten nodig heeft, met vaste declarabele uren en een buffer van 15%: die komt uit op een tarief van zo’n €42,59. Verdubbel dat naar €5.000 per maand, en het tarief stijgt niet naar €85, maar naar €104,89, meer dan 2,4 keer zo hoog. Bij een hoger bedrag verdwijnt een groter deel aan belasting, dus moet er onevenredig meer omzet tegenover staan. Een vast percentage (“reken met 30% belasting”) geeft bij elk inkomen dezelfde verhouding en mist dat effect volledig.

Reken het na: Merels tarief

Concreet, met een naam erbij. Merel is tekstschrijver, werkt fulltime en heeft dit jaar 1.656 uur aan haar bedrijf besteed, waarvan ze er 1.104 factureerde. Dat is 67%, een gangbaar cijfer voor een gevestigde zzp’er, maar ze heeft het zelf uitgerekend in plaats van ergens overgenomen. Ze wil €2.500 per maand overhouden om van te leven, €30.000 per jaar, houdt €500 per maand aan zakelijke kosten aan (boekhouding, verzekering, software) en wil een buffer van 15% boven op haar leefgeld, voor een rustige maand of een ziekteweek.

De rekenmotor test omzetten tot het antwoord klopt. Bij een omzet van €47.018 houdt Merel, na €5.723 aan belasting, €35.294 netto over. Dat is precies genoeg voor haar €30.000 leefgeld plus de buffer van €5.294 erbovenop. Gedeeld door haar 1.104 declarabele uren is dat een tarief van €42,59 per uur.

Vraag je haar wat ze minimaal moet vragen, dan is dit het antwoord: niet “reken met een derde belasting”, maar dit specifieke getal, voor deze specifieke combinatie van leefkosten, kosten, uren en buffer. Verander één van die vier, en het tarief verschuift mee. Dat is precies waarom een formule uit een blogpost nooit exact jouw tarief kan zijn.

AOV en pensioen zijn een aftrekpost én een uitgave

Stel dat Merel daarnaast €400 per maand wil reserveren voor een AOV en een lijfrente. De meeste rekentools hebben daar één “sparen”-vakje voor, en dat is de fout. Een AOV-premie is geen zakelijke kostenpost, maar een persoonlijke aftrekpost die pas ná de MKB-winstvrijstelling van de winst afgaat. Tegelijk is het een echte uitgave die maandelijks van haar rekening gaat.

Verwerk je die €400 per maand correct, als aftrekpost én als uitgave, dan stijgt Merels omzet naar €51.194, bij €5.100 belasting, en haar tarief naar €46,37. Gooi je die €4.800 per jaar op één hoop met gewoon sparen, zoals een simpel “sparen”-vakje doet, dan mist de berekening de belastingaftrek. Merel moet dan €57.209 omzet draaien om hetzelfde bedrag netto over te houden: ruim €6.000 meer dan nodig, voor exact dezelfde AOV en hetzelfde pensioen. Op haar tarief scheelt dat €5,45 per uur, structureel te veel gevraagd of structureel te weinig gereserveerd, afhankelijk van welke kant de fout uitpakt.

Het urencriterium duwt je tarief omhoog

Daan is fotograaf en factureert 850 uur per jaar. In een normaal jaar besteedt hij daarnaast zo’n 450 uur aan acquisitie, nabewerking van portfolio’s en administratie: samen 1.300 uur, ruim boven het urencriterium van 1.225 uur. Dit jaar liep het anders. De opdrachten kwamen vanzelf binnen, dus liet hij acquisitie grotendeels liggen. Zijn totaal kwam uit op 1.180 uur. Nog steeds fulltime werk, maar onder de grens.

Bij dezelfde ruim €2.300 per maand aan inkomensruimte, ruim €400 per maand aan kosten en 15% buffer verandert dat zijn tarief. Haalt hij het urencriterium, dan is €49,59 per uur genoeg. Mist hij het, dan verdwijnt de zelfstandigenaftrek en valt een groter deel van zijn winst in de inkomstenbelasting. Daardoor moet hij naar €50,55: bijna een euro per uur meer, voor exact dezelfde 850 declarabele uren. Hoe minder uren je factureert, hoe harder zo’n gemist bedrag op je uurtarief drukt. Wat die aftrek nog waard is en voor wie, staat in zelfstandigenaftrek 2026.

Hoeveel van je uren zijn declarabel? Reken het uit, neem het niet over

Elke berekening hierboven staat of valt met één cijfer: je declarabele uren. Een gevestigde zzp’er factureert vaak 65 tot 70% van zijn uren, maar dat is geen wet van Meden en Perzen. Een starter die net begint kan op 25% zitten, met het grootste deel van de week aan zichtbaarheid en acquisitie in plaats van aan factureerbaar werk.

Dat heeft een stevig effect op het tarief. Stel een startende ontwerper met dezelfde €30.000 leefgeld en dezelfde buffer van 15%, maar met 400 declarabele uren op een totaal van 1.600, oftewel 25% declarabiliteit, met wat lagere kosten en de startersaftrek erbij. Die heeft weliswaar minder omzet nodig dan Merel: €43.588 tegenover €47.018, dankzij de startersaftrek en lagere kosten. Maar omdat dat bedrag over zo weinig declarabele uren wordt verdeeld, komt het tarief uit op €108,97, meer dan het dubbele van Merels €42,59, voor hetzelfde netto resultaat.

Neem dus nooit een declarabiliteitspercentage over dat je ergens leest. Tel hoeveel uur je per week factureert en hoeveel uur je in totaal aan je bedrijf besteedt, en deel de twee door elkaar. Dat cijfer ken alleen jij, en het verandert met elke fase van je onderneming. In uurtarief berekenen als zzp’er rekenen we die uitkomst nog een keer om, van tarief naar wat je daadwerkelijk overhoudt.

Je eigen getal

Vier onbekenden bepalen je minimale tarief: wat je nodig hebt om van te leven, wat je aan kosten en reserveringen kwijt bent, hoeveel uur je werkelijk factureert, en of je het urencriterium haalt. Die combinatie is voor elke zzp’er anders, en geen enkele blogpost (ook deze niet) kan hem voor je invullen. Wat wel kan, is de rekensom zelf: dezelfde belastingketen, met jouw cijfers erin.

Bereken je eigen minimale uurtarief met de cijfers van 2026, inclusief zelfstandigenaftrek, MKB-winstvrijstelling en de ZVW-bijdrage. Gratis, zonder account. Wil je vanaf een tarief terugrekenen naar wat het je oplevert, in plaats van andersom? Dat doet de NER-tool.