Aller au contenu principal

Ce qu'est Beancount : des livres comptables en partie

Beancount est une comptabilité en partie double en texte brut pour les actions, les crypto-monnaies et les livres courants

Ce guide synthétise les meilleures pratiques pour la comptabilité en texte brut en utilisant l'outil puissant, open-source et en texte brut Beancount. Il couvre la philosophie fondamentale, la syntaxe de base à avancée, des études de cas pratiques pour des actifs complexes, et des stratégies de gestion de grand livre à long terme.

Partie 1 : Le « Pourquoi » - Fondations d'une tenue de livres intelligente

Avant de plonger dans le « comment », il est crucial de comprendre le « pourquoi ». Une tenue de livres efficace est le fondement de la gestion financière personnelle et une étape nécessaire vers la clarté et la liberté financières.

Au-delà du suivi des dépenses : Le chemin vers la clarté financière

Les applications simples de suivi des dépenses vous disent où votre argent est allé. Un système comptable robuste vous dit cela et bien plus encore : il fournit une image complète de votre santé financière, y compris votre valeur nette, vos flux de trésorerie et la performance de vos investissements. L'objectif principal est l'observabilité — acquérir une compréhension claire et basée sur les données de votre vie financière, ce qui vous permet de prendre des décisions éclairées, d'évaluer les risques et de travailler vers des objectifs à long terme comme la retraite.

Pourquoi la partie double ? La puissance d'un système équilibré

Contrairement à la comptabilité à partie simple (une simple liste de dépenses), la méthode à partie double enregistre chaque transaction comme un flux de valeur entre au moins deux comptes. Son principe fondamental est l'équation comptable de base :

Actifs=Passifs+Capitaux propres (Valeur nette)\text{Actifs} = \text{Passifs} + \text{Capitaux propres (Valeur nette)}

Ce système garantit que vos livres sont toujours équilibrés, réduisant considérablement les erreurs. Il fournit une image financière complète en générant des rapports essentiels comme un bilan (ce que vous possédez et ce que vous devez) et un compte de résultat (ce que vous avez gagné et dépensé).

Partie 2 : Commencer avec Beancount

Beancount est un outil puissant basé sur Python pour la comptabilité en texte brut.

Votre premier aperçu avec Fava sur Beancount.io

Beancount.io fournit un environnement puissant qui combine le moteur Beancount avec une application mobile (iOS, Android) et une application web - Fava, une interface web fantastique pour visualiser votre grand livre. Aucune installation n'est nécessaire. Lorsque vous utilisez la plateforme, vous interagissez directement avec un éditeur de texte pour votre fichier de grand livre (par exemple, main.bean) et vous voyez les rapports générés par Fava se mettre à jour en temps réel.

Fava prend le texte brut que vous écrivez et le transforme en graphiques interactifs, états financiers et listes de transactions filtrables, vous donnant une vue claire de vos rapports financiers.

Ou commencez dans le terminal avec bea

Si vous préférez travailler à partir d'un shell, bea est la ligne de commande de Beancount.io. Aucun compte n'est nécessaire : installez-le avec brew install bex-co/tap/bea ou uv tool install beancount-io, et il crée, valide, interroge et génère des rapports sur le même fichier en texte brut. Le démarrage rapide CLI vous donne un premier journal en quelques minutes, et Votre premier mois avec bea clôt un mois complet de bout en bout.

Les cinq types de comptes principaux

Beancount utilise cinq types de comptes de niveau supérieur, qui constituent la structure de votre grand livre :

Type de compteDescriptionSolde typique
ActifsCe que vous possédez (espèces, comptes bancaires, investissements, biens).Positif
PassifsCe que vous devez (dettes de carte de crédit, prêts, hypothèques).Négatif
RevenusD'où vient l'argent (salaire, primes, intérêts).Négatif
DépensesOù va l'argent (nourriture, loyer, voyages, impôts).Positif
Capitaux propresVotre valeur nette ; utilisé pour les soldes initiaux.Négatif

L'équation Beancount

Beancount applique sa propre version de l'équation comptable où la somme de toutes les écritures dans l'ensemble de votre grand livre est égale à zéro :

Actifs+Deˊpenses+Passifs+Revenus+Capitaux propres=0\text{Actifs} + \text{Dépenses} + \text{Passifs} + \text{Revenus} + \text{Capitaux propres} = 0

