Preskočiť na hlavný obsah

Čo je Beancount: podvojné účtovníctvo v obyčajnom texte

Beancount je podvojné účtovníctvo v obyčajnom texte pre akcie, kryptomeny a každodenné účtovníctvo – čo to je a prečo ho inžinieri používajú.

Táto príručka syntetizuje osvedčené postupy pre účtovníctvo v čistom texte pomocou výkonného open-source nástroja Beancount. Pokrýva základnú filozofiu, syntax od základov po pokročilé, praktické prípadové štúdie pre komplexné aktíva a dlhodobé stratégie správy účtovnej knihy.

Časť 1: „Prečo" – Základy inteligentného účtovníctva

Predtým, než sa ponoríme do „ako", je kľúčové pochopiť „prečo". Efektívne účtovníctvo je základom osobného finančného riadenia a nevyhnutným krokom k finančnej jasnosti a slobode.

Okrem sledovania výdavkov: Cesta k finančnej jasnosti

Jednoduché aplikácie na sledovanie výdavkov vám povedia, kam išli vaše peniaze. Robustný účtovný systém vám povie to a oveľa viac: poskytuje úplný obraz o vašom finančnom zdraví, vrátane vašej čistej hodnoty, cash flow a výkonnosti vašich investícií. Primárnym cieľom je pozorovateľnosť – získanie jasného, dátami riadeného pochopenia vášho finančného života, ktoré vám umožní robiť informované rozhodnutia, posudzovať riziká a pracovať na dlhodobých cieľoch, ako je dôchodok.

Prečo podvojné účtovníctvo? Sila vyváženého systému

Na rozdiel od jednoduchého účtovníctva (jednoduchý zoznam výdavkov), podvojná metóda zaznamenáva každú transakciu ako tok hodnoty medzi najmenej dvoma účtami. Jej základným princípom je základná účtovná rovnica:

Aktıˊva=Zaˊva¨zky+Vlastneˊ imanie (Cˇistaˊ hodnota)\text{Aktíva} = \text{Záväzky} + \text{Vlastné imanie (Čistá hodnota)}

Tento systém zaisťuje, že vaše knihy sú vždy vyvážené, čo dramaticky znižuje chyby. Poskytuje úplný finančný obraz vytváraním základných správ, ako sú súvaha (čo vlastníte a čo dlhujete) a výkaz ziskov a strát (čo ste zarobili a minuli).

Časť 2: Začíname s Beancount

Beancount je výkonný nástroj založený na Pythone pre účtovníctvo v čistom texte.

Váš prvý pohľad s Fava na Beancount.io

Beancount.io poskytuje výkonné prostredie, ktoré kombinuje engine Beancount s mobilnou aplikáciou (iOS, Android) a webovou aplikáciouFava, fantastickým webovým rozhraním na vizualizáciu vašej účtovnej knihy. Nie je potrebná žiadna inštalácia. Keď používate platformu, priamo interagujete s textovým editorom pre váš súbor knihy (napr. main.bean) a vidíte, ako sa správy generované Fava aktualizujú v reálnom čase.

Fava preberá čistý text, ktorý píšete, a premieňa ho na interaktívne grafy, finančné výkazy a filtrovateľné zoznamy transakcií, čo vám dáva jasný pohľad na vaše finančné správy.

Alebo začnite v termináli s programom bea

Ak by ste radšej pracovali z príkazového riadku, bea je príkazový riadok Beancount.io. Nie je potrebný žiadny účet: nainštalujte ho pomocou brew install bex-co/tap/bea alebo uv tool install beancount-io, a on vytvára, overuje, spracováva dotazy a generuje správy o rovnakom súbore v obyčajnom texte. Rýchly štart CLI vám vytvorí prvý ledger za pár minút a Váš prvý mesiac s programom bea uzavrie celý mesiac od začiatku do konca.

Päť základných typov účtov

Beancount používa päť hlavných typov účtov, ktoré tvoria štruktúru vašej účtovnej knihy:

