Salta al contingut principal

Configuracions i complements de la comunitat Beancount

Explora configuracions reals de comptabilitat amb Beancount de la comunitat: complements, fluxos de treball amb Fava

Configuracions reals de Beancount al món real

Introducció​

Beancount és un sistema de comptabilitat en text pla versàtil, i els seus usuaris l'han modelat per adaptar-lo a una àmplia gamma de necessitats del món real. En aquesta mostra de la comunitat, presentem exemples anonimitzats de com diferents persones estructuren i utilitzen els seus fluxos de treball comptables amb Beancount – des de freelancers i propietaris de petites empreses fins a entusiastes de les finances personals. Aquests exemples destaquen pràctiques creatives com etiquetar transaccions amb metadades, automatitzar les actualitzacions del llibre major amb scripts personalitzats, gestionar múltiples divises, fer pressupostos i previsions, i ampliar Beancount amb connectors o integracions (com ara la interfície web Fava). L'objectiu és inspirar i informar comptables, desenvolupadors i usuaris amb coneixements financers sobre què és possible amb el sistema flexible de Beancount.

Per a visions generals actualitzades del mateix clúster d'eines, vegeu Beancount v3: Què hi ha de nou?, Connectors natius essencials de Beancount que hauríeu de conèixer, L'ecosistema Beancount i L'avantatge tècnic de Beancount.

Compte de resultats del llibre major públic d'Apple a beancount.io amb gràfic de benefici net i desglossaments d'ingressos i despeses

Interfície d'exemple: Molts usuaris de Beancount confien en Fava – un tauler web de codi obert – o l'equivalent allotjat a beancount.io per visualitzar les seves finances. Aquestes eines converteixen un llibre major de Beancount en informes i gràfics interactius. Per exemple, aquesta vista de Compte de resultats desglossa ingressos i despeses per categoria al llarg del temps, oferint una visió ràpida d'on ve i on va els diners. Els usuaris poden filtrar aquesta vista per temps, compte o etiquetes per aprofundir en projectes o períodes específics. Aquestes visualitzacions ajuden a fer les dades en text pla més accessibles, permetent als usuaris detectar tendències i anomalies d'un cop d'ull.

Cada configuració de Beancount és única, però emergeixen temes comuns. A continuació, aprofundim en tres escenaris – un freelancer, un propietari de petita empresa i un usuari avançat de finances personals – per veure com organitzen els seus comptes i aprofiten les funcions de Beancount. Tots els detalls personals s'han eliminat o generalitzat, centrant-nos només en tècniques i configuracions.

Freelancer: Etiquetatge de Projectes i Seguiment de Factures​

El nostre primer exemple és un consultor autònom que utilitza Beancount com a columna vertebral de les finances del seu negoci. El llibre major d'aquest freelancer està organitzat per fer el seguiment d'ingressos i despeses per projecte i per gestionar factures de múltiples clients. Ha configurat comptes dedicats per a Comptes a cobrar (A/R) sota Actius per a cada client, cosa que ajuda a separar qui deu què. Quan completa un projecte i factura un client, registra una transacció que debita el compte A/R del client i acredita un compte d'ingressos. Per exemple, una factura nova es podria registrar com:

2025-08-01 * "Project X Completed" ^INV-0001
    Assets:AccountsReceivable:ClientA   5,000 USD
    Income:Consulting                   -5,000 USD

Aquí la notació ^INV-0001 és un enllaç (una funció de metadades integrada de Beancount) utilitzat per etiquetar aquesta transacció amb el número de factura. Quan el client paga part o la totalitat d'aquesta factura, la transacció de pagament inclou el mateix enllaç ^INV-0001, que vincula les dues entrades. Aquest enllaç facilita l'assignació de pagaments a factures específiques i veure els saldos pendents. Com va explicar un membre de la comunitat, es poden utilitzar aquestes etiquetes o enllaços per marcar pagaments parcials – per exemple, un pagament de $20 contra una factura de $30 – tant a l'entrada de la factura com a l'entrada del pagament. Consultant el llibre major per aquest enllaç de factura, el freelancer pot veure instantàniament quant s'ha pagat de la factura i què queda obert.