C'est pourquoi, par convention, les comptes Revenus, Passifs et Capitaux propres ont des valeurs négatives — ce sont les sources de fonds qui augmentent vos Actifs et Dépenses.

Partie 3 : Le langage de Beancount - Syntaxe de base

Toutes les entrées dans Beancount sont des directives qui commencent par une date.

Définir des comptes (open) et des devises

Avant de pouvoir utiliser un compte, vous devez le déclarer avec la directive open. Vous pouvez également spécifier facultativement les devises ou « commodities » qu'il contiendra.

; 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 peuvent être des devises du monde réel (par exemple, USD, JPY) ou toute unité personnalisée que vous définissez, comme des miles aériens (MILES_UA) ou des symboles boursiers (HOOL).

Enregistrer votre première transaction (*)

Les transactions sont l'entrée la plus courante. Elles commencent par une date, un drapeau (* pour une transaction complète ou ! pour une transaction incomplète), un bénéficiaire facultatif et une description. Chaque ligne qui suit (indentée de deux espaces) est une « écriture » vers 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

Pour plus de commodité, si une transaction n'a que deux écritures, vous pouvez omettre le montant sur la deuxième ligne, et Beancount le calculera automatiquement.

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

Équilibrage au niveau de la transaction : Plus important pour l'utilisation quotidienne, chaque transaction individuelle doit également être équilibrée — la somme de toutes les écritures dans une seule transaction doit être égale à zéro. Si une transaction n'est pas équilibrée, Beancount affichera une erreur comme celle-ci :

Alerte d'erreur Beancount

Gérer les transactions multi-devises (@ et @@)

Beancount excelle dans la comptabilité multi-devises.

  • Utilisez @ pour spécifier un prix de conversion par unité.
  • Utilisez @@ pour spécifier le coût total de la conversion.
; 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

Partie 4 : Garantir l'exactitude - L'art du rapprochement

Une pratique clé pour maintenir un grand livre précis est le rapprochement régulier. Cela implique de comparer les soldes de votre grand livre Beancount avec les relevés officiels de vos institutions financières.

Automatiser les vérifications avec les assertions de solde (balance)

La directive balance est votre outil principal pour les vérifications automatisées. Vous affirmez qu'à une date donnée, un compte avait un solde spécifique. Beancount lèvera une erreur si son solde calculé ne correspond pas à votre assertion. C'est inestimable pour localiser rapidement les erreurs.

Remarque : L'assertion de solde vérifie l'état du compte au début du jour spécifié (avant toute transaction de ce jour).

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

Lier des documents justificatifs (document)

Vous pouvez lier des fichiers externes comme des relevés bancaires ou des reçus, créant ainsi une piste vérifiable. Fava rend ces liens cliquables.

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

Corriger les erreurs et initialiser les soldes

Lorsque vous démarrez votre grand livre ou trouvez un écart que vous ne pouvez pas retracer, vous devez faire un ajustement. La pratique standard consiste à utiliser un compte Capitaux propres spécial.

; 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

Le compte Equity:Opening-Balances contient les montants qui entrent dans votre grand livre provenant de sources inconnues ou externes.

Pour les corrections rapides où l'écart exact importe peu, la directive pad peut automatiquement ajuster le solde d'un compte pour respecter une assertion balance ultérieure, en imputant la différence à un compte de capitaux propres. Utilisez-la avec prudence, car elle peut masquer des problèmes plus importants. Les ajustements explicites sont généralement plus sûrs.

Partie 5 : Modèles de transactions avancés et réalistes

Suivre les dettes : Gérer les créances et les dettes

La comptabilité à partie double est parfaite pour suivre l'argent qui vous est dû (Assets:Receivables) ou que vous devez (Liabilities:Payable).

Exemple : Vous payez un dîner de groupe de 90 $, et votre ami Bob vous doit 45 $ pour sa part.

  1. Enregistrez la dépense initiale et la créance :

    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. Quand Bob vous rembourse :

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

Le compte Assets:Receivables:Bob est maintenant à zéro, et vos livres sont parfaitement équilibrés.

Actifs vs. dépenses : Achat d'une voiture et amortissement

