Ga naar hoofdinhoud

2 berichten getagd met "double-entry accounting"

Bekijk alle tags

Belastingen registreren in Beancount (De pragmatische manier)

· 8 minuten leestijd
Mike Thrift
Mike Thrift
Marketing Manager

Belastingen kunnen aanvoelen als een speciaal, ingewikkeld beest in de wereld van persoonlijke financiën. Maar wat als dat niet zo was? Wat als je ze net als elke andere geldstroom in je grootboek kunt behandelen? Goed nieuws: dat kan. Door belastingen te zien als eenvoudige waardeverplaatsingen blijft je Beancount‑grootboek schoon, gemakkelijk te bevragen en – vooral – begrijpelijk.

Hieronder vind je een praktisch, no‑nonsense patroon dat je in een persoonlijk of klein‑zakelijk Beancount‑bestand kunt opnemen. Het is een simpel systeem voor het verwerken van salarissen, belastingbetalingen en zelfs die vervelende terugbetalingen die over het nieuwe jaar heen gaan. We behandelen de essentiële rekeningen die je nodig hebt, lopen door real‑world voorbeelden, en laten je de exacte queries zien die je moet draaien om de antwoorden te krijgen die je zoekt.

2025-08-25-recording-taxes-in-beancount


De kernprincipes

Voordat we in de code duiken, laten we een paar eenvoudige regels afspreken. Deze principes houden alles logisch en voorkomen toekomstige hoofdpijn.

  • Scheid “wat het is” van “wanneer het geld beweegt.” 🗓️
    Dit is het belangrijkste concept. Een belastingkost behoort tot het jaar waarin je de inkomsten hebt verdiend (bijv. 2024), zelfs als je de rekening bij de Belastingdienst in april 2025 betaalt. Als je de timing van de kost niet scheidt van de timing van de cash‑betaling, worden je jaar‑over‑jaar rapporten rommelig en misleidend.

  • Houd je rekeningshiërarchie saai en simpel. 📁
    Geef je rekeningen duidelijke namen op basis van het type belasting (bijv. IncomeTax, SocialSecurity). Dit maakt je queries ongelooflijk eenvoudig. Rommel geen rekeningnamen met leveranciersnamen of formuliernummers zoals “W‑2” of “1099”; gebruik metadata en tags voor die details.

  • Omarm accrual voor einde‑jaar aanpassingen. ⚖️
    Zelfs voor een persoonlijk grootboek is een eenvoudige accrual‑boeking aan het einde van het jaar de schoonste manier om je rapporten accuraat te maken. Het betekent dat je een kost of terugbetaling in het juiste jaar erkent, zelfs als het geld pas later beweegt. Het is één kleine extra stap die je later mentale gymnastiek bespaart.

  • Schrijf voor je toekomstige zelf. 🧠
    Je doel is duidelijkheid. Voeg alleen extra details toe, zoals het belastingjaar, aan een rekeningnaam als dat echt je queries makkelijker maakt. Vermijd het creëren van een nieuwe set rekeningen elk jaar (Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal, enz.) tenzij je een dwingende reden hebt. Een platte structuur is vaak makkelijker te beheren.


Een minimale rekeningsstructuur

Hier is een basisset rekeningen om je op weg te helpen. Deze structuur is gericht op de VS, maar je kunt de namen eenvoudig aanpassen aan het belastingstelsel van je eigen land. Voeg deze open‑directieven gewoon toe aan je Beancount‑bestand.

; --- US Federal Income & Payroll Taxes ---
; Voor geld dat van je salaris wordt ingehouden
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Withheld USD
; Voor geschatte betalingen of belasting‑dag rekeningen die je direct betaalt
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Payments USD
; Voor belasting‑terugbetalingen die je ontvangt
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Refunds USD

; Je FICA‑bijdragen
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD

; --- Andere veelvoorkomende belastingen ---
; Voor omzet‑/gebruikstaks die je betaalt bij aankopen
2024-01-01 open Expenses:Taxes:Sales USD

; --- Rekeningen voor einde‑jaar aanpassingen (optioneel maar aanbevolen!) ---
; Een tijdelijke holding‑rekening voor belastingen die je verschuldigd bent maar nog niet hebt betaald
2024-01-01 open Liabilities:AccruedTaxes:Federal:Income USD
; Een tijdelijke holding‑rekening voor een terugbetaling die je nog moet ontvangen
2024-01-01 open Assets:Tax:Receivable USD