A més dels enllaços, el freelancer utilitza intensament les etiquetes per a la categorització. Les etiquetes a Beancount són etiquetes prefixades amb # que poden marcar transaccions per filtrar-les posteriorment. Aquest usuari etiqueta cada despesa facturable a un client amb el codi del projecte, com ara #ProjectX, i etiqueta les despeses reemborsables amb #Reimbursable. Per exemple, si compra bitllets d'avió per a un projecte de client, l'entrada de despesa podria incloure #ProjectX #Reimbursable. Aquesta pràctica permet generar informes per projecte o client filtrant per etiquetes. Després d'un projecte, el freelancer pot executar una consulta per llistar totes les despeses #Reimbursable d'aquest projecte i assegurar-se que factura el client per cadascuna. Un usuari de Beancount va assenyalar que etiquetar les despeses dels viatges de feina va ajudar a detectar les que no s'havien reemborsat – idealment, les despeses d'un viatge de feina sumen $0 quan es reben tots els reemborsaments del client. Això posa de manifest com l'etiquetatge, combinat amb les capacitats de consulta de Beancount, proporciona una capa addicional de supervisió per als freelancers que gestionen despeses facturables.

Per gestionar l'estat dels pagaments pendents, el nostre freelancer utilitza una convenció especial per als comptes a cobrar pendents. Aplica l'etiqueta #UNRESOLVED a qualsevol transacció de factura que encara no s'hagi pagat completament. Beancount (i Fava) no imposen aquesta etiqueta, però és un patró establert per la comunitat per marcar transaccions pendents de liquidació. Per exemple, fins que el Client A pagui els $5.000 complets, la transacció de factura anterior inclouria #UNRESOLVED. Filtrant per aquesta etiqueta, el freelancer pot llistar totes les factures obertes en qualsevol moment. Un cop rebut i aplicat el pagament (s'introdueix la transacció A/R corresponent), eliminen o ignoren l'etiqueta #UNRESOLVED, i el compte a cobrar d'aquest client quedarà a zero. Aquest sistema assegura que cap factura "caigui pel camí". És essencialment un informe de venciment fet en text pla – si un compte A/R roman no zero i etiquetat com a no resolt, necessita atenció.

Com que els freelancers sovint treballen amb múltiples mètodes de pagament i de vegades múltiples divises, la configuració de Beancount ho accommoda perfectament. En el nostre exemple, el consultor podria facturar alguns clients en USD i d'altres en EUR. La gestió multidivisa és senzilla a Beancount: qualsevol compte pot contenir múltiples mercaderies (les divises es tracten com a mercaderies). El freelancer pot mantenir subcomptes separats per a cada divisa (per exemple, Assets:AccountsReceivable:ClientA:EUR vs ...:USD), o simplement registrar transaccions en la divisa adequada sota el mateix compte. Beancount farà el seguiment dels saldos per divisa automàticament. Un usuari va destacar com n'és de bo que "Beancount pot fer el seguiment de quantitats en qualsevol divisa, ja sigui USD o un símbol borsari", tot en un sol llibre major. El nostre freelancer aprofita això registrant tipus de canvi amb directives price sempre que necessita convertir divises per als informes. Pot generar un informe d'ingressos convertit a la seva divisa local un cop ha introduït els tipus de canvi periòdics o els preus de mercat.

Finalment, aquest freelancer integra el seu llibre major de Beancount amb eines pràctiques per agilitzar el seu flux de treball. Per exemple, adjunta còpies PDF de cada factura al llibre major utilitzant metadades de documents. Una entrada típica de pagament de factura podria ser així:

2025-08-30 * "ClientA" "Payment for INV-0001" ^INV-0001
    Assets:Bank:Checking       5,000 USD
    Assets:AccountsReceivable:ClientA  -5,000 USD
    document: "Invoices/ClientA/INV-0001.pdf"

La directiva document o les metadades de Beancount permeten associar fitxers amb entrades, i Fava mostrarà un enllaç per a aquests adjunts. Això significa que el freelancer (o el seu comptable) pot fer clic directament des de l'informe del llibre major per veure el PDF original de la factura, assegurant un accés fàcil a la documentació de suport. El freelancer també utilitza els informes de Fava per supervisar el seu negoci: filtrant el Compte de resultats o el Balanç per client, pot veure la rendibilitat per client i comprovar que tots els projectes estan pagats. En resum, el sistema Beancount d'aquest freelancer demostra un ús intensiu d'etiquetatge i enllaços per gestionar la comptabilitat basada en projectes. Converteix un llibre major en text pla en una robusta eina de comptabilitat per a freelancers, amb visibilitat clara sobre les despeses de projecte, els ingressos multidivisa i els estats de les factures.

