Salta al contingut principal

Què és Beancount: llibres de comptabilitat de doble entrada

Beancount és comptabilitat de doble entrada en text pla per a accions, criptomonedes i llibres quotidians: què és i per què els enginyers l'utilitzen.

Aquesta guia sintetitza les millors pràctiques per a la comptabilitat en text pla utilitzant l'eina de comptabilitat en text pla potent, de codi obert i basada en text, Beancount. Cobreix la filosofia fundacional, la sintaxi de bàsica a avançada, casos d'estudi pràctics per a actius complexos i estratègies de gestió de llibres a llarg termini.

Part 1: El "Per què" - Fonaments de la Comptabilitat Intel·ligent​

Abans de submergir-te en el "com", és crucial entendre el "per què". Una comptabilitat eficaç és la base de la gestió financera personal i un pas necessari cap a la claredat financera i la llibertat.

Més enllà del Seguiment de Despeses: El Camí cap a la Claredat Financera​

Les aplicacions simples de seguiment de despeses et diuen on han anat els teus diners. Un sistema comptable robust et diu això i molt més: proporciona una imatge completa de la teva salut financera, incloent-hi el teu patrimoni net, el flux de caixa i el rendiment de les teves inversions. L'objectiu principal és l'observabilitat—obtenir una comprensió clara i basada en dades de la teva vida financera, que et permeti prendre decisions informades, avaluar riscos i treballar cap a objectius a llarg termini com la jubilació.

Per què Doble Entrada? El Poder d'un Sistema Equilibrat​

A diferència de la comptabilitat per partida simple (una llista simple de despeses), el mètode de partida doble registra cada transacció com un flux de valor entre almenys dos comptes. El seu principi fonamental és l'equació comptable fonamental:

Actius=Passius+Patrimoni net\text{Actius} = \text{Passius} + \text{Patrimoni net}

Aquest sistema assegura que els teus llibres estiguin sempre equilibrats, reduint dràsticament els errors. Proporciona una imatge financera completa generant informes essencials com un balanç de situació (què tens i què deus) i un compte de resultats (què has guanyat i què has gastat).

Part 2: Començar amb Beancount​

Beancount és una eina potent basada en Python per a la comptabilitat en text pla.

La teva Primera Ullada amb Fava a Beancount.io​

Beancount.io proporciona un entorn potent que combina el motor de Beancount amb una aplicació mòbil (iOS, Android) i una aplicació web - Fava, una interfície web fantàstica per visualitzar el teu llibre. No cal cap instal·lació. Quan utilitzes la plataforma, estàs interactuant directament amb un editor de text per al teu fitxer de llibre (per exemple, main.bean) i veient com els informes generats per Fava s'actualitzen en temps real.

Fava agafa el text pla que escrius i el converteix en gràfics interactius, estats financers i llistes de transaccions filtrables, donant-te una visió clara dels teus informes financers.

O comença amb el Terminal utilitzant bea​

Si prefereixes treballar des d'un shell, bea és la línia de comandes de Beancount.io. No cal cap compte: instal·la'l amb brew install bex-co/tap/bea o uv tool install beancount-io, i crea, valida, consulta i genera informes sobre el mateix fitxer de text pla. La guia ràpida de la CLI t'aconsegueix un primer llibre en uns minuts, i El teu primer mes amb bea tanca un mes sencer de principi a fi.

Els Cinc Tipus de Comptes Principals​

Beancount utilitza cinc tipus de comptes de nivell superior, que formen l'estructura del teu llibre:

Tipus de compteDescripcióSaldo típic
AssetsQuè tens (efectiu, comptes bancaris, inversions, propietats).Positiu
LiabilitiesQuè deus (deute de targeta de crèdit, préstecs, hipoteques).Negatiu
IncomeD'on venen els diners (salari, bonificacions, interessos).Negatiu
ExpensesOn van els diners (menjar, lloguer, viatges, impostos).Positiu
EquityEl teu patrimoni net; s'utilitza per a saldos inicials.Negatiu

L'Equació de Beancount​

Beancount imposa la seva pròpia versió de l'equació comptable on la suma de tots els apunts de tot el teu llibre és igual a zero:

Actius+Despeses+Passius+Ingressos+Patrimoni net=0\text{Actius} + \text{Despeses} + \text{Passius} + \text{Ingressos} + \text{Patrimoni net} = 0