Deze opzet scheidt ingehouden belastingen van directe betalingen en terugbetalingen, waardoor je in één oogopslag ziet waar je geld naartoe is gegaan. De Liabilities‑ en Assets‑rekeningen zijn ons geheime wapen om einde‑jaar rapportage accuraat te houden.


Voorbeeld 1: Het salaris

Boek een typisch salaris waarbij belastingen automatisch worden ingehouden. De sleutel is eerst je brutosalaris te registreren, daarna laten zien hoe het wordt opgesplitst tussen belastingen en het geld dat daadwerkelijk op je bankrekening terechtkomt.

2025-07-15 * "Employer Inc." "Salary for first half of July"
Income:Work:Salary -6,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Withheld 1,200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Assets:Cash:Checking 4,341.00 USD

Deze enkele transactie vertelt het hele verhaal:

  • Je hebt $6.000 bruto verdiend.
  • $1.200 daarvan is naar de IRS gestuurd voor federale inkomstenbelasting.
  • 372gingnaarSocialSecurityen372 ging naar Social Security en 87 naar Medicare.
  • De resterende $4.341 is wat je netto hebt ontvangen.

Pro‑tip: Je kunt metadata van je loonstrookje (bijv. pay_period_end: "2025-07-15") aan de transactie toevoegen voor een eenvoudig audit‑pad.


Voorbeeld 2: Je aangifte indienen (Het jaar‑overstijgende probleem)

Hier is het scenario dat mensen vaak in de war brengt: Het is april 2025 en je doet je 2024‑aangifte. Je ontdekt dat je, na al het ingehouden, nog een extra $3.000 moet betalen.

Hoe registreer je dit? Je wilt de kost laten meetellen in 2024, maar de cash‑betaling gebeurt in 2025. Hieronder twee uitstekende manieren.

Optie A: Handmatige twee‑stappen accrual

Deze methode is pure Beancount, geen plugins nodig. Het is een duidelijke, twee‑stappen aanpak.

Stap 1: Erken de kost aan het einde van het belastingjaar.
Op de laatste dag van 2024 maak je een “true‑up” entry. Er beweegt nog geen cash; je erkent alleen de kost en parkeert deze in een tijdelijke liability‑rekening.

2024-12-31 * "Federal income tax true-up for 2024"
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
Liabilities:AccruedTaxes:Federal:Income -3,000.00 USD

Nu toont je resultatenrekening van 2024 deze $3.000 kost correct.

Stap 2: Registreer de cash‑betaling wanneer deze plaatsvindt.
In april 2025, wanneer je het geld daadwerkelijk naar de IRS stuurt, maak je de liability leeg.

2025-04-15 * "IRS" "Payment for 2024 tax return"
Liabilities:AccruedTaxes:Federal:Income 3,000.00 USD
Assets:Cash:Checking -3,000.00 USD

Je 2024‑rapporten zijn correct, en je cash‑flow van 2025 ook. Perfect! Ditzelfde patroon werkt omgekeerd voor een terugbetaling — gebruik dan Assets:Tax:Receivable in plaats van de liability‑rekening.

Optie B: Automatiseren met een plugin

Wil je de betaling in één enkele transactie houden, dan kun je de community‑plugin beancount_reds_plugins.effective_date gebruiken. Hiermee kun je een andere “effective date” toekennen aan een regel.

Eerst de plugin inschakelen in je hoofd‑Beancount‑bestand:
plugin "beancount_reds_plugins.effective_date"

Daarna kun je één transactie schrijven; de plugin splitst deze achter de schermen zodat je rapporten accuraat blijven.

; Eén entry; de plugin doet de rest
2025-04-15 * "IRS" "Payment for 2024 tax return"
Assets:Cash:Checking -3,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
effective_date: 2024-12-31

Hier wordt het cash‑gedeelte op 15 april 2025 geboekt, maar de kost wordt retroactief toegepast op 31 december 2024. Het resultaat is hetzelfde als Optie A, maar met een andere workflow.


Wat te doen met omzetbelasting?

Voor de meeste persoonlijke grootboeken is omzetbelasting simpel. Als je het niet terugvordert, splits je het gewoon uit als een eigen kost tijdens een aankoop.

2025-07-19 * "Local Grocery Store"
Expenses:Groceries 12.32 USD
Expenses:Taxes:Sales 1.28 USD
Assets:Cash:Checking -13.60 USD

Zo kun je gemakkelijk bijhouden hoeveel je aan omzetbelasting uitgeeft gedurende het jaar. Als je een bedrijf runt dat met btw werkt, gebruik je een formeler systeem met betaal‑ en vorderingsrekeningen, maar het principe blijft hetzelfde.