Pràctiques clau a la configuració del freelancer: Utilitzar etiquetes per agrupar transaccions per projecte o propòsit, enllaçar factures i pagaments amb identificadors únics, marcar comptes a cobrar pendents amb una etiqueta #UNRESOLVED, adjuntar documents de factures a les entrades del llibre major com a referència, i aprofitar el suport multidivisa de Beancount per facturar clients internacionals sense complicacions. Tot això s'aconsegueix amb entrades en text pla més unes quantes eines d'ajuda, mostrant el poder de les metadades a Beancount.

Petita empresa: Automatització i comptabilitat multimoneda​

A continuació, veiem un propietari de petita empresa – concretament el fundador d'una startup – que va adoptar Beancount per portar els llibres de l'empresa. Les petites empreses tenen necessitats similars a les dels freelancers (factures, despeses, multidivisa) però sovint a una escala més gran i amb més èmfasi en l'automatització, la consistència i la col·laboració. En aquest cas, el fundador era tècnicament expert i va construir un flux de treball de Beancount altament automatitzat per minimitzar la comptabilitat manual. Després d'avaluar programari comptable tradicional com QuickBooks, va optar per l'enfocament de text pla de Beancount per mantenir el control total de les dades. Al llarg d'uns quants anys, va desenvolupar iterativament eines personalitzades per aconseguir un procés de comptabilitat automatitzat al 95%.

Importacions i conciliació automatitzades: Un dels primers reptes va ser importar transaccions de diverses fonts (comptes bancaris, targetes de crèdit, processadors de pagament) al llibre major. En lloc d'escriure cada transacció, aquest usuari va configurar scripts d'importació per obtenir i traduir dades al format de Beancount. Va escriure importadors personalitzats en Python per a cada format CSV o API d'institució financera, de manera que amb una sola comanda pot obtenir noves transaccions i afegir-les al llibre major. Per exemple, utilitzant importadors beangulp, el fundador pot executar un script que escaneja una carpeta de descàrregues per detectar nous extractes i els genera com a entrades de Beancount. Un altre usuari, Rhyd Lewis, va descriure una configuració similar on té scripts importadors separats per a cada banc i els pot invocar mitjançant una comanda simple (utilitzant un Justfile) per actualitzar el seu llibre major. El nostre propietari de petita empresa fa el mateix – totes les transaccions bancàries, els pagaments amb targeta de crèdit i fins i tot les transaccions de PayPal o Stripe s'obtenen i s'afegeixen automàticament als llibres, categoritzades amb els comptes adequats.

Per garantir la integritat de les dades fins i tot quan aquestes entrades s'afegeixen automàticament, validen el llibre major abans de cada commit i utilitzen connectors de Beancount. Per exemple, el connector beancount.plugins.noduplicates està activat per evitar importar accidentalment la mateixa transacció dues vegades, i beancount.plugins.nounused assenyala qualsevol compte que no tingui entrades (útil per netejar comptes obsolets). Recomanem bea check per a aquesta etapa de validació. El fundador també utilitza un formatador de la comunitat (com ara beancount-black) per mantenir el fitxer del llibre major amb un estil consistent. Això és important perquè, amb moltes edicions automatitzades, tenir un estil uniforme facilita les diferències i les auditories. De fet, el fundador manté el llibre major en un repositori Git, tractant les actualitzacions del llibre major com a canvis de codi. Cada nou lot de transaccions importades es converteix en un commit de Git, i poden revisar les diferències per veure què ha canviat. En una captura de pantalla, mostren un historial de Git on una transacció de targeta de crèdit per a "Costco" passa d'un estat pendent a liquidat al llibre major, tot sense intervenció manual. El control de versions proporciona un rastre d'auditoria: poden veure exactament quan es va afegir o modificar una transacció i fins i tot revertir canvis si alguna cosa es va importar incorrectament. Aquest és un gran exemple de portar les millors pràctiques de desenvolupament de programari (com el control de codi font) als registres comptables.

