Salta al contingut principal

Declara els rols de flux de caixa al teu llibre major: una línia de metadades substitueix la suposició

Publicat 9 minuts de lecturaMike ThriftMike Thrift
Declara els rols de flux de caixa al teu llibre major: una línia de metadades substitueix la suposició

Tot estat de fluxos de caixa es fonamenta en una decisió silenciosa que es pren una vegada per compte: aquest compte forma part de l'efectiu que expliques, o és una activitat d'explotació, d'inversió o de finançament? Encerta aquesta decisió i l'estat et dirà on va anar realment el teu diners. Equivoca't i l'estat serà erròniament convincent.

Fins ara, l'informe de flux de caixa de Beancount.io prenia aquesta decisió per tu amb heurístiques — el tipus d'arrel del compte, més una suposició basada en el nom sobre quins actius compten com a efectiu. Per a la majoria dels llibres majors, la suposició era correcta la major part del temps, i silenciosament errònia la resta. Un compte de corredoria amb un nom incorrecte acabava a la secció equivocada. Un fons del mercat monetari que és efectiu en tots els sentits pràctics seia a Activitats d'Inversió perquè el seu nom no ho deia.

A partir d'avui, pots fer explícita la classificació. Una línia de metadades estàndard de beancount a la directiva open del compte:

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

Una clau, quatre valors — cash, operating, investing, financing — i aquesta és tota la configuració. No hi ha pàgina de configuració, ni fitxer JSON, ni diàleg d'opcions per informe. La propera vegada que es carregui l'informe de flux de caixa, els fluxos del compte de corredoria apareixeran sota Activitats d'Inversió, el compte d'estalvi s'uneix al conjunt d'efectiu el canvi del qual explica l'estat, i tots els altres comptes continuen funcionant exactament com abans.

L'informe de flux de caixa de Beancount.io per al llibre major d'exemple: un gràfic de flux de caixa net mensual sobre taules detallades d'activitats d'explotació i d'inversió.

Què significa cada rol

Un estat de fluxos de caixa classifica cada compte en una de dues funcions, i cash-flow-role respon a totes dues amb una sola paraula:

  • "cash" — el compte pertany al conjunt d'efectiu i equivalents. Els comptes d'efectiu mai apareixen com a partides; l'estat explica el canvi en el seu saldo combinat, i les transferències entre dos comptes d'efectiu es cancel·len, com hauria de passar quan es mou diners del compte corrent a l'estalvi.
  • "operating" / "investing" / "financing" — el compte no és efectiu, i el seu canvi periòdic apareix com a línia sota aquesta secció d'activitat.

Per defecte, l'informe tracta els comptes d'actius els noms dels quals contenen Cash, Checking, Savings o Bank com a equivalents d'efectiu. Declarar un rol anul·la això en ambdues direccions. cash-flow-role: "cash" incorpora un compte que la regla del nom passa per alt — un fons del mercat monetari, un moneder de stablecoin. I cash-flow-role: "investing" a Assets:US:Bank:CD fa dues coses amb una línia: exclou el CD de l'efectiu i el classifica sota inversions, tot i que el seu nom hauria coincidit amb la regla d'efectiu.

Deliberadament hem fet servir una clau en lloc de dues. "Aquest compte és efectiu?" i "a quina secció d'activitat pertany?" mai no van ser preguntes independents — un compte és part del conjunt d'efectiu o pertany exactament a una secció d'activitat. Dues claus haurien permès estats sense sentit, com un compte d'efectiu amb un rol d'activitat. Una clau fa que els estats il·legals siguin irrepresentables, i tota l'especificació cap en un tuit.

La vista Per Activitat de l'informe de flux de caixa, apilant els fluxos d'efectiu d'explotació, inversió i finançament per mes.

La classificació que declares és la classificació que fa servir cada vista. El gràfic Per Activitat apila els fluxos d'explotació, inversió i finançament de cada mes; mou el rol d'un compte, i els seus fluxos es mouen a la capa correcta del gràfic, a la secció correcta de l'estat i a la línia correcta de l'exportació, tot alhora.

El declarat supera l'inferit — i l'informe mostra el que ha fet

La classificació ara es resol en un ordre estricte: primer les teves metadades, segon l'heurística integrada. I l'informe és honest sobre què ha fet. L'estat acaba amb un tauler "Efectiu i equivalents d'efectiu en aquest informe" que llista exactament quins comptes ha tractat com a efectiu en construir les xifres, i després els concilia: efectiu a l'inici del període, efectiu al final del període i el canvi net que expliquen les seccions d'activitat.

El final de l'estat de fluxos de caixa: la conciliació del canvi net en efectiu i equivalents, i el tauler que llista els comptes tractats com a efectiu en construir l'informe.

L'informe també distingeix les classificacions que has declarat de les que ha inferit, i aquesta distinció es trasllada a les exportacions CSV i Markdown: un estat construït enterament amb rols declarats ja no porta la línia de divulgació "classificació inferida", perquè en aquest punt la classificació no és una inferència — és part dels teus llibres.