Per això, per convenció, els comptes Income, Liabilities i Equity tenen valors negatius—són les fonts de fons que incrementen els teus Assets i Expenses.

Part 3: El Llenguatge de Beancount - Sintaxi Bàsica​

Totes les entrades a Beancount són directives que comencen amb una data.

Definir Comptes (open) i Actius​

Abans de poder utilitzar un compte, has de declarar-lo amb la directiva open. També pots especificar opcionalment les divises o "commodities" que contindrà.

; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking      USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:Google

Les commodities poden ser divises del món real (per exemple, USD, JPY) o qualsevol unitat personalitzada que defineixis, com ara milles de línia aèria (MILES_UA) o tiquets de borsa (HOOL).

Registrar la teva Primera Transacció (*)​

Les transaccions són l'entrada més comuna. Comencen amb una data, un indicador (* per a una transacció completa o ! per a una d'incompleta), un beneficiari opcional i una descripció. Cada línia que segueix (sagnada amb dos espais) és un "apunt" a un compte.

; YYYY-MM-DD * "Payee" "Description"
;   Account1      Amount Commodity
;   Account2     -Amount Commodity
 
2024-07-28 * "Trader Joe's" "Weekly groceries"
  Expenses:Food:Groceries     125.50 USD
  Liabilities:CreditCard:US:Discover  -125.50 USD

Per comoditat, si una transacció només té dos apunts, pots ometre l'import a la segona línia, i Beancount el calcularà automàticament.

2024-07-28 * "Trader Joe's" "Weekly groceries"
  Expenses:Food:Groceries     125.50 USD
  Liabilities:CreditCard:US:Discover

Equilibri a nivell de transacció: Més important per a l'ús diari, cada transacció individual també ha d'equilibrar-se—la suma de tots els apunts dins d'una sola transacció ha de ser igual a zero. Si una transacció no s'equilibra, Beancount mostrarà un error com aquest:

Alerta d'error de Beancount

Gestionar Transaccions amb Múltiples Monedes (@ i @@)​

Beancount destaca en la comptabilitat multidivisa.

  • Utilitza @ per especificar un preu de conversió per unitat.
  • Utilitza @@ per especificar el cost total de la conversió.
; Buying a flight in EUR with a USD card
2024-08-01 * "Lufthansa" "Flight to Berlin"
  Expenses:Travel:Flights      500.00 EUR @@ 545.00 USD  ; 500 EUR cost me 545 USD in total
  Liabilities:CreditCard:US:Discover  -545.00 USD

Part 4: Garantir la Precsió - L'Art de la Conciliació​

Una pràctica clau per mantenir un llibre precís és la conciliació regular. Això implica comparar els saldos del teu llibre de Beancount amb els extractes oficials de les teves institucions financeres.

Automatitzar Comprovacions amb Assertions de Saldo (balance)​

La directiva balance és la teva eina principal per a comprovacions automatitzades. Afirmes que en una data determinada, un compte tenia un saldo específic. Beancount generarà un error si el seu saldo calculat no coincideix amb la teva asserció. Això és invaluable per localitzar errors ràpidament.

Nota: L'asserció de saldo comprova l'estat del compte a l'inici del dia especificat (abans de qualsevol transacció d'aquell dia).

; From your monthly credit card statement
2024-08-01 balance Liabilities:CreditCard:US:Discover  -1432.78 USD

Enllaçar Documents de Suport (document)​

Pots enllaçar fitxers externs com extractes bancaris o rebuts, creant un rastre auditable. Fava fa que aquests enllaços siguin clicables.

2024-08-01 document Liabilities:CreditCard:US:Discover "statements/discover-2024-07.pdf"

Corregir Errors i Inicialitzar Saldos​

Quan comences el teu llibre o trobes una discrepància que no pots rastrejar, necessites fer un ajust. La pràctica estàndard és utilitzar un compte especial d'Equity.

; Initializing a cash account when starting your ledger
2020-01-01 * "Initial Balance" "Setting up cash account"
  Assets:Cash:Wallet           200.00 USD
  Equity:Opening-Balances     -200.00 USD

El compte Equity:Opening-Balances conté els imports que entren al teu llibre des de fonts desconegudes o externes.

Per a correccions ràpides on la discrepància exacta no és important, la directiva pad pot ajustar automàticament el saldo d'un compte per complir una asserció balance posterior, registrant la diferència en un compte de patrimoni net. Utilitza-ho amb precaució, ja que pot amagar problemes més grans. Els ajustos explícits generalment són més segurs.

