Passer au contenu principal

4 articles tagués avec "logiciel financier"

Voir tous les tags

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

· 41 min 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

Réintroduction du Plan Gratuit pour les Nouveaux Clients

· 2 min de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Nous sommes ravis d'annoncer qu'à partir du 1er mai 2023, nous réintroduirons le plan gratuit pour les nouveaux clients. Cette décision fait suite à des améliorations significatives apportées à notre plateforme et à l'optimisation de nos ressources afin de mieux servir tous nos clients, qu'ils soient gratuits ou payants.

Présentation du Nouveau Plan Gratuit pour les Nouveaux Clients

Le plan gratuit a toujours été une partie essentielle de notre vision visant à fournir un service accessible et convivial pour tous. Nous sommes convaincus que les changements que nous avons apportés au cours des derniers mois nous permettront d'offrir une expérience encore meilleure à nos utilisateurs tout en maintenant la qualité de service pour nos clients du plan Pro.

2023-04-28-début-du-service-pour-les-utilisateurs-gratuits

Les nouveaux clients qui s'inscrivent après le 1er mai 2023 auront accès au plan Gratuit.

Votre soutien et votre fidélité ont été essentiels pour rendre cette réintroduction du plan gratuit financièrement possible. C'est grâce à vos contributions que nous avons pu investir dans notre infrastructure et nos systèmes de support, nous assurant de pouvoir continuer à fournir le service de haute qualité que vous attendez tout en élargissant l'accès à notre plateforme pour les nouveaux utilisateurs. Votre engagement envers notre vision nous a aidés à grandir et à évoluer, et nous sommes vraiment reconnaissants de votre partenariat continu. Ensemble, nous bâtissons une communauté florissante et donnons aux utilisateurs de tous horizons les moyens d'atteindre leurs objectifs.

Si vous avez des questions ou des préoccupations, n'hésitez pas à nous contacter. Nous sommes toujours là pour écouter vos commentaires et résoudre tout problème que vous pourriez rencontrer. Merci pour votre soutien continu, et nous sommes impatients de vous offrir le meilleur service possible.

La Magie de la Comptabilité en Texte Brut avec Beancount

· 6 min 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

· 5 min 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 !