Preskočiť na hlavný obsah

Deklarujte roly cash flow vo svojej účtovnej knihe: Jeden riadok metadát nahrádza hádanie

已发布 7 minút čítaniaMike ThriftMike Thrift
Deklarujte roly cash flow vo svojej účtovnej knihe: Jeden riadok metadát nahrádza hádanie

Každý výkaz cash flow stojí na tichom rozhodnutí urobenom raz pre každý účet: je tento účet súčasťou hotovosti, ktorú vysvetľujete, alebo ide o prevádzkovú, investičnú či finančnú činnosť? Ak to rozhodnutie urobíte správne, výkaz vám povie, kam vaše peniaze skutočne putovali. Ak ho urobíte zle, výkaz je sebavedomo zavádzajúci.

Doteraz výkaz cash flow v Beancount.io robil toto rozhodnutie za vás pomocou heuristík — koreňového typu účtu plus odhadu na základe názvu, ktoré aktíva sa počítajú ako hotovosť. Pre väčšinu účtovných kníh bol odhad väčšinou správny a zvyšok času ticho nesprávny. Sprostredkovateľský účet pomenovaný nesprávne skončil v nesprávnej sekcii. Peňažný trhový fond, ktorý je hotovosťou v každom praktickom zmysle, sedel v Investičných činnostiach, pretože to jeho názov nepovedal.

Od dnešného dňa môžete klasifikáciu urobiť explicitnou. Jeden riadok štandardných metadát beancount na direktíve open účtu:

2000-01-01 open Assets:US:Brokerage
  cash-flow-role: "investing"
 
2000-01-01 open Assets:US:Marcus:Savings
  cash-flow-role: "cash"

Jeden kľúč, štyri hodnoty — cash, operating, investing, financing — a to je celá konfigurácia. Neexistuje žiadna stránka nastavení, žiadny JSON súbor, žiadne dialógové okno možností pre report. Keď sa výkaz cash flow nabudúce načíta, toky sprostredkovateľského účtu sa objavia pod Investičnými činnosťami, sporiaci účet sa pripojí k hromade hotovosti, ktorej zmenu výkaz vysvetľuje, a každý ostatný účet funguje presne ako predtým.

Výkaz cash flow v Beancount.io pre príkladovú účtovnú knihu: mesačný graf čistého cash flow nad podrobnými tabuľkami prevádzkových a investičných činností.

Čo znamená každá rola

Výkaz cash flow triedi každý účet do jednej z dvoch úloh a cash-flow-role odpovedá na obe jedným slovom:

  • "cash" — účet patrí do hromady hotovosti a ekvivalentov. Hotovostné účty sa nikdy nezobrazujú ako riadkové položky; výkaz vysvetľuje zmenu ich kombinovaného zostatku a prevody medzi dvoma hotovostnými účtami sa vzájomne rušia, tak ako by sa mal pohyb peňazí z bežného na sporiaci účet.
  • "operating" / "investing" / "financing" — účet nie je hotovosťou a jeho zmena za obdobie sa zobrazí ako riadok v príslušnej sekcii činností.

V predvolenom nastavení report považuje majetkové účty, ktorých názvy obsahujú Cash, Checking, Savings alebo Bank, za hotovostné ekvivalenty. Deklarovanie roly to prepisuje v oboch smeroch. cash-flow-role: "cash" pritiahne účet, ktorý názvové pravidlo vynechá — peňažný trhový fond, peňaženku so stablecoinmi. A cash-flow-role: "investing" na Assets:US:Bank:CD robí jedným riadkom dve veci: vylučuje CD z hotovosti a zaraďuje ho pod investície, aj keď by jeho názov spĺňal pravidlo pre hotovosť.

