Configuracions Reals de Beancount
Introducció
Beancount és un sistema flexible de comptabilitat en text pla, i els seus usuaris l'han adaptat per satisfer una àmplia gamma de necessitats reals. En aquesta vitrina comunitària, 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 actualitzacions del llibre major amb scripts personalitzats, gestionar múltiples divises, pressupostar i fer previsions, i estendre Beancount amb complements o integracions (com ara la interfície web Fava).
For living overviews of the same tooling cluster, see Beancount v3: What's New?, Essential Beancount Native Plugins You Should Know, The Beancount Ecosystem, and Beancount's Technical Edge. L’objectiu és inspirar i informar comptables, desenvolupadors i usuaris amb coneixements financers sobre què és possible amb el sistema flexible de Beancount.

Interfície d'exemple: Molts usuaris de Beancount confien en Fava – un tauler web de codi obert – o en l’equivalent hostatjat 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 prové i on va el diner. Els usuaris poden filtrar aquesta vista per període, compte o etiquetes per aprofundir en projectes o períodes específics. Aquestes visualitzacions ajuden a fer que les dades en text pla siguin més accessibles, permetent als usuaris detectar tendències i anomalies amb una mirada.
Cada configuració de Beancount és única, però hi ha temes comuns. A continuació, explorem tres escenaris – un freelancer, un propietari d’una 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 han estat eliminats o generalitzats, centrant-se només en tècniques i configuracions.
Freelancer: Etiquetatge de Projectes i Seguiment de Factures
El nostre primer exemple és un consultor freelance que utilitza Beancount com el pilar de les finances del seu negoci. El llibre major d'aquest freelance està organitzat per fer el seguiment dels ingressos i despeses per projecte i per gestionar les factures de diversos clients. Ha configurat comptes dedicats per a Comptes a cobrar (A/R) dins d'Actius per a cada client, la qual cosa ajuda a segregar qui deu què. Quan completa un projecte i factura a un client, registra una transacció carregant el compte A/R del client i abonant 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 USDAquí la notació ^INV-0001 és un enllaç (una característica incorporada de metadades de Beancount) utilitzada per etiquetar aquesta transacció amb el número de la factura. Quan el client paga una part o la totalitat d'aquesta factura, la transacció de pagament inclou el mateix enllaç ^INV-0001, que uneix les dues entrades. Aquesta vinculació facilita assignar els 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 – p. ex., 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 freelance pot veure instantàniament quant s'ha pagat i què queda pendent.
A més dels enllaços, el freelance utilitza molt les etiquetes per a la categorització. Les etiquetes en Beancount són rètols prefixats amb # que poden marcar transaccions per a un filtratge posterior. Aquest usuari etiqueta cada despesa facturable a un client amb el codi del projecte, com #ProjectX, i etiqueta les despeses reemborsables amb #Reimbursable. Per exemple, si compra bitllets d'avió per a un projecte del 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 freelance pot fer una consulta per llistar totes les despeses #Reimbursable d'aquell projecte i assegurar-se d'incloure-les a la factura del client. Un usuari de Beancount va assenyalar que etiquetar les despeses de viatge de feina ajudava a detectar qualsevol despesa no reemborsada – idealment, les despeses d'un viatge de feina es compensen a $0 quan es reben tots els reemborsaments del client. Això destaca com l'ús d'etiquetes, combinat amb les capacitats de consulta de Beancount, proporciona una capa extra de supervisió per als freelance que gestionen despeses facturables.
Per gestionar l'estat dels pagaments pendents, el nostre freelancer utilitza una convenció especial per als recebuts pendents. Apliquen l'etiqueta #UNRESOLVED a qualsevol transacció de factura que encara no hagi estat completament pagada. Beancount (i Fava) no obliga a fer servir aquesta etiqueta, però és un patró establert per la comunitat per marcar transaccions que esperen liquidació. Per exemple, fins que Client A no pagui els $5,000 complets, la transacció de factura anterior inclouria #UNRESOLVED. Fent un filtre per aquesta etiqueta, el freelancer pot llistar totes les factures obertes en qualsevol moment. Un cop rebut i aplicat el pagament (s'introdueix la corresponent transacció de deutes a cobrar), es treu o s'ignora l'etiqueta #UNRESOLVED, i el compte de recepcions per a aquest client quedarà equilibrat a zero. Aquest sistema garanteix que cap factura "caigui entre les esquerdes". És essencialment un informe d'antiguitat fet en text pla – si un deute a cobrar es manté diferent de zero i etiquetat com a no resolt, cal atenció.
Com que els freelancers sovint treballen amb múltiples mètodes de pagament i a vegades amb diverses divises, la configuració de Beancount ho incorpora sense problemes. En el nostre exemple, el consultor podria facturar alguns clients en USD i altres en EUR. El tractament multimoneda és senzill a Beancount: qualsevol compte pot tenir múltiples mercaderies (les divises es tracten com mercaderies). El freelancer pot mantenir subcomptes separats per cada moneda (p. ex., Assets:AccountsReceivable:ClientA:EUR vs ...:USD), o simplement registrar transaccions en la moneda corresponent sota el mateix compte. Beancount farà el seguiment dels saldos per moneda automàticament. Un usuari va destacar com de bé funciona que "Beancount pugui seguir quantitats en qualsevol moneda, ja sigui USD o un símbol de ticker", tot en un mateix llibre major. El nostre freelancer aprofita això enregistrant tipus de canvi amb directives price cada cop que necessita convertir divises per fer informes. Pot generar un informe d'ingressos convertit a la seva moneda local un cop ha introduït els tipus de canvi periòdics o preus de mercat.
Finalment, aquest freelancer integra el seu llibre major de Beancount amb eines pràctiques per optimitzar el seu flux de treball. Per exemple, adjunten còpies en PDF de cada factura al llibre utilitzant metadades de documents. Una entrada típica d'un pagament de factura podria semblar 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 o metadada document de Beancount permet associar arxius amb les entrades, i Fava mostrarà un enllaç per aquests fitxers adjunts. Això significa que el freelancer (o el seu comptable) pot clicar directament des de l'informe del llibre major per veure el PDF de la factura original, assegurant un fàcil accés a la documentació de suport. El freelancer també utilitza els informes de Fava per controlar el seu negoci: filtrant el Compte de Pèrdues i Guanys 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 del marcatge i els enllaços per gestionar la comptabilitat basada en projectes. Transforma un llibre de text pla en una eina robusta de comptabilitat freelance, amb visibilitat clara de les despeses de projecte, ingressos en diverses monedes i estats de facturació.
Pràctiques clau en la configuració del Freelancer: Utilitzar etiquetes per agrupar transaccions per projecte o propòsit, enllaçar factures i pagaments amb ID únics, marcar els comptes a cobrar pendents amb una etiqueta #UNRESOLVED, adjuntar documents de factura a les entrades del llibre major per referència, i aprofitar el suport multimoneda de Beancount per facturar clients internacionals sense complicacions. Tot això s’aconsegueix amb entrades de text pla més algunes eines auxiliars, mostrant el poder de les metadades en Beancount.
Petita empresa: Automatització i comptabilitat multimoneda
A continuació, analitzem un propietari de petita empresa – concretament un fundador d’una startup – que va adoptar Beancount per gestionar els llibres de l’empresa. Les petites empreses tenen necessitats similars als freelancers (factures, despeses, multimoneda) però sovint a una escala més gran i amb un major èmfasi en l’automatització, la coherència i la col·laboració. En aquest cas, el fundador tenia coneixements tècnics i va construir un procés de treball Beancount altament automatitzat per minimitzar la comptabilitat manual. Després d’avaluar programari comptable tradicional com QuickBooks, van optar per l’enfocament de text pla de Beancount per mantenir el control total de les dades. Al llarg d’uns anys, van desenvolupar iterativament eines personalitzades per aconseguir un procés de comptabilitat automatitzat al 95%.
Importacions i reconciliació automatitzades: Un dels primers reptes va ser importar transaccions de diverses fonts (comptes bancaris, targetes de crèdit, processadors de pagaments) al llibre major. En comptes d’introduir cada transacció manualment, aquest usuari va configurar scripts d’importació per obtenir i traduir les dades al format Beancount. Van escriure importadors personalitzats en Python per al format CSV o API de cada institució financera, de manera que amb una sola ordre poden descarregar noves transaccions i afegir-les al llibre major. Per exemple, amb els importadors beangulp, el fundador pot executar un script que escaneja una carpeta de descàrregues per a extractes nous i els transforma en entrades de Beancount. Un altre usuari, Rhyd Lewis, va descriure una configuració similar on té scripts d’importació separats per cada banc i els pot invocar mitjançant una ordre simple (usant un Justfile) per actualitzar el seu llibre major. El propietari de la petita empresa fa el mateix: totes les transaccions bancàries, les operacions amb targeta de crèdit, i fins i tot les transaccions de PayPal o Stripe es capturen i s’afegeixen automàticament als llibres, categorizades 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 compromís i utilitzen els plugins de Beancount. Per exemple, el plugin beancount.plugins.noduplicates està habilitat per evitar la importació accidental d’una mateixa transacció dues vegades, i beancount.plugins.nounused assenyala qualsevol compte sense entrades (útil per netejar comptes obsolets). Recomanem bea check per a aquesta etapa de validació. El fundador també fa servir un formatejador comunitari (com beancount-black) per mantenir l’estil del fitxer del llibre major consistent. Això és important perquè amb moltes edicions automatitzades, tenir un estil uniforme facilita la revisió de canvis i auditories. De fet, el fundador manté el llibre major en un repositori Git, tractant les actualitzacions del llibre com canvis de codi. Cada nou lot de transaccions importades esdevé un compromís Git, i poden revisar les diferències per veure què ha canviat. En una captura de pantalla, es mostra un historial Git on una transacció de targeta de crèdit per a “Costco” passa d’estar pendent a estar liquidada al llibre major, tot sense intervenció manual. El control de versions proporciona una traça d’auditoria: poden veure exactament quan s’afegeix o modifica una transacció i fins i tot revertir canvis si s’ha importat incorrectament. Aquest és un gran exemple d’aplicar les millors pràctiques de desenvolupament de programari (com el control de versions) als registres comptables.
Transaccions multimoneda i internacionals: Les petites empreses sovint operen amb múltiples monedes: 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 exemple utilitza les funcions multimoneda de Beancount per consolidar-ho tot en un sol llibre major. Van obrir comptes separats per a cada moneda (per exemple, Assets:Bank:Checking:USD i Assets:Bank:Checking:EUR), que és un enfocament habitual. No obstant això, encara que diferents monedes comparteixin un compte, Beancount farà el seguiment del saldo de cada moneda per separat i requerirà que les transaccions equilibrin per moneda. El fundador sol executar informes de valoració per veure els saldos totals de l’empresa convertits a la moneda base. Atès que Beancount suporta consultes de preus, ell va configurar fluxos diaris de preus per als tipus de canvi (i preus d’accions per a qualsevol inversió) mitjançant un script programat per obtenir quotes. El resultat és que en qualsevol moment pot generar un balanç, per exemple, en USD que inclogui el compte en EUR traduït al tipus més actual. Els membres de la comunitat assenyalen que manejar diverses monedes en la comptabilitat d’estil llibre major és senzill: només cal afegir transaccions a la moneda corresponent i registrar els tipus de canvi quan sigui necessari. Per exemple, un usuari va compartir un exemple de conversió de USD a EUR a CAD mitjançant comptes intermedis com a forma de gestionar conversions de moneda a Beancount. En el nostre cas, la petita empresa no converteix necessàriament les monedes en les transaccions (les manté en la moneda nadiua) sinó que fa servir informes per consolidar. Aquesta flexibilitat ha estat clau a mesura que la startup s’ha expandit globalment.
Scripts i extensions personalitzats: No tot el que necessitava el fundador estava disponible per defecte, així que van estendre Beancount amb plugins personalitzats. Amb el temps, van acabar escrivint una biblioteca de parsers, una eina de formatat i un importador de transaccions basat en regles, alliberant 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 automàticament les transaccions. Un fragment d’aquesta configuració mostra com alguns benefactors o descripcions específiques (com “Comcast” o “PG&E”) es mapegen a certes comptes de despesa i narracions, de manera que quan aquests apareixen en un feed bancari, s’origina l’entrada correcta de Beancount sense edició manual. Això és essencialment una automatització personalitzada per aplicar regles de comptabilitat (per serveis, subscripcions, etc.) en temps real. Un altre plugin assegura que el llibre registre sempre estigui equilibrat i ben formatat. Totes aquestes eines s’executen com a part del flux de treball del fundador cada cop que s’afegeixen noves dades. El resultat és un llibre registre que es “actualitza a si mateix” amb una intervenció mínima, cosa que el fundador diu que li provoca una “alegria pura” com a desenvolupador obsessionat amb l’automatització.
La seguretat i la accessibilitat també eren preocupacions. El fundador volia que el seu equip financer (i fins i tot la seva parella, actuant com a supervisora) poguessin veure els llibres fàcilment. Per això, va configurar un desplegament privat de Fava al núvol. Cada cop que fa un push d’un nou commit del llibre registre al repositori Git privat, una pipeline CI (usant GitHub Actions i AWS Elastic Beanstalk) desplega una instància actualitzada de Fava. La interfície web està protegida per una contrasenya (usant un proxy Nginx amb autenticació bàsica), de manera que només les persones autoritzades hi poden accedir. Així, els últims estats financers estan sempre disponibles a través d’un panell de navegador, sense necessitat d’instal·lar res localment. El diagrama d’arquitectura següent il·lustra aquesta configuració: el fitxer Beancount i la configuració necessària s’inclouen dins d’una imatge Docker juntament amb Fava, i es serveixen a AWS, amb Cloudflare a davant per motius de 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]Automatització de Beancount al núvol: l'usuari actualitza el fitxer del llibre major localment i fa un push a Git; es construeix i desplega un contenidor Docker (incloent Fava i Nginx per a l'autenticació) a 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 al núvol per aconseguir comoditat sense renunciar a la propietat de les dades.
En l'ús diari, l'atenció del propietari de la petita empresa es centra en el tractament d'excepcions més que en la introducció de dades. Cada mes, revisa breument les transaccions importades automàticament (usant 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 reconciliar comptes. Per exemple, després d’ingressar totes les transaccions de juny, pot afegir un control de saldo per confirmar que el saldo final del compte bancari coincideix amb l’extracte; si no, Beancount mostrarà un error, indicant que falta o està mal introduït alguna cosa. Això garanteix que els llibres siguin precisos.
Pràctiques clau en 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 pistes d’auditoria i col·laboració, comptabilitat multimoneda amb fonts de preus per 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 a on es pot portar Beancount amb esforç d'enginyeria – transformant la comptabilitat en una canalització largely automatitzada mentre es preserva la transparència i flexibilitat. Encara que un no sigui programador, molts d’aquests beneficis es poden aconseguir usant complements comunitaris (per a formatatge, detecció de duplicats, etc.) i adoptant el flux de treball en text pla que fomenta revisions freqüents i còpies de seguretat.
Aficionat a les Finances Personals: Pressupost i Anàlisi Personalitzada
La nostra darrera demostració és un aficionat a les finances personals – algú que utilitza Beancount per gestionar les finances domèstiques i les inversions amb un nivell alt 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 Beancount que no només registra cada cèntim, sinó que també serveix com a base per a pressupostos, previsions i experiments analítics.
Organitzant el llibre major personal: Moltes persones comencen amb un únic fitxer Beancount per a tots els seus comptes, i aquest entusiasta no és diferent. Manté un llibre major principal (p. ex. main.beancount) que inclou tots els comptes (comptes bancaris, targetes de crèdit, préstecs, carteres d’inversió, etc.) i transaccions. Amb el temps, van introduir una mica d’estructura separant seccions — per exemple, tenen un fitxer per a l’obertura/tancament de comptes i fitxers separats per a les 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) mantenint, però, un llibre major lògic únic. Un altre usuari personal al fòrum de la comunitat va descriure un disseny similar: un fitxer principal que inclou altres per categoria (p. ex. Income.beancount, Expenses.beancount, Investments.beancount). El nostre entusiasta ho manté senzill per ara: un fitxer sincronitzat a través de dispositius.
Parlant de sincronització, atès que és finança personal, aquest usuari vol registrar transaccions allà on sigui. Utilitza una aplicació mòbil anomenada Beancount Mobile per afegir entrades ràpidament en moviment (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) perquè el seu telèfon, l’ordinador portàtil i un VPS (servidor) tinguin sempre la còpia més recent. En un ordinador, prefereix usar Emacs amb beancount-mode per editar còmodament amb ressaltat de sintaxi. Aquesta configuració assegura que, ja sigui a la taula o en moviment, pugui registrar les transaccions immediatament i evitar oblidar-se de res. És un gran exemple d’adaptar eines tecnològiques per a la comoditat personal — construint efectivament una alternativa autoservida a les aplicacions comercials de pressupostació.
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 pressupostàries habituals, 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 la compra de fusta a una ferreteria (despesa) o la recepció d’un reemborsament d’un fabricant (ingrés). Així, poden generar fàcilment un informe del cost total del projecte sense que aquestes despeses quedin compartimentades sota comptes diferents. 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, hi afegeixen una metadada location: ... a despeses grans per fer un seguiment d’on van gastar els diners, o una note: ... per afegir context addicional més enllà del destinatari i la narració. En alguns casos, fins i tot van crear camps de metadades personalitzats per ajudar amb la predicció. Un exemple és afegir budget: X i frequency: monthly a certes despeses recurrents – una idea inspirada per una discussió a la llista de correu de Beancount on un usuari emmagatzemava projeccions pressupostàries en metadades per a 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 usar els pressupostos integrats de Fava (descrits més avall), mostrant com es pot ajustar la metadada a voluntat de l’usuari. Com va remarcar el creador de Beancount, la metadada està “només per a tu [per usar en scripts personalitzats] – Beancount la processa però l’ignora” per si sola. En resum, aquest usuari no té por d’ampliar el llibre major amb informació extra per ajudar la seva anàlisi personal.
Pressupostar amb Beancount: Un dels objectius principals per a aquest usuari és seguir un pressupost mensual. Abans feia servir una aplicació de pressupost (YNAB) i volia replicar alguns dels seus conceptes d’assignació de sobres. Hi ha diverses maneres de fer pressupostos a Beancount, però la més senzilla és utilitzar les directrius de pressupost de Fava. El nostre entusiasta afegeix entrades budget al llibre major de la manera següent:
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 USDCada línia estableix un pressupost per a un compte (categoria) durant un període. Fava després mostra barres de pressupost versus real en 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 Sortides a Menjar (per sobre del pressupost). L'entusiasta consulta regularment els informes d'Estat de Resultats i Despeses de Fava, que mostren tant els totals mensuals com els objectius de pressupost. Fava convenientment acumula els pressupostos diaris/setmanals dins les durades adequades. Utilitzant la interfície de Fava per això, l'usuari no necessita un full de càlcul separat per a la planificació pressupostària; tot està integrat. (També van experimentar amb un sistema més automatitzat d’“sobre” movent fons a comptes fantasma a l'inici de cada mes, tal com es suggereix als fòrums, però van trobar que les directives de pressupost personalitzades eren més fàcils de mantenir.)
Per a la previsió, més enllà dels pressupostos, controlen les factures pròximes. Alguns membres de la comunitat han creat plugins per generar transaccions futures per a subscripcions o plans 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 datades en el futur per ítems coneguts (com el lloguer del mes vinent, o un pagament anual d'assegurança proper). Aquestes queden en el llibre major però no afecten els saldos d'avui, i un cop arriba la data i la transacció esdevé actual, serveix de recordatori (i ajusten l'import si cal per adaptar-lo al càrrec real). És una mica un truc, però funciona per a la previsió de fluxos de caixa sense eines complexes.
Seguiment d'inversions i comptabilitat multi-matèria: Com a aficionat a les finances, aquest usuari també utilitza Beancount per consolidar comptes d'inversió – accions, fons mutus i criptomonedes – juntament amb comptes en efectiu. Té comptes de corredoria amb participacions (p. ex., accions d'AAPL, GOOG, etc.) que es registren en Beancount com a mercaderies. Per exemple, comprar 10 accions d'Apple seria una entrada que abonaria l'efectiu del compte de corredoria i carregaria un compte d'actiu amb 10 AAPL com a quantitat de la mercaderia. La capacitat de Beancount per gestionar qualsevol mercaderia és molt útil aquí; es poden barrejar lliurement divises i accions. “Beancount pot fer seguiment de quantitats en qualsevol moneda, sigui USD o un símbol de cotització,” com va assenyalar un usuari, cosa que va suposar una gran millora respecte a les aplicacions de finances personals que sovint no donen suport adequadament a les posicions en accions. El nostre aficionat utilitza una tasca cron nocturna per obtenir els últims preus de mercat de tots els seus valors i divises estrangeres. Cada nit a les 4h, un script obté els preus (de Yahoo Finance o una altra font) i afegeix registres de preus al llibre major del dia. D'aquesta manera, la propera vegada que obren Fava o generen un informe, poden veure valors actualitzats del portafolis i fins i tot el rendiment de la inversió al llarg del temps. Tot el patrimoni net, a través de comptes bancaris, fons de jubilació i carteres de criptomonedes, està disponible en una única vista unificada. Això és un somni per a un inversor basat en dades: no cal iniciar sessió en múltiples plataformes per veure la foto completa. Han construit essencialment un quadre de comandament financer personal impulsat per Beancount.
Anàlisi i integració: El que realment diferencia aquest usuari avançat de finances personals és com analitza les dades un cop estan a Beancount. Amb totes les transaccions en una base de dades SQLite (Beancount pot consultar dades mitjançant el seu llenguatge de consultes integrat, que és similar a SQL), l'usuari pot fer anàlisis personalitzades. Han escrit scripts en Python per respondre preguntes com “Quina és la mitjana mòbil de 3 mesos de les meves despeses en queviures?” o “Com es compara la despesa d’aquest any en serveis amb la de l’any passat?” Un script consulta el llibre major segons etiquetes específiques i exporta els resultats a un dataframe de Pandas per a un processament numèric addicional. Com que el llibre major és en text pla, també han utilitzat quaderns Jupyter per experimentar amb diferents visualitzacions (més enllà del que ofereix Fava). Per exemple, van crear un gràfic de barres personalitzat de la taxa d’estalvi mensual mitjançant Matplotlib agregant dades de Beancount en Python. Aquest tipus d’anàlisi ad hoc és possible només perquè Beancount manté les dades accessibles i llegibles per a màquines. Com va dir un usuari, extreure dades és trivial – “tinc un script en Python que extreu dades de Beancount utilitzant el llenguatge de consultes, i després faig servir un dataframe de pandas per preparar les dades en un informe”. El nostre entusiasta té un repositori de petits scripts com aquest que executa per a la seva revisió financera anual.
Per descomptat, no tot requereix programació – gran part del temps, es basen en els gràfics integrats de Fava. Fava ofereix un gràfic de línia de patrimoni net, tendència d’ingressos versus despeses, i fins i tot un desglossament en mapa rectangular (com es mostrava abans) que són a un clic de distància. L’usuari valora que la història sencera de les seves finances des del 2018 sigui consultable i auditable. Per exemple, si es pregunten “quant he gastat en reparacions de cotxe els últims 5 anys,” poden escriure una consulta ràpida o aplicar un filtre a Fava per obtenir la resposta, en lloc de remenar rebuts. Aquesta capacitació és exactament el que els va atreure a Beancount: propietat total de les dades i flexibilitat infinita en l’anàlisi. Com a avantatge, el llibre major en text pla està preparat per al futur – es pot controlar amb 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 a la seva història financera.
Pràctiques clau en la configuració personal: Utilització d’eines mòbils i d’escriptori per a una entrada de dades còmoda, ús d’etiquetes i metadades personalitzades per fer un seguiment d’esdeveniments vitals i agrupaments de categories creuades, implementació de pressupostos a través de les directrius budget de Fava per a objectius de despesa continus, seguiment d’inversions i múltiples monedes en el mateix llibre major (amb actualitzacions automàtiques de preus), i realització d’anàlisis personalitzades consultant directament les dades del llibre major. Aquest cas demostra que amb una mica de configuració, fins i tot els apassionats de les finances personals poden assolir un nivell d’enteniment i control que normalment està reservat a les empreses, tot mantenint l'experiència divertida i atractiva per a un usuari expert en tecnologia.
Conclusió
En aquests exemples de la comunitat, un tema clar és que la flexibilitat de Beancount permet un sistema de comptabilitat altament personalitzat. Els usuaris avançats de la comunitat han aprofitat fitxers de text senzills per construir solucions que rivalitzen en capacitat amb el programari comercial, però fetes a mida per als seus fluxos de treball. Els treballadors autònoms etiqueten i vinculen les entrades per gestionar fàcilment projectes i factures de clients. Els petits empresaris escriuen scripts per automatitzar tasques avorrides de la comptabilitat i integren Beancount amb infraestructures modernes per a informar financeres sempre actualitzades. Els apassionats de les finances personals utilitzen el llibre major com a única font de veritat per a la planificació pressupostària, inversions i preses de decisions, complementant-lo amb etiquetes i eines per respondre pràcticament qualsevol pregunta sobre els seus diners. Tot això s’aconsegueix mantenint els avantatges fonamentals de la comptabilitat en text pla: transparència, auditable i control de les seves dades.
La comunitat de Beancount també ha produït un ecosistema ric de plugins i integracions. Des de modes d'editor i aplicacions mòbils per a la introducció de dades, fins a la interfície web Fava per a la visualització, i multitud d'importadors i utilitats a GitHub, hi ha recursos per a satisfer gairebé totes les necessitats. Els usuaris sovint comparteixen les seves configuracions de llibre major en fòrums i blocs, perquè altres puguin aprendre i adoptar les millors pràctiques. És important destacar que la informació sensible es pot mantenir privada (o fàcilment redacció per compartir) gràcies al format llegible per humans, tal com hem fet en aquesta mostra. Els exemples anteriors demostren que, tant si ets un desenvolupador freelance, un fundador d'startup, o un apassionat de les finances personals, pots adaptar Beancount a la teva voluntat. Utilitzant etiquetatge i metadades de manera creativa, automatitzant allà on és possible, gestionant transaccions multi-moneda, planejant amb pressupostos, i estenent a través de plugins, la comunitat continua ampliant els límits del que és possible amb text pla. El resultat són llibres de comptabilitat professionals que també són atractius de mantenir, proporcionant als usuaris tant claritat com control sobre les seves finances.