Reálne nastavenia Beancount
Úvod
Beancount je všestranný systém účtovníctva v obyčajnom texte a jeho používatelia ho prispôsobili širokému spektru reálnych potrieb. V tejto ukážke komunity predstavujeme anonymizované príklady, ako rôzni ľudia štruktúrujú a používajú svoje účtovné pracovné postupy v Beancount – od freelancerov a malých podnikateľov až po nadšencov osobných financií. Tieto príklady zdôrazňujú kreatívne praktiky, ako je označovanie transakcií metadátami, automatizácia aktualizácií kníh prostredníctvom vlastných skriptov, spracovanie viacerých mien, rozpočtovanie a prognózy, a rozširovanie Beancount pomocou pluginov alebo integrácií (napríklad Fava webové rozhranie).
For living overviews of the same tooling cluster, see Beancount v3: What's New?, Essential Beancount Native Plugins You Should Know, The Beancount Ecosystem, and Beancount's Technical Edge. Cieľom je inšpirovať a informovať účtovníkov, vývojárov a používateľov oboznámených s financiami o možnostiach flexibilného systému Beancount.

Ukážka rozhrania: Mnohí používatelia Beancount spoliehajú na Fava – open-source webový panel – alebo na hosťovanú alternatívu na beancount.io na vizualizáciu svojich financií. Tieto nástroje premieňajú Beancount knihu na interaktívne reporty a grafy. Napríklad tento pohľad na Výkaz ziskov a strát rozdeľuje príjmy a výdavky podľa kategórií v čase, čím ponúka rýchly prehľad, odkiaľ peniaze prichádzajú a kam smerujú. Používatelia môžu filtrovať tento pohľad podľa času, účtu alebo tagov, aby sa zamerali na konkrétne projekty alebo obdobia. Takéto vizualizácie pomáhajú sprístupniť údaje z obyčajného textu, umožňujúc používateľom rýchlo zaznamenať trendy a anomálie.
Každé nastavenie Beancount je jedinečné, no objavujú sa spoločné témy. Nižšie sa pozrieme na tri scenáre – freelancera, malého podnikateľa a nadšeného používateľa osobných financií – aby sme videli, ako organizujú svoje účty a využívajú funkcie Beancountu. Všetky osobné údaje boli odstránené alebo zovšeobecnené, zameriavajúc sa výlučne na techniky a konfigurácie.
Freelancer: Označovanie projektov a sledovanie faktúr
Náš prvý príklad je nezávislý konzultant, ktorý používa Beancount ako základ pre financie svojej firmy. Kniha tohto freelancera je organizovaná tak, aby sledovala príjmy a výdavky podľa projektov a spravovala faktúry pre viacerých klientov. Zriadil si vyhradené účty pre pohľadávky (Accounts Receivable, A/R) pod aktívami pre každého klienta, čo pomáha rozlíšiť, kto čo dlhuje. Keď dokončia projekt a vystavia faktúru klientovi, zaznamenajú transakciu účtujúc debetom na A/R konto klienta a kreditom na príjmový účet. Napríklad nová faktúra môže byť zaznamenaná nasledovne:
2025-08-01 * "Project X Completed" ^INV-0001
Assets:AccountsReceivable:ClientA 5,000 USD
Income:Consulting -5,000 USDTu je notácia ^INV-0001 odkaz (vstavaná metadátová funkcia Beancount), použitá na označenie tejto transakcie číslom faktúry. Keď klient zaplatí časť alebo celú faktúru, platobná transakcia obsahuje rovnaký odkaz ^INV-0001, čím sa obe položky previažu. Toto prepojenie umožňuje jednoduché priradenie platieb ku konkrétnym faktúram a zobrazenie zostávajúcich pohľadávok. Ako jeden člen komunity vysvetlil, môžete použiť takéto značky alebo odkazy na označenie čiastočných platieb – napríklad platbu $20 na faktúru vo výške $30 – na oboch záznamoch, faktúry aj platby. Dotazovaním knihy na daný odkaz faktúry môže freelancer okamžite vidieť, koľko z faktúry už bolo zaplatené a čo zostáva otvorené.
Okrem odkazov freelancer intenzívne používa značky na kategorizáciu. Značky v Beancount sú štítky s prefixom #, ktoré môžu označovať transakcie pre následné filtrovanie. Tento používateľ označuje každý výdavok, ktorý je fakturovateľný klientovi, kódom projektu, napríklad #ProjectX, a označuje vrátené výdavky značkou #Reimbursable. Napríklad ak kúpia letenky na klientsky projekt, záznam výdavku môže obsahovať #ProjectX #Reimbursable. Tento postup umožňuje generovať reporty podľa projektu alebo klienta filtrovaním podľa značiek. Po skončení projektu môže freelancer spustiť dopyt na zobrazenie všetkých #Reimbursable výdavkov pre daný projekt a zabezpečiť, že každý z nich bude klientovi fakturovaný. Jeden používateľ Beancount poznamenal, že označovanie výdavkov na pracovné cesty pomohlo zachytiť tie, ktoré neboli refundované – ideálne by výdavky pracovnej cesty mali byť vyrovnané na $0, keď všetky náhrady od klienta dorazia. Toto zdôrazňuje, ako značenie v kombinácii s dopytovacími schopnosťami Beancount poskytuje ďalšiu vrstvu kontroly pre freelancerov spravujúcich fakturovateľné výdavky.
Na správu stavu nezaplatených platieb náš freelancer používa špeciálnu konvenciu pre očakávané pohľadávky. Na každú faktúru, ktorá nebola úplne zaplatená, aplikuje označenie #UNRESOLVED. Beancount (a Fava) tento tag nevyžaduje, ale ide o komunitou vytvorený vzor na označenie transakcií čakajúcich na vyrovnanie. Napríklad kým klient A nezaplatí celých $5,000, uvedená faktúra bude obsahovať #UNRESOLVED. Filtrovaním podľa tohto tagu si freelancer môže kedykoľvek zobraziť všetky otvorené faktúry. Po prijatí a zaúčtovaní platby (zodpovedajúca transakcia pohľadávky je zadaná) odstránia alebo ignorujú tag #UNRESOLVED a pohľadávkový účet pre daného klienta bude vyrovnaný na nulu. Tento systém zabezpečuje, že žiadna faktúra "nepadne medzi praskliny." V podstate ide o report starnutia vytvorený v obyčajnom texte – ak zostáva pohľadávka nerovná nule a je označená ako nevyriešená, vyžaduje si pozornosť.
Keďže freelanceri často pracujú s viacerými spôsobmi platby a niekedy viacerými menami, nastavenie Beancount to jednoducho zvláda. V našom príklade môže konzultant fakturovať niektorým klientom v USD a iným v EUR. Práca s viacerými menami je v Beancount jednoduchá: akýkoľvek účet môže obsahovať viacero komodít (meny sú považované za komodity). Freelancer si môže buď viesť samostatné podúčty pre každú menu (napr. Assets:AccountsReceivable:ClientA:EUR verzus ...:USD), alebo jednoducho účtovať transakcie v príslušnej mene pod tým istým účtom. Beancount automaticky sleduje zostatky podľa meny. Jeden používateľ zdôraznil, ako je príjemné, že „Beancount dokáže sledovať množstvá v akejkoľvek mene, či už USD alebo skratiek,“ všetko v jednom účtovnom denníku. Náš freelancer toto využíva tak, že zaznamenáva výmenné kurzy pomocou direktív price vždy, keď potrebuje prepočítať meny pre reportovanie. Môže tak vytvoriť výnosový report prepočítaný do domácej meny po zadaní pravidelných výmenných kurzov alebo trhových cien.
Nakoniec tento freelancer integruje svoj Beancount denník s praktickými nástrojmi na zefektívnenie pracovného toku. Napríklad k denníku pripája PDF kópie každej faktúry pomocou metaúdajov dokumentu. Typický záznam o úhrade faktúry môže vyzerať takto:
2025-08-30 * "ClientA" "Payment for INV-0001" ^INV-0001
Assets:Bank:Checking 5,000 USD
Assets:AccountsReceivable:ClientA -5,000 USD
document: "Invoices/ClientA/INV-0001.pdf"Direktíva alebo metadáta document v Beancount umožňujú priradiť súbory ku záznamom, pričom Fava zobrazí hypertextový odkaz na tieto prílohy. To znamená, že freelancer (alebo jeho účtovník) môže priamo z reportu účtovnej knihy kliknúť na pôvodný PDF faktúru, čo zabezpečuje ľahký prístup k záložnej dokumentácii. Freelancer tiež využíva reporty Fava na sledovanie svojho podnikania: filtrovaním Výkazu ziskov a strát alebo Súvahy podľa klienta vidí ziskovosť na klienta a kontroluje, či sú všetky projekty zaplatené. Stručne povedané, systém Beancount tohto freelancera preukazuje intenzívne používanie označovania a prepojení na riadenie účtovníctva podľa projektov. Premieňa obyčajnú textovú knihu na robustný nástroj pre freelancerské účtovníctvo s jasným prehľadom o nákladoch na projekty, príjmoch v viacerých menách a stave faktúr.
Kľúčové praktiky v nastavení freelancera: Používanie tagov na zoskupovanie transakcií podľa projektu alebo účelu, prepojenie faktúr a platieb pomocou jedinečných ID, označovanie nesplatených pohľadávok tagom #UNRESOLVED, pripájanie fakturačných dokumentov ku knihovým záznamom na referenciu a využívanie viacmenovej podpory Beancountu na fakturáciu medzinárodným klientom bez problémov. Všetko toto sa dosahuje pomocou obyčajných textových záznamov plus niekoľkých pomocných nástrojov, čo ukazuje silu metadát v Beancount.
Malé podnikanie: Automatizácia a viacmenové účtovníctvo
Ďalej sa pozrieme na majiteľa malého podniku – konkrétne zakladateľa startupu – ktorý prevzal Beancount na vedenie firemných účtov. Malé podniky majú potreby podobné freelancerom (faktúry, náklady, viac mien), avšak často v širšom rozsahu a s väčším dôrazom na automatizáciu, konzistenciu a spoluprácu. V tomto prípade bol zakladateľ technicky zdatný a vytvoril vysoko automatizovaný Beancount pracovný tok na minimalizáciu ručného účtovania. Po vyhodnotení tradičného účtovného softvéru ako QuickBooks sa rozhodol pre textový prístup Beancountu, aby si zachoval plnú kontrolu nad údajmi. V priebehu niekoľkých rokov iteratívne vyvíjal vlastné nástroje, aby dosiahol 95 % automatizovaný proces účtovania.
Automatizované importy a zúčtovanie: Jednou z prvých výziev bolo importovať transakcie z rôznych zdrojov (bankové účty, kreditné karty, platobné brány) do denníka. Namiesto manuálneho zadávania každej transakcie si tento používateľ nastavil importné skripty, ktoré získavajú a prevádzajú dáta do formátu Beancount. Pre každú finančnú inštitúciu napísal vlastných Python importérov pre CSV alebo API formát, takže jedným príkazom môže stiahnuť nové transakcie a pripojiť ich do denníka. Napríklad, pomocou importérov beangulp môže zakladateľ spustiť skript, ktorý prehľadá zložku stiahnutých súborov pre nové výpisy a výstupom sú záznamy v Beancount formáte. Ďalší používateľ, Rhyd Lewis, opísal podobné nastavenie, kde má samostatné importné skripty pre každú banku a môže ich vyvolať jednoduchým príkazom (pomocou Justfile) na aktualizáciu denníka. Náš malý podnikateľ robí to isté – všetky bankové transakcie, platby kreditnou kartou a dokonca aj transakcie cez PayPal alebo Stripe sa automaticky stiahnu a pridajú do kníh, kategorizované príslušnými účtami.
Aby bola zabezpečená integrita dát aj pri automatickom pridávaní týchto záznamov, validujú denník pred každým commitom a používajú pluginy Beancountu. Napríklad je povolený plugin beancount.plugins.noduplicates, ktorý zabraňuje neúmyselnému dvojitému importu rovnakej transakcie, a beancount.plugins.nounused upozorňuje na účty bez záznamov (užitočné pri čistení neaktívnych účtov). Pre tento validačný krok odporúčame bea check. Zakladateľ tiež používa komunitný formatter (napr. beancount-black) na udržiavanie jednotného štýlu denníka. Toto je dôležité, pretože pri mnohých automatických úpravách uľahčuje jednotný štýl prehľadávanie zmien a audity. V skutočnosti je denník uložený v Git repozitári a aktualizácie denníka sa spracúvajú ako zmeny kódu. Každá nová dávka importovaných transakcií sa stane Git commitom a môžu tak prehliadať rozdiely a vidieť, čo sa zmenilo. Na jednom screenshote ukazujú Git históriu, kde transakcia kreditnej karty pre “Costco” prechádza zo stavu čakajúcej na zaúčtovanú v denníku, všetko bez manuálneho zásahu. Verzovací systém poskytuje auditný záznam: je vidieť presne, kedy bola transakcia pridaná alebo upravená, a dokonca je možné zmeny vrátiť, ak bol import nesprávny. Toto je skvelý príklad zavedenia najlepších postupov vývoja softvéru (ako je verzovanie zdrojových kódov) do účtovných záznamov.
Viacnásobné meny a medzinárodné transakcie: Malé podniky často vykonávajú transakcie v rôznych menách – napríklad startup môže mať výdavky v USD, ale zároveň prijímať platby v EUR alebo držať bankový účet v GBP. Naša ukážková spoločnosť používa viacmenové funkcie Beancountu na konsolidáciu všetkého do jednej účtovnej knihy. Otvorili samostatné účty pre každú menu (napr. Assets:Bank:Checking:USD a Assets:Bank:Checking:EUR), čo je bežný prístup. Avšak, aj keď rôzne meny zdieľajú jeden účet, Beancount bude sledovať zostatok každej meny samostatne a vyžaduje, aby transakcie boli vyrovnané pre každú menu zvlášť. Zakladateľ často vykonáva hodnotiace reporty, aby videl celkové zostatky spoločnosti prevedené do základnej meny. Keďže Beancount podporuje vyhľadávanie cien, nastavil denný príjem cien pre výmenné kurzy mien (a ceny akcií pre akékoľvek investície) pomocou plánovaného skriptu na získavanie kurzov. Výsledkom je, že kedykoľvek môže vygenerovať súvahu napríklad v USD, ktorá obsahuje účet v EUR prepočítaný podľa najnovšieho kurzu. Členovia komunity zdôrazňujú, že spravovanie viacerých mien v účtovníctve vo forme ledgeru je jednoduché – jednoducho pridáte transakcie v danej mene a zaznamenáte výmenné kurzy podľa potreby. Napríklad jeden používateľ zdieľal príklad konverzie USD na EUR a potom na CAD cez medzikontá ako spôsob správy konverzií mien v Beancounte. V našom prípade malý podnik nemusí nevyhnutne prevádzať meny pri transakciách (uchovávajú ich v domácej mene), ale používa reporty na konsolidáciu. Táto flexibilita bola kľúčová pri globálnom rozšírení startupu.
Vlastné skripty a rozšírenia: Nie všetko, čo zakladateľ potreboval, bolo dostupné priamo z krabice, takže rozšíril Beancount o vlastné pluginy. Postupne napísal knižnicu parsera, nástroj na formátovanie a importer transakcií založený na pravidlách, pričom mnoho z nich vydal ako open-source balíky. Napríklad vytvoril importný motor založený na pravidlách, ktorý používa YAML konfiguráciu na automatické kategorizovanie transakcií. Výrez z tejto konfigurácie ukazuje, ako sú konkrétni prijímatelia alebo popisy (ako „Comcast“ alebo „PG&E“) namapované na určité účty výdavkov a popisy, takže keď sa objavia v bankovom výpise, správny záznam v Beancounte sa vygeneruje bez manuálneho upravovania. Ide v podstate o vlastnú automatizáciu na uplatňovanie účtovných pravidiel (pre energie, predplatné atď.) za pochodu. Ďalší plugin zabezpečuje, aby hlavná kniha vždy zostala vyvážená a formátovaná. Všetky tieto nástroje bežia ako súčasť pracovného procesu zakladateľa vždy, keď sa načítajú nové dáta. Výsledkom je hlavná kniha, ktorá sa „sama aktualizuje“ s minimálnou zásahou, čo zakladateľ označuje za „čistú radosť“ ako automatizáciou posadnutý vývojár.
Bezpečnosť a prístupnosť boli tiež dôležité. Zakladateľ chcel, aby jeho finančný tím (a dokonca jeho manželka, pôsobiaca ako kontrolórka) mohli ľahko prezerať účtovné knihy. Na to nastavil súkromné nasadenie Favy v cloude. Kedykoľvek vykoná nový commit hlavnej knihy do súkromného Git repozitára, CI pipeline (používajúci GitHub Actions a AWS Elastic Beanstalk) nasadí aktualizovanú inštanciu Favy. Webové rozhranie je za heslom (cez Nginx proxy s basic auth), takže ho môžu vidieť len autorizované osoby. Takto sú najnovšie finančné výkazy vždy dostupné cez prehliadač bez potreby lokálnej inštalácie. Architektonický diagram nižšie ilustruje túto konfiguráciu: súbor Beancount a potrebná konfigurácia sú zabalené do Docker obrazu spolu s Favou a podávané na AWS, pričom pred nimi je Cloudflare pre bezpečnosť.
flowchart LR
A[Edit ledger locally] --> B[Push to private Git repo]
B --> C[CI builds Docker image<br/>Fava + Nginx basic auth]
C --> D[Deploy to AWS<br/>Elastic Beanstalk]
D --> E[Cloudflare proxy]
E --> F[Owner & team view<br/>reports in browser]Automatizácia Beancount v cloude: používateľ lokálne aktualizuje súbor účtovnej knihy a pushuje ho na Git; vytvorí sa a nasadí Docker kontajner (vrátane Fava a Nginx na autentifikáciu) na server AWS Beanstalk a Cloudflare funguje ako proxy. Výsledkom je zabezpečený webový portál, kde môžu byť finančné údaje malej firmy v reálnom čase prístupné odkiaľkoľvek (majiteľom alebo tímom). Tento pokročilý setup ukazuje, ako môže malá firma integrovať Beancount s modernými cloudovými nástrojmi za účelom pohodlia bez straty vlastníctva dát.
Pri každodennom používaní sa majiteľ malej firmy sústreďuje na riešenie výnimiek namiesto zadávania dát. Každý mesiac rýchlo prekontroluje automaticky importované transakcie (pomocou Git diffov alebo zobrazenia denníka vo Fava), aby odhalil nezaradené alebo nesprávne položky. Tiež používa Beancountove balančné overenia na zúčtovanie účtov. Napríklad po zadaní všetkých júnových transakcií môže pridať kontrolu zostatku, aby potvrdil, že koncový zostatok na bankovom účte zodpovedá výpisu; ak nie, Beancount vyhodí chybu, ktorá indikuje, že niečo chýba alebo je nesprávne zadané. To zabezpečuje správnosť účtovníctva.
Kľúčové postupy v nastavení malej firmy: Intenzívna automatizácia cez vlastné importéry a skripty (vďaka čomu je účtovná kniha „95 % automatická“), používanie správ verzií pre audítorské stopy a spoluprácu, viacmenové účtovníctvo s cenovými feedmi na oceňovanie a nasadenie Fava pre jednoduchý a zdieľateľný prístup k finančným prehľadom. Scenár malej firmy ukazuje, ako ďaleko sa dá Beancount posunúť s inžinierskym úsilím – premeniť účtovníctvo na do veľkej miery automatizovaný proces pri zachovaní transparentnosti a flexibility. Aj keď nie ste programátor, mnohé z týchto výhod môžete dosiahnuť použitím komunitných pluginov (na formátovanie, detekciu duplikátov a pod.) a prijatím pracovného postupu na základe plain-textu, ktorý povzbudzuje časté kontroly a zálohy.
Nadšenec pre osobné financie: rozpočtovanie a vlastné analýzy
Našou poslednou ukážkou je nadšenec do osobných financií – niekto, kto používa Beancount na správu domácich financií a investícií s vysokou úrovňou detailov. Tento používateľ pristupuje k svojim osobným financiám s dôslednosťou účtovníka a zvedavosťou dátového analytika. Výsledkom je účetná kniha Beancount, ktorá nielen sleduje každý cent, ale tiež slúži ako základ pre rozpočtovanie, prognózy a analytické experimenty.
Organizácia osobnej knihy: Mnoho jednotlivcov začína s jedným Beancount súborom pre všetky svoje účty a tento nadšenec nie je výnimkou. Vedie jeden hlavný ledger (napr. main.beancount), ktorý zahŕňa všetky účty (bankové účty, kreditné karty, pôžičky, investičné portfóliá atď.) a transakcie. Postupom času zaviedli určitú štruktúru rozdelením sekcií – napríklad majú súbor na otváranie/zatváranie účtov a samostatné súbory pre ročné transakcie – ktoré sú zahrnuté do hlavného súboru. Táto modulárna organizácia uľahčuje orientáciu v rokoch údajov (staré roky je možné archivovať v samostatných súboroch) a zároveň logicky tvorí jeden ledger. Iný osobný používateľ na komunitnom fóre opísal podobné usporiadanie: hlavný súbor, ktorý zahrňuje iné podľa kategórií (napr. Income.beancount, Expenses.beancount, Investments.beancount). Náš nadšenec to zatiaľ drží jednoducho: jeden súbor synchronizovaný medzi zariadeniami.
Keď už hovoríme o synchronizácii, keďže ide o osobné financie, tento používateľ chce zaznamenávať transakcie všade, kde sú. Používa mobilnú aplikáciu Beancount Mobile, aby mohol rýchlo pridávať záznamy na cestách (napríklad zaznamenanie hotovostnej výdavky priamo v obchode). Ledger súbor sa zdieľa cez cloud-synchronizáciu (v tomto prípade Syncthing), takže jeho telefón, notebook a VPS (server) majú vždy najnovšiu kópiu. Na počítači preferuje používať Emacs s beancount-mode pre pohodlné úpravy so zvýraznením syntaxe. Toto nastavenie zabezpečuje, že či je pri stole alebo vonku, môže okamžite zaznamenať transakcie a vyhnúť sa zabudnutiu čohokoľvek. Je to výborný príklad prispôsobenia technických nástrojov pre osobné pohodlie – efektívne budovanie self-hosted alternatívy ku komerčným rozpočtovým aplikáciám.
Tagovanie a metaúdaje pre dôkladné sledovanie: Tento používateľ využíva značky (tagy) na pridanie druhej dimenzie k svojim údajom okrem účtovnej osnovy. Pre bežné rozpočtové kategórie postačujú účty (majú účty ako Expenses:Groceries, Expenses:Rent atď.), ale pre priečne témy ako udalosti alebo cieľe používajú značky. Napríklad označujú všetky transakcie súvisiace s ich projektom rekonštrukcie domu značkou #HomeReno, či už ide o nákup dreva v železiarstve (výdavok) alebo o prijatie zľavy od výrobcu (príjem). Takto môžu jednoducho vytvoriť správu o celkových nákladoch projektu bez toho, aby boli tieto výdavky rozdelené do rôznych účtov. Jeden používateľ na Reddite demonštroval tento prístup označovaním výdavkov ako #garage-improvement alebo #lighting-improvement pre domáce projekty, čím bolo jednoduché tieto cez dotazy Beancountu filtrovať a sumarizovať. Náš nadšenec robí to isté pre dovolenky (#ItalyTrip2025), veľké nákupy a jednorazové udalosti.
Metaúdaje (kľúč-hodnota páry na transakciách) sa používajú aj na niektoré špecifické účely. Napríklad pridávajú metaúdaj location: ... k veľkým výdavkom na sledovanie, kde peniaze utratili, alebo note: ... pre dodatočný kontext okrem príjemcu a poznámky. V niekoľkých prípadoch dokonca vytvorili vlastné polia metaúdajov na pomoc s predikciou. Jedným príkladom je pridanie budget: X a frequency: monthly ku určitým pravidelným výdavkom – myšlienka inšpirovaná diskusiou na mailingliste Beancountu, kde používateľ uchovával rozpočtové projekcie v metaúdajoch pre každý výdavok. Tieto polia metaúdajov neovplyvňujú jadro Beancountu, ale nadšenec napísal malý Python skript, ktorý ich číta a porovnáva skutočné výdavky s plánovaným rozpočtom. Toto je alternatíva k používaniu vstavaných rozpočtov Fava (popísaných nižšie) a ukazuje, ako sa dá metaúdaje prispôsobiť používateľovi. Ako tvorca Beancountu poznamenal, metaúdaje sú „len pre vás [na použitie v vlastných skriptoch] – Beancount ich rozpoznáva, ale sám ich ignoruje“. Skrátka, tento používateľ sa nebojí rozšíriť účtovnú knihu o doplnkové informácie, ktoré pomáhajú jeho osobnej analýze.
Rozpočtovanie s Beancountom: Jedným z hlavných cieľov tohto používateľa je držať sa mesačného rozpočtu. Predtým používal rozpočtovú aplikáciu (YNAB) a chcel replikovať niektoré jej koncepty rozpočtovania pomocou obálok. Existuje niekoľko spôsobov, ako rozpočtovať v Beancounte, ale najjednoduchší je použiť Fava smery rozpočtu. Náš nadšenec pridáva do denníka zápisy budget takto:
2025-01-01 custom "budget" Expenses:Groceries "monthly" 500 USD
2025-01-01 custom "budget" Expenses:DiningOut "monthly" 200 USD
2025-01-01 custom "budget" Expenses:Travel "yearly" 3000 USDKaždý riadok nastavuje rozpočet pre účet (kategóriu) na určité obdobie. Fava potom zobrazuje v rozhraní webu stĺpce rozpočtu versus skutočných hodnôt, čo používateľovi umožňuje vidieť napríklad, že tento mesiac minuli 480 USD na Potraviny z rozpočtu 500, a možno 220 na Reštaurácie (nad rozpočtom). Nadšenec pravidelne kontroluje Fava Výkaz ziskov a strát a prehľady Výdavkov, ktoré ukazujú mesačné sumy aj rozpočtové ciele. Fava pohodlne zhrnie denné/týždenné rozpočty do príslušných časových období. Použitím UI Fava na to používateľ nepotrebuje samostatnú tabuľku na rozpočet; všetko je integrované. (Tiež experimentovali s viac automatizovaným „envelope“ systémom presúvania finančných prostriedkov do dočasných účtov na začiatku každého mesiaca, ako sa odporúča na fórach, ale zistili, že vlastné smernice rozpočtu je jednoduchšie udržiavať.)
Pre prognózy, okrem rozpočtov, sledujú nadchádzajúce faktúry. Niektorí členovia komunity vytvorili pluginy na generovanie budúcich transakcií pre predplatné alebo splátkové plány úverov, ale tento používateľ si vybral jednoduchší prístup: vedie samostatnú časť hlavnej knihy s budúcimi dátumami transakcií pre známe položky (ako napríklad budúcoročný nájom alebo nadchádzajúca ročná poistná platba). Tie zostávajú v hlavnej knihe, no neovplyvňujú dnešné zostatky, a keď príde dátum a transakcia sa stane aktuálnou, slúži to ako pripomienka (a v prípade potreby upravia sumu, aby zodpovedala skutočnému poplatku). Je to trochu hack, ale funguje to pre prognózovanie hotovostných tokov bez zložitých nástrojov.
Sledovanie investícií a účtovníctvo viacerých komodít: Ako nadšenec financií tento používateľ tiež používa Beancount na konsolidáciu investičných účtov – akcie, podielové fondy a kryptomeny – spolu s hotovostnými účtami. Majú brokerské účty, ktorých držby (napr. akcie AAPL, GOOG a pod.) sú v Beancount zaznamenané ako komodity. Napríklad nákup 10 akcií Apple by bol zápis, ktorý pripisuje hotovosť na brokerskom účte a zaťaží majetkový účet s 10 AAPL ako množstvo komodity. Schopnosť Beancount pracovať s akoukoľvek komoditou je tu veľmi užitočná; môže sa slobodne miešať meny a akcie. „Beancount môže sledovať množstvá v akejkoľvek mene, či už USD alebo symbol akcie,“ ako poznamenal jeden používateľ, čo bolo veľké zlepšenie oproti aplikáciám osobných financií, ktoré často dobre nepodporujú pozície v akciách. Náš nadšenec používa nočný cron job na získavanie najnovších trhových cien všetkých svojich cenných papierov a zahraničných mien. Každú noc o 4:00 ráno skript získava ceny (z Yahoo Finance alebo iného zdroja) a pridáva záznamy o cenách do hlavnej knihy za daný deň. Takto, keď nabudúce otvoria Fava alebo spustia report, môžu vidieť aktuálne hodnoty portfólia a dokonca aj výkonnosť investícií v čase. Celkový čistý majetok, naprieč bankovými účtami, dôchodkovými fondmi a kryptopeňaženkami, je dostupný v jednom zjednotenom prehľade. Je to sen pre dátovo riadeného investora: nemusí sa prihlasovať do viacerých platforiem, aby videl celý obraz. V podstate si vytvorili osobnú finančnú nástenku poháňanú Beancount.
Analýza a integrácia: Čo skutočne odlišuje tohto skúseného používateľa osobných financií, je spôsob, akým analyzuje údaje, keď sú už v Beancounte. Všetky transakcie sú v databáze SQLite (Beancount vie dotazovať údaje prostredníctvom vlastného dotazovacieho jazyka podobného SQL), používateľ môže vykonávať vlastnú analýzu. Napísal Python skripty na zodpovedanie otázok ako „Aký je 3-mesačný kĺzavý priemer mojich výdavkov na potraviny?“ alebo „Ako sa výdavky na energie tento rok porovnávajú s minulým rokom?“ Jeden skript dotazuje ledger na konkrétne tagy a výsledky posiela do Pandas dataframe na ďalšie spracovanie. Keďže ledger je v plain texte, používal aj Jupyter notebooky na experimentovanie s rôznymi vizualizáciami (za hranicami toho, čo ponúka Fava). Napríklad vytvorili vlastný stĺpcový graf mesačnej miery úspor pomocou Matplotlib z agregovaných údajov Beancountu v Pythone. Tento druh ad hoc analýzy je možný práve preto, že Beancount udržiava údaje prístupné a strojovo spracovateľné. Ako jeden používateľ povedal, extrahovanie dát je triviálne – „mám jeden Python skript, ktorý vytiahne údaje z Beancountu cez dotazovací jazyk a potom použijem pandas dataframe na prípravu dát do správy“. Náš nadšenec má úložisko takýchto malých skriptov, ktoré spúšťa pri svojom ročnom finančnom prehľade.
Samozrejme, nie všetko vyžaduje programovanie – často sa spoliehajú na vstavané grafy vo Fave. Fava poskytuje graf čistého majetku, trend príjmov vs. výdavkov, a dokonca aj treemap rozpis (ako bolo ukázané vyššie), všetko len na jedno kliknutie. Používateľ oceňuje, že celá história ich financií od roku 2018 je možné dotazovať a auditovať. Napríklad ak sa pýtajú „koľko som minul na opravy auta za posledných 5 rokov,“ môžu napísať rýchly dotaz alebo filter vo Fave a dostať odpoveď bez prehľadávania účteniek. Táto možnosť samostatnej kontroly je presne to, čo ich do Beancountu pritiahlo: úplné vlastníctvo dát a nekonečná flexibilita v analýze. Ako bonus je plain text ledger pripravený na budúcnosť – môže byť verzionovaný, migrovaný alebo dokonca analyzovaný inými nástrojmi podľa potreby. Na rozdiel od uzavretých aplikácií nehrozí riziko straty prístupu k finančnej histórii.
Kľúčové postupy v osobnom nastavení: Využívanie mobilných a desktopových nástrojov pre pohodlné zadávanie údajov, používanie značiek a vlastných metaúdajov na sledovanie životných udalostí a skupín naprieč kategóriami, implementácia rozpočtov prostredníctvom Fava’s budget direktív na priebežné ciele výdavkov, sledovanie investícií a viacerých mien v tom istom účtovníctve (s automatickými aktualizáciami cien) a vykonávanie vlastnej analýzy priamym dotazovaním údajov v účtovnej knihe. Tento prípad ukazuje, že s trochou nastavenia môžu aj nadšenci osobných financií dosiahnuť úroveň prehľadu a kontroly typicky vyhradenú pre podniky – a to všetko pričom je to zábavné a zaujímavé pre technologicky zdatného používateľa.
Záver
V týchto príkladoch z komunity je jasnou témou, že flexibilita Beancountu umožňuje vysoko personalizovaný účtovný systém. Skúsení používatelia v komunite využili jednoduché textové súbory na vytvorenie riešení, ktoré sa svojimi schopnosťami vyrovnajú komerčnému softvéru, no sú prispôsobené ich pracovným postupom. Freelanceri označujú a prepojujú zápisy na jednoduché riadenie klientskych projektov a faktúr. Malí podnikatelia automatizujú únavné účtovné úlohy skriptovaním a integrujú Beancount s modernou infraštruktúrou pre neustále aktuálne finančné podklady. Nadšenci osobných financií používajú účtovnú knihu ako jediný zdroj pravdy pre rozpočtovanie, investovanie a rozhodovanie, rozširujúc ju značkami a nástrojmi na zodpovedanie prakticky akejkoľvek otázky o ich peniazoch. To všetko sa dosahuje pri zachovaní kľúčových výhod textového účtovníctva: transparentnosti, auditovateľnosti a kontroly nad vlastnými údajmi.
Komunita Beancountu tiež vytvorila bohatý ekosystém pluginov a integrácií. Od režimov editora a mobilných aplikácií na zadávanie údajov, cez webové rozhranie Fava na vizualizáciu, až po nespočetné importéry a nástroje na GitHub-e, existujú zdroje na uspokojenie takmer každej potreby. Používatelia často zdieľajú svoje nastavenia ledgerov na fórach a blogoch, aby sa ostatní mohli učiť a osvojovať si najlepšie postupy. Dôležité je, že citlivé informácie možno uchovať súkromné (alebo ľahko redigovať pre zdieľanie) vďaka čitateľnému formátu pre človeka – ako sme urobili aj v tejto ukážke. Príklady vyššie ukazujú, že či už ste nezávislý vývojár, zakladateľ startupu alebo nadšenec osobných financií, môžete Beancount ohýbať podľa svojej vôle. Kreatívnym využitím tagovania a metadát, automatizáciou kde je to možné, spracovaním transakcií v rôznych menách, plánovaním s rozpočtami a rozširovaním cez pluginy komunita naďalej posúva hranice možného v plain text-e. Výsledkom sú profesionálne účtovné ledger-y, ktoré sú zároveň príjemné na správu a dávajú používateľom jasnosť a kontrolu nad ich financiami.