Queries die je echt zult uitvoeren

Het hele punt van deze structuur is om antwoorden makkelijk te krijgen. Hieronder enkele BQL‑queries om je belastingbeeld te zien.

1. Wat was mijn totale federale inkomstenbelasting voor 2024?

SELECT cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01;

2. Hoe splitst dat totaal zich op tussen ingehouden, betalingen en terugbetalingen?

SELECT account, cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01
GROUP BY account
ORDER BY account;

3. Heb ik nog openstaande belasting‑schulden of vorderingen? (Handig om je werk te controleren!)

SELECT account, units(sum(position))
WHERE account "Liabilities:AccruedTaxes" OR account "Assets:Tax"
GROUP BY account
ORDER BY account;

Als deze query niet‑nul saldi oplevert, betekent dat dat je nog accruals hebt die je niet hebt afgehandeld.


Snelle FAQ

  • Moet ik echt per‑jaar rekeningen hebben zoals Expenses:Taxes:2024?
    Waarschijnlijk niet. De accrual‑methode (of de plugin) houdt een platte rekeningsstructuur schoon en leesbaar. Maak alleen per‑jaar rekeningen als je merkt dat je specifieke queries daardoor makkelijker worden.

  • Kan Beancount mijn belastingen voor me berekenen?
    Niet rechtstreeks, maar het kan de data voorbereiden. Gevorderde gebruikers schrijven scripts die BQL‑resultaten naar belasting‑calculatiesoftware sturen, wat handig is voor een schatting gedurende het jaar.

  • Is dit belastingadvies?
    Nee. Dit is een boekhoudpatroon voor het organiseren van je data. De boekhouding is solide, maar raadpleeg altijd een belasting‑professional voor advies dat specifiek op jouw situatie is afgestemd.


Je kant‑klaar checklist

Klaar om te beginnen?

  1. Voeg de rekeningsstructuur toe aan je Beancount‑bestand (en pas namen aan voor jouw land).
  2. Boek salarissen door te beginnen met bruto‑inkomen en vervolgens de belastingposten af te splitsen.
  3. Accrue aan het einde van het jaar eventuele true‑ups voor betalingen of terugbetalingen via een liability/asset‑rekening (of gebruik de effective_date‑plugin).
  4. Volg terugbetalingen als vorderingen en maak ze leeg zodra het geld binnenkomt.
  5. Draai de bovenstaande BQL‑queries om je totalen te verifiëren voordat je aangifte doet.

Houd het saai, houd het consistent, en je belastingseizoen voelt eindelijk als een gewoon onderdeel van je financiële verhaal — niet als een mysterie dat je moet oplossen.

Beancount.io vs. Traditionele Boekhoudsoftware: Welke Past het Beste bij Jou?

· 7 minuten leestijd
Mike Thrift
Mike Thrift
Marketing Manager

Decennialang werd de wereld van bedrijfsboekhouding gedomineerd door een bekende reeks gesloten, GUI-gebaseerde systemen zoals QuickBooks, Xero en FreshBooks. Zij hebben de standaard gezet en bieden gebruiksgemak en visuele workflows die geschikt zijn voor niet-technische gebruikers. Maar voor ontwikkelaars, ervaren gebruikers en iedereen die absolute transparantie en controle waardeert, is er een radicaal andere aanpak ontstaan: Beancount.io.

Dit artikel biedt een directe vergelijking van Beancount.io met traditionele boekhoudsoftware. We zullen hun belangrijkste verschillen in filosofie, flexibiliteit, kosten en onderhoudbaarheid op lange termijn uiteenzetten om je te helpen beslissen welk systeem echt bij jouw behoeften past.

2025-08-08-beancount-io-vs-traditionele-boekhoudsoftware

1. Filosofie en Workflow

Het meest fundamentele verschil tussen deze twee benaderingen ligt in hun kernfilosofie.

Beancount.io Beancount.io is gebouwd op de filosofie van platte-tekstboekhouding. In de kern is elke financiële transactie een invoer in een eenvoudig tekstbestand. Dit "boekhouden als code"-model geeft prioriteit aan leesbare, versiebeheerde records. Jouw financiële gegevens bevinden zich in een tijdloos, open formaat dat volledig van jou is - het kan nooit worden afgesloten door een leverancier. Deze workflow is ontworpen voor gebruikers die vertrouwd zijn met code-editors, versiebeheersystemen zoals Git en command-line tools.