Part 5: Patrons de Transacció Avançats i Realistes​

Seguiment de Deutes: Gestionar Drets de Cobrament i Obligacions de Pagament​

La comptabilitat de partida doble és perfecta per fer el seguiment dels diners que et deuen (Assets:Receivables) o que deus (Liabilities:Payable).

Exemple: Pagues un sopar de grup de $90, i el teu amic Bob et deu la seva part de $45.

  1. Registra la despesa inicial i el compte a cobrar:

    2024-08-05 * "Dinner Place" "Dinner with Bob"
      Expenses:Food:Restaurant          45.00 USD  ; Your share
      Assets:Receivables:Bob            45.00 USD  ; Bob owes you
      Assets:Bank:US:Chase:Checking    -90.00 USD
  2. Quan Bob et torni els diners:

    2024-08-06 * "Bob" "Paid me back for dinner"
      Assets:Bank:US:Chase:Checking     45.00 USD
      Assets:Receivables:Bob           -45.00 USD

El compte Assets:Receivables:Bob ara és zero, i els teus llibres estan perfectament equilibrats.

Actius vs. Despeses: Compra d'un Cotxe i Amortització​

Una compra gran com un cotxe no és una simple despesa; és l'adquisició d'un actiu que perd valor amb el temps (depreciació).

  1. Registra la compra com a actiu:

    2023-01-15 * "Toyota Dealer" "Purchase of a new car"
      Assets:Car:ToyotaCamry         30000.00 USD
      Assets:Bank:US:Chase:Checking -30000.00 USD
  2. Registra la depreciació anual: Suposem que estimes que el cotxe perd $3.000 de valor cada any. Al final de l'any, ho registres com una despesa.

    2023-12-31 * "Depreciation" "Annual car value depreciation"
      Expenses:Depreciation:Car      3000.00 USD
      Assets:Car:ToyotaCamry        -3000.00 USD

Després d'aquest apunt, el teu compte Assets:Car:ToyotaCamry reflecteix correctament el nou valor del cotxe ($27.000), i has comptabilitzat adequadament el cost d'ús com a despesa per a aquell any.

Part 6: Anàlisi Detallada - Modelatge d'Actius Complexos del Món Real​

Cas Pràctic 1: Comptabilitat per a Béns Immobles​

Una casa sovint és el teu actiu i passiu més gran. Aquí tens com modelar-la.

  1. Crea comptes i una commodity personalitzada:

    2022-01-01 commodity HOUSE_123MAIN
      name: "Property at 123 Main St"
    2022-01-01 open Assets:Property:Home:123Main        HOUSE_123MAIN
    2022-01-01 open Liabilities:Mortgage:HomeLoan       USD
    2022-01-01 open Expenses:Home:Interest
    2022-01-01 open Expenses:Home:PropertyTax
  2. Registra la compra: Suposem que compres una casa de $500k amb una entrada de $100k i un préstec de $400k.

    2022-03-15 * "Settlement Company" "Purchase of 123 Main St"
      Assets:Property:Home:123Main          1 HOUSE_123MAIN {500000.00 USD}
      Assets:Bank:DownPayment          -100000.00 USD
      Liabilities:Mortgage:HomeLoan    -400000.00 USD
  3. Registra els pagaments mensuals de la hipoteca: El teu pagament mensual consisteix en capital (redueix el passiu) i interessos (una despesa).

    2022-04-01 * "Mortgage Bank" "Monthly Mortgage Payment"
      Liabilities:Mortgage:HomeLoan      800.00 USD   ; Principal
      Expenses:Home:Interest            1200.00 USD   ; Interest
      Assets:Bank:US:Chase:Checking    -2000.00 USD
  4. Fer el seguiment de la revalorització (guanys no realitzats): El valor de mercat d'una casa canvia. Per fer-ne el seguiment sense afectar el teu patrimoni net oficial (ja que el guany no es realitza fins que la vens), pots utilitzar una directiva de preu amb una divisa "virtual".

    Per als actius de mercat i parells de divises suportats, Preus en directe pot mantenir cotitzacions de valoració en un llibre allotjat. Les propietats individuals encara necessiten les teves pròpies taxacions i preus amb data, com a l'exemple següent.

    ; The purchase price is the real cost basis
    2022-03-15 price HOUSE_123MAIN   500000.00 USD
     
    ; An updated market estimate is an unrealized gain
    2024-01-01 price HOUSE_123MAIN   550000.00 USD.UNREALIZED

