Aller au contenu principal

10 articles tagués avec « Double-Entry »

Voir tous les tags

Comprendre les écritures comptables dans Beancount

· 8 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Les écritures comptables sont la colonne vertébrale de la comptabilité en partie double, et dans Beancount, chaque transaction * que vous saisissez est une écriture comptable. Ce guide explique les notions essentielles — débits et crédits, écritures d’ajustement et écritures de contre‑passation — et montre comment elles se traduisent proprement en syntaxe texte brut de Beancount. Vous apprendrez à tenir des livres précis avec un minimum de formalisme.


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

Rappel rapide : qu’est‑ce qu’une écriture comptable ?

Une écriture comptable est le registre formel, daté, d’une transaction financière. Elle s’exprime en termes de débits et crédits qui maintiennent l’équation comptable fondamentale en équilibre :

Assets=Liabilities+EquityAssets = Liabilities + Equity

Dans un système à partie double, chaque transaction affecte au moins deux comptes, et le total des débits doit être égal au total des crédits. Cette règle simple rend les rapports financiers en aval, comme le compte de résultat et le bilan, fiables et précis.


Débits et crédits en une minute

Les concepts de débits et de crédits peuvent sembler déroutants au départ, mais ils se résument à quelques règles simples. Pensez ainsi : « d’où vient la valeur ? » (crédit) et « où va la valeur ? » (débit).

Voici une fiche mémo indiquant comment ils augmentent les cinq types de comptes principaux :

Type de compteAugmente avec
ActifsDébit
ChargesDébit
PassifsCrédit
Capitaux propresCrédit
ProduitsCrédit

À quoi ressemble une écriture comptable dans Beancount

Beancount utilise des directives texte simples et lisibles par l’humain pour enregistrer les transactions. Chaque transaction doit s’équilibrer à zéro pour chaque marchandise (par ex. USD, EUR, action AAPL). Beancount déclenchera une erreur sinon.

Voici une transaction de base pour l’achat d’un café :

2025-09-10 * "Café Bar" "Café d'équipe"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

Remarquez comment les deux écritures (lignes avec comptes) s’annulent : $18.00 + (-$18.00) = 0.