Typ účtuPopisTypický zostatok
AktívaČo vlastníte (hotovosť, bankové účty, investície, nehnuteľnosti).Pozitívny
ZáväzkyČo dlhujete (dlh na kreditnej karte, pôžičky, hypotéky).Negatívny
PríjmyOdkiaľ peniaze prichádzajú (plat, bonusy, úroky).Negatívny
VýdavkyKam peniaze idú (jedlo, nájom, cestovanie, dane).Pozitívny
Vlastné imanieVaša čistá hodnota; používa sa na počiatočné zostatky.Negatívny

Beancount rovnica

Beancount presadzuje vlastnú verziu účtovnej rovnice, kde sa súčet všetkých položiek v celej vašej účtovnej knihe rovná nule:

Aktıˊva+Vyˊdavky+Zaˊva¨zky+Prıˊjmy+Vlastneˊ imanie=0\text{Aktíva} + \text{Výdavky} + \text{Záväzky} + \text{Príjmy} + \text{Vlastné imanie} = 0

Preto podľa konvencie účty Príjmy, Záväzky a Vlastné imanie držia negatívne hodnoty – sú to zdroje finančných prostriedkov, ktoré zvyšujú vaše Aktíva a Výdavky.

Časť 3: Jazyk Beancount – Základná syntax

Všetky záznamy v Beancount sú direktívy, ktoré začínajú dátumom.

Definovanie účtov (open) a komodít

Predtým, než môžete použiť účet, musíte ho deklarovať direktívou open. Môžete tiež voliteľne špecifikovať meny alebo „komodity", ktoré bude držať.

; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking      USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:Google

Komodity môžu byť skutočné meny (napr. USD, JPY) alebo akákoľvek vlastná jednotka, ktorú definujete, ako napríklad míle leteckej spoločnosti (MILES_UA) alebo tickery akcií (HOOL).

Zaznamenanie vašej prvej transakcie (*)

Transakcie sú najbežnejším záznamom. Začínajú dátumom, príznakom (* pre dokončenú transakciu alebo ! pre neúplnú), voliteľným príjemcom a popisom. Každý riadok, ktorý nasleduje (odsadený dvoma medzerami), je „položka" na účte.

; YYYY-MM-DD * "Payee" "Description"
;   Account1      Amount Commodity
;   Account2     -Amount Commodity
 
2024-07-28 * "Trader Joe's" "Weekly groceries"
  Expenses:Food:Groceries     125.50 USD
  Liabilities:CreditCard:US:Discover  -125.50 USD

Pre pohodlie, ak má transakcia iba dve položky, môžete vynechať množstvo na druhom riadku a Beancount ho vypočíta automaticky.

2024-07-28 * "Trader Joe's" "Weekly groceries"
  Expenses:Food:Groceries     125.50 USD
  Liabilities:CreditCard:US:Discover

Vyváženosť na úrovni transakcie: Dôležitejšie pre každodenné použitie je, že každá jednotlivá transakcia musí byť tiež vyvážená – súčet všetkých položiek v rámci jednej transakcie sa musí rovnať nule. Ak transakcia nie je vyvážená, Beancount zobrazí chybu, ako je táto:

Upozornenie na chybu Beancount

Spracovanie viacmenových transakcií (@ a @@)

Beancount vyniká vo viacmenovom účtovníctve.

  • Použite @ na špecifikovanie konverznej ceny za jednotku.
  • Použite @@ na špecifikovanie celkových nákladov konverzie.
; Buying a flight in EUR with a USD card
2024-08-01 * "Lufthansa" "Flight to Berlin"
  Expenses:Travel:Flights      500.00 EUR @@ 545.00 USD  ; 500 EUR cost me 545 USD in total
  Liabilities:CreditCard:US:Discover  -545.00 USD

Časť 4: Zabezpečenie presnosti – Umenie odsúhlasenia

Kľúčovou praxou pre udržiavanie presnej účtovnej knihy je pravidelné odsúhlasenie. To zahŕňa porovnanie zostatkov vo vašej Beancount knihe s oficiálnymi výpismi z vašich finančných inštitúcií.

