Naar hoofdinhoud springen

Beancount Opzet voor Startups

Een praktische, copy-pastebare basis om de boekhouding van uw startup in plain text te voeren. Werkt voor pre-seed tot en met Serie A. Dit is geen juridisch of fiscaal advies.


Een startup runnen betekent vele rollen vervullen, en één van de meest kritieke is 'boekhouder'. Voordat u zich dure software of een fulltime accountant kunt veroorloven, heeft u een systeem nodig dat nauwkeurig, controleerbaar is en u niet opsluit in een propriëtair ecosysteem. Maak kennis met Beancount: een open-source, plain-text boekhoudsysteem.

Beancount gebruiken betekent dat uw financiële grootboek in tekstbestanden leeft, naast uw code in een Git-repository. Het is versiebeheerd, transparant en oneindig aanpasbaar. Deze gids biedt een complete, copy-pastebare opzet om de boeken van uw startup bij te houden vanaf de oprichting tot en met uw Serie A, gebouwd op degelijke, op transactiebasis (accrual) gebaseerde boekhoudprincipes.

1) Wat u gaat opzetten

Deze gids begeleidt u bij het creëren van een complete, professionele boekhoudopzet. Aan het einde heeft u:

  • Een single-source-of-truth grootboek beheerd in Git (main.beancount), wat u een complete, controleerbare geschiedenis van de financiën van uw bedrijf geeft.
  • Fava voor prachtige rapporten en grafieken. Fava is een webinterface voor Beancount die uw tekstbestanden omzet in interactieve winst- en verliesrekeningen, balansen en kasstroomanalyses.
  • Een structuur voor importeurs die u later kunt toevoegen om transacties van uw bank, creditcard, PayPal en Stripe-accounts te automatiseren. We beginnen handmatig om het systeem te leren, en automatiseren daarna.
  • Een op accrual gebaseerde rekeningschema (chart of accounts) ontworpen voor moderne startups, met ingebouwde ondersteuning voor uitgestelde omzet (deferred revenue), vooruitbetaalde kosten en loonlasten.
  • Basisprincipes voor seed-financiering, inclusief duidelijke voorbeelden voor het vastleggen van SAFE-overeenkomsten (als schuld of eigen vermogen) en converteerbare leningen met rente.

2) Projectstructuur (plaats in uw repository)

Begin met het creëren van deze directorystructuur in de Git-repository van uw bedrijf. Deze organisatie houdt uw grootboek schoon en schaalbaar.

/ledger
  main.beancount
  /includes
    accounts.beancount
    opening-balances.beancount
    policies.beancount
  /documents
    /bank
    /invoices
    /receipts
  /importers              # optioneel; voeg toe wanneer u CSV-import automatiseert
    bank_importer.py
    card_importer.py
  • main.beancount: Het centrale bestand dat alles samenbrengt.
  • /includes: Bevat uw rekeningschema, openingsbalansen en boekhoudbeleid.
  • /documents: Een plek om PDF's van bankafschriften, facturen en bonnen op te slaan voor een schone controletrail.
  • /importers: Waar uw toekomstige Python-scripts voor het verwerken van bank-CSV's zullen leven.

3) Minimale, zinnige main.beancount

Dit is het startpunt voor uw grootboek. Het stelt een paar globale opties in en neemt de andere componentbestanden op. Kopieer deze inhoud naar ledger/main.beancount en pas de titel aan.

option "title" "Acme, Inc. Grootboek"
option "operating_currency" "USD"
option "documents" "ledger/documents"
 
include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"
 
; Als u later importeurs toevoegt, voegt u hier plugin-regels toe.
; plugin "beancount.plugins.implicit_prices"

4) Starter rekeningschema (accrual-first)

Uw rekeningschema is de complete lijst van categorieën voor de financiële transacties van uw bedrijf. Deze startersjabloon is gebouwd voor transactiebasis (accrual accounting), wat een veel nauwkeuriger beeld geeft van de gezondheid van uw bedrijf dan kasbasis.

Zet dit in includes/accounts.beancount. Voel u vrij om rekeningen die u nu niet nodig heeft te verwijderen.

; --- Activa ---
1970-01-01 open Assets:Bank:Checking              USD
1970-01-01 open Assets:Bank:Savings                USD
1970-01-01 open Assets:AR                         USD         ; Debiteuren
1970-01-01 open Assets:Prepaid:Software            USD
1970-01-01 open Assets:Prepaid:Insurance           USD
1970-01-01 open Assets:Deposits                    USD         ; Borgsommen
1970-01-01 open Assets:Equipment                   USD
1970-01-01 open Assets:Intangibles                 USD
1970-01-01 open Assets:Crypto:BTC                  BTC
1970-01-01 open Assets:Other
 
