Plain-text accounting leent woordenschat van het dubbel boekhouden en voegt daar een handvol Beancount-specifieke woorden aan toe. Deze woordenlijst definieert de termen die je zult tegenkomen bij het lezen van deze documentatie of je eigen grootboekbestand, elk met een kort voorbeeld waar dat helpt. Elke vermelding heeft een eigen link, zodat je een collega direct naar een definitie kunt verwijzen.
Rekening
Een account is een benoemde bucket die één waardestroom bijhoudt, geschreven als een
door dubbele punten gescheiden hiërarchie onder een van de vijf hoofdtypen: Assets,
Liabilities, Equity, Income of Expenses. De hiërarchie vormt de volledige
organisatiestructuur van je boekhouding — Assets:US:BofA:Checking en
Expenses:Food:Restaurant sorteren en rollen automatisch op. Elk account moet worden
gedeclareerd voordat het wordt gebruikt. Zie
Beancount Language Syntax voor de naamgevingsregels.
Toerekeningsgrondslag
Accrual-basis boekhouden registreert inkomsten wanneer ze worden verdiend en uitgaven wanneer ze worden gemaakt, ongeacht wanneer het geld daadwerkelijk beweegt. Cash-basis boekhouden doet het omgekeerde: het erkent beide alleen wanneer geld van hand tot hand gaat. Accrual geeft een getrouwer beeld van de prestaties van een periode, daarom hoort een factuur die je in maart hebt verstuurd bij maart, zelfs als de klant in mei betaalt.
Amortisatie
Amortisatie spreidt een enkele grote betaling uit over de perioden die deze daadwerkelijk dekt, zodat elke maand zijn eerlijke deel van de kosten draagt. Een jaarlijkse verzekeringspremie die in januari wordt betaald, is een uitgave van alle twaalf maanden, niet alleen van januari. In Beancount schrijf je de gesplitste postings ofwel met de hand, ofwel genereer je ze met een plugin — zie Amortize.
Saldoverificatie
Een balance assertion is een balance-directive die aangeeft wat het saldo van een
account moet zijn aan het begin van een gegeven datum, zodat je bankafschrift een
automatische controle op je boekhouding wordt. Als het berekende saldo meer dan de
tolerantie van de assertion afwijkt, faalt Beancount luidruchtig met de verwachte en
werkelijke bedragen. Die tolerantie is één eenheid van de laatste decimaal die je hebt
geschreven — 4.27 RGAGX accepteert alles van 4.26 tot 4.28 — en een ~ vóór de
valuta stelt je eigen tolerantie in. Af en toe één assertion per account per afschrift
toevoegen is de goedkoopste manier om een grootboek betrouwbaar te houden.
2026-01-01 balance Assets:US:BofA:Checking 4,321.00 USDBeancount
Beancount is een open-source dubbel-boekhoudsysteem waarvan het grootboek een plain-text bestand is dat je in elke teksteditor bewerkt en met een opdrachtregelprogramma valideert. Het geeft je een strikte, parseerbare syntaxis, een querytaal en een webinterface, zonder database of eigen bestandsformaat. Omdat het grootboek tekst is, leeft het prima in Git naast je code. Begin met Introduction to Beancount.
Beancount-querytaal
Beancount Query Language, meestal afgekort tot BQL, is de SQL-achtige taal waarmee je
vragen stelt aan je grootboek. Het werkt op de geparseerde directives in plaats van op
een database, dus SELECT account, sum(position) WHERE year = 2026 antwoordt
onmiddellijk vanuit hetzelfde bestand dat je bewerkt. Lees de
query language guide voor de volledige grammatica.
Boekingsmethode
Een booking method is de regel die Beancount toepast wanneer een vermindering moet
bepalen welke bestaande lots worden aangesproken. Beancount 3.2.3 accepteert zeven
namen: STRICT (de standaard, waarbij je het lot zelf aanwijst), STRICT_WITH_SIZE,
NONE, FIFO, LIFO, HIFO en AVERAGE. Stel er één per account in op zijn
open-directive, of voor het hele bestand met option "booking_method". Zes van de
zeven zijn geïmplementeerd: AVERAGE parseert, maar geeft AVERAGE method is not supported zodra het een vermindering moet boeken. De methode die je kiest verandert je
gerealiseerde vermogenswinsten, dus kies degene die jouw belastingjurisdictie verwacht
en houd die stabiel. Inventory Management laat alle zeven
los op dezelfde lots, en publiceert het grootboek dat faalt onder AVERAGE.
Rekeningschema
Een chart of accounts is de volledige lijst van accounts die je grootboek gebruikt,
samen met de structuur die ze organiseert. In Beancount is er geen apart chart-bestand
— de verzameling open-directives is je chart of accounts. Het vroeg goed ontwerpen
bespaart later veel hernoemen; zie
Industry-Specific Setups voor uitgangspunten.
Sluitrichtlijn
Een close-directive markeert de datum waarna een account niet meer mag worden
gebruikt, wat de manier is om een bankrekening of een afbetaalde lening te beëindigen
zonder de geschiedenis te verwijderen. Eerdere transacties blijven geldig en
rapporteerbaar; alleen nieuwe postings worden geweigerd. Het sluiten van ongebruikte
accounts houdt rapporten leesbaar naarmate een grootboek ouder wordt.
2026-03-31 close Assets:US:OldBank:CheckingCommodity
Een commodity is elke waarde-eenheid die je grootboek bijhoudt — een valuta zoals
USD, een aandagenticker zoals AAPL, een crypto-asset zoals BTC, of iets dat je
zelf verzint zoals VACATION-DAYS. Beancount converteert nooit achter je rug om tussen
commodities, dus een bedrag is altijd een getal met de commodity waarin het is
gedenomineerd. Een optionele commodity-directive laat je metadata toevoegen zoals een
naam of een assetklasse.
Kostprijs
Cost basis is wat je daadwerkelijk hebt betaald voor een positie, vastgelegd in de
valuta waarmee je betaalde en meegedragen met de positie zolang je die bezit. Beancount
schrijft het tussen accolades — 10 AAPL {150.00 USD} betekent tien aandelen
verworven tegen 150 dollar per stuk. Verdubbel de accolades en het getal wordt het
totaal in plaats van de stukprijs, dus 10 AAPL {{1,500.00 USD}} registreert hetzelfde
lot. Omdat de basis met de positie meereist, volgen vermogenswinsten vanzelf uit de
berekening wanneer je verkoopt. Zie
Inventory Management.
Richtlijn
Een directive is één instructie in een Beancount-bestand, meestal gedateerd, en
directives vormen samen een grootboek. Twaalf soorten dragen een datum: open,
close, balance, price, note, document, pad, event, commodity, custom,
query en de transactie zelf. Enkele dragen er geen en werken op het bestand in plaats
van op een dag — option, include, plugin en het pushtag/poptag-paar.
Beancount sorteert de gedateerde directives op datum voordat het verwerkt, dus je kunt
die in willekeurige volgorde houden die het beste leest; een ongedateerde directive
geldt op de plek waar deze is geschreven.
Dubbel boekhouden
Dubbel boekhouden is de praktijk van het vastleggen van elke economische gebeurtenis als ten minste twee overeenkomende boekingen, zodat hun gewichten altijd optellen tot nul. Geld wordt nooit gecreëerd of vernietigd — het beweegt alleen tussen accounts, daarom vangt de techniek fouten die een enkelvoudige lijst nooit zou vangen. Een gewicht is het eigen bedrag van een posting, of zijn kostprijs of prijs omgerekend naar één valuta, zodat twee benen in verschillende commodities elkaar nog steeds opheffen. Beancount handhaaft de regel strikt: een transactie waarvan de postings niet in balans zijn is een fout, geen waarschuwing.
2026-03-02 * "Bank" "Buy euros"
Assets:US:BofA:EUR 100.00 EUR @ 1.08 USD
Assets:US:BofA:Checking -108.00 USDEnvelopebudgettering
Envelope budgeting zet geld opzij voor een doel voordat je het uitgeeft, zodat elke categorie zijn eigen limiet heeft in plaats van te concurreren om één gepoold saldo. De naam komt van de papieren enveloppen die mensen vroeger op betaaldag met contant geld vulden. In een plain-text grootboek modelleer je enveloppen met speciale accounts of budget-directives — zie Budgets.
Fava
Fava is de webinterface voor Beancount: grafieken, balansen, resultatenrekeningen, een query-editor en een invoerformulier, geserveerd vanuit je grootboekbestand. Het is overwegend alleen-lezen en draait lokaal, dus het verandert hoe je je boekhouding ziet zonder te veranderen hoe je die vastlegt. beancount.io host een beheerde versie naast zijn eigen tooling; de gids UI Features behandelt wat je daar kunt doen.
Inventaris
Een inventory is de verzameling posities die een account momenteel aanhoudt, elk met zijn eigen commodity en, waar relevant, zijn eigen cost basis en aanschafdatum. Een effectenrekening die hetzelfde aandeel drie keer kocht, houdt drie afzonderlijke lots in één inventory, niet één samengevoegd getal. Het onderscheiden van lots is wat nauwkeurige winstberekeningen mogelijk maakt.
Journaal
Het journal is de chronologische lijst van alles wat in je boekhouding is gebeurd — de ruwe stroom transacties, op datum, vóór enige groepering of samenvatting. Het is de weergave die je doorneemt wanneer je wilt antwoorden op "wat heb ik in maart daadwerkelijk gedaan?". De journal-pagina van Fava is meestal de snelste plek om een verkeerd gecategoriseerde boeking op te sporen.
Grootboek
Een ledger is de volledige verzameling boekhoudkundige gegevens voor één entiteit, wat in Beancount betekent: je plain-text bestand (plus alles wat het includeert). Het woord is zowel de naam van het hele boek der rekeningen als de naam van het bestand zelf. Omdat het tekst is, kan een ledger worden gediffd, gereviewd, gebrancht en gemerged zoals broncode.
Partij
Een lot is één specifieke aankoop van een commodity, geïdentificeerd door zijn cost basis en aanschafdatum. Hetzelfde ETF in januari kopen en nogmaals in juni creëert twee lots, en later verkopen betekent kiezen welk lot je verkoopt. Lots zijn de reden dat Beancount gerealiseerde winsten exact kan berekenen in plaats van te benaderen.
2026-06-15 * "Broker" "Buy VTI"
Assets:US:Broker:VTI 5 VTI {260.00 USD, 2026-06-15}
Assets:US:Broker:Cash -1,300.00 USDNarratief
De narration is de vrije-tekstbeschrijving van waar een transactie voor was, geschreven als de tweede geciteerde string op de transactieregel. Het is voor mensen: "Monthly rent", "Groceries and household". Beancount parseert het niet, maar het is wat je zult lezen wanneer de boeking zes maanden later geen zin meer heeft.
Open-richtlijn
Een open-directive declareert een account, de datum waarop het bruikbaar wordt, en
optioneel de commodities die het mag aanhouden en de booking method die het gebruikt.
Beancount vereist dat elk account wordt geopend voordat de eerste posting plaatsvindt,
wat voorkomt dat een typefout stilzwijgend een gloednieuw account aanmaakt. Het
beperken van de toegestane commodities verandert nog een hele klasse fouten in fouten.
2026-01-01 open Assets:US:Broker:VTI VTI "FIFO"Pad
Een pad-directive vertelt Beancount om het benodigde bedrag in te voegen om de
volgende balance assertion op een account te laten slagen, waarbij het verschil wordt
geboekt naar een tweede account. Het bestaat voor precies één taak: een grootboek
halverwege het bestaan beginnen zonder jaren geschiedenis te reconstrueren. Padding
voorbij die initiële opzet betekent meestal dat een echte fout wordt verdoezeld.
Betaler
De payee is met wie je de transactie bent aangegaan, geschreven als de eerste
geciteerde string op een transactieregel. Payees consistent houden — altijd
"Whole Foods", nooit soms "WholeFoods" — is wat rapporten op basis van payee en
geautomatiseerde importeurs laat werken. Beancount behandelt de payee als optioneel;
een transactie mag alleen een narration dragen.
Plain-text accounting
Plain-text accounting is de praktijk van het bijhouden van je boekhouding in een voor mensen leesbaar tekstbestand onder versiebeheer, verwerkt door open-source opdrachtregelprogramma's. Het ruilt een point-and-click-interface in voor duurzaamheid, controleerbaarheid en automatisering: je gegevens overleven elke leverancier, elke wijziging is een reviewbare diff, en elk script kan het lezen. Beancount, Ledger en hledger zijn de drie bekendste implementaties.
Plugin
Een plugin is een Python-module die Beancount laadt tijdens het verwerken van je
bestand, waardoor het directives kan toevoegen, transformeren of valideren voordat
rapporten worden opgebouwd. Plugins zijn de manier waarop forecasting,
amortisatieschema's en aangepaste controles worden geïmplementeerd zonder de kern van
de taal te veranderen. Je activeert er één met een losse plugin-regel bovenaan je
grootboek, nooit met een option — option "plugin" "…" wordt afgewezen met
Option 'plugin' may not be set. De gids Forecast Plugin
loopt door een echt voorbeeld.
Boeking
Een posting is één been van een transactie: een account, een bedrag, en optioneel een
kostprijs of prijs. Wat over een transactie moet optellen tot nul is niet de ruwe
bedragen maar hun gewichten: een gewoon bedrag weegt zichzelf, 10 FUND @ 38.46 USD
weegt 384.60 USD, en 10 FUND {384.61 USD} weegt 3,846.10 USD, omdat enkele
accolades de kostprijs van één eenheid bevatten. Ten hoogste één posting mag zijn
bedrag leeg laten, in welk geval Beancount het sluitende cijfer voor je berekent. Zie
Precision & Tolerances voor de volledige gewichtsregels.
Prijsrichtlijn
Een price-directive registreert de wisselkoers tussen twee commodities op een datum,
wat de manier is waarop Beancount een positie omzet naar zijn marktwaarde in rapporten.
Een price-directive is pure referentiedata: het verplaatst geen geld en hoort bij
geen enkele transactie. Verwar het niet met de @-prijs die binnen een posting wordt
geschreven, wat rekenkundig is — het geeft 10 FUND @ 38.46 USD een gewicht van
384.60 USD en bepaalt dus of de transactie in balans is. Zonder price directives
balanceert een portefeuille nog steeds tegen kostprijs, maar kan deze niet tegen
marktwaarde worden gewaardeerd.
2026-06-30 price VTI 271.40 USDLive Prices levert beheerde price directives voor ondersteunde assets in gehoste grootboeken. Je eigen prijs wint voor dezelfde datum en hetzelfde paar, inclusief het reciproke paar. Een beheerde prijs op een latere datum kan nog steeds van toepassing zijn op een latere waardering.
Reconciliatie
Reconciliation is de handeling van het aantonen dat je boekhouding overeenkomt met een externe registratie zoals een bank- of effectenafschrift. In plain-text accounting is het grotendeels mechanisch: voeg een balance assertion toe voor elke afschriftdatum en laat het programma je vertellen of de cijfers overeenkomen. Een grootboek dat elke maand schoon afstemt, is er een waaruit je zonder angst belasting kunt aangeven.
Tags en links
Tags en links zijn de twee labels die je aan transacties hangt om ze buiten de
accounthiërarchie te groeperen: een tag met # markeert een thema zoals #trip-japan,
en een link met ^ verbindt gerelateerde boekingen zoals ^invoice-2026-014 met
elkaar. Tags beantwoorden "toon me alles in deze categorie"; links beantwoorden "toon
me de boekingen die bij dit ene evenement horen". Beide zijn filterbaar in Fava en
querybaar in BQL — zie
Filtering and Searching.
Transactie
Een transactie is een gedateerde economische gebeurtenis samen met de postings die
deze vastleggen, en het is de directive die je het vaakst zult schrijven. Het draagt
een flag (* voor bevestigd, ! voor moet worden nagekeken), een optionele payee, een
narration, en twee of meer postings waarvan de gewichten optellen tot nul. Al het
andere in een Beancount-bestand bestaat om transacties te declareren, te controleren
of te annoteren.
2026-02-14 * "Blue Bottle" "Coffee with Dana"
Expenses:Food:Coffee 9.50 USD
Assets:US:BofA:Checking -9.50 USDNog steeds vastgelopen op een woord? Het Help Center indexeert elke gids op deze site, en de Cheatsheet zet de syntaxis voor elke directive naast elkaar.