Traditionele Software Traditionele boekhoudplatforms zijn GUI-gebaseerd en formuliergestuurd. Je voert gegevens in met behulp van wizards, dropdown-menu's en visuele formulieren. Deze aanpak geeft prioriteit aan directheid en toegankelijkheid, waardoor het voor niet-technische gebruikers gemakkelijk is om aan de slag te gaan zonder een steile leercurve. Jouw gegevens worden echter opgeslagen in een eigen formaat of een cloud-database, wat vaak complexe export- en importprocedures vereist als je ooit besluit om over te stappen naar een andere service.

Conclusie: Als je prioriteit geeft aan volledige controle, gegevenseigendom, transparantie en automatisering, is Beancount.io de duidelijke winnaar. Als je een "klik en ga"-interface nodig hebt met een minimale leercurve, zal traditionele software natuurlijker aanvoelen.

2. Flexibiliteit en Aanpassing

Hoe goed kan de software zich aanpassen aan jouw specifieke behoeften?

Beancount.io 100% scriptbaar zijn is de superkracht van Beancount.io. Het integreert naadloos met Python, waardoor je verbinding kunt maken met elke API, het ophalen van gegevens uit bankfeeds kunt automatiseren, transacties programmatisch kunt taggen op basis van complexe regels en aangepaste rapporten kunt genereren die zijn afgestemd op jouw exacte specificaties. Jouw vermogen om uit te breiden en aan te passen is praktisch oneindig, vrij van door leveranciers opgelegde beperkingen.

Traditionele Software Deze platforms bieden een samengestelde selectie van integraties met populaire tools zoals PayPal, Stripe en verschillende payroll-services. Hoewel handig, opereer je binnen de ommuurde tuin van de leverancier. Aanpassing is beperkt tot wat het platform toestaat, en geavanceerde rapportage of automatisering vereist vaak een upgrade naar een hoger abonnement of de aankoop van add-ons van derden. Je kunt met hun API's werken, maar je zult altijd gebonden zijn aan de regels en snelheidslimieten van hun ecosysteem.

Conclusie: Beancount.io biedt ongeëvenaarde flexibiliteit voor ontwikkelaars en technische gebruikers. Traditionele tools zijn beter geschikt voor standaard plug-and-play workflows met populaire zakelijke applicaties.

3. Samenwerking en Transparantie

Hoe je met anderen samenwerkt en je gegevens controleert, verschilt aanzienlijk.

Beancount.io Samenwerking aan Beancount.io wordt beheerd via Git. Dit maakt elke wijziging in jouw financiële grootboek volledig transparant en controleerbaar. Je kunt zien wie wat, wanneer en waarom heeft gewijzigd - net als een code review workflow. Dit is ideaal voor gedistribueerde teams die al tools zoals GitHub of GitLab gebruiken. Bovendien zijn er geen verborgen berekeningen; elk getal in een rapport kan worden herleid tot de exacte regelinvoer in jouw grootboekbestand, waardoor volledige controleerbaarheid wordt gegarandeerd.

Traditionele Software Samenwerking wordt afgehandeld via ingebouwde gebruikersrollen en machtigingen. Je kunt je accountant, boekhouder of zakelijke partners uitnodigen om de boeken rechtstreeks te openen via de webinterface. Dit is zeer effectief voor bedrijven die een traditioneel model van financieel toezicht volgen. Het nadeel is dat sommige interne bewerkingen, zoals belastingberekeningen of geautomatiseerde saldo-aanpassingen, ondoorzichtige "black boxes" kunnen zijn, waardoor het moeilijk is om de logica onafhankelijk te verifiëren.

Conclusie: Beancount.io is perfect voor teams die granulariteit, controleerbaarheid en samenwerking in code-stijl waarderen. Traditionele systemen zijn accountantvriendelijker voor realtime, gedeelde GUI-toegang.

4. Kosten en Eigendom

De financiële modellen en het concept van gegevenseigendom zijn wereldwijd verschillend.

Beancount.io De kern Beancount-software is open-source en gratis. Je betaalt alleen voor de diensten met toegevoegde waarde van Beancount.io, waaronder hosting, intelligente automatisering en premium functies. Er zijn geen licentiekosten per gebruiker, dus je kunt je team schalen zonder extra kosten. Het belangrijkste is dat er geen vendor lock-in is. Jouw gegevens zijn een verzameling tekstbestanden die je altijd en overal kunt verplaatsen, bewerken of opslaan.

Traditionele Software Deze services werken op basis van een abonnementsmodel, meestal maandelijks of jaarlijks gefactureerd. Prijzen zijn vaak gelaagd op basis van functies en je kunt te maken krijgen met kosten per gebruiker of per bedrijf die meeschalen met je organisatie. Dit creëert een afhankelijkheid; als je stopt met betalen, loop je het risico de toegang tot je gegevens en de functionaliteit van de software te verliezen. Deze vendor lock-in is een aanzienlijk risico op lange termijn.