Transaccions multidivisa i internacionals: Les petites empreses sovint fan transaccions en múltiples divises – per exemple, una startup pot tenir despeses en USD però també rebre pagaments en EUR o tenir un compte bancari en GBP. La nostra empresa de mostra utilitza les funcions multidivisa de Beancount per consolidar-ho tot en un sol llibre major. Van obrir comptes separats per a cada divisa (per exemple, Assets:Bank:Checking:USD i Assets:Bank:Checking:EUR), que és un enfocament comú. Tanmateix, fins i tot si diferents divises comparteixen un compte, Beancount farà el seguiment del saldo de cada divisa per separat i exigirà que les transaccions quadrin per divisa. El fundador executa freqüentment informes de valoració per veure els saldos totals de l'empresa convertits a la divisa base. Com que Beancount admet consultes de preus, va configurar fluxos diaris de preus per als tipus de canvi de divises (i preus d'accions per a qualsevol inversió) utilitzant un script programat d'obtenció de cotitzacions. El resultat és que en qualsevol moment pot generar un balanç en, per exemple, USD que inclogui el compte en EUR traduït al tipus més recent. Els membres de la comunitat assenyalen que gestionar múltiples divises en comptabilitat d'estil llibre major és senzill – només cal afegir transaccions en la divisa donada i registrar els tipus de canvi segons calgui. Per exemple, un usuari va compartir un exemple de conversió d'USD a EUR a CAD a través de comptes intermediaris com a manera de gestionar conversions de divises a Beancount. En el nostre cas, la petita empresa no necessàriament converteix divises en les transaccions (les manté en la divisa nativa) sinó que utilitza informes per consolidar. Aquesta flexibilitat ha estat crucial a mesura que la startup s'ha expandit globalment.

Scripts i extensions personalitzats: No tot el que necessitava el fundador estava disponible de sèrie, així que va ampliar Beancount amb connectors personalitzats. Amb el temps, va acabar escrivint una biblioteca d'anàlisi sintàctica, una eina de formatació i un importador de transaccions basat en regles, publicant molts d'aquests com a paquets de codi obert. Per exemple, van construir un motor d'importació basat en regles que utilitza una configuració YAML per categoritzar transaccions automàticament. Un fragment d'aquesta configuració mostra com beneficiaris o descripcions específics (com "Comcast" o "PG&E") es mapen a certs comptes de despeses i narracions, de manera que quan apareixen en un flux bancari, es genera l'entrada de Beancount correcta sense edició manual. Això és essencialment una automatització personalitzada per aplicar regles comptables (per a serveis públics, subscripcions, etc.) sobre la marxa. Un altre connector assegura que el llibre major sempre es mantingui equilibrat i formatat. Totes aquestes eines s'executen com a part del flux de treball del fundador sempre que s'ingereixen noves dades. El resultat és un llibre major que "s'actualitza sol" amb una intervenció mínima, cosa que el fundador diu que li aporta "pura alegria" com a desenvolupador obsessionat amb l'automatització.

La seguretat i l'accessibilitat també eren preocupacions. El fundador volia que el seu equip financer (i fins i tot la seva parella, actuant com a supervisor) pogués veure els llibres fàcilment. Per això, va configurar un desplegament privat de Fava al núvol. Cada vegada que envia un nou commit del llibre major al repositori privat de Git, un pipeline de CI (utilitzant GitHub Actions i AWS Elastic Beanstalk) desplega una instància actualitzada de Fava. La interfície web està protegida amb contrasenya (utilitzant un proxy Nginx amb autenticació bàsica), de manera que només les persones autoritzades la poden veure. D'aquesta manera, els estats financers més recents sempre estan disponibles a través d'un tauler al navegador, sense necessitat d'instal·lar res localment. El diagrama d'arquitectura següent il·lustra aquesta configuració: el fitxer de Beancount i la configuració necessària s'empaqueten en una imatge de Docker juntament amb Fava, i es serveixen a AWS, amb Cloudflare al davant per a la seguretat.

flowchart LR
    A[Edit ledger locally] --> B[Push to private Git repo]
    B --> C[CI builds Docker image<br/>Fava + Nginx basic auth]
    C --> D[Deploy to AWS<br/>Elastic Beanstalk]
    D --> E[Cloudflare proxy]
    E --> F[Owner & team view<br/>reports in browser]