Un achat important comme une voiture n'est pas une simple dépense ; c'est l'acquisition d'un actif qui perd de la valeur au fil du temps (amortissement).

  1. Enregistrez l'achat comme un actif :

    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. Enregistrez l'amortissement annuel : Supposons que vous estimiez que la voiture perd 3 000 $ de valeur chaque année. À la fin de l'année, vous enregistrez cela comme une dépense.

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

Après cette écriture, votre compte Assets:Car:ToyotaCamry reflète correctement la nouvelle valeur de la voiture (27 000 $), et vous avez correctement comptabilisé le coût d'utilisation comme une dépense pour cette année.

Partie 6 : Analyse approfondie - Modéliser des actifs complexes du monde réel

Étude de cas 1 : Comptabilisation de l'immobilier

Une maison est souvent votre plus grand actif et passif. Voici comment la modéliser.

  1. Créez des comptes et une commodity personnalisée :

    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. Enregistrez l'achat : Disons que vous achetez une maison de 500 000 $ avec un acompte de 100 000 $ et un prêt de 400 000 $.

    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. Enregistrez les paiements hypothécaires mensuels : Votre paiement mensuel se compose du principal (réduit le passif) et des intérêts (une dépense).

    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. Suivi de la plus-value (gains latents) : La valeur marchande d'une maison change. Pour suivre cela sans affecter votre valeur nette officielle (car le gain n'est réalisé qu'à la vente), vous pouvez utiliser une directive de prix avec une devise « virtuelle ».

    ; 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

Cela vous permet de voir la valeur estimée dans les graphiques de Fava sans gonfler indûment votre bilan.

Explorez un exemple de grand livre immobilier en direct avec suivi hypothécaire, amortissement et vente de propriété :

Ouvrir Grand livre d'exemple immobilier dans un nouvel onglet

Étude de cas 2 : Suivi des unités d'actions restreintes (RSU)

Les RSU sont une forme courante de rémunération en actions. Leur comptabilisation implique le suivi de l'attribution initiale, des événements d'acquisition et des retenues fiscales.

  1. Configuration initiale : Créez des commodities pour les actions acquises (HOOL) et non acquises (HOOL.UNVEST), ainsi que pour tous les comptes touchés par les écritures ultérieures. Les déclarer tous à l'avance est ce qui permet aux deux transactions ci-dessous de se charger par elles-mêmes.

    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. Enregistrez l'attribution initiale : Cette transaction montre l'attribution totale passant dans un compte d'actif non acquis. Rien n'est encore imposable, donc toute l'écriture est libellée dans la commodity de suivi HOOL.UNVEST.

    2021-02-01 * "Hooli" "Initial RSU Grant"
      Assets:Grant:Unvested        1000 HOOL.UNVEST
      Income:Grant:Awards         -1000 HOOL.UNVEST
  3. Enregistrez un événement d'acquisition : C'est la transaction clé. Lorsque des actions sont acquises, vous reconnaissez un revenu, l'employeur retient des actions pour payer l'impôt, et vous gardez le reste. Supposons que 100 actions sont acquises à 150,00 $, donc :

    • Rémunération brute : 100 × 150,00 $ = 15 000,00 $
    • Actions retenues pour l'impôt : 40 × 150,00 $ = 6 000,00 $ (fédéral 4 800,00 $ + état 1 200,00 $)
    • Actions que vous gardez : 60 × 150,00 $ = 9 000,00 $ de prix de revient
    • Espèces pour vous : 0,00 $ — la totalité de la retenue est payée en actions

    Ces montants constituent l'écriture, et ils se réconcilient : 6 000,00 $ d'impôt plus 9 000,00 $ d'actions conservées correspondent exactement aux 15 000,00 $ de revenu.

    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

Cette transaction unique et équilibrée modélise l'ensemble de l'événement : l'attribution non acquise est réduite, le revenu est reconnu, l'impôt est retenu, et les 60 actions acquises nettes apparaissent dans votre compte de courtage avec le bon prix de revient pour les futurs calculs de plus-values.

Deux détails méritent d'être copiés dans votre propre grand livre. Premièrement, écrivez la retenue compte par compte plutôt que de laisser un compte d'équilibrage fourre-tout l'absorber — si les écritures fédérales et étatiques ne totalisent pas la valeur des actions retenues, la transaction ne sera pas équilibrée et Beancount vous le signalera. Deuxièmement, ne laissez pas de ligne vide entre les écritures : une ligne vide termine la transaction, et Beancount signale une erreur de syntaxe sur les écritures qui suivent.