Això et permet veure el valor estimat als gràfics de Fava sense inflar indegudament el teu balanç de situació.

Explora un llibre d'exemple d'immobiliària en directe amb seguiment d'hipoteca, depreciació i venda de propietat:

Obre Real Estate Example Ledger en una pestanya nova

Cas Pràctic 2: Seguiment d'Unitats d'Accions Restringides (RSUs)​

Les RSU són una forma comuna de compensació en accions. Comptabilitzar-les implica fer el seguiment de la concessió inicial, els esdeveniments de consolidació i la retenció d'impostos.

  1. Configuració inicial: Crea commodities per a les accions consolidades (HOOL) i no consolidades (HOOL.UNVEST), juntament amb cada compte que toquen els apunts posteriors. Declarar-los tots per endavant és el que fa que les dues transaccions següents es carreguin per si soles.

    2021-01-01 commodity HOOL
    2021-01-01 commodity HOOL.UNVEST
    2021-01-01 open Assets:Brokerage:Etrade:HOOL          HOOL
    2021-01-01 open Assets:Grant:Unvested                 HOOL.UNVEST
    2021-01-01 open Income:Grant:Awards                   HOOL.UNVEST
    2021-01-01 open Expenses:Grant:Vested                 HOOL.UNVEST
    2021-01-01 open Income:Salary:Hooli:RSU               USD
    2021-01-01 open Expenses:Taxes:Federal                USD
    2021-01-01 open Expenses:Taxes:State                  USD
  2. Registra la concessió inicial: Aquesta transacció mostra la concessió total movent-se cap a un compte d'actiu no consolidat. Encara no hi ha res taxable, així que tota l'entrada està denominada en la commodity de seguiment HOOL.UNVEST.

    2021-02-01 * "Hooli" "Initial RSU Grant"
      Assets:Grant:Unvested        1000 HOOL.UNVEST
      Income:Grant:Awards         -1000 HOOL.UNVEST
  3. Registra un esdeveniment de consolidació: Aquesta és la transacció clau. Quan les accions es consoliden, reconeixes ingressos, l'empresari reté accions per pagar l'impost, i tu et quedes amb la resta. Suposem que 100 accions es consoliden a $150,00, així que:

    • Compensació bruta: 100 × $150,00 = $15.000,00
    • Accions retingudes per impostos: 40 × $150,00 = $6.000,00 (federal $4.800,00 + estatal $1.200,00)
    • Accions que et quedes: 60 × $150,00 = $9.000,00 de base de cost
    • Efectiu per a tu: $0,00 — tota la retenció es paga en accions

    Aquests imports són l'apunt, i quadren: $6.000,00 d'impostos més $9.000,00 d'accions retingudes és exactament els $15.000,00 d'ingressos.

    2022-02-01 * "Hooli" "RSU Vesting Event"
      ; Ordinary income: 100 shares * $150.00
      Income:Salary:Hooli:RSU                   -15000.00 USD
      ; Tax withheld, funded by 40 of the 100 shares (40 * $150.00 = $6,000.00)
      Expenses:Taxes:Federal                      4800.00 USD
      Expenses:Taxes:State                        1200.00 USD
      ; The 60 shares you keep, at their $150.00 vesting-day basis
      Assets:Brokerage:Etrade:HOOL                  60 HOOL {150.00 USD}
      ; Retire the 100 unvested units the grant was tracking
      Assets:Grant:Unvested                       -100 HOOL.UNVEST
      Expenses:Grant:Vested                        100 HOOL.UNVEST

Aquesta única transacció equilibrada modela tot l'esdeveniment: la concessió no consolidada es redueix, es reconeixen ingressos, es retenen impostos, i les 60 accions netes consolidades apareixen al teu compte de corretatge amb la base de cost correcta per a futurs càlculs de guanys de capital.

Val la pena copiar dos detalls al teu propi llibre. Primer, escriu la retenció compte per compte en lloc de deixar que un compte d'equilibri genèric l'absorbeixi — si els apunts federal i estatal no sumen el valor de les accions retingudes, la transacció no s'equilibrarà i Beancount t'ho dirà. Segon, no deixis una línia en blanc entre apunts: una línia en blanc acaba la transacció, i Beancount informa d'un error de sintaxi en els apunts que la segueixen.

