De Complete Gids voor het Beheren van Rekeningen in Beancount en Fava
Je rekeningschema is de ruggengraat van je Beancount-grootboek. Een goed ontworpen rekeninghiërarchie maakt elk rapport duidelijker, elke query sneller en elk belastingseizoen minder pijnlijk. In deze gids lopen we door alles wat je moet weten over het aanmaken, bekijken, bijwerken en sluiten van rekeningen in Beancount en Fava -- van de basis voor beginners tot geavanceerde patronen.
De Vijf Rekeningtypen
Beancount gebruikt het standaard dubbel-boekhoudmodel met precies vijf hoofdtypen van rekeningen:
| Type | Doel | Normaal Teken | Rapport |
|---|---|---|---|
| Assets | Bezittingen die je hebt (contant geld, beleggingen, onroerend goed) | Positief (debet) | Balans |
| Liabilities | Schulden die je hebt (creditcards, leningen, hypotheken) | Negatief (credit) | Balans |
| Equity | Eigen vermogen, ingehouden winst, openingsbalansen | Negatief (credit) | Balans |
| Income | Inkomstenbronnen (salaris, rente, dividenden) | Negatief (credit) | Resultatenrekening |
| Expenses | Kostencategorieën (eten, huur, nutsvoorzieningen) | Positief (debet) | Resultatenrekening |
De fundamentele boekhoudvergelijking geldt altijd:
Assets + Expenses + Equity + Income + Liabilities = 0
Een handige vuistregel: als de bedragen alleen relevant zijn voor een bepaalde periode (bijv. "Hoeveel heb ik deze maand aan eten uitgegeven?"), gebruik dan Income of Expenses. Als ze een doorlopend saldo vertegenwoordigen (bijv. "Hoeveel staat er op mijn betaalrekening?"), gebruik dan Assets of Liabilities.
Naamgevingsconventies voor Rekeningen
Rekeningnamen in Beancount zijn met dubbele punten gescheiden hiërarchische identificatoren. De regels zijn:
- Moet beginnen met een van de vijf hoofdtypen:
Assets,Liabilities,Equity,Income,Expenses - Elk onderdeel begint met een hoofdletter of cijfer
- Onderdelen mogen letters, cijfers en streepjes bevatten (geen spaties of underscores)
- Er zijn minimaal twee onderdelen vereist (bijv.
Expenses:Food, niet alleenExpenses) - Dubbele punten (
:) scheiden hiërarchieniveaus
; Geldige rekeningnamen
Assets:US:BofA:Checking
Liabilities:CA:RBC:CreditCard
Equity:Retained-Earnings
Income:US:Acme:Salary
Expenses:Food:Groceries
Assets:Crypto:BTC-Holdings
; Ongeldige rekeningnamen
assets:checking ; hoofdtype in kleine letters
Assets:my checking ; spaties niet toegestaan
Expenses ; slechts één onderdeel
Het aanbevolen naamgevingspatroon voor balansrekeningen is:
Type : Land : Instelling : Rekening : Subrekening
Bijvoorbeeld: Assets:US:Vanguard:401k:VTSAX of Liabilities:US:Chase:Sapphire.
Voor uitgaven- en inkomstenrekeningen gebruik je in plaats daarvan op categorieën gebaseerde naamgeving:
Expenses:Food:Groceries
Expenses:Housing:Utilities:Electric
Income:US:Employer:Salary
Hoofdnamen Aanpassen
Je kunt de vijf hoofdtypen hernoemen voor lokalisatie of persoonlijke voorkeur:
option "name_assets" "Activa"
option "name_liabilities" "Passiva"
option "name_equity" "EigenVermogen"
option "name_income" "Inkomsten"
option "name_expenses" "Uitgaven"
Rekeningen Aanmaken (Open Directive)
Elke rekening moet worden gedeclareerd met een open-directive voordat je er transacties op kunt boeken. De volledige syntax is:
JJJJ-MM-DD open Rekening [BeperktValuta,...] ["BoekingsMethode"]
Eenvoudig Openen
2014-05-01 open Assets:US:BofA:Checking
Met Valutabeperkingen
Het beperken van valuta's voorkomt dat je per ongeluk de verkeerde valuta boekt:
2014-05-01 open Assets:US:BofA:Checking USD
2014-05-01 open Assets:Cash USD,CAD,EUR
2012-03-01 open Assets:US:ETrade:Main:ITOT ITOT
Met Boekingsmethoden
Voor beleggingsrekeningen geef je aan hoe kavels worden gematcht bij verkoop:
2014-02-11 open Assets:US:ETrade:IVV IVV "FIFO"
2014-02-11 open Assets:US:Schwab:AAPL AAPL "LIFO"
2014-02-11 open Assets:US:Fidelity GOOG "STRICT"
Beschikbare boekingsmethoden:
| Methode | Gedrag |
|---|---|
"STRICT" | Standaard. Vereist exacte kavelspecificatie; geeft fout bij dubbelzinnigheid |
"FIFO" | First-In-First-Out -- vermindert oudste kavels eerst |
"LIFO" | Last-In-First-Out -- vermindert nieuwste kavels eerst |
"AVERAGE" | Voegt alle kavels samen en herberekent gemiddelde kosten |
"NONE" | Geen kavelmatching; elke prijs wordt geaccepteerd |
Met Metadata
2013-03-14 open Assets:US:BTrade:HOOLI
category: "taxable"
institution: "BTrade Corp"
account-number: "XX-1234-5678"
Strategisch Openingsdatums Kiezen
- Gebruik je geboortedatum voor universele rekeningen zoals
Expenses:Groceries(dit geeft je totalen over je hele leven) - Gebruik de startdatum van je dienstverband voor werkgerelateerde inkomstenrekeningen
- Gebruik de werkelijke aanmaakdatum voor instellingsspecifieke rekeningen (bankrekeningen, creditcards)
Automatisch Openen met een Plugin
Als je handmatige open-directives wilt overslaan tijdens het prototypen:
plugin "beancount.plugins.auto_accounts"
Dit genereert automatisch open-directives voor elke rekening die in transacties wordt gebruikt. Dit vermindert echter de detectie van typefouten, dus het wordt niet aanbevolen voor productiegebruik.
Rekeningen Bekijken en Opvragen
Met bean-query (BQL)
# Alle rekeningen met saldi opvragen
bean-query ledger.beancount "SELECT account, units(sum(position)) GROUP BY 1"
# Alleen uitgavenrekeningen opvragen
bean-query ledger.beancount "SELECT account WHERE account ~ 'Expenses'"
# Rekeningoverzicht met lopend saldo
bean-query ledger.beancount \
"SELECT date, account, position, balance WHERE account ~ 'BofA:Checking'"
# Journaalweergave voor een specifieke rekening
bean-query ledger.beancount "JOURNAL 'Assets:US:BofA:Checking'"
Met bean-report
# Proefbalans (alle rekeningen met eindsaldi)
bean-report ledger.beancount balances
# Balans
bean-report ledger.beancount balsheet
# Resultatenrekening
bean-report ledger.beancount income
# Journaal voor een specifieke rekening
bean-report ledger.beancount journal -a Assets:US:BofA:Checking
Met Fava
Fava biedt een rijke visuele interface voor het verkennen van rekeningen:
- Balanspagina: interactieve boomstructuur van alle Assets, Liabilities en Equity
- Resultatenrekeningpagina: interactieve boomstructuur van alle Income en Expenses
- Rekeningpagina: klik op een rekeningnaam om de tabbladen Journaal, Wijzigingen en Saldi te zien
- Filterbalk: gebruik regex-patronen om alleen overeenkomende rekeningen te tonen (bijv.
Assets:US)
Rekeningen Bijwerken (Hernoemen en Reorganiseren)
Beancount heeft geen ingebouwde hernoem-directive, maar er bestaan verschillende benaderingen.
1. Zoek-en-Vervang
Eenvoudig zoeken-en-vervangen werkt, maar wees voorzichtig -- Assets:Bank zou ook overeenkomen met Assets:Bank:Cash. Gebruik patronen met woordgrenzen:
sed -i 's/Assets:US:OldBank:Checking/Assets:US:NewBank:Checking/g' *.beancount
2. De rename_accounts Plugin
Het beancount_reds_plugins-pakket biedt een krachtige hernoemingsplugin:
plugin "beancount_reds_plugins.rename_accounts.rename_accounts" "{
'Expenses:Taxes' : 'Income:Taxes',
'Assets:House:Capital-Improvements' : 'Expenses:House:Appliances',
}"
Deze plugin:
- Gebruikt substring-matching (
Expenses:Taxes:Federalwordt automatischIncome:Taxes:Federal) - Ondersteunt regex met terugverwijzingen
- Genereert automatisch Open-directives voor hernoemde rekeningen
- Past je bronbestanden niet aan -- wijzigt alleen de in-memory representatie
- Kan worden in- of uitgeschakeld door de pluginregel uit te commentariëren
3. Sluiten en Heropenen Patroon
Voor echte rekeningmigraties (bijv. overstappen van bank):
; Oude rekening
2010-01-01 open Assets:US:OldBank:Checking USD
; Sluit oude, open nieuwe
2024-06-15 close Assets:US:OldBank:Checking
2024-06-15 open Assets:US:NewBank:Checking USD
; Maak het resterende saldo over
2024-06-15 * "Overboeking naar nieuwe bank"
Assets:US:OldBank:Checking -5000.00 USD
Assets:US:NewBank:Checking 5000.00 USD
Rekeningen Sluiten
De close-directive markeert een rekening als niet langer actief:
2016-11-28 close Liabilities:CreditCard:CapitalOne
Wat Sluiten Doet
- Geeft een fout als er boekingen plaatsvinden na de sluitingsdatum
- Filtert de rekening uit rapporten buiten de actieve periode
- Geeft Fava de opdracht de rekening te verbergen in boomweergaven (instelbaar)
Wanneer Rekeningen Sluiten
- Wanneer je een bankrekening of creditcard in de echte wereld sluit
- Wanneer je van werkgever wisselt
- Wanneer je je rekeningschema consolideert of reorganiseert
- Wanneer je een eigendom verkoopt of een beleggingspositie sluit
Controleer Altijd op Nulsaldo Vóór Sluiting
Beancount controleert niet automatisch op een nulsaldo bij sluiting. Voeg een handmatige controle toe:
2023-12-31 balance Assets:US:OldBank:Savings 0.00 USD
2023-12-31 close Assets:US:OldBank:Savings
Je Rekeningschema Organiseren
Begin Eenvoudig, Verfijn Gaandeweg
Je hebt niet het perfecte rekeningschema nodig op dag één. Begin met brede categorieën en splits ze naarmate je rapportagebehoeften groeien. De auteur van Beancount meldt dat hij meer dan 250 uitgavenrekeningen heeft, allemaal in de loop van de tijd organisch ontstaan.
Veelvoorkomende Organisatiepatronen
Patroon 1: Op Instelling (voor balansrekeningen)
Assets:US:BofA:Checking
Assets:US:BofA:Savings
Assets:US:Vanguard:401k:VTSAX
Assets:US:Vanguard:401k:VBTLX
Liabilities:US:Amex:Platinum
Liabilities:US:Chase:Sapphire
Patroon 2: Op Categorie (voor inkomsten- en uitgavenrekeningen)
Expenses:Food:Groceries
Expenses:Food:Restaurant
Expenses:Food:Coffee
Expenses:Housing:Rent
Expenses:Housing:Insurance
Expenses:Housing:Utilities:Electric
Expenses:Housing:Utilities:Water
Expenses:Transport:Subway
Expenses:Transport:Gas
Expenses:Health:Medical
Expenses:Health:Dental
Patroon 3: Op Geografie (voor financiën in meerdere landen)
Assets:US:BofA:Checking
Assets:CA:RBC:Checking
Assets:UK:HSBC:Current
Income:US:Acme:Salary
Income:CA:Freelance:Consulting
Patroon 4: Op Eigendom of Project (voor onroerend goed of bedrijf)
Assets:US:Loft4530:Property
Income:US:Loft4530:Rental
Expenses:Loft4530:Electricity
Expenses:Loft4530:Insurance
Expenses:Loft4530:Maintenance
Patroon 5: Spiegeling van Gerelateerde Rekeningen (zelfde instellingscomponent)
Assets:US:ETrade:Cash
Assets:US:ETrade:AAPL
Income:US:ETrade:Dividends
Income:US:ETrade:PnL
Expenses:US:ETrade:Commissions
Hoe Diep Moeten Hiërarchieën Gaan?
- 2-3 niveaus is gebruikelijk voor uitgavencategorieën (
Expenses:Food:Restaurant) - 3-4 niveaus voor gestructureerde balansposten (
Assets:US:Vanguard:401k:VTSAX) - Ga niet dieper dan 5 niveaus tenzij je een sterke rapportagereden hebt
- Diepe hiërarchieën werken goed wanneer Fava ze inklapt in boomweergaven
Een Voorbeeld uit de Praktijk
Hier is een praktisch rekeningschema voor persoonlijke financiën:
; ── Bezittingen ──
Assets:US:BofA:Checking USD
Assets:US:BofA:Savings USD
Assets:US:Vanguard:401k:VTSAX VTSAX
Assets:US:Vanguard:Roth:VTSAX VTSAX
Assets:US:ETrade:Cash USD
Assets:US:ETrade:AAPL AAPL
Assets:Cash:Wallet USD
; ── Schulden ──
Liabilities:US:Amex:Platinum USD
Liabilities:US:Chase:Freedom USD
Liabilities:US:BofA:Mortgage USD
; ── Inkomsten ──
Income:US:Employer:Salary
Income:US:Employer:Bonus
Income:US:Employer:Match401k
Income:US:ETrade:Dividends
Income:US:BofA:Interest
; ── Uitgaven ──
Expenses:Food:Groceries
Expenses:Food:Restaurant
Expenses:Food:Coffee
Expenses:Housing:Rent
Expenses:Housing:Insurance
Expenses:Housing:Utilities:Electric
Expenses:Housing:Utilities:Water
Expenses:Transport:Subway
Expenses:Transport:Taxi
Expenses:Transport:Gas
Expenses:Health:Medical
Expenses:Health:Dental
Expenses:Health:Pharmacy
Expenses:Shopping:Clothing
Expenses:Shopping:Electronics
Expenses:Entertainment:Streaming
Expenses:Entertainment:Books
Expenses:Travel:Flights
Expenses:Travel:Hotels
Expenses:Taxes:Federal
Expenses:Taxes:State
Expenses:Taxes:SocialSecurity
Expenses:Taxes:Medicare
; ── Eigen Vermogen ──
Equity:Opening-Balances
Equity:Retained-Earnings
Fava-Specifieke Functies
Actualiteitsindicatoren
Een van de beste functies van Fava voor rekeningbeheer. Voeg deze metadata toe aan elke rekening:
2014-05-01 open Assets:US:BofA:Checking USD
fava-uptodate-indication: TRUE
Fava toont dan gekleurde stippen naast de rekening:
- Groene stip: laatste boeking is een geslaagde saldocontrole (rekening is gereconcilieerd)
- Rode stip: laatste boeking is een mislukte saldocontrole (vereist aandacht)
- Gele stip: laatste boeking bestaat maar is geen saldocontrole (nog niet gereconcilieerd)
- Grijze stip: geen activiteit binnen de terugkijkperiode
Configureer de grijze drempel:
2016-06-14 custom "fava-option" "uptodate-indicator-grey-lookback-days" "60"
Boomweergave-instellingen
Bepaal hoe Fava rekeningen weergeeft:
; Gesloten rekeningen tonen in de boom
2016-06-14 custom "fava-option" "show-closed-accounts" "true"
; Rekeningen met nul transacties tonen
2016-06-14 custom "fava-option" "show-accounts-with-zero-transactions" "true"
; Rekeningen met nulsaldo tonen
2016-06-14 custom "fava-option" "show-accounts-with-zero-balance" "true"
Inklappatronen
Diep geneste rekeningen standaard inklappen:
; Alle rekeningen 3+ niveaus diep inklappen
2016-06-14 custom "fava-option" "collapse-pattern" ".*:.*:.*"
; Specifieke subbomen inklappen
2016-06-14 custom "fava-option" "collapse-pattern" "Assets:US:Vanguard:.*"
Subrekeningen Opnemen in Rekeningjournaal
Bij het bekijken van het journaal van een rekening in Fava, boekingen van subrekeningen opnemen:
2016-06-14 custom "fava-option" "account-journal-include-children" "true"
Tekens Omdraaien voor Leesbaarheid
Standaard worden inkomsten en schulden als negatieve getallen weergegeven (hun natuurlijke teken). Om ze als positief weer te geven:
2016-06-14 custom "fava-option" "invert-income-liabilities-equity" "true"
Documentbeheer
Fava integreert documentverwerking met je rekeninghiërarchie. Stel een documentenroot in:
option "documents" "/pad/naar/documenten"
Organiseer bestanden vervolgens op rekeningpad:
/pad/naar/documenten/
Assets/
US/
BofA/
Checking/
2024-01-15.januari-overzicht.pdf
2024-02-15.februari-overzicht.pdf
Liabilities/
US/
Amex/
Platinum/
2024-03-15.maart-factuur.pdf
Bestanden die beginnen met JJJJ-MM-DD worden automatisch ontdekt door Fava en verschijnen in de journaalweergave van de rekening.
Veelgemaakte Fouten en Hoe Je Ze Vermijdt
1. Typefouten in Rekeningnamen
Een enkele typefout zoals Expenses:Grocries maakt een geheel nieuwe, onbedoelde rekening aan.
Oplossing: Gebruik de auto_accounts-plugin niet in productie. Vereist expliciete open-directives. Beancount geeft onmiddellijk een fout bij elke niet-gedeclareerde rekening:
ERROR: Invalid reference to unknown account 'Expenses:Grocries'
2. Valutabeperkingen Vergeten
Zonder valutabeperkingen kun je per ongeluk EUR boeken op een rekening die alleen USD mag bevatten.
Oplossing: Geef altijd valuta's op bij open-directives:
2014-01-01 open Assets:US:BofA:Checking USD
3. Saldi Niet Regelmatig Controleren
Zonder regelmatige saldocontroles kunnen fouten maandenlang onopgemerkt blijven.
Oplossing: Voeg maandelijkse saldocontroles toe voor elke actieve rekening:
2024-01-01 balance Assets:US:BofA:Checking 5,432.10 USD
2024-02-01 balance Assets:US:BofA:Checking 4,890.55 USD
2024-03-01 balance Assets:US:BofA:Checking 6,123.00 USD
4. Inconsistente Naamgevingsconventies
Het mengen van patronen (bijv. Expenses:Food vs Expenses:US:Food) maakt queries en rapporten verwarrend.
Oplossing: Kies een conventie en houd je eraan. Gebruik landprefixen voor balansrekeningen, op categorieën gebaseerde naamgeving voor inkomsten en uitgaven.
5. Sluiten Zonder Nulsaldo-controle
De close-directive controleert het saldo niet. Je zou een rekening kunnen sluiten waar nog geld op staat.
Oplossing: Combineer sluiting altijd met een saldocontrole:
2023-12-31 balance Assets:US:OldBank:Savings 0.00 USD
2023-12-31 close Assets:US:OldBank:Savings
Geavanceerde Patronen
Tips voor Meerdere Valuta's
Declareer je operationele valuta's voor speciale rapportkolommen:
option "operating_currency" "USD"
option "operating_currency" "EUR"
Voor rekeningen met meerdere valuta's, vermeld alle toegestane valuta's:
2014-01-01 open Assets:Cash USD,CAD,EUR
Saldocontroles met meerdere valuta's moeten per valuta worden gedaan:
2024-01-01 balance Assets:Cash 562.00 USD
2024-01-01 balance Assets:Cash 210.00 CAD
2024-01-01 balance Assets:Cash 60.00 EUR
Pad en Balance voor Initiële Opzet
Gebruik de pad-directive om openingssaldi vast te stellen zonder handmatig bedragen te berekenen:
2000-05-28 open Assets:US:BofA:Checking USD
2000-05-28 pad Assets:US:BofA:Checking Equity:Opening-Balances
2024-07-01 balance Assets:US:BofA:Checking 12,345.67 USD
Beancount genereert automatisch de correctietransactie. Een belangrijke kanttekening: saldocontroles controleren het saldo aan het begin van de opgegeven datum. Een pad op 2 januari heeft dus een saldocontrole nodig op 3 januari of later.
Rekeningmetadata voor Categorisering
Gebruik metadata op open-directives voor aangepaste rapportage:
2014-01-01 open Assets:US:BofA:Checking USD
category: "liquid"
tax-status: "taxable"
2014-01-01 open Assets:US:Vanguard:401k USD
category: "retirement"
tax-status: "tax-deferred"
Bevraag metadata met BQL:
SELECT account, META("category") WHERE META("tax-status") = "taxable"
Notities voor Rekeninggeschiedenis
Koppel gedateerde notities aan het journaal van elke rekening:
2024-03-20 note Assets:US:BofA:Checking "Gebeld over betwiste afschrijving, ref #12345"
2024-06-01 note Liabilities:US:Chase:Sapphire "Jaarlijkse kosten kwijtgescholden na bellen met retentieafdeling"
Deze notities verschijnen in het journaal van de rekening in Fava en bieden een auditspoor.
Trackingrekeningen en Oormerking
Beancount heeft niet de virtuele boekingen van Ledger, maar je kunt subrekeningen gebruiken voor oormerking:
; Noodfonds bijhouden binnen betaalrekening
Assets:US:BofA:Checking:EmergencyFund USD
Assets:US:BofA:Checking:Operating USD
; Declaraties bijhouden
Assets:Receivables:Employer:Travel USD
Assets:Receivables:Friend:SharedDinner USD
Belastingvriendelijke Uitgavencategorieën
Structureer uitgavenrekeningen om de belastingaangifte te vereenvoudigen:
Expenses:Health:Medical:Deductible
Expenses:Charity:Deductible
Expenses:Business:Office
Expenses:Business:Equipment
Expenses:Education:Professional
Snel Naslagwerk
| Taak | Syntax |
|---|---|
| Een rekening openen | 2024-01-01 open Assets:US:BofA:Checking USD |
| Een rekening sluiten | 2024-12-31 close Assets:US:OldBank:Savings |
| Saldo controleren | 2024-01-01 balance Assets:US:BofA:Checking 5,432.10 USD |
| Aanvullen tot saldo | 2024-01-01 pad Assets:Cash Equity:Opening-Balances |
| Notitie toevoegen | 2024-01-15 note Assets:US:BofA:Checking "Maandelijkse reconciliatie gedaan" |
| Document bijvoegen | 2024-01-15 document Assets:US:BofA:Checking "/pad/naar/overzicht.pdf" |
| Metadata toevoegen | Ingesprongen sleutel-waardepaar op de regel na open |
| Automatisch openen (dev) | plugin "beancount.plugins.auto_accounts" |
| Valuta beperken | 2024-01-01 open Assets:Cash USD,EUR |
| Boekingsmethode instellen | 2024-01-01 open Assets:US:ETrade:AAPL AAPL "FIFO" |
Samenvatting
Goed rekeningbeheer is de basis van effectieve Beancount-boekhouding. Dit zijn de belangrijkste punten:
- Gebruik altijd expliciete
open-directives -- ze vangen typefouten op en handhaven discipline - Voeg valutabeperkingen toe om fouten met verkeerde valuta's te voorkomen
- Gebruik een consistente naamgevingsconventie -- op instelling voor balansrekeningen, op categorie voor inkomsten/uitgaven
- Begin eenvoudig en verfijn -- splits rekeningen naarmate je rapportagebehoeften groeien
- Controleer saldi regelmatig -- maandelijkse reconciliatie vangt fouten vroeg op
- Sluit rekeningen correct -- met een nulsaldo-controle
- Benut de functies van Fava -- actualiteitsindicatoren, inklappatronen en documentintegratie
- Gebruik metadata voor aangepaste categorisering en rapportage
Veel succes met je boekhouding!
- https://beancount.github.io/docs/beancount_language_syntax.html
- https://beancount.github.io/docs/command_line_accounting_cookbook.html
- https://beancount.github.io/docs/beancount_options_reference.html
- https://beancount.github.io/docs/beancount_query_language.html
- https://plaintextaccounting.org/Choosing-accounts
