Preskočiť na hlavný obsah

Správa zásob v Beancount

Systém správy zásob v Beancount je výkonná funkcia na sledovanie aktív, ktoré sa v priebehu času kupujú a predávajú, ako sú akcie, podielové fondy alebo cudzie meny. Umožňuje presné sledovanie obstarávacej ceny, ktorá je nevyhnutná na výpočet kapitálových ziskov a pochopenie výkonnosti portfólia. Tento tutoriál pokrýva základné mechanizmy správy zásob vo vašej účtovnej knihe.

Základné koncepty

inventories

Základom správy zásob je sledovanie pozícií. "Pozícia" je jednoducho množstvo komodity držanej na účte. Beancount rozlišuje dva základné typy pozícií.

Typy pozícií

  1. Jednoduchá pozícia (bez nákladov): Toto je štandardný zápis zostatku. Predstavuje množstvo komodity bez akýchkoľvek súvisiacich obstarávacích nákladov. Je vhodný pre hotovosť alebo jednoduché potvrdenia zostatku.

    Assets:Bank:Checking      100.00 USD
  2. Pozícia s obstarávacou cenou: Tento typ pozície zahŕňa nielen počet jednotiek a komoditu, ale aj cenu, za ktorú bola získaná. Toto je základ sledovania zásob. Cena je uvedená v kučeravých zátvorkách {}.

    Assets:Invest:VTSAX      10 VTSAX {100.00 USD, "lot-1"}

    V tomto príklade držíme 10 jednotiek VTSAX. Každá jednotka bola získaná za cenu 100,00 USD. Táto konkrétna dávka akcií je identifikovaná ako "lot".

Inventúrne operácie

Existujú dve primárne operácie, ktoré môžete vykonať na inventúre:

  1. Augmentácie (pridávanie do inventúry): Keď si kúpite komoditu, zväčšíte svoju inventúru. Vytvoríte nový lot so špecifickým počtom jednotiek a obstarávacou cenou.

    2024-01-15 * "Buy shares"
    Assets:Invest:STOCK 50 STOCK {25.00 USD, "lot-1"}
    Assets:Bank:Checking -1250.00 USD

    Tu kupujeme 50 jednotiek STOCK za cenu 25,00 USD za jednotku. Tým sa vytvorí lot na účte Assets:Invest:STOCK.

  2. Redukcie (odstraňovanie z inventúry): Keď predáte komoditu, znížite svoju inventúru. Musíte určiť, z ktorého lotu predávate. Urobíte to poskytnutím zodpovedajúcich informácií v kučeravých zátvorkách.

    2024-01-20 * "Sell shares"
    Assets:Invest:STOCK -25 STOCK {25.00 USD}
    Assets:Bank:Checking 625.00 USD

    V tejto transakcii predávame 25 jednotiek STOCK z lotu, ktorý bol zakúpený za 25,00 USD za jednotku.

Metódy účtovania

Keď znižujete inventúru, Beancount potrebuje pravidlo, aby rozhodol, ktorý konkrétny lot použiť, ak sa zhoduje viacero lotov, alebo ak je zhoda nejednoznačná. Toto pravidlo sa nazýva "metóda účtovania". Môžete nastaviť predvolenú metódu pre celý súbor alebo určiť jednu pre každý účet.

1. STRICT (Predvolené)

Metóda STRICT je predvolená a najbezpečnejšia metóda účtovania. Vynucuje explicitné a jednoznačné zhody.

2024-01-01 open Assets:Invest:STOCK "STRICT"
  • Vyžaduje presnú zhodu lotu: Musíte poskytnúť dostatok informácií v redukčnom zápise ({...}), aby ste jednoznačne identifikovali predávaný lot.
  • Chyby pri nejednoznačných zhodách: Ak poskytnuté informácie zodpovedajú viacerým lotom, Beancount vyvolá chybu, čím vás prinúti byť konkrétnejší.
  • Výnimka: Ak redukčný zápis presne odstráni celkový počet jednotiek držaných na účte, je povolený prázdny špecifikátor nákladov ({}).