Vous pouvez ajouter un contexte puissant directement dans la narration en utilisant des tags (comme #clientX) pour le filtrage et des liens (comme ^INV-2025-001) pour connecter les écritures liées.

Par exemple, voici comment lier une facture à son paiement :

; Premièrement, enregistrez la facture que vous avez envoyée au client
2025-09-15 * "Acme Corp" "Facture 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; Plus tard, enregistrez le paiement et liez‑le à la facture d’origine
2025-09-28 * "Acme Corp" "Paiement sur ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

Le tag #clientX vous permet de filtrer facilement toutes les transactions de ce client, et le lien ^INV-2025-001 crée une connexion entre les deux écritures que vous pouvez suivre dans les rapports.


Écritures comptables courantes (prêtes à coller)

Voici plusieurs transactions commerciales courantes formatées pour Beancount.

Le propriétaire investit des liquidités

Un propriétaire apporte des fonds personnels pour démarrer l’entreprise.

2025-01-01 * "Propriétaire" "Apport de capital initial"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

Vente en espèces avec taxe de vente

Un client paie en espèces pour un produit, incluant une taxe de vente de 8 % que vous devez ensuite reverser à l’État.

2025-01-05 * "Client sans rendez‑vous" "Vente en espèces avec taxe de 8 %"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

Vente à crédit (facture) et encaissement

Vous fournissez un service et facturez le client, puis recevez le paiement plus tard.

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

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

Dépense sur carte de crédit

Vous achetez du matériel de bureau avec une carte de crédit d’entreprise.

2025-01-12 * "OfficeMax" "Fournitures sur carte de crédit"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

Paie (modèle simple)

Vous effectuez la paie, en enregistrant la charge salariale brute, les retenues fiscales des employés, et le paiement net depuis votre banque.

2025-01-31 * "Paie" "Salaires de janvier et retenues"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

Amortissement mensuel

Vous enregistrez la charge d’amortissement mensuel d’un actif, comme un ordinateur portable.

2025-01-31 * "Amortissement" "Ordinateur portable, ligne droite"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

Charge prépayée & amortissement mensuel

Vous payez d’avance l’assurance pour une année complète, puis vous comptabilisez un mois de charge.

; 1. Paiement de la police annuelle
2025-01-01 * "AssureCo" "Prime d’assurance annuelle"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. Reconnaissance d’un mois de charge à la fin de janvier
2025-01-31 * "AssureCo" "Amortir 1/12 de l’assurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

Produit différé & reconnaissance mensuelle

Un client paie d’avance un abonnement de 3 mois. Vous enregistrez l’encaissement puis reconnaissez un mois de revenu.

; 1. Le client paie d’avance le service
2025-02-01 * "Abonné" "Plan de 3 mois prépayé"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. Reconnaissance d’un mois de revenu après prestation du service
2025-02-28 * "Reconnaissance" "Reconnaître le mois 1 sur 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

Provision pour créances douteuses et radiation

Vous constituez une provision pour les factures potentiellement irrécouvrables, puis vous radiez une facture précise.

; 1. Création d’une provision de 2 % des comptes clients
2025-03-31 * "Provision" "2 % des comptes clients pour créances douteuses"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. Radiation d’une facture précise que vous savez ne pas être payée
2025-04-15 * "Radiation" "Facture client XYZ"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

Inventaire périodique & ajustement du COGS

En fin de période, vous calculez le coût des marchandises vendues (COGS) en ajustant votre compte d’inventaire.

2025-03-31 * "Ajustement COGS" "Méthode d’inventaire périodique"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

Écritures d’ajustement vs. écritures de contre‑passation

Les écritures d’ajustement sont enregistrées à la fin d’une période comptable (mois ou trimestre) afin d’aligner correctement les revenus et les charges à la période où ils ont réellement été gagnés ou engagés. Cela comprend les provisions, les reports et les estimations comme l’amortissement.

Les écritures de contre‑passation sont des écritures optionnelles effectuées le premier jour d’une nouvelle période qui annulent exactement une écriture d’ajustement du période précédente. Leur but est de simplifier la comptabilité. En annulant une provision, vous pouvez comptabiliser la transaction de trésorerie suivante de façon standard sans devoir vous souvenir de la ventiler contre le compte de passif.

Exemple : comptabilisation et contre‑passation des services publics

Supposons que vous devez enregistrer votre charge de services publics de janvier, mais que la facture n’arrivera qu’en février.

; 1. Comptabiliser la charge estimée à la fin de janvier
2025-01-31 * "Provision" "Estimation de la charge de services publics de janvier"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (Optionnel) Annuler la provision le premier jour de la période suivante
2025-02-01 * "Annulation" "Annuler la provision de services publics de janvier"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. Enregistrer le paiement réel lorsque la facture arrive en février
; La facture réelle est de 520 USD. Grâce à l’annulation, vous pouvez
; comptabiliser le montant complet dans le compte de charge sans problème.
; La charge nette pour février sera 520 USD - 500 USD = 20 USD.
2025-02-10 * "Services publics" "Paiement sur ^INV-2025-001"
Assets:Bank:Checking 520.00 USD
Liabilities:Accrued:Utilities -520.00 USD

Checklist pour chaque écriture comptable Beancount

  • Vérifiez que chaque ligne de transaction commence par un espace après le symbole *.
  • Utilisez des descriptions claires dans les champs de narration.
  • Assurez‑vous que les montants débités et crédités s’équilibrent à zéro.
  • Ajoutez des tags pertinents (#exemple) pour faciliter le filtrage.
  • Créez des liens (^CODE) lorsque des écritures sont liées entre elles.
  • Incluez, si nécessaire, des champs de métadonnées supplémentaires (par ex. metadata: "valeur").

Erreurs courantes (et comment Beancount aide)

  • Oublier d’équilibrer les montants – Beancount signale immédiatement une erreur si le total des débits n’est pas égal au total des crédits.
  • Mauvaise utilisation des tags – Les tags doivent être précédés d’un # et ne doivent contenir aucun espace. Beancount les reconnaît automatiquement pour le filtrage.
  • Confusion entre comptes d’actif et de passif – Vérifiez toujours que les comptes sont correctement classés dans le plan comptable.
  • Oublier les provisions – Les écritures d’ajustement permettent de refléter les charges réellement engagées même si la facture n’est pas encore arrivée.
  • Gestion manuelle des contre‑passations – Beancount simplifie le processus en annulant automatiquement les écritures d’ajustement lorsqu’elles sont correctement marquées.

Où aller ensuite

  • Documentation officielle de Beancount – explorez les guides détaillés et les références de syntaxe.
  • Tutoriels vidéo – regardez des démonstrations pas à pas pour créer vos propres écritures.
  • Forums communautaires – posez des questions et partagez vos modèles avec d’autres utilisateurs.
  • Extensions et plugins – découvrez des outils qui automatisent la génération d’écritures à partir de CSV ou d’autres sources de données.

Annexe : Correspondance comptabilité → Beancount

Concept comptableSyntaxe Beancount
Écriture d’ajustementadjust
Écriture de contre‑passationreversal
Provisionallowance
Charge prépayéeprepaid
Produit différéunearned
Amortissementdepreciation
Factureinvoice
Paiementpayment
Compte d’actifAssets
Compte de passifLiabilities
Compte de chargeExpenses
Compte de produitIncome
Compte de capitaux propresEquity

Enregistrement des impôts dans Beancount (la méthode pragmatique)

· 8 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Les impôts peuvent sembler être une bête spéciale et compliquée dans le monde des finances personnelles. Mais si ce n'était pas le cas ? Et si vous pouviez les traiter comme n'importe quel autre flux d'argent dans votre registre ? Bonne nouvelle : vous le pouvez. En traitant les impôts comme de simples mouvements de valeur, votre registre Beancount restera propre, facile à interroger et—plus important—compréhensible.

Voici un modèle pratique et sans fioritures que vous pouvez insérer dans un fichier Beancount personnel ou de petite entreprise. C’est un système simple pour gérer les fiches de paie, les paiements d’impôts et même ces ennuyeux remboursements qui débordent sur la nouvelle année. Nous couvrirons les comptes essentiels dont vous avez besoin, parcourrons des exemples concrets et vous montrerons les requêtes exactes à exécuter pour obtenir les réponses recherchées.

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


Les principes fondamentaux

Avant de plonger dans le code, convenons de quelques règles simples. Ces principes maintiennent la structure claire et lisible.

  • Séparer "ce que c'est" de "quand l'argent bouge." 🗓️
    C'est le concept le plus important. Une dépense fiscale appartient à l'année où vous avez perçu le revenu (par ex. 2024), même si vous réglez la facture auprès de l'IRS en avril 2025. Si vous ne séparez pas le moment de la dépense du moment du paiement en espèces, vos rapports d'année en année deviendront confus et trompeurs.

  • Gardez votre hiérarchie de comptes ennuyeuse et simple. 📁
    Nommez vos comptes clairement en fonction du type d'impôt (par ex. IncomeTax, SocialSecurity). Cela rend vos requêtes incroyablement simples. N'encombrez pas les noms de comptes avec des noms de fournisseurs ou des numéros de formulaire comme « W-2 » ou « 1099 » ; utilisez plutôt les métadonnées et les tags pour ces détails.

  • Adoptez la comptabilité d'exercice pour les ajustements de fin d'année. ⚖️
    Même pour un registre personnel, utiliser une écriture d'exercice simple en fin d'année est la façon la plus propre de rendre vos rapports précis. Cela signifie reconnaître une dépense ou un remboursement dans l'année correcte, même si l'argent ne bouge qu'aujourd'hui suivant. C’est une petite étape supplémentaire qui vous évite des acrobaties mentales plus tard.

  • Écrivez pour votre futur vous. 🧠
    Votre objectif est la clarté. N’ajoutez des détails supplémentaires, comme l'année fiscale, au nom d’un compte que si cela rend réellement vos requêtes plus faciles. Évitez de créer un nouvel ensemble de comptes chaque année (Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal, etc.) à moins d'avoir une raison impérieuse. Une structure plate est souvent plus facile à gérer.

Structure de comptes minimale

Voici un ensemble de comptes de base pour commencer. Cette structure est centrée sur les États‑Unis, mais vous pouvez facilement adapter les noms au système fiscal de votre pays. Il suffit d’insérer ces directives open dans votre fichier Beancount.

2024-01-01 open Assets:Checking
2024-01-01 open Assets:Cash
2024-01-01 open Liabilities:Taxes:Federal
2024-01-01 open Liabilities:Taxes:State
2024-01-01 open Assets:Tax:Receivable

Cette configuration sépare les impôts retenus des paiements directs et des remboursements, ce qui facilite la visualisation exacte de la destination de votre argent. Les comptes Liabilities et Assets sont notre arme secrète pour garantir l'exactitude des rapports de fin d'année.


Exemple 1 – Enregistrement d'une fiche de paie

Enregistrons une fiche de paie typique où les impôts sont retenus automatiquement. L'essentiel est d'enregistrer d'abord votre salaire brut, puis de montrer comment il a été réparti entre les impôts et l'argent réellement déposé sur votre compte bancaire.

2025-07-15 * "Employer Inc." "Paycheck"
Assets:Checking 4341.00 USD
Expenses:Taxes:Federal:IncomeTax 1200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Income:Salary:Gross -6000.00 USD

Cette transaction unique raconte toute l’histoire :

  • Vous avez gagné 6 000 $ de revenu brut.
  • 1 200 $ ont été envoyés à l’IRS pour l’impôt fédéral sur le revenu.
  • 372 sontalleˊsaˋlaSeˊcuriteˊSocialeet87sont allés à la Sécurité Sociale et 87 à Medicare.
  • Les 4 341 $ restants sont ce que vous avez perçu.

Astuce : Vous pouvez joindre des métadonnées de votre bulletin de paie (comme pay_period_end: "2025-07-15") à la transaction pour une piste d’audit facile.


Exemple 2 – Ajustements de fin d'année

Voici le scénario qui pose problème : nous sommes en avril 2025 et vous déclarez vos impôts de 2024. Vous découvrez qu’après toutes vos retenues, vous devez encore 3 000 $ supplémentaires.

Comment l’enregistrer ? Vous voulez que la dépense soit imputée à 2024, mais que le paiement en espèces se fasse en 2025. Voici deux excellentes façons de procéder.

Option A – Méthode pure Beancount (sans plugin)

Cette méthode est purement Beancount, aucun plugin requis. C’est un processus clair en deux étapes.

Étape 1 – Reconnaître la dépense à la fin de l'année fiscale.

2024-12-31 * "Tax adjustment"
Liabilities:Taxes:Federal:IncomeTax 3000.00 USD
Assets:Tax:Receivable -3000.00 USD

Maintenant, votre compte de résultat 2024 montre correctement cette dépense de 3 000 $.

Étape 2 – Enregistrez le paiement en espèces lorsqu’il se produit.

2025-04-15 * "Pay IRS"
Assets:Checking -3000.00 USD
Liabilities:Taxes:Federal:IncomeTax 3000.00 USD

Vos rapports 2024 sont corrects, et votre flux de trésorerie 2025 l’est aussi. Parfait ! Ce même modèle fonctionne à l’inverse pour un remboursement — utilisez simplement Assets:Tax:Receivable au lieu du compte de passif.

Option B – Utiliser le plugin effective_date

Si vous préférez regrouper le paiement dans une seule transaction, un plugin communautaire fantastique appelé beancount_reds_plugins.effective_date peut aider. Il vous permet d’attribuer une « date d’effet » différente à une ligne.

Tout d’abord, activez le plugin dans votre fichier Beancount principal :

plugin "beancount_reds_plugins.effective_date"
2025-04-15 * "Pay IRS" effective_date: "2024-12-31"
Assets:Checking -3000.00 USD
Expenses:Taxes:Federal:IncomeTax 3000.00 USD

Ici, la partie en espèces est enregistrée le 15 avril 2025, mais la partie dépense est appliquée rétroactivement au 31 décembre 2024. Cela donne le même résultat que l’Option A avec un flux de travail différent.


Qu'en est‑il de la taxe de vente ?

Pour la plupart des registres personnels, la taxe de vente est simple. Si vous ne la réclamez pas, séparez‑la simplement comme une dépense distincte lors d’un achat.

2025-07-01 * "Purchase"
Assets:Checking -120.00 USD
Expenses:Taxes:Sales 10.00 USD
Expenses:Supplies 110.00 USD

Cela vous permet de suivre facilement le montant que vous dépensez en taxes de vente au cours de l'année. Si vous dirigez une entreprise qui traite la TVA, vous utiliseriez un système plus formel avec des comptes de dettes et de créances, mais le principe reste le même.


Requêtes BQL pour obtenir vos réponses

L’objectif de cette structure est de faciliter l’obtention de réponses. Voici quelques requêtes BQL pour visualiser votre situation fiscale.

1. Quel était mon impôt fédéral sur le revenu total pour 2024 ?

SELECT SUM(amount) FROM transactions
WHERE account = 'Expenses:Taxes:Federal:IncomeTax' AND year = 2024;

2. Comment ce total se décompose‑t‑il entre retenues, paiements et remboursements ?

SELECT account, SUM(amount) FROM transactions
WHERE account LIKE 'Expenses:Taxes:%' AND year = 2024
GROUP BY account;

3. Ai‑je des dettes fiscales ou créances en cours ? (Utile pour vérifier votre travail !)

SELECT account, SUM(amount) FROM transactions
WHERE account IN ('Liabilities:Taxes', 'Assets:Tax:Receivable')
GROUP BY account;

Si cette requête renvoie des soldes non nuls, cela signifie que vous avez des accumulations non réglées.


FAQ rapide

  • Ai‑je vraiment besoin de comptes par année comme Expenses:Taxes:2024 ?
    Probablement pas. La méthode d’accumulation (ou le plugin) maintient une structure de comptes plate, propre et lisible. Créez des comptes annuels uniquement si cela facilite réellement l’écriture de vos requêtes spécifiques.

  • Beancount peut‑il calculer mes impôts à ma place ?
    Pas directement, mais il peut préparer les données. Certains utilisateurs avancés écrivent des scripts pour acheminer les résultats des requêtes BQL vers un logiciel de calcul d’impôt, ce qui est idéal pour estimer votre dette fiscale au cours de l’année.

  • S’agit‑il d’un conseil fiscal ?
    Non. Il s’agit d’un modèle de comptabilité pour organiser vos données. La comptabilité est solide, mais vous devez toujours consulter un professionnel fiscal pour des conseils adaptés à votre situation.


Checklist à insérer

  1. Ajoutez la structure de comptes à votre fichier Beancount (et adaptez les noms à votre pays).
  2. Enregistrez les fiches de paie en commençant par le revenu brut et en séparant les écritures fiscales.
  3. En fin d'année, accumulez les ajustements pour les paiements ou remboursements en utilisant un compte de passif/actif (ou utilisez le plugin effective_date).
  4. Suivez les remboursements comme créances et soldez‑les lorsque l’argent arrive.
  5. Exécutez les requêtes BQL ci‑dessus pour vérifier vos totaux avant de déposer votre déclaration.

Gardez-le simple, gardez-le cohérent, et votre saison fiscale ressemblera enfin à une simple partie de votre histoire financière — pas à un mystère à résoudre.

Le cycle comptable, style Beancount

· 9 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Les états financiers n’apparaissent pas par magie. Ils sont le produit final d’un processus structuré et répétable appelé cycle comptable. Bien que les principes soient universels, les outils que vous utilisez peuvent changer l’expérience de façon spectaculaire. Ce guide vous fait traverser le cycle comptable en se concentrant sur Beancount, l’outil puissant de comptabilité en texte brut.

Nous verrons comment l’approche texte‑first de Beancount élimine les étapes fastidieuses, ce que vous devez automatiser, et quels rapports vous donnent la vision la plus claire de votre santé financière. 🧑‍💻

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


TL;DR : le flux de travail Beancount

  • Capture & Journal : Enregistrez chaque transaction comme une écriture double‑entrée propre dans votre fichier texte .beancount.
  • Validation & Rapprochement : Utilisez les assertions balance pour confirmer que votre grand‑livre correspond aux relevés bancaires et lancez bean-check pour détecter les erreurs.
  • Revue : Générez une balance de vérification non ajustée pour un contrôle rapide.
  • Ajustement : Postez les écritures d’accumulation, de report, d’amortissement et d’autres éléments de fin de période.
  • Re‑revue : Vérifiez la balance de vérification ajustée pour vous assurer que tout est correct.
  • Publication & Clôture : Générez votre compte de résultat, votre bilan et votre tableau de flux de trésorerie. La clôture des comptes est optionnelle dans Beancount, les rapports étant sensibles aux dates.

Ce flux peut être visualisé ainsi :


Étape 1 : Capturer et enregistrer les transactions

C’est l’étape fondamentale. Chaque événement financier — une vente, un achat, des frais bancaires — doit être enregistré. Dans Beancount, vous le faites en créant des transactions dans un simple fichier texte, généralement nommé main.beancount ou organisé en plusieurs fichiers par année.

Chaque transaction doit respecter les règles de la comptabilité en partie double, c’est‑à‑dire que la somme de toutes les écritures doit être nulle. Beancount l’impose pour vous.

2025-08-10 * "Walmart" "Purchase of office supplies"
Expenses:Office:Supplies 45.67 USD
Assets:Bank:Checking -45.67 USD
  • Astuce : Utilisez des tags comme #project-phoenix ou #client-acme pour ajouter des dimensions à vos données. Cela rend les requêtes et les rapports incroyablement flexibles plus tard.

Hygiène du rapprochement ✅

La fonctionnalité la plus puissante pour garantir la précision est l’assertion de balance. À la fin d’une période de relevé (par ex. fin du mois), vous déclarez quel doit être le solde d’un compte.

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

Si la somme de toutes les transactions affectant Assets:Bank:Checking jusqu’à cette date n’est pas égale à 12345.67 USD, Beancount déclenchera une erreur. Cette simple directive transforme votre grand‑livre en document auto‑audit.

Pour ceux qui remplissent des données historiques, la directive pad peut créer automatiquement une écriture d’équilibrage afin que vos soldes d’ouverture correspondent à votre première assertion.


Étape 2 : « Poster au grand‑livre » (un cadeau !)

Dans les systèmes comptables traditionnels, vous écrivez d’abord les écritures dans un « journal », puis une étape distincte de « postage » copie ces valeurs dans le « grand‑livre ».

Avec Beancount, votre fichier .beancount est à la fois le journal et le grand‑livre. Lorsque vous écrivez et sauvegardez une transaction, vous l’avez déjà postée. Il n’y a pas d’étape séparée. Cette immédiateté est un avantage majeur de la comptabilité en texte brut — ce que vous voyez est ce que vous obtenez.


Étape 3 : Préparer une balance de vérification non ajustée

Avant de commencer les ajustements, vous avez besoin d’un contrôle rapide « tout s’additionne‑t‑il ? ». Une balance de vérification est un rapport simple qui liste chaque compte et son solde total. Le total des soldes débiteurs doit être égal au total des soldes créditeurs.

Vous pouvez la générer avec une requête simple :

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

Ou, pour une approche plus visuelle, ouvrez votre grand‑livre dans Fava (l’interface web de Beancount) et allez au rapport « Balance de vérification ». Recherchez toute anomalie — un compte d’actif avec un solde créditeur, ou un compte de charge avec une valeur étrange.


Étape 4 : Comptabiliser les écritures d’ajustement

Les écritures d’ajustement sont essentielles pour un reporting précis selon le principe de la comptabilité d’engagement. Elles garantissent que les revenus sont reconnus lorsqu’ils sont gagnés et que les charges sont reconnues lorsqu’elles sont engagées, indépendamment du moment où l’argent change de mains.

Ajustements courants :

  • Accruals : Enregistrement d’un revenu gagné mais non facturé, ou d’une charge engagée mais non payée.
  • Deferrals : Gestion des prépaiements. Si un client vous paie d’avance pour une année de service, vous le comptabilisez comme une dette (Liabilities:UnearnedRevenue) et reconnaissez 1/12e du montant comme revenu chaque mois.
  • Éléments non monétaires : Enregistrement d’amortissements d’actifs.
  • Corrections : Correction d’erreurs ou prise en compte d’éléments manquants provenant des flux bancaires, comme un petit paiement d’intérêts.

Exemple : Accumuler un revenu

Vous avez terminé un projet le 31 août mais n’enverrez la facture qu’en septembre. Pour reconnaître le revenu dans la bonne période (août), vous passez une écriture d’ajustement :

2025-08-31 * "Accrue revenue for client project #1042"
Assets:AccountsReceivable 3000.00 USD
Income:Consulting -3000.00 USD

Exemple : Enregistrer l’amortissement

Votre société possède un plan d’amortissement pour ses actifs. En fin de période, vous comptabilisez la charge :

2025-12-31 * "Annual depreciation on computer equipment"
Expenses:Depreciation 4800.00 USD
Assets:Fixed:AccumulatedDepreciation -4800.00 USD

Étape 5 : Exécuter une balance de vérification ajustée & valider

Une fois vos écritures d’ajustement saisies, relancez le rapport de balance de vérification. C’est votre balance de vérification ajustée. Elle fournit l’ensemble final de chiffres qui seront utilisés pour créer les états financiers.

C’est aussi le moment idéal pour lancer la vérification intégrée de Beancount :

bean-check main.beancount

Cette commande vérifie la syntaxe, les règles d’équilibrage et les assertions. Si elle ne renvoie aucune sortie, vos livres sont mécaniquement corrects.


Étape 6 : Publier les états financiers 📊

Voici la récompense. En utilisant les chiffres de votre balance ajustée, vous pouvez maintenant générer les rapports clés. Fava est le moyen le plus simple — il fournit des rapports interactifs et détaillés prêts à l’emploi.

  • Compte de résultat (P&L) : Présente vos revenus et charges sur une période, aboutissant à votre résultat net.
  • Bilan : Un instantané de ce que vous possédez (Actifs) et ce que vous devez (Passifs), ainsi que votre valeur nette (Capitaux propres) à une date donnée.
  • Tableau de flux de trésorerie : Rapproche votre trésorerie de départ et de fin en montrant d’où vient l’argent et où il est allé.

Pour des rapports personnalisés, vous pouvez utiliser le Beancount Query Language (BQL). Voici une requête pour un compte de résultat mensuel :

-- P&L for August 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;

Étape 7 : Clôture des comptes (optionnelle)

Dans la comptabilité traditionnelle, le processus de « clôture » consiste à créer des écritures pour ramener à zéro tous les comptes temporaires (Revenus et Charges) et transférer le résultat net dans un compte de capitaux propres appelé Résultat reporté. Cela réinitialise formellement les comptes temporaires pour l’année suivante.

Dans Beancount, cette étape est généralement inutile. Les rapports de Fava sont sensibles aux dates ; si vous demandez le P&L 2025, il n’utilisera que les données de 2025. Les soldes ne « débordent » pas. La plupart des utilisateurs laissent simplement les soldes tels quels.

Cependant, si vous devez effectuer une clôture formelle pour des exigences de conformité ou de reporting aux actionnaires, vous pouvez le faire avec une simple écriture de fin d’année qui transfère le total des revenus et charges vers Equity:Retained-Earnings.


Checklist pratique de clôture mensuelle

Voici une checklist réutilisable pour clôturer vos comptes chaque mois avec Beancount.

  • Capture : Importez toutes les transactions bancaires et de cartes de crédit. Saisissez manuellement les dépenses en espèces ou les éléments hors flux.
  • Rapprochement : Ajoutez des assertions balance pour tous les comptes bancaires, cartes de crédit et prêts, en les faisant correspondre à vos relevés.
  • Revue : Parcourez la balance de vérification non ajustée dans Fava. Examinez tout solde étrange ou inattendu. Vérifiez les factures impayées (Assets:AccountsReceivable) ou les factures à payer (Liabilities:AccountsPayable).
  • Ajustement : Comptabilisez les écritures d’accumulation de revenus/dépenses, de revenu différé et les corrections nécessaires.
  • Validation : Lancez bean-check. Examinez la balance de vérification ajustée finale.
  • Publication : Générez le compte de résultat et le bilan. Envoyez‑les aux parties prenantes ou conservez‑les pour vos archives.
  • Clôture : Optionnellement, effectuez une écriture de clôture si votre entreprise l’exige. Archivez une copie de vos fichiers .beancount pour la période.

Pourquoi Beancount brille pour le cycle comptable

  • Transparence et auditabilité : Votre grand‑livre est un fichier texte. Vous pouvez utiliser git pour versionner votre historique financier, examiner les changements avec diff, et collaborer avec votre comptable dans un format clair et sans ambiguïté.
  • Contrôle total : Vous définissez votre plan comptable. Vous n’êtes pas enfermé dans la structure d’un éditeur propriétaire. Vos données vous appartiennent, pour toujours, dans un format ouvert.
  • Puissance inégalée : La combinaison de requêtes de type SQL (BQL) et d’une interface web riche (Fava) vous donne un pouvoir sans précédent pour découper, analyser et comprendre vos données financières.

Extraits à copier‑coller pour démarrer

Plan comptable simple :

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

Requête BQL utile :

-- 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 mappant le cycle comptable intemporel aux outils modernes basés sur le texte de Beancount, vous obtenez un système robuste, transparent et conçu pour durer. Bonne comptabilité !

Beancount.io vs. les logiciels de comptabilité traditionnels : lequel vous convient le mieux ?

· 9 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Depuis des décennies, le monde de la comptabilité d'entreprise a été dominé par un ensemble familier de systèmes fermés, basés sur une interface graphique (GUI), tels que QuickBooks, Xero et FreshBooks. Ils ont établi la norme, offrant une facilité d'utilisation et des flux de travail visuels qui s'adressent aux utilisateurs non techniques. Mais pour les développeurs, les utilisateurs avancés et tous ceux qui apprécient la transparence et le contrôle absolus, une approche radicalement différente a émergé : Beancount.io.

Cet article fournit une comparaison directe de Beancount.io avec les logiciels de comptabilité traditionnels. Nous allons décomposer leurs principales différences en termes de philosophie, de flexibilité, de coût et de maintenabilité à long terme pour vous aider à décider quel système convient réellement à vos besoins.

2025-08-08-beancount-io-vs-traditional-accounting-software

1. Philosophie et flux de travail

La différence la plus fondamentale entre ces deux approches réside dans leur philosophie de base.

Beancount.io Beancount.io est basé sur la philosophie de la comptabilité en texte brut. Au fond, chaque transaction financière est une entrée dans un simple fichier texte. Ce modèle de "comptabilité en tant que code" privilégie les enregistrements lisibles par l'homme et contrôlables par version. Vos données financières vivent dans un format ouvert et intemporel que vous possédez entièrement - elles ne peuvent jamais être enfermées par un fournisseur. Ce flux de travail est conçu pour les utilisateurs qui sont à l'aise avec les éditeurs de code, les systèmes de contrôle de version comme Git et les outils en ligne de commande.

Logiciel traditionnel Les plateformes de comptabilité traditionnelles sont basées sur une interface graphique et axées sur des formulaires. Vous saisissez des données à l'aide d'assistants, de menus déroulants et de formulaires visuels. Cette approche privilégie l'immédiateté et l'accessibilité, ce qui permet aux utilisateurs non techniques de démarrer facilement sans une courbe d'apprentissage abrupte. Cependant, vos données sont stockées dans un format propriétaire ou dans une base de données cloud, ce qui nécessite souvent des procédures d'exportation et d'importation complexes si vous décidez un jour de migrer vers un autre service.

Verdict : Si vous privilégiez le contrôle total, la propriété des données, la transparence et l'automatisation, Beancount.io est le grand gagnant. Si vous avez besoin d'une interface "cliquer et partir" avec une courbe d'apprentissage minimale, un logiciel traditionnel vous semblera plus naturel.

2. Flexibilité et personnalisation

Dans quelle mesure le logiciel peut-il s'adapter à vos besoins spécifiques ?

Beancount.io Être 100% scriptable est le super pouvoir de Beancount.io. Il s'intègre de manière transparente à Python, vous permettant de vous connecter à n'importe quelle API, d'automatiser la récupération de données à partir de flux bancaires, d'étiqueter des transactions par programme en fonction de règles complexes et de générer des rapports personnalisés adaptés à vos spécifications exactes. Votre capacité à étendre et à personnaliser est pratiquement infinie, sans aucune limitation imposée par le fournisseur.

Logiciel traditionnel Ces plateformes offrent une sélection organisée d'intégrations avec des outils populaires tels que PayPal, Stripe et divers services de paie. Bien que pratiques, vous opérez dans le jardin clos du fournisseur. La personnalisation est limitée à ce que la plateforme autorise, et les rapports avancés ou l'automatisation nécessitent souvent une mise à niveau vers un plan de niveau supérieur ou l'achat d'extensions tierces. Vous pouvez travailler avec leurs API, mais vous serez toujours lié par les règles et les limites de débit de leur écosystème.

Verdict : Beancount.io offre une flexibilité inégalée aux développeurs et aux utilisateurs techniques. Les outils traditionnels sont mieux adaptés aux flux de travail standard, plug-and-play avec les applications professionnelles populaires.

3. Collaboration et transparence

La façon dont vous travaillez avec les autres et dont vous auditez vos enregistrements diffère considérablement.

Beancount.io La collaboration sur Beancount.io est gérée via Git. Cela rend chaque modification de votre grand livre financier totalement transparente et auditable. Vous pouvez voir qui a modifié quoi, quand et pourquoi, tout comme un flux de travail de révision de code. C'est idéal pour les équipes distribuées qui adoptent déjà des outils comme GitHub ou GitLab. De plus, il n'y a pas de calculs cachés ; chaque chiffre d'un rapport peut être retracé jusqu'à la ligne exacte de votre fichier de grand livre, garantissant une auditabilité complète.

Logiciel traditionnel La collaboration est gérée via des rôles et des autorisations d'utilisateur intégrés. Vous pouvez inviter votre comptable, votre teneur de livres ou vos partenaires commerciaux à accéder directement aux livres via l'interface web. Ceci est très efficace pour les entreprises qui suivent un modèle traditionnel de contrôle financier. L'inconvénient est que certaines opérations internes, telles que les calculs d'impôts ou les ajustements de solde automatisés, peuvent être des "boîtes noires" opaques, ce qui rend difficile la vérification indépendante de la logique.

Verdict : Beancount.io est parfait pour les équipes qui apprécient l'auditabilité granulaire et la collaboration de type code. Les systèmes traditionnels sont plus adaptés aux comptables pour un accès GUI partagé en temps réel.

4. Coût et propriété

Les modèles financiers et le concept de propriété des données sont aux antipodes.

Beancount.io Le logiciel Beancount de base est open source et gratuit. Vous ne payez que pour les services à valeur ajoutée de Beancount.io, qui comprennent l'hébergement, l'automatisation intelligente et les fonctionnalités premium. Il n'y a pas de frais de licence par poste, vous pouvez donc faire évoluer votre équipe sans encourir de coûts supplémentaires. Plus important encore, il n'y a aucun verrouillage de fournisseur. Vos données sont une collection de fichiers texte que vous pouvez déplacer, modifier ou stocker n'importe où, n'importe quand.

Logiciel traditionnel Ces services fonctionnent sur un modèle d'abonnement, généralement facturé mensuellement ou annuellement. La tarification est souvent échelonnée en fonction des fonctionnalités, et vous pouvez être confronté à des frais par utilisateur ou par entreprise qui évoluent avec votre organisation. Cela crée une dépendance ; si vous arrêtez de payer, vous risquez de perdre l'accès à vos données et aux fonctionnalités du logiciel. Ce verrouillage de fournisseur est un risque important à long terme.

Verdict : Beancount.io est nettement plus rentable à long terme, en particulier pour les équipes techniques qui apprécient la souveraineté des données. Les logiciels traditionnels offrent des coûts d'abonnement prévisibles, mais créent une dépendance à long terme.

5. Courbe d'apprentissage et adoption

À quelle vitesse pouvez-vous être opérationnel ?

Beancount.io La courbe d'apprentissage est indéniablement plus abrupte. L'adoption de ce système nécessite d'être à l'aise avec l'édition de texte, de comprendre la syntaxe de base et de connaître des outils tels que Git. Cependant, l'investissement initial est rentable. Une fois maîtrisé, Beancount permet des flux de travail incroyablement rapides et reproductibles et offre une compréhension fondamentale beaucoup plus approfondie de votre situation financière.

Logiciel traditionnel Ces plateformes sont conçues pour les propriétaires d'entreprises non techniques et offrent une friction d'intégration minimale. Vous pouvez être opérationnel, envoyer des factures et catégoriser les dépenses, en quelques minutes. Cela dit, l'apprentissage des fonctionnalités les plus avancées, telles que la création de rapports personnalisés ou la configuration de la comptabilité multi-entités, nécessite toujours un investissement de temps important.

Verdict : Beancount.io est le bon choix si vous êtes prêt à investir du temps dans l'apprentissage d'un système puissant. Les logiciels traditionnels sont plus rapides à démarrer pour les utilisateurs non techniques qui ont besoin de résultats immédiats.

Comparaison côte à côte

CaractéristiqueBeancount.ioLogiciel de comptabilité traditionnel
Philosophie de baseComptabilité en tant que code ; grand livre en texte brutBasé sur une interface graphique ; axé sur des formulaires
Format des donnéesOuvert (texte brut)Propriétaire (base de données)
Propriété des données100 % détenues et portables par l'utilisateurContrôlées par le fournisseur ; verrouillage potentiel
FlexibilitéInfinie ; entièrement scriptable avec PythonLimitée à l'écosystème et aux API du fournisseur
CollaborationBasée sur Git ; historique des modifications transparentAutorisations d'utilisateur basées sur des rôles
TransparenceEntièrement auditable ; aucun calcul cachéCertains calculs peuvent être opaques
Modèle de coûtCœur open source ; paiement pour l'hébergement/l'automatisationAbonnement mensuel/annuel (SaaS)
Courbe d'apprentissagePlus abrupte pour les utilisateurs non techniquesFaible ; conçu pour un démarrage rapide
Utilisateur idéalDéveloppeurs, utilisateurs avancés, analystes de donnéesPropriétaires de PME, équipes non techniques

Quand choisir chacun

La décision se résume en fin de compte aux compétences, aux priorités et au flux de travail de votre équipe.

Choisissez Beancount.io si vous :

  • Êtes un développeur, un analyste de données ou un utilisateur avancé à tendance technique.
  • Accordez une valeur absolue à la transparence, au contrôle et à la portabilité des données à long terme avant tout.
  • Souhaitez automatiser entièrement votre comptabilité et l'intégrer en profondeur dans vos flux de travail personnalisés.
  • Êtes à l'aise de traiter vos enregistrements financiers avec la même rigueur que le code source.

Choisissez un logiciel de comptabilité traditionnel si vous :

  • Souhaitez une interface visuelle à démarrage rapide sans aucune configuration technique.
  • Avez besoin de fournir un accès immédiat et convivial pour les comptables avec une formation minimale.
  • Préférez une solution gérée et hébergée où le fournisseur gère toutes les mises à jour et la conformité.
  • Vos besoins d'intégration sont satisfaits par des applications populaires et prêtes à l'emploi.

Réflexions finales

Beancount.io n'essaie pas d'être un meilleur QuickBooks - c'est une façon de penser fondamentalement différente. Il représente la comptabilité en tant que code. Pour les professionnels techniques, ce changement offre le même bond en avant que le contrôle de version avec Git a apporté au développement de logiciels : une transparence complète, une reproductibilité parfaite et un contrôle ultime.

Dans le même temps, les logiciels de comptabilité traditionnels continuent de gagner en facilité d'utilisation immédiate et en intégrations prêtes à l'emploi pour les équipes non techniques. Le bon choix n'est pas de savoir lequel est "meilleur" dans l'ensemble, mais lequel correspond parfaitement à votre flux de travail, à vos priorités et au degré de contrôle que vous exigez sur vos données financières.

L'écosystème Beancount : Une analyse complète

· 40 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Fonctionnalités Clés et Philosophie de Beancount

Beancount est un système de comptabilité en partie double, open-source, qui utilise des fichiers texte brut pour enregistrer les transactions. À la base, Beancount traite votre grand livre comme un ensemble de données défini par une grammaire simple et stricte. Chaque événement financier (transactions, ouvertures de comptes, prix des marchandises, etc.) est une directive dans un fichier texte, que Beancount analyse en une base de données d'écritures en mémoire. Cette conception applique le principe de la partie double : chaque transaction doit équilibrer les débits et les crédits entre les comptes. Le résultat est un grand livre très transparent et vérifiable que vous pouvez contrôler par version, inspecter et interroger facilement.

2025-04-15-beancount-ecosystem

Philosophie – exactitude et minimalisme : La conception de Beancount privilégie l'intégrité des données et la simplicité. Son créateur, Martin Blais, décrit Beancount comme "pessimiste" en supposant que l'utilisateur fera des erreurs et impose ainsi des vérifications et des contraintes supplémentaires. Par exemple, Beancount ne vous permettra pas de retirer des actifs qui n'ont jamais été ajoutés (empêchant les soldes négatifs de titres ou de liquidités) et peut exiger que chaque compte soit ouvert avant utilisation. Il ne possède pas le concept de "postings" virtuels ou automatiquement équilibrés de Ledger – un choix intentionnel pour forcer des écritures entièrement équilibrées. Beancount "met le paquet" sur l'exactitude avec plus de vérifications croisées que ce que la comptabilité en partie double de base ne fournit. Cette approche prudente séduit les utilisateurs qui "ne se font pas trop confiance" et souhaitent que le logiciel détecte leurs erreurs.

Options minimales, cohérence maximale : Contrairement à la myriade d'options de ligne de commande et de réglage de Ledger, Beancount opte pour le minimalisme. Il y a très peu d'options globales, et aucune ne modifie la sémantique des transactions en dehors du fichier du grand livre. Toute configuration qui affecte la comptabilité (comme les méthodes de coût de base des marchandises ou les hypothèses de comptabilisation) est effectuée dans le fichier via des directives ou des plugins, garantissant que le chargement du même fichier produit toujours les mêmes résultats, quelle que soit la manière dont les rapports sont générés. Cette conception évite la complexité des nombreux réglages de Ledger et les interactions subtiles entre eux. La philosophie de Beancount est qu'un outil de comptabilité doit être un pipeline stable et déterministe du fichier d'entrée aux rapports. Il y parvient en traitant le grand livre comme un flux ordonné de directives qui peuvent être traitées séquentiellement par programme. Même les éléments que Ledger traite comme une syntaxe spéciale (comme les soldes d'ouverture ou les relevés de prix) sont des directives de première classe dans le modèle de données de Beancount, ce qui rend le système hautement extensible.

Extensibilité via les plugins et le langage de requête : Beancount est implémenté en Python et fournit des points d'intégration pour injecter une logique personnalisée dans le pipeline de traitement. Les utilisateurs peuvent écrire des plugins en Python qui opèrent sur le flux de transactions (par exemple, pour appliquer une règle personnalisée ou générer des écritures automatiques). Ces plugins s'exécutent au fur et à mesure que le fichier est traité, étendant efficacement les fonctionnalités de base de Beancount sans avoir besoin de modifier le code source. Beancount inclut également un puissant langage de requête (inspiré de SQL) pour analyser et manipuler le grand livre. L'outil bean-query traite le grand livre analysé comme une base de données et vous permet d'exécuter des requêtes analytiques dessus – par exemple, sommer les dépenses par catégorie ou extraire toutes les transactions pour un bénéficiaire donné. Dans Beancount 3.x, cette capacité de requête a été déplacée dans un package beanquery autonome, mais du point de vue de l'utilisateur, elle offre toujours des rapports flexibles via des requêtes de type SQL.

Texte brut et contrôle de version : En tant qu'outil de comptabilité en texte brut, Beancount met l'accent sur le contrôle par l'utilisateur et la longévité des données. Le grand livre est simplement un fichier texte .beancount que vous pouvez modifier dans n'importe quel éditeur de texte. Cela signifie que toute votre historique financier est stocké sous une forme lisible par l'homme, et vous pouvez le placer sous Git ou un autre VCS pour suivre les changements au fil du temps. Les utilisateurs conservent souvent leur fichier Beancount sous contrôle de version pour maintenir une piste d'audit de chaque modification (avec des messages de commit décrivant les changements). Cette approche s'aligne sur la philosophie de Beancount selon laquelle les données comptables, en particulier les finances personnelles ou de petites entreprises, doivent être transparentes et "pérennes" – non enfermées dans une base de données propriétaire. Selon les propres mots de Martin Blais, Beancount est un "travail d'amour" conçu pour être simple, durable et gratuit pour la communauté. Il a été développé pour la première fois vers 2007 et a évolué à travers des réécritures majeures (v1 à v2, et maintenant v3 en 2024) pour affiner sa conception tout en préservant sa philosophie fondamentale de minimalisme et d'exactitude.

Outils, Plugins et Extensions dans l'écosystème Beancount

L'écosystème Beancount s'est enrichi d'un vaste ensemble d'outils, plugins et extensions qui améliorent les fonctionnalités de base du grand livre. Ils couvrent l'importation de données, l'édition des grands livres, la visualisation de rapports et l'ajout de fonctionnalités comptables spécialisées. Vous trouverez ci-dessous un aperçu des composants clés et des modules complémentaires dans l'univers Beancount :

Utilitaires d'importation de données (Importateurs)

L'un des besoins les plus importants pour une utilisation pratique est l'importation de transactions depuis les banques, les cartes de crédit et d'autres institutions financières. Beancount fournit un cadre d'importation et des scripts d'importation contribués par la communauté à cette fin. Dans Beancount 2.x, le module intégré beancount.ingest (avec des commandes comme bean-extract et bean-identify) était utilisé pour définir des plugins d'importation en Python et les appliquer aux relevés téléchargés. Dans Beancount 3.x, cela a été remplacé par un projet externe appelé Beangulp. Beangulp est un cadre d'importateurs dédié qui a évolué à partir de beancount.ingest et est maintenant la méthode recommandée pour automatiser l'importation de transactions pour Beancount 3.0. Il permet d'écrire des scripts Python ou des outils en ligne de commande qui lisent des fichiers externes (comme des relevés CSV ou PDF) et produisent des écritures Beancount. Cette nouvelle approche découple la logique d'importation du cœur de Beancount – par exemple, l'ancienne commande bean-extract a été supprimée dans la v3, et vos scripts d'importation produisent eux-mêmes des transactions via l'interface CLI de Beangulp.

Des dizaines d'importateurs prêts à l'emploi existent pour différentes banques et formats, contribués par la communauté. Il existe des scripts d'importation pour des institutions du monde entier – d'Alipay et WeChat Pay en Chine, à diverses banques européennes (Commerzbank, ING, ABN AMRO, etc.), aux banques américaines comme Chase et Amex. Beaucoup d'entre eux sont rassemblés dans des dépôts publics (souvent sur GitHub) ou dans des paquets comme beancount-importers. Par exemple, le projet Tarioch Beancount Tools (tariochbctools) fournit des importateurs pour les banques suisses et britanniques et gère même les importations de transactions crypto. Un autre exemple est Lazy Beancount, qui regroupe un ensemble d'importateurs courants (pour Wise, Monzo, Revolut, IBKR, etc.) et fournit une configuration basée sur Docker pour une automatisation facile. Quelle que soit la banque ou le service financier que vous utilisez, il y a de fortes chances que quelqu'un ait écrit un importateur Beancount pour cela – ou vous pouvez écrire le vôtre en utilisant le cadre de Beangulp. La flexibilité de Python signifie que les importateurs peuvent gérer l'analyse des fichiers CSV/Excel, les téléchargements OFX/QIF, ou même le scraping d'APIs, puis émettre des transactions au format Beancount standardisé.

Édition et Intégration aux Éditeurs

Étant donné que les journaux Beancount sont de simples fichiers texte, les utilisateurs exploitent souvent leurs éditeurs de texte ou IDEs préférés pour les gérer. L'écosystème propose des plugins de support d'éditeur pour faciliter cette expérience. Il existe des extensions pour de nombreux éditeurs populaires qui ajoutent la coloration syntaxique, l'auto-complétion des noms de comptes et la vérification des erreurs en temps réel :

  • Emacs Beancount-Mode : Un mode majeur Emacs (beancount-mode) est disponible pour éditer les fichiers .beancount, offrant des fonctionnalités telles que la coloration syntaxique et l'intégration avec le vérificateur de Beancount. Il peut même exécuter bean-check en arrière-plan afin que les erreurs dans le grand livre (comme une transaction déséquilibrée) soient signalées au fur et à mesure que vous éditez.
  • Extension VS Code : Une extension Beancount sur le VSCode Marketplace offre des commodités similaires aux utilisateurs de Visual Studio Code. Elle prend en charge la coloration syntaxique, l'alignement des montants, l'auto-complétion pour les comptes/bénéficiaires, et même des vérifications de solde à la volée lorsque vous enregistrez le fichier. Elle peut également s'intégrer à Fava, vous permettant de lancer l'interface web de Fava depuis VSCode.
  • Des plugins ou modes existent également pour Vim, Atom et d'autres éditeurs. Par exemple, il existe une grammaire Tree-sitter pour Beancount, qui alimente la coloration syntaxique dans les éditeurs modernes et a même été adoptée dans le composant d'édition web de Fava. En bref, quel que soit votre environnement d'édition, la communauté a probablement fourni un plugin pour rendre l'édition des fichiers Beancount pratique et sans erreur.

Pour la saisie rapide de transactions en dehors des éditeurs traditionnels, il existe également des outils comme Bean-add et les applications mobiles. Bean-add est un outil en ligne de commande qui permet d'ajouter une nouvelle transaction via une invite ou une ligne de commande unique, gérant les suggestions de date et de compte. Sur mobile, un projet appelé Beancount Mobile offre une interface simple pour saisir des transactions en déplacement (par exemple, enregistrer un achat en espèces depuis votre téléphone). De plus, un Bot Telegram Beancount existe pour capturer les transactions via la messagerie – vous pouvez envoyer un message avec les détails de la transaction, et le bot le formate dans votre fichier de grand livre.

Interfaces Web et Outils de Visualisation

(Fava) L'interface web de Fava fournit un tableau de bord interactif pour Beancount, présentant des rapports comme un compte de résultat avec des visualisations (montré ici comme une arborescence des dépenses par catégorie) ainsi que des tableaux de comptes et de soldes.

L'interface principale de Beancount est Fava, une interface web moderne. Fava fonctionne comme une application web locale qui lit votre fichier Beancount et produit une expérience interactive riche dans votre navigateur. Elle offre une suite complète de rapports : bilan, compte de résultat, valeur nette au fil du temps, avoirs en portefeuille, graphiques de performance, budgets, et plus encore – tout cela prêt à l'emploi. Les utilisateurs citent souvent Fava comme une raison majeure de choisir Beancount plutôt que d'autres outils de comptabilité en texte brut. Avec une seule commande (fava ledger.beancount), vous pouvez parcourir vos finances avec des graphiques et des tableaux au lieu de texte. Fava prend en charge des fonctionnalités telles que : l'exploration détaillée des comptes, le filtrage des transactions par bénéficiaire ou étiquette, un éditeur de requêtes (pour que vous puissiez exécuter des requêtes Beancount et voir les résultats dans le navigateur), et même un éditeur web intégré pour votre grand livre. Elle est très utilisable, rendant la comptabilité en texte brut accessible à ceux qui préfèrent les interfaces visuelles.

En coulisses, Fava est écrit en Python (Flask pour le backend) et JavaScript (Svelte pour le frontend). Elle a son propre cycle de publication et est activement maintenue. Notamment, Fava a suivi le rythme de développement de Beancount – par exemple, Fava 1.30 a ajouté le support de Beancount v3, passant à l'utilisation interne des nouveaux paquets beanquery et beangulp. (Elle prend toujours en charge Beancount 2 pour les grands livres plus anciens.) L'accent mis par Fava sur la convivialité inclut des touches agréables comme l'auto-complétion dans l'éditeur web, et une interface utilisateur élégante avec un mode sombre et des graphiques réactifs. Il existe également un dérivé appelé Fava-GTK, qui intègre Fava dans une application de bureau pour les utilisateurs de GNOME/Linux qui préfèrent une sensation d'application native.

Au-delà de Fava, d'autres options de visualisation et d'analyse existent. Étant donné que les données Beancount peuvent être exportées ou interrogées sous forme de tableaux, les utilisateurs exploitent souvent des outils comme les notebooks Jupyter ou Pandas pour des analyses personnalisées. Par exemple, un utilisateur décrit l'extraction de données de Beancount via l'interface de requête dans un DataFrame Pandas pour préparer un rapport personnalisé. Il existe également des scripts contribués par la communauté pour des rapports spécifiques – par exemple, un outil d'analyse de l'allocation de portefeuille ou un graphique de contrôle de processus pour les dépenses par rapport à la valeur nette. Cependant, pour la plupart des gens, Fava offre une puissance de reporting plus que suffisante sans avoir besoin d'écrire du code. Elle prend même en charge les extensions : vous pouvez y déposer des fichiers Python qui ajoutent de nouvelles pages de rapport ou des graphiques à Fava. Une extension notable est fava-envelope pour la budgétisation par enveloppes au sein de Fava. Globalement, Fava sert de centre de visualisation central de l'écosystème Beancount.

Utilitaires et scripts en ligne de commande

Beancount est livré avec divers outils en ligne de commande (en particulier dans l'ancienne branche v2, dont certains ont été réduits dans la v3). Ces outils opèrent sur votre fichier de grand livre pour le vérifier ou générer des rapports spécifiques en texte ou en HTML :

  • bean-check : un validateur qui vérifie les erreurs de syntaxe ou les erreurs comptables dans le fichier. L'exécution de bean-check myfile.beancount vous alertera de tout déséquilibre, compte manquant ou autre problème, et ne produira rien si le fichier est exempt d'erreurs.
  • bean-format : un formateur qui organise votre grand livre en alignant les chiffres dans des colonnes soignées, un peu comme l'exécution d'un formateur de code sur du code source. Cela aide à maintenir le fichier propre et lisible.
  • bean-query : un shell interactif ou un outil de traitement par lots pour exécuter le langage de requête de Beancount sur votre grand livre. Vous pouvez l'utiliser pour produire des rapports tabulaires personnalisés (par ex., bean-query myfile.beancount "SELECT account, sum(amount) WHERE ...").
  • bean-report : un générateur de rapports polyvalent (en v2) capable de produire des rapports prédéfinis (bilan, compte de résultat, balance de vérification, etc.) sur la console ou dans des fichiers. Par exemple, bean-report file.beancount balances imprimerait les soldes des comptes. (En pratique, bon nombre de ces rapports textuels ont été supplantés par la présentation plus agréable de Fava.)
  • bean-web / bean-bake : une ancienne interface web qui servait les rapports sur localhost ou les "cuisait" (générait) en tant que fichiers HTML statiques. Ceux-ci étaient principalement utilisés avant que Fava ne devienne populaire ; bean-web fournissait une vue web basique des mêmes rapports que bean-report pouvait générer. Dans Beancount 3, bean-web a été supprimé (car Fava est maintenant l'interface web recommandée, offrant une expérience supérieure).
  • bean-example : un utilitaire pour générer un fichier de grand livre exemple (utile pour les nouveaux utilisateurs afin de voir un modèle d'écritures Beancount).
  • bean-doctor : un outil de débogage capable de diagnostiquer les problèmes dans votre grand livre ou votre environnement.

Il est important de noter qu'à partir de Beancount v3, bon nombre de ces outils ont été déplacés hors du projet principal. Le paquet Beancount principal a été rationalisé, et des outils comme le moteur de requête et les importateurs ont été scindés en paquets séparés (beanquery, beangulp, etc.) pour faciliter la maintenance. Par exemple, la fonctionnalité de bean-query est maintenant fournie par l'outil beanquery qui est installé séparément. Du point de vue de l'utilisateur, la fonctionnalité reste disponible ; elle a simplement été modularisée. La communauté Arch Linux a noté ce changement lors de la mise à jour de Fava : le paquet Fava a ajouté des dépendances à beanquery et beangulp pour prendre en charge Beancount 3.x. Cette approche modulaire permet également à d'autres membres de la communauté de contribuer à ces outils auxiliaires plus indépendamment du cycle de publication de Beancount.

Plugins et Extensions Beancount

Une force remarquable de l'écosystème Beancount est son système de plugins. En ajoutant une ligne plugin "module.name" dans votre fichier Beancount, vous pouvez intégrer une logique Python personnalisée qui s'exécute pendant le traitement du grand livre. La communauté a créé de nombreux plugins pour étendre les capacités de Beancount :

  • Qualité des données et règles : Des exemples incluent beancount-balexpr qui vous permet d'affirmer des équations impliquant plusieurs comptes (par exemple, Actif A + Actif B = Passif X), et beancount-checkclosed qui insère automatiquement des assertions de solde lorsque vous clôturez un compte pour s'assurer qu'il est à zéro. Il existe même un plugin pour s'assurer que les transactions dans le fichier sont triées par date (autobean.sorted) afin de détecter les entrées désordonnées.
  • Automatisation : Le plugin beancount-asset-transfer peut générer des écritures de transfert en nature entre comptes (utile pour déplacer des actions entre courtiers tout en préservant le prix de revient). Un autre, autobean.xcheck, recoupe votre grand livre Beancount avec des relevés externes pour détecter les écarts.
  • Transactions récurrentes et budgets : Le plugin « repeat » ou d'interpolation d'Akuukis permet de définir des transactions récurrentes ou de répartir une dépense annuelle sur plusieurs mois. Pour la budgétisation, l'extension fava-envelope (utilisée via Fava) prend en charge la méthodologie de budgétisation par enveloppes en texte brut. Il existe également MiniBudget de Frank Davies – un petit outil autonome inspiré de Beancount pour aider à la budgétisation pour un usage personnel ou pour les petites entreprises.
  • Fiscalité et rapports : Certains plugins aident à la comptabilité fiscale, comme celui qui classe automatiquement les plus-values en court ou long terme. Un autre (fincen_114 de Justus Pendleton) génère un rapport FBAR pour les contribuables américains ayant des comptes étrangers, illustrant comment les données Beancount peuvent être utilisées pour les rapports réglementaires.
  • Dépôts de plugins communautaires : Il existe des ensembles de plugins organisés tels que beancount-plugins (par Dave Stephens) se concentrant sur des éléments comme les écritures d'amortissement, et beancount-plugins-zack (par Stefano Zacchiroli) qui incluent divers utilitaires comme les directives de tri.

En plus des plugins, d'autres outils utilitaires gravitant autour de Beancount répondent à des besoins spécifiques. Par exemple, beancount-black est un auto-formateur similaire au formateur de code Black, mais pour les fichiers de grand livre Beancount. Il existe un Bot Beancount (Telegram/Mattermost) pour ajouter des transactions via le chat comme mentionné, et un workflow Alfred pour macOS pour ajouter rapidement des transactions à votre fichier. Un outil nommé Pinto offre une interface en ligne de commande « suralimentée » avec saisie interactive (comme un bean-add amélioré). Pour ceux qui migrent depuis d'autres systèmes, des convertisseurs existent (YNAB2Beancount, CSV2Beancount, GnuCash2Beancount, Ledger2Beancount) pour aider à importer des données d'ailleurs.

En résumé, l'écosystème Beancount est assez vaste. Le Tableau 1 ci-dessous liste quelques outils et extensions majeurs avec leurs rôles :

Outil/ExtensionDescription
Fava (interface web)Application web complète pour visualiser et modifier les livres Beancount. Fournit des rapports interactifs (bilan, revenus, etc.), des graphiques et des capacités de requête. Un atout majeur pour l'ergonomie de Beancount.
Beangulp (cadre d'importation)Cadre d'importation autonome pour Beancount v3, remplaçant l'ancien module d'ingestion. Aide à convertir les relevés bancaires (CSV, PDF, etc.) en écritures Beancount à l'aide de scripts de plugins.
Beanquery (outil de requête)Moteur de requête autonome de type SQL pour les données Beancount. Remplace bean-query dans la v3, permettant des requêtes avancées sur les transactions et les soldes via une syntaxe SELECT-FROM-WHERE familière.
Bean-check / Bean-formatOutils CLI essentiels pour valider un fichier Beancount (vérifier les erreurs) et le formater automatiquement pour la cohérence. Utile pour maintenir un grand livre correct et propre.
Plugins d'éditeur (Emacs, VSCode, Vim, etc.)Plugins/modes qui ajoutent la prise en charge de la syntaxe Beancount et le linting dans les éditeurs de texte. Améliorent l'expérience d'édition manuelle des fichiers .beancount avec des fonctionnalités comme l'auto-complétion et la mise en évidence des erreurs en temps réel.
Importateurs communautairesCollections de scripts d'importation bancaire (nombreux sur GitHub) couvrant des banques aux États-Unis, en UE, en Asie, et plus encore. Permettent aux utilisateurs d'ingérer automatiquement les transactions de leurs institutions financières dans Beancount.
Plugins (extensions de grand livre)Plugins optionnels intégrés aux fichiers pour appliquer des règles ou ajouter des fonctionnalités (par exemple, partage de dépenses, écritures récurrentes, assertions de solde personnalisées). Écrits en Python et exécutés pendant le traitement du fichier pour la personnalisation.
Convertisseurs (Outils de migration)Utilitaires pour convertir des données d'autres formats vers Beancount, par exemple de GnuCash ou Ledger CLI au format Beancount. Facilitent l'adoption de Beancount sans partir de zéro.

Comparaison avec Ledger, hledger et les systèmes similaires

Beancount appartient à la famille des outils de comptabilité en partie double en texte brut, parmi lesquels Ledger CLI (Ledger de John Wiegley) et hledger sont proéminents. Bien que tous ces systèmes partagent l'idée fondamentale de fichiers de grand livre en texte brut et de la comptabilité en partie double, ils diffèrent par leur syntaxe, leur philosophie et la maturité de leur écosystème. Le tableau suivant met en évidence les principales différences entre Beancount, Ledger et hledger :

AspectBeancount (Python)Ledger CLI (C++)hledger (Haskell)
Syntaxe et structure de fichierSyntaxe stricte et structurée définie par une grammaire formelle (BNF). Les transactions comportent des lignes explicites date flag "Bénéficiaire" "Libellé" et des écritures avec des quantités ; tous les comptes doivent être explicitement ouverts/définis. Pas d'écritures implicites ; chaque transaction doit s'équilibrer.Syntaxe plus libre. Le bénéficiaire/la description se trouve généralement sur la même ligne que la date. Permet un certain équilibrage implicite (par exemple, une transaction à une seule écriture peut impliquer une seconde écriture vers un compte par défaut). Les noms de compte peuvent être utilisés sans déclaration préalable. Offre de nombreuses options de ligne de commande qui peuvent affecter l'analyse (par exemple, les hypothèses d'année, les règles de fusion des marchandises).Suit largement la syntaxe de Ledger avec des différences mineures. hledger est une réimplémentation des fonctionnalités principales de Ledger en Haskell, de sorte que le format du journal est très similaire à celui de Ledger (avec quelques extensions et une analyse plus stricte par défaut). Par exemple, hledger est un peu plus strict concernant les dates et la syntaxe des marchandises que Ledger, mais pas autant que Beancount.
PhilosophieConservateur et Pédant. Met l'accent sur la détection des erreurs utilisateur et le maintien de l'intégrité des données avant tout. Impose de nombreuses vérifications (assertions de solde, suivi des lots) par défaut. Configuration minimale – approche "une seule façon de faire" pour la cohérence. Conçu comme une bibliothèque avec des plugins pour l'extensibilité (traite les données du grand livre comme un flux à traiter, permettant une logique Python personnalisée).Optimiste et Flexible. Fait confiance à l'utilisateur pour saisir les données correctement ; moins de contraintes intégrées par défaut. Hautement personnalisable avec des dizaines d'options et de drapeaux de commande pour ajuster le comportement. Tend à être un outil monolithique avec des fonctionnalités intégrées (rapports, graphiques) et utilise un langage spécifique au domaine au sein du grand livre pour des éléments tels que les transactions automatisées et les transactions périodiques. L'extensibilité se fait généralement via des scripts externes ou le langage de requête intégré plutôt que par des API de plugins.Pragmatique et Cohérent. Vise à rendre l'approche de Ledger accessible à un public plus large avec un comportement prévisible. hledger privilégie par défaut une plus grande cohérence (pas d'hypothèses d'équilibrage sans comptes explicites) et présente moins de pièges que les modes les plus permissifs de Ledger. Il dispose d'un sous-ensemble des fonctionnalités de Ledger (certaines des options plus exotiques de Ledger ne sont pas prises en charge), mais en ajoute certaines des siennes (comme une interface web et l'importation CSV intégrées). Met l'accent sur la stabilité et l'exactitude, mais sans système de plugins comme celui de Beancount.
Transactions et équilibrageComptabilité en partie double stricte : chaque transaction doit avoir des débits et des crédits totaux égaux. Ne permet pas les écritures déséquilibrées ou les espaces réservés (pas d'"écritures virtuelles" qui s'auto-équilibrent). Applique également l'indépendance de l'ordre : le grand livre peut être trié par date arbitrairement car les assertions de solde sont liées à la date, ne dépendant pas de l'ordre du fichier. Le suivi des coûts pour les marchandises est rigoureux – lorsque vous vendez des actifs, vous devez spécifier les lots ou Beancount appliquera FIFO/LIFO de manière à ce que vous ne puissiez pas retirer quelque chose que vous n'avez pas ajouté.Permet plus de souplesse dans les transactions. Ledger autorise les écritures "virtuelles" (utilisant des crochets [ ] ou des parenthèses) qui ne nécessitent pas de compte d'équilibrage explicite – souvent utilisées pour gérer la budgétisation ou l'équilibrage implicite des capitaux propres. Il est possible dans Ledger de saisir une transaction incomplète (en omettant un côté) et de laisser Ledger déduire le montant d'équilibrage. De plus, Ledger n'applique pas strictement le retrait d'actifs lot par lot ; il soustraira volontiers d'un solde global de marchandises même si des lots spécifiques n'ont pas été suivis. Cela facilite, par exemple, la comptabilité au coût moyen, mais signifie que Ledger ne vous empêchera pas de faire des erreurs comme vendre plus d'actions que vous n'en avez dans un lot donné.
Inventaire et coût de baseSuivi précis des lots. Beancount associe les informations de coût aux lots de marchandises (par exemple, achat de 10 actions à 100 $ chacune), et lors de la réduction d'un inventaire, il exige la correspondance d'un lot spécifique ou l'utilisation d'une stratégie définie. Il garantit que les gains en capital

Cas d'utilisation de Beancount

Beancount est suffisamment polyvalent pour être utilisé pour le suivi des finances personnelles ainsi que (dans certains cas) pour la comptabilité des petites entreprises. Son approche fondamentale de la comptabilité en partie double est la même dans les deux cas, mais l'échelle et les pratiques spécifiques peuvent différer.

Finances personnelles

De nombreux utilisateurs de Beancount l'emploient pour gérer leurs finances individuelles ou familiales. Une configuration typique de finances personnelles dans Beancount pourrait inclure des comptes courants et d'épargne, des cartes de crédit, des investissements, des prêts, des catégories de revenus (salaire, intérêts, etc.) et des catégories de dépenses (loyer, épicerie, divertissement, etc.). Les utilisateurs enregistrent les transactions quotidiennes soit manuellement (en saisissant les reçus, les factures, etc.), soit en les important à partir de relevés bancaires à l'aide des outils d'importation abordés précédemment. Les avantages que Beancount apporte aux finances personnelles sont les suivants :

  • Consolidation et analyse : Toutes vos transactions peuvent résider dans un seul fichier texte (ou un ensemble de fichiers) qui représente des années d'historique financier. Cela facilite l'analyse des tendances à long terme. Avec le langage de requête de Beancount ou avec Fava, vous pouvez répondre en quelques secondes à des questions comme « Combien ai-je dépensé en voyages au cours des 5 dernières années ? » ou « Quel est mon budget moyen mensuel pour l'épicerie ? ». Un utilisateur a noté qu'après être passé à Beancount, « l'analyse des données financières (dépenses, dons, impôts, etc.) est triviale », que ce soit via Fava ou en interrogeant les données et en utilisant des outils comme Pandas. En substance, votre grand livre devient une base de données financière personnelle que vous pouvez interroger à volonté.
  • Budgétisation et planification : Bien que Beancount n'impose pas de système de budgétisation, vous pouvez en implémenter un. Certains utilisateurs pratiquent la budgétisation par enveloppes en créant des comptes budgétaires ou en utilisant le plugin fava-envelope. D'autres utilisent simplement des rapports périodiques pour comparer les dépenses aux objectifs. Comme il s'agit de texte brut, l'intégration de Beancount avec des outils de budgétisation externes ou des tableurs est simple (exportation de données ou utilisation des sorties CSV des requêtes).
  • Suivi des investissements et de la valeur nette : Beancount excelle dans le suivi des investissements grâce à sa gestion robuste des prix de revient et des prix du marché. Vous pouvez enregistrer les achats/ventes d'actions, de crypto-monnaies, etc., avec les détails des coûts, puis utiliser les directives Prices pour suivre la valeur marchande. Fava peut afficher un graphique de l'évolution de la valeur nette et une répartition du portefeuille par classe d'actifs. C'est extrêmement utile pour la gestion de patrimoine personnelle – vous obtenez des informations similaires à celles que fournissent des outils commerciaux comme Mint ou Personal Capital, mais entièrement sous votre contrôle. La gestion multi-devises est également intégrée, donc si vous détenez des devises étrangères ou des crypto-monnaies, Beancount peut les suivre et les convertir pour les rapports.
  • Rapprochement et exactitude : Les finances personnelles impliquent souvent un rapprochement avec les relevés bancaires. Avec Beancount, on peut régulièrement rapprocher les comptes en utilisant des assertions de solde ou la fonctionnalité de documents. Par exemple, chaque mois, vous pourriez ajouter une entrée balance Assets:Bank:Checking <date> <balance> pour confirmer que votre grand livre correspond au relevé de la banque à la fin du mois. L'outil bean-check (ou l'affichage des erreurs de Fava) vous alertera si les choses ne correspondent pas. Un utilisateur mentionne effectuer un rapprochement mensuel de tous les comptes, ce qui « aide à détecter toute activité inhabituelle » – une bonne pratique d'hygiène financière personnelle que Beancount facilite.
  • Automatisation : Les personnes averties en technologie ont automatisé une grande partie de leur flux de travail de finances personnelles avec Beancount. En utilisant des importateurs, des tâches cron et peut-être un peu de Python, vous pouvez configurer votre système de sorte que, par exemple, chaque jour vos transactions bancaires soient récupérées (certains utilisent OFX ou des API) et ajoutées à votre fichier Beancount, catégorisées par des règles. Au fil du temps, votre grand livre est majoritairement mis à jour automatiquement, et vous n'avez qu'à le réviser et l'ajuster si nécessaire. Un membre de la communauté sur Hacker News a partagé qu'après 3 ans, leurs livres Beancount étaient « 95 % automatiques ». Ce niveau d'automatisation est possible grâce à l'ouverture du texte brut de Beancount et à ses capacités de script.

Les utilisateurs de finances personnelles choisissent souvent Beancount plutôt que des tableurs ou des applications car il leur confère la propriété complète des données (pas de dépendance à un service cloud qui pourrait fermer – une préoccupation, par exemple, lorsque Mint a été abandonné) et parce que la profondeur des informations est plus grande lorsque toutes vos données sont intégrées. La courbe d'apprentissage n'est pas triviale – il faut apprendre les bases de la comptabilité et la syntaxe Beancount – mais des ressources comme la documentation officielle et les tutoriels communautaires aident les nouveaux venus à démarrer. Une fois configuré, beaucoup trouvent que cela apporte une tranquillité d'esprit d'avoir une image claire et fiable de leurs finances à tout moment.

Comptabilité des petites entreprises

L'utilisation de Beancount pour une petite entreprise (ou une organisation à but non lucratif, un club, etc.) est moins courante que pour un usage personnel, mais c'est tout à fait possible et certains l'ont fait avec succès. Le cadre de la comptabilité en partie double de Beancount est en fait le même système qui sous-tend la comptabilité d'entreprise, mais sans certaines des fonctionnalités de niveau supérieur que les logiciels comptables dédiés offrent (comme les modules de facturation ou les intégrations de paie). Voici comment Beancount peut s'intégrer dans le contexte d'une petite entreprise :

  • Grand Livre et États Financiers : Une petite entreprise peut considérer le fichier Beancount comme son grand livre. Vous auriez des comptes d'actif pour les comptes bancaires, les créances clients, peut-être les stocks ; des comptes de passif pour les cartes de crédit, les emprunts, les dettes fournisseurs ; des capitaux propres pour le capital du propriétaire ; des comptes de produits pour les ventes ou les services ; et des comptes de charges pour toutes les dépenses de l'entreprise. En tenant ce grand livre, vous pouvez produire un Compte de Résultat (Profits et Pertes) et un Bilan à tout moment en utilisant les rapports ou les requêtes de Beancount. En fait, les rapports intégrés de Beancount ou Fava peuvent générer un bilan et un compte de résultat en quelques secondes, parfaitement conformes aux principes comptables. Cela peut être suffisant pour une petite entreprise afin d'évaluer sa rentabilité, sa situation financière et ses flux de trésorerie (avec un peu de requêtes pour les flux de trésorerie, car les tableaux de flux de trésorerie directs ne sont pas intégrés mais peuvent être dérivés).
  • Factures et Clients (A/R), Fournisseurs (A/P) : Beancount ne dispose pas de système de facturation intégré ; les utilisateurs géreraient généralement la facturation en externe (par exemple, créer des factures dans Word ou une application de facturation), puis enregistreraient les résultats dans Beancount. Par exemple, lorsque vous émettez une facture, vous enregistreriez une écriture débitant les Comptes Clients et créditant les Produits. Lorsque le paiement arrive, vous débitez Caisse/Banque et créditez les Comptes Clients. De cette façon, vous pouvez suivre les créances en suspens en consultant le solde du compte Clients. Il en va de même pour les factures fournisseurs (A/P). Bien que cela soit plus manuel qu'un logiciel comptable spécialisé (qui pourrait envoyer des rappels ou s'intégrer aux e-mails), c'est parfaitement réalisable. Certains utilisateurs ont partagé des modèles ou des flux de travail sur la façon dont ils gèrent les factures avec Beancount et s'assurent de ne pas oublier les factures ouvertes (par exemple, en utilisant des métadonnées ou des requêtes personnalisées pour lister les factures impayées).
  • Stocks ou Coût des Marchandises Vendues : Pour les entreprises vendant des produits, Beancount peut suivre les achats et les ventes de stocks, mais cela nécessite des écritures rigoureuses. Vous pourriez utiliser les fonctionnalités de Stocks et de comptabilité analytique des coûts : l'achat de stocks augmente un compte d'actif (avec le coût attaché aux articles), la vente déplace le coût vers une charge (CMV) et enregistre les revenus. Parce que Beancount insiste sur l'appariement des lots, il forcera une réduction correcte des stocks avec le bon coût, ce qui peut en fait garantir l'exactitude de vos calculs de marge brute si cela est bien fait. Cependant, il n'y a pas de suivi automatisé des UGS ou quoi que ce soit de ce genre – tout est au niveau financier (quantité et coût).
  • Paie et Transactions Complexes : Beancount peut enregistrer les transactions de paie (charge salariale, retenues fiscales, etc.), mais le calcul de ces chiffres pourrait être effectué en externe ou via un autre outil, puis simplement enregistré dans Beancount. Pour une très petite entreprise (disons un ou deux employés), c'est gérable. Vous enregistreriez, par exemple, une seule écriture de journal par période de paie qui ventile les salaires, les impôts retenus, les charges patronales, l'argent versé, etc. Faire cela manuellement est similaire à la façon dont on pourrait le faire dans les écritures de journal de QuickBooks – cela nécessite une connaissance des comptes à impacter.
  • Multi-utilisateur et Audit : Un défi dans un environnement commercial est de savoir si plusieurs personnes doivent accéder aux livres ou si un comptable doit les examiner. Puisque Beancount est un fichier texte, il n'est pas multi-utilisateur en temps réel. Cependant, héberger le fichier dans un dépôt Git peut permettre la collaboration : chaque personne peut modifier et valider, et les différences peuvent être fusionnées.
  • Conformité réglementaire : Pour la déclaration fiscale ou la conformité, les données de Beancount peuvent être utilisées pour générer les rapports nécessaires, mais cela peut nécessiter des requêtes personnalisées ou des plugins. Nous avons vu un exemple de plugin communautaire pour les rapports de conformité du gouvernement indien, et un autre pour les rapports FBAR du FinCEN. Cela montre qu'avec des efforts, Beancount peut être adapté pour répondre à des exigences de reporting spécifiques. Les petites entreprises dans les juridictions ayant des exigences simples (comptabilité de caisse, ou comptabilité d'engagement de base) peuvent certainement tenir leurs livres dans Beancount et produire des états financiers pour les déclarations de revenus. Cependant, des fonctionnalités comme les tableaux d'amortissement ou l'amortissement pourraient vous obliger à écrire vos propres écritures ou à utiliser un plugin (les plugins d'amortissement de Dave Stephens, par exemple, aident à automatiser cela). Il n'y a pas d'interface graphique pour "cliquer sur amortir un actif" comme dans certains logiciels comptables ; vous coderiez l'amortissement comme des transactions (ce qui, d'une certaine manière, le démystifie – tout est une écriture que vous pouvez inspecter).

En pratique, de nombreux propriétaires de petites entreprises axées sur la technologie ont utilisé Beancount (ou Ledger/hledger) s'ils préfèrent le contrôle et la transparence à la commodité de QuickBooks. Une discussion sur Reddit a noté que pour la comptabilité standard des petites entreprises avec un volume limité de transactions, Beancount fonctionne bien. Le facteur limitant est généralement le niveau de confort – si le propriétaire de l'entreprise (ou son comptable) est à l'aise avec un outil basé sur du texte. Un avantage est le coût : Beancount est gratuit, tandis que les logiciels comptables peuvent être coûteux pour une petite entreprise. D'autre part, le manque de support officiel et la nature "faites-le vous-même" signifient qu'il convient mieux à ceux qui sont à la fois propriétaires d'entreprise et quelque peu techniquement enclins. Pour les freelances ou les entrepreneurs individuels ayant des compétences en programmation, Beancount peut être un choix attrayant pour gérer leurs finances sans dépendre des services de comptabilité en ligne.

Des approches hybrides sont également possibles : certaines petites entreprises utilisent un système officiel pour les factures ou la paie, mais importent périodiquement les données dans Beancount pour l'analyse et l'archivage. De cette façon, elles bénéficient du meilleur des deux mondes – conformité et facilité pour les opérations quotidiennes, plus la puissance de Beancount pour une vue d'ensemble consolidée.

En résumé, Beancount peut gérer la comptabilité des petites entreprises, à condition que l'utilisateur soit prêt à gérer manuellement des choses que les logiciels commerciaux automatisent. Il assure un haut degré de transparence – vous comprenez profondément vos livres parce que vous les écrivez – et pour un utilisateur diligent, il peut produire des livres impeccables. Les utilisateurs personnels et professionnels bénéficient des forces fondamentales de Beancount : un moteur comptable fiable, une piste d'audit complète et une flexibilité pour s'adapter à des scénarios uniques (via le scripting et les plugins). Qu'il s'agisse de suivre un budget domestique ou les finances d'une startup, Beancount offre une boîte à outils pour le faire avec précision et transparence.

Communauté et activité de développement

Beancount dispose d'une communauté dédiée et d'une histoire de développement qui reflète sa nature open source, de niche mais passionnée. Voici les points clés concernant sa communauté, ses mainteneurs et les projets connexes :

  • Maintenance du projet : L'auteur principal de Beancount est Martin Blais, qui a initié le projet vers 2007 et l'a guidé à travers de multiples versions. Le développement a longtemps été un effort solitaire (mis à part les contributions de correctifs de la communauté). La philosophie de Martin était de construire un outil de comptabilité "utile pour moi d'abord, ainsi que pour les autres, de la manière la plus simple et la plus durable". Cette motivation personnelle a maintenu le projet comme une œuvre d'amour. En 2025, Martin Blais est toujours le mainteneur principal (son nom apparaît sur les commits et il répond aux questions sur la liste de diffusion/le suivi des problèmes), mais l'écosystème autour de Beancount compte de nombreux autres contributeurs dans leurs projets respectifs.

  • GitHub et dépôts : Le code source est hébergé sur GitHub sous le dépôt beancount/beancount. Le projet est sous licence GPL-2.0 et a attiré un nombre modeste de contributeurs au fil des ans. Mi-2024, Beancount Version 3 a été officiellement publiée comme la nouvelle branche stable. Cette version a impliqué la séparation de certains composants : par exemple, le dépôt beangulp (pour les importateurs) et le dépôt beanquery (pour l'outil de requête) font désormais partie de l'organisation GitHub beancount, maintenus de manière quelque peu indépendante. Le dépôt principal de Beancount se concentre sur le moteur comptable principal et l'analyseur de fichiers. En 2025, le GitHub de Beancount montre des discussions actives sur les problèmes et un développement continu – bien que le volume ne soit pas élevé, les problèmes et les requêtes de tirage (pull requests) arrivent au compte-gouttes, et des mises à jour occasionnelles sont effectuées pour corriger des bogues ou affiner des fonctionnalités.

  • Développement de Fava : Fava, l'interface web, a commencé comme un projet distinct (créé par Dominic Aumayr, qui en a déposé le copyright en 2016). Il a sa propre communauté de contributeurs et est également sur GitHub sous beancount/fava. Les mainteneurs et contributeurs de Fava (par exemple Jakob Schnetz, Stefan Otte, et d'autres ces dernières années) ont activement amélioré l'interface, avec des versions tous les quelques mois. Le chat Gitter de Fava (lié sur la documentation de Fava) et le suivi des problèmes GitHub sont des lieux où les utilisateurs et les développeurs discutent des nouvelles fonctionnalités ou des bogues. Le projet accueille les contributions, comme en témoigne une note dans le CHANGELOG remerciant plusieurs membres de la communauté pour leurs PRs. L'alignement étroit de Fava avec le développement de Beancount (tel que l'ajout rapide du support pour Beancount v3 et la nouvelle syntaxe beanquery) indique une bonne collaboration entre les deux projets.

  • Listes de diffusion et forums : Beancount dispose d'une liste de diffusion officielle (précédemment sur Google Groupes, intitulée "Beancount" ou parfois discutée sur la liste générale de Ledger). Cette liste de diffusion est une mine d'informations – les utilisateurs posent des questions sur la modélisation de certains scénarios, signalent des bogues et partagent des astuces. Martin Blais est connu pour répondre sur la liste de diffusion avec des explications détaillées. De plus, la communauté plus large de la Comptabilité en Texte Brut se chevauche fortement. La liste de diffusion de Ledger CLI traite souvent des questions sur Beancount également, et il existe un forum sur plaintextaccounting.org ainsi qu'un subreddit r/plaintextaccounting où les sujets Beancount sont fréquemment abordés. Les utilisateurs sur ces plateformes discutent des comparaisons, partagent leurs configurations personnelles et aident les nouveaux venus. Le ton général de la communauté est très coopératif – les utilisateurs de Beancount aident souvent les utilisateurs de Ledger et vice versa, reconnaissant que tous ces outils ont des objectifs similaires.

  • Groupes de discussion : Outre les listes de diffusion, il existe des canaux de discussion comme le Slack/Discord Plaintext Accounting (organisé par la communauté) et le Gitter de Fava. Ce sont des moyens moins formels et plus en temps réel d'obtenir de l'aide ou de discuter de fonctionnalités. Par exemple, on peut se connecter sur Slack pour demander si quelqu'un a un importateur pour une banque spécifique. Il existe également un canal Matrix/IRC (historiquement #ledger ou #beancount sur IRC) où certains utilisateurs de longue date sont présents. Bien que moins peuplés que les communautés de logiciels grand public, ces canaux comptent des personnes bien informées qui peuvent souvent répondre à des questions comptables obscures.

  • Contributeurs et membres clés de la communauté : Quelques noms se distinguent dans la communauté Beancount :

    • "Redstreet" (Red S) : Un contributeur prolifique qui a écrit de nombreux plugins (comme beancount-balexpr, sellgains, et d'autres) et fournit souvent du support. Il maintient également un ensemble de scripts d'importation et un outil appelé bean-download pour récupérer des relevés.
    • Vasily M (Evernight) : Auteur de certains frameworks d'importation et plugins comme beancount-valuation, et des contributions à Fava concernant les investissements.
    • Stefano Zacchiroli (zack) : Un développeur Debian qui a créé le mode beancount pour Emacs et son propre dépôt de plugins. Il a également plaidé pour la comptabilité en texte brut dans les milieux universitaires.
    • Simon Michael : Bien que principalement le responsable de hledger, il gère plaintextaccounting.org qui inclut Beancount. Cette pollinisation croisée a contribué à faire connaître Beancount aux utilisateurs de Ledger/hledger.
    • Frank hell (Tarioch) : Contributeur des Tarioch Beancount Tools, un ensemble majeur d'importateurs et de récupérateurs de prix, en particulier pour les institutions européennes.
    • Siddhant Goel : Un membre de la communauté qui écrit des articles de blog sur Beancount (par exemple, son guide sur la migration vers la v3) et maintient certains importateurs. Ses articles de blog ont aidé de nombreux nouveaux utilisateurs.

    Ceux-ci et bien d'autres contribuent du code, de la documentation et de l'aide sur les forums, rendant l'écosystème dynamique malgré sa taille relativement modeste.

  • Statistiques GitHub et forks : Le dépôt GitHub de Beancount a accumulé quelques centaines d'étoiles (indiquant l'intérêt) et de forks. Les forks notables de Beancount lui-même sont rares – il n'y a pas de fork divergent bien connu qui essaie d'être "Beancount mais avec la fonctionnalité X". Au lieu de cela, lorsque les utilisateurs voulaient quelque chose de différent, ils ont soit écrit un plugin, soit utilisé un autre outil (comme hledger) plutôt que de forker Beancount. On pourrait considérer hledger comme une sorte de fork de Ledger (pas de Beancount) et Beancount lui-même comme une réinterprétation indépendante des idées de Ledger, mais au sein du dépôt de Beancount, il n'y a pas de grands projets de scission. La communauté s'est généralement regroupée autour du dépôt principal et l'a étendu via l'interface de plugin au lieu de fragmenter la base de code. Cela est probablement dû au fait que Martin Blais était ouvert aux contributions externes (sa documentation contient même une section reconnaissant les contributions et modules externes) et que l'architecture de plugin a rendu inutile le maintien d'un fork pour la plupart des nouvelles fonctionnalités.

  • Ressources communautaires : Il existe plusieurs ressources de haute qualité pour apprendre et utiliser Beancount, créées par la communauté :

    • La documentation Beancount sur GitHub Pages (et les Google Docs source que Martin maintient) – très complète, incluant la théorie comptable et comment Beancount l'implémente.

    • De nombreux articles de blog et notes personnelles – par exemple, LWN.net a publié un article "Counting beans… with Beancount", et de nombreux blogs personnels (tels que listés dans la section "Blog Posts" d'Awesome Beancount) partagent des expériences et des astuces. Ceux-ci contribuent à développer les connaissances et à attirer de nouveaux utilisateurs.

    • Conférences et présentations : Beancount a été présenté lors de meetups et de conférences (par exemple, une conférence PyMunich 2018 sur la gestion des finances avec Python/Beancount). De telles conférences présentent l'outil à un public plus large et suscitent souvent l'intérêt sur des forums comme Hacker News.

  • Projets connexes notables : Outre Fava, d'autres projets liés à Beancount ont leurs propres communautés :

    • Le site Plain Text Accounting – maintenu par Simon Michael, il regroupe des informations sur tous ces outils et dispose d'un forum où les gens partagent leur utilisation de divers outils, y compris Beancount.
    • Intégration d'outils financiers : Certains utilisateurs intègrent Beancount avec des outils de business intelligence ou des bases de données. Par exemple, un fil de discussion Google Groups détaille l'utilisation de PostgreSQL avec les données Beancount via des fonctions personnalisées. Bien que ce ne soit pas grand public, cela montre l'esprit expérimental de la communauté à repousser les capacités de Beancount (par exemple, pour gérer de très grands ensembles de données ou des requêtes complexes au-delà des fonctionnalités intégrées).

En résumé, la communauté de Beancount, bien que plus petite que celles des grands projets open source, est très engagée et compétente. Le projet bénéficie d'un flux constant d'améliorations et de canaux de support très utiles. L'éthos collaboratif (partage d'importateurs, écriture de plugins, réponse aux questions) signifie qu'un nouvel arrivant en 2025 peut s'appuyer sur un travail antérieur étendu et la sagesse de la communauté pour configurer son système comptable. Le développement est actif au sens de l'écosystème – versions de Fava, développement de plugins, etc. – même si les changements du cœur sont plus occasionnels. La croissance de l'écosystème (comme en témoigne la liste Awesome Beancount de dizaines d'outils) témoigne d'une communauté saine rendant Beancount toujours plus performant.

Développements récents et fonctionnalités à venir

En 2025, l'écosystème Beancount a connu des développements significatifs au cours des deux dernières années, et des

Comprendre les créances et les dettes dans Beancount

· 3 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Bonjour à tous ! Dans l'article de blog d'aujourd'hui, nous plongeons dans le monde de Beancount, un outil de comptabilité en partie double apprécié par beaucoup pour sa simplicité et sa puissance. Plus précisément, nous allons parler de deux concepts clés : les créances et les dettes.

Comprendre ces termes est crucial pour utiliser Beancount (ou tout système de comptabilité en partie double) efficacement. Mais ne vous inquiétez pas si vous êtes débutant - nous allons tout décortiquer, étape par étape !

Créances et Dettes : Les Bases

2023-05-30-receiveable-and-payable

En comptabilité, les « créances » et les « dettes » sont des termes utilisés pour suivre l'argent dû. Les « créances » désignent l'argent que d'autres vous doivent, tandis que les « dettes » désignent l'argent que vous devez à d'autres.

Prenons un exemple :

  1. Comptes Clients (A/R) : Supposons que vous possédez une librairie et qu'un client achète un livre à crédit. L'argent qu'il vous doit pour le livre est un compte client.

  2. Comptes Fournisseurs (A/P) : D'un autre côté, imaginez que vous commandez un nouvel ensemble de livres à un éditeur, mais que vous ne les payez pas d'avance. L'argent que vous devez à l'éditeur est un compte fournisseur.

Dans Beancount, ceux-ci sont généralement suivis via des comptes correspondants. Le principal avantage est que cela vous fournit une image claire et précise de votre situation financière à tout moment.

Mise en place des créances et des dettes dans Beancount

La structure de votre fichier Beancount peut être aussi simple ou complexe que vous le souhaitez. Pour les créances et les dettes, vous voudrez probablement créer des comptes distincts sous vos sections Actifs et Passifs.

Voici un exemple simple :

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

Suivi des Transactions

Côté bénéficiaire

Après avoir configuré vos comptes, vous pouvez suivre les transactions impliquant des créances et des dettes. Examinons un exemple :

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

Ici, vous ajoutez 100 $ à vos créances parce qu'un client vous doit ce montant. Simultanément, vous réduisez vos revenus du même montant pour maintenir l'équilibre (puisque vous n'avez pas encore réellement reçu l'argent).

Lorsque le client paiera finalement, vous l'enregistrerez comme ceci :

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

Côté payeur

Le même principe s'applique aux dettes, mais avec des signes inversés :

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

Et lorsque vous remboursez votre dette :

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

En Résumé

Les créances et les dettes sont au cœur de tout système comptable. En les suivant avec précision, vous obtenez une compréhension complète de votre santé financière.

Ce n'est qu'un point de départ, et Beancount est capable de bien plus. J'espère que cet article de blog vous aide à clarifier ces concepts importants. Comme toujours, bonne comptabilité !

Décortiquer un grand livre Beancount : une étude de cas pour la comptabilité d'entreprise

· 3 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Dans l'article de blog d'aujourd'hui, nous allons décortiquer un grand livre Beancount pour les entreprises, ce qui vous aidera à comprendre les subtilités de ce système de comptabilité en partie double en texte brut.

Décortiquer un grand livre Beancount : une étude de cas pour la comptabilité d'entreprise

Commençons par le code :

2023-05-22-business-template

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

Comprendre le code

  1. Ouverture des comptes : Le code commence par l'ouverture d'une série de comptes le 1970-01-01. Ceux-ci incluent un mélange de comptes d'actifs (Assets:Bank:Mercury et Assets:Crypto), un compte de capitaux propres (Equity:Bank:Chase), des comptes de revenus (Income:Stripe et Income:Crypto:ETH), et des comptes de dépenses (Expenses:COGS, Expenses:COGS:AmazonWebServices, Expenses:BusinessExpenses, et Expenses:BusinessExpenses:ChatGPT).

  2. Transactions : Il procède ensuite à l'enregistrement d'une série de transactions entre le 2023-03-01 et le 2023-05-18.

    • La transaction du 2023-05-14 représente un paiement de 17,49 $ à CONTABO.COM depuis Mercury Checking ••1234. Ceci est enregistré comme une dépense (Expenses:COGS:Contabo) et une déduction correspondante du compte Assets:Bank:Mercury.

    • De même, la transaction du 2023-05-11 représente un paiement de 14490,33 $ à Amazon Web Services depuis le même compte bancaire. Ceci est enregistré sous Expenses:COGS:AmazonWebServices.

    • La transaction du 2023-03-01 montre des revenus de STRIPE déposés sur Mercury Checking ••1234, totalisant 21230,75 $. Ceci est enregistré comme un revenu (Income:Stripe) et un ajout au compte bancaire (Assets:Bank:Mercury).

    • La dernière transaction du 2023-05-18 représente une transaction crypto impliquant 19 ETH d'un client. Celle-ci est suivie sous Assets:Crypto et Income:Crypto:ETH. Le {1 856,20 USD} indique le prix de l'ETH au moment de la transaction, tandis que le @@ 35267,8 USD spécifie la valeur totale de la transaction de 19 ETH.

Dans toutes les transactions, le principe de la comptabilité en partie double est maintenu, garantissant que l'équation Actifs = Passifs + Capitaux propres est toujours vérifiée.

Réflexions finales

Ce grand livre Beancount offre un système simple mais robuste pour le suivi des transactions financières. Comme le montre la dernière transaction, Beancount est suffisamment flexible pour prendre en compte des actifs non traditionnels comme les cryptomonnaies, ce qui témoigne de son utilité dans notre paysage financier de plus en plus numérique.

Nous espérons que cette analyse vous aidera à mieux comprendre la structure et les capacités de Beancount, que vous soyez un comptable expérimenté ou un débutant essayant de suivre vos finances personnelles. Restez à l'écoute pour notre prochain article de blog, où nous approfondirons les opérations avancées de Beancount.

Beancount : Aide-mémoire

· 2 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Exemple de nom de compte

Assets:US:BofA:Checking

cheatsheet-fr

Types de comptes

Assets          +
Liabilities -
Income -
Expenses +
Equity -

Devises et Marchandises

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

Directives

Syntaxe générale

YYYY-MM-DD <Directive> <Paramètres...>

Ouverture et clôture de comptes

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; Contraintes de devises

2015-04-23 close Assets:Checking

Déclaration de devises / marchandises (Facultatif)

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

Prix

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

Notes

2013-03-20 note Assets:Checking "Appelé pour demander le remboursement"

Documents

2013-03-20 document Assets:Checking "chemin/vers/relevé.pdf"

Transactions

2015-05-30 * "Description de cette transaction"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Compagnie de câble" "Facture de téléphone" #tag ˆlien
id: "TW378743437" ; Méta-données
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; Vous pouvez laisser un montant vide

Écritures

  ...    123.45 USD                             Simple
... 10 GOOG {502.12 USD} Avec coût unitaire
... 10 GOOG {{5021.20 USD}} Avec coût total
... 10 GOOG {502.12 # 9.95 USD} Avec les deux coûts
... 1000.00 USD @ 1.10 CAD Avec prix unitaire
... 10 GOOG {502.12 USD} @ 1.10 CAD Avec coût et prix
... 10 GOOG {502.12 USD, 2014-05-12} Avec date
! ... 123.45 USD ... Avec drapeau

Assertions de solde et ajustements

; Affirme le montant pour la devise donnée uniquement :
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; Insertion automatique de transaction pour satisfaire l'assertion suivante :
2015-06-01pad Assets:Checking Equity:Opening-Balances

Événements

2015-06-01 event "location" "New York, USA"
2015-06-30 event "address" "123 May Street"

Options

option "title" "Mon Grand Livre Personnel"

Autre

pushtag #voyage-au-perou
...
poptag #voyage-au-perou
; Les commentaires commencent par un point-virgule

La Magie de la Comptabilité en Texte Brut avec Beancount

· 6 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Découvrez la Magie de la Comptabilité en Texte Brut avec Beancount

Beancount.io banner

Introduction

2023-04-18-introduction-to-beancount

Bienvenue dans un monde où la comptabilité n'est plus une tâche intimidante. Aujourd'hui, nous vous présentons Beancount, un outil de comptabilité en texte brut puissant, flexible et intuitif. Beancount vous permet de prendre le contrôle de vos finances en offrant une approche transparente et simple pour gérer votre argent.

Dans ce guide complet, nous allons explorer les bases de Beancount, expliquer ses concepts fondamentaux et vous guider à travers ses fonctionnalités simples mais puissantes. À la fin de cet article, vous aurez une solide compréhension de Beancount et serez prêt à l'utiliser pour organiser et analyser votre vie financière.

Qu'est-ce que Beancount ?

Beancount est un système de comptabilité en texte brut open source créé par Martin Blais. Inspiré par le système Ledger de John Wiegley, Beancount vise à fournir une méthode robuste et fiable pour gérer les finances personnelles et des petites entreprises à l'aide de fichiers en texte brut. Avec Beancount, vous pouvez suivre vos revenus, dépenses, investissements et bien plus encore, en toute simplicité.

Pourquoi Beancount ?

La comptabilité en texte brut offre plusieurs avantages par rapport aux systèmes comptables traditionnels basés sur des feuilles de calcul ou des logiciels :

  • Transparence : Les fichiers Beancount sont lisibles par l'homme, ce qui facilite la compréhension et l'audit de vos données financières.
  • Flexibilité : Beancount peut être facilement personnalisé pour répondre à vos besoins spécifiques, et vous pouvez utiliser votre éditeur de texte et votre système de contrôle de version préférés pour gérer vos données financières.
  • Portabilité : Vos données financières sont accessibles sur n'importe quel appareil, et il est facile de les transférer entre systèmes ou de les partager avec d'autres.
  • Pérennité : Les fichiers en texte brut sont universellement compatibles, garantissant que vos données financières resteront accessibles, même à mesure que la technologie évolue.

Concepts Fondamentaux de Beancount

Pour utiliser Beancount efficacement, il est crucial de comprendre ses concepts fondamentaux :

  • Transactions : Les événements financiers, tels que les revenus, les dépenses ou les transferts entre comptes, sont enregistrés comme des transactions.
  • Comptes : Les transactions impliquent un ou plusieurs comptes, tels que les actifs, les passifs, les revenus ou les dépenses.
  • Comptabilité en partie double : Beancount applique la comptabilité en partie double, garantissant que chaque transaction a des débits et des crédits équilibrés.
  • Directives : Beancount utilise un ensemble de directives pour définir les transactions, les ouvertures de comptes et d'autres événements financiers.

Démarrer avec Beancount

Pour commencer à utiliser Beancount, suivez ces étapes simples :

  • Installer Beancount : Installez Beancount sur votre système en suivant les instructions d'installation fournies pour votre système d'exploitation.
  • Créer votre fichier Beancount : Créez un nouveau fichier en texte brut avec l'extension .beancount (par exemple, mes_finances.beancount).
  • Définir vos comptes : Utilisez la directive "open" pour définir les comptes que vous utiliserez dans vos transactions.
  • Enregistrer les transactions : Utilisez la directive "txn" pour enregistrer vos transactions financières.

Ou inscrivez-vous simplement sur https://beancount.io. Voici quelques exemples de comptabilité en texte brut -

Exemple 1 : Transaction de Base

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

Dans cet exemple, nous ouvrons deux comptes, Assets:Checking et Expenses:Groceries. Le 10 avril 2023, nous enregistrons une transaction pour l'achat de 50 $ d'épicerie. La transaction réduit le solde de Assets:Checking de 50 $ (débit) et augmente le solde de Expenses:Groceries de 50 $ (crédit).

Exemple 2 : Transaction de Revenus et Dépenses

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

Dans cet exemple, nous ouvrons trois comptes : Assets:Checking, Income:Salary et Expenses:Rent. Le 5 avril 2023, nous enregistrons une transaction de paiement de salaire de 2000 $. La transaction augmente le solde de Assets:Checking de 2000 $ (crédit) et diminue le solde de Income:Salary de 2000 $ (débit). Le 6 avril 2023, nous enregistrons une transaction de paiement de loyer de 1000 $. La transaction réduit le solde de Assets:Checking de 1000 $ (débit) et augmente le solde de Expenses:Rent de 1000 $ (crédit).

Exemple 3 : Transfert 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

Dans cet exemple, nous ouvrons deux comptes : Assets:Checking et Assets:Savings. Le 15 avril 2023, nous enregistrons une transaction pour transférer 500 $ du compte courant vers le compte d'épargne. La transaction réduit le solde de Assets:Checking de 500 $ (débit) et augmente le solde de Assets:Savings de 500 $ (crédit).

Ces exemples illustrent les concepts de base du système de comptabilité en partie double de Beancount. En enregistrant correctement les transactions, les utilisateurs peuvent maintenir des registres précis de leurs activités financières et générer des rapports pour obtenir des informations sur leur situation financière.

Générer des Rapports et Analyser les Données

Beancount est livré avec un ensemble d'outils puissants pour générer des rapports financiers, y compris des bilans, des comptes de résultat, et plus encore. Vous pouvez également utiliser Fava, une interface utilisateur web pour Beancount, pour visualiser et interagir avec vos données financières. https://beancount.io est construit sur Fava sous licence MIT.

Conclusion

Adoptez la puissance et la simplicité de la comptabilité en texte brut avec Beancount. En comprenant ses concepts fondamentaux et en suivant les étapes décrites dans ce guide, vous serez en bonne voie pour gérer vos finances personnelles ou celles de votre petite entreprise avec facilité et précision. À mesure que vous vous familiariserez avec Beancount, vous pourrez explorer des fonctionnalités avancées et des personnalisations pour adapter le système à vos besoins uniques.

Que vous cherchiez à suivre vos dépenses, à planifier l'avenir ou à obtenir des informations sur vos habitudes financières, Beancount offre la flexibilité et la transparence nécessaires pour atteindre vos objectifs. Grâce à son approche conviviale, Beancount a le potentiel de révolutionner la façon dont vous gérez vos finances et de vous permettre de prendre le contrôle de votre avenir financier.

Maintenant que vous avez une base solide en Beancount, il est temps de vous lancer dans votre parcours de comptabilité en texte brut. Dites adieu aux feuilles de calcul fastidieuses et aux logiciels complexes, et bienvenue dans le monde de Beancount. Bonne comptabilité !

Introduction à Beancount.io

· 6 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Pourquoi la tenue de livres moderne est importante

Gérez-vous toujours vos investissements avec des feuilles de calcul ? Bien que les feuilles de calcul soient polyvalentes, elles peuvent devenir lourdes et sujettes aux erreurs à mesure que votre portefeuille d'investissement s'étoffe. Découvrez Beancount.io – une plateforme de suivi des investissements sophistiquée mais conviviale, conçue spécifiquement pour la gestion des portefeuilles d'actions et de cryptomonnaies. Conçu pour les ingénieurs et les minimalistes financiers, Beancount.io combine des fonctionnalités puissantes avec une interface intuitive pour simplifier votre expérience de suivi des investissements.

2019-09-07-introduction-to-beancount

Expenses

Income Statement

Balance Sheet

La comptabilité en partie double : le fondement de l'exactitude

Beancount.io est construit sur les principes de la comptabilité en partie double – une méthodologie éprouvée utilisée par les institutions financières du monde entier. Ce système assure une exactitude mathématique grâce à un concept simple mais puissant : chaque transaction financière doit s'équilibrer parfaitement.

En comptabilité en partie double, chaque transaction nécessite au moins deux écritures – un débit (+) et un crédit (-) – sur différents comptes. Ce système de vérification intégré rend pratiquement impossible l'enregistrement de transactions déséquilibrées, garantissant ainsi que vos registres financiers restent exacts et 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

Comme vous pouvez le voir dans les deux exemples ci-dessus, chaque transaction doit respecter l'équation comptable.

Assets = Liabilities + Equity(aka Net Assets)

Nous avons utilisé la syntaxe Beancount de Martin Blais et le projet web Fava de Jakob Schnitzer pour construire ce site web. Et il vous alertera si une transaction comporte des lignes dont la somme n'est pas nulle.

Alerte d'erreur

Maintenant, vous comprenez comment nous assurons la justesse du grand livre. Mais vous vous demandez peut-être ce que sont ces "comptes" ?

Comprendre les comptes : l'analogie du seau d'eau

Considérez vos comptes financiers comme un système de seaux d'eau interconnectés, où l'argent circule comme de l'eau entre eux. Cette analogie rend la comptabilité en partie double intuitive : lorsque vous transférez de l'argent d'un compte à un autre, c'est comme verser de l'eau d'un seau à un autre – le montant total d'eau (argent) dans le système reste constant.

Beancount.io introduit cinq types de comptes.

  1. Revenus — Leur montant est toujours négatif ou au débit. C'est parce que vous gagnez de l'argent, et que l'argent est débité du compte "Revenus" et crédité sur vos "Actifs".
  2. Dépenses — Leur montant est toujours positif ou au crédit. C'est parce que vous dépensez de l'argent, et que l'argent circule des "Actifs" ou "Passifs" vers les "Dépenses".
  3. Passifs — Leur montant est positif ou nul. Vos dettes de carte de crédit en sont un bon exemple, qui augmentent et diminuent par cycles.
  4. Actifs — Leur montant est positif ou nul. Votre argent liquide ou vos maisons ont toujours une certaine valeur.
  5. Capitaux propres — Vos actifs nets. Le système les calculera automatiquement pour vous. Capitaux propres = Actifs - Passifs et cela reflète votre richesse.

Vous pouvez maintenant ouvrir vos comptes personnalisés avec les mots-clés ci-dessus :

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

Suivi avancé des investissements avec les actifs

Beancount.io excelle dans le suivi des investissements diversifiés, des actions aux cryptomonnaies. Explorons comment il gère les scénarios d'investissement complexes. Par exemple, voici comment vous enregistreriez l'achat de 10 Bitcoins à 100 $ chacun en 2014 :

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

Et puis trois ans plus tard, vous les vendez (initialement avec un coût de 100 $ par unité annoté avec {100.00 USD}) au prix de 10 000 $ par unité annoté avec @ 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

Ou la même transaction avec @@ 20,000.00 USD signifie qu'au prix de 20 000 $ au 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 somme de toutes les lignes de la transaction, y compris -2 BTC {100.00 USD}, est toujours, comme toujours, nulle.

L'étiquette de coût {100.00 USD} est importante car vous auriez pu acheter le même actif à des coûts différents.

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

Si vous souhaitez simplifier le processus, vous pouvez configurer le compte au début avec FIFO ou LIFO. FIFO signifie "premier entré, premier sorti", tandis que LIFO signifie "dernier entré, premier sorti". Aux États-Unis, l'IRS utilise la méthode FIFO pour calculer votre P&L (profits et pertes) et vos impôts en conséquence.

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

Et puis lorsque vous le vendez en abrégé comme -2 BTC {}, Beancount appliquera automatiquement la stratégie FIFO et vendra l'actif le plus ancien.

Démarrer 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 en texte brut avec de puissants outils de visualisation, 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 - Gratuit pendant notre période promotionnelle !