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 mitjançant l'eina potent, de codi obert i de comptabilitat en text pla, Beancount. Cobreix la filosofia fonamental, la sintaxi bàsica i avançada, casos pràctics per a actius complexos i estratègies de gestió de llibres majors a llarg termini.

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

Abans de submergir-nos 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 i la llibertat financera.

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

Les aplicacions senzilles de seguiment de despeses et diuen on ha anat el teu diner. 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—aconseguir una comprensió clara i basada en dades de la teva vida financera, que et permeti prendre decisions informades, avaluar el risc 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 d'entrada única (una llista simple de despeses), el mètode de doble entrada registra cada transacció com un flux de valor entre almenys dos comptes. El seu principi fonamental és l'equació comptable bàsica:

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

Aquest sistema garanteix 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 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 Beancount amb una aplicació mòbil (iOS, Android) i aplicació web - Fava, una interfície web fantàstica per visualitzar el teu llibre major. No cal instal·lar res. Quan utilitzes la plataforma, interactues directament amb un editor de text per al teu fitxer de llibre major (per exemple, main.bean) i veus com els informes generats per Fava s'actualitzen en temps real.

Fava transforma el text pla que escrius 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'una shell, bea és la línia d'ordres 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 et permet crear el primer llibre major en pocs minuts, i El teu primer mes amb bea tanca un mes complet de dalt a baix.

Els Cinc Tipus de Comptes Principals

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

Tipus de CompteDescripcióSaldo Típic
ActiusQuè tens (efectiu, comptes bancaris, inversions, propietats).Positiu
PassiusQuè deus (deutes de targetes de crèdit, préstecs, hipoteques).Negatiu
IngressosD'on ve el diner (salari, bonificacions, interessos).Negatiu
DespesesOn va el diner (menjar, lloguer, viatges, impostos).Positiu
Patrimoni NetEl teu patrimoni net; s'utilitza per a saldos inicials.Negatiu

L'Equació de Beancount

Beancount aplica la seva pròpia versió de l'equació comptable on la suma de tots els apunts del teu llibre major é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 d'Ingressos, Passius i Patrimoni Net tenen valors negatius—són les fonts de fons que augmenten els teus Actius i Despeses.

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 monedes o "actius" 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

Els actius poden ser monedes del món real (per exemple, USD, JPY) o qualsevol unitat personalitzada que defineixis, com ara milles de companyia aèria (MILES_UA) o tickers de borsa (HOOL).

Registrar la teva Primera Transacció (*)

Les transaccions són l'entrada més comuna. Comencen amb una data, una marca (* 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'estar equilibrada—la suma de tots els apunts dins d'una sola transacció ha de ser zero. Si una transacció no està equilibrada, Beancount mostrarà un error com aquest:

Alerta d'error de Beancount

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

Beancount excel·leix en la comptabilitat multi-moneda.

  • 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 major precís és la conciliació regular. Això implica comparar els saldos del teu llibre major de Beancount amb els estats 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 saldo calculat no coincideix amb la teva afirmació. Això és molt valuós per localitzar errors ràpidament.

Nota: L'assertió 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 major o trobes una discrepància que no pots rastrejar, has de fer un ajust. La pràctica estàndard és utilitzar un compte especial de Patrimoni Net.

; 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é quantitats que entren al teu llibre major 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 amb una assertió de 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 són generalment 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 doble entrada é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 dret de cobrament:

    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 paga:

    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 despesa simple; és l'adquisició d'un actiu que perd valor amb el temps (amortització).

  1. Registra la compra com un 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 l'amortització 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'aquesta entrada, el teu compte Assets:Car:ToyotaCamry reflecteix correctament el nou valor del cotxe ($27.000), i has comptabilitzat adequadament el cost d'ús com una 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. Així és com modelar-ho.

  1. Crear Comptes i un Actiu Personalitzat:

    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 un pagament inicial 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. 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 vens), pots utilitzar una directiva de preu amb una moneda "virtual".

    ; 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 en els gràfics de Fava sense inflar indegudament el teu balanç de situació.

Explora un llibre major d'exemple de béns immobles en directe amb seguiment d'hipoteca, amortització i venda de propietats:

Obre Exemple de Llibre Major de Béns Immobles en una pestanya nova

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

Les RSUs són una forma comuna de compensació en accions. La seva comptabilitat implica fer el seguiment de la concessió inicial, els esdeveniments de consolidació (vesting) i la retenció d'impostos.

  1. Configuració Inicial: Crea actius per a les accions consolidades (HOOL) i no consolidades (HOOL.UNVEST), juntament amb tots els comptes que toquen les entrades 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 que es mou a un compte d'actiu no consolidat. Encara no hi ha res imposable, així que tota l'entrada es denomina en l'actiu 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 els impostos, i tu et quedes la resta. Suposem que es consoliden 100 accions 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 conserves: 60 × $150,00 = $9.000,00 de base de cost
    • Efectiu per a tu: $0,00 — tota la retenció es paga en accions

    Aquestes quantitats són l'entrada, i quadren: $6.000,00 d'impostos més $9.000,00 d'accions retingudes són 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 els ingressos, es retenen els impostos i les 60 accions netes consolidades apareixen al teu compte de corredoria amb la base de cost correcta per a futurs càlculs de guanys de capital.

Hi ha dos detalls que val la pena copiar al teu propi llibre major. Primer, escriu la retenció compte per compte en lloc de deixar que un compte d'equilibri general l'absorbeixi — si els apunts federals i estatals no sumen el valor de les accions retingudes, la transacció no quadrarà i Beancount t'ho dirà. Segon, no deixis una línia en blanc entre apunts: una línia en blanc finalitza 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ó de 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-ho fora de l'entrada de consolidació.

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

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

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

Com que el teu llibre major és un fitxer de text, és perfecte per al control de versions amb Git. Això et dóna un historial complet de tots els canvis, protegint-te d'eliminacions o errors accidentals. 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" "Viena" #viatge-europa-2024
  • Enllaços (^): Utilitza'ls per connectar transaccions financerament relacionades que ocorren en moments diferents, com una retirada d'efectiu i la comissió bancària associada.

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

Un fitxer únic i massiu és difícil de gestionar. Utilitza la directiva include per dividir el teu llibre major en diversos 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 prioritat:

  1. Per Esdeveniment: Crea un fitxer separat per a un esdeveniment important i autònom (per exemple, viatge-europa-2024.bean).
  2. Per Categoria/Beneficiari: Per a transaccions recurrents altament regulars com factures de serveis o salaris, agrupa-les en el seu propi fitxer (per exemple, lloguer-recurrent.bean).
  3. Per Compte: Per a transaccions estretament vinculades a un compte específic (interessos, comissions, pagaments amb targeta de crèdit), considera un fitxer específic per al compte.
  4. Per Data: Per a totes les altres transaccions generals, una divisió simple per any (2024.bean) o mes (2024/07.bean) és eficaç.

Part 8: Conclusió

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

Començar amb Beancount.io

Beancount.io és una plataforma de gestió financera moderna basada en el núvol que transforma els teus registres de transaccions en text en estats financers complets, incloent-hi comptes de resultats, balanços de situació i balances de comprovació. Combinant la fiabilitat dels fitxers de text pla amb potents eines de visualització, 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.

Panell de control del llibre major de beancount.io que mostra un gràfic de tendència del patrimoni net, saldos de comptes i una barra d'assistent d'IA

Explora el llibre major en directe →

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

Explora el llibre major en directe →

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

Explora el llibre major en directe →

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