; --- Passiva ---
1970-01-01 open Liabilities:AP                     USD         ; Crediteuren
1970-01-01 open Liabilities:CreditCard:Corporate   USD
1970-01-01 open Liabilities:DeferredRevenue        USD
1970-01-01 open Liabilities:Payroll:Withholding    USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes  USD
1970-01-01 open Liabilities:SalesTax:CA            USD
1970-01-01 open Liabilities:SAFE                   USD
1970-01-01 open Liabilities:NotesPayable           USD
1970-01-01 open Liabilities:Other
 
; --- Eigen vermogen ---
1970-01-01 open Equity:CommonStock                 USD
1970-01-01 open Equity:APIC                        USD         ; Agio
1970-01-01 open Equity:SAFE                        USD         ; Als u SAFEs als eigen vermogen classificeert
1970-01-01 open Equity:RetainedEarnings            USD
1970-01-01 open Equity:OpeningBalances             USD
 
; --- Inkomsten (negatieve saldi) ---
1970-01-01 open Income:Revenue:SaaS                USD
1970-01-01 open Income:Revenue:Services            USD
1970-01-01 open Income:Other                       USD
 
; --- Kosten ---
1970-01-01 open Expenses:COGS                      USD
1970-01-01 open Expenses:Payroll:Wages             USD
1970-01-01 open Expenses:Payroll:EmployerTaxes     USD
1970-01-01 open Expenses:Benefits                  USD
1970-01-01 open Expenses:Contractors               USD
1970-01-01 open Expenses:Software:Subscriptions    USD
1970-01-01 open Expenses:Cloud                     USD
1970-01-01 open Expenses:Rent                      USD
1970-01-01 open Expenses:Meals                     USD
1970-01-01 open Expenses:Travel                    USD
1970-01-01 open Expenses:Marketing                 USD
1970-01-01 open Expenses:Legal                     USD
1970-01-01 open Expenses:Accounting                USD
1970-01-01 open Expenses:Insurance                 USD
1970-01-01 open Expenses:BankFees                  USD
1970-01-01 open Expenses:Taxes:Income              USD
1970-01-01 open Expenses:Taxes:Sales               USD
1970-01-01 open Expenses:Other                     USD

Opmerkingen

  • Inkomstenrekeningen zijn negatief omdat ze credits vertegenwoordigen in dubbel boekhouden. Maak u hier geen zorgen over; Fava draait de tekens automatisch om in rapporten, zodat uw omzet als een positief getal op de winst- en verliesrekening verschijnt.
  • Begin met smalle, doelgerichte categorieën. Het is veel gemakkelijker om later nieuwe rekeningen toe te voegen dan om een rommelig, overmatig gedetailleerd rekeningschema op te schonen.

5) Openingsbalansen (eerste dag)

De eerste transactie in uw grootboek zet de toon. Het legt de beginsituatie van uw rekeningen vast op de dag dat u begint met bijhouden. Zet deze transactie in includes/opening-balances.beancount, en pas de datum en bedragen aan naar uw werkelijke startsituatie.

2025-01-01 * "Openingsbalansen"
  Assets:Bank:Checking              5.000,00 USD
  Liabilities:CreditCard:Corporate   -500,00 USD
  Equity:OpeningBalances           -4.500,00 USD

Deze boeking stelt vast dat het bedrijf startte met $5.000 op de bank en een $500-saldo op de creditcard. De Equity:OpeningBalances-rekening is een speciale rekening die ervoor zorgt dat de transactie op nul uitkomt, zoals vereist in dubbel boekhouden.


6) Veelvoorkomende startup-transacties (copy-paste)

Hier zijn recepten voor de meest voorkomende financiële gebeurtenissen in een vroeg stadium startup. Kopieer, plak en pas ze aan voor uw eigen gebruik.

Aankoop van oprichtersaandelen (eenvoudig, alleen valuta)

Wanneer oprichters hun eerste aandelen kopen tegen nominale waarde, komt het geld binnen en wordt het als eigen vermogen geboekt. Uw cap table (Carta, Pulley, of een spreadsheet) is de bron van waarheid voor het aantal aandelen; het grootboek boekt alleen de dollars.

2025-01-05 * "Aankoop oprichtersaandelen @ nominale waarde"
  Assets:Bank:Checking                800,00 USD
  Equity:CommonStock                   -0,80 USD
  Equity:APIC                        -799,20 USD
  ; 8.000.000 gewone aandelen @ $0,0001 — aantallen buiten het grootboek bijgehouden