Els errors de tecleig es gestionen com hauria de fer una eina de text pla. cash-flow-role: "invsting" no s'accepta silenciosament ni s'ignora silenciosament: el compte torna a l'heurística per defecte i el tauler d'estat ho assenyala — "valor de cash-flow-role desconegut, s'utilitza el per defecte" — perquè l'error sigui visible on mires, no enterrat en un registre.

Si no canvies res, res canvia

Els comptes sense anotar utilitzen els mateixos valors per defecte publicats que abans: Ingressos i Despeses es mapen a explotació, actius no monetaris a inversió, passius i patrimoni net a finançament, i els equivalents d'efectiu amb coincidència de nom formen el conjunt d'efectiu. Un llibre major existent es renderitza idènticament abans i després d'aquesta versió. La majoria d'usuaris anotaran un grapat de comptes — aquells on el valor per defecte és incorrecte — i no pensaran mai més en la resta.

La portabilitat també queda intacta. Les metadades a les directives open són sintaxi nucli de beancount, analitzada per tota eina v2/v3 i ignorada per qualsevol cosa que no busqui aquesta clau específica. bean-check passa, Fava s'encongeix d'espatlles i el teu llibre major continua sent totalment utilitzable fora de Beancount.io.

Cada vista del teu efectiu coincideix amb totes les altres

Un resoledor compartit produeix el rol final per a cada compte, i tots els consumidors en llegeixen:

  • L'informe de flux de caixa construeix les seves seccions d'activitat i el seu resultat final — canvi net en efectiu i equivalents — a partir dels rols resolts.
  • Les exportacions CSV, Markdown i d'impressió porten les mateixes xifres, amb la divulgació de classificació inferida només quan s'ha utilitzat realment una heurística.
  • El diagrama de Sankey general llegeix les mateixes declaracions, de manera que un compte que has marcat com a efectiu deixa d'aparèixer com a node de flux, i els teus rols d'activitat declarats es respecten per als comptes no d'ingressos.
  • El tauler d'estat del compte deixa de llistar un compte declarat com a "actiu no classificat".

El diagrama de Sankey general, que dibuixa el flux de diners des dels ingressos a través de l'efectiu fins a categories de despeses, inversions i estalvis — construït sobre les mateixes classificacions de comptes que l'informe de flux de caixa.

No hi ha manera que l'estat i el diagrama discrepin sobre què és el teu efectiu, perquè només hi ha una resposta sobre la qual discrepar.

Per què el llibre major, i no una pàgina de configuració

Aquesta és la part de la versió que ens fa sentir més forts. Vam considerar una interfície de configuració i la vam rebutjar, per tres raons:

  1. El llibre major és la font de veritat. Una classificació que viu en qualsevol altre lloc pot discrepddir dels llibres que descriu. Una classificació que viu a la directiva open viatja amb el compte — a través de reanomenaments, a través de moviments de repositori, a través de cada client que llegeix el fitxer.
  2. El text pla és diferenciable, cercable i revisable. Si mantens el teu llibre major a git — i si fas servir Beancount.io, ho fas — la regla de classificació ara és una cosa que pots grep, diff i blame, i una cosa que un revisor pot veure en una sol·licitud d'extracció. Una pàgina de configuració no és res d'això.
  3. Funciona fora de línia i a tot arreu. Qualsevol editor pot declarar un rol. Qualsevol client futur que llegeixi el llibre major obté la classificació gratuïtament, sense configuracions per client per sincronitzar.

Per la mateixa raó, les classificacions deliberadament no són efectives per data. La metadada descriu la naturalesa del compte, que rarament canvia; quan canvia, edites la directiva open, i el teu historial de git registra què va canviar i quan. Aquest historial és el rastre d'auditoria.

Prova-ho al teu llibre major

La funció s'està desplegant a tots els llibres majors ara. Declarar un rol només requereix un editor de text:

  1. Obre el fitxer on viu la directiva open del compte.
  2. Afegeix cash-flow-role: "cash" (o "operating", "investing", "financing") com a línia de metadades amb indentació a sota.
  3. Recarrega l'informe de flux de caixa. La teva declaració guanya sobre l'heurística immediatament.

Comença amb els comptes on la suposició per defecte és incorrecta — el CD que no és realment efectiu, el fons del mercat monetari que realment ho és, el compte de corredoria que vols netament sota Activitats d'Inversió. Deixa la resta com està. L'especificació completa — valors acceptats, precedència, classificacions per defecte i com es gestionen els valors invàlids — viu a la referència Rols de Flux de Caixa.

L'informe de flux de caixa és part de cada llibre major de Beancount.io, juntament amb l'estat de resultats i el balanç de situació. Si t'estàs posant al dia sobre què més es va llançar aquest estiu — importacions més intel·ligents, un assistent d'IA amb capacitat d'acció i una aplicació mòbil reconstruïda — les notes de la versió 3.6 cobreixen la resta.

Els teus llibres ja sabien quins comptes són inversions i quins són despeses diàries. Ara l'estat de fluxos de caixa també ho sap.

Comparteix aquest article