Automatizácia kontrol pomocou zostatkových asercií (balance)

Direktíva balance je vaším primárnym nástrojom pre automatizované kontroly. Tvrdíte, že k určitému dátumu mal účet špecifický zostatok. Beancount vyvolá chybu, ak sa jeho vypočítaný zostatok nezhoduje s vašou aserciou. To je neoceniteľné pre rýchle lokalizovanie chýb.

Poznámka: Zostatková asercia kontroluje stav účtu na začiatku špecifikovaného dňa (pred akýmikoľvek transakciami v ten deň).

; From your monthly credit card statement
2024-08-01 balance Liabilities:CreditCard:US:Discover  -1432.78 USD

Prepojenie podporných dokumentov (document)

Môžete prepojiť externé súbory, ako sú bankové výpisy alebo účtenky, čím vytvoríte auditovateľnú stopu. Fava robí tieto odkazy klikateľnými.

2024-08-01 document Liabilities:CreditCard:US:Discover "statements/discover-2024-07.pdf"

Oprava chýb a inicializácia zostatkov

Keď začínate svoju účtovnú knihu alebo nájdete nezrovnalosť, ktorú nemôžete vystopovať, musíte vykonať úpravu. Štandardnou praxou je použiť špeciálny účet Vlastné imanie.

; Initializing a cash account when starting your ledger
2020-01-01 * "Initial Balance" "Setting up cash account"
  Assets:Cash:Wallet           200.00 USD
  Equity:Opening-Balances     -200.00 USD

Účet Equity:Opening-Balances drží sumy, ktoré vstupujú do vašej knihy z neznámych alebo externých zdrojov.

Pre rýchle opravy, kde presná nezrovnalosť nie je dôležitá, môže direktíva pad automaticky upraviť zostatok účtu tak, aby spĺňal následnú zostatkovú aserciu, pričom rozdiel zaúčtuje na účet vlastného imania. Používajte to s opatrnosťou, pretože to môže skryť väčšie problémy. Explicitné úpravy sú vo všeobecnosti bezpečnejšie.

Časť 5: Pokročilé a realistické vzory transakcií

Sledovanie dlhov: Správa pohľadávok a záväzkov

Podvojné účtovníctvo je ideálne na sledovanie peňazí, ktoré vám niekto dlhuje (Assets:Receivables) alebo ktoré dlhujete vy (Liabilities:Payable).

Príklad: Zaplatíte skupinovú večeru za $90 a váš priateľ Bob vám dlhuje svoj podiel $45.

  1. Zaznamenajte počiatočný výdavok a pohľadávku:

    2024-08-05 * "Dinner Place" "Dinner with Bob"
      Expenses:Food:Restaurant          45.00 USD  ; Your share
      Assets:Receivables:Bob            45.00 USD  ; Bob owes you
      Assets:Bank:US:Chase:Checking    -90.00 USD
  2. Keď vám Bob vráti peniaze:

    2024-08-06 * "Bob" "Paid me back for dinner"
      Assets:Bank:US:Chase:Checking     45.00 USD
      Assets:Receivables:Bob           -45.00 USD

Účet Assets:Receivables:Bob je teraz nulový a vaše knihy sú dokonale vyvážené.

Aktíva vs. Výdavky: Nákup auta a odpisy

Veľký nákup, ako je auto, nie je jednoduchý výdavok; je to nadobudnutie aktíva, ktoré časom stráca hodnotu (odpisy).

  1. Zaznamenajte nákup ako aktívum:

    2023-01-15 * "Toyota Dealer" "Purchase of a new car"
      Assets:Car:ToyotaCamry         30000.00 USD
      Assets:Bank:US:Chase:Checking -30000.00 USD
  2. Zaznamenajte ročné odpisy: Predpokladajme, že odhadujete, že auto stráca 3 000 USD na hodnote každý rok. Na konci roka to zaznamenáte ako výdavok.

    2023-12-31 * "Depreciation" "Annual car value depreciation"
      Expenses:Depreciation:Car      3000.00 USD
      Assets:Car:ToyotaCamry        -3000.00 USD