(Optioneel) Volg uw eigen aandelen als commodity

Als u wilt dat het grootboek het aantal uitgegeven aandelen bijhoudt, kunt u uw aandeel als een 'commodity' definiëren. Dit is complexer maar biedt een vollediger administratie binnen het grootboek.

2025-01-05 commodity ACME
  name: "Acme, Inc. Gewoon aandeel"
 
2025-01-05 * "Uitgifte oprichtersaandelen"
  Assets:Bank:Checking                800,00 USD
  Equity:APIC                        -799,20 USD
  Equity:CommonStock           -8.000.000 ACME {0,0001 USD}

SAFE-geld binnen (kies classificatie)

Een SAFE (Simple Agreement for Future Equity) kan worden behandeld als een schuld of als een vorm van eigen vermogen (specifiek 'mezzanine eigen vermogen'). Raadpleeg uw accountant om de juiste aanpak te kiezen en wees consistent.

; (A) Classificatie als eigen vermogen (mezzanine)
2025-02-01 * "Post-money SAFE — SeedFund"
  Assets:Bank:Checking            500.000,00 USD
  Equity:SAFE                    -500.000,00 USD
 
; (B) Classificatie als schuld (tot conversie)
2025-02-01 * "Post-money SAFE — SeedFund"
  Assets:Bank:Checking            500.000,00 USD
  Liabilities:SAFE               -500.000,00 USD

Wanneer een geprijsde ronde sluit, herclassificeert u het SAFE-saldo naar preferente aandelen en agio op basis van de afsluitdocumenten.

Converteerbare lening met opgebouwde rente

In tegenstelling tot een SAFE is een converteerbare lening ondubbelzinnig een schuld die rente opbouwt. U boekt de initiële kasstroom en boekt vervolgens periodiek (bijv. per kwartaal) de rentekosten.

2025-03-01 * "Converteerbare lening — 6% jaarlijks"
  Assets:Bank:Checking            250.000,00 USD
  Liabilities:NotesPayable       -250.000,00 USD
 
2025-06-30 * "Rente lening Q2 opbouwen"
  Expenses:Interest                 3.750,00 USD
  Liabilities:NotesPayable         -3.750,00 USD
  ; 250.000 * 6% * 0,25 = 3.750

Jaarlijkse SaaS-verkoop (uitgestelde omzet + maandelijkse erkenning)

Dit is een hoeksteen van transactiebasis. Wanneer een klant voorafbetaalt voor een jaar, verdient u niet al die omzet in één keer. U boekt het naar een schuld (DeferredRevenue) en erkent elke maand 1/12e ervan.

2025-03-10 * "Jaarabonnement — AcmeCo — INV-001"
  Assets:AR                       1.200,00 USD
  Liabilities:DeferredRevenue    -1.200,00 USD
  narration: "SaaS jaarlijkse vooruitbetaling"
 
2025-03-20 * "Betaling INV-001"
  Assets:Bank:Checking            1.200,00 USD
  Assets:AR                      -1.200,00 USD
 
; Erken maand 1/12 (herhaal maandelijks of script het)
2025-04-01 * "Omzeterkenning 1/12 — INV-001"
  Liabilities:DeferredRevenue       100,00 USD
  Income:Revenue:SaaS              -100,00 USD

Vooruitbetaalde kosten en amortisatie

Dit is het omgekeerde van uitgestelde omzet. Wanneer u vooruitbetaalt voor een dienst (zoals jaarlijkse software of verzekering), boekt u dit als een actief (Prepaid) en 'amortiseert' of kosten u elke maand een deel ervan.

2025-03-01 * "Jaarlijkse software vooruitbetaald"
  Assets:Prepaid:Software         1.200,00 USD
  Assets:Bank:Checking           -1.200,00 USD
 
2025-04-01 * "Amortiseer vooruitbetaling 1/12"
  Expenses:Software:Subscriptions   100,00 USD
  Assets:Prepaid:Software          -100,00 USD

Loonadministratie (netto kas, met inhoudingen + werkgeverslasten)

Een loonboeking heeft verschillende onderdelen: de brutoloonkosten, de werkgeverslasten, het netto aan werknemers betaalde cash, en de verplichting voor belastingen die u heeft ingehouden en aan de overheid moet afdragen.

2025-04-15 * "Loonadministratie — 15 apr"
  Expenses:Payroll:Wages          15.000,00 USD
  Expenses:Payroll:EmployerTaxes   1.200,00 USD
  Liabilities:Payroll:Withholding -4.000,00 USD
  Assets:Bank:Checking           -12.200,00 USD

