Naar hoofdinhoud springen

Hoe ik Beancount gebruik: acht jaar geld in Git en een zondagse check-in van 20 minuten

Gepubliceerd 5 min leestijdMike ThriftMike Thrift
Hoe ik Beancount gebruik: acht jaar geld in Git en een zondagse check-in van 20 minuten

Maya heeft een vierjarige, een compostbak in de achtertuin die ze omschrijft als "ambitieus", en een supermarktgewoonte waar ze pas aan het einde van dit artikel over wil praten. Ze werkt al twaalf jaar als backend-engineer, en de afgelopen acht jaar staat elke dollar die haar huishouden heeft verdiend of uitgegeven in een plat tekstbestand in een Git-repository.

Een spontane foto van een moeder die haar jonge kind knuffelt op de bank in de woonkamer, met een papieren notitieboek, een mok koffie en een stapel bonnetjes op de houten salontafel

Daarvoor deed ze wat de meeste mensen doen. Mint, van haar eerste baan tot de dag dat het werd stopgezet. Daarna zes maanden een spreadsheet die, in haar woorden, "een tweede baan werd met slechtere tools." Een collega noemde plain-text accounting, ze dook in het konijnenhol en is er nooit echt uitgekropen. "Ik las de Beancount-documentatie op een dinsdagavond en migreerde dat weekend drie jaar aan geschiedenis. Mijn partner dacht dat ik gehackt was, omdat ik lachend achter de computer zat."

Het ritueel: 20 minuten, één keer per week, alleen op de laptop

Maya's regel is het tegenovergestelde van de meeste app-gebruikers: financiën gebeuren achter het bureau, niet op de telefoon. Elke zondag nadat de kleine naar bed is, opent ze haar grootboek in Fava op beancount.io en doorloopt ze dezelfde cyclus. De transacties van de week doornemen. Alles categoriseren wat de importeurs dubbelzinnig hebben gelaten. Even naar de vermogensgrafiek kijken. De laptop dichtklappen.

"Het is om dezelfde reden dat ik van CI houd," zegt ze. "Klein, saai, herhaalbaar. Twintig minuten en ik ben klaar, en ik denk er de rest van de week niet meer aan."

De telefoon krijgt echter één taak: vastleggen. Bij de supermarkt maakt ze een foto van de bon in de beancount.io mobiele app voordat ze het parkeerterrein al heeft verlaten. Tegen zondag ligt het in de inbox als een concepttransactie die wacht op bevestiging. "Vroeger ging de bon in een jaszak en daarna uiteindelijk de prullenbak. Nu gaat het in het grootboek. Dat is de hele truc — vastleggen op het moment van uitgeven, oordelen één keer per week."

Saldo-controles zijn unittesten voor geld

Vraag haar naar haar favoriete functie en ze aarzelt niet — maar het is geen grafiek. Het zijn balance-controles: een regel in het bestand die zegt "op deze datum bevatte deze rekening precies dit bedrag." Als het grootboek en de bank het ooit oneens zijn, weigert het bestand de bean-check te doorstaan.

"Het is een falende test voor je financiën. Mijn grootboek kan niet stilletjes afdwalen van de werkelijkheid. Mensen betalen geld voor apps die rekeningen reconciliëren, en ik krijg het van een tekstbestand dat niet compileert."

Haar meest ondergewaardeerde functie is documenten — het koppelen van de bon-pdf of foto direct aan een transactie. "Bij belastingtijd vroeg mijn accountant waar mijn administratie was. Ik stuurde haar een Git-bundle. Ze dacht dat het een grap was. Toen opende ze de proefbalans en stopte ze met lachen."

De kinderopvang-query

Het moment dat het systeem echt zijn geld waard was, was een BQL-query. De kinderopvang van haar vierjarige voelde duur, maar gevoelens zijn geen cijfers, dus draaide ze één regel — totaal per maand, gegroepeerd, twaalf maanden venster — tegen de Fava-querypagina.

"Ik had geen software nodig om me te vertellen dat kinderopvang duur is. Maar de lijn een jaar lang omhoog en naar rechts zien kruipen, is wat ons uiteindelijk deed vergelijken. We zijn verhuisd naar een plek die we eigenlijk leuker vinden, twintig minuten dichterbij, en het verschil dekt onze supermarktrekening. Eén query. Dat is de hele ROI van acht jaar boekhouden, als je de score bijhoudt. Wat ik overduidelijk doe."

Ze gebruikt dezelfde truc ook één keer per kwartaal voor abonnementen: één query, één lijst, tien minuten opzeggen. "Het zijn altijd de streamingdiensten. Het is alsof ze zich vermenigvuldigen."

Maar ook: koffie

Engineers hebben ook zwakke uitgavecategorieën. Als haar grootboek haar zou bekritiseren, geeft ze toe, zou de clou Expenses:Food:Coffee zijn. "Er was een V60. Toen een weegschaal. Toen een Fellow-waterkoker. Toen een molen die meer kostte dan mijn eerste monitor." Ze weet natuurlijk precies wat het allemaal kostte — ze kan git log draaien over het pour-over-tijdperk en zien dat de commits steeds frequenter worden.

Dat is het deel dat mensen verkeerd begrijpen over het bijhouden van geld in platte tekst, zegt ze. Het gaat niet om beperking. "Het is geen dieet. Het is een spiegel. Ik kijk naar de koffielijn en voel absoluut geen schuld, omdat ik zelf voor de molen heb gekozen. Het grootboek zorgt er alleen voor dat ik met open ogen kies."

Acht jaar later is de repository het langstlopende project dat ze ooit heeft onderhouden. "Alles wat ik op werk heb geschreven, is herschreven of verwijderd. Dit bestand blijft gewoon compileren."

Wil je je eigen zondagse ritueel? Meld je aan voor beancount.io, importeer je eerste overzicht met Smart Import, en laat het grootboek het onthouden.

Dit artikel delen