Passer au contenu principal

Le cycle comptable, style Beancount

· 9 min 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é !