Omzetbelasting innen en afdragen (voorbeeld CA)

Wanneer u omzetbelasting int, is dat niet uw geld. Het is een schuld die u aan de staat verschuldigd bent. U boekt de schuld bij de verkoop en wist deze wanneer u de belasting afdraagt.

2025-05-10 * "Factuur #123 — CA belastbaar"
  Assets:AR                       1.088,75 USD
  Income:Revenue:SaaS              -999,00 USD
  Liabilities:SalesTax:CA           -89,75 USD
 
2025-06-05 * "Betaling #123"
  Assets:Bank:Checking            1.088,75 USD
  Assets:AR                      -1.088,75 USD
 
2025-07-20 * "CA-omzetbelasting Q2 afdragen"
  Liabilities:SalesTax:CA            89,75 USD
  Assets:Bank:Checking              -89,75 USD

FX en crypto (lichtgewicht)

Beancount ondersteunt meerdere valuta's natively. Gebruik price-richtlijnen om wisselkoersen vast te leggen en de {} kostensyntax voor specifieke transacties.

2025-03-01 price EUR 1,0832 USD
 
2025-03-02 * "AWS EU-kosten"
  Expenses:Cloud                     90,00 EUR
  Liabilities:CreditCard:Corporate  -90,00 EUR
 
2025-03-05 * "BTC kopen voor testen"
  Assets:Crypto:BTC                   0,0200 BTC {3400,00 USD}
  Assets:Bank:Checking           -3.400,00 USD

7) Fava gebruiken (rapporten in één commando)

Fava is de briljante webinterface die Beancount-gegevens tot leven brengt. Het is de beloning voor uw zorgvuldige gegevensinvoer.

  • Installeren: $ pip install fava
  • Uitvoeren: $ fava ledger/main.beancount
  • Handige weergaven: Winst- en verliesrekening, Balans, Journaal (voor filteren op account/tag), en Query (voor aangepaste SQL-achtige queries).

Snelle Fava-filters:

  • account:DeferredRevenue: Toon alle activiteit in uw uitgestelde omzetrekening.
  • tag:#invoice-001: Tag transacties gerelateerd aan een specifieke factuur en filter daarop.
  • from:2025-01-01 to:2025-12-31: Focus op een specifieke financiële periode.

8) Maandelijkse afsluitchecklist (15–45 min)

Aan het einde van elke maand doorloopt u deze checklist om ervoor te zorgen dat uw boeken nauwkeurig en up-to-date zijn. Deze discipline maakt belastingtijd en due diligence van investeerders een fluitje van een cent.

  • Bank/creditcards: Importeer of voer handmatig alle transacties in. Reconcileer saldi met uw afschriften.
  • Debiteuren/crediteuren: Boek alle uitgeschreven facturen en ontvangen rekeningen; markeer betaalde items als afgehandeld.
  • Omzet: Boek de maandelijkse omzeterkenningen voor alle vooruitbetaalde contracten.
  • Vooruitbetalingen: Amortiseer 1/12e (of de juiste fractie) van alle vooruitbetaalde kosten.
  • Loonadministratie: Boek de journaalboeking van het rapport van uw loonadministrateur.
  • Omzetbelasting: Boek uw omzetbelastingverplichting voor de maand.
  • Seed-instrumenten: Bouw rente op voor eventuele converteerbare leningen.
  • Sanity checks:
    • Komt uw omzet op de winst- en verliesrekening ongeveer overeen met uw verwachte MRR/ARR?
    • Komen uw burn rate en runway overeen met uw financiële plan?
    • Draait $ bean-check zonder fouten? Zien Fava's rapporten er correct uit?
  • Commit naar Git met een korte, consistente notitie (bijv. afsluiten: 2025-04).

9) Metadata & documenten (maak audits gemakkelijk)

Uw grootboek moet zelfdocumenterend zijn. Gebruik metadata en link naar brondocumenten om een waterdichte controletrail te creëren. Uw toekomstige zelf (en uw accountant) zullen u dankbaar zijn.

  • Voeg metadata toe zoals payee:, narration:, invoice:, customer:, of link: aan transacties voor duidelijkheid.
  • Voeg bron-PDF's (facturen, bonnen, bankafschriften) toe aan uw ledger/documents/-map en link ze met de document:-metadatatag.
  • Gebruik tags (#payroll, #saas, #vendor-aws, #invoice-001) voor eenvoudig filteren en analyseren.

Voorbeeld:

2025-03-10 * "Jaarabonnement — AcmeCo" #saas #invoice-001
  payee: "AcmeCo"
  invoice: "INV-001"
  document: "documents/invoices/INV-001.pdf"
  Assets:AR                       1.200,00 USD
  Liabilities:DeferredRevenue    -1.200,00 USD

10) Later importeren (wanneer u tijd heeft)