Automatitzar Beancount al núvol: l'usuari actualitza el fitxer del llibre major localment i l'envia a Git; es construeix i es desplega un contenidor de Docker (incloent Fava i Nginx per a l'autenticació) en un servidor AWS Beanstalk, i Cloudflare actua com a proxy. El resultat és un portal web segur on les dades financeres de la petita empresa es poden consultar des de qualsevol lloc (pel propietari o l'equip) en temps real. Aquesta configuració avançada demostra com una petita empresa pot integrar Beancount amb eines modernes del núvol per aconseguir comoditat sense renunciar a la propietat de les dades.

En l'ús diari, l'enfocament del propietari de la petita empresa està en la gestió d'excepcions més que en l'entrada de dades. Cada mes, revisa breument les transaccions importades automàticament (utilitzant les diferències de Git o la vista de diari de Fava) per detectar qualsevol entrada no categoritzada o incorrecta. També utilitza les asserccions de saldo de Beancount per conciliar comptes. Per exemple, després d'introduir totes les transaccions de juny, pot afegir una comprovació de saldo per confirmar que el saldo final del compte bancari coincideix amb l'extracte; si no, Beancount donarà error, indicant que falta alguna cosa o s'ha introduït malament. Això assegura que els llibres es mantinguin precisos.

Pràctiques clau a la configuració de la petita empresa: Automatització intensiva mitjançant importadors i scripts personalitzats (fent que el llibre major sigui "95% automàtic"), ús del control de versions per a rastres d'auditoria i col·laboració, comptabilitat multidivisa amb fluxos de preus per a la valoració, i desplegament de Fava per a un accés fàcil i compartible als informes financers. L'escenari de la petita empresa mostra fins on es pot portar Beancount amb esforç d'enginyeria – convertint la comptabilitat en un pipeline en gran part automatitzat mentre es preserva la transparència i la flexibilitat. Fins i tot si no ets programador, molts d'aquests beneficis es poden aconseguir utilitzant connectors de la comunitat (per a formatació, detecció de duplicats, etc.) i adoptant el flux de treball en text pla que fomenta revisions i còpies de seguretat freqüents.

Aficionat a les Finances Personals: Pressupost i Anàlisi Personalitzada​

La nostra darrera mostra és un entusiasta de les finances personals – algú que utilitza Beancount per gestionar les finances domèstiques i les inversions amb un alt nivell de detall. Aquest usuari tracta les seves finances personals amb el rigor d'un comptable i la curiositat d'un analista de dades. El resultat és un llibre major de Beancount que no només fa el seguiment de cada cèntim, sinó que també serveix de base per a pressupostos, previsions i experiments analítics.