Si votre employeur vend les actions retenues sur le marché libre au lieu de les reprendre au prix d'acquisition, la vente est une transaction distincte — une réduction de Assets:Brokerage:Etrade:HOOL contre des espèces — et toute différence entre le prix de vente et le prix de revient de 150,00 $ est une petite plus-value ou moins-value. Gardez-la hors de l'écriture d'acquisition.

Partie 7 : Gestion de projet pour votre grand livre

À mesure que votre grand livre grandit, l'organisation devient essentielle.

Utiliser le contrôle de version (Git) pour protéger vos données

Comme votre grand livre est un fichier texte, il est parfait pour le contrôle de version avec Git. Cela vous donne un historique complet de toutes les modifications, vous protégeant contre les suppressions accidentelles ou les erreurs. Avertissement : Vos données financières sont hautement sensibles. Utilisez un dépôt privé sur des services comme GitHub/GitLab, ou hébergez le vôtre.

Organiser avec des balises (#) et des liens (^)

Beancount fournit deux façons de regrouper les transactions au-delà des comptes :

  • Balises (#) : Utilisez-les pour des événements ou des projets. Vous pouvez filtrer toutes les transactions liées à un voyage spécifique, par exemple. 2024-07-20 * "Hôtel" "Vienne" #voyage-europe-2024
  • Liens (^) : Utilisez-les pour connecter des transactions financièrement liées qui se produisent à des moments différents, comme un retrait d'espèces et les frais bancaires associés.

Une stratégie évolutive pour structurer vos fichiers (include)

Un seul fichier massif est difficile à gérer. Utilisez la directive include pour diviser votre grand livre en plusieurs fichiers. 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"

Une stratégie d'organisation robuste, par ordre de priorité :

  1. Par événement : Créez un fichier séparé pour un événement majeur autonome (par exemple, voyage-europe-2024.bean).
  2. Par catégorie/bénéficiaire : Pour les transactions hautement régulières et récurrentes comme les factures de services publics ou le salaire, regroupez-les dans leur propre fichier (par exemple, loyer-recurrent.bean).
  3. Par compte : Pour les transactions étroitement liées à un compte spécifique (intérêts, frais, paiements par carte de crédit), envisagez un fichier spécifique au compte.
  4. Par date : Pour toutes les autres transactions générales, une simple division par année (2024.bean) ou par mois (2024/07.bean) est efficace.

Partie 8 : Conclusion

Beancount offre une courbe d'apprentissage abrupte mais récompense l'effort avec une puissance, une flexibilité et un contrôle inégalés sur vos données financières. En adoptant les principes de la comptabilité à partie double et les outils pratiques fournis par Beancount, vous pouvez passer du simple suivi des dépenses à un système complet, précis et perspicace de gestion financière personnelle. Votre grand livre devient un atout permanent, privé et inestimable pour comprendre votre passé et planifier votre avenir.

Commencer avec Beancount.io

Beancount.io est une plateforme moderne de gestion financière basée sur le cloud qui transforme vos enregistrements de transactions textuels en états financiers complets, y compris les comptes de résultat, les bilans et les balances de vérification. En combinant la fiabilité des fichiers texte brut avec des outils de visualisation puissants, Beancount.io vous aide à maintenir un contrôle précis sur votre vie financière tout en obtenant des informations précieuses sur la performance de vos investissements.

Commencez votre parcours financier avec Beancount.io — consultez les plans et tarifs actuels pour voir ce que chaque niveau comprend.

Tableau de bord du grand livre beancount.io montrant un graphique de tendance de la valeur nette, les soldes des comptes et une barre d'assistant IA

Explorez le grand livre en direct →

Compte de résultat du grand livre public Beancount d'Apple sur beancount.io avec graphique du bénéfice net et ventilation des revenus et dépenses

Explorez le grand livre en direct →

Bilan du grand livre public Beancount d'Apple sur beancount.io avec graphique de la valeur nette et détail des actifs et passifs

Explorez le grand livre en direct →

Source : https://beancount.io/fr/docs/introduction-to-beancount