2. FIFO (First-In, First-Out)

Metóda FIFO automaticky účtuje redukcie oproti najstarším dostupným lotom ako prvým.

2024-01-01 open Assets:Invest:STOCK "FIFO"
  • Automatické riešenie: Rieši nejednoznačnosť výberom najstarších zodpovedajúcich lotov.
  • Chronologické priraďovanie: Toto je bežná účtovná metóda, pri ktorej predpokladáte, že predávate aktíva, ktoré držíte najdlhšie. Toto je požadovaná metóda na daňové účely v mnohých krajinách.

3. LIFO (Last-In, First-Out)

Metóda LIFO je opakom FIFO. Účtuje redukcie oproti najnovším dostupným lotom ako prvým.

2024-01-01 open Assets:Invest:STOCK "LIFO"
  • Reverzné chronologické poradie: Vyberá najnovšie získané loty, ktoré zodpovedajú kritériám redukcie.
  • Daňová optimalizácia: V niektorých jurisdikciách sa táto metóda môže použiť na daňovú optimalizáciu, napríklad predajom akcií s najvyššou obstarávacou cenou ako prvých, aby sa minimalizovali kapitálové zisky.

4. NONE

Metóda NONE úplne zakáže priraďovanie lotov.

2024-01-01 open Assets:Invest:STOCK "NONE"
  • Žiadne priraďovanie lotov: Beancount sa nepokúša priradiť redukcie k augmentáciám.
  • Umožňuje zmiešané znamienka: To umožňuje účtu držať súčasne kladné aj záporné zostatky tej istej komodity. Toto správanie je podobné tomu, ako nástroj Ledger CLI spracováva komodity.

Špecifikácia lotu

"Lot" je špecifický blok komodity získaný v určitom čase a za určitú cenu. Keď vytvoríte alebo znížite pozíciu, môžete podrobne určiť jej atribúty lotu.

Úplná špecifikácia

Pri zväčšovaní inventúry (nákup) môžete určiť až tri atribúty pre lot:

Assets:Invest:STOCK  10 STOCK {
100.00 USD, # Obstarávacia cena (cena za jednotku)
2024-01-15, # Dátum nadobudnutia
"lot-identifier" # Jedinečný reťazcový štítok
}

Aj keď sú všetky tri voliteľné, poskytnutie aspoň obstarávacej ceny je štandardnou praxou.

Metódy priraďovania

Pri znižovaní inventúry (predaj) použijete rovnakú syntax na určenie, z ktorých lotov predávať.

  • Priraďovanie podľa ceny: Toto je najbežnejšia metóda.

    Assets:Invest:STOCK  -5 STOCK {100.00 USD}
  • Priraďovanie podľa dátumu: Ak sú náklady identické, môžete odlíšiť pomocou dátumu nadobudnutia.

    Assets:Invest:STOCK  -5 STOCK {2024-01-15}
  • Priraďovanie podľa štítku: Štítky poskytujú spoľahlivý spôsob identifikácie lotu.

    Assets:Invest:STOCK  -5 STOCK {"lot-identifier"}
  • Priradiť akýkoľvek lot: Prázdna množina zátvoriek {} priradí akýkoľvek dostupný lot. Toto sa často používa s účtovaním FIFO alebo LIFO, kde sa špecifický lot vyberá automaticky.

    Assets:Invest:STOCK  -5 STOCK {}

Manipulácia s cenami

Je dôležité pochopiť rozdiel medzi obstarávacou cenou ({}) a cenou (@). Slúžia na rôzne účely a nie sú zameniteľné.

Cena vs. Náklady

  • {cost}: Definuje obstarávaciu cenu aktíva. Je súčasťou samotného inventúrneho lotu a používa sa na účtovanie redukcií a výpočet kapitálových ziskov.
  • @ price: Anotácia, ktorá zaznamenáva trhovú cenu v čase transakcie. Používa sa na prepočty meny alebo na zaznamenanie trhovej hodnoty v konkrétny deň.

