Salta al contingut principal

10 entrades etiquetades amb "Double-Entry"

Veure totes les etiquetes

Entenent les entrades de diari a Beancount

· 8 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Les entrades de diari són l'estructura fonamental de la comptabilitat de doble partida, i a Beancount, cada transacció * que escrius és una entrada de diari. Aquesta guia explica l'essencial — dèbits i crèdits, entrades d'ajust i entrades d'inversió — i mostra com es mapen netament a la sintaxi de text pla de Beancount. Aprendràs com mantenir llibres precisos amb el mínim de cerimònia.


2025-09-02-journal-entries-in-beancount

Un repàs ràpid: què és una entrada de diari?

Una entrada de diari és el registre formal i datat d'una transacció financera. S'expressa en termes de dèbits i crèdits que mantenen l'equació comptable fonamental en equilibri:

Actius=Passius+PatrimoniActius = Passius + Patrimoni

En un sistema de doble partida, cada transacció afecta almenys dos comptes, i el total de dèbits ha d'igualar el total de crèdits. Aquesta regla senzilla és la que fa que els informes financers posteriors, com l'estat de resultats i el balanç, siguin fiables i precisos.


Dèbits i crèdits en un minut

Els conceptes de dèbits i crèdits poden ser confusos al principi, però es redueixen a poques regles simples. Pensa-ho d'aquesta manera: "d'on ve el valor?" (crèdit) i "on va el valor?" (dèbit).

Aquí tens una fitxa ràpida de com augmenten els cinc tipus principals de comptes:

Tipus de compteAugmenta amb
ActiusDèbit
DespesesDèbit
PassiusCrèdit
PatrimoniCrèdit
IngressosCrèdit

Com es veu una entrada de diari a Beancount

Beancount utilitza directives de text senzilles i llegibles per a registrar transaccions. Cada transacció ha d'equilibrar a zero per a cada mercaderia (p. ex., USD, EUR, acció AAPL). Beancount llançarà un error si no ho fa.

Aquí tens una transacció bàsica per comprar cafè:

2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

Observa com les dues anotacions (línies amb comptes) sumen zero: $18.00 + (-$18.00) = 0.

