Systém zásob v Beancount je výkonná funkcia na sledovanie majetku, ktorý sa v priebehu času nakupuje a predáva, 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 hlavnej knihe.
Základné koncepty
V jadre správy zásob ide o sledovanie pozícií. „Pozícia“ je jednoducho množstvo komodity držané na účte. Beancount rozlišuje dva základné typy pozícií.
Typy pozícií
-
Jednoduchá pozícia (bez ceny): Ide o š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é kontrolné súčty zostatkov.
Assets:Bank:Checking 100.00 USD -
Pozícia s obstarávacou cenou: Tento typ pozície zahŕňa nielen počet jednotiek a komoditu, ale aj cenu, za ktorú bola nadobudnutá. To je základom sledovania zásob. Cena sa uvádza v zložený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 nadobudnutá za cenu 100,00 USD. Táto konkrétna dávka akcií je identifikovaná ako „lot“.
Operácie so zásobami
Existujú dve základné operácie, ktoré môžete vykonávať so zásobami:
-
Prírastky (pridávanie do zásob): Keď kúpite komoditu, zvýšite svoje zásoby. Vytvoríte nový lot s konkrétnym počtom jednotiek a obstarávacou cenou.
2024-01-15 * "Kúpa akcií" Assets:Invest:STOCK 50 STOCK {25.00 USD, "lot-1"} Assets:Bank:Checking -1250.00 USDTu nakupujeme 50 jednotiek
STOCKza jednotkovú cenu 25,00 USD. Tým sa vytvorí lot na účteAssets:Invest:STOCK. -
Úbytky (odstraňovanie zo zásob): Keď predáte komoditu, znížite svoje zásoby. Musíte určiť, z ktorého lotu predávate. To sa vykoná poskytnutím zodpovedajúcich informácií v zložených zátvorkách.
2024-01-20 * "Predaj akcií" Assets:Invest:STOCK -25 STOCK {25.00 USD} Assets:Bank:Checking 625.00 USDV tejto transakcii predávame 25 jednotiek
STOCKz lotu, ktorý bol zakúpený za 25,00 USD za jednotku.
Metódy účtovania
Keď znižujete zásoby, Beancount potrebuje pravidlo, ktoré určí, z ktorého konkrétneho lotu sa má odpočítať, 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 ju určiť pre každý účet.
1. STRICT (Prísna) – Predvolená
Metóda STRICT je predvolená a najbezpečnejšia metóda účtovania. Vyžaduje explicitnú a jednoznačnú zhodu.
2024-01-01 open Assets:Invest:STOCK "STRICT"- Vyžaduje presnú zhodu lotu: V zápise úbytku (
{...}) musíte poskytnúť dostatok informácií na jednoznačnú identifikáciu predávaného lotu. - Chyba pri nejednoznačných zhodách: Ak poskytnuté informácie zodpovedajú viacerým lotom, Beancount vyvolá chybu a prinúti vás byť konkrétnejší.
- Výnimka: Ak zápis úbytku presne odstraňuje celkový počet jednotiek držaný na účte, je povolený prázdny špecifikátor ceny (
{}).
2. FIFO (First-In, First-Out) – Prvý dnu, prvý von
Metóda FIFO automaticky účtuje úbytky 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é párovanie: Toto je bežná účtovná metóda, pri ktorej predpokladáte, že predávate majetok, ktorý vlastníte najdlhšie. Toto je vyžadovaná metóda na daňové účely v mnohých krajinách.
3. LIFO (Last-In, First-Out) – Posledný dnu, prvý von
Metóda LIFO je opakom FIFO. Účtuje úbytky oproti najnovším dostupným lotom ako prvým.
2024-01-01 open Assets:Invest:STOCK "LIFO"- Obrátené chronologické poradie: Vyberá najnovšie nadobudnuté loty, ktoré zodpovedajú kritériám úbytku.
- Daňová optimalizácia: V niektorých jurisdikciách možno túto metódu 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 (Žiadna)
Metóda NONE úplne vypína párovanie lotov.
2024-01-01 open Assets:Invest:STOCK "NONE"- Žiadne párovanie lotov: Beancount sa nepokúša párovať úbytky s prírastkami.
- Povoľuje zmiešané znamienka: To umožňuje, aby účet súčasne držal kladné aj záporné zostatky rovnakej komodity. Toto správanie je podobné tomu, ako nástroj Ledger CLI spracováva komodity.
Špecifikácia lotu
„Lot“ je konkrétny blok komodity nadobudnutý v určitom čase a za určitú cenu. Keď vytvárate alebo znižujete pozíciu, môžete podrobne určiť atribúty lotu.
Úplná špecifikácia
Pri zvyšovaní zásob (nákupe) môžete pre lot určiť až tri atribúty:
Assets:Invest:STOCK 10 STOCK {
100.00 USD, # Obstarávacia cena (jednotková cena)
2024-01-15, # Dátum nadobudnutia
"identifikátor-lotu" # Unikátny reťazcový štítok
}Hoci všetky tri sú voliteľné, poskytnutie aspoň obstarávacej ceny je štandardnou praxou.
Metódy párovania
Pri znižovaní zásob (predaji) používate rovnakú syntax na určenie, z ktorého lotu (lotov) predávate.
-
Párovanie podľa ceny: Toto je najbežnejšia metóda.
Assets:Invest:STOCK -5 STOCK {100.00 USD} -
Párovanie podľa dátumu: Ak sú ceny rovnaké, môžete rozlíšiť pomocou dátumu nadobudnutia.
Assets:Invest:STOCK -5 STOCK {2024-01-15} -
Párovanie podľa štítku: Štítky poskytujú spoľahlivý spôsob identifikácie lotu.
Assets:Invest:STOCK -5 STOCK {"identifikátor-lotu"} -
Párovanie s ľubovoľným lotom: Prázdna sada zátvoriek
{}sa bude zhodovať s akýmkoľvek dostupným lotom. Často sa používa s účtovanímFIFOaleboLIFO, kde sa konkrétny lot vyberá automaticky.Assets:Invest:STOCK -5 STOCK {}
Spracovanie cien
Je kľúčové pochopiť rozdiel medzi obstarávacou cenou ({}) a trhovou cenou (@). Slúžia na rôzne účely a nie sú zameniteľné.
Trhová cena vs. obstarávacia cena
{cena}: Definuje obstarávaciu cenu majetku. Je súčasťou samotného lotu zásob a používa sa na účtovanie úbytkov a výpočet kapitálových ziskov.@ cena: Anotácia, ktorá zaznamenáva trhovú cenu v čase transakcie. Používa sa na konverzie mien alebo na zaznamenanie trhovej hodnoty k určitému dátumu.
Tu sú tri scenáre:
-
Anotácia trhovej ceny (konverzia): Použite
@na konverziu z jednej meny na druhú.Assets:Forex 1000 USD @ 0.85 EUR -
Obstarávacia cena (nadobudnutie): Použite
{}pri nákupe majetku na stanovenie jeho obstarávacej ceny.Assets:Invest 10 STOCK {100.00 USD} -
Obe (predaj so záznamom ceny): Pri predaji majetku použite
{}na identifikáciu predávaného lotu a@na zaznamenanie predajnej ceny. To umožňuje automatický výpočet kapitálových ziskov.Assets:Invest -10 STOCK {100.00 USD} @ 105.00 USDTento zápis predáva 10
STOCKz lotu, ktorý stál 100,00 USD za kus, za predajnú cenu 105,00 USD za kus.
Pravidlá používania cien
- Anotácie trhovej ceny (
@) neovplyvňujú, ktorý lot sa zaúčtuje. Párovanie lotov sa riadi výlučne obstarávacou cenou ({}) a metódou účtovania účtu. - Symbol
@sa používa iba na:
- Konverzie mien.
- Zaznamenanie trhovej hodnoty majetku v čase transakcie.
- Poskytnutie predajnej ceny na výpočet kapitálových ziskov.
Konfigurácia
Metódy účtovania môžete nakonfigurovať globálne alebo na základe jednotlivých účtov.
Globálna metóda účtovania
Môžete nastaviť predvolenú metódu účtovania pre celý súbor Beancount pomocou direktívy option.
option "booking_method" "STRICT"Dostupné možnosti sú "STRICT", "FIFO", "LIFO" a "NONE".
Predefinovanie pre jednotlivé účty
Často je užitočné mať rôzne metódy pre rôzne účty. Môžete napríklad chcieť FIFO pre dôchodkový účet, ale STRICT pre sprostredkovateľský účet podliehajúci dani, aby ste zabezpečili predaj konkrétnych daňových lotov. Metódu účtovania môžete nastaviť pri otváraní účtu.
2024-01-01 open Assets:Retirement:401K "FIFO"
2024-01-01 open Assets:Taxable:Stock "STRICT"Osvedčené postupy
-
Organizácia zásob: Aby ste udržali svoju hlavnú knihu čistú a jednoduchú, dôrazne sa odporúča používať samostatné účty pre každú jedinečnú komoditu, ktorú vlastníte.
# DOBRÉ: Samostatné účty podľa komodity Assets:Invest:VTSAX ; Len pozície VTSAX tu Assets:Invest:VFIAX ; Len pozície VFIAX tuVyhnite sa miešaniu rôznych akcií alebo fondov na rovnakom účte, pretože to komplikuje správu zásob.
-
Správa lotov:
-
Používajte zmysluplné štítky pre loty, najmä pre konkrétne transakcie, ako je daňovo-stratový zber alebo zamestnanecké akciové granty.
Assets:Invest:STOCK 10 STOCK {100.00 USD, "tax-loss-harvest-2024"} -
Dokumentujte svoje obchody komentármi. Vďaka tomu bude vaša hlavná kniha neskôr ľahšie čitateľná a pochopiteľná.
Assets:Invest:STOCK -10 STOCK {100.00 USD} @ 110.00 USD ; Zisk: 10%
- Ladenie: Ak sa stretnete s chybami alebo neočakávaným správaním, Beancount poskytuje nástroje na kontrolu stavu vašich zásob.
-
Skontrolovať stav zásob: Nástroj
bean-doctorvám môže ukázať presný stav všetkých zásob v akomkoľvek bode vášho súboru.Nahraďte
<LINENO>číslom riadku tesne po transakcii, aby ste videli jej účinok. -
Overiť párovanie lotov: Nástroj
bean-checkvaliduje celý váš súbor. Zachytí všetky chyby účtovania, ako napríklad nejednoznačné zhody lotov v režimeSTRICT.