Tu sú tri scenáre:

  1. Cenová anotácia (konverzia): Použite @ na prepočet z jednej meny do druhej.

    Assets:Forex     1000 USD @ 0.85 EUR
  2. Obstarávacia cena (nadobudnutie): Použite {} pri kúpe aktíva na stanovenie jeho nákladov.

    Assets:Invest    10 STOCK {100.00 USD}
  3. Oboje (predaj so záznamom ceny): Pri predaji aktíva použite {} na identifikáciu predávaného lotu a @ na zaznamenanie predajnej ceny. To umožňuje automatizovaný výpočet kapitálových ziskov.

    Assets:Invest    -10 STOCK {100.00 USD} @ 105.00 USD

    Tento záznam predáva 10 STOCK z lotu, ktorý stál 100,00 USD za kus, za predajnú cenu 105,00 USD za kus.

Pravidlá používania cien

  1. Cenové anotácie (@) nemajú vplyv na to, ktorý lot sa účtuje. Priraďovanie lotov sa spracováva výlučne pomocou obstarávacej ceny ({}) a metódy účtovania účtu.
  2. Symbol @ sa používa iba na:
  • Prepočty meny.
  • Zaznamenávanie trhovej hodnoty aktíva v čase transakcie.
  • Poskytovanie predajnej ceny na výpočet kapitálových ziskov.

Konfigurácia

Metódy účtovania môžete konfigurovať globálne alebo pre každý účet zvlášť.

Globálna metóda účtovania

Predvolenú metódu účtovania môžete nastaviť pre celý súbor Beancount pomocou direktívy option.

option "booking_method" "STRICT"

Dostupné možnosti sú "STRICT", "FIFO", "LIFO" a "NONE".

Prepis pre každý účet

Často je užitočné mať rôzne metódy pre rôzne účty. Napríklad môžete chcieť FIFO pre dôchodkový účet, ale STRICT pre zdaňovaný maklérsky účet, aby ste mali istotu, že predávate konkrétne daňové loty. Metódu účtovania môžete nastaviť pri otvorení účtu.

2024-01-01 open Assets:Retirement:401K "FIFO"
2024-01-01 open Assets:Taxable:Stock "STRICT"

Osvedčené postupy

  1. Organizácia inventúry: Ak chcete udržať svoju účtovnú knihu čistú a jednoduchú, dôrazne sa odporúča používať samostatné účty pre každú jedinečnú komoditu, ktorú držíte.

    # DOBRÉ: Samostatné účty podľa komodity
    Assets:Invest:VTSAX ; Iba pozície VTSAX tu
    Assets:Invest:VFIAX ; Iba pozície VFIAX tu

    Vyhnite sa miešaniu rôznych akcií alebo fondov na tom istom účte, pretože to komplikuje správu inventúry.

  2. Správa lotov:

  • Používajte zmysluplné štítky pre loty, najmä pre špecifické transakcie, ako je zber daňových strát alebo zamestnanecké akciové granty.

    Assets:Invest:STOCK  10 STOCK {100.00 USD, "tax-loss-harvest-2024"}
  • Dokumentujte svoje obchody pomocou komentárov. Vďaka tomu bude vaša účtovná kniha neskôr ľahšie čitateľná a zrozumiteľná.

    Assets:Invest:STOCK  -10 STOCK {100.00 USD} @ 110.00 USD ; Zisk: 10%
  1. Ladenie: Ak narazíte na chyby alebo neočakávané správanie, Beancount poskytuje nástroje na kontrolu stavu vašej inventúry.
  • Preskúmajte stav inventúry: Nástroj bean-doctor vám môže ukázať presný stav všetkých inventúr v ľubovoľnom bode vo vašom súbore.

    Nahraďte <LINENO> číslom riadku tesne za transakciou, aby ste videli jej účinok.

  • Overte priraďovanie lotov: Nástroj bean-check overí celý váš súbor. Zachytí všetky chyby účtovania, ako napríklad nejednoznačné zhody lotov v režime STRICT.