Pots afegir context potent directament a la narració mitjançant etiquetes (com #clientX) per a filtrar i enllaços (com ^INV-2025-001) per a connectar entrades relacionades.

Per exemple, així pots enllaçar una factura al seu pagament:

; Primer, registra la factura que vas enviar al client
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; Més tard, registra el pagament i enllaça'l a la factura original
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

L'etiqueta #clientX et permet filtrar fàcilment totes les transaccions d'aquest client, i l'enllaç ^INV-2025-001 crea una connexió entre les dues entrades que pots seguir en els informes.


Entrades de diari comunes (prètes per enganxar)

Aquí tens diverses transaccions empresarials habituals formatades per a Beancount.

El propietari inverteix efectiu

Un propietari aporta fons personals per iniciar l'empresa.

2025-01-01 * "Owner" "Initial capital contribution"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

Venda en efectiu amb impost de venda

Un client paga en efectiu per un producte, incloent un impost de venda del 8 % que hauràs de remetre al govern més tard.

2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

Venda a crèdit (factura) i cobrament

Proporciones un servei i factures al client, i després reps el pagament més tard.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD

2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD

Despesa amb targeta de crèdit

Compres subministraments d'oficina amb una targeta de crèdit de l'empresa.

2025-01-12 * "OfficeMax" "Supplies on credit card"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

nòmina (model simple)

Processes la nòmina, registrant la despesa salarial bruta, les retencions d'impostos dels empleats i el pagament net des del teu banc.

2025-01-31 * "Payroll" "January wages and withholdings"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

Depreciació mensual

Registres la despesa de depreciació mensual d'un actiu, com un portàtil.

2025-01-31 * "Depreciation" "Laptop, straight-line"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

Despesa prepagada i amortització mensual

Pagues una assegurança anual per avançat i després reconeixes una fracció mensual de la despesa.

; 1. Pagament de la pòlissa anual
2025-01-01 * "InsureCo" "Annual insurance premium"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. Reconèixer una despesa d'un mes al final de gener
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

Ingressos no guanyats i reconeixement mensual

Un client paga per avançat una subscripció de 3 mesos. Registres l'efectiu i després reconeixes un mes d'ingressos.

; 1. El client paga per avançat el servei
2025-02-01 * "Subscriber" "3-month plan prepaid"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. Reconèixer un mes d'ingressos després de prestar el servei
2025-02-28 * "Recognition" "Recognize month 1 of 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

Provisió per deutes incobrables i baixa

Estableixes una provisió per a factures potencialment incobrables i més tard baixes una factura específica.

; 1. Crear una provisió basada en el 2 % del comptes a cobrar
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. Baixa d'una factura específica que saps que no es pagarà
2025-04-15 * "Write-off" "Customer XYZ invoice"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

Inventari periòdic i ajust de COGS

Al final d'un període, calcules el Cost de Vendes (COGS) ajustant el teu compte d'inventari.

2025-03-31 * "COGS adjustment" "Periodic inventory method"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

Entrades d'ajust vs. entrades d'inversió

Les entrades d'ajust es registren al final d'un període comptable (com un mes o trimestre) per alinear correctament ingressos i despeses al període en què realment es van guanyar o incorrer. Això inclou acumulacions, diferiments i estimacions com la depreciació.

Les entrades d'inversió són opcionalment registrades el primer dia d'un nou període i inverteixen exactament una entrada d'ajust específica del període anterior. El seu propòsit és simplificar la comptabilitat. En invertir una acumulació, pots registrar la transacció de caixa posterior d'una manera estàndard sense haver de recordar dividir-la contra el compte de passiu.

Exemple: acumulació i inversió de serveis públics

Suposem que has de registrar la despesa de serveis públics de gener, però la factura no arribarà fins a febrer.

; 1. Acumular la despesa estimada al final de gener
2025-01-31 * "Accrual" "Estimate January utilities expense"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (Opcional) Invertir l'acumulació el primer dia del període següent
2025-02-01 * "Reversal" "Undo January utilities accrual"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. Registrar el pagament real quan arribi al febrer
; La factura real és de 520 USD. Per causa de la inversió, pots
; registrar l'import complet al compte de despeses sense problemes.
; La despesa neta per al febrer serà 520 - 500 = 20 USD.
2025-02-10 * "City Utilities" "Payment for January bill"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD

Nota: L'exemple a l'esquema mostra dividir el pagament final. El mètode d'entrada d'inversió és una alternativa que simplifica l'entrada de pagament final.


Llista de comprovació per a cada entrada de diari a Beancount

Segueix aquests passos per assegurar que les teves entrades siguin netes i correctes:

  1. Comença amb la data (AAAA-MM-DD) i un senyal de transacció (*).
  2. Afegeix un beneficiari i una narració descriptiva. Utilitza #etiquetes i ^enllaços per a la capacitat de cerca.
  3. Inclou almenys dues línies d'anotació que equilibrin a zero per a cada mercaderia.
  4. Utilitza noms d'accounts adequats sota els cinc tipus: Assets, Liabilities, Equity, Income, Expenses.
  5. Opcionalment, afegeix metadades com document: "invoices/INV-2025-001.pdf" per a traçabilitat.

Errors comuns (i com Beancount ajuda)

  • Anotacions desequilibrades: Si els teus dèbits i crèdits no sumen zero, Beancount rebutjarà l'entrada. Aquesta és una característica clau que evita errors. Pots deixar una quantitat en blanc i Beancount la calcularà automàticament.
  • Signe incorrecte en un compte: És fàcil oblidar que Income, Equity i Liabilities augmenten amb crèdits (que solen ser nombres negatius a Beancount). Si ho fas malament, els teus informes semblaran estranys, però la regla d'equilibri encara ofereix una xarxa de seguretat.
  • Enllaços perduts entre entrades: Oblidar enllaçar una factura al seu pagament dificulta el seguiment del que està pendent. Utilitzar ^enllaços de manera consistent resol això creant una pista auditable.

On anar a continuació

  • Llenguatge Beancount i regles d'equilibri: Aprofa't més a la documentació oficial.
  • Full de trucs de sintaxi: Una referència pràctica per a totes les directives de Beancount.
  • Introducció a dèbits/crèdits: Un bon punt de partida si ets nou en les regles comptables.
  • Entrades d'ajust/inversió: Articles més detallats sobre la teoria comptable.

Apèndix: Mapeig de termes comptables → Beancount

Aquesta guia ràpida de traducció t'ajuda a mapar instruccions comptables a la sintaxi de Beancount.

Instrucció comptableAcció Beancount
Debitar una despesaImport positiu a un compte Expenses:
Creditar un passiuImport negatiu a un compte Liabilities:
Acumular ingressosAssets:AccountsReceivable +
Income:* -
Diferir ingressosAssets:Bank:* +
Liabilities:Unearned:* -
Reconèixer ingressos diferitsLiabilities:Unearned:* +
Income:* -

Amb aquests patrons i exemples, pots modelar netament gairebé qualsevol esdeveniment empresarial a Beancount, assegurant que els teus informes financers coincideixin sense cap sorpresa.

Registrar impostos a Beancount (la manera pragmàtica)

· 8 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Els impostos poden semblar una criatura especial i complicada en el món de les finances personals. Però, i si no fos així? I si poguessis tractar-los com qualsevol altre flux de diners al teu llibre major? Bona notícia: pots. Tractant els impostos com a moviments simples de valor, el teu llibre major a Beancount romandrà net, fàcil de consultar i, sobretot, comprensible.

A continuació trobaràs un patró pràctic i directe que pots afegir a un fitxer Beancount personal o d’una petita empresa. És un sistema senzill per gestionar nòmines, pagaments d'impostos i fins i tot aquells molestos reemborsaments que passen al nou any. Cobriré els comptes essencials que necessites, revisarem exemples reals i et mostrarem les consultes exactes per obtenir les respostes que necessites.

2025-08-25-recording-taxes-in-beancount


Principis bàsics

Abans d’endinsar-nos al codi, acordem unes poques regles senzilles. Aquests principis mantenen les coses lògiques i eviten mals de cap futurs.

  • Separa “què és” de “quan es mou el diner”. 🗓️
    Aquest és el concepte més important. Una despesa d'impost pertany a l'any en què vas guanyar l'ingrés (p. ex., 2024), encara que paguis la factura a l'IRS a l'abril de 2025. Si no separes el moment de la despesa del moment del pagament, els teus informes anuals quedaran desordenats i enganyosos.

  • Mantén la jerarquia de comptes avorrida i senzilla. 📁
    Anomena els teus comptes de manera clara segons el tipus d'impost (p. ex., IncomeTax, SocialSecurity). Això fa que les teves consultes siguin increïblement simples. No emboliquis els noms dels comptes amb noms de proveïdors o números de formulari com “W‑2” o “1099”; utilitza metadades i etiquetes per a aquests detalls.

  • Adopta l'acumulació per a ajustos de final d'any. ⚖️
    Fins i tot per a un llibre major personal, usar una entrada d'acumulació simple al final de l'any és la manera més neta d'aconseguir informes precisos. Significa reconèixer una despesa o reemborsament en l'any correcte, encara que el diner no es mogui fins al següent. És un petit pas addicional que t'estalvia malabarismes mentals més endavant.

  • Escriu per al teu futur jo. 🧠
    El teu objectiu és la claredat. Afegeix detalls addicionals, com l'any fiscal, al nom d'un compte només si realment facilita les teves consultes. Evita crear un nou conjunt de comptes cada any (Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal, etc.) tret que tinguis una raó convincent. Una estructura plana sovint és més fàcil de gestionar.


Esquelet mínim de comptes

Aquí tens un conjunt bàsic de comptes per començar. Aquesta estructura està centrada en els EUA, però pots adaptar fàcilment els noms al sistema fiscal del teu país. Simplement afegeix aquestes directives open al teu fitxer Beancount.

; --- US Federal Income & Payroll Taxes ---
; Per diners retinguts de la teva nòmina
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Withheld USD
; Per pagaments estimats o factures d'impost que pagues directament
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Payments USD
; Per reemborsaments d'impost que reps
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Refunds USD

; Les teves contribucions FICA
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD

; --- Altres impostos comuns ---
; Per impostos de vendes/ús que pagues en compres
2024-01-01 open Expenses:Taxes:Sales USD

; --- Comptes per a ajustos de final d'any (Opcional però recomanat!) ---
; Un compte temporal de retenció per a impostos que deus però encara no has pagat
2024-01-01 open Liabilities:AccruedTaxes:Federal:Income USD
; Un compte temporal de retenció per a un reemborsament que esperes però encara no has rebut
2024-01-01 open Assets:Tax:Receivable USD

Aquesta configuració separa els impostos retinguts dels pagaments directes i dels reemborsaments, facilitant veure exactament on ha anat el teu diner. Els comptes Liabilities i Assets són la nostra arma secreta per mantenir informes de final d'any precisos.


Exemple 1: La nòmina

Registrem una nòmina típica on els impostos es retenen automàticament. La clau és registrar primer el sou brut, i després mostrar com es reparteix entre impostos i el diner que realment arriba al teu compte bancari.

2025-07-15 * "Employer Inc." "Salary for first half of July"
Income:Work:Salary -6,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Withheld 1,200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Assets:Cash:Checking 4,341.00 USD

Aquesta única transacció explica tota la història:

  • Has guanyat 6 000 USD de sou brut.
  • 1 200 USD s'han enviat a l'IRS per l'impost federal sobre la renda.
  • 372 USD van a la Seguretat Social i 87 USD a Medicare.
  • Els 4 341 USD restants són el que has cobrat.

Consell: Pots afegir metadades del teu rebut de nòmina (com pay_period_end: "2025-07-15") a la transacció per tenir una pista d’auditoria fàcil.


Exemple 2: Presentar la declaració (el problema del canvi d'any)

Escenari que confon a molts: és abril de 2025 i estàs presentant els teus impostos de 2024. Descobreixes que, després de totes les retencions, encara deus 3 000 USD addicionals.

Com ho registres? Vols que la despesa compti per al 2024, però el pagament es faci el 2025. Aquí tens dues maneres excel·lents de gestionar-ho.

Opció A: L’acumulació manual en dos passos

Aquest mètode és pur Beancount, sense plugins. És un procés clar de dos passos.

Pas 1: Reconèixer la despesa al final de l'any fiscal.
El darrer dia de 2024, crees una entrada de “ajust”. No hi ha moviment de diners encara; només reconeixes la despesa i la “aparques” en un compte de passiu temporal.

2024-12-31 * "Federal income tax true-up for 2024"
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
Liabilities:AccruedTaxes:Federal:Income -3,000.00 USD

Ara, el teu estat de resultats de 2024 mostra correctament aquesta despesa de 3 000 USD.

Pas 2: Registrar el pagament quan es produeix.
A l'abril de 2025, quan envies realment els diners a l'IRS, elimines el passiu.

2025-04-15 * "IRS" "Payment for 2024 tax return"
Liabilities:AccruedTaxes:Federal:Income 3,000.00 USD
Assets:Cash:Checking -3,000.00 USD

Els teus informes de 2024 són correctes i el flux de caixa de 2025 també. Perfecte! Aquest mateix patró funciona a l'inrevés per a un reemborsament—només cal usar Assets:Tax:Receivable en lloc del compte de passiu.

Opció B: Automatitzar‑ho amb un plugin

Si prefereixes mantenir el pagament en una sola transacció, un fantàstic plugin comunitari anomenat beancount_reds_plugins.effective_date pot ajudar. Permet assignar una “data efectiva” diferent a una línia de la transacció.

Primer, activa el plugin al teu fitxer principal Beancount:
plugin "beancount_reds_plugins.effective_date"

Ara pots escriure una única transacció. El plugin la dividirà automàticament per mantenir els teus informes precisos.

; Una entrada; el plugin s'encarrega de la resta
2025-04-15 * "IRS" "Payment for 2024 tax return"
Assets:Cash:Checking -3,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
effective_date: 2024-12-31

Aquí, la part de diners es registra el 15 d'abril de 2025, però la part de despesa s'aplica retroactivament al 31 de desembre de 2024. S'aconsegueix el mateix resultat que l'Opció A amb un flux de treball diferent.


I els impostos de vendes?

Per a la majoria de llibres majors personals, l'impost de vendes és senzill. Si no el reclames, només separa’l com a despesa pròpia durant una compra.

2025-07-19 * "Local Grocery Store"
Expenses:Groceries 12.32 USD
Expenses:Taxes:Sales 1.28 USD
Assets:Cash:Checking -13.60 USD

Això et permet seguir fàcilment quant gastes en impost de vendes al llarg de l'any. Si gestiones una empresa que treballa amb IVA, utilitzaries un sistema més formal amb comptes a pagar i a cobrar, però el principi és el mateix.


Consultes que realment faràs

Tot aquest estructurat té com a objectiu facilitar les respostes. Aquí tens algunes consultes BQL per veure el teu panorama fiscal.

1. Quin va ser el meu total d'impost federal sobre la renda per al 2024?

SELECT cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01;

2. Com es desglossa aquest total entre retencions, pagaments i reemborsaments?

SELECT account, cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01
GROUP BY account
ORDER BY account;

3. Tinc deutes fiscals o reemborsaments pendents? (Útil per comprovar la teva feina!)

SELECT account, units(sum(position))
WHERE account "Liabilities:AccruedTaxes" OR account "Assets:Tax"
GROUP BY account
ORDER BY account;

Si aquesta consulta retorna saldos diferents de zero, vol dir que tens acumulacions que encara no has liquidat.


Preguntes ràpides

  • Realment necessito comptes per any com Expenses:Taxes:2024?
    Probablement no. El mètode d’acumulació (o el plugin) manté una estructura plana neta i llegible. Només crea comptes per any si realment facilita les teves consultes específiques.

  • Beancount pot calcular-me els impostos?
    No directament, però pot preparar les dades. Alguns usuaris avançats escriuen scripts que passen els resultats de les consultes BQL a programari de càlcul d’impostos, ideal per estimar la teva obligació durant l'any.

  • Això és assessorament fiscal?
    No. És un patró de comptabilitat per organitzar les teves dades. La comptabilitat és sòlida, però sempre has de consultar un professional fiscal per a consells adaptats a la teva situació.


Llista de verificació per a implementar

Preparat per començar?

  1. Afegeix l’esquelet de comptes al teu fitxer Beancount (i adapta els noms al teu país).
  2. Registra les nòmines començant per l’ingrés brut i separant els impostos.
  3. Al final de l'any, acumula ajustos per a pagaments o reemborsaments usant un compte de passiu/actiu (o utilitza el plugin effective_date).
  4. Segueix els reemborsaments com a comptes a cobrar i elimina’ls quan arribi el diner.
  5. Executa les consultes BQL d’aquí sobre per verificar els totals abans de presentar la declaració.

Mantingues-ho avorrit, mantingues-ho consistent, i la temporada d'impostos finalment serà només una altra part de la teva història financera, no un misteri per resoldre.

El cicle comptable, estil Beancount

· 9 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Els estats financers no apareixen per màgia. Són el producte final d’un procés estructurat i repetible conegut com a cicle comptable. Tot i que els principis són universals, les eines que utilitzes poden canviar dramàticament l’experiència. Aquesta guia et porta a través del cicle comptable amb un enfocament en Beancount, l’eina potent de comptabilitat en text pla.

Veurem com l’enfocament text‑first de Beancount elimina passos tediosos, què hauràs d’automatitzar i quins informes et donen la imatge més clara de la teva salut financera. 🧑‍💻

2025-08-13-the-accounting-cycle-beancount-style


TL;DR: El flux de treball amb Beancount

  • Captura i diari: Registra cada transacció com una anotació neta de partida doble al teu fitxer de text .beancount.
  • Validació i conciliació: Utilitza les assercions balance per confirmar que el teu llibre coincideix amb els extractes bancaris i executa bean-check per detectar errors.
  • Revisió: Genera un balanç de prova no ajustat per a una comprovació ràpida.
  • Ajust: Publica entrades per a acumulacions, diferiments, amortitzacions i altres elements de final de període.
  • Revisió d’ajust: Comprova el balanç de prova ajustat per assegurar que tot és correcte.
  • Publicació i tancament: Genera el teu compte de resultats, balanç i estat de flux de caixa. Tancar els llibres és opcional a Beancount, ja que els informes són conscients de la data.

Aquest flux es pot visualitzar així:


Pas 1: Captura i registra transaccions

Aquest és el pas fonamental. Cada esdeveniment financer —una venda, una compra, una comissió bancària— ha de ser registrat. A Beancount ho fas creant transaccions en un fitxer de text senzill, normalment anomenat main.beancount o organitzat en diversos fitxers per any.

Cada transacció ha de seguir les regles de la comptabilitat de partida doble, és a dir, la suma de totes les anotacions ha de ser zero. Beancount ho imposa per a tu.

2025-08-10 * "Walmart" "Compra de subministraments d'oficina"
Expenses:Office:Supplies 45.67 USD
Assets:Bank:Checking -45.67 USD
  • Consell professional: Utilitza etiquetes com #project-phoenix o #client-acme per afegir dimensions a les teves dades. Això fa que les consultes i els informes siguin increïblement flexibles més endavant.

Higiene de conciliació ✅

La característica més potent per garantir precisió és l’asserció de balanç. Al final d’un període d’estat (per exemple, final de mes), declares quin hauria de ser el saldo d’un compte.

2025-08-31 balance Assets:Bank:Checking  12345.67 USD

Si la suma de totes les transaccions que afecten Assets:Bank:Checking fins a aquesta data no coincideix amb 12345.67 USD, Beancount generarà un error. Aquesta simple directiva converteix el teu llibre en un document auto‑auditat.

Per a aquells que estan retroalimentant dades històriques, la directiva pad pot crear automàticament una transacció d’ajust per fer que els teus saldos d’obertura coincideixin amb la teva primera asserció.


Pas 2: "Publicar al llibre major" (¡Gratuït!)

En els sistemes comptables tradicionals, primer escrius anotacions en un "diari" i després una etapa separada de "publicació" copia aquests valors al "llibre major general".

Amb Beancount, el teu fitxer .beancount és tant el diari com el llibre major. Quan escrius i guardes una transacció, ja l’has publicat. No hi ha cap pas separat. Aquesta directesa és un avantatge clau de la comptabilitat en text pla: el que veus és el que obtens.


Pas 3: Prepara un balanç de prova no ajustat

Abans de començar a fer ajustaments, necessites una comprovació ràpida de "tot suma?". Un balanç de prova és un informe senzill que llista cada compte i el seu saldo total. El total de tots els saldos de deure ha de ser igual al total de tots els saldos d’haver.

Pots generar‑lo amb una consulta simple:

bean-query main.beancount \
"SELECT account, sum(position) GROUP BY 1 ORDER BY 1"

O, per a un enfocament més visual, obre el teu llibre a Fava (la interfície web de Beancount) i navega cap a l’informe "Trial Balance". Busca qualsevol anomalia: un compte d’actiu amb saldo a crèdit, o un compte de despesa amb un valor estrany.


Pas 4: Registra entrades d’ajust

Les entrades d’ajust són crucials per a un informe precís segons el principi d’acumulació. Asseguren que els ingressos es reconeixen quan es guanyen i les despeses quan es generen, independentment de quan es produeixi el flux de caixa.

Ajustos comuns inclouen:

  • Acumulacions: Registrar ingressos que has guanyat però encara no has facturat, o despeses que has generat però encara no has pagat.
  • Diferiments: Gestionar prepagaments. Si un client et paga per un any de servei per avançat, el registres com a passiu (Liabilities:UnearnedRevenue) i reconeixes 1/12 cada mes com a ingressos.
  • Elements no monetaris: Registrar coses com l’amortització d’actius.
  • Correccions: Corregir errors o comptabilitzar ítems perduts de les extraccions bancàries, com un petit pagament d’interessos.

Exemple: Acumulació d’ingressos

Has finalitzat un projecte el 31 d’agost però no enviaràs la factura fins al setembre. Per reconèixer l’ingrés en el període correcte (agost), fas una entrada d’ajust:

2025-08-31 * "Acumular ingressos per al projecte client #1042"
Assets:AccountsReceivable 3000.00 USD
Income:Consulting -3000.00 USD

Exemple: Registrar amortització

La teva empresa té un calendari d’amortització per als seus actius. Al final del període, registres la despesa:

2025-12-31 * "Amortització anual d'equipament informàtic"
Expenses:Depreciation 4800.00 USD
Assets:Fixed:AccumulatedDepreciation -4800.00 USD

Pas 5: Executa un balanç de prova ajustat i valida

Un cop les entrades d’ajust estan registrades, torna a executar l’informe de balanç de prova. Aquest és el teu Balanç de prova ajustat. Proporciona el conjunt final de números que s’utilitzaran per crear els estats financers.

És també el moment perfecte per executar la comprovació interna de Beancount:

bean-check main.beancount

Aquesta ordre verifica tota la sintaxi, les regles d’equilibri i les assercions. Si s’executa sense cap sortida, els teus llibres són mecànicament sòlids.


Pas 6: Publica els estats financers 📊

Aquesta és la recompensa. Amb les xifres del balanç de prova ajustat, pots generar els informes clau. Fava és la manera més senzilla de fer-ho, ja que ofereix informes interactius i amb possibilitat de aprofundir.

  • Compte de resultats (Profit & Loss): Mostra els teus ingressos i despeses durant un període, resultant en el teu benefici net o pèrdua.
  • Balanç: Una instantània del que posseeixes (Actius) i del que deguis (Passius), així com el teu patrimoni net (Patrimoni), en una data concreta.
  • Estat de flux de caixa: Reconciliació del teu caixa inicial amb el final mostrant d’on ha vingut el diners i on ha anat.

Per a informes personalitzats, pots utilitzar el Beancount Query Language (BQL). Aquí tens una consulta per a un compte de resultats mensual:

-- P&L per a l'agost 2025
SELECT account, sum(position)
WHERE account '^(Income|Expenses)'
AND date >= 2025-08-01 AND date <= 2025-08-31
GROUP BY account ORDER BY account;

Pas 7: Tancament dels llibres (Opcional)

En la comptabilitat tradicional, el procés de "tancament" implica crear entrades de diari per posar a zero tots els comptes temporals (Ingressos i Despeses) i transferir el benefici net a un compte de patrimoni anomenat Retained Earnings. Això reinicia formalment els comptes temporals per al proper any.

A Beancount, aquest pas sol ser innecessari. Els informes de Fava són conscients de la data; si demanes un P&L del 2025, només usarà dades del 2025. Els saldos no "es desborden". La majoria d’usuaris simplement deixen els saldos tal com són.

Tanmateix, si necessites fer un tancament formal per compliment o per informes a accionistes, pots fer‑ho amb una simple transacció de final d’any que mou el total d’ingressos i despeses a Equity:Retained-Earnings.


Llista de verificació per al tancament mensual

Aquí tens una llista de verificació repetible per tancar els teus llibres cada mes amb Beancount.

  • Captura: Importa totes les transaccions bancàries i de targetes de crèdit. Introdueix manualment qualsevol despesa en efectiu o ítem fora de banda.
  • Conciliació: Afegeix assercions balance per a tots els comptes bancaris, targetes de crèdit i préstecs, coincidint amb els teus extractes.
  • Revisió: Examina el balanç de prova no ajustat a Fava. Investiga qualsevol saldo estrany o inesperat. Revisa factures pendents (Assets:AccountsReceivable) o comptes per pagar (Liabilities:AccountsPayable).
  • Ajust: Registra entrades per a ingressos/despeses acumulats, ingressos diferits i qualsevol correcció necessària.
  • Validació: Executa bean-check. Revisa el balanç de prova ajustat final.
  • Publicació: Genera el P&L i el Balanç. Envia’ls a les parts interessades o desa’ls per als teus registres.
  • Tancament: Opcionalment, realitza una entrada de tancament si el teu negoci ho requereix. Arxiva una còpia dels teus fitxers .beancount per al període.

Per què Beancount destaca en el cicle comptable

  • Transparència i auditabilitat: El teu llibre és un fitxer de text. Pots utilitzar git per al control de versions del teu historial financer, revisar canvis amb diff i col·laborar amb el teu comptable en un format clar i inequívoc.
  • Control total: Tu defineixes el teu pla de comptes. No estàs lligat a l’estructura d’un proveïdor de programari. Les teves dades són teves, per sempre, en un format obert.
  • Poder inigualable: La combinació de consultes similars a SQL (BQL) i una rica interfície web (Fava) et dóna un poder sense precedents per tallar, picar i entendre les teves dades financeres.

Fragmentos per copiar i enganxar per començar

Pla de comptes senzill:

option "title" "My Personal Ledger"
option "operating_currency" "USD"

;; --- Accounts ---
1970-01-01 open Assets:Bank:Checking
1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:CreditCard
1970-01-01 open Liabilities:UnearnedRevenue
1970-01-01 open Equity:Owner:Capital
1970-01-01 open Equity:Retained-Earnings
1970-01-01 open Income:Consulting
1970-01-01 open Expenses:Office:Supplies
1970-01-01 open Expenses:Software
1970-01-01 open Expenses:Depreciation

Consulta BQL útil:

-- Find all customers with an outstanding balance
SELECT payee, sum(position)
WHERE account = 'Assets:AccountsReceivable'
GROUP BY payee
HAVING sum(position) > 0
ORDER BY sum(position) DESC;

En mapar el cicle comptable atemporal a les eines modernes basades en text de Beancount, guanyes un sistema robust, transparent i construït per durar. ¡Feliç comptabilitat!

Beancount.io vs. Programari de Comptabilitat Tradicionals: Quina Us Escau Més?

· 8 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Durant dècades, el món de la comptabilitat empresarial ha estat dominat per un elenc familiar de sistemes tancats basats en GUI com QuickBooks, Xero i FreshBooks. Han establert l'estàndard, oferint facilitat d'ús i fluxos de treball visuals que s'adapten als usuaris no tècnics. Però per als desenvolupadors, usuaris avançats i qualsevol que valori la transparència i el control absoluts, ha sorgit un enfocament radicalment diferent: Beancount.io.

Aquest article proporciona una comparació directa de Beancount.io amb el programari de comptabilitat tradicional. Desglossarem les seves diferències principals en filosofia, flexibilitat, cost i manteniment a llarg termini per ajudar-vos a decidir quin sistema s'adapta realment a les vostres necessitats.

2025-08-08-beancount-io-vs-programari-de-comptabilitat-tradicionals

1. Filosofia i Flux de Treball

La diferència més fonamental entre aquests dos enfocaments rau en la seva filosofia central.

Beancount.io Beancount.io es basa en la filosofia de la comptabilitat de text pla. En el seu nucli, cada transacció financera és una entrada en un fitxer de text simple. Aquest model de "comptabilitat com a codi" prioritza els registres llegibles per humans i controlables per versions. Les vostres dades financeres resideixen en un format obert i atemporal que posseïu completament; mai no poden ser bloquejades per un proveïdor. Aquest flux de treball està dissenyat per a usuaris que se senten còmodes amb editors de codi, sistemes de control de versions com Git i eines de línia d'ordres.

Programari Tradicional Les plataformes de comptabilitat tradicionals estan basades en GUI i dirigides per formularis. Introduïu dades mitjançant assistents, menús desplegables i formularis visuals. Aquest enfocament prioritza la immediatesa i l'accessibilitat, cosa que facilita que els usuaris no tècnics comencin sense una corba d'aprenentatge pronunciada. Tanmateix, les vostres dades s'emmagatzemen en un format propietari o en una base de dades al núvol, cosa que sovint requereix procediments complexos d'exportació i importació si decidiu migrar a un altre servei.

Veredicte: Si prioritzeu el control total, la propietat de les dades, la transparència i l'automatització, Beancount.io és el clar guanyador. Si necessiteu una interfície de "clicar i funcionar" amb una corba d'aprenentatge mínima, el programari tradicional us semblarà més natural.

2. Flexibilitat i Personalització

Com s'adapta el programari a les vostres necessitats específiques?

Beancount.io Ser 100% programable és el superpoder de Beancount.io. S'integra perfectament amb Python, cosa que us permet connectar-vos a qualsevol API, automatitzar l'obtenció de dades de canals bancaris, etiquetar transaccions programàticament segons regles complexes i generar informes personalitzats adaptats a les vostres especificacions exactes. La vostra capacitat d'ampliar i personalitzar és pràcticament infinita, lliure de qualsevol limitació imposada pel proveïdor.

Programari Tradicional Aquestes plataformes ofereixen una selecció curada d'integracions amb eines populars com PayPal, Stripe i diversos serveis de nòmines. Tot i que és convenient, esteu operant dins del jardí emmurallat del proveïdor. La personalització es limita al que permet la plataforma, i els informes o l'automatització avançats sovint requereixen actualitzar a un pla de nivell superior o comprar complements de tercers. Podeu treballar amb les seves API, però sempre estareu lligats a les regles i els límits de velocitat del seu ecosistema.

Veredicte: Beancount.io proporciona una flexibilitat inigualable per a desenvolupadors i usuaris tècnics. Les eines tradicionals són més adequades per a fluxos de treball estàndard, plug-and-play amb aplicacions empresarials populars.

3. Col·laboració i Transparència

La manera com treballeu amb altres persones i auditeu els vostres registres difereix significativament.

Beancount.io La col·laboració a Beancount.io es gestiona a través de Git. Això fa que cada canvi al vostre llibre major financer sigui completament transparent i auditable. Podeu veure qui va canviar què, quan i per què, igual que un flux de treball de revisió de codi. Això és ideal per a equips distribuïts que ja adopten eines com GitHub o GitLab. A més, no hi ha càlculs ocults; cada número d'un informe es pot rastrejar fins a l'entrada exacta del vostre fitxer de llibre major, garantint una auditabilitat completa.

Programari Tradicional La col·laboració es gestiona mitjançant rols i permisos d'usuari integrats. Podeu convidar el vostre comptable, llibretador o socis comercials a accedir als llibres directament a través de la interfície web. Això és altament eficaç per a les empreses que segueixen un model tradicional de supervisió financera. L'inconvenient és que algunes operacions internes, com els càlculs d'impostos o els ajustos automàtics del saldo, poden ser "caixes negres" opaques, cosa que dificulta la verificació independent de la lògica.

Veredicte: Beancount.io és perfecte per a equips que valoren l'auditabilitat granular i la col·laboració d'estil codi. Els sistemes tradicionals són més fàcils d'utilitzar per als comptables per a l'accés GUI compartit en temps real.

4. Cost i Propietat

Els models financers i el concepte de propietat de les dades són mons a part.

Beancount.io El programari principal de Beancount és de codi obert i gratuït. Només pagueu pels serveis de valor afegit de Beancount.io, que inclouen allotjament, automatització intel·ligent i funcions premium. No hi ha tarifes de llicència per seient, de manera que podeu escalar el vostre equip sense incórrer en costos addicionals. El més important és que no hi ha cap bloqueig de proveïdor. Les vostres dades són una col·lecció de fitxers de text que podeu moure, editar o emmagatzemar a qualsevol lloc, en qualsevol moment.

Programari Tradicional Aquests serveis funcionen amb un model de subscripció, generalment facturat mensualment o anualment. Els preus sovint es classifiquen en funció de les funcions i és possible que hàgiu de pagar tarifes per usuari o per empresa que s'escalen amb la vostra organització. Això crea una dependència; si deixeu de pagar, us arriesgueu a perdre l'accés a les vostres dades i a la funcionalitat del programari. Aquest bloqueig de proveïdor és un risc important a llarg termini.

Veredicte: Beancount.io és significativament més rendible a llarg termini, especialment per a equips tècnics que valoren la sobirania de les dades. El programari tradicional ofereix costos de subscripció previsibles però crea dependència a llarg termini.

5. Corba d'Aprenentatge i Adopció

Amb quina rapidesa podeu posar-vos en marxa?

Beancount.io La corba d'aprenentatge és innegablement més pronunciada. L'adopció d'aquest sistema requereix comoditat amb l'edició basada en text, la comprensió de la sintaxi bàsica i la familiaritat amb eines com Git. Tanmateix, la inversió inicial val la pena. Un cop dominat, Beancount permet fluxos de treball increïblement ràpids i repetibles i proporciona una comprensió molt més profunda i fonamental del vostre quadre financer.

Programari Tradicional Aquestes plataformes estan dissenyades per a propietaris d'empreses no tècnics i ofereixen una fricció mínima d'incorporació. Podeu posar-vos en marxa, enviar factures i classificar despeses en qüestió de minuts. Dit això, aprendre les funcions més avançades, com ara la creació d'informes personalitzats o la configuració de la comptabilitat multientitat, encara requereix una inversió de temps important.

Veredicte: Beancount.io és l'elecció correcta si esteu disposats a invertir temps en aprendre un sistema potent. El programari tradicional és més ràpid per començar per a usuaris no tècnics que necessiten resultats immediats.

Comparació Cara a Cara

CaracterísticaBeancount.ioProgramari de Comptabilitat Tradicional
Filosofia CentralComptabilitat com a codi; llibre major de text plaBasat en GUI; dirigit per formularis
Format de DadesObert (Text Pla)Propietari (Base de Dades)
Propietat de les Dades100% propietat de l'usuari i portàtilControlat pel proveïdor; possible bloqueig
FlexibilitatInfinita; totalment programable amb PythonLimitada a l'ecosistema i les API del proveïdor
Col·laboracióBasat en Git; historial de canvis transparentPermisos d'usuari basats en rols
TransparènciaTotalment auditable; sense càlculs ocultsAlguns càlculs poden ser opacs
Model de CostosNucli de codi obert; pagueu per allotjament/automatitzacióSubscripció mensual/anual (SaaS)
Corba d'AprenentatgeMés pronunciada per a usuaris no tècnicsBaixa; dissenyat per a un inici ràpid
Usuari IdealDesenvolupadors, usuaris avançats, analistes de dadesPropietaris de PIMES, equips no tècnics

Quan Triar Cada Un

La decisió finalment depèn de les habilitats, les prioritats i el flux de treball del vostre equip.

Trieu Beancount.io si:

  • Sou desenvolupador, analista de dades o usuari avançat amb inclinació tècnica.
  • Valoreu la transparència absoluta, el control i la portabilitat de dades a llarg termini per sobre de tot.
  • Voleu automatitzar completament la vostra comptabilitat i integrar-la profundament als vostres fluxos de treball personalitzats.
  • Us sentiu còmodes tractant els vostres registres financers amb el mateix rigor que el codi font.

Trieu el Programari de Comptabilitat Tradicional si:

  • Voleu una interfície visual d'inici ràpid sense cap configuració tècnica.
  • Necessiteu proporcionar accés immediat i fàcil per als comptables amb una formació mínima.
  • Preferiu una solució gestionada i allotjada on el proveïdor gestiona totes les actualitzacions i el compliment.
  • Les vostres necessitats d'integració es compleixen amb aplicacions populars i estàndard.

Reflexions Finals

Beancount.io no intenta ser un QuickBooks millor; és una manera de pensar fonamentalment diferent. Representa la comptabilitat com a codi. Per als professionals tècnics, aquest canvi ofereix el mateix salt endavant que el control de versions amb Git va aportar al desenvolupament de programari: transparència completa, reproductibilitat perfecta i control absolut.

Al mateix temps, el programari de comptabilitat tradicional continua guanyant en facilitat d'ús immediata i integracions ja fetes per a equips no tècnics. L'elecció correcta no es tracta de quin és "millor" en general, sinó de quin és l'ajust perfecte per al vostre flux de treball, les vostres prioritats i el grau de control que exigeix sobre les vostres dades financeres.

L'Ecosistema Beancount: Una Anàlisi Exhaustiva

· 45 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Funcionalitat Central i Filosofia de Beancount

Beancount és un sistema de comptabilitat de partida doble de codi obert que utilitza fitxers de text pla per registrar transaccions. En el seu nucli, Beancount tracta el teu llibre major com un conjunt de dades definit per una gramàtica senzilla i estricta. Cada esdeveniment financer (transaccions, obertura de comptes, preus de mercaderies, etc.) és una directiva en un fitxer de text, que Beancount analitza i converteix en una base de dades en memòria d'assentaments. Aquest disseny aplica el principi de partida doble: cada transacció ha d'equilibrar dèbits i crèdits entre comptes. El resultat és un llibre major altament transparent i auditable que pots controlar per versions, inspeccionar i consultar amb facilitat.

2025-04-15-beancount-ecosystem

Filosofia – correcció i minimalisme: El disseny de Beancount prioritza la integritat de les dades i la simplicitat. El seu creador, Martin Blais, descriu Beancount com a "pessimista" en assumir que l'usuari comet errors i, per tant, imposa comprovacions i restriccions addicionals. Per exemple, Beancount no et permetrà eliminar actius que mai no s'han afegit (evitant saldos negatius d'existències o de caixa) i pot assegurar que cada compte s'obre abans d'utilitzar-lo. Manca el concepte de Ledger de registres "virtuals" o equilibrats automàticament – una elecció intencional per forçar assentaments totalment equilibrats. Beancount, de fet, "aplica una correcció estricta" amb més comprovacions creuades de les que proporciona la partida doble bàsica. Aquest enfocament cautelós atrau els usuaris que "no confien massa en si mateixos" i volen que el programari detecti els seus errors.

Opcions mínimes, màxima consistència: En contrast amb la multitud d'opcions de línia de comandes i d'ajust de Ledger, Beancount opta pel minimalisme. Hi ha molt poques opcions globals, i cap que canviï la semàntica de les transaccions fora del fitxer del llibre major. Tota la configuració que afecta la comptabilitat (com els mètodes de base de cost de mercaderies o els supòsits de registre) es fa dins del fitxer mitjançant directives o connectors, assegurant que carregar el mateix fitxer sempre produeix els mateixos resultats independentment de com es generin els informes. Aquest disseny evita la complexitat dels nombrosos ajustos de Ledger i les interaccions subtils entre ells. La filosofia de Beancount és que una eina de comptabilitat hauria de ser un pipeline estable i determinista des del fitxer d'entrada fins als informes. Ho aconsegueix tractant el llibre major com un flux ordenat de directives que es poden processar programàticament en seqüència. Fins i tot coses que Ledger tracta com a sintaxi especial (com els saldos d'obertura o les declaracions de preus) són directives de primera classe en el model de dades de Beancount, la qual cosa fa que el sistema sigui altament extensible.

Extensibilitat mitjançant connectors i llenguatge de consulta: Beancount està implementat en Python i proporciona ganxos per injectar lògica personalitzada al pipeline de processament. Els usuaris poden escriure connectors en Python que operen sobre el flux de transaccions (per exemple, per aplicar una regla personalitzada o generar assentaments automàtics). Aquests connectors s'executen a mesura que es processa el fitxer, estenent eficaçment la funcionalitat central de Beancount sense necessitat de modificar el codi font. Beancount també inclou un potent llenguatge de consulta (inspirat en SQL) per analitzar i desglossar el llibre major. L'eina bean-query tracta el llibre major analitzat com una base de dades i et permet executar consultes analítiques – per exemple, sumar despeses per categoria o extreure totes les transaccions per a un beneficiari determinat. A Beancount 3.x, aquesta capacitat de consulta es va traslladar a un paquet beanquery autònom, però des de la perspectiva de l'usuari encara proporciona informes flexibles mitjançant consultes tipus SQL.

Text pla i control de versions: Com a eina de comptabilitat de text pla, Beancount posa èmfasi en el control de l'usuari i la longevitat de les dades. El llibre major és simplement un fitxer de text .beancount que pots editar en qualsevol editor de text. Això significa que tot el teu historial financer s'emmagatzema en un format llegible per humans, i pots posar-lo a Git o un altre VCS per fer un seguiment dels canvis al llarg del temps. Els usuaris sovint mantenen el seu fitxer Beancount sota control de versions per mantenir un registre d'auditoria de cada edició (amb missatges de commit que descriuen els canvis). Aquest enfocament s'alinea amb la filosofia de Beancount que les dades comptables, especialment les finances personals o de petites empreses, han de ser transparents i "a prova de futur" – no bloquejades en una base de dades propietària. En paraules del mateix Martin Blais, Beancount és una "obra d'amor" construïda per ser senzill, durador i gratuït per a la comunitat. Va ser desenvolupat per primera vegada al voltant de 2007 i ha evolucionat a través de reescriptures importants (de la v1 a la v2, i ara la v3 el 2024) per refinar el seu disseny tot preservant la seva filosofia central de minimalisme i correcció.

Eines, Plugins i Extensions a l'Ecosistema Beancount

L'ecosistema Beancount ha desenvolupat un ric conjunt d'eines, plugins i extensions que milloren la funcionalitat bàsica del llibre major. Aquests inclouen la importació de dades, l'edició de llibres majors, la visualització d'informes i l'addició de funcions comptables especialitzades. A continuació es presenta una visió general dels components clau i complements en el món Beancount:

Utilitats d'Importació de Dades (Importadors)

Una de les necessitats més importants per a l'ús pràctic és la importació de transaccions de bancs, targetes de crèdit i altres institucions financeres. Beancount proporciona un marc d'importació i scripts d'importació contribuïts per la comunitat per a aquest propòsit. A Beancount 2.x, el mòdul integrat beancount.ingest (amb ordres com bean-extract i bean-identify) s'utilitzava per definir connectors d'importació en Python i aplicar-los als extractes descarregats. A Beancount 3.x, això ha estat substituït per un projecte extern anomenat Beangulp. Beangulp és un marc d'importadors dedicat que va evolucionar de beancount.ingest i ara és la manera recomanada per automatitzar la importació de transaccions per a Beancount 3.0. Permet escriure scripts de Python o eines de línia d'ordres que llegeixen fitxers externs (com ara extractes CSV o PDF) i generen entrades de Beancount. Aquest nou enfocament desacobla la lògica d'importació del nucli de Beancount – per exemple, l'antiga ordre bean-extract s'ha eliminat a la v3, i en el seu lloc, els vostres propis scripts d'importació produeixen transaccions a través de la interfície CLI de Beangulp.

Existeixen desenes d'importadors predefinits per a diferents bancs i formats, contribuïts per la comunitat. Hi ha scripts d'importació per a institucions de tot el món – des d'Alipay i WeChat Pay a la Xina, fins a diversos bancs europeus (Commerzbank, ING, ABN AMRO, etc.), fins a bancs dels EUA com Chase i Amex. Molts d'aquests es recopilen en repositoris públics (sovint a GitHub) o en paquets com beancount-importers. Per exemple, el projecte Tarioch Beancount Tools (tariochbctools) proporciona importadors per a bancs suïssos i del Regne Unit i fins i tot gestiona importacions de transaccions de criptomonedes. Un altre exemple és Lazy Beancount, que empaqueta un conjunt d'importadors comuns (per a Wise, Monzo, Revolut, IBKR, etc.) i proporciona una configuració basada en Docker per a una automatització senzilla. Independentment del banc o servei financer que utilitzeu, és probable que algú hagi escrit un importador de Beancount per a ell – o podeu escriure el vostre propi utilitzant el marc de Beangulp. La flexibilitat de Python significa que els importadors poden gestionar l'anàlisi de fitxers CSV/Excel, descàrregues OFX/QIF, o fins i tot el scraping d'APIs, i després emetre transaccions en format Beancount estandarditzat.

Edició i integració amb editors

Com que els llibres de Beancount són només text, els usuaris sovint aprofiten els seus editors de text o IDEs preferits per mantenir-los. L'ecosistema ofereix connectors de suport per a editors per fer aquesta experiència més fluida. Hi ha extensions per a molts editors populars que afegeixen ressaltat de sintaxi, autocompletat de noms de comptes i comprovació d'errors en temps real:

  • Emacs Beancount-Mode: Un mode principal d'Emacs (beancount-mode) està disponible per editar fitxers .beancount, oferint funcionalitats com el ressaltat de sintaxi i la integració amb el verificador de Beancount. Fins i tot pot executar bean-check en segon pla, de manera que els errors en el llibre (com una transacció desequilibrada) es senyalitzen a mesura que edites.
  • Extensió de VS Code: Una extensió de Beancount al Marketplace de VSCode proporciona comoditats similars per als usuaris de Visual Studio Code. Admet ressaltat de sintaxi, alineació d'imports, autocompletat per a comptes/beneficiaris i fins i tot comprovacions de saldo al moment quan deses el fitxer. També es pot integrar amb Fava, permetent-te iniciar la interfície web de Fava des de dins de VSCode.
  • També existeixen connectors o modes per a Vim, Atom i altres editors. Per exemple, hi ha una gramàtica Tree-sitter per a Beancount, que impulsa el ressaltat de sintaxi en editors moderns i fins i tot va ser adoptada en el component d'editor basat en web de Fava. En resum, sigui quin sigui el teu entorn d'edició, la comunitat probablement ha proporcionat un connector per fer que l'edició de fitxers Beancount sigui còmoda i sense errors.

Per a l'entrada ràpida de transaccions fora dels editors tradicionals, també hi ha eines com Bean-add i aplicacions mòbils. Bean-add és una eina de línia d'ordres que permet afegir una nova transacció mitjançant una sol·licitud o una línia única, gestionant suggeriments de data i compte. Al mòbil, un projecte anomenat Beancount Mobile proporciona una interfície senzilla per introduir transaccions en moviment (per exemple, registrant una compra en efectiu des del teu telèfon). A més, existeix un Bot de Telegram de Beancount per capturar transaccions mitjançant missatgeria: pots enviar un missatge amb els detalls de la transacció, i el bot el formata al teu fitxer de llibre.

Interfícies Web i Eines de Visualització

(Fava) La interfície web de Fava proporciona un panell interactiu per a Beancount, amb informes com un compte de pèrdues i guanys amb visualitzacions (mostrat aquí com un treemap de despeses per categoria) juntament amb taules de comptes i saldos.

La interfície principal per a Beancount és Fava, una interfície web moderna. Fava s'executa com una aplicació web local que llegeix el vostre fitxer de Beancount i produeix una experiència interactiva rica al vostre navegador. Ofereix un conjunt complet d'informes: balanç de situació, compte de pèrdues i guanys, patrimoni net al llarg del temps, participacions de cartera, gràfics de rendiment, pressupostos i més – tot de sèrie. Els usuaris sovint citen Fava com una raó important per triar Beancount per sobre d'altres eines de comptabilitat de text pla. Amb una sola ordre (fava ledger.beancount), podeu navegar per les vostres finances amb gràfics i taules en lloc de text. Fava admet característiques com: aprofundir en els comptes, filtrar transaccions per beneficiari o etiqueta, un editor de consultes (perquè pugueu executar consultes de Beancount i veure els resultats al navegador), i fins i tot un editor web integrat per al vostre llibre major. És altament usable, fent que la comptabilitat de text pla sigui accessible per a aquells que prefereixen interfícies visuals.

Sota el capó, Fava està escrit en Python (Flask al backend) i JavaScript (Svelte al frontend). Té el seu propi cicle de llançament i es manté activament. Cal destacar que Fava ha seguit el ritme del desenvolupament de Beancount – per exemple, Fava 1.30 va afegir suport per a Beancount v3, canviant per utilitzar els nous paquets beanquery i beangulp internament. (Encara admet Beancount 2 per a llibres majors antics.) L'enfocament de Fava en la usabilitat inclou detalls agradables com l'autocompletat a l'editor web, i una interfície d'usuari elegant amb mode fosc i gràfics responsius. També hi ha un spin-off anomenat Fava-GTK, que empaqueta Fava en una aplicació d'escriptori per a usuaris de GNOME/Linux que prefereixen una sensació d'aplicació nativa.

Més enllà de Fava, existeixen altres opcions de visualització i anàlisi. Com que les dades de Beancount es poden exportar o consultar com a taules, els usuaris sovint aprofiten eines com els quaderns Jupyter o Pandas per a anàlisis personalitzades. Per exemple, un usuari descriu com extreure dades de Beancount a través de la interfície de consulta a un DataFrame de Pandas per preparar un informe personalitzat. També hi ha scripts aportats per la comunitat per a informes específics – per exemple, una eina d'anàlisi d'assignació de cartera o un gràfic de control de procés per a la despesa vs. el patrimoni net. No obstant això, per a la majoria de la gent, Fava proporciona prou potència d'informes sense necessitat d'escriure codi. Fins i tot admet extensions: podeu afegir fitxers Python que afegeixin noves pàgines d'informes o gràfics a Fava. Una extensió notable és fava-envelope per a la pressupostació per sobres dins de Fava. En general, Fava serveix com a centre de visualització central de l'ecosistema Beancount.

Utilitats i Scripts de Línia d'Ordres

Beancount ve amb diverses eines de línia d'ordres (CLI) (especialment a la branca antiga v2, algunes de les quals es van retallar a la v3). Aquestes eines operen sobre el vostre fitxer de llibreta per comprovar-lo o generar informes específics en text o HTML:

  • bean-check: un validador que comprova errors de sintaxi o errors comptables al fitxer. Executar bean-check myfile.beancount us alertarà de qualsevol desequilibri, compte que falta o altres problemes, i no mostrarà res si el fitxer no té errors.
  • bean-format: un formatejador que endreça la vostra llibreta alineant els números en columnes netes, molt semblant a executar un formatejador de codi en el codi font. Això ajuda a mantenir el fitxer net i llegible.
  • bean-query: una eina interactiva de shell o per lots per executar el llenguatge de consulta de Beancount a la vostra llibreta. La podeu utilitzar per produir informes tabulars personalitzats (p. ex., bean-query myfile.beancount "SELECT account, sum(amount) WHERE ...").
  • bean-report: un generador d'informes versàtil (a la v2) que pot generar informes predefinits (balanç, compte de pèrdues i guanys, balanç de comprovació, etc.) a la consola o a fitxers. Per exemple, bean-report file.beancount balances imprimiria els saldos dels comptes. (A la pràctica, molts d'aquests informes de text han estat substituïts per la presentació més agradable de Fava.)
  • bean-web / bean-bake: una interfície web antiga que serviria els informes a localhost o els "cuinaria" com a fitxers HTML estàtics. Aquests s'utilitzaven principalment abans que Fava es popularitzés; bean-web proporcionava una vista web bàsica dels mateixos informes que bean-report podia generar. A Beancount 3, bean-web s'ha eliminat (ja que Fava és ara el frontend web recomanat, oferint una experiència superior).
  • bean-example: una utilitat per generar un fitxer de llibreta d'exemple (útil per als nouvinguts per veure una plantilla d'entrades de Beancount).
  • bean-doctor: una eina de depuració que pot diagnosticar problemes a la vostra llibreta o entorn.