Conclusie: Beancount.io is aanzienlijk kosteneffectiever op de lange termijn, vooral voor technische teams die gegevenssoevereiniteit waarderen. Traditionele software biedt voorspelbare abonnementskosten, maar creëert afhankelijkheid op lange termijn.

5. Leercurve en Adoptie

Hoe snel kun je aan de slag?

Beancount.io De leercurve is onmiskenbaar steiler. Het adopteren van dit systeem vereist comfort met tekstgebaseerd bewerken, begrip van basis-syntax en vertrouwdheid met tools zoals Git. De initiële investering loont echter. Eenmaal onder de knie, maakt Beancount ongelooflijk snelle, herhaalbare workflows mogelijk en biedt het een veel dieper, fundamenteel begrip van jouw financiële plaatje.

Traditionele Software Deze platforms zijn ontworpen voor niet-technische bedrijfseigenaren en bieden minimale onboarding-wrijving. Je kunt binnen enkele minuten aan de slag met het verzenden van facturen en het categoriseren van uitgaven. Dat gezegd hebbende, vereist het leren van de meer geavanceerde functies, zoals het bouwen van aangepaste rapporten of het opzetten van multi-entity accounting, nog steeds een aanzienlijke tijdsinvestering.

Conclusie: Beancount.io is de juiste keuze als je bereid bent om tijd te investeren in het leren van een krachtig systeem. Traditionele software is sneller om mee te starten voor niet-technische gebruikers die direct resultaten nodig hebben.

Vergelijking Zij aan Zij

FunctieBeancount.ioTraditionele Boekhoudsoftware
KernfilosofieBoekhouden als code; platte-tekst grootboekGUI-gebaseerd; formuliergestuurd
GegevensformaatOpen (Platte Tekst)Eigen (Database)
Gegevenseigendom100% gebruikersbezit en draagbaarDoor leverancier beheerd; mogelijke lock-in
FlexibiliteitOneindig; volledig scriptbaar met PythonBeperkt tot het ecosysteem en de API's van de leverancier
SamenwerkingGit-gebaseerd; transparante wijzigingsgeschiedenisRolgebaseerde gebruikersrechten
TransparantieVolledig controleerbaar; geen verborgen berekeningenSommige berekeningen kunnen ondoorzichtig zijn
KostenmodelOpen-source kern; betalen voor hosting/automatiseringMaandelijks/jaarlijks abonnement (SaaS)
LeercurveSteiler voor niet-technische gebruikersLaag; ontworpen voor snelle start
Ideale GebruikerOntwikkelaars, ervaren gebruikers, data-analistenMKB-eigenaren, niet-technische teams

Wanneer Kies je Welke

De beslissing komt uiteindelijk neer op de vaardigheden, prioriteiten en workflow van jouw team.

Kies Beancount.io als je:

  • Een ontwikkelaar, data-analist of technisch aangelegde ervaren gebruiker bent.
  • Absolute transparantie, controle en gegevensportabiliteit op lange termijn boven alles waardeert.
  • Je boekhouding volledig wilt automatiseren en diep wilt integreren in je aangepaste workflows.
  • Je financiële gegevens met dezelfde strengheid wilt behandelen als broncode.

Kies Traditionele Boekhoudsoftware als je:

  • Een snelle start, visuele interface zonder technische setup wilt.
  • Direct, accountantvriendelijke toegang met minimale training moet bieden.
  • De voorkeur geeft aan een beheerde, gehoste oplossing waarbij de leverancier alle updates en compliance afhandelt.
  • Je integratiebehoeften worden voldaan door populaire, kant-en-klare apps.

Laatste Gedachten

Beancount.io probeert geen betere QuickBooks te zijn - het is een fundamenteel andere manier van denken. Het vertegenwoordigt boekhouden als code. Voor technische professionals biedt deze verschuiving dezelfde sprong voorwaarts die versiebeheer met Git bracht voor softwareontwikkeling: volledige transparantie, perfecte reproduceerbaarheid en ultieme controle.

Tegelijkertijd blijft traditionele boekhoudsoftware winnen op het gebied van gebruiksgemak en kant-en-klare integraties voor niet-technische teams. De juiste keuze gaat niet over welke "beter" is in het algemeen, maar welke perfect past bij jouw workflow, jouw prioriteiten en de mate van controle die je eist over jouw financiële gegevens.