Po tomto zázname váš účet Assets:Car:ToyotaCamry správne odráža novú hodnotu auta (27 000 USD) a správne ste zaúčtovali náklady na používanie ako výdavok za daný rok.

Časť 6: Hlboký ponor – Modelovanie komplexných reálnych aktív

Prípadová štúdia 1: Účtovníctvo nehnuteľností

Dom je často vaším najväčším aktívom a záväzkom. Tu je návod, ako ho modelovať.

  1. Vytvorte účty a vlastnú komoditu:

    2022-01-01 commodity HOUSE_123MAIN
      name: "Property at 123 Main St"
    2022-01-01 open Assets:Property:Home:123Main        HOUSE_123MAIN
    2022-01-01 open Liabilities:Mortgage:HomeLoan       USD
    2022-01-01 open Expenses:Home:Interest
    2022-01-01 open Expenses:Home:PropertyTax
  2. Zaznamenajte nákup: Povedzme, že kúpite dom za 500 000 $ s akontáciou 100 000 $ a pôžičkou 400 000 $.

    2022-03-15 * "Settlement Company" "Purchase of 123 Main St"
      Assets:Property:Home:123Main          1 HOUSE_123MAIN {500000.00 USD}
      Assets:Bank:DownPayment          -100000.00 USD
      Liabilities:Mortgage:HomeLoan    -400000.00 USD
  3. Zaznamenajte mesačné splátky hypotéky: Vaša mesačná splátka pozostáva z istiny (znižuje záväzok) a úroku (výdavok).

    2022-04-01 * "Mortgage Bank" "Monthly Mortgage Payment"
      Liabilities:Mortgage:HomeLoan      800.00 USD   ; Principal
      Expenses:Home:Interest            1200.00 USD   ; Interest
      Assets:Bank:US:Chase:Checking    -2000.00 USD
  4. Sledovanie zhodnotenia (nercalizované zisky): Trhová hodnota domu sa mení. Na sledovanie tohto bez ovplyvnenia vašej oficiálnej čistej hodnoty (keďže zisk je realizovaný až pri predaji) môžete použiť direktívu ceny s „virtuálnou" menou.

    ; The purchase price is the real cost basis
    2022-03-15 price HOUSE_123MAIN   500000.00 USD
     
    ; An updated market estimate is an unrealized gain
    2024-01-01 price HOUSE_123MAIN   550000.00 USD.UNREALIZED

To vám umožní vidieť odhadovanú hodnotu v grafoch Fava bez nesprávneho nadhodnotenia vašej súvahy.

Preskúmajte živý príklad účtovnej knihy nehnuteľností so sledovaním hypotéky, odpismi a predajom nehnuteľnosti:

Otvoriť Príklad účtovnej knihy nehnuteľností v novej karte

Prípadová štúdia 2: Sledovanie obmedzených akciových jednotiek (RSU)

