Introducció
Beancount és un sistema de comptabilitat per partida doble de codi obert que utilitza fitxers de text pla com a llibre major. Posa èmfasi en la simplicitat, la transparència i la flexibilitat en el seguiment de les finances. Fava és una potent interfície web per a Beancount, que ofereix una interfície interactiva per veure informes, visualitzacions i gestionar el llibre major. En aquest informe, explorem les capacitats principals de Beancount i Fava, i com aconseguir analítica financera en temps real o gairebé en temps real amb aquestes eines. Cobrim consells de configuració per a l'automatització i l'actualització de dades, les funcions de visualització de Fava (per a vistes instantànies de flux de caixa i detecció de tendències), la integració amb quadres de comandament externs (Grafana, Metabase, etc.), exemples de quadres de comandament i connectors personalitzats, casos d'ús en finances personals i de petites empreses, comparacions amb altres plataformes (Power BI, QuickBooks), i els avantatges i inconvenients d'utilitzar Fava+Beancount per obtenir informació basada en dades.
Exploreu un llibre major d'exemple en directe:

Exploreu el llibre major en directe →
Capacitats Bàsiques de Beancount i Fava
Beancount (Motor de Comptabilitat en Text Pla)
- Llibre major per partida doble en text pla: Beancount emmagatzema les transaccions en un únic fitxer de text
.beancount(o múltiples fitxers inclosos conjuntament). Cada transacció ha de quadrar (total de dèbits = total de crèdits) entre els comptes, garantint la integritat comptable. El format de text pla significa que les vostres dades són llegibles per humans, controlables per versions i no estan lligades a cap proveïdor. - Comptes flexibles i jeràrquics: Podeu definir qualsevol compte (p. ex.
Assets:Bank:Checking,Expenses:Food:Coffee) en una jerarquia. Beancount no imposa un pla comptable determinat, així que funciona per a finances personals, llibres de petites empreses, inversions, etc. – és "flexible: funciona per a finances personals, comptabilitat de petites empreses, criptomonedes, inversions en borsa i més." - Múltiples divises i commodities: Beancount té suport de primera classe per a múltiples divises i commodities (p. ex. accions, criptomonedes). Podeu registrar transaccions en diferents divises, definir tipus de canvi (directives de preu) i fer seguiment de les bases de cost. Pot produir informes "a cost" o "a valor de mercat" si es proporcionen dades de preus. Això el fa adequat per a carteres i finances internacionals.
- Comprovacions i balances automatitzades: El sistema admet asserccions de saldo (podeu declarar quin hauria de ser el saldo d'un compte en una data, i Beancount donarà error si no coincideix) i transaccions de saldo per tancar llibres. També admet entrades d'obertura/tancament de patrimoni i el càlcul de resultats retinguts per a tancaments de període. Aquestes ajuden a garantir que els vostres llibres es mantinguin coherents i a detectar errors aviat.
- Motor potent de consultes i informes: Beancount inclou un llenguatge de consulta BQL (Beancount Query Language). Utilitzeu
bea queryper a BQL al terminal ibea reportper als estats financers estàndard; instal·leu la guia ràpida de la CLI en lloc dels antics scripts de consola originals. Podeu consultar el llibre major per obtenir informes personalitzats (p. ex. llista de despeses per beneficiari, flux de caixa d'un període) – tractant essencialment el llibre major com una base de dades. Es manté ràpid fins i tot amb milers de transaccions. Exporteu CSV ambbea query -f csv -o report.csv "BQL", substituintBQLper la vostra consulta. Vegeu Plantilles d'informes financers per a exemples complets. - Extensibilitat mitjançant connectors: Beancount està escrit en Python i permet que connectors personalitzats n'ampliïn la funcionalitat. Els connectors poden aplicar regles o càlculs addicionals quan es processa el fitxer. (Per exemple, hi ha connectors per gestionar lots fiscals, o per assegurar que cap compra no tingui un cost absent.) El sistema de connectors i l'API de Python permeten als usuaris avançats programar comportaments personalitzats o integrar Beancount amb altres sistemes.
- Importadors per a dades externes: Una característica pràctica clau és el marc d'importadors del paquet independent
beangulp(no hi ha mòdulbeancount.ingesta Beancount 3.2.3). Escriviu una classe importadora que hereti debeangulp.Importeri implementiidentify,extractiaccount. Analitza un fitxer descarregat (CSV, OFX, extractes PDF, etc.) i el converteix en entrades de Beancount. Això és essencial per a l'automatització (en parlarem més endavant). - Auditable i compatible amb control de versions: Com que és text pla, podeu mantenir el llibre major en Git o un altre control de versions. Cada canvi és transparent, i teniu un historial complet d'edicions. Això fa que les auditories o la revisió de canvis siguin senzilles (molts usuaris fan commit dels canvis de cada dia a un repositori Git, proporcionant un registre a prova de manipulació de totes les entrades financeres). Aquest nivell de transparència és un gran diferenciador respecte del programari comptable tancat – "sense bloqueig de SaaS—només comptabilitat neta i transparent amb informes potents."
Fava (Interfície Web per a Beancount)
- Interfície web interactiva: Fava proporciona un servidor web local que renderitza el vostre llibre major de Beancount en una interfície rica. Mostra informes principals (compte de resultats, balanç de situació, etc.), registres de comptes i diaris al navegador amb controls interactius. La interfície és dinàmica i fàcil d'usar en comparació amb la línia de comandes. L'inicieu amb un simple
fava yourfile.beancounti obteniu una aplicació web per als vostres llibres. - Gràfics i diagrames integrats: Fava genera gràfics per ajudar a visualitzar les vostres dades. Per exemple, inclou un gràfic de línies de patrimoni net al llarg del temps, gràfics de barres per a ingressos vs. despeses per mes, i gràfics de sectors/treemap per a desglossaments de despeses. Aquestes visuals s'actualitzen amb les vostres dades i admeten diferents vistes (p. ex. "a cost" vs "valor de mercat" per a inversions). Explorarem aquestes capacitats de visualització en detall més endavant.
- Filtratge i cerca: A la part superior de les pàgines de Fava, una barra de filtres us permet tallar i disseccionar les vostres dades en temps real. Podeu filtrar per temps (p. ex. any, trimestre, mes), per expressió regular de compte, per beneficiari, per narrativa, o per etiquetes/enllaços. Això facilita la inspecció de dades en temps real – per exemple, filtrar ràpidament a "Tag=Travel" i "Year=2025" per veure totes les despeses de viatge del 2025, amb totals. La interfície admet consultes complexes a través d'aquesta barra de filtres o mitjançant la pàgina Query (on podeu executar directament consultes BQL).
- Suport de múltiples fitxers i consolidació: Fava pot carregar múltiples fitxers de Beancount alhora (útil si separeu llibres majors) i canviar entre ells. També els pot consolidar si cal (per exemple, llibres personals i empresarials vistos conjuntament).
- Entrada i edició de dades: De manera única, Fava no és només de lectura – té un editor i un formulari d'entrada de transaccions. Podeu afegir noves transaccions mitjançant un formulari web (inserirà l'entrada al vostre fitxer .beancount). També podeu obrir el fitxer font en un editor extern des de Fava. Fava també admet dreceres de teclat per a usuaris avançats. Això converteix Fava en un sistema comptable lleuger on podeu introduir i veure dades des de la mateixa interfície.
- Informes i exploració de comptes: Fava proporciona informes comptables estàndard: compte de resultats (pèrdues i guanys), balanç de situació, balanç de comprovació i una llista de participacions per a inversions. El balanç de situació i el compte de resultats són interactius – podeu fer clic en un compte per explorar-ne els detalls, o alternar entre veure'l a cost vs valor de mercat per als actius. Fava també mostra "guanys no realitzats" per a inversions si teniu dades de preus. Genera una vista de diari de totes les entrades i permet filtrar aquest diari per diversos criteris (ideal per trobar transaccions específiques).
- Gestió de documents: Si adjunteu rebuts o extractes, Fava ajuda a organitzar-los. Beancount té la noció d'una carpeta de documents, i Fava us permet arrossegar i deixar anar fitxers sobre comptes o transaccions – els emmagatzemarà i afegirà una entrada de document al vostre llibre major. Això és útil per mantenir documents de suport enllaçats amb les vostres dades del llibre major.
- Personalització mitjançant extensions: Fava es pot ampliar amb connectors (escrits en Python) per afegir nous informes o funcionalitats. Algunes extensions estan incloses (p. ex. un informe de llista de cartera per a inversions). Parlarem de les extensions personalitzades més endavant, però essencialment el disseny de Fava permet injectar noves pàgines, i fins i tot JavaScript personalitzat, a través de la seva API d'extensions. Això significa que si una anàlisi o quadre de comandament determinat no està integrat, un usuari avançat pot afegir-lo.
- Rendiment: Fava és eficient – recarrega les dades a la memòria i serveix les pàgines ràpidament. L'anàlisi subjacent de Beancount és ràpida, així que els llibres majors personals típics es carreguen en un segon o dos. A la pràctica, Fava pot gestionar llibres majors personals de molts anys, tot i que fitxers extremadament grans (desenes de milers de transaccions) es podrien beneficiar d'alguna optimització (p. ex. arxivar entrades antigues).
- Accés web i mobilitat: Executant Fava en un servidor o fins i tot al vostre portàtil, podeu accedir a les vostres finances des de qualsevol navegador. Alguns usuaris allotgen Fava en un servidor privat o una Raspberry Pi per poder comprovar les seves finances en moviment (possiblement assegurant-lo amb contrasenya o VPN, ja que Fava no té autenticació integrada). Això essencialment us proporciona una "aplicació web" autoallotjada per a les vostres finances, sense lliurar les vostres dades a tercers.
En resum, Beancount proporciona una base robusta per a una comptabilitat transparent basada en text amb regles rigoroses de partida doble i suport multidevises. Fava hi construeix a sobre oferint una interfície accessible amb informació immediata (informes, gràfics) i la capacitat d'interactuar amb les vostres dades. Junts, formen un sistema comptable i analític altament flexible que controleu de principi a fi.
Anàlisi en temps real (o gairebé en temps real) amb Beancount i Fava
Aconseguir analítica en temps real o gairebé en temps real amb Beancount i Fava implica automatitzar el flux de dades cap al vostre llibre major i assegurar que les eines mostrin informació actualitzada. Per defecte, Beancount és un procés per lots (afegiu entrades al fitxer, després veieu els informes), i Fava detectarà els canvis i requerirà una actualització. Tanmateix, amb la configuració adequada, podeu agilitzar les actualitzacions perquè les noves transaccions i canvis apareguin gairebé instantàniament.
Detecció de canvis de fitxer: Fava monitora el fitxer del llibre major per detectar canvis. Si editeu el fitxer .beancount (o els fitxers inclosos) en un editor, la pàgina mostra una notificació "File change detected. Click to reload.". Fava fa sondeig del seu endpoint get_changed. Quan el monitor informa d'un canvi, Fava recarrega el llibre major al costat del servidor i la notificació ofereix un clic per actualitzar la vista. A la pràctica, aquesta recàrrega és molt ràpida (normalment menys d'un segon per a llibres majors típics). Això significa que Fava pot servir com a quadre de comandament en directe si el vostre fitxer del llibre major s'actualitza amb freqüència. Espera el vostre clic per defecte per evitar interrompre la vostra vista.
Pipeline d'importació/actualització contínua: Per obtenir dades en temps real, cal automatitzar l'addició de transaccions al fitxer de Beancount. Hi ha algunes estratègies comunes:
-
Feines d'importació programades (Cron): Molts usuaris configuren una feina cron (o tasca programada) per obtenir noves transaccions de les institucions financeres periòdicament (per exemple, cada nit o cada hora) i afegir-les al llibre major. Per exemple, podeu executar un importador
beangulpsobre la darrera descàrrega bancària (CSV o OFX). Un usuari de Beancount va construir un pipeline d'automatització de manera que els seus llibres s'actualitzaven sols: "veure el meu llibre comptable actualitzant-se sol sense que jo el toqui en un format obert em produeix pura alegria". Això es va aconseguir connectant-se a API bancàries i programant actualitzacions regulars. Un script de Python personalitzat que utilitzi API bancàries (p. ex. Plaid) pot executar-se segons una programació i escriure noves entrades al llibre major. Valideu cada execució ambbea checkabans que toqui el vostre fitxer principal. Després de cada importació programada, si teniu Fava en execució, simplement podeu actualitzar Fava per veure les noves dades. -
Monitors de fitxers i disparadors: En lloc de programacions basades en temps, podeu utilitzar monitors de fitxers per reaccionar a esdeveniments. Per exemple, si el vostre banc us pot enviar per correu un extracte diari o deixeu anar un CSV en una carpeta, un script podria detectar aquest fitxer (utilitzant
inotifya Linux o similar) i executar immediatament la rutina d'importació, i després senyalitzar a Fava que recarregui. Tot i que Fava encara no admet enviar una recàrrega en directe al navegador, almenys tindríeu les dades actualitzades de manera que la propera vegada que comproveu la pàgina o feu clic a recarregar, estiguin al dia. Alguns projectes de la comunitat van més enllà: per a ledger (un cosí de Beancount), un usuari va crear un petit servidor que exposa les dades de ledger a Grafana en temps real, demostrant que es pot adoptar un enfocament similar amb Beancount – essencialment construir un dimoni que alimenti contínuament els vostres quadres de comandament amb dades. -
Integració directa amb API: En lloc de passar per fitxers, els usuaris avançats es podrien connectar directament a API bancàries (com Plaid o API regionals d'Open Banking) per obtenir transaccions freqüentment. Una persona motivada pot programar importacions "en directe" en un bucle (amb limitació de taxa adequada) – efectivament fent sondeig al banc per obtenir noves dades cada pocs minuts. No hi ha res que us impedeixi "registrar-vos a l'API de Plaid i fer el mateix [automatització] localment". Cada nova transacció es pot afegir al fitxer de Beancount a mesura que arriba. Amb aquest enfocament, Fava es converteix realment en un quadre de comandament en temps real per als vostres comptes, rivalitzant amb el flux actualitzat de les aplicacions comercials.
Actualització de dades a Fava: Un cop les vostres dades s'estiguin actualitzant, fer que Fava les mostri és senzill: una actualització del navegador (F5) o fer clic a la notificació de recàrrega carregarà l'estat més recent del llibre major. Tingueu en compte que fava --debug no envia els canvis del llibre major al navegador. El seu text d'ajuda és "Turn on debugging". Executa el depurador de Werkzeug i el recarregador de codi per al propi codi de Fava i configura la recàrrega automàtica de plantilles Jinja. Això recarrega el codi del servidor i les plantilles de pàgina durant el desenvolupament d'extensions. No té relació amb el monitor de fitxers que detecta canvis al llibre major. Alternativament, si esteu construint una interfície personalitzada, podríeu fer que faci sondeig de l'endpoint get_changed de Fava i s'actualitzi quan informi de noves dades.
Càlculs instantanis: L'anàlisi ràpida de Beancount significa que fins i tot si actualitzeu el vostre fitxer del llibre major cada pocs minuts, el temps de tornada des de l'obtenció de dades → actualització del fitxer → recàrrega de Fava és ràpid. Per exemple, un usuari assenyala que recarregar Fava després d'editar el fitxer "és amb prou feines perceptible... definitivament menys d'un segon" per a llibres majors de mida raonable. Així, podeu mantenir una finestra de Fava oberta i prémer actualitzar periòdicament per imitar un quadre de comandament en directe. (Per a una experiència realment en directe, es podria construir un petit script per actualitzar automàticament el navegador o utilitzar la funció d'actualització del navegador cada N segons.)
Conciliació i alertes: Per confiar en les dades en temps real, també voldreu conciliar els saldos freqüentment. Beancount ho facilita amb asserccions de saldo i un "indicador d'actualització." De fet, Fava acoloreix els comptes de verd, groc o vermell quan la directiva open porta metadades fava-uptodate-indication. El color reflecteix si les comprovacions de saldo recents cobreixen les últimes entrades del compte. Això es pot utilitzar per veure ràpidament si el saldo d'un compte al llibre major coincideix amb el darrer extracte del banc. En una configuració gairebé en temps real, podríeu automatitzar les comprovacions de saldo diàries (així cada matí, el llibre major té el saldo de tancament d'ahir del banc per a cada compte). L'indicador de Fava us diria llavors si la vostra importació automàtica ha passat per alt alguna cosa o si hi ha una discrepància, proporcionant confiança que les dades "en directe" que veieu són precises.
Exemple d'automatització: Suposem que voleu actualitzacions diàries de flux de caixa. Podríeu configurar una feina cron per executar-se a les 3 de la matinada cada nit: executa un script de Python que utilitza l'API del vostre banc per obtenir les transaccions del darrer dia, les escriu a import_today.beancount, i després afegeix aquest fitxer al vostre llibre major principal. També escriu una asserció de saldo per al final del dia. Quan us desperteu, obriu Fava – mostra totes les transaccions fins a ahir, i veieu els ingressos/despeses del mes actual actualitzats. Si feu una despesa durant el dia, podríeu afegir-la manualment (mitjançant el formulari de nova transacció de Fava al vostre telèfon, per exemple), o esperar la importació nocturna. Aquest enfocament híbrid (majoritàriament automatitzat, amb capacitat d'afegir manualment ad-hoc) dóna una imatge gairebé en temps real. Un altre enfocament és deixar la pàgina Journal de Fava oberta i utilitzar-la com a registre: a mesura que gastes, enregistres ràpidament la transacció (com introduir-la en un llibre de xecs) – llavors vosaltres sou el flux en temps real. Això és més manual, però alguns usuaris gaudeixen de la consciència que aporta. Per a actualitzacions realment en streaming sense passos manuals, haureu d'invertir en scripts i possiblement utilitzar API de tercers com s'ha comentat.
En resum, combinant l'automatització d'importació de Beancount amb l'actualització ràpida de Fava, podeu obtenir dades financeres gairebé en temps real. Potser no és "tan fàcil com prémer un botó" per aconseguir el mateix nivell de flux en directe que un servei com QuickBooks (que obté automàticament els fluxos bancaris), però és possible – i, cosa important, manteniu el control total i la transparència del procés. Com va assenyalar un defensor de la comptabilitat de text pla, una mica d'esforç per endavant pot donar un sistema automatitzat que és "molt millor que les solucions comercials, i molt més flexible i extensible". A la següent secció, veurem com les capacitats de visualització de Fava us permeten donar sentit immediatament a aquestes dades actualitzades, convertint transaccions en brut en informació valuosa.
Preus gestionats per a valoracions allotjades
Live Prices proporciona cotitzacions de valoració admeses als llibres majors allotjats de Beancount.io. El carregador comprova si hi ha dades noves quan un llibre major es carrega després de la finestra d'actualització de cinc minuts; una observació del proveïdor pot ser més antiga. Això no és un flux en streaming.
Els controls de Fava descrits aquí pertanyen a Fava. Afegir una inclusió gestionada no afegeix aquests controls al visor allotjat ni converteix una vista a cost en una vista a valor de mercat. Fava original necessita fitxers de preus locals. Una versió compatible de bea pot exportar-los; vegeu la guia de configuració per a la compatibilitat.
Capacitats de visualització a Fava (fluxos de caixa, tendències, inspecció en temps real)
(GitHub - beancount/fava: Fava - web interface for Beancount) L'informe de compte de resultats de Fava (a la interfície web) admet visualitzacions riques com treemaps (a la imatge) i gràfics de sunburst per obtenir informació ràpida sobre la composició d'ingressos i despeses. En aquest treemap, cada rectangle representa una categoria de despesa, dimensionat per la seva quantitat – podeu veure instantàniament que Rent (el gran bloc verd) domina les despeses. La barra de filtres superior i els controls (a dalt a la dreta) permeten canviar la divisa, el tipus de gràfic i el període de temps (p. ex. veure dades mensuals). Fava també proporciona gràfics de línies (p. ex. patrimoni net al llarg del temps) i gràfics de barres (p. ex. ingressos vs. despeses per mes) per ajudar a detectar tendències a les vostres dades financeres.
Una de les majors fortaleses de Fava és convertir les dades del llibre major en informes visuals i interactius instantàniament. Tan bon punt es carrega el llibre major, Fava genera gràfics que fan fàcil entendre els fluxos de caixa i les tendències d'un cop d'ull:
-
Treemap/Sunburst d'ingressos i despeses: A la pàgina del compte de resultats, Fava pot mostrar els vostres ingressos i despeses com a treemap o diagrama de sunburst. Aquests són ideals per a la visualització de flux de caixa "d'un cop d'ull". Per exemple, si les vostres despeses mensuals es mostren com a treemap, l'àrea de cada rectangle correspon a la magnitud de cada categoria de despesa. Els blocs grans mostren immediatament on ha anat la major part dels vostres diners (p. ex. lloguer o hipoteca, impostos, etc.), mentre que els blocs més petits mostren despeses menors. Això és extremadament útil per detectar tendències en la despesa – si el bloc "Dining Out" ha anat creixent cada mes, ho notareu visualment. Podeu canviar a un gràfic de sunburst per veure desglossaments jeràrquics (p. ex. l'anell exterior podria mostrar subcategories com Groceries vs Restaurants dins de la categoria Food). Aquests gràfics s'actualitzen per al període que hàgiu filtrat (un mes, any fins a la data, etc.), donant-vos una visualització instantània del flux de caixa per a aquest període. Un usuari del fòrum de comptabilitat de text pla va assenyalar: "Faig molt ús dels treemaps d'ingressos i despeses. Donen una gran sensació visual dels nostres moviments fiscals." – aquest tipus de comprensió immediata és exactament el que busquen els gràfics de Fava.
-
Patrimoni net i saldo al llarg del temps: Fava proporciona un gràfic de línies per al patrimoni net al llarg del temps (a la pàgina "Balance Sheet" o "Statistics"). Aquest gràfic traça la suma dels vostres actius menys passius a cada punt en el temps (per dia, setmana o mes). És invaluable per detectar tendències – podeu veure la trajectòria de les vostres finances (p. ex. constantment a l'alça, o caigudes en moments determinats). Si teniu inversions, podeu alternar entre mostrar el valor a cost vs a mercat (si es registren dades de preus) – per exemple, podríeu veure que el vostre patrimoni net a valor de mercat fluctua amb els preus de les accions, mentre que a cost és més suau. Fava també pot mostrar els saldos dels comptes al llarg del temps. Si feu clic en un compte (per exemple Assets:Bank:Checking), la pàgina del compte mostra un gràfic de l'historial de saldo d'aquest compte. Podeu inspeccionar instantàniament com es mou el vostre compte d'efectiu – que és efectivament un gràfic de flux de caixa (el pendent de la línia de saldo indica el flux de caixa net). Si tendeix a baixar, sabeu que esteu gastant més del que guanyeu en aquest període. Examinant aquestes tendències, podríeu detectar patrons com "cada desembre els meus estalvis baixen (despeses de vacances)" o "les meves inversions van créixer fortament aquest trimestre".
-
Gràfics de barres per a comparació periòdica: A la vista del compte de resultats, Fava té pestanyes per a "Monthly Profit", "Monthly Income", "Monthly Expenses", etc. Seleccionant-les es mostren gràfics de barres per mes. Per exemple, Monthly Net Profit mostrarà el superàvit/dèficit de cada mes com una barra, facilitant la comparació del rendiment entre mesos. Podeu identificar ràpidament valors atípics (p. ex. una gran barra negativa a l'abril significa que aquell mes va tenir una pèrdua/despesa inusual). De manera similar, el gràfic de barres "Monthly Expenses" apila o agrupa les despeses per categoria per mes, de manera que podeu veure quines categories fluctuen. Això és ideal per detectar tendències al llarg del temps – p. ex. podríeu notar que les vostres despeses de "Travel" es disparen cada estiu, o que les factures de "Utilities" són més altes a l'hivern. Fava essencialment us proporciona algunes de les capacitats d'una aplicació de pressupostos (seguiment de tendències) però amb total personalització (ja que vosaltres definiu les categories i com s'agrupen).
-
Filtratge en temps real i inspecció de dades: Les visualitzacions de Fava no són estàtiques; funcionen conjuntament amb el filtratge de Fava. Suposem que voleu inspeccionar un escenari específic: "Com són els meus fluxos de caixa trimestrals només per als comptes de la meva empresa?" Podeu configurar el filtre de temps a Q1 2025 i filtrar els comptes a la vostra jerarquia Business – Fava actualitzarà instantàniament els gràfics per mostrar el resultat net, el treemap de despeses, etc., però només per a aquest subconjunt. Aquest tall interactiu significa que podeu fer anàlisis ad-hoc molt ràpidament, sense escriure consultes. La vista Journal també admet filtratge en directe: podeu cercar per beneficiari o subcadena de narrativa i veure una llista filtrada de transaccions immediatament. Si esteu mirant dades en temps real (per exemple, acabeu d'importar les transaccions de la setmana passada), podríeu filtrar per una etiqueta com
#uncategorizedper veure noves transaccions que potser cal categoritzar, o per@pending(si marqueu entrades pendents) per veure què encara no està compensat. Aquesta capacitat d'inspecció en temps real ajuda també a garantir la qualitat de les dades—perquè podeu aïllar i abordar anomalies sobre la marxa. -
Estat de flux de caixa (indirecte): Tot i que Beancount/Fava no produeix un estat de flux de caixa formal (desglossament d'operacions/inversions/finançament) de sèrie, el podeu imitar amb consultes personalitzades o estructurant comptes. Per exemple, podríeu etiquetar certes transaccions o utilitzar comptes específics per a inversions i finançament, i després consultar els totals. La interfície de consulta de Fava executa BQL com
SELECT sum(position) WHERE account ~ 'Assets:Bank:Checking'. Retorna el saldo del compte corrent darrere dels gràfics. L'exemple pràctic següent mostra el cicle complet. Dit això, la majoria d'usuaris personals troben que la combinació de tendències de saldo i gràfics d'ingressos/despeses és suficient per entendre els fluxos de caixa. -
Visualització de participacions i cartera: A la pàgina Holdings, Fava llista les vostres participacions actuals en commodities (p. ex. accions, bons, criptomonedes) amb quantitats, cost, valor de mercat i guanys no realitzats. Tot i que això és una taula, no un gràfic, és molt útil per a la inspecció en temps real de l'estat de la vostra cartera. Algunes extensions de la comunitat (com fava-investor, comentada més endavant) afegeixen més visuals per a carteres, com gràfics de sectors d'assignació o gràfics de rendiment. Fins i tot sense extensions, podeu veure p. ex. com canvia el valor de la vostra cartera d'accions segons els últims preus – si actualitzeu les cotitzacions de preus regularment (cosa que es podria automatitzar diàriament), els gràfics de Fava reflectiran els últims preus datats disponibles, que poden ser més antics que el moment en què obriu l'informe.
Exemple treballat: dos mesos de despeses
Aquest exemple s'executa de principi a fi amb Beancount 3.2.3 amb beanquery 0.2.0. Deseu el llibre major com a example.beancount. Conté dos pagaments de salari i quatre despeses.
option "title" "Analytics example"
option "operating_currency" "USD"
2024-01-01 open Assets:Bank:Checking USD
2024-01-01 open Expenses:Food:Groceries USD
2024-01-01 open Expenses:Food:Dining USD
2024-01-01 open Expenses:Housing:Rent USD
2024-01-01 open Income:Salary USD
2024-01-01 open Equity:Opening-Balances USD
2024-01-05 * "Employer" "January salary"
Income:Salary -3000.00 USD
Assets:Bank:Checking 3000.00 USD
2024-01-08 * "Grocery Store" "Weekly groceries"
Expenses:Food:Groceries 120.00 USD
Assets:Bank:Checking -120.00 USD
2024-01-12 * "Restaurant" "Dinner out"
Expenses:Food:Dining 80.00 USD
Assets:Bank:Checking -80.00 USD
2024-02-01 * "Landlord" "February rent"
Expenses:Housing:Rent 1000.00 USD
Assets:Bank:Checking -1000.00 USD
2024-02-05 * "Employer" "February salary"
Income:Salary -3000.00 USD
Assets:Bank:Checking 3000.00 USD
2024-02-10 * "Grocery Store" "Weekly groceries"
Expenses:Food:Groceries 150.00 USD
Assets:Bank:Checking -150.00 USDComproveu-lo primer. Després executeu la consulta de despeses per categoria.
bea --file example.beancount check
bea --file example.beancount query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account ORDER BY account"Un llibre major net surt amb codi 0 de bea check; els errors es llisten amb una sortida diferent de zero. La consulta retorna una fila per compte de despesa.
account sum(position)
----------------------- ------------
Expenses:Food:Dining 80.00 USD
Expenses:Food:Groceries 270.00 USD
Expenses:Housing:Rent 1000.00 USDDues consultes més completen la imatge. Ingressos totals i despeses totals:
SELECT sum(position) WHERE account ~ 'Income'
SELECT sum(position) WHERE account ~ 'Expenses'Retornen (-6000.00 USD) i (1350.00 USD). Així, la llar va guanyar 6.000,00 USD, va gastar 1.350,00 USD i va estalviar un 77,5%. El saldo del compte corrent ho confirma:
SELECT sum(position) WHERE account ~ 'Assets:Bank:Checking'Retorna (4650.00 USD). Les mateixes consultes s'executen sense canvis a la pàgina Query de Fava. Fava 1.30.16 renderitza les mateixes tres files de despeses com una taula interactiva.
A la pràctica, els informes visuals de Fava s'actualitzen tan ràpidament com les dades subjacents. En el moment en què s'afegeix una nova transacció i es recarrega la pàgina, els gràfics es recalculen. No cal un llarg reprocessament. Això significa que si teniu un pipeline semiautomatitzat que alimenta dades durant tot el dia, podeu mantenir Fava obert i prémer actualitzar periòdicament per obtenir gràfics actualitzats – efectivament monitoratge financer en temps real.
Per exemple, imagineu que dirigiu una petita empresa i voleu monitorar l'efectiu disponible i les despeses diàries. Podríeu tenir Fava obert en un quadre de comandament personalitzat (potser utilitzant una extensió o la pantalla de consulta) que mostri "Cash account balance today" i "Expenses – Today vs. Yesterday". Cada vegada que actualitzeu després que arribin noves dades, veuríeu aquests números actualitzar-se. Això és similar al que proporcionen els costosos quadres de comandament en temps real, però utilitzant eines de codi obert. La diferència és que potser haureu d'actualitzar manualment o programar actualitzacions, mentre que aquestes eines envien les actualitzacions automàticament. Però funcionalment, la informació que obteniu és la mateixa, amb el benefici afegit que podeu aprofundir en qualsevol número a Fava (feu-hi clic per veure les transaccions subjacents) – cosa que molts quadres de comandament de BI no tenen.
En resum, Fava converteix les vostres dades comptables en informació visual immediata: desglossaments de flux de caixa, línies de tendència, comparacions al llarg del temps i filtratge interactiu us ajuden a veure la història darrere dels números. Tant si esteu inspeccionant les despeses de la setmana passada per detectar anomalies com si reviseu tendències de diversos anys en el patrimoni net, els gràfics i informes de Fava proporcionen claredat en temps real (tan bon punt les vostres dades hi són). A continuació, veurem com podeu ampliar aquestes capacitats o integrar-les amb eines externes si necessiteu una analítica encara més personalitzada.
Integració amb Panells Externs i Eines de Visualització
Tot i que Fava proporciona un ric conjunt d'informes i gràfics integrats, és possible que vulgueu integrar les dades de Beancount amb altres eines d'intel·ligència de negoci (BI) o quadres de comandament com Grafana, Metabase, o interfícies web personalitzades (p. ex. una aplicació React). La motivació podria ser combinar dades financeres amb altres fonts de dades, utilitzar capacitats avançades de gràfics, o compartir quadres de comandament amb altres en un format diferent. Gràcies a l'obertura de Beancount, hi ha múltiples maneres d'aconseguir la integració:
-
Integració amb bases de dades (BeanSQL / Beanpost): Un enfocament senzill és exportar o sincronitzar el vostre llibre major de Beancount amb una base de dades SQL. Un cop a SQL, qualsevol eina de BI pot consultar les dades. De fet, membres de la comunitat han creat eines per a això. Per exemple, Beanpost és un experiment que reflecteix un llibre major de Beancount en una base de dades PostgreSQL, implementant gran part de la lògica de Beancount com a funcions SQL. Això proporciona "un backend flexible que es pot integrar amb altres eines com aplicacions web o sistemes d'informes." Podeu executar Beanpost per sincronitzar contínuament el vostre llibre major de text amb Postgres. Llavors, una eina com Metabase o Tableau es pot connectar a aquesta base de dades Postgres i podeu construir qualsevol gràfic o quadre de comandament que vulgueu (actualitzant-se en directe a mesura que la BD s'actualitza). Un usuari va informar d'utilitzar Postgres + PostGraphile per exposar automàticament una API GraphQL per a les dades del llibre major i després escriure una interfície React personalitzada a sobre – tractant essencialment el llibre major com un servei web. Aquest enfocament aborda casos en què la interfície de Fava podria no ser suficient (p. ex. accés multiusuari, o interfícies més aptes per a mòbils). És més intensiu en enginyeria, però mostra el potencial: podeu integrar Beancount amb piles web modernes relativament fàcilment. Una variant més lleugera és exportar els resultats de les consultes a SQLite – executar
bea --file ledger.beancount query "SELECT ..."imprimeix una taula que podeu enganxar o canalitzar, i el CSV de full de càlcul des de la CLI espera opcions d'exportació natives per abea query. Algunes persones utilitzen SQLite com a intermediari per connectar-se a eines com Metabase (que pot llegir fitxers SQLite mitjançant una connexió). -
Grafana (quadres de comandament de sèries temporals): Grafana és popular per al monitoratge i dades de sèries temporals. Les dades financeres al llarg del temps (despeses, saldos) es poden tractar com a sèries temporals. Hi ha hagut discussions a la comunitat sobre connectar Beancount amb Grafana. Una idea era un connector de font de dades de Grafana que pogués executar consultes BQL contra un fitxer de Beancount sobre la marxa. Això permetria als panells de Grafana mostrar directament, per exemple, "Balance of Checking account" com un indicador o "Expenses over last 30 days" com un gràfic, consultant el llibre major. A dia d'avui (2025), no s'ha publicat cap connector dedicat, però els entusiastes han construït solucions ad-hoc. Per exemple, un usuari de Reddit aquilax va construir un servidor simple que fa que les dades de Ledger CLI estiguin disponibles per a Grafana, i el va compartir com grafana-ledger-datasource-server. Un concepte similar es pot aplicar a Beancount: escriuríeu un petit servidor HTTP en Python que carregui el llibre major de Beancount (utilitzant l'API de Beancount per consultar dades) i exposi endpoints que retornin marcs de dades JSON per a Grafana. Grafana té un connector genèric de font de dades JSON que podria llavors obtenir dades d'aquesta API. A la pràctica, això significa que podríeu dissenyar un quadre de comandament de Grafana amb panells com "Monthly Revenue (bar chart)" o "Daily Cash Balance (line chart)", i aquests panells obtenen dades de la vostra API basada en Beancount. Grafana permetria opcions de visualització riques (anotacions, llindars, combinar amb mètriques del servidor, etc.). Andreas Gerstmayr (un dels mantenidors de Fava) va suggerir exactament aquest enfocament i fins i tot va esmentar que va crear una extensió de Fava anomenada fava-dashboards (en parlarem més avall) per renderitzar gràfics a partir de consultes BQL, com a alternativa a una configuració completa de Grafana. Si preferiu la interfície de Grafana, la integració és factible – només requereix construir el pont de dades.
-
Metabase (consultes ad-hoc i quadres de comandament): Metabase és una eina de BI fàcil d'usar que us permet executar consultes i crear quadres de comandament sense codi. Si exporteu el vostre llibre major a un format relacional (via Beanpost o escrivint taules de transaccions, anotacions, etc.), podeu apuntar Metabase a aquesta base de dades. Podríeu crear taules personalitzades com
expenses (date, category, amount)a partir del vostre llibre major, i després a Metabase podeu generar gràfics fàcilment (p. ex. un gràfic de sectors de despeses per categoria del mes passat). El benefici és que els usuaris no tècnics (o col·legues) podrien llavors interactuar amb les dades a través de la interfície gràfica de Metabase sense necessitat de tocar el fitxer de Beancount. L'inconvenient és que heu de mantenir l'exportació/sincronització. Alguns usuaris han automatitzat la conversió nocturna del llibre major de Beancount a SQLite, i després deixen que Metabase llegeixi l'SQLite; altres podrien utilitzar l'enfocament de Postgres esmentat. La clau és que la portabilitat de dades de Beancount ho fa possible – sou lliures de duplicar les dades en qualsevol forma que la vostra eina externa necessiti. -
Interfícies/aplicacions personalitzades: Si teniu necessitats específiques, sempre podeu escriure una aplicació personalitzada sobre Beancount. La biblioteca Python de Beancount us dóna accés a totes les entrades analitzades, saldos, etc., així que es pot utilitzar un marc web de Python (Flask, Django, FastAPI) per construir una aplicació a mida. Per exemple, una petita empresa podria construir un quadre de comandament que mostri mètriques KPI (com el marge brut, les vendes diàries, etc.) consultant el llibre major i potser combinant amb dades que no són del llibre major (com el nombre de clients atesos). Un membre de la comunitat va construir una interfície web apta per a mòbils perquè Fava no era intuïtiu per al seu cònjuge – van aprofitar el llibre major en una base de dades per impulsar aquesta interfície personalitzada. Si preferiu JavaScript/TypeScript, podríeu utilitzar una eina per convertir el llibre major en JSON i construir a partir d'aquí. La mateixa Fava exposa la seva pàgina Query a través d'una API de consulta JSON, així que una interfície personalitzada pot enviar-li BQL i renderitzar les taules retornades en lloc de construir un nou backend de consultes.
-
Integració amb Excel/PowerBI: Val la pena assenyalar que fins i tot podeu integrar-vos amb Excel o PowerBI. Fins que
bea queryobtingui exportació CSV nativa, utilitzeu l'exportació de la pàgina Query de Fava per a fitxers de full de càlcul que Excel obre directament. Un flux de treball podria ser: una feina nocturna genera un fitxer CSV de finances clau des de Beancount, i PowerBI està configurat per importar aquest fitxer. És una mica indirecte, però per a organitzacions que ja utilitzen Excel/PowerBI intensament, és una integració de baixa fricció. PowerBI també admet fonts de dades de Python, així que es podria escriure un breu script de Python que executi consultes BQL i utilitzar-lo com a font de dades dins de PowerBI, aconseguint una connexió directa.
Estudi de cas – Idea d'integració amb Grafana: Josh, un usuari de Beancount, va preguntar a la llista de correu sobre enviar mètriques de Beancount a Prometheus i veure-les a Grafana. Els desenvolupadors principals van respondre que, en lloc de duplicar dades a Prometheus, un millor enfocament és un connector o servei de Grafana que consulti directament el llibre major de Beancount. Andreas va compartir la seva extensió fava-dashboards que renderitza gràfics personalitzats dins de la mateixa Fava com a exemple de solució. La conclusió és: teniu opcions – o bé integrar-vos mitjançant infraestructura de BI existent (Prometheus+Grafana o SQL+Metabase) o bé ampliar Fava per satisfer les vostres necessitats (la propera secció aprofundirà en això).
Consideracions de seguretat i multiusuari: Si us integreu amb eines externes, tingueu en compte la sensibilitat de les dades. El text pla de Beancount sovint conté informació financera privada, així que qualsevol servidor que l'exposi hauria d'estar assegurat (autenticat). Si moveu dades a una eina de BI al núvol, podríeu perdre una mica de privacitat. Les eines autoallotjades (versions de codi obert de Grafana/Metabase) es poden executar localment per mitigar-ho. A més, si diverses persones necessiten veure quadres de comandament, un quadre de comandament extern de només lectura podria ser preferible a donar accés a tothom a Fava (on podrien editar dades si no tenen cura). Per exemple, una startup podria utilitzar Beancount internament però utilitzar Metabase per deixar que els caps de departament vegin la despesa vs el pressupost sense tocar els fitxers del llibre major.
En resum, Beancount i Fava es porten bé amb els altres. Podeu aprofitar tot l'ecosistema d'eines de dades amb una mica de codi d'unió: enviar les dades del llibre major a una base de dades SQL per a eines de BI, servir-les via API per a aplicacions web, o fins i tot utilitzar biblioteques especialitzades per transmetre-les a sistemes de sèries temporals. Aquesta flexibilitat significa que mai us quedeu encallats si les visuals integrades de Fava no compleixen un requisit específic – sempre podeu integrar-vos en una altra plataforma mentre continueu utilitzant Beancount com a font de veritat. A continuació, veurem com ampliar la mateixa Fava amb connectors i quadres de comandament personalitzats, que sovint és una ruta més fàcil que la integració externa si només necessiteu unes quantes funcions addicionals.
Taulers de Control Personalitzats i Ampliació de Fava amb Plugins (Exemples de Codi)
Fava està dissenyat per ser extensible: podeu afegir noves pàgines, gràfics i comportaments escrivint connectors (extensions) de Fava en Python. Això permet adaptar la interfície web a les vostres necessitats específiques sense construir una aplicació separada sencera. Explorarem dues vies clau per a la personalització: (1) Utilitzar o escriure extensions de Fava, i (2) Configurar quadres de comandament personalitzats mitjançant connectors de la comunitat com fava-dashboards.
Extensions de Fava (Plugins personalitzats)
Una extensió de Fava és essencialment un mòdul de Python que defineix una subclasse de fava.ext.FavaExtensionBase. Quan Fava s'inicia, pot carregar aquest mòdul i integrar-lo a l'aplicació. Les extensions poden registrar noves pàgines d'informe, enganxar-se a esdeveniments, i fins i tot incloure JavaScript personalitzat per a la interactivitat. Fava 1.30.16 n'inclou dues: fava.ext.auto_commit i fava.ext.portfolio_list. Altres es poden instal·lar via pip o escriure des de zero.
Per habilitar una extensió, utilitzeu la directiva personalitzada de Beancount al vostre fitxer del llibre major:
2010-01-01 custom "fava-extension" "my_extension_module" "{'option': 'value'}"Això indica a Fava que carregui el mòdul donat. Si heu instal·lat una extensió via pip, referenciaríeu el seu nom de mòdul aquí. La cadena opcional al final és la configuració per a l'extensió. Fava l'analitza com a literal de Python, així que "{'option': 'value'}" arriba com un dict.
Exemple – Extensió Auto-Commit: La inclosa fava.ext.auto_commit fa commit dels canvis a git quan editeu el fitxer a través de Fava. Si volguéssiu utilitzar-la, afegiríeu:
2025-01-01 custom "fava-extension" "fava.ext.auto_commit"Sobreescriu after_write_source, after_insert_entry, after_entry_modified, after_delete_entry i after_insert_metadata. Cada hook executa un git commit al directori propi del fitxer del llibre major. Així que el llibre major ja ha de viure en un checkout de git. Demostra com les extensions s'enganxen als esdeveniments d'edició de Fava.
Exemple – Extensió Portfolio List: La inclosa fava.ext.portfolio_list afegeix una pàgina que llista els vostres comptes d'inversió. Estableix report_title = "Portfolio List" i inclou una plantilla. Fava detecta això i afegeix una nova entrada a la barra lateral "Portfolio List" sota Reports. També estableix has_js_module = True per carregar el seu JavaScript acompanyant. Per habilitar-la explícitament, afegiríeu:
2025-01-01 custom "fava-extension" "fava.ext.portfolio_list"(No cal configuració en aquest cas.)
Escriure una extensió personalitzada: Suposem que voleu una pàgina d'informe personalitzada, per exemple "Receivables Aging" per a factures. Podríeu crear un fitxer receivables.py com:
# receivables.py
from fava.ext import FavaExtensionBase
class ReceivablesReport(FavaExtensionBase):
report_title = "Receivables Aging"
def after_load_file(self):
# Runs after Fava loads the ledger. Summarise open
# invoices here so the template only renders.
self.overdue = [
txn for txn in self.ledger.all_entries
if "invoice" in getattr(txn, "tags", set())
]També crearíeu una templates/ReceivablesReport.html al costat del mòdul per definir l'HTML de la pàgina. En aquesta plantilla, podeu llegir atributs com self.overdue que el vostre hook ha preparat. Un cop escrita aquesta extensió, afegiu al vostre llibre major:
2025-01-01 custom "fava-extension" "receivables"(assumint que receivables.py és al directori del fitxer de Beancount o al PYTHONPATH, Fava el pot trobar pel nom). En iniciar Fava, veuríeu ara una pàgina "Receivables Aging".
Sota el capó, Fava crida els mètodes de la vostra extensió en punts fixos. Els hooks disponibles a Fava 1.30.16 són after_load_file, before_request, after_entry_modified, after_insert_entry, after_delete_entry, after_insert_metadata i after_write_source. Un mètode decorat amb @extension_endpoint es converteix addicionalment en un endpoint d'API JSON sota l'extensió. Normalment, els hooks proporcionats més una plantilla són suficients.
La documentació de Fava assenyala que el sistema d'extensions encara està evolucionant, però és utilitzable. De fet, moltes funcions avançades s'han prototipat com a extensions.
Taulers personalitzats amb fava-dashboards (Extensió de la Comunitat)
En lloc d'escriure una extensió des de zero, podríeu utilitzar el connector de tercers fava-dashboards creat per un mantenidor de Fava. Aquesta extensió us permet definir quadres de comandament arbitraris mitjançant un fitxer de configuració YAML, barrejant text, taules i gràfics, impulsats per consultes BQL. És bàsicament una manera de crear noves "pàgines" a Fava que contenen múltiples panells personalitzats.
Instal·lació i configuració: Primer, instal·leu el paquet (p. ex. pip install fava-dashboards). La versió 2.0.2 es carrega netament al costat de Fava 1.30.16. Després, al vostre fitxer de Beancount, activeu-lo amb una directiva personalitzada que apunti a la vostra configuració de quadres de comandament. Per exemple:
2010-01-01 custom "fava-extension" "fava_dashboards" "{ 'config': '/path/to/dashboards.yaml' }"(fava-dashboards/README.md at main · andreasgerstmayr/fava-dashboards · GitHub). Això indica a Fava que carregui el mòdul fava_dashboards i llegeixi el vostre fitxer YAML per a la configuració.
Format YAML dels quadres de comandament: Al dashboards.yaml, definiu un o més quadres de comandament i els seus panells. Dues regles provenen del propi pipeline de l'extensió. Les columnes agregades necessiten un àlies AS. I s'aplica la convenció de signes de BQL: les sumes d'ingressos arriben negatives, les despeses positives. Per exemple:
dashboards:
- title: "Cash Flow Dashboard"
panels:
- title: "Net Cash This Month"
width: 50%
queries:
- bql: "SELECT sum(position) AS net_cash WHERE account ~ 'Income' OR account ~ 'Expenses'"
type: "jinja2"
template: "<h1>{{ panel.queries[0].result[0][0] }}</h1>"
- title: "Spending by Category"
width: 50%
queries:
- bql: "SELECT account AS category, sum(position) AS total WHERE account ~ 'Expenses' GROUP BY account ORDER BY account"
type: "jinja2"
template: "<table>{% for row in panel.queries[0].result %}<tr><td>{{ row[0] }}</td><td>{{ row[1] }}</td></tr>{% endfor %}</table>"El primer panell mostra la posició sumada directament. Al llibre major de l'exemple pràctic renderitza (-4650.00 USD). Això és 6.000,00 USD d'ingressos nets de 1.350,00 USD de despeses. El segon panell recorre les files de la consulta en una taula. El projecte també renderitza panells de gràfics a partir de les mateixes consultes. Vegeu el README enllaçat per a l'API de scripts de gràfics.
L'extensió s'encarrega de renderitzar-los quan obriu la pàgina del quadre de comandament a Fava. Podeu crear múltiples quadres de comandament (cadascun apareix com una pestanya o pàgina separada). Això és extremadament potent per crear quadres de comandament financers personalitzats. Per exemple, podríeu fer un quadre de comandament "Budget vs Actual": un panell mostra una taula de pressupost vs real per categoria (mitjançant una consulta que compara dos conjunts de comptes), un altre panell mostra un gràfic de barres de la despesa de l'any fins a la data vs l'any anterior, etc. Tot això només amb configuració i scripting mínim, aprofitant les dades del vostre llibre major via BQL.
Exemple de codi – Habilitar fava-dashboards: Com es mostra més amunt, afegir l'extensió és una línia al vostre llibre major. Per completesa, aquí teniu un exemple mínim en context:
option "title" "My Ledger"
option "operating_currency" "USD"
plugin "beancount.plugins.auto_accounts" ; (auto-opens accounts)
1970-01-01 custom "fava-extension" "fava_dashboards" "{ 'config': 'dashboards.yaml' }"I a dashboards.yaml:
dashboards:
- title: "Overview"
panels:
- title: "Net Worth"
queries:
- bql: "SELECT sum(position) AS net_worth WHERE account ~ 'Assets' OR account ~ 'Liabilities'"
type: "jinja2"
template: "<div>Net Worth: {{ panel.queries[0].result[0][0] }}</div>"Al llibre major de l'exemple pràctic això renderitza <div>Net Worth: (4650.00 USD)</div>. Un quadre de comandament real es formataria bé i afegiria més panells.
Amb això en el seu lloc, quan executeu Fava i navegueu al quadre de comandament "Overview", mostrarà el vostre patrimoni net calculat. Llavors podeu refinar la plantilla o afegir gràfics segons calgui.
Altres extensions destacables: A part de fava-dashboards, membres de la comunitat han construït connectors com fava-investor per a anàlisi d'inversions i fava-review per a revisió de transaccions. Són paquets de tercers amb els seus propis passos d'instal·lació i rangs de compatibilitat amb Fava. Consulteu els seus READMEs abans d'instal·lar-los. La comunitat manté una llista "awesome-beancount" de connectors i eines. Fullejant-la, podríeu trobar una extensió prefabricada que satisfaci les vostres necessitats.
Quan ampliar vs integrar externament: Generalment, si la vostra necessitat és purament de presentació o càlcul sobre les dades existents del llibre major, una extensió de Fava és ideal (manté tot en un sol lloc, respecta els filtres, etc.). Si la vostra necessitat implica combinar dades externes o requeriu una interfície dràsticament diferent, la integració externa (secció anterior) podria estar justificada. Per exemple, mostrar analítica de lloc web al costat de les finances – millor a Grafana/Metabase; però afegir un nou KPI financer o informe – millor com a connector de Fava.
Exemple – Un KPI personalitzat a Fava: Diguem que voleu fer seguiment de la "Taxa d'estalvi" (percentatge d'ingressos estalviats). Podríeu fer-ho amb una extensió que la calculi i mostri una petita caixa a la pàgina principal. O amb fava-dashboards, un panell podria ser un Jinja2 que produeixi Savings Rate: X% consultant els ingressos totals i les despeses totals. Aquest tipus de mètrica personalitzada és molt fàcil d'injectar amb aquestes eines, mentre que en un sistema tancat com QuickBooks podria ser impossible crear una nova mètrica al quadre de comandament.
Les mateixes dues consultes alimenten un panell de taxa d'estalvi. Tingueu cura amb els signes: el sum(position) de BQL retorna els ingressos com a posició negativa i les despeses com a positiva, i Jinja no pot restar una posició d'una altra. Així que mostreu les dues potes i indiqueu la taxa al text de la plantilla:
- title: "Savings Rate"
panels:
- title: "Savings Rate"
queries:
- bql: "SELECT sum(position) AS income_total WHERE account ~ 'Income'"
- bql: "SELECT sum(position) AS expense_total WHERE account ~ 'Expenses'"
type: "jinja2"
template: "<h3>Savings Rate: 77.5% ({{ panel.queries[0].result[0][0] }} earned, {{ panel.queries[1].result[0][0] }} spent)</h3>"Al llibre major de l'exemple pràctic això renderitza Savings Rate: 77.5% ((-6000.00 USD) earned, (1350.00 USD) spent). La taxa és (6.000,00 − 1.350,00) / 6.000,00. Calculeu-la a partir de les magnituds. No negueu ni resteu les posicions dins de la plantilla.
El punt clau: Fava no és una eina estàtica – és una plataforma extensible. Amb una mica de Python o fins i tot només codi de configuració, la podeu adaptar àmpliament. Molts usuaris comparteixen petits scripts o extensions als fòrums per fer coses com mostrar factures properes, generar factures PDF a partir de transaccions, o integrar Beancount amb biblioteques de càlcul d'impostos. Quan invertiu en aprendre o utilitzar aquestes extensions, obteniu un sistema d'analítica financera molt a mida sense començar de zero.
Casos d'Ús: Finances Personals vs Comptabilitat per a Petites Empreses
Beancount i Fava es poden utilitzar tant per a comptabilitat personal com de petites empreses, però els casos d'ús i beneficis difereixen lleugerament en èmfasi:
Finances Personals
Per als individus, Beancount+Fava destaca per oferir visibilitat i informació completes sobre les finances pròpies sense dependre d'aplicacions propietàries. Els casos d'ús comuns de finances personals inclouen:
-
Seguiment de despeses i pressupostos: Molts utilitzen Beancount per registrar cada despesa i després analitzar els patrons de despesa. Amb Fava, poden veure on van els diners cada mes (treemap de despeses) i fer seguiment de pressupostos comparant amb valors esperats (alguns ho fan mitjançant l'extensió Budgets o consultes personalitzades). Un usuari va descriure que després d'adoptar Beancount, "l'anàlisi de dades financeres (despesa, donacions, impostos, etc.) és trivial. És fàcil amb Fava, però també fàcil amb scripts... Tinc un script de Python que extreu dades de Beancount utilitzant BQL, després utilitzo pandas per preparar un informe.". Això demostra com els usuaris personals es beneficien tant de la interfície integrada com de la capacitat de programar anàlisis personalitzades quan cal.
-
Seguiment de patrimoni net i objectius: Com que podeu incloure tots els actius (comptes bancaris, inversions, fins i tot actius físics si voleu) en un sol llibre major, obteniu una vista única del patrimoni net. Els aficionats a les finances personals utilitzen això per fer seguiment del progrés cap als objectius (p. ex. el "número FI" o el pagament de deutes). Els gràfics de Fava que mostren el patrimoni net al llarg del temps són motivadors – podeu veure literalment la corba de la vostra riquesa. És habitual fer seguiment de passius com préstecs d'estudi o hipoteques a Beancount i actualitzar-ne els saldos; el llibre major dóna llavors una imatge completa de la salut financera.
-
Inversions i criptomonedes: L'ús personal sovint s'estén al seguiment d'una cartera. Beancount pot gestionar accions, criptomonedes, etc., amb base de cost i càlculs de guanys realitzats (via connectors o consultes). L'avantatge respecte al lloc d'un broker és que podeu consolidar tots els comptes i veure la veritable assignació d'actius. Els connectors de la comunitat com fava-investor, per exemple, afegeixen pàgines d'anàlisi d'inversions a Fava. Això és una cosa que típicament fan els inversors aficionats a Excel; Beancount proporciona una manera més rigorosa i automatitzada. Un article de blog titulat "Beancount: DeFi Accounting For Noobs" fins i tot il·lustra com utilitzar-lo per fer seguiment de transaccions de criptomonedes i yield farming, cosa que mostra la seva flexibilitat en escenaris moderns de finances personals.
-
Finances personals multidevises: Si viviu a l'estranger o teniu inversions estrangeres, Beancount és extremadament útil perquè pot convertir i agregar divises. Els usuaris han assenyalat que "molts programes comptables no són bons amb múltiples divises... Amb Beancount, podeu definir qualsevol commodity que vulgueu", i obtenir informes en la vostra divisa preferida. Per a un usuari personal que tracta, per exemple, amb un salari en USD però despeses en EUR, això és un gran avantatge.
-
Seguiment de la vida i diari: Un cas d'ús poc convencional però real: alguns tracten el llibre major com un registre de vida, etiquetant transaccions amb esdeveniments vitals (com
#weddingo#vacation2025) i després utilitzant-lo per calcular costos d'esdeveniments o fins i tot com a diari d'activitats (metadades financeres com a proxy d'esdeveniments vitals). El format de text pla i l'etiquetatge ho fan possible d'una manera que les eines tradicionals no permeten fàcilment. -
Simplicitat i propietat: Les finances personals també són una qüestió de mentalitat. Molts trien Beancount perquè "volien posseir aquestes dades i analitzar-les fàcilment, i no volien quedar atrapats en una subscripció o un proveïdor". La recent desaparició de Mint.com (una popular eina gratuïta de pressupostos) ha impulsat els entusiastes cap a la comptabilitat de text pla per longevitat. Amb Beancount, saben que encara podran obrir el seu llibre major d'aquí a 20 anys. Per a les finances d'un sol individu, les dades de Beancount (potser sincronitzades via Dropbox o Git) i la interfície web de Fava (que es pot executar localment o en un servidor privat) donen un equilibri de comoditat i control que és difícil de trobar en altres llocs.
Reptes potencials per a l'ús personal: la configuració inicial i aprendre la partida doble poden ser un obstacle per a alguns. Però molts recursos (com el tutorial de Beancount i els fòrums de la comunitat) ajuden els nous usuaris. Un cop configurat, el manteniment es pot automatitzar en gran mesura com s'ha descrit, cosa que és ideal per a algú que gestiona les finances de la seva llar amb un esforç mínim.
Comptabilitat per a petites empreses
Les petites empreses, startups i freelancers també poden utilitzar Beancount+Fava, tot i que els requisits aquí inclouen informes més formals i potser col·laboració:
-
Comptabilitat i estats financers: Una empresa pot mantenir el seu llibre major general a Beancount, registrant factures, rebuts, nòmines, etc., i produir balanços de situació i comptes de pèrdues i guanys. Beancount admet la comptabilitat per meritació necessària (podeu marcar comptes com a Comptes a cobrar/a pagar i registrar factures amb anotacions a ingressos i AR, després un pagament per saldar l'AR). Fava els mostrarà llavors sota Actius o Passius adequadament. Una discussió a Reddit preguntava si Beancount és adequat per a empreses i si pot generar estats financers adequats – sí, pot produir balanços de situació, comptes de resultats i (amb una mica d'ajuda de consultes) estats de flux de caixa, ja que aquests són només vistes de les dades per partida doble. La trampa és que Beancount no imposa cap estàndard comptable particular (això depèn de com l'utilitzeu). Així que un usuari expert (o comptable) hauria de configurar correctament el pla comptable de l'empresa. Hi ha exemples de la comunitat de Beancount utilitzat per a startups – un comentarista de HN va dir: "Realment gaudeixo utilitzant Beancount + Git per gestionar el llibre comptable de la meva pròpia empresa emergent", tot i que va assenyalar que era una mica tediós afegir entrades periòdicament. Aquesta tediositat es pot alleujar amb l'automatització d'importació com hem vist.
-
Monitoratge financer en temps real: Per a una petita empresa, el flux de caixa ho és tot. Utilitzant Fava, el propietari d'una empresa pot monitorar els saldos bancaris i el flux de caixa gairebé en temps real, igual que en l'àmbit personal – però aquí és encara més crític. Automatitzant els fluxos o importacions bancàries, poden detectar si ha arribat un pagament d'un client o si s'ha compensat una gran despesa. QuickBooks ofereix fluxos bancaris que "et permeten veure com va la teva empresa en temps real"; amb Beancount, ho repliqueu amb la vostra pròpia integració bancària. El benefici de Beancount és la transparència – veieu exactament què s'ha importat i com s'ha categoritzat, en lloc de confiar en la lògica d'aparellament de vegades inescrutable de QuickBooks.
-
Facturació i AR/AP: Beancount no té un mòdul de facturació integrat (com generar factures PDF o fer seguiment de números de factura). Tanmateix, usuaris creatius ho han gestionat amb complements. Per exemple, es podria generar una factura PDF a partir d'una transacció utilitzant una plantilla Jinja2 o fins i tot un script extern que llegeixi entrades d'AR obertes. Hi ha un projecte "Beanie" que actua com un sistema lleuger d'AR sobre Beancount. Les petites empreses podrien utilitzar Beancount per al llibre major i una altra eina per emetre factures, després importar les dades de les factures a Beancount. És un pas extra en comparació amb QuickBooks (que pot enviar factures i després registrar-les automàticament un cop pagades), però assegura que totes les dades acabin al llibre major obert.
-
Nòmines i amortització: Aquestes són tasques comptables que les petites empreses gestionen. Beancount pot certament registrar entrades de nòmines (dividint el salari brut, impostos, retencions, etc. en els comptes adequats) – però típicament les calcularíeu amb eines externes o el vostre proveïdor de nòmines i després les introduiríeu. Els calendaris d'amortització d'actius fixos igualment s'introduirien manualment (o podríeu escriure un connector per automatitzar les entrades mensuals d'amortització). Beancount no té màgia per a això, però tampoc moltes eines de programari per a petites empreses més enllà d'oferir algunes plantilles. L'avantatge és que podeu programar qualsevol cosa inusual. Per exemple, si teniu un calendari personalitzat de reconeixement d'ingressos, podríeu programar aquestes entrades de diari en Python i incloure-les.
-
Transparència i auditabilitat: Les empreses podrien apreciar que Beancount proporciona un rastre d'auditoria clar. Cada transacció és simple i es pot anotar amb enllaços a documents (rebuts, contractes). Si us auditen, podeu mostrar el fitxer del llibre major juntament amb els documents adjunts, cosa que és bastant senzilla. A més, el control de versions significa que teniu un registre d'auditoria de qui/quan es van fer els canvis (si diverses persones col·laboren via Git). Compareu-ho amb QuickBooks, on un comptable podria haver d'examinar registres de canvis que no són fàcilment accessibles per a l'usuari.
-
Cost: Beancount+Fava és gratuït, cosa que és atractiva per a startups o petites empreses que intenten minimitzar costos de programari. QuickBooks, Xero, etc., tenen quotes mensuals. Tanmateix, la contrapartida és que aquests vénen amb suport i una configuració més fàcil. Un propietari d'empresa amb coneixements tècnics podria canviar de bon grat una mica de temps per estalviar costos i guanyar flexibilitat.
Exemples reals: Un altre usuari de HN va dir que ho va utilitzar per a una LLC de consultoria i va funcionar bé, però quan les transaccions van créixer, van començar a dividir fitxers anualment per mantenir la velocitat. El consens és: per a una petita empresa (per exemple, desenes de milers de transaccions per any o menys), Beancount és perfectament capaç. Si fóssiu una PIME més gran amb centenars de milers de transaccions, el rendiment podria justificar tant utilitzar un enfocament de base de dades com triar un sistema comptable fet a propòsit – tot i que tenim Beanpost per intentar abordar-ho utilitzant Postgres com a backend.
Col·laboració: Una àrea de diferència – QuickBooks Online permet que diversos usuaris (propietari, comptable, etc.) treballin simultàniament. Amb Beancount, la col·laboració podria ser via Git (diversos usuaris fan commit de canvis). Això funciona, però requereix certs coneixements de Git i resolució de conflictes si les persones editen alhora. Alguns han utilitzat plataformes Git en línia o fins i tot Google Drive per compartir el fitxer del llibre major. És factible, però no tan perfecte com el programari comptable al núvol. Tanmateix, per a un equip petit (o un comptable en solitari + propietari) és manejable, i sempre podeu concedir accés de només lectura a través de Fava (allotjar-lo en un servidor intern i deixar que altres vegin informes sense editar).
Compliment normatiu: Per a finances personals, no és un problema. Per a empreses, podríeu necessitar produir informes oficials o seguir estàndards comptables. Beancount es pot utilitzar per generar estats conformes amb GAAP, però requereix que l'usuari introdueixi les dades en conseqüència. No hi ha aplicació integrada de les regles GAAP (p. ex. cap mòdul integrat d'actius fixos per assegurar que amortitzeu correctament). Un comptable extern encara pot treballar amb un llibre major de Beancount (ja que és bàsicament un diari generalitzat) – podria exportar-lo a Excel i fer ajustos si cal. Algunes empreses podrien preferir un programari conegut per aquest motiu, o almenys tenir un comptable còmode amb dades de text pla.
Qui l'utilitza per a negocis? Probablement usuaris avançats: startups tecnològiques, freelancers amb formació en programació, o empreses que valoren molt el control de dades (p. ex. potser firmes de trading financer que volen informes personalitzats). En un fil de Reddit algú va preguntar si Beancount seria adequat per a una empresa de trading – les respostes indicaven que sí, que gestiona multidevises i pot produir els estats necessaris, però construiríeu alguna eina al seu voltant.
Per concloure aquesta secció: els usuaris de finances personals estimen Beancount per la informació i el control que dóna sobre els seus diners personals – converteix les finances en un conjunt de dades que poden consultar i del qual poden aprendre, produint coses com fer seguiment fàcil de cada despesa i calcular mètriques que les eines típiques de pressupostos no poden. Els usuaris de petites empreses aprecien la transparència, l'estalvi de costos i la facilitat de modificar – poden integrar la comptabilitat amb la resta de la seva pila de programari, i evitar el bloqueig de proveïdor o les quotes mensuals. Tots dos casos d'ús es beneficien de l'analítica en temps real: una persona podria vigilar el progrés del seu pressupost mensual, una empresa podria vigilar els fluxos de caixa diaris – en tots dos casos, Fava pot presentar informació actualitzada quan se li alimenten dades oportunes.
Comparació amb altres plataformes d’analítica en temps real
És útil comparar Beancount+Fava amb altres solucions que ofereixen analítica financera "en temps real", com QuickBooks (amb fluxos bancaris en directe) i Power BI (o quadres de comandament de BI similars). Cada enfocament té els seus punts forts i compensacions pel que fa a transparència, flexibilitat i capacitat de resposta:
| Aspecte | Beancount + Fava (codi obert) | QuickBooks (amb fluxos bancaris) | Power BI / BI genèric |
|---|---|---|---|
| Transparència i propietat de dades | Totalment transparent – les dades són text pla, podeu inspeccionar cada transacció. La lògica és tota visible (cap algorisme ocult). Poseïu el format per sempre. El control de versions pot mostrar un rastre d'auditoria de canvis. | Opac – les dades s'emmagatzemen en una base de dades propietària al núvol. Depeneu de l'exportació d'Intuit per a les còpies de seguretat. Alguns processos (p. ex. autocategorització) no són completament visibles. Registres d'auditoria limitats. Si deixeu de pagar, arrisqueu perdre l'accés fàcil a les vostres dades. | Depèn de la font de dades – Power BI en si és només una eina. Si es connecta a una base de dades oberta, manteniu la propietat d'aquestes dades. Tanmateix, els fitxers o quadres de comandament de Power BI són de format propietari i requereixen Power BI per veure'ls. La transparència dels càlculs és bona (els definiu vosaltres), però el sistema global és complex. |
| Flexibilitat i personalització | Extremadament flexible. Podeu definir qualsevol estructura de comptes, qualsevol commodity/divisa. Podeu programar comportaments o anàlisis personalitzades (Python, connectors). Cap flux de treball imposat – ho adapteu a les vostres necessitats (personals o empresarials). El sistema d'extensions de Fava i eines com fava-dashboards permeten quadres de comandament personalitzats dins de l'aplicació. Si falta alguna cosa, probablement la podeu construir o integrar vosaltres mateixos. | Moderada. QuickBooks és ric en funcions per a la comptabilitat estàndard de petites empreses (facturació, nòmines (complement separat), informes bàsics). Però esteu limitats a les funcions que proporciona Intuit. El pla comptable i les categories han d'encaixar en el seu paradigma. Els informes personalitzats són limitats; no podeu consultar arbitràriament la base de dades. Hi ha integracions però són a través de l'API d'Intuit (que és limitada) o exportant a Excel. Intercanvieu flexibilitat per comoditat. | Molt flexible per a anàlisi i visualització. Podeu crear gairebé qualsevol gràfic o KPI si les dades són accessibles. Power BI pot combinar dades financeres amb altres dades (vendes, analítica web, etc.) fàcilment. Tanmateix, no és un sistema comptable – cal tenir les dades preparades (cosa que podria venir de Beancount!). No imposa la partida doble ni els principis comptables; és una pissarra en blanc. La flexibilitat en visualització és alta (mesures DAX personalitzades, etc.), però requereix experiència. |
| Capacitat de resposta en temps real | Gairebé en temps real amb configuració. Si automatitzeu l'entrada de dades (fluxos o importacions freqüents), Fava ho reflectirà tan bon punt el llibre major s'actualitzi i es recarregui. No és "push" en temps real per defecte (cal actualització manual), però podeu actualitzar amb la freqüència que vulgueu (per minut, per hora). La velocitat d'actualització és molt ràpida (anàlisi de text en mil·lisegons per a canvis petits). Controleu la freqüència – podria ser contínua si es programa. Sense esperar cicles de sincronització del proveïdor. | Dissenyat per ser gairebé en temps real per a transaccions bancàries: "Els fluxos bancaris et permeten veure com va la teva empresa en temps real." A la pràctica, els fluxos bancaris a QuickBooks Online s'actualitzen un cop al dia o sota demanda (depèn del banc). Obté automàticament noves transaccions i intenta categoritzar-les, així que no cal importar manualment. Els canvis apareixen al quadre de comandament sense intervenció manual. Tanmateix, algunes dades (com transaccions pendents) podrien no mostrar-se fins que es compensin. A més, certs informes podrien no actualitzar-se fins que es prengui una acció. Generalment bona capacitat de resposta per a dades bancàries; menys per a coses com entrades de diari manuals (encara en temps real, però les introduïu vosaltres). | Si es configura amb una connexió en directe, els quadres de comandament es poden actualitzar en temps real o segons una programació. Per exemple, un quadre de comandament de Power BI que utilitza DirectQuery sobre una base de dades SQL es pot actualitzar cada vegada que l'obriu o fins i tot automàticament. Amb el mode Import, actualitzaríeu segons una programació (p. ex. cada hora). Així que pot ser gairebé en temps real, però la complexitat és mantenir el pipeline de dades. A més, qualsevol canvi a les dades subjacents requereix una actualització del model o les consultes. Pot haver-hi un lleuger retard segons com estigui configurat (i si s'utilitza Power BI al núvol, hi ha límits en la freqüència d'actualització automàtica en els nivells gratuïts). |
| Automatització i entrada de dades | Les importacions es poden automatitzar molt, però requereixen configuració personalitzada. Potser haureu d'escriure/mantenir scripts o utilitzar importadors de la comunitat per a cada banc o font de dades. Sense connexions bancàries de sèrie (a part de les que creeu). Així que la configuració inicial de l'automatització és esforç. D'altra banda, un cop configurat, es pot automatitzar completament sense entrada manual (com alguns usuaris han aconseguit, ~95% d'automatització). També admet entrada manual per a coses que no es poden automatitzar (amb el formulari web de Fava o edició de text). | Molt automatitzat per a fluxos bancaris/targetes de crèdit (sense codificació – només connecteu els vostres comptes a QuickBooks). També suggereix categories automàticament (utilitzant dades passades i una mica de ML). "Cada transacció se sincronitza i s'ordena instantàniament per a tu... QuickBooks recomana categories i es torna més intel·ligent amb el temps.". Això és un gran avantatge de comoditat – menys treball manual. Tanmateix, l'automatització és principalment per a comptes financers; altres coses (com dividir una despesa en classes) encara podrien requerir revisió manual. A més, si el flux bancari es trenca, l'usuari ha de reconnectar o pujar fitxers. | Power BI no tracta gens d'entrada de dades – depèn de qualsevol automatització que tingui la font de dades. Si la vostra font de dades és un full de càlcul manual, llavors no és en temps real. Si és una base de dades actualitzada per algun procés ETL, pot ser gairebé en temps real. Així que l'automatització depèn del que alimenteu a Power BI. El mateix Power BI es pot programar per actualitzar dades de fonts. En resum, Power BI pot reflectir bé dades automatitzades però no crea l'automatització (heu de tenir un pipeline de dades automatitzat que l'alimenti). |
| Col·laboració i compartició | La col·laboració via text (p. ex. Git) és potent però tècnica. Diverses persones poden contribuir editant els fitxers del llibre major i fusionant canvis. Fava es pot allotjar en mode només lectura per compartir informes amb altres, però manca de rols d'usuari o control d'accés granular de sèrie. Per a un sol usuari o un equip amb coneixements tècnics, està bé. Els auditors o comptables podrien necessitar dades exportades (p. ex. balanç de comprovació en Excel) per treballar-hi si no estan còmodes amb el format. | Accés web multiusuari amb permisos (QuickBooks Online admet comptables, múltiples usuaris empresarials amb rols). Compartició fàcil – el vostre comptable pot iniciar sessió i veure els llibres en directe. Aquest és un punt fort per a les empreses. Per a finances personals, el multiusuari és menys rellevant, però l'accés al núvol des de diferents dispositius és un avantatge (tot i que també podeu executar Fava en un núvol personal/VPS). QuickBooks també s'integra amb altres serveis (nòmines, préstecs bancaris, etc.) cosa que és útil per a empreses i difícil de replicar a Beancount. | Power BI destaca en compartir quadres de comandament, especialment si s'utilitza Power BI Service: podeu publicar quadres de comandament per a col·legues, incrustar-los en llocs web (amb la llicència adequada), etc. Està dissenyat per a la col·laboració en informació. Tanmateix, això és compartició de només lectura d'anàlisi, no edició col·laborativa de dades. Si diversos usuaris necessiten analitzar, poden fer-ho si se'ls dóna accés al projecte de BI. En resum, per comunicar resultats financers d'una manera vistosa a les parts interessades, Power BI és difícil de superar. Però no és comptabilitat col·laborativa; és anàlisi col·laborativa. |
| Cost | Gratuït (codi obert). Podeu gastar temps en lloc de diners (per a configuració/manteniment). Allotjar Fava vosaltres mateixos podria tenir un cost negligible (si és al vostre PC o un servidor barat). Sense quotes de llicència per a usuaris addicionals. | De pagament (subscripció mensual o anual). QuickBooks Online pot anar de $20 a $70+ per mes segons el pla. També hi ha quotes per a nòmines o funcions avançades. Moltes petites empreses ho paguen perquè inclou suport i actualitzacions contínues. Però al llarg dels anys, el cost s'acumula. A més, si deixeu de subscriure-us, podeu perdre l'accés complet. | Mixt. Power BI Desktop és gratuït, però la subscripció Pro (per compartir quadres de comandament) és ~$10/usuari/mes. Si ja la teniu via un Office 365 o similar, llavors el cost addicional podria ser zero. Altres eines de BI varien (algunes de codi obert com Metabase són gratuïtes d'executar). Tanmateix, teniu en compte el cost de temps de desenvolupar solucions de BI i possiblement el cost de mantenir una base de dades o infraestructura al núvol per a això. |
En resum, Beancount+Fava vs QuickBooks: Beancount ofereix una transparència superior (ho veieu i controleu tot, i les vostres dades no desapareixeran ni quedaran bloquejades) i flexibilitat (podeu modelar qualsevol cosa al llibre major, no només el que QuickBooks espera). Requereix més bricolatge, especialment per a l'automatització i els tocs de interfície agradables. QuickBooks és una solució endoll-i-funciona optimitzada per a les necessitats de les petites empreses – fluxos bancaris, facturació, nòmines (amb complements) – i proporciona actualitzacions gairebé en temps real amb un esforç mínim de l'usuari. Tanmateix, és una caixa negra en molts aspectes; confieu que el programari gestioni les vostres dades correctament, i de vegades això significa que és difícil corregir errors o entendre com ha arribat a un número. Molts usuaris de Beancount són persones que es van frustrar amb aquestes caixes negres. Canvien una mica de comoditat per claredat.
Beancount+Fava vs Power BI (o un altre BI): Poden ser complementaris. Power BI no és un sistema comptable; és per a anàlisi. De fet, una configuració avançada podria utilitzar Beancount per consolidar i assegurar la precisió de les dades, i després utilitzar Power BI per crear quadres de comandament executius a partir d'aquestes dades. Si comparem directament, Power BI tracta més de flexibilitat visual i combinar fonts de dades. Els gràfics de Fava són més senzills per disseny (centrats en necessitats comptables) però requereixen molt menys treball per posar-los en marxa (funcionen de sèrie amb el vostre llibre major, sense necessitat de modelatge). Si el vostre objectiu és purament obtenir informació i visuals bonics i esteu disposats a preparar les dades, una eina de BI podria ser apropiada. Però si el vostre objectiu és mantenir els llibres i obtenir informes interactius com a subproducte, Fava sol ser suficient.
També es podria comparar amb altres eines de finances personals (p. ex., Mint o YNAB) o sistemes ERP, però la pregunta esmenta específicament plataformes d'analítica en temps real. En l'àmbit de les vistes financeres en temps real: Beancount+Fava és com tenir un quadre de comandament financer "en directe" personalitzat i de codi obert, QuickBooks és una comptabilitat automatitzada de codi tancat amb sincronització bancària en directe, i Power BI és una plataforma d'analítica flexible (no específica de finances però es pot utilitzar per a finances si se li alimenten dades).
Una cita reveladora que contrasta codi obert vs comercial: "Amb una mica d'esforç per endavant, les eines de codi obert poden ser realment molt millors que les solucions comercials, i molt més flexibles i extensibles." Això resumeix la compensació. QuickBooks és polit i funciona de sèrie per a escenaris comuns amb un esforç mínim. Però un cop voleu alguna cosa que no fa, xoqueu amb una paret. Amb Beancount, rarament xoqueu amb una paret – teniu el codi font i les dades, podeu ampliar o integrar segons calgui. El cost és que heu d'estar disposats a trastejar.
Avantatges i inconvenients d'utilitzar Fava i Beancount per a insights basats en dades
Finalment, destil·lem els avantatges i desavantatges de Beancount+Fava com a solució per a analítica financera:
Avantatges
-
Transparència i confiança: Tots els càlculs (totals, saldos) es deriven d'un llibre major de text pla que podeu inspeccionar. No hi ha comportament misteriós. Això genera una gran confiança en els números – crucial si baseu decisions en ells. És "comptabilitat neta i transparent" sense bloqueig. Sempre podeu rastrejar una xifra reportada fins a les transaccions subjacents, que és l'essència de la informació basada en dades.
-
Reproduïbilitat i rastre d'auditoria: Com que podeu controlar per versions el llibre major, teniu una línia temporal de canvis. Si alguna cosa sembla estranya aquest mes, podeu fer un diff del llibre major per veure què ha canviat. Això també significa que podeu experimentar ("què passa si reclassifico aquesta despesa?") i desfer-ho fàcilment. El treball basat en dades sovint implica iteracions, i un llibre major auditable ho afavoreix.
-
Flexibilitat en l'anàlisi: No esteu limitats a informes predefinits. La combinació de consultes BQL, scripting en Python i els filtres de Fava significa que podeu respondre gairebé qualsevol pregunta financera. Voleu saber "Quant he gastat a Starbucks cada any durant els darrers 5 anys?" – a una consulta de distància. O "Quina és la mitjana mòbil de les meves despeses de 3 mesos vs ingressos?" – programable amb Python+pandas sobre una consulta. Aquesta flexibilitat és un gran avantatge per a qui li agrada aprofundir en les dades. Els usuaris avançats fins i tot han construït extensions per calcular indicadors financers (p. ex. mètriques de rendiment de carteres) dins de Fava. En resum, podeu obtenir informació molt granular que molts programes prefabricats no poden proporcionar.
-
Integració i extensibilitat: El sistema de connectors de Fava i l'API accessible de Beancount signifiquen que les eines poden créixer amb les vostres necessitats. Si demà comenceu a necessitar fer seguiment d'un nou tipus d'actiu o voleu integrar un nou flux de dades, podeu ampliar el sistema. L'arquitectura (text pla d'entrada, diverses sortides) és molt extensible. Això contrasta amb sistemes tancats on podríeu haver de sol·licitar una funció i esperar.
-
Consolidació de dades: Per a individus i fins i tot empreses, poder consolidar tots els comptes (múltiples bancs, brokers, etc.) en un sol sistema és potent. Moltes solucions comercials us aïllen (o cobren extra per multidevises o múltiples entitats). Amb Beancount, podeu reunir-ho tot. Això dóna una visió de dades holística, permetent informació en tots els àmbits. Per exemple, podeu calcular la vostra veritable assignació global d'actius o el flux de caixa net entre personal i empresarial si volguéssiu, ja que són només entrades de dades.
-
Rendibilitat: És gratuït i de codi obert. Per a ús personal, això és un gran avantatge (sense subscripció com moltes aplicacions de pressupostos). Per a startups o petites organitzacions, aquests estalvis s'acumulen. Però més enllà del cost monetari, també és eficient en termes d'execució (Fava es pot executar en un servidor diminut) i portabilitat (sense migracions costoses si el supereu – és només text).
-
Comunitat i compartició de coneixement: La comunitat de comptabilitat de text pla (Beancount, Ledger, etc.) és molt col·laborativa. La gent comparteix les seves configuracions, scripts personalitzats i consells als fòrums i blogs. Això significa que si teniu una necessitat específica, algú podria haver abordat alguna cosa similar. Per exemple, diversos usuaris van contribuir a eines d'importació intel·ligents i fins i tot categorització amb aprenentatge automàtic (p. ex. la biblioteca "smartimporter" que utilitza scikit-learn per autocategoritzar beneficiaris basant-se en dades passades). Amb el temps, utilitzar Beancount pot arribar a ser realment _més intel·ligent si aprofiteu aquestes eines de la comunitat – apropant-vos a la comoditat del programari comercial mentre manteniu la transparència.
-
Empoderament i aprenentatge: Utilitzar Fava/Beancount us obliga a comprometre-us amb les vostres dades financeres a un nivell més profund. Molts usuaris informen que van obtenir una comprensió molt millor de les seves finances a través d'aquest sistema que amb aplicacions automatitzades. És una mica com la diferència entre cuinar el teu propi menjar vs menjar menjar ràpid – més esforç, però saps exactament què conté i pot ser més saludable a la llarga. Per a la informació basada en dades, aquesta "propietat" del procés pot conduir a descobriments més significatius, perquè podeu emmarcar i reemmarcar fàcilment com mireu les dades.
Contres
-
Configuració inicial i corba d'aprenentatge: Siguem honestos – Beancount i Fava no són tan endoll-i-funciona com, per exemple, QuickBooks o Mint. Cal aprendre els conceptes bàsics de la comptabilitat per partida doble (si no els sabeu), la sintaxi dels fitxers de Beancount, i possiblement una mica de Python si voleu personalitzar molt. Aquesta inversió inicial pot ser una barrera. Per als usuaris no tècnics, podria ser descoratjador (tot i que la interfície de Fava ajuda molt proporcionant una experiència més amigable un cop configurada). En canvi, moltes eines comercials amaguen els conceptes comptables darrere d'interfícies més senzilles (cosa que pot ser tant un avantatge com un inconvenient).
-
Sense sincronització bancària integrada: Per disseny, no es connecta automàticament a API bancàries (que sovint són propietàries o requereixen acords). Així que o bé descarregueu extractes manualment o configureu la vostra pròpia automatització (via scripts de Python o serveis com Plaid que sovint costen diners). Per a qui està acostumat que els fluxos bancaris "funcionin sols", això pot semblar un pas enrere. Com va assenyalar un usuari, en provar Beancount "no va trobar una manera raonable d'aconseguir fluxos bancaris" – això pot ser una frustració tret que estigueu disposats a programar o utilitzar solucions de tercers.
-
Temps real significa el vostre temps: Aconseguir capacitat de resposta en temps real és possible però no de sèrie. Heu de configurar feines cron o disparadors com s'ha descrit. Si alguna cosa es trenca (p. ex. un banc canvia el seu format CSV), heu d'arreglar el vostre importador. Amb un servei com QuickBooks, el proveïdor s'encarrega d'aquests canvis. Essencialment, sou el vostre propi suport informàtic. Aquesta és la clàssica compensació del codi obert. Per a un aficionat, això podria estar bé o fins i tot ser divertit; per a un propietari de petita empresa ocupat, podria ser una molèstia.
-
Límits d'escalabilitat i rendiment: Per a conjunts de dades molt grans (molts anys de transaccions detallades), Beancount es pot tornar més lent. Generalment és eficient (hi ha gent amb desenes de milers d'entrades sense problemes). Però com es va veure al fil de HN, un usuari va haver de "tancar llibres" anualment després de 3 anys a mesura que el fitxer creixia per mantenir les consultes ràpides. El codi de Beancount v2 és Python i pot ser una mica lent per a dades enormes, tot i que v3 (en desenvolupament amb un nucli C++) ho millora. Hi ha mitigacions (dividir fitxers, utilitzar Beanpost per descarregar a una BD, etc.), però és una consideració. QuickBooks probablement té escalabilitat interna i la majoria d'eines de BI es basen en bases de dades pensades per a dades grans – així que podrien gestionar conjunts de dades grans amb més gràcia.
-
Mancances de funcions (respecte al programari dedicat): Beancount+Fava se centra en la comptabilitat i l'anàlisi. Li manquen algunes funcions auxiliars: p. ex., sense processament de nòmines, sense generació de factures (sense scripting personalitzat), sense formularis integrats de preparació d'impostos, etc. Si el vostre objectiu és la gestió financera integral, podríeu necessitar complementar amb altres eines. Per exemple, podríeu fer les nòmines mitjançant un servei de nòmines i només importar les entrades de diari. Això funciona, però no està tan perfectament integrat com alguna cosa com un ERP que ho fa tot en un. Per a finances personals, Beancount no té coses com planificadors de pagament de deutes integrats o sobres de pressupost (tot i que podeu simular-los). S'espera que deriveu informació i després prengueu decisions, en lloc de proporcionar consells prescriptius o mòduls de planificació.
-
Interfície d'usuari i poliment: Tot i que Fava és bastant agradable, no és tan polit o guiat com algunes ofertes comercials. No hi ha cap "assistent" que us guiï per la configuració o asseguri que no cometeu errors. Potser haureu de llegir documentació per saber com fer X. I certes funcions d'interfície que es podrien esperar (categorització d'arrossegar i deixar anar, desfer en múltiples passos, notificacions push al mòbil, etc.) no hi són. La interfície de Fava millora constantment (amb contribucions), però està construïda per una petita comunitat. Si esteu acostumats a interfícies SaaS modernes i elegants, Fava podria semblar una mica utilitària (tot i que alguns prefereixen la seva simplicitat neta). Al mòbil, Fava funciona (especialment en només lectura) però no està completament optimitzada per a pantalles petites; QuickBooks té aplicacions mòbils dedicades, per exemple.
-
Dependència de la comunitat/mantenidor: Martin Blais (autor de Beancount) i els col·laboradors mantenen Beancount, i altres mantenen Fava. El desenvolupament pot ser esporàdic (com és normal en OSS). Tot i que el programari és molt utilitzable ara, si necessiteu una nova funció o hi ha un error, potser haureu d'arreglar-ho vosaltres mateixos o esperar. Amb un producte de pagament, teniu un suport al qual trucar (la qualitat varia, però almenys hi és). Dit això, la comunitat sol ser bastant útil via la llista de correu o els problemes de GitHub.
-
Coneixements comptables necessaris: Per a ús empresarial especialment, cal saber què feu. Beancount no us impedirà fer una entrada que sigui "incorrecta" des del punt de vista comptable (excepte desequilibri o transacció no aparellada). QuickBooks en canvi té barreres de protecció (i també complexitat oculta com el seguiment automàtic d'ingressos diferits, etc., si les habiliteu). Si no teniu cura a Beancount, podríeu espatllar una meritació i no adonar-vos-en fins que noteu un problema a l'informe. Essencialment, Beancount assumeix que o bé domineu la comptabilitat bàsica o esteu disposats a aprendre. Això és de fet un avantatge per a alguns (força a fer-ho bé), però un inconvenient si voleu un sistema que no requereixi pensar.
Per resumir els avantatges i inconvenients: Beancount + Fava proporciona un control i una adaptabilitat sense igual per a qui vol comprometre's profundament amb les seves dades financeres, convertint-lo en una eina potent per a la informació basada en dades. Converteix els vostres llibres en un conjunt de dades consultable i els vostres informes en una aplicació web extensible. El preu d'aquest poder és el treball que invertiu a configurar-lo i mantenir-lo, i la necessitat de ser una mica autosuficient en la gestió del vostre sistema. En contrast amb alguna cosa com QuickBooks o una suite de BI, que donen més suport i ofereixen certes funcions automàticament, Beancount us dóna un joc d'eines. Si esteu inclinats a l'anàlisi, aquest joc d'eines pot ser increïblement alliberador – podeu extreure informació que els informes prefabricats potser mai mostrarien. Com va escriure un usuari que va automatitzar el seu llibre major de Beancount durant anys, "les eines de codi obert (com Beancount) no cobreixen totes les meves necessitats [de sèrie]... Estic obsessionat amb automatitzar-ho tot... Vaig construir el que necessitava". Això encapsula l'enfocament: si esteu disposats a construir el que necessiteu, sigui petit o gran, Fava/Beancount us donarà suport i mai us amagarà les vostres dades. Per a una mentalitat basada en dades, això és un gran avantatge.
En conclusió, utilitzar Fava i Beancount per a analítica financera en temps real és una mica com tenir el vostre propi laboratori personalitzable per a les vostres finances. Obteniu claredat, flexibilitat i propietat que és difícil d'igualar amb plataformes propietàries, cosa que el fa ideal per a qui valora aquests aspectes i està disposat a intercanviar una mica de comoditat per obtenir-los. El panorama modern fins i tot mostra enfocaments híbrids – per exemple, alguns podrien utilitzar una eina comercial però exportar periòdicament a Beancount per a una anàlisi més profunda, o viceversa utilitzar Beancount com a principal i una eina de BI per a la presentació. Amb el coneixement d'aquesta investigació, es pot prendre una decisió informada sobre si Fava+Beancount s'alinea amb les vostres necessitats i, si és així, procedir amb confiança a aprofitar les seves capacitats per obtenir informació financera rica i en temps real.
Fonts:
- Blais, M. (2020). Beancount Documentation – Design principles and usage. [Online]. Available: beancount.github.io
- Aumayr, D., Gerstmayr, A. (2025). Fava Documentation & GitHub Repository. [Online]. Available: beancount.github.io/fava/ and github.com/beancount/fava
- LowEndBox. (2025). "Beancount: Lightweight FOSS Double-Entry Accounting...from the Command Line!" LowEndBox Tutorial.
- Fang-Pen Lin. (2024). "My Beancount books are 95% automatic after 3 years." Personal Blog Post.
- Google Groups – Beancount Forum. (2023). Discussion on Grafana integration (Josh D. and Andreas G.)
- QuickBooks Marketing Page. "Bank Feeds – Understand all your transactions in an instant." Intuit QuickBooks.
- Watt, A. (2023). "Beancount for Personal Finance." Alex Watt Blog.
- Reddit – r/plaintextaccounting. Various discussions (2021-2023) on business use of Beancount and ledger visualization.
- Fava Extension Documentation – Help: Extensions.
- fava-dashboards GitHub README – Andreas Gerstmayr's custom dashboards plugin.
- Awesome Beancount list – community-curated resources for Beancount.