Si el teu empresari ven les accions retingudes al mercat obert en lloc de recuperar-les al preu de consolidació, la venda és una transacció separada — una reducció d'Assets:Brokerage:Etrade:HOOL contra efectiu — i qualsevol diferència entre el preu de venda i la base de $150,00 és un petit guany o pèrdua de capital. Mantén-la fora de l'apunt de consolidació.

Part 7: Gestió de Projectes per al teu Llibre Major​

A mesura que el teu llibre creix, l'organització esdevé clau.

Utilitzar Control de Versions (Git) per Protegir les teves Dades​

Com que el teu llibre és un fitxer de text, és perfecte per al control de versions amb Git. Això et dona un historial complet de tots els canvis, protegint-te d'esborrats accidentals o errors. Advertència: Les teves dades financeres són altament sensibles. Utilitza un repositori privat en serveis com GitHub/GitLab, o allotja'l tu mateix.

Organitzar amb Etiquetes (#) i Enllaços (^)​

Beancount proporciona dues maneres d'agrupar transaccions més enllà dels comptes:

  • Etiquetes (#): Utilitza-les per a esdeveniments o projectes. Pots filtrar totes les transaccions relacionades amb un viatge específic, per exemple. 2024-07-20 * "Hotel" "Vienna" #trip-europe-2024
  • Enllaços (^): Utilitza'ls per connectar transaccions financerament relacionades que ocorren en moments diferents, com ara una retirada d'efectiu i la comissió bancària associada.

Una Estratègia Escalable per Estructurar els teus Fitxers (include)​

Un únic fitxer massiu és difícil de gestionar. Utilitza la directiva include per dividir el teu llibre en múltiples fitxers. main.bean:

; Main ledger file
 
; Global options
option "title" "My Personal Ledger"
option "operating_currency" "USD"
 
; Include account declarations and other files
include "accounts.bean"
include "years/2023.bean"
include "years/2024.bean"
include "events/trip-europe-2024.bean"

Una estratègia organitzativa robusta, per ordre de precedència:

  1. Per esdeveniment: Crea un fitxer separat per a un esdeveniment important i autocontingut (per exemple, trip-europe-2024.bean).
  2. Per categoria/beneficiari: Per a transaccions molt regulars i recurrents com factures de serveis públics o salaris, agrupa-les en el seu propi fitxer (per exemple, recurring-rent.bean).
  3. Per compte: Per a transaccions estretament vinculades a un compte específic (interessos, comissions, pagaments de targeta de crèdit), considera un fitxer específic per compte.
  4. Per data: Per a totes les altres transaccions generals, una simple divisió per any (2024.bean) o mes (2024/07.bean) és efectiva.

Part 8: Conclusió​

Beancount ofereix una corba d'aprenentatge pronunciada però recompensa l'esforç amb un poder, flexibilitat i control sense igual sobre les teves dades financeres. Adoptant els principis de la comptabilitat de partida doble i les eines pràctiques que proporciona Beancount, pots passar del simple seguiment de despeses a un sistema complet, precís i revelador de gestió financera personal. El teu llibre es converteix en un actiu permanent, privat i invaluable per entendre el teu passat i planificar el teu futur.

Començar amb Beancount.io​

Beancount.io és una plataforma moderna de gestió financera basada al núvol que transforma els teus registres de transaccions basats en text en estats financers complets, incloent-hi comptes de resultats, balanços de situació i balanços de comprovació. Combinant la fiabilitat dels fitxers de text pla amb eines de visualització potents, Beancount.io t'ajuda a mantenir un control precís sobre la teva vida financera mentre obtens informació valuosa sobre el rendiment de les teves inversions.

Comença el teu viatge financer amb Beancount.io — consulta els plans i preus actuals per veure què inclou cada nivell.

Tauler del llibre de beancount.io mostrant un gràfic de tendència del patrimoni net, saldos de comptes i una barra d'assistent d'IA

Explora el llibre en directe →

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

Explora el llibre en directe →

Balanç de situació del llibre públic de Beancount d'Apple a beancount.io amb gràfic de patrimoni net i detall d'actius i passius

Explora el llibre en directe →

Font: https://beancount.io/ca/docs/introduction-to-beancount