Val la pena assenyalar que, a partir de Beancount v3, moltes d'aquestes eines es van traslladar fora del projecte principal. El paquet principal de Beancount es va optimitzar, i eines com el motor de consulta i els importadors es van dividir en paquets separats (beanquery, beangulp, etc.) per a un manteniment més fàcil. Per exemple, la funcionalitat de bean-query ara la proporciona l'eina beanquery, que s'instal·la per separat. Des de la perspectiva de l'usuari, la funcionalitat segueix estant disponible; simplement s'ha modularitzat. La comunitat d'Arch Linux va notar aquest canvi en actualitzar Fava: el paquet de Fava va afegir dependències de beanquery i beangulp per donar suport a Beancount 3.x. Aquest enfocament modular també permet a altres membres de la comunitat contribuir a aquestes eines auxiliars de manera més independent del cicle de llançament de Beancount.

Connectors i Extensions de Beancount

Una de les fortaleses destacades de l'ecosistema Beancount és el sistema de connectors. Afegint una línia plugin "module.name" al vostre fitxer Beancount, podeu incorporar lògica Python personalitzada que s'executa durant el processament del llibre major. La comunitat ha creat molts connectors per estendre les capacitats de Beancount:

  • Qualitat de les dades i regles: Alguns exemples inclouen beancount-balexpr, que us permet afirmar equacions que involucren múltiples comptes (p. ex., Actiu A + Actiu B = Passiu X), i beancount-checkclosed, que insereix automàticament assercions de saldo quan tanqueu un compte per assegurar-vos que el seu saldo final sigui zero. Fins i tot hi ha un connector per assegurar que les transaccions del fitxer estiguin ordenades per data (autobean.sorted) per detectar entrades desordenades.
  • Automatització: El connector beancount-asset-transfer pot generar assentaments de transferència en espècie entre comptes (útil per moure accions entre corredors preservant la base de cost). Un altre, autobean.xcheck, contrasta el vostre llibre major de Beancount amb extractes externs per detectar discrepàncies.
  • Transaccions recurrents i pressupostos: El connector de "repetició" o interpolació d'Akuukis permet definir transaccions recurrents o repartir una despesa anual al llarg dels mesos. Per a la pressupostació, l'extensió fava-envelope (utilitzada a través de Fava) admet la metodologia de pressupost per sobres en text pla. També hi ha MiniBudget de Frank Davies, una petita eina autònoma inspirada en Beancount per ajudar amb la pressupostació per a ús personal o de petita empresa.
  • Impostos i informes: Alguns connectors ajuden amb la comptabilitat fiscal, com un que classifica automàticament els guanys de capital en a curt vs. a llarg termini. Un altre (fincen_114 de Justus Pendleton) genera un informe FBAR per als contribuents dels EUA amb comptes estrangers, il·lustrant com les dades de Beancount es poden aprofitar per a informes reguladors.
  • Repositoris de connectors de la comunitat: Hi ha conjunts de connectors curats com beancount-plugins (de Dave Stephens) que se centren en coses com els assentaments d'amortització, i beancount-plugins-zack (de Stefano Zacchiroli) que inclouen ajudants diversos com directives d'ordenació.