Organitzar el llibre major personal: Moltes persones comencen amb un sol fitxer de Beancount per a tots els seus comptes, i aquest entusiasta no és diferent. Manté un llibre major mestre (per exemple, main.beancount) que inclou tots els comptes (comptes bancaris, targetes de crèdit, préstecs, carteres d'inversió, etc.) i transaccions. Amb el temps, va introduir una mica d'estructura dividint seccions – per exemple, té un fitxer per a l'obertura/tancament de comptes i fitxers separats per a transaccions anuals – que s'inclouen al fitxer principal. Aquesta organització modular facilita la navegació per anys de dades (es poden arxivar anys antics en fitxers separats) mentre que segueix sent lògicament un sol llibre major. Un altre usuari personal al fòrum de la comunitat va descriure una disposició similar: un fitxer principal que n'inclou d'altres per categoria (per exemple, Income.beancount, Expenses.beancount, Investments.beancount). El nostre entusiasta ho manté senzill per ara: un fitxer sincronitzat entre dispositius.

Parlant de sincronització, com que són finances personals, aquest usuari vol capturar transaccions allà on sigui. Utilitza una aplicació mòbil anomenada Beancount Mobile per afegir entrades ràpidament sobre la marxa (per exemple, registrar una despesa en efectiu just a la botiga). El fitxer del llibre major es comparteix mitjançant una sincronització al núvol (Syncthing, en aquest cas) de manera que el seu telèfon, ordinador portàtil i un VPS (servidor) tenen tots la còpia més recent. En un ordinador, prefereixen utilitzar Emacs amb beancount-mode per a una edició còmoda amb ressaltat de sintaxi. Aquesta configuració assegura que tant si estan a l'escriptori com de viatge, poden registrar transaccions immediatament i evitar oblidar res. És un gran exemple d'adaptar eines tecnològiques per a la comoditat personal – construint efectivament una alternativa autoallotjada a les aplicacions comercials de pressupostos.

Etiquetatge i metadades per a un seguiment granular: Aquest usuari aprofita les etiquetes per afegir una segona dimensió a les seves dades més enllà del pla de comptes. Per a categories de pressupost regulars, els comptes són suficients (tenen comptes com Expenses:Groceries, Expenses:Rent, etc.), però per a temes transversals com esdeveniments o objectius, utilitzen etiquetes. Per exemple, etiqueten totes les transaccions relacionades amb el seu projecte de renovació de la llar amb #HomeReno, ja sigui comprar fusta en una ferreteria (despesa) o rebre un reemborsament d'un fabricant (ingrés). D'aquesta manera, poden generar un informe del cost total del projecte fàcilment sense que aquestes despeses quedin aïllades sota diferents comptes. Un usuari de Reddit va demostrar aquest enfocament etiquetant despeses com #garage-improvement o #lighting-improvement per a projectes de la llar, fent trivial filtrar-les i sumar-les mitjançant les consultes de Beancount. El nostre entusiasta fa el mateix per a vacances (#ItalyTrip2025), compres importants i esdeveniments puntuals.

Les metadades (parells clau-valor a les transaccions) també s'utilitzen per a alguns propòsits específics. Per exemple, afegeixen una metadada location: ... a les despeses grans per fer el seguiment d'on van gastar els diners, o una note: ... per a context addicional més enllà del beneficiari i la narració. En alguns casos, fins i tot van crear camps de metadades personalitzats per ajudar amb la previsió. Un exemple és afegir budget: X i frequency: monthly a certes despeses recurrents – una idea inspirada en una discussió a la llista de correu de Beancount on un usuari emmagatzemava projeccions de pressupost a les metadades de cada despesa. Aquests camps de metadades no afecten el nucli de Beancount, però l'entusiasta va escriure un petit script en Python que els llegeix i compara la despesa real amb el pressupost projectat. Aquesta és una alternativa a utilitzar els pressupostos integrats de Fava (descrits a continuació), mostrant com les metadades es poden adaptar a la voluntat de l'usuari. Com va assenyalar el creador de Beancount, les metadades "només hi són per a tu [per utilitzar-les en scripts personalitzats] – Beancount les analitza però les ignora" per si mateixes. En resum, aquest usuari no té por d'ampliar el llibre major amb informació addicional per ajudar la seva anàlisi personal.

Fer pressupostos amb Beancount: Un dels principals objectius d'aquest usuari és mantenir-se dins d'un pressupost mensual. Anteriorment utilitzaven una aplicació de pressupostos (YNAB) i volien replicar alguns dels seus conceptes de pressupost per sobres. Hi ha unes quantes maneres de fer pressupostos a Beancount, però la més fàcil és utilitzar les directives de pressupost de Fava. El nostre entusiasta afegeix entrades budget al llibre major així:

2025-01-01 custom "budget" Expenses:Groceries   "monthly" 500 USD
2025-01-01 custom "budget" Expenses:DiningOut   "monthly" 200 USD
2025-01-01 custom "budget" Expenses:Travel      "yearly" 3000 USD

Cada línia estableix un pressupost per a un compte (categoria) durant un període. Llavors Fava mostra barres de pressupost vs real a la interfície web, permetent a l'usuari veure, per exemple, que ha gastat 480 USD en Queviures aquest mes dels 500 pressupostats, i potser 220 en Restaurants (per sobre del pressupost). L'entusiasta consulta regularment els informes de Compte de resultats i Despeses de Fava, que mostren tant els totals mensuals com els objectius pressupostaris. Fava convenientment acumula els pressupostos diaris/setmanals en els intervals de temps adequats. Utilitzant la interfície de Fava per a això, l'usuari no necessita un full de càlcul separat per als pressupostos; tot està integrat. (També van experimentar amb un sistema de "sobress" més automatitzat movent fons a comptes ficticis a l'inici de cada mes, com es va suggerir als fòrums, però van trobar que les directives de pressupost personalitzades eren més senzilles de mantenir.)