RSU sú bežnou formou akciovej kompenzácie. Účtovanie o nich zahŕňa sledovanie počiatočného pridelenia, udalostí nároku a zrážky daní.

  1. Počiatočné nastavenie: Vytvorte komodity pre akcie s nárokom (HOOL) a bez nároku (HOOL.UNVEST), spolu so všetkými účtami, ktorých sa neskoršie záznamy týkajú. Deklarovanie všetkých vopred je to, čo umožňuje, aby sa dve nižšie uvedené transakcie načítali samostatne.

    2021-01-01 commodity HOOL
    2021-01-01 commodity HOOL.UNVEST
    2021-01-01 open Assets:Brokerage:Etrade:HOOL          HOOL
    2021-01-01 open Assets:Grant:Unvested                 HOOL.UNVEST
    2021-01-01 open Income:Grant:Awards                   HOOL.UNVEST
    2021-01-01 open Expenses:Grant:Vested                 HOOL.UNVEST
    2021-01-01 open Income:Salary:Hooli:RSU               USD
    2021-01-01 open Expenses:Taxes:Federal                USD
    2021-01-01 open Expenses:Taxes:State                  USD
  2. Zaznamenajte počiatočné pridelenie: Táto transakcia ukazuje celkové pridelenie, ktoré sa presúva na účet aktív bez nároku. Zatiaľ nič nie je zdaniteľné, takže celý záznam je denominovaný v sledovacej komodite HOOL.UNVEST.

    2021-02-01 * "Hooli" "Initial RSU Grant"
      Assets:Grant:Unvested        1000 HOOL.UNVEST
      Income:Grant:Awards         -1000 HOOL.UNVEST
  3. Zaznamenajte udalosť nároku: Toto je kľúčová transakcia. Keď akcie nadobudnú nárok, vykážete príjem, zamestnávateľ zadrží akcie na zaplatenie dane a zvyšok si necháte. Predpokladajme, že 100 akcií nadobudne nárok pri cene 150,00 $, teda:

    • Hrubá kompenzácia: 100 × 150,00 $ = 15 000,00 $
    • Akcie zadržané na daň: 40 × 150,00 $ = 6 000,00 $ (federálna 4 800,00 $ + štátna 1 200,00 $)
    • Akcie, ktoré si necháte: 60 × 150,00 $ = 9 000,00 $ nákladového základu
    • Hotovosť pre vás: 0,00 $ – celá zrážka je zaplatená v akciách

    Tieto sumy tvoria záznam a odsúhlasia sa: 6 000,00 $ daní plus 9 000,00 $ zadržaných akcií je presne 15 000,00 $ príjmu.

    2022-02-01 * "Hooli" "RSU Vesting Event"
      ; Ordinary income: 100 shares * $150.00
      Income:Salary:Hooli:RSU                   -15000.00 USD
      ; Tax withheld, funded by 40 of the 100 shares (40 * $150.00 = $6,000.00)
      Expenses:Taxes:Federal                      4800.00 USD
      Expenses:Taxes:State                        1200.00 USD
      ; The 60 shares you keep, at their $150.00 vesting-day basis
      Assets:Brokerage:Etrade:HOOL                  60 HOOL {150.00 USD}
      ; Retire the 100 unvested units the grant was tracking
      Assets:Grant:Unvested                       -100 HOOL.UNVEST
      Expenses:Grant:Vested                        100 HOOL.UNVEST

Táto jediná vyvážená transakcia modeluje celú udalosť: pridelenie bez nároku sa zníži, príjem sa vykáže, daň sa zrazí a 60 čistých akcií s nárokom sa objaví na vašom brokerskom účte so správnym nákladovým základom pre budúce výpočty kapitálových ziskov.

Dva detaily stoja za to skopírovať do vašej vlastnej knihy. Po prvé, napíšte zrážku účtovne po účtoch namiesto toho, aby ste nechali vyrovnávací účet absorbovať ju – ak sa federálne a štátne položky nesčítajú na hodnotu zadržaných akcií, transakcia nebude vyvážená a Beancount vám to povie. Po druhé, nenechávajte prázdny riadok medzi položkami: prázdny riadok ukončuje transakciu a Beancount hlási syntaktickú chybu na položkách, ktoré nasledujú.

Ak váš zamestnávateľ predá zadržané akcie na otvorenom trhu namiesto toho, aby si ich vzal späť za cenu nároku, predaj je samostatná transakcia – zníženie Assets:Brokerage:Etrade:HOOL oproti hotovosti – a akýkoľvek rozdiel medzi predajnou cenou a základom 150,00 $ je malý kapitálový zisk alebo strata. Nechajte to mimo záznamu o nároku.

Časť 7: Projektové riadenie vašej účtovnej knihy

Keď vaša kniha rastie, organizácia sa stáva kľúčovou.

Používanie verzovania (Git) na ochranu vašich dát