A més dels connectors, altres eines d'utilitat que orbiten Beancount aborden necessitats específiques. Per exemple, beancount-black és un autoformatador similar al formatador de codi Black, però per a fitxers de llibre major de Beancount. Hi ha un Bot de Beancount (Telegram/Mattermost) per afegir transaccions via xat, com s'ha esmentat, i un flux de treball d'Alfred per a macOS per afegir ràpidament transaccions al vostre fitxer. Una eina anomenada Pinto ofereix una CLI "sobrecarregada" amb entrada interactiva (com un bean-add millorat). Per a aquells que migren d'altres sistemes, existeixen convertidors (YNAB2Beancount, CSV2Beancount, GnuCash2Beancount, Ledger2Beancount) per ajudar a importar dades d'altres llocs.

En resum, l'ecosistema Beancount és bastant extens. La Taula 1 a continuació enumera algunes de les principals eines i extensions amb els seus rols:

Eina/ExtensióDescripció
Fava (interfície web)Aplicació web completa per visualitzar i editar llibres de Beancount. Proporciona informes interactius (balanç, ingressos, etc.), gràfics i capacitats de consulta. Gran impuls a la usabilitat de Beancount.
Beangulp (framework d'importació)Framework d'importació autònom per a Beancount v3, que reemplaça l'antic mòdul d'ingestió. Ajuda a convertir extractes bancaris (CSV, PDF, etc.) en assentaments de Beancount utilitzant scripts de connectors.
Beanquery (eina de consulta)Motor de consulta tipus SQL autònom per a dades de Beancount. Reemplaça bean-query a la v3, permetent consultes avançades de transaccions i saldos mitjançant una sintaxi familiar SELECT-FROM-WHERE.
Bean-check / Bean-formatEines CLI principals per validar un fitxer Beancount (comprovar errors) i autoformatejar-lo per a la consistència. Útils per mantenir un llibre major correcte i net.
Connectors d'editor (Emacs, VSCode, Vim, etc.)Connectors/modes que afegeixen suport de sintaxi Beancount i linting en editors de text. Milloren l'experiència d'editar manualment fitxers .beancount amb funcions com l'autocompletar i el ressaltat d'errors en temps real.
Importadors de la comunitatCol·leccions de scripts d'importació bancària (molts a GitHub) que cobreixen bancs als EUA, la UE, Àsia i més. Permeten als usuaris importar automàticament transaccions de les seves institucions financeres a Beancount.
Connectors (extensions de llibre major)Connectors opcionals dins del fitxer per aplicar regles o afegir funcionalitats (p. ex., compartició de despeses, assentaments recurrents, assercions de saldo personalitzades). Escrites en Python i s'executen durant el processament del fitxer per a la personalització.
Convertidors (eines de migració)Utilitats per convertir dades d'altres formats a Beancount, p. ex., de GnuCash o Ledger CLI a format Beancount. Faciliten l'adopció de Beancount sense començar de zero.

Comparació amb Ledger, hledger i Sistemes Similars

Beancount pertany a la família d'eines de comptabilitat de partida doble en text pla, entre les quals destaquen Ledger CLI (Ledger de John Wiegley) i hledger. Tot i que tots aquests sistemes comparteixen la idea central dels fitxers de llibre major en text pla i la comptabilitat de partida doble, difereixen en la sintaxi, la filosofia i la maduresa de l'ecosistema. La següent taula destaca les diferències clau entre Beancount, Ledger i hledger:

AspecteBeancount (Python)Ledger CLI (C++)hledger (Haskell)
Sintaxi i Estructura de FitxersSintaxi estricta i estructurada definida per una gramàtica formal (BNF). Les transaccions tenen línies explícites data flag "Beneficiari" "Descripció" i assentaments amb quantitats; tots els comptes han de ser explícitament oberts/definits. Sense assentaments implícits; cada transacció ha de quadrar.Sintaxi més lliure. El beneficiari/descripció es troba típicament a la mateixa línia que la data. Permet un cert quadre implícit (per exemple, una transacció d'un sol assentament pot implicar un segon assentament a un compte per defecte). Els noms de compte es poden utilitzar sense declaració prèvia. Ofereix moltes opcions de línia de comandes que poden afectar l'anàlisi (per exemple, suposicions d'any, regles de fusió de mercaderies).Segueix en gran mesura la sintaxi de Ledger amb petites diferències. hledger és una reimplementació de les característiques principals de Ledger en Haskell, de manera que el format del diari és molt similar al de Ledger (amb algunes extensions i una anàlisi més estricta per defecte). Per exemple, hledger és una mica més estricte amb les dates i la sintaxi de mercaderies que Ledger, però no tan estricte com Beancount.
FilosofiaConservador i Pedant. Posa èmfasi en la detecció d'errors de l'usuari i el manteniment de la integritat de les dades per sobre de tot. Imposa moltes comprovacions (assertions de saldo, seguiment de lots) per defecte. Configuració mínima – enfocament de "una sola manera de fer-ho" per a la consistència. Dissenyat com una biblioteca amb connectors per a l'extensibilitat (tracta les dades del llibre major com un flux a processar, permetent lògica Python personalitzada).Optimista i Flexible. Confia en l'usuari per introduir les dades correctament; menys restriccions incorporades per defecte. Altament personalitzable amb dotzenes d'opcions i banderes de comandes per ajustar el comportament. Tendeix a ser una eina monolítica amb característiques incorporades (informes, gràfics) i utilitza un llenguatge de domini específic dins del llibre major per a coses com transaccions automatitzades i transaccions periòdiques. L'extensibilitat és típicament mitjançant scripts externs o el llenguatge de consulta incorporat en lloc d'API de connectors.Pragmàtic i Consistent. Pretén acostar l'enfocament de Ledger a un públic més ampli amb un comportament previsible. hledger per defecte és més consistent (sense suposicions de quadre sense comptes explícits) i té menys errors fàcils de cometre que els modes més permissius de Ledger. Té un subconjunt de les característiques de Ledger (algunes de les opcions més exòtiques de Ledger no són compatibles), però n'afegeix algunes de pròpies (com una interfície web i importació CSV incorporada). Posa èmfasi en l'estabilitat i la correcció, però sense un sistema de connectors com el de Beancount.
Transaccions i QuadrePartida doble estricta: cada transacció ha de tenir un total de dèbits i crèdits iguals. No permet entrades desquadrades ni marcadors de posició (sense "assentaments virtuals" que s'autoquadrin). També imposa la independència de l'ordre: el llibre major es pot ordenar per data arbitràriament perquè les assertions de saldo estan limitades per data, no depenent de l'ordre del fitxer. El seguiment de costos per a les mercaderies és rigorós – quan vens actius, has d'especificar lots o Beancount imposarà FIFO/LIFO de manera que no puguis treure alguna cosa que no vas afegir.Permet més indulgència en les transaccions. Ledger permet assentaments "virtuals" (utilitzant claudàtors [ ] o parèntesis) que no requereixen un compte de quadre explícit – sovint utilitzats per gestionar pressupostos o quadre implícit de patrimoni net. És possible a Ledger introduir una transacció incompleta (ometent un costat) i deixar que Ledger inferi l'import de quadre. A més, Ledger no imposa estrictament l'eliminació d'actius lot a lot; restarà sense problemes d'un saldo agregat de mercaderies fins i tot si no es van rastrejar lots específics. Això facilita, per exemple, fer comptabilitat de cost mitjà, però significa que Ledger no t'impedirà cometre errors com vendre més accions de les que tens en un lot determinat.
Inventari i Base de CostSeguiment precís de lots. Beancount adjunta informació de cost als lots de mercaderies (per exemple, compra de 10 accions a 100 $ cadascuna), i en reduir un inventari requereix fer coincidir un lot específic o utilitzar una estratègia definida. Assegura que els guanys de capital i les bases de cost es calculen correctament per disseny. El mètode de cost mitjà no és el predeterminat tret que escriguis lògica explícitament per a això, perquè Beancount tracta cada lot de manera diferent per preservar la precisió.Inventari més abstracte. Ledger tracta les quantitats de mercaderies de manera més fluida; per defecte, tots els lots es fusionen en els informes (només mostra les quantitats totals). Proporciona opcions per informar per lot o cost mitjà si cal, però això és una preocupació d'informes. Històricament, Ledger no utilitzava la informació de costos per imposar el quadre en transaccions multimercaderies, cosa que podia portar a càlculs erronis subtils de guanys de capital. No obstant això, la flexibilitat de Ledger permet als usuaris triar FIFO, LIFO, mitjana, etc., en el moment de l'informe mitjançant banderes de línia de comandes.
Informes i Interfície d'UsuariPrincipalment a través de Fava (interfície web) i bean-query/bean-report. Fava ofereix un tauler web polit amb gràfics i diagrames, fent que Beancount sigui molt fàcil d'utilitzar per a l'anàlisi. També admet informes textuals i consultes tipus SQL mitjançant bean-query. Sense TUI oficial (interfície de text), però la integració amb editors/IDEs omple aquesta bretxa.Informes principalment basats en CLI. Ledger té moltes ordres d'informe incorporades (saldo, registre, estadístiques, etc.) que generen text al terminal. Pot produir gràfics (ASCII o mitjançant gnuplot) i fins i tot té alguns complements per a informes HTML, però no té una interfície web oficial mantinguda com a part del projecte. (Hi ha hagut intents de tercers d'interfícies web per a Ledger, però cap tan prominent com Fava per a Beancount.) Per a una interfície d'usuari, els usuaris depenen del terminal o potser de GUI com Ledger-Live (un projecte separat).Ofereix tant CLI com una interfície web senzilla. hledger hereta els informes CLI de Ledger (amb ordres similars) i, a més, proporciona hledger-web, una interfície web bàsica per veure comptes i transaccions en un navegador. hledger-web no és tan ric en funcions com Fava, però ofereix una visió general de només lectura. hledger també té hledger-ui, una interfície basada en curses de terminal per a un ús interactiu.
Extensibilitat i ConnectorsAlta extensibilitat mitjançant Python. L'API de connectors permet executar codi Python arbitrari durant el processament del llibre major, cosa que significa que els usuaris poden implementar característiques personalitzades sense modificar el nucli. L'ecosistema de connectors (per a pressupostos, etc.) ho demostra. A més, es poden escriure scripts Python per utilitzar les biblioteques de Beancount per a informes personalitzats.Extensibilitat de nivell inferior. Ledger es pot estendre escrivint els teus propis scripts que analitzen la sortida de Ledger o utilitzant el seu llenguatge de consulta intern de maneres intel·ligents. També té característiques com transaccions automatitzades (regles que generen automàticament assentaments donats els disparadors al diari) i transaccions periòdiques, que són tipus d'extensibilitat incorporada dins del fitxer del llibre major. Però no ofereix una API per injectar codi arbitrari al motor comptable – no és una biblioteca de la mateixa manera (tot i que libledger existeix per a desenvolupadors de C++).Extensibilitat moderada. hledger omet deliberadament les característiques de transaccions automatitzades/periòdiques de Ledger per mantenir les coses més senzilles, però proporciona eines com hledger-import per a la conversió d'altres formats i permet complements. Estant escrit en Haskell, s'utilitza com a biblioteca en alguns projectes, però escriure connectors personalitzats no és tan senzill com l'enfocament de Beancount. En canvi, hledger se centra a cobrir necessitats comunes (informes, web, UI) dins del seu conjunt d'eines oficial.
Comunitat i DesenvolupamentActiva però impulsada principalment per un autor (Martin Blais) i un petit grup de col·laboradors. Les versions principals són poc freqüents (la v2 va ser estable durant ~6 anys, després la v3 el 2024). La comunitat contribueix mitjançant connectors i eines (Fava va ser originalment un projecte de tercers que es va integrar). La llista de correu de Beancount i GitHub estan actius amb discussions, i la base d'usuaris ha crescut gràcies a l'atractiu de Fava per als no desenvolupadors.Llarga història (Ledger data del 2003) i ús generalitzat entre enginyers. Originalment un projecte d'una sola persona (Wiegley), va veure molts col·laboradors al llarg del temps. El desenvolupament de Ledger s'ha alentit en els últims anys; és estable però amb menys característiques noves (l'enfocament s'ha desplaçat al manteniment). La llista de correu ledger-cli és un centre per a totes les discussions de comptabilitat en text pla (incloent Beancount i hledger). Existeixen moltes eines i scripts al voltant de Ledger, però l'ecosistema no està tan unificat (cap "GUI de Ledger" única, etc., tot i que existeixen múltiples esforços independents).Comunitat creixent, amb Simon Michael liderant el desenvolupament d'hledger. hledger té versions anuals i millores constants, sovint seguint els canvis de característiques de Ledger però també forjant el seu propi camí. Gaudeix de popularitat entre els usuaris que volen el poder de Ledger amb més predictibilitat. La comunitat tendeix a superposar-se amb la de Ledger (plaintextaccounting.org cobreix tots dos). L'ecosistema d'hledger inclou complements com hledger-flow (per a l'automatització del flux de treball) i es beneficia d'estar escrit en Haskell (atraient aquells d'aquesta comunitat).

En resum, Beancount es diferencia pel seu èmfasi en la rigorositat, l'extensibilitat basada en connectors i una interfície web fàcil d'utilitzar. Ledger continua sent l'eina clàssica i altament flexible afavorida pels puristes de la línia de comandes i aquells que necessiten la màxima velocitat (el motor C++ de Ledger és molt ràpid en fitxers enormes). hledger proporciona un punt intermedi – gran part de la funcionalitat de Ledger amb una mica més d'estructura i una interfície web oficialment compatible (encara que senzilla). Tots tres comparteixen els avantatges de la comptabilitat en text pla (auditabilitat, control de versions amb Git, dades planes), però l'ecosistema de Beancount (especialment amb Fava) l'ha fet, sens dubte, més accessible per a l'usuari mitjà en els últims anys. Per contra, els usuaris de Ledger/hledger de vegades prefereixen la seva relativa simplicitat en la configuració (no es necessita Python) i l'estabilitat provada a llarg termini. En última instància, triar entre ells es redueix a la preferència personal: aquells que valoren la correcció rigorosa i un ecosistema ric sovint s'inclinen cap a Beancount, mentre que aquells que volen eines lleugeres i centrades en el terminal podrien quedar-se amb Ledger o hledger.

Escenaris d'ús per a Beancount

Beancount és prou versàtil per ser utilitzat tant per al seguiment de finances personals com (en alguns casos) per a la comptabilitat per a petites empreses. El seu enfocament central de partida doble és el mateix en ambdós escenaris, però l'escala i les pràctiques específiques poden diferir.

Finances Personals

Molts usuaris de Beancount l'utilitzen per gestionar les seves finances personals o familiars. Una configuració típica de finances personals a Beancount podria incloure comptes per a comptes corrents i d'estalvi, targetes de crèdit, inversions, préstecs, categories d'ingressos (salari, interessos, etc.) i categories de despeses (lloguer, queviures, entreteniment, etc.). Els usuaris registren les transaccions diàries manualment (introduint rebuts, factures, etc.) o important-les des d'extractes bancaris utilitzant les eines d'importació esmentades anteriorment. Els beneficis que Beancount aporta a les finances personals inclouen:

  • Consolidació i Anàlisi: Totes les teves transaccions poden residir en un únic fitxer de text (o un conjunt de fitxers) que representi anys d'historial financer. Això facilita l'anàlisi de tendències a llarg termini. Amb el llenguatge de consulta de Beancount o amb Fava, pots respondre preguntes com "Quant vaig gastar en viatges en els últims 5 anys?" o "Quina és la meva factura mitjana mensual de queviures?" en segons. Un usuari va assenyalar que després de canviar a Beancount, “l'anàlisi de dades financeres (despeses, donacions, impostos, etc.) és trivial” ja sigui a través de Fava o consultant les dades i utilitzant eines com Pandas. En essència, el teu llibre major es converteix en una base de dades financera personal que pots consultar a voluntat.
  • Pressupost i Planificació: Tot i que Beancount no imposa un sistema de pressupostos, en pots implementar un. Alguns usuaris fan pressupostos per sobres creant comptes de pressupost o utilitzant el connector fava-envelope. Altres simplement utilitzen informes periòdics per comparar les despeses amb els objectius. Com que és text pla, integrar Beancount amb eines de pressupostos externes o fulls de càlcul és senzill (exportant dades o utilitzant sortides CSV de consultes).
  • Seguiment d'Inversions i Patrimoni Net: Beancount destaca en el seguiment d'inversions gràcies a la seva robusta gestió de bases de cost i preus de mercat. Pots registrar compres/vendes d'accions, criptomonedes, etc., amb detalls de cost, i després utilitzar directives Prices per fer un seguiment del valor de mercat. Fava pot mostrar un gràfic de patrimoni net al llarg del temps i un desglossament de la cartera per classe d'actiu. Això és enormement útil per a la gestió del patrimoni personal: obtens informació similar a la que proporcionen eines comercials com Mint o Personal Capital, però totalment sota el teu control. La gestió de múltiples divises també està integrada, de manera que si tens divises estrangeres o criptomonedes, Beancount pot fer-ne un seguiment i convertir-les per a la generació d'informes.
  • Reconciliació i Precisió: Les finances personals sovint impliquen la reconciliació amb els extractes bancaris. Amb Beancount, es poden conciliar comptes regularment utilitzant assercions de saldo o la funció de documents. Per exemple, cada mes podries afegir una entrada balance Assets:Bank:Checking <data> <saldo> per confirmar que el teu llibre major coincideix amb l'extracte del banc a finals de mes. L'eina bean-check (o la visualització d'errors de Fava) t'alertarà si les coses no coincideixen. Un usuari esmenta fer una reconciliació mensual de tots els comptes, la qual cosa “ajuda a detectar qualsevol activitat inusual” – una bona pràctica d'higiene financera personal que Beancount facilita.
  • Automatització: Persones amb coneixements tecnològics han automatitzat grans parts del seu flux de treball de finances personals amb Beancount. Utilitzant importadors, tasques cron i potser una mica de Python, pots configurar el teu sistema de manera que, per exemple, cada dia les teves transaccions bancàries es recuperin (alguns utilitzen OFX o APIs) i s'afegeixin al teu fitxer Beancount, categoritzades per regles. Amb el temps, el teu llibre major s'actualitza majoritàriament de forma automàtica, i només has de revisar i ajustar segons sigui necessari. Un membre de la comunitat a Hacker News va compartir que després de 3 anys, els seus llibres de Beancount eren “95% automàtics”. Aquest nivell d'automatització és possible gràcies a l'obertura de text pla de Beancount i les seves capacitats de scripting.

Els usuaris de finances personals sovint trien Beancount en lloc de fulls de càlcul o aplicacions perquè els dóna la propietat completa de les dades (sense dependència d'un servei al núvol que podria tancar – una preocupació, ja que Mint va ser descontinuat, per exemple) i perquè la profunditat de la informació és major quan tens totes les teves dades integrades. La corba d'aprenentatge no és trivial – cal aprendre comptabilitat bàsica i la sintaxi de Beancount – però recursos com la documentació oficial i els tutorials de la comunitat ajuden els nouvinguts a començar. Un cop configurat, molts troben que aporta tranquil·litat tenir una imatge clara i fiable de les seves finances en tot moment.

Comptabilitat per a Petites Empreses

Utilitzar Beancount per a una petita empresa (o organització sense ànim de lucre, club, etc.) és menys comú que per a ús personal, però és certament possible i alguns ho han fet amb èxit. El marc de partida doble de Beancount és, de fet, el mateix sistema que sustenta la comptabilitat corporativa, només sense algunes de les característiques de nivell superior que ofereix el programari de comptabilitat dedicat (com ara mòduls de facturació o integracions de nòmines). Així és com Beancount pot encaixar en un context de petita empresa:

  • Llibre Major i Estats Financers: Una petita empresa pot tractar el fitxer de Beancount com el seu llibre major. Tindries comptes d'actiu per a comptes bancaris, comptes a cobrar, potser inventari; comptes de passiu per a targetes de crèdit, préstecs, comptes a pagar; patrimoni net per al capital del propietari; comptes d'ingressos per a vendes o serveis; i comptes de despeses per a totes les despeses del negoci. En mantenir aquest llibre, pots produir un Compte de Resultats (Pèrdues i Guanys) i un Balanç de Situació en qualsevol moment utilitzant els informes o consultes de Beancount. De fet, els informes integrats de Beancount o Fava poden generar un balanç i un P&G en segons que estan perfectament d'acord amb els principis comptables. Això pot ser suficient per a una petita operació per avaluar la rendibilitat, la posició financera i el flux de caixa (amb una mica de consulta per al flux de caixa, ja que els estats de flux de caixa directes no estan integrats, però es poden derivar).
  • Factures i Comptes a Cobrar, Comptes a Pagar: Beancount no té un sistema de facturació integrat; els usuaris normalment gestionarien la facturació externament (per exemple, crear factures a Word o una aplicació de facturació) i després registrarien els resultats a Beancount. Per exemple, quan emets una factura, registraries un assentament carregant Comptes a Cobrar i abonant Ingressos. Quan arriba el pagament, carregues Efectiu/Banc i abones Comptes a Cobrar. D'aquesta manera, pots fer un seguiment dels comptes a cobrar pendents consultant el saldo del compte de Comptes a Cobrar. El mateix s'aplica a les factures (Comptes a Pagar). Tot i que és més manual que el programari de comptabilitat especialitzat (que podria enviar recordatoris o integrar-se amb correus electrònics), és perfectament factible. Alguns usuaris han compartit plantilles o fluxos de treball sobre com gestionen les factures amb Beancount i s'asseguren de no perdre factures obertes (per exemple, utilitzant metadades o consultes personalitzades per llistar factures impagades).
  • Inventari o Cost de les Mercaderies Venudes: Per a les empreses que venen productes, Beancount pot fer un seguiment de les compres i vendes d'inventari, però requereix assentaments disciplinats. Podries utilitzar les característiques d'Inventari i comptabilitat de costos: la compra d'inventari augmenta un compte d'actiu (amb el cost associat als articles), la venda mou el cost a una despesa (CMV) i registra ingressos. Com que Beancount insisteix en la coincidència de lots, forçarà la reducció adequada de l'inventari amb el cost correcte, la qual cosa pot assegurar que els teus càlculs de benefici brut siguin precisos si es fan correctament. No obstant això, no hi ha un seguiment automatitzat de SKU ni res semblant; tot és a nivell financer (quantitat i cost).
  • Nòmines i Transaccions Complexes: Beancount pot registrar transaccions de nòmines (despesa de salaris, retencions fiscals, etc.), però el càlcul d'aquestes xifres es podria fer externament o mitjançant una altra eina, i després simplement registrar-les a Beancount. Per a una empresa molt petita (per exemple, un o dos empleats), això és manejable. Per exemple, registraries un únic assentament comptable per període de pagament que desglossaria salaris, impostos retinguts, despeses d'impostos de l'empleador, efectiu pagat, etc. Fer això manualment és similar a com es faria en els assentaments de diari de QuickBooks; requereix coneixement de quins comptes s'han d'afectar.
  • Multi-usuari i Auditoria: Un repte en un entorn empresarial és si diverses persones necessiten accedir als llibres o si un comptable necessita revisar-los. Com que Beancount és un fitxer de text, no és multi-usuari en temps real. No obstant això, allotjar el fitxer en un repositori Git pot permetre la col·laboració: cada persona pot editar i fer commit, i les diferències es poden fusionar.
  • Compliment normatiu: Per a la presentació d'impostos o el compliment normatiu, les dades de Beancount es poden utilitzar per generar els informes necessaris, però pot requerir consultes personalitzades o connectors. Vam veure un exemple d'un connector de la comunitat per a informes de compliment del govern indi, i un altre per a informes FBAR de FinCEN. Això demostra que, amb esforç, Beancount es pot adaptar per complir requisits d'informació específics. Les petites empreses en jurisdiccions amb requisits senzills (comptabilitat de caixa o meritació bàsica) poden certament mantenir els llibres a Beancount i produir estats financers per a les declaracions d'impostos. No obstant això, característiques com les taules d'amortització o l'amortització podrien requerir que escriguis els teus propis assentaments o utilitzis un connector (els connectors d'amortització de Dave Stephens ajuden a automatitzar-ho, per exemple). No hi ha una interfície gràfica d'usuari per "fer clic a amortitzar actiu" com en alguns programaris de comptabilitat; codificaries l'amortització com a transaccions (la qual cosa, d'alguna manera, la desmitifica: tot és un assentament que pots inspeccionar).

A la pràctica, molts propietaris de petites empreses amb orientació tecnològica han utilitzat Beancount (o Ledger/hledger) si prefereixen el control i la transparència a la comoditat de QuickBooks. Una discussió a Reddit va assenyalar que per a la comptabilitat estàndard de petites empreses amb un volum limitat de transaccions, Beancount funciona bé. El factor limitant sol ser el nivell de comoditat: si el propietari del negoci (o el seu comptable) se sent còmode amb una eina basada en text. Un avantatge és el cost: Beancount és gratuït, mentre que el programari de comptabilitat pot ser costós per a una petita empresa. D'altra banda, la manca de suport oficial i la naturalesa "fes-ho tu mateix" significa que és més adequat per a aquells que són alhora propietaris del negoci i tenen certa inclinació tècnica. Per a autònoms o empresaris individuals amb habilitats de programació, Beancount pot ser una opció atractiva per gestionar les finances sense dependre dels serveis de comptabilitat al núvol.

També són possibles els enfocaments híbrids: algunes petites empreses utilitzen un sistema oficial per a factures o nòmines, però importen periòdicament les dades a Beancount per a anàlisi i arxivament. D'aquesta manera, obtenen el millor dels dos mons: compliment i facilitat per a les operacions diàries, a més de la potència de Beancount per a una visió consolidada.

En resum, Beancount pot gestionar la comptabilitat de petites empreses, sempre que l'usuari estigui disposat a gestionar manualment coses que el programari comercial automatitza. Assegura un alt grau de transparència —entens profundament els teus llibres perquè els estàs escrivint— i, per a un usuari diligent, pot produir llibres impecables. Tant els usuaris personals com els empresarials es beneficien dels punts forts principals de Beancount: un motor comptable fiable, un rastre d'auditoria complet i flexibilitat per adaptar-se a escenaris únics (mitjançant scripting i connectors). Ja sigui per fer un seguiment d'un pressupost domèstic o de les finances d'una startup, Beancount ofereix un conjunt d'eines per fer-ho amb precisió i obertura.

Comunitat i Activitat de Desenvolupament

Beancount té una comunitat dedicada i una història de desenvolupament que reflecteix la seva naturalesa de codi obert, de nínxol però apassionada. A continuació, es detallen els punts clau sobre la seva comunitat, mantenidors i projectes relacionats:

  • Manteniment del Projecte: L'autor principal de Beancount és Martin Blais, qui va iniciar el projecte al voltant del 2007 i l'ha guiat a través de múltiples versions. Durant molt de temps, el desenvolupament va ser en gran part un esforç d'una sola persona (a part de les contribucions de pegats de la comunitat). La filosofia de Martin era construir una eina de comptabilitat "útil per a mi primer, així com per als altres, de la manera més senzilla i duradora". Aquesta motivació personal va mantenir el projecte com una feina feta amb amor. A partir del 2025, Martin Blais segueix sent el mantenidor principal (el seu nom apareix als commits i respon preguntes a la llista de correu/seguiment de problemes), però l'ecosistema al voltant de Beancount té molts altres contribuïdors en els seus respectius projectes.

  • GitHub i Repositoris: El codi font s'allotja a GitHub sota el repositori beancount/beancount. El projecte té llicència GPL-2.0 i ha atret un nombre modest de contribuïdors al llarg dels anys. A mitjans del 2024, la versió 3 de Beancount va ser llançada oficialment com la nova branca estable. Aquesta versió va implicar la separació d'alguns components: per exemple, el repositori beangulp (per a importadors) i el repositori beanquery (per a l'eina de consulta) formen part ara de l'organització beancount de GitHub, mantinguts de manera una mica independent. El repositori principal de Beancount se centra en el motor de comptabilitat central i l'analitzador de fitxers. A partir del 2025, el GitHub de Beancount mostra discussions actives sobre problemes i un desenvolupament continu – tot i que no és de gran volum, els problemes i les sol·licituds de pull van arribant, i s'hi fan actualitzacions ocasionals per corregir errors o millorar funcions.

  • Desenvolupament de Fava: Fava, la interfície web, va començar com un projecte separat (creat per Dominic Aumayr, qui el va registrar el 2016). Té la seva pròpia comunitat de contribuïdors i també es troba a GitHub sota beancount/fava. Els mantenidors i contribuïdors de Fava (per exemple, Jakob Schnetz, Stefan Otte i altres en els darrers anys) han estat millorant activament la interfície, amb llançaments cada pocs mesos. El xat de Gitter de Fava (enllaçat a la documentació de Fava) i el seguiment de problemes de GitHub són llocs on usuaris i desenvolupadors discuteixen noves funcions o errors. El projecte dóna la benvinguda a les contribucions, com ho demostra una nota al CHANGELOG agraint a múltiples membres de la comunitat per les seves PRs. L'estreta alineació de Fava amb el desenvolupament de Beancount (com ara l'addició ràpida de suport per a Beancount v3 i la nova sintaxi de beanquery) indica una bona col·laboració entre els dos projectes.

  • Llistes de Correu i Fòrums: Beancount té una llista de correu oficial (anteriorment a Google Groups, titulada "Beancount" o de vegades discutida a la llista general de Ledger). Aquesta llista de correu és un tresor de coneixement – els usuaris fan preguntes sobre com modelar certs escenaris, informen d'errors i comparteixen consells. Martin Blais és conegut per respondre a la llista de correu amb explicacions detallades. A més, la comunitat més àmplia de Comptabilitat de Text Pla se superposa molt. La llista de correu de Ledger CLI sovint també atén preguntes sobre Beancount, i hi ha un fòrum a plaintextaccounting.org i un subreddit r/plaintextaccounting on els temes de Beancount sorgeixen amb freqüència. Els usuaris d'aquestes plataformes discuteixen comparacions, comparteixen configuracions personals i ajuden els nouvinguts. El to general de la comunitat és molt cooperatiu – els usuaris de Beancount sovint ajuden els usuaris de Ledger i viceversa, reconeixent que totes aquestes eines tenen objectius similars.

  • Grups de Xat: A més de les llistes de correu, hi ha canals de xat com el Slack/Discord de Plaintext Accounting (organitzat per la comunitat) i el Gitter de Fava. Aquests són maneres menys formals i més en temps real d'obtenir ajuda o discutir funcions. Per exemple, algú podria entrar al Slack per preguntar si algú té un importador per a un banc específic. També hi ha un canal de Matrix/IRC (històricament #ledger o #beancount a IRC) on alguns usuaris de llarga data estan inactius. Tot i que no són tan nombrosos com les comunitats de programari convencional, aquests canals tenen gent amb coneixements que sovint poden respondre preguntes de comptabilitat obscures.

  • Contribuïdors i Membres Clau de la Comunitat: Alguns noms destaquen a la comunitat de Beancount:

    • "Redstreet" (Red S): Un contribuïdor prolífic que ha escrit molts plugins (com beancount-balexpr, sellgains, i altres) i sovint proporciona suport. També manté un conjunt de scripts d'importació i una eina anomenada bean-download per obtenir extractes.
    • Vasily M (Evernight): Autor d'alguns frameworks d'importació i plugins

Desenvolupaments Recents i Futures Característiques

A partir de 2025, l'ecosistema Beancount ha experimentat desenvolupaments significatius en els darrers dos anys, i hi ha discussions en curs sobre futures millores. A continuació, es presenten alguns desenvolupaments recents destacats i un avanç del que podria venir:

  • Llançament de Beancount 3.0 (2024): Després d'un llarg període en què Beancount 2.x va ser l'estàndard, la versió 3 es va llançar oficialment a mitjans de 2024. Aquesta va ser una fita important perquè la v3 representa una simplificació i modernització del codi base. Martin Blais havia concebut la v3 com una oportunitat per a "reorganitzar i simplificar" el sistema encara més. Tot i que originalment es pensava que seria una reescriptura important, a la pràctica l'actualització per als usuaris no va ser massa disruptiva. Els canvis principals van ser interns: un nou analitzador (parser), algunes millores de rendiment i l'extracció de components opcionals del nucli. El llançament es va dur a terme gradualment (la v3 havia estat en beta des de 2022, però al juliol de 2024 es va convertir en la versió estable recomanada). Usuaris com Siddhant Goel van informar que la migració de 2.x a 3.x va ser "majoritàriament sense incidents" amb només uns pocs canvis en el flux de treball.

  • Modularització – eines traslladades a paquets separats: Un dels grans canvis amb Beancount 3 és que moltes eines que solien residir al repositori monolític es van separar. Per exemple, bean-query ara és proporcionat pel paquet beanquery, i beancount.ingest va ser reemplaçat pel paquet beangulp. Comandes com bean-extract i bean-identify (per a importacions) van ser eliminades del nucli de Beancount. En canvi, la filosofia és utilitzar scripts autònoms per a la importació. Això significa que si actualitzeu a la v3, instal·laríeu beangulp i executaríeu scripts d'importació (cada importador és bàsicament un petit programa) en lloc de tenir un fitxer de configuració central de bean-extract. De manera similar, les consultes s'executen mitjançant beanquery, que es pot instal·lar i actualitzar independentment del nucli de Beancount. Aquest enfocament modular va ser dissenyat per facilitar el manteniment i fomentar les contribucions de la comunitat. També va reduir el nucli de Beancount, de manera que el nucli se centra purament en l'anàlisi (parsing) i la lògica comptable, mentre que la funcionalitat auxiliar pot evolucionar per separat. Des de la perspectiva de l'usuari, després d'actualitzar, cal ajustar les comandes (p. ex., utilitzar bean-query de beanquery, o utilitzar Fava que ja ho abstrau). El registre de canvis de Fava assenyala explícitament aquests canvis: Fava ara depèn de beanquery i beangulp, i gestiona els fluxos de treball d'importació de manera diferent per a Beancount 3 vs 2.

  • Millores de Rendiment: El rendiment va ser una motivació per revisar el disseny de Beancount. El pla de la v3 (tal com es descriu al document "Objectius de la V3" de Martin) incloïa l'optimització de l'analitzador (parser) i, possiblement, fer el procés de càrrega més ràpid i menys intensiu en memòria. El 2025, algunes d'aquestes millores s'han materialitzat. De manera anecdòtica, els usuaris amb llibres majors molt grans (desenes de milers de transaccions, o moltes operacions de borsa) han informat d'un millor rendiment amb l'última versió. Per exemple, un usuari que gestionava "transaccions de microinversió" i que va tenir problemes de rendiment va assenyalar aquestes preocupacions al Grup de Google – aquest tipus de retroalimentació probablement va informar la v3. El nou analitzador (parser) és més eficient i està escrit d'una manera més clara, la qual cosa podria estendre's en el futur. A més, Fava 1.29 va passar a un mecanisme de vigilància de fitxers més eficient (utilitzant la biblioteca watchfiles) per millorar la capacitat de resposta quan el llibre major canvia. De cara al futur, la comunitat podria explorar l'anàlisi incremental (només reprocessar les parts modificades del fitxer en lloc de tot) per gestionar llibres majors grans més ràpidament – això es va insinuar a la documentació com la idea de "servidor Beancount / registre incremental".

  • Millores en el Seguiment d'Inversions: Hi ha hagut un treball continu per millorar la informació sobre inversions i carteres. Per exemple, es va discutir àmpliament la gestió del cost mitjà ponderat (average cost basis) vs. FIFO. Tot i que Beancount aplica la concordança de lots, alguns usuaris prefereixen el cost mitjà per a certes jurisdiccions. Existeix una proposta i discussió sobre fer el registre del cost base més flexible (possiblement mitjançant un plugin o una opció). El 2025, no hi ha un interruptor integrat per al cost mitjà, però la base de la v3 (el redisseny del registre) facilita la implementació per part dels plugins. Es va llançar un plugin de la comunitat anomenat "Gains Minimizer" que pot suggerir quins lots vendre per minimitzar els impostos, mostrant el tipus d'eines avançades que s'estan construint al voltant de les inversions. Fava també va afegir característiques com una extensió de resum de cartera (amb càlculs de taxa de rendiment). Pel que fa a les futures característiques, es pot esperar més en aquest àmbit: possiblement suggeriments de reequilibri de cartera automatitzats o anàlisi de riscos, probablement com a eines externes que llegeixen dades de Beancount (ja que totes les dades hi són).

  • Nous Plugins i Extensions: L'ecosistema de plugins creix contínuament

Comprendre els Comptes a Cobrar i a Pagar a Beancount

· 3 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Hola a tothom! En la publicació del blog d'avui, ens submergim en el món de Beancount, una eina de comptabilitat de partida doble estimada per molts per la seva simplicitat i potència. Més concretament, parlarem de dos conceptes clau: els Comptes a Cobrar i els Comptes a Pagar.

Comprendre aquests termes és crucial per utilitzar Beancount (o qualsevol sistema de comptabilitat de partida doble) de manera efectiva. Però no us preocupeu si sou principiants, ho desglossarem tot, pas a pas!

Comptes a Cobrar i a Pagar: Els Conceptes Bàsics

2023-05-30-receiveable-and-payable

En comptabilitat, "comptes a cobrar" i "comptes a pagar" són termes utilitzats per fer un seguiment dels diners deguts. Els "comptes a cobrar" es refereixen als diners que altres us deuen, mentre que els "comptes a pagar" es refereixen als diners que vosaltres deveu a altres.

Vegem un exemple:

  1. Comptes a Cobrar (C/C): Suposem que sou propietaris d'una llibreria i un client compra un llibre a crèdit. Els diners que us deuen pel llibre són un compte a cobrar.

  2. Comptes a Pagar (C/P): D'altra banda, imagineu que demaneu un nou lot de llibres a un editor, però no els pagueu per avançat. Els diners que deveu a l'editor són un compte a pagar.

A Beancount, aquests es registren normalment mitjançant comptes corresponents. El principal benefici aquí és que us proporciona una imatge clara i precisa de la vostra posició financera en qualsevol moment.

Configuració de Comptes a Cobrar i a Pagar a Beancount

L'estructura del vostre fitxer Beancount pot ser tan senzilla o complexa com necessiteu. Per als comptes a cobrar i a pagar, probablement voldreu crear comptes separats sota les seccions d'Actius i Passius.

Aquí teniu un exemple senzill:

1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:AccountsPayable

Seguiment de Transaccions

Costat del Cobrador

Després de configurar els vostres comptes, podeu fer un seguiment de les transaccions que involucren comptes a cobrar i a pagar. Vegem un exemple:

2023-05-29 * "Sold books to customer on credit"
Assets:AccountsReceivable 100 USD
Income:BookSales -100 USD

Aquí, esteu afegint 100 $ als vostres comptes a cobrar perquè un client us deu aquesta quantitat. Simultàniament, esteu reduint els vostres ingressos per la mateixa quantitat per mantenir l'equilibri (ja que encara no heu rebut els diners).

Quan el client finalment pagui, ho registrareu així:

2023-06-01 * "Received payment from customer"
Assets:Bank:Savings 100 USD
Assets:AccountsReceivable -100 USD

Costat del Pagador

El mateix principi s'aplica als comptes a pagar, però amb signes invertits:

2023-05-30 * "Bought books from publisher on credit"
Liabilities:AccountsPayable 200 USD
Expenses:BookPurchases -200 USD

I quan pagueu el vostre deute:

2023-06-02 * "Paid off debt to publisher"
Liabilities:AccountsPayable -200 USD
Assets:Bank:Checking 200 USD

Conclusió

Els comptes a cobrar i a pagar són el cor de qualsevol sistema comptable. En fer-ne un seguiment precís, obteniu una comprensió completa de la vostra salut financera.

Això és només un punt de partida, i Beancount és capaç de molt més. Espero que aquesta publicació del blog ajudi a aclarir aquests conceptes importants. Com sempre, feliç comptabilitat!

Desglossant un Llibre Major de Beancount: Un Estudi de Cas per a la Comptabilitat Empresarial

· 3 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

En la publicació del blog d'avui, desglossarem un llibre major de Beancount per a empreses, cosa que us ajudarà a entendre les complexitats d'aquest sistema de comptabilitat de partida doble en text pla.

Desglossant un Llibre Major de Beancount: Un Estudi de Cas per a la Comptabilitat Empresarial

Comencem amb el codi:

2023-05-22-plantilla-negoci

1970-01-01 open Assets:Bank:Mercury
1970-01-01 open Assets:Crypto

1970-01-01 open Equity:Bank:Chase

1970-01-01 open Income:Stripe
1970-01-01 open Income:Crypto:ETH

1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:COGS:Contabo
1970-01-01 open Expenses:COGS:AmazonWebServices

1970-01-01 open Expenses:BusinessExpenses
1970-01-01 open Expenses:BusinessExpenses:ChatGPT

2023-05-14 * "CONTABO.COM" "Mercury Checking ••1234"
Expenses:COGS:Contabo 17.49 USD
Assets:Bank:Mercury -17.49 USD

2023-05-11 * "Amazon Web Services" "Mercury Checking ••1234"
Expenses:COGS:AmazonWebServices 14490.33 USD
Assets:Bank:Mercury -14490.33 USD

2023-03-01 * "STRIPE" "Mercury Checking ••1234"
Income:Stripe -21230.75 USD
Assets:Bank:Mercury 21230.75 USD

2023-05-18 * "customer_182734" "0x5190E84918FD67706A9DFDb337d5744dF4EE5f3f"
Assets:Crypto -19 ETH {1,856.20 USD}
Income:Crypto:ETH 19 ETH @@ 35267.8 USD

Entenent el Codi

  1. Obertura de Comptes: El codi comença obrint una sèrie de comptes l'1 de gener de 1970. Aquests inclouen una combinació de comptes d'actiu (Assets:Bank:Mercury i Assets:Crypto), un compte de patrimoni net (Equity:Bank:Chase), comptes d'ingressos (Income:Stripe i Income:Crypto:ETH), i comptes de despeses (Expenses:COGS, Expenses:COGS:AmazonWebServices, Expenses:BusinessExpenses, i Expenses:BusinessExpenses:ChatGPT).

  2. Transaccions: Després, es procedeix a registrar una sèrie de transaccions entre el 01-03-2023 i el 18-05-2023.

    • La transacció del 14-05-2023 representa un pagament de 17.49 USD a CONTABO.COM des de Mercury Checking ••1234. Això es registra com una despesa (Expenses:COGS:Contabo) i una deducció corresponent del compte Assets:Bank:Mercury.

    • De manera similar, la transacció de l'11-05-2023 representa un pagament de 14490.33 USD a Amazon Web Services des del mateix compte bancari. Això es registra sota Expenses:COGS:AmazonWebServices.

    • La transacció del 01-03-2023 mostra ingressos de STRIPE dipositats a Mercury Checking ••1234, amb un total de 21230.75 USD. Això es registra com a ingrés (Income:Stripe) i una addició al compte bancari (Assets:Bank:Mercury).

    • L'última transacció del 18-05-2023 representa una transacció de criptomoneda que implica 19 ETH d'un client. Això es fa un seguiment sota Assets:Crypto i Income:Crypto:ETH. El {1,856.20 USD} mostra el preu de l'ETH en el moment de la transacció, mentre que el @@ 35267.8 USD especifica el valor total de la transacció de 19 ETH.

En totes les transaccions, es manté el principi de la comptabilitat de partida doble, assegurant que l'equació Actius = Passius + Patrimoni Net sempre es compleixi.

Reflexions Finals

Aquest llibre major de Beancount proporciona un sistema senzill però robust per fer un seguiment de les transaccions financeres. Com es veu en la transacció final, Beancount és prou flexible per comptabilitzar actius no tradicionals com la criptomoneda, cosa que és un testimoni de la seva utilitat en el nostre paisatge financer cada vegada més digital.

Esperem que aquesta desglossament us ajudi a entendre millor l'estructura i les capacitats de Beancount, tant si sou un comptable experimentat com un principiant que intenta fer un seguiment de les vostres finances personals. Estigueu atents a la nostra propera publicació del blog, on aprofundirem en operacions avançades de Beancount.

Full de referència de Beancount

· 2 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Exemple de nom de compte

Assets:US:BofA:Checking

cheatsheet-en

Tipus de comptes

Assets          +
Liabilities -
Income -
Expenses +
Equity -

Mercaderies

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

Directives

Sintaxi general

YYYY-MM-DD <Directive> <Parameters...>

Obertura i tancament de comptes

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; Restriccions de divises

2015-04-23 close Assets:Checking

Declaració de mercaderies (Opcional)

1998-07-22 commodity AAPL
name: "Apple Computer Inc."

Preus

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

Notes

2013-03-20 note Assets:Checking "Vaig trucar per preguntar sobre el reemborsament"

Documents

2013-03-20 document Assets:Checking "path/to/statement.pdf"

Transaccions

2015-05-30 * "Alguna narració sobre aquesta transacció"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Companyia de Cable" "Factura de Telèfon" #tag ˆlink
id: "TW378743437" ; Metadades
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; Podeu ometre una quantitat

Assentaments

  ...    123.45 USD                             Simple
... 10 GOOG {502.12 USD} Amb cost per unitat
... 10 GOOG {{5021.20 USD}} Amb cost total
... 10 GOOG {502.12 # 9.95 USD} Amb ambdós costos
... 1000.00 USD @ 1.10 CAD Amb preu per unitat
... 10 GOOG {502.12 USD} @ 1.10 CAD Amb cost i preu
... 10 GOOG {502.12 USD, 2014-05-12} Amb data
! ... 123.45 USD ... Amb indicador

Assertions de saldo i farciment

; Afirma la quantitat només per a la divisa donada:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; Inserció automàtica de la transacció per complir la següent afirmació:
2015-06-01pad Assets:Checking Equity:Opening-Balances

Esdeveniments

2015-06-01 event "ubicació" "Nova York, EUA"
2015-06-30 event "adreça" "123 May Street"

Opcions

option "title" "El meu llibre major personal"

Altres

pushtag #trip-to-peru
...
poptag #trip-to-peru
; Els comentaris comencen amb un punt i coma

La Màgia de la Comptabilitat en Text Pla amb Beancount

· 6 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Descobreix la Màgia de la Comptabilitat en Text Pla amb Beancount

Beancount.io banner

Introducció

2023-04-18-introduction-to-beancount

Benvingut a un món on la comptabilitat ja no és una tasca intimidatòria. Avui, et presentem Beancount, una eina de comptabilitat en text pla potent, flexible i intuïtiva. Beancount t'ajuda a prendre el control de les teves finances proporcionant un enfocament transparent i senzill per gestionar els teus diners.

En aquesta guia completa, aprofundirem en els conceptes bàsics de Beancount, explicarem els seus conceptes clau i et guiarem a través de les seves característiques senzilles però potents. Al final d'aquest blog, tindràs una comprensió sòlida de Beancount i estaràs preparat per començar a utilitzar-lo per organitzar i analitzar la teva vida financera.

Què és Beancount?

Beancount és un sistema de comptabilitat en text pla de codi obert creat per Martin Blais. Inspirat en el sistema Ledger de John Wiegley, Beancount té com a objectiu proporcionar un mètode robust i fiable per gestionar les finances personals i de petites empreses utilitzant fitxers de text pla. Amb Beancount, pots fer un seguiment dels teus ingressos, despeses, inversions i molt més amb facilitat.

Per què Beancount?

La comptabilitat en text pla ofereix diversos avantatges respecte als sistemes de comptabilitat tradicionals basats en fulls de càlcul o programari:

  • Transparència: Els fitxers de Beancount són llegibles per humans, cosa que facilita la comprensió i l'auditoria de les teves dades financeres.
  • Flexibilitat: Beancount es pot personalitzar fàcilment per adaptar-se a les teves necessitats específiques, i pots utilitzar el teu editor de text preferit i el sistema de control de versions per gestionar les teves dades financeres.
  • Portabilitat: Les teves dades financeres es poden accedir des de qualsevol dispositiu, i és fàcil transferir-les entre sistemes o compartir-les amb altres.
  • A prova de futur: Els fitxers de text pla són universalment compatibles, assegurant que les teves dades financeres romandran accessibles, fins i tot a mesura que la tecnologia evolucioni.

Conceptes Clau de Beancount

Per utilitzar Beancount de manera efectiva, és crucial entendre els seus conceptes clau:

  • Transaccions: Els esdeveniments financers, com ara ingressos, despeses o transferències entre comptes, es registren com a transaccions.
  • Comptes: Les transaccions impliquen un o més comptes, com ara actius, passius, ingressos o despeses.
  • Comptabilitat de partida doble: Beancount aplica la comptabilitat de partida doble, assegurant que cada transacció tingui dèbits i crèdits equilibrats.
  • Directives: Beancount utilitza un conjunt de directives per definir transaccions, obertures de comptes i altres esdeveniments financers.

Començar amb Beancount

Per començar a utilitzar Beancount, segueix aquests senzills passos:

  • Instal·la Beancount: Instal·la Beancount al teu sistema utilitzant les instruccions d'instal·lació proporcionades per al teu sistema operatiu.
  • Crea el teu fitxer Beancount: Crea un nou fitxer de text pla amb l'extensió .beancount (per exemple, my_finances.beancount).
  • Defineix els teus comptes: Utilitza la directiva "open" per definir els comptes que utilitzaràs en les teves transaccions.
  • Registra transaccions: Utilitza la directiva "txn" per registrar les teves transaccions financeres.

O simplement registra't a https://beancount.io. Aquí tens alguns exemples de comptabilitat en text pla -

Exemple 1: Transacció Bàsica

2023-04-01 open Assets:Checking
2023-04-01 open Expenses:Groceries

2023-04-10 txn "Grocery Store" "Buying groceries"
Assets:Checking -50.00 USD
Expenses:Groceries 50.00 USD

En aquest exemple, obrim dos comptes, Assets:Checking i Expenses:Groceries. El 10 d'abril de 2023, registrem una transacció per comprar queviures per valor de 50 $. La transacció redueix el saldo d'Assets:Checking en 50 $ (dèbit) i augmenta el saldo d'Expenses:Groceries en 50 $ (crèdit).

Exemple 2: Transacció d'Ingressos i Despeses

2023-04-01 open Assets:Checking
2023-04-01 open Income:Salary
2023-04-01 open Expenses:Rent

2023-04-05 txn "Employer" "Salary payment"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Landlord" "Monthly rent payment"
Assets:Checking -1000.00 USD
Expenses:Rent 1000.00 USD

En aquest exemple, obrim tres comptes: Assets:Checking, Income:Salary i Expenses:Rent. El 5 d'abril de 2023, registrem una transacció de pagament de salari de 2000 $. La transacció augmenta el saldo d'Assets:Checking en 2000 $ (crèdit) i disminueix el saldo d'Income:Salary en 2000 $ (dèbit). El 6 d'abril de 2023, registrem una transacció de pagament de lloguer de 1000 $. La transacció redueix el saldo d'Assets:Checking en 1000 $ (dèbit) i augmenta el saldo d'Expenses:Rent en 1000 $ (crèdit).

Exemple 3: Transferència entre Comptes

2023-04-01 open Assets:Checking
2023-04-01 open Assets:Savings

2023-04-15 txn "Bank" "Transfer from Checking to Savings"
Assets:Checking -500.00 USD
Assets:Savings 500.00 USD

En aquest exemple, obrim dos comptes: Assets:Checking i Assets:Savings. El 15 d'abril de 2023, registrem una transacció per transferir 500 $ del compte corrent al compte d'estalvis. La transacció redueix el saldo d'Assets:Checking en 500 $ (dèbit) i augmenta el saldo d'Assets:Savings en 500 $ (crèdit).

Aquests exemples il·lustren els conceptes bàsics del sistema de comptabilitat de partida doble de Beancount. En registrar correctament les transaccions, els usuaris poden mantenir registres precisos de les seves activitats financeres i generar informes per obtenir informació sobre la seva situació financera.

Generació d'Informes i Anàlisi de Dades

Beancount inclou un conjunt d'eines potents per generar informes financers, incloent balanços, comptes de resultats i més. També pots utilitzar Fava, una interfície d'usuari web per a Beancount, per visualitzar i interactuar amb les teves dades financeres. https://beancount.io està construït sobre Fava amb llicència MIT.

Conclusió

Abraça el poder i la simplicitat de la comptabilitat en text pla amb Beancount. En comprendre els seus conceptes clau i seguir els passos descrits en aquesta guia, estaràs ben encaminat per gestionar les teves finances personals o de petita empresa amb facilitat i precisió. A mesura que et sentis més còmode amb Beancount, podràs explorar funcions avançades i personalitzacions per adaptar el sistema a les teves necessitats úniques.

Tant si busques fer un seguiment de les teves despeses, planificar el futur o obtenir informació sobre els teus hàbits financers, Beancount ofereix la flexibilitat i la transparència necessàries per assolir els teus objectius. Amb el seu enfocament fàcil d'utilitzar, Beancount té el potencial de revolucionar la manera com gestiones les teves finances i t'empodera per prendre el control del teu futur financer.

Ara que tens una base sòlida en Beancount, és hora d'embarcar-te en el teu viatge de comptabilitat en text pla. Digues adéu als fulls de càlcul engorrosos i al programari complicat, i dóna la benvinguda al món de Beancount. Feliç comptabilitat!

Introducció a Beancount.io

· 6 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

Per què la tinença de llibres moderna és important

Encara gestioneu les vostres inversions amb fulls de càlcul? Tot i que els fulls de càlcul són versàtils, poden esdevenir feixucs i propensos a errors a mesura que la vostra cartera d'inversions creix. Us presentem Beancount.io – una plataforma de seguiment d'inversions sofisticada però fàcil d'usar, dissenyada específicament per gestionar carteres d'accions i criptomonedes. Construïda pensant en enginyers i minimalistes financers, Beancount.io combina potents funcions amb una interfície intuïtiva per optimitzar la vostra experiència de seguiment d'inversions.

2019-09-07-introduction-to-beancount

Expenses

Income Statement

Balance Sheet

Comptabilitat de Partida Doble: El Fonament de la Precisió

Beancount.io es basa en els principis de la comptabilitat de partida doble – una metodologia provada amb el temps utilitzada per institucions financeres arreu del món. Aquest sistema garanteix la precisió matemàtica mitjançant un concepte senzill però potent: cada transacció financera ha de quadrar perfectament.

En la tinença de llibres de partida doble, cada transacció requereix almenys dues entrades – un dèbit (+) i un crèdit (-) – en diferents comptes. Aquest sistema de verificació integrat fa que sigui pràcticament impossible registrar transaccions desequilibrades, assegurant que els vostres registres financers romanguin precisos i fiables.

1970-01-01 open Income:BeancountCorp
1970-01-01 open Assets:Cash
1970-01-01 open Expenses:Food
1970-01-01 open Assets:Receivables:Alice
1970-01-01 open Assets:Receivables:Bob
1970-01-01 open Assets:Receivables:Charlie
1970-01-01 open Liabilities:CreditCard

2019-05-31 * "BeancountCorp" "Salary of May 15th to May 31st"
Income:BeancountCorp -888 USD
Assets:Cash 888 USD

2019-07-12 * "Popeyes chicken sandwiches" "dinner with Alice, Bob, and Charlie"
Expenses:Food 20 USD
Assets:Receivables:Alice 20 USD
Assets:Receivables:Bob 20 USD
Assets:Receivables:Charlie 20 USD
Liabilities:CreditCard -80 USD

Com podeu veure en els dos exemples anteriors, cada transacció ha de complir l'equació comptable.

Assets = Liabilities + Equity(aka Net Assets)

Hem utilitzat la sintaxi de Beancount de Martin Blais i el projecte web Fava de Jakob Schnitzer per construir aquest lloc web. I us avisarà si alguna transacció té alguna partida que no sumi zero.

Error Alert

Ara enteneu com apliquem la correcció del llibre major. Però potser us pregunteu què són aquests "comptes"?

Entenent els Comptes: L'Analogia de la Galleda d'Aigua

Penseu en els vostres comptes financers com un sistema de galledes d'aigua interconnectades, on els diners flueixen com l'aigua entre elles. Aquesta analogia fa que la tinença de llibres de partida doble sigui intuïtiva: quan transferiu diners d'un compte a un altre, és com abocar aigua d'una galleda a una altra – la quantitat total d'aigua (diners) en el sistema roman constant.

Beancount.io introdueix cinc tipus de comptes.

  1. Ingressos — El seu import és sempre negatiu o en dèbit. Això és perquè esteu guanyant diners, i llavors els diners es debiten del compte d'"Ingressos" i es crediten als vostres "Actius".
  2. Despeses — El seu import és sempre positiu o en crèdit. Això és perquè esteu gastant diners, i els diners flueixen dels "Actius" o "Passius" a les "Despeses".
  3. Passius — El seu import és positiu o zero. Els vostres passius de targeta de crèdit són un bon exemple, que augmenten i disminueixen en cicles.
  4. Actius — El seu import és positiu o zero. Els vostres diners en efectiu o cases sempre tenen un valor.
  5. Patrimoni Net — Els vostres actius nets. El sistema ho calcularà automàticament per a vosaltres. Patrimoni Net = Actius - Passius i reflecteix la vostra riquesa.

Ara podeu obrir els vostres comptes personalitzats amb les paraules clau anteriors:

1970-01-01 open Assets:Cash
1970-01-01 open Assets:Stock:Robinhood
1970-01-01 open Assets:Crypto:Coinbase
1970-01-01 open Expenses:Transportation:Taxi
1970-01-01 open Equity:OpeningBalance

Seguiment Avançat d'Inversions amb Mercaderies

Beancount.io destaca en el seguiment d'inversions diverses, des d'accions fins a criptomonedes. Explorem com gestiona escenaris d'inversió complexos. Per exemple, així és com registraríeu la compra de 10 Bitcoins a 100 $ cadascun el 2014:

2014-08-08 * "Buy 10 Bitcoin"
Assets:Trade:Cash -1000.00 USD
Assets:Trade:Positions 10 BTC {100.00 USD}

I tres anys més tard, els veneu (originalment amb costos de 100 $ per unitat anotats amb {100.00 USD}) al preu de 10.000 $ per unitat anotat amb @ 10,000.00 USD.

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @ 10,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

O la mateixa transacció amb @@ 20,000.00 USD significa que al preu de 20.000 $ en total.

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @@ 20,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

La suma de totes les partides de la transacció, incloent -2 BTC {100.00 USD}, segueix sent, com sempre, zero.

L'etiqueta de costos {100.00 USD} és important perquè podríeu haver comprat la mateixa mercaderia a costos diferents.

100 BTC {10.00 USD, 2012-08-08}
10 BTC {100.00 USD, 2014-08-08}

Si voleu simplificar el procés, podeu configurar el compte al principi amb FIFO o LIFO. FIFO significa "first in, first out" (primer a entrar, primer a sortir), mentre que LIFO significa "last in, first out" (últim a entrar, primer a sortir). Als EUA, l'IRS utilitza FIFO per calcular el vostre PnL i impostos en conseqüència.

1970-01-01 open Assets:Trade:Positions "FIFO"

I llavors, quan el veneu de forma abreujada com -2 BTC {}, beancount aplicarà automàticament l'estratègia FIFO i vendrà la mercaderia més antiga.

Començant amb Beancount.io

Beancount.io és una moderna plataforma de gestió financera basada en el núvol que transforma els vostres registres de transaccions basats en text en estats financers complets, incloent estats de resultats, balanços i balanços de comprovació. Combinant la fiabilitat dels fitxers de text pla amb potents eines de visualització, Beancount.io us ajuda a mantenir un control precís sobre la vostra vida financera mentre obteniu valuoses perspectives sobre el rendiment de les vostres inversions.

Comenceu el vostre viatge financer amb Beancount.io - Gratuït durant el nostre període promocional!