Begin met het handmatig invoeren van transacties voor de eerste maand of twee. Dit is de beste manier om het systeem en uw eigen uitgavenpatronen te leren kennen. Zodra u zich op uw gemak voelt, kunt u eenvoudige Python-importeurs schrijven om het proces te automatiseren en handmatig werk te verminderen.

Een typische volgorde van aanval voor importeurs:

  1. Bank-CSV → Assets:Bank:Checking
  2. Creditcard-CSV → Liabilities:CreditCard:Corporate
  3. Stripe/PayPal-uitbetalingsrapporten → Omzet- en kascontouren

Houd uw importeurs in /ledger/importers en beoordeel hun gegenereerde transacties zoals u elke andere codeverandering zou doen.


11) Beleid (plaats in includes/policies.beancount)

Dit bestand is waar u uw boekhoudkundige beslissingen documenteert voor consistentie. Het is een eenvoudig tekstbestand, maar cruciaal voor het handhaven van discipline.

  • Transactiebasis (accrual); erken SaaS-omzet pro rata.
  • Functionele valuta is USD; boek FX tegen de dagkoers of transactiekoers.
  • Capitalisatiedrempel (bijv. artikelen boven $2.500 worden Assets:Equipment; anders worden ze direct ten laste van de winst genomen).
  • Reizen/maaltijden: Zakelijk doel moet worden gedocumenteerd in het narration-veld.
  • Eigen vermogen vastleggen: Geef expliciet aan of u de alleen-valuta- of aandeel-commodity-methode gebruikt.
  • SAFEs/leningen: Documenteer uw gekozen classificatie (Schuld of Eigen vermogen).

Voorbeeld policies.beancount:

; Beleid: Transactiebasis, omzet uitgesteld en maandelijks erkend.
; Beleid: USD functionele valuta. FX-winsten/-verliezen worden afgeleid uit kostprijs/prijsgegevens.
; Beleid: Capitaliseer materiële activa boven $2.500 met een lineaire afschrijving over 3 jaar.
; Beleid: SAFEs worden geregistreerd als schulden tot conversie in een geprijsde ronde.

12) Snelle probleemoplossing

  • Omzet ziet er negatief uit in het Journaal: Dit is correct! Inkomsten zijn een credit. Fava-rapporten tonen dit als een positief getal.
  • Saldi komen niet op nul: U heeft waarschijnlijk een onvolledige transactie. De postingen van een transactie moeten op nul uitkomen. Gebruik Fava's Journaalweergave om de boosdoener te vinden. Als tijdelijke maatregel kunt u een balancerende post toevoegen aan een Equity:Suspense-rekening om het bestand geldig te maken, en vervolgens de oorzaak onderzoeken en verhelpen.
  • FX-mismatches: Zorg ervoor dat u price-richtlijnen heeft voor de relevante datums of dat u de kostprijsbasis in uw functionele valuta specificeert, zoals 90,00 EUR {97,49 USD}.

Beancount is voor uw financiële transacties, maar sommige zaken kunnen beter worden beheerd in speciale systemen. De sleutel is om vanuit uw grootboek ernaar te linken.

  • Cap Table: Gebruik Carta, Pulley, of een spreadsheet. Link naar de ondertekende afsluitdocumenten van uw financieringstransacties in Beancount.
  • Bestuursbesluiten, aandelenplan, 409A-rapporten: Bewaar deze op een veilige locatie en voeg link:-metadata toe aan relevante aandelen transacties.
  • Belastingaangiften: Bewaar de definitieve PDF's en link ze vanuit een jaareinde-afsluitingstransactie.

Copy-ready startbestand (alles-in-één)

Als u liever met één bestand begint voordat u uitbreidt naar de include-structuur, kunt u eenvoudig de inhoud van de bestanden uit bovenstaande secties in één groot main.beancount plakken. U kunt dit later altijd refactoren naarmate uw grootboek groeit.

Dit raamwerk biedt een solide, schaalbare basis voor de financiën van uw startup. Door uw boeken in plain text onder versiebeheer te houden, krijgt u ongeëvenaarde transparantie en controle, en zet u uw bedrijf vanaf dag één op koers voor financiële discipline.