Keďže vaša kniha je textový súbor, je ideálna na verzovanie pomocou Gitu. To vám dáva úplnú históriu všetkých zmien, čo vás chráni pred náhodným vymazaním alebo chybami. Varovanie: Vaše finančné dáta sú vysoko citlivé. Použite súkromný repozitár na službách ako GitHub/GitLab alebo si hosťujte vlastný.

Organizácia pomocou tagov (#) a odkazov (^)

Beancount poskytuje dva spôsoby zoskupovania transakcií okrem účtov:

  • Tagy (#): Použite na udalosti alebo projekty. Môžete napríklad filtrovať všetky transakcie súvisiace s konkrétnou cestou. 2024-07-20 * "Hotel" "Viedeň" #trip-europe-2024
  • Odkazy (^): Použite na prepojenie finančne súvisiacich transakcií, ktoré sa vyskytujú v rôznych časoch, ako je výber hotovosti a súvisiaci bankový poplatok.

Škálovateľná stratégia pre štruktúrovanie súborov (include)

Jeden obrovský súbor sa ťažko spravuje. Použite direktívu include na rozdelenie vašej knihy do viacerých súborov. main.bean:

; Main ledger file
 
; Global options
option "title" "My Personal Ledger"
option "operating_currency" "USD"
 
; Include account declarations and other files
include "accounts.bean"
include "years/2023.bean"
include "years/2024.bean"
include "events/trip-europe-2024.bean"

Robustná organizačná stratégia v poradí priority:

  1. Podľa udalosti: Vytvorte samostatný súbor pre veľkú, samostatnú udalosť (napr. trip-europe-2024.bean).
  2. Podľa kategórie/príjemcu: Pre vysoko pravidelné, opakujúce sa transakcie, ako sú účty za energie alebo plat, ich zoskupte do vlastného súboru (napr. recurring-rent.bean).
  3. Podľa účtu: Pre transakcie úzko spojené s konkrétnym účtom (úroky, poplatky, platby kreditnou kartou) zvážte súbor špecifický pre účet.
  4. Podľa dátumu: Pre všetky ostatné všeobecné transakcie je efektívne jednoduché rozdelenie podľa roku (2024.bean) alebo mesiaca (2024/07.bean).

Časť 8: Záver

Beancount ponúka strmú krivku učenia, ale odmeňuje úsilie bezkonkurenčnou silou, flexibilitou a kontrolou nad vašimi finančnými dátami. Prijatím princípov podvojného účtovníctva a praktických nástrojov, ktoré Beancount poskytuje, sa môžete posunúť od jednoduchého sledovania výdavkov k úplnému, presnému a prehľadnému systému osobného finančného riadenia. Vaša kniha sa stane trvalým, súkromným a neoceniteľným aktívom na pochopenie vašej minulosti a plánovanie vašej budúcnosti.

Začíname s Beancount.io

Beancount.io je moderná cloudová platforma pre finančné riadenie, ktorá transformuje vaše textové záznamy transakcií na komplexné finančné výkazy vrátane výkazov ziskov a strát, súvah a skúšobných bilancií. Kombináciou spoľahlivosti súborov v čistom texte s výkonnými vizualizačnými nástrojmi vám Beancount.io pomáha udržiavať presnú kontrolu nad vaším finančným životom a zároveň získavať cenné poznatky o výkonnosti vašich investícií.

Začnite svoju finančnú cestu s Beancount.io – pozrite si aktuálne plány a ceny pre to, čo jednotlivé úrovne zahŕňajú.

beancount.io dashboard knihy zobrazujúci graf trendu čistej hodnoty, zostatky účtov a lištu AI asistenta

Preskúmajte živú knihu →

Výkaz ziskov a strát verejnej Beancount knihy spoločnosti Apple na beancount.io s grafom čistého zisku a členením príjmov a výdavkov

Preskúmajte živú knihu →

Súvaha verejnej Beancount knihy spoločnosti Apple na beancount.io s grafom čistej hodnoty a detailom aktív a záväzkov

Preskúmajte živú knihu →

Zdroj: https://beancount.io/sk/docs/introduction-to-beancount