Zámerne sme použili jeden kľúč namiesto dvoch. „Je tento účet hotovosťou?" a „do ktorej sekcie činností patrí?" nikdy neboli nezávislé otázky — účet je buď súčasťou hromady hotovosti, alebo patrí presne do jednej sekcie činností. Dva kľúče by umožňovali nezmyselné stavy, ako napríklad hotovostný účet s rolou činnosti. Jeden kľúč robí nelegálne stavy nereprezentovateľnými a celá špecifikácia sa zmestí do tweetu.

Zobrazenie By Activity výkazu cash flow, ktoré skladá prevádzkové, investičné a finančné toky za každý mesiac.

Klasifikácia, ktorú deklarujete, je klasifikáciou, ktorú používa každé zobrazenie. Graf By Activity skladá prevádzkové, investičné a finančné toky každého mesiaca; zmeňte rolu účtu a jeho toky sa presunú do správnej vrstvy grafu, správnej sekcie výkazu a správneho riadku exportu, všetko naraz.

Deklarované poráža odvodené — a report ukazuje svoju prácu

Klasifikácia sa teraz rieši v prísnom poradí: najprv vaše metadáta, potom zabudovaná heuristika. A report je úprimný o tom, čo urobil. Výkaz končí panelom „Hotovosť a hotovostné ekvivalenty v tomto reporte", ktorý uvádza presne, ktoré účty považoval pri zostavovaní čísel za hotovosť, a potom ich zosúlaďuje: hotovosť na začiatku obdobia, hotovosť na konci obdobia a čistú zmenu, ktorú vysvetľujú sekcie činností.

Koniec výkazu cash flow: zosúladenie čistej zmeny hotovosti a ekvivalentov a panel uvádzajúci účty považované pri zostavovaní reportu za hotovosť.

Report tiež rozlišuje klasifikácie, ktoré ste deklarovali, od klasifikácií, ktoré odvodil, a toto rozlíšenie sa prenáša do exportov CSV a Markdown: výkaz zostavený výlučne z deklarovaných rol už nenesie riadok upozornenia „klasifikácia je odvodená", pretože v tom bode klasifikácia nie je odhad — je súčasťou vašich účtovných kníh.

Preklepy sa spracúvajú tak, ako by ich mal spracúvať nástroj pre čistý text. cash-flow-role: "invsting" nie je ticho prijaté a nie je ticho ignorované: účet sa vráti k predvolenej heuristike a stavový panel to označí — „neznáma hodnota cash-flow-role, používa sa predvolená" — takže chyba je viditeľná tam, kde sa pozeráte, nie pochovaná v logu.

Ak nič nezmeníte, nič sa nezmení

Neanotované účty používajú rovnaké zverejnené predvolené hodnoty ako predtým: Príjmy a Výdavky sa mapujú na prevádzkové, nehotovostné Majetky na investičné, Záväzky a Vlastné imanie na finančné a názvom zhodné hotovostné ekvivalenty tvoria hromadu hotovosti. Existujúca účtovná kniha sa vykresľuje identicky pred aj po tomto vydaní. Väčšina používateľov anotuje niekoľko účtov — tie, kde je predvolené nastavenie nesprávne — a o zvyšok sa už nikdy nestará.

Prenositeľnosť zostáva tiež nedotknutá. Metadáta na direktívach open sú základnou syntaxou beancount, ktorú analyzuje každý nástroj v2/v3 a ignoruje ich čokoľvek, čo tento konkrétny kľúč nehľadá. bean-check prejde, Fava pokrčí plecami a vaša účtovná kniha zostáva plne použiteľná aj mimo Beancount.io.

Každé zobrazenie vašej hotovosti súhlasí s každým iným