Per a la previsió, més enllà dels pressupostos, estan atents a les factures properes. Alguns membres de la comunitat han construït connectors per generar transaccions futures per a subscripcions o calendaris d'amortització de préstecs, però aquest usuari va optar per un enfocament més senzill: mantenen una secció separada del llibre major amb transaccions amb data futura per a elements coneguts (com el lloguer del mes vinent, o un proper pagament anual d'assegurança). Aquestes romanen al llibre major però no afecten els saldos d'avui, i un cop arriba la data i la transacció esdevé actual, serveix com a recordatori (i ajustaran l'import si cal per coincidir amb el càrrec real). És una mica un pedaç, però funciona per preveure el flux de caixa sense eines complexes.

Seguiment d'inversions i comptabilitat multi-mercaderia: Com a entusiasta de les finances, aquest usuari també utilitza Beancount per consolidar comptes d'inversió – accions, fons d'inversió i cripto – juntament amb comptes d'efectiu. Tenen comptes de corretatge les participacions dels quals (per exemple, accions d'AAPL, GOOG, etc.) es registren a Beancount com a mercaderies. Per exemple, comprar 10 accions d'Apple seria una entrada que acredita l'efectiu del corretatge i debita un compte d'actius amb 10 AAPL com a import de mercaderia. La capacitat de Beancount de gestionar qualsevol mercaderia és molt útil aquí; es poden barrejar divises i accions lliurement. "Beancount pot fer el seguiment de quantitats en qualsevol divisa, ja sigui USD o un símbol borsari", com va assenyalar un usuari, cosa que va ser una gran millora respecte a les aplicacions de finances personals que sovint no admeten bé les posicions en accions. El nostre entusiasta utilitza una tasca cron nocturna per obtenir els últims preus de mercat de tots els seus valors i divises estrangeres. Cada nit a les 4 del matí, un script obté preus (de Yahoo Finance o una altra font) i afegeix registres de preus al llibre major per a aquell dia. D'aquesta manera, la propera vegada que obren Fava o executen un informe, poden veure valors de cartera actualitzats i fins i tot el rendiment de les inversions al llarg del temps. Tot el patrimoni net, a través de comptes bancaris, fons de jubilació i carteres cripto, està disponible en una vista unificada. Això és un somni per a un inversor guiat per dades: no cal iniciar sessió en múltiples plataformes per veure el panorama complet. Han construït essencialment un tauler financer personal impulsat per Beancount.

Anàlisi i integració: El que realment distingeix aquest usuari avançat de finances personals és com analitzen les dades un cop són a Beancount. Amb totes les transaccions en una base de dades SQLite (Beancount pot consultar dades mitjançant el seu llenguatge de consulta integrat, que és similar a SQL), l'usuari pot fer anàlisis personalitzades. Van escriure scripts en Python per respondre preguntes com "Quina és la mitjana mòbil de 3 mesos de la meva despesa en queviures?" o "Com es compara la despesa d'aquest any en serveis públics amb la de l'any passat?" Un script consulta el llibre major per etiquetes específiques i genera resultats en un dataframe de Pandas per a més càlculs. Com que el llibre major és text pla, també han utilitzat quaderns de Jupyter per experimentar amb diferents visualitzacions (més enllà del que ofereix Fava). Per exemple, van produir un gràfic de barres personalitzat de la taxa d'estalvi mensual utilitzant Matplotlib agregant dades de Beancount en Python. Aquest tipus d'anàlisi ad-hoc només és possible perquè Beancount manté les dades accessibles i llegibles per màquina. Com va dir un usuari, extreure dades és trivial – "Tinc un script de Python que extreu dades de Beancount utilitzant el llenguatge de consulta, i després utilitzo un dataframe de pandas per preparar les dades en un informe". El nostre entusiasta té un repositori de petits scripts com aquest que executen per a la seva revisió financera anual.

És clar, no tot requereix programació – la major part del temps, confien en els gràfics integrats de Fava. Fava proporciona un gràfic de línies de patrimoni net, una tendència d'ingressos vs despeses, i fins i tot un desglossament en treemap (com es va mostrar abans) que estan a només un clic de distància. L'usuari aprecia que tot l'historial de les seves finances des del 2018 sigui consultable i auditable. Per exemple, si es pregunten "quant he gastat en reparacions del cotxe en els últims 5 anys", poden escriure una consulta ràpida o filtrar a Fava per obtenir la resposta, en lloc de rebuscar entre rebuts. Aquest empoderament és exactament el que els va atraure a Beancount: plena propietat de les dades i flexibilitat infinita en l'anàlisi. Com a bonus, el llibre major en text pla està preparat per al futur – es pot controlar per versions, migrar o fins i tot analitzar amb altres eines si cal. A diferència d'una aplicació de codi tancat, no hi ha risc de perdre l'accés al seu historial financer.

Pràctiques clau a la configuració personal: Utilitzar eines mòbils i d'escriptori per a una entrada de dades còmoda, utilitzar etiquetes i metadades personalitzades per fer el seguiment d'esdeveniments vitals i agrupacions transversals, implementar pressupostos mitjançant les directives budget de Fava per a objectius de despesa continus, fer el seguiment d'inversions i múltiples divises al mateix llibre major (amb actualitzacions automàtiques de preus), i realitzar anàlisis personalitzades consultant directament les dades del llibre major. Aquest cas mostra que amb una mica de configuració, fins i tot els entusiastes de les finances personals poden aconseguir un nivell d'informació i control típicament reservat a les empreses – tot mantenint-ho divertit i atractiu per a un usuari amb coneixements tecnològics.

Per a l'equivalent allotjat dels scripts d'obtenció de preus d'aquests exemples, utilitzeu Preus en directe. Trieu actius compatibles i una divisa de valoració, i després afegiu els includes generats al vostre llibre major allotjat. Les configuracions locals de Fava encara necessiten fitxers de preus locals. Els preus automàtics actualitzen les dades de valoració; no canvien les transaccions ni els costos dels lots en aquestes configuracions.

Conclusió​

A través d'aquests exemples de la comunitat, un tema clar és que la flexibilitat de Beancount permet un sistema comptable altament personalitzat. Els usuaris avançats de la comunitat han aprofitat fitxers de text simples per construir solucions que rivalitzen amb el programari comercial en capacitat, però adaptades a mida als seus fluxos de treball. Els freelancers etiqueten i enllacen entrades per gestionar projectes de clients i factures amb facilitat. Els propietaris de petites empreses automaticen amb scripts les tasques tedioses de comptabilitat i integren Beancount amb infraestructura moderna per tenir finances sempre actualitzades. Els entusiastes de les finances personals utilitzen el llibre major com a única font de veritat per a pressupostos, inversions i presa de decisions, augmentant-lo amb etiquetes i eines per respondre virtualment qualsevol pregunta sobre els seus diners. Tot això s'aconsegueix mentre es mantenen els avantatges principals de la comptabilitat en text pla: transparència, auditabilitat i control sobre les pròpies dades.

La comunitat de Beancount també ha produït un ric ecosistema de connectors i integracions. Des de modes d'editor i aplicacions mòbils per a l'entrada, fins a la interfície web Fava per a la visualització, fins a innombrables importadors i utilitats a GitHub, hi ha recursos per cobrir gairebé totes les necessitats. Els usuaris comparteixen freqüentment les seves configuracions de llibre major en fòrums i blogs, de manera que altres poden aprendre i adoptar les millors pràctiques. És important destacar que la informació sensible es pot mantenir privada (o fàcilment censurada per compartir-la) gràcies al format llegible per humans – com hem fet en aquesta mostra. Els exemples anteriors demostren que tant si ets un desenvolupador autònom, un fundador de startup o un friqui de les finances personals, pots doblegar Beancount a la teva voluntat. Utilitzant etiquetatge i metadades de manera creativa, automatitzant allà on sigui possible, gestionant transaccions multidivisa, planificant amb pressupostos i ampliant mitjançant connectors, la comunitat continua empenyent els límits del que és possible en text pla. El resultat són llibres majors comptables de nivell professional que també són atractius de mantenir, donant als usuaris tant claredat com control sobre les seves finances.

Font: https://beancount.io/ca/docs/community-showcase