Jeden zdieľaný resolver produkuje konečnú rolu pre každý účet a každý spotrebiteľ z neho číta:

  • Výkaz cash flow zostavuje svoje sekcie činností a svoj spodný riadok — čistú zmenu hotovosti a ekvivalentov — z vyriešených rol.
  • Exporty CSV, Markdown a tlač nesú rovnaké čísla, s oznámením o odvodenej klasifikácii len tam, kde sa skutočne použila heuristika.
  • Prehľadový Sankey diagram číta rovnaké deklarácie, takže účet, ktorý ste označili ako hotovosť, prestane byť zobrazený ako uzol toku, a vaše deklarované roly činností sú rešpektované pre nepríjmové účty.
  • Panel stavu účtu prestane uvádzať deklarovaný účet ako „nekvalifikované aktívum".

Prehľadový Sankey diagram, ktorý kreslí tok peňazí z príjmov cez hotovosť do kategórií výdavkov, investícií a úspor — postavený na rovnakých klasifikáciách účtov ako výkaz cash flow.

Neexistuje spôsob, ako by výkaz a diagram nesúhlasili o tom, čo je vaša hotovosť, pretože existuje len jedna odpoveď, o ktorej by mohli nesúhlasiť.

Prečo účtovná kniha, a nie stránka nastavení

Toto je časť vydania, o ktorej sme presvedčení najviac. Zvažovali sme UI nastavení a zamietli sme ho, z troch dôvodov:

  1. Účtovná kniha je zdrojom pravdy. Klasifikácia, ktorá žije kdekoľvek inde, môže nesúhlasiť s knihami, ktoré opisuje. Klasifikácia, ktorá žije na direktíve open, cestuje s účtom — cez premenovania, cez presuny repozitárov, cez každého klienta, ktorý súbor číta.
  2. Čistý text je diffovateľný, grepovateľný a recenzovateľný. Ak držíte svoju účtovnú knihu v gite — a ak používate Beancount.io, držíte — pravidlo klasifikácie je teraz niečo, čo môžete grepovať, diffovať a blamovať, a niečo, čo recenzent vidí v pull requeste. Stránka nastavení nie je žiadnou z týchto vecí.
  3. Funguje offline a všade. Ktorýkoľvek editor môže deklarovať rolu. Ktorýkoľvek budúci klient, ktorý číta účtovnú knihu, dostane klasifikáciu zadarmo, s nulovým počtom nastavení na synchronizáciu.

Z rovnakého dôvodu klasifikácie zámerne nie sú dátumovo účinné. Metadáta opisujú povahu účtu, ktorá sa málokedy mení; keď sa zmení, upravíte direktívu open a vaša git história zaznamená, čo sa zmenilo a kedy. Táto história je auditnou stopou.

Vyskúšajte to na svojej účtovnej knihe

Funkcia sa práve zavádza na všetky účtovné knihy. Deklarovanie roly vyžaduje len textový editor:

  1. Otvorte súbor, kde žije direktíva open účtu.
  2. Pridajte cash-flow-role: "cash" (alebo "operating", "investing", "financing") ako odsadený riadok metadát pod ňu.
  3. Znova načítajte výkaz cash flow. Vaša deklarácia okamžite porazí heuristiku.

Začnite s účtami, kde je predvolený odhad nesprávny — CD, ktoré v skutočnosti nie je hotovosťou, peňažný trhový fond, ktorý ňou skutočne je, sprostredkovateľský účet, ktorý chcete úhľadne pod Investičnými činnosťami. Ostatné nechajte na pokoji. Celá špecifikácia — akceptované hodnoty, priorita, predvolené klasifikácie a spôsob spracovania neplatných hodnôt — žije v referencii Cash-Flow Roles.

Výkaz cash flow je súčasťou každej účtovnej knihy Beancount.io, spolu s výkazom ziskov a strát a súvahou. Ak dobiehate, čo ďalšie vyšlo toto leto — inteligentnejšie importy, AI asistent schopný akcií a prestavaná mobilná aplikácia — poznámky k vydaniu 3.6 pokrývajú zvyšok.

Vaše účtovné knihy už vedeli, ktoré účty sú investíciami a ktoré každodenným míňaním. Teraz to vie aj výkaz cash flow.

Zdieľať tento článok