Présentation de la communauté : Configurations Beancount du monde réel
Configurations Beancount du monde réel
Introduction
Beancount est un système de comptabilité en texte brut polyvalent, et ses utilisateurs l’ont adapté pour répondre à un large éventail de besoins réels. Dans cette présentation de la communauté, nous présentons des exemples anonymisés de la façon dont différentes personnes structurent et utilisent leurs flux de travail comptables Beancount – des pigistes et propriétaires de petites entreprises aux passionnés de finances personnelles. Ces exemples mettent en évidence des pratiques créatives telles que le marquage des transactions avec des métadonnées, l’automatisation des mises à jour du grand livre avec des scripts personnalisés, la gestion de plusieurs devises, la budgétisation et la prévision, et l’extension de Beancount avec des plugins ou des intégrations (tels que l’interface web Fava). L’objectif est d’inspirer et d’informer les comptables, les développeurs et les utilisateurs avertis en matière de finances sur ce qui est possible avec le système flexible de Beancount.
Exemple d’interface Fava : De nombreux utilisateurs de Beancount s’appuient sur Fava – un tableau de bord web open source – pour visualiser leurs finances. Fava peut transformer un grand livre Beancount en rapports et graphiques interactifs. Par exemple, la capture d’écran ci-dessus montre un compte de résultat sous forme d’arborescence décomposant les revenus et les dépenses par catégorie, donnant un aperçu rapide de l’origine et de la destination de l’argent. Les utilisateurs peuvent filtrer cette vue par période, compte ou balises pour examiner des projets ou des périodes spécifiques. De telles visualisations aident à rendre les données en texte brut plus accessibles, permettant aux utilisateurs de repérer les tendances et les anomalies en un coup d’œil.
Chaque configuration Beancount est unique, mais des thèmes communs émergent. Ci-dessous, nous plongeons dans trois scénarios – un pigiste, un propriétaire de petite entreprise et un utilisateur intensif de finances personnelles – pour voir comment ils organisent leurs comptes et exploitent les fonctionnalités de Beancount. Tous les détails personnels ont été supprimés ou généralisés, en se concentrant uniquement sur les techniques et les configurations.
Pigiste : Balisage de projet et suivi des factures
Notre premier exemple est celui d’un consultant pigiste qui utilise Beancount comme épine dorsale de ses finances d’entreprise. Le grand livre de ce pigiste est organisé pour suivre les revenus et les dépenses par projet et pour gérer les factures de plusieurs clients. Il a créé des comptes dédiés pour les comptes clients (A/R) sous Actifs pour chaque client, ce qui permet de séparer qui doit quoi. Lorsqu’il termine un projet et facture un client, il enregistre une transaction débitant le compte A/R du client et créditant un compte de revenus. Par exemple, une nouvelle facture pourrait être enregistrée comme suit :
2025-08-01 * "Projet X terminé" ^INV-0001
Actifs:ComptesClients:ClientA 5 000 USD
Revenus:Consulting -5 000 USD
Ici, la notation ^INV-0001 est un lien (une fonctionnalité de métadonnées intégrée à Beancount) utilisée pour baliser cette transaction avec le numéro de facture. Lorsque le client paie une partie ou la totalité de cette facture, la transaction de paiement comprend le même lien ^INV-0001, qui relie les deux entrées. Cette liaison facilite l’affectation des paiements à des factures spécifiques et la visualisation des soldes impayés. Comme l’a expliqué un membre de la communauté, vous pouvez utiliser de telles balises ou de tels liens pour marquer les paiements partiels – par exemple, un paiement de 20 – à la fois sur l’entrée de facture et sur l’entrée de paiement. En interrogeant le grand livre pour ce lien de facture, le pigiste peut instantanément voir quelle part de la facture a été payée et ce qui reste ouvert.
En plus des liens, le pigiste utilise fortement les balises pour la catégorisation. Les balises dans Beancount sont des étiquettes préfixées par # qui peuvent marquer les transactions pour un filtrage ultérieur. Cet utilisateur balise chaque dépense facturable à un client avec le code du projet, comme #ProjetX, et balise les dépenses remboursables avec #Remboursable. Par exemple, s’il achète des billets d’avion pour un projet client, l’entrée de dépense peut inclure #ProjetX #Remboursable. Cette pratique permet de générer des rapports par projet ou par client en filtrant sur les balises. Après un projet, le pigiste peut exécuter une requête pour lister toutes les dépenses #Remboursable pour ce projet et s’assurer qu’il facture le client pour chacune d’entre elles. Un utilisateur de Beancount a noté que le balisage des dépenses de voyage professionnel a permis de repérer celles qui n’étaient pas remboursées – idéalement, les dépenses d’un voyage professionnel se soldent par 0 $ lorsque tous les remboursements du client sont reçus. Cela met en évidence la façon dont le balisage, combiné aux capacités de requête de Beancount, offre une couche de surveillance supplémentaire pour les pigistes qui gèrent les dépenses facturables.
Pour gérer l’état des paiements en suspens, notre pigiste utilise une convention spéciale pour les créances en suspens. Il applique la balise #NONRÉSOLU à toute transaction de facture qui n’a pas encore été entièrement payée. Beancount (et Fava) n’impose pas cette balise, mais il s’agit d’un modèle établi par la communauté pour marquer les transactions en attente de règlement. Par exemple, jusqu’à ce que le client A paie les 5 000 $ complets, la transaction de facture ci-dessus inclurait #NONRÉSOLU. En filtrant sur cette balise, le pigiste peut lister toutes les factures ouvertes à tout moment. Une fois le paiement reçu et appliqué (la transaction A/R correspondante est saisie), il supprime ou ignore la balise #NONRÉSOLU, et le compte de créances pour ce client s’équilibre à zéro. Ce système garantit qu’aucune facture ne « passe entre les mailles du filet ». Il s’agit essentiellement d’un rapport d’ancienneté effectué en texte brut – si un A/R reste non nul et balisé comme non résolu, il nécessite une attention particulière.
Étant donné que les pigistes traitent souvent avec plusieurs méthodes de paiement et parfois plusieurs devises, la configuration de Beancount s’adapte à cela de manière transparente. Dans notre exemple, le consultant pourrait facturer certains clients en USD et d’autres en EUR. La gestion multidevise est simple dans Beancount : tout compte peut détenir plusieurs marchandises (les devises sont traitées comme des marchandises). Le pigiste peut soit conserver des sous-comptes distincts pour chaque devise (par exemple, Actifs:ComptesClients:ClientA:EUR vs ...:USD), soit simplement enregistrer les transactions dans la devise appropriée sous le même compte. Beancount suivra automatiquement les soldes par devise. Un utilisateur a souligné à quel point il est agréable que « Beancount puisse suivre les quantités dans n’importe quelle devise, que ce soit l’USD ou un symbole boursier », le tout dans un seul grand livre. Notre pigiste en profite en enregistrant les taux de change avec des directives price chaque fois qu’il doit convertir des devises pour la production de rapports. Il peut générer un rapport de revenus converti dans sa devise nationale une fois qu’il a saisi les taux de change ou les prix du marché périodiques.
Enfin, ce pigiste intègre son grand livre Beancount avec des outils pratiques pour rationaliser son flux de travail. Par exemple, il joint des copies PDF de chaque facture au grand livre en utilisant les métadonnées de document. Une entrée de paiement de facture typique pourrait ressembler à ceci :
2025-08-30 * "ClientA" "Paiement pour INV-0001" ^INV-0001
Actifs:Banque:Chèque 5 000 USD
Actifs:ComptesClients:ClientA -5 000 USD
document: "Factures/ClientA/INV-0001.pdf"
La directive ou les métadonnées document de Beancount permettent d’associer des fichiers à des entrées, et Fava affichera un lien hypertexte pour ces pièces jointes. Cela signifie que le pigiste (ou son comptable) peut cliquer directement depuis le rapport du grand livre pour consulter le PDF de la facture originale, assurant ainsi un accès facile à la documentation de sauvegarde. Le pigiste utilise également les rapports de Fava pour surveiller son entreprise : en filtrant le compte de résultat ou le bilan par client, il peut voir la rentabilité par client et vérifier que tous les projets sont payés. En résumé, le système Beancount de ce pigiste démontre une utilisation intensive du balisage et de la liaison pour gérer la comptabilité basée sur des projets. Il transforme un grand livre en texte brut en un outil de comptabilité freelance robuste, avec une visibilité claire sur les dépenses du projet, les revenus multidevises et l’état des factures.
Pratiques clés dans la configuration Freelancer : Utilisation de balises pour regrouper les transactions par projet ou par objectif, liaison des factures et des paiements avec des identifiants uniques, marquage des créances en suspens avec une balise #NONRÉSOLU, jointure des documents de facture aux entrées du grand livre pour référence, et exploitation de la prise en charge multidevise de Beancount pour facturer les clients internationaux sans tracas. Tout cela est réalisé avec des entrées en texte brut plus quelques outils d’assistance, mettant en valeur la puissance des métadonnées dans Beancount.
Petite entreprise : Automatisation et comptabilité multidevise
Ensuite, nous examinons un propriétaire de petite entreprise – plus précisément un fondateur de startup – qui a adopté Beancount pour gérer les livres de l’entreprise. Les petites entreprises ont des besoins similaires à ceux des pigistes (factures, dépenses, multidevise), mais souvent à plus grande échelle et avec un plus grand accent sur l’automatisation, la cohérence et la collaboration. Dans ce cas, le fondateur était techniquement compétent et a créé un flux de travail Beancount hautement automatisé pour minimiser la tenue de livres manuelle. Après avoir évalué les logiciels de comptabilité traditionnels comme QuickBooks, il a opté pour l’approche en texte brut de Beancount afin de conserver le contrôle total des données. Au cours de quelques années, il a développé de manière itérative des outils personnalisés pour réaliser un processus de tenue de livres automatisé à 95 %.
Importations et rapprochements automatisés : L’un des premiers défis a été d’importer les transactions de diverses sources (comptes bancaires, cartes de crédit, processeurs de paiement) dans le grand livre. Au lieu de saisir chaque transaction, cet utilisateur a configuré des scripts d’importation pour extraire et traduire les données au format Beancount. Il a écrit des importateurs Python personnalisés pour le format CSV ou API de chaque institution financière, de sorte qu’avec une seule commande, il puisse extraire de nouvelles transactions et les ajouter au grand livre. Par exemple, en utilisant le framework bean-extract de Beancount, le fondateur peut exécuter un script qui analyse un dossier de téléchargements pour rechercher de nouveaux relevés et les affiche sous forme d’entrées Beancount. Un autre utilisateur, Rhyd Lewis, a décrit une configuration similaire où il a des scripts d’importation distincts pour chaque banque et peut les invoquer via une simple commande (en utilisant un Justfile) pour mettre à jour son grand livre. Notre propriétaire de petite entreprise fait de même – toutes les transactions bancaires, les glissements de carte de crédit et même les transactions PayPal ou Stripe sont automatiquement extraits et ajoutés aux livres, catégorisés avec les comptes appropriés.
Pour garantir l’intégrité des données, même lorsque ces entrées sont ajoutées automatiquement, ils utilisent également les outils de validation et les plugins de Beancount. Par exemple, le plugin beancount.plugins.noduplicates est activé pour empêcher l’importation accidentelle de la même transaction à deux reprises, et beancount.plugins.nounused signale tous les comptes qui n’ont pas d’entrées (utile pour nettoyer les comptes obsolètes). Le fondateur utilise également un formateur (comme bean-format ou l’outil communautaire beancount-black) pour conserver un style cohérent du fichier du grand livre. Cela est important car avec de nombreuses modifications automatisées, avoir un style uniforme facilite les diffs et les audits. En fait, le fondateur conserve le grand livre dans un référentiel Git, traitant les mises à jour du grand livre comme des modifications de code. Chaque nouveau lot de transactions importées devient un commit Git, et ils peuvent examiner les diffs pour voir ce qui a changé. Dans une capture d’écran, ils montrent un historique Git où une transaction par carte de crédit pour « Costco » passe d’un état en attente à un état effacé dans le grand livre, le tout sans intervention manuelle. Le contrôle de version fournit une piste d’audit : ils peuvent voir exactement quand une transaction a été ajoutée ou modifiée et même annuler les modifications si quelque chose a été importé incorrectement. C’est un excellent exemple de l’intégration des meilleures pratiques de développement logiciel (comme le contrôle de source) dans les registres comptables.
Multidevise et transactions internationales : Les petites entreprises effectuent souvent des transactions dans plusieurs devises – par exemple, une startup peut avoir des dépenses en USD mais aussi recevoir des paiements en EUR ou détenir un compte bancaire en GBP. Notre société de présentation utilise les fonctionnalités multidevise de Beancount pour consolider tout cela dans un seul grand livre. Ils ont ouvert des comptes distincts pour chaque devise (par exemple, Actifs:Banque:Chèque:USD et Actifs:Banque:Chèque:EUR), ce qui est une approche courante. Cependant, même si différentes devises partagent un compte, Beancount suivra séparément le solde de chaque devise et exigera que les transactions s’équilibrent par devise. Le fondateur exécute fréquemment des rapports d’évaluation pour voir les soldes totaux de la société convertis dans la devise de base. Étant donné que Beancount prend en charge les recherches de prix, il a configuré des flux de prix quotidiens pour les taux de change (et les cours des actions pour tous les investissements) à l’aide de l’outil bean-price ou d’un plugin. Le résultat est qu’à tout moment, il peut générer un bilan en, par exemple, USD qui inclut le compte EUR traduit au dernier taux. Les membres de la communauté soulignent que la gestion de plusieurs devises dans la comptabilité de style grand livre est simple – il suffit d’ajouter des transactions dans la devise donnée et d’enregistrer les taux de change au besoin. Par exemple, un utilisateur a partagé un exemple de conversion d’USD en EUR en CAD par le biais de comptes intermédiaires comme moyen de gérer les conversions de devises dans Beancount. Dans notre cas, la petite entreprise ne convertit pas nécessairement les devises dans les transactions (elle les conserve dans la devise d’origine), mais utilise des rapports pour consolider. Cette flexibilité a été cruciale à mesure que la startup s’est développée à l’échelle mondiale.
Scripts et extensions personnalisés : Tout ce dont le fondateur avait besoin n’était pas disponible immédiatement, alors il a étendu Beancount avec des plugins personnalisés. Au fil du temps, il a fini par écrire une bibliothèque d’analyseur, un outil de formatage et un importateur de transactions basé sur des règles, en publiant bon nombre d’entre eux sous forme de packages open source. Par exemple, il a créé un moteur d’importation basé sur des règles qui utilise une configuration YAML pour catégoriser automatiquement les transactions. Un extrait de cette configuration montre comment des bénéficiaires ou des descriptions spécifiques (comme « Comcast » ou « PG&E ») sont mappés à certains comptes de dépenses et narrations, de sorte que lorsqu’ils apparaissent dans un flux bancaire, l’entrée Beancount correcte est générée sans édition manuelle. Il s’agit essentiellement d’une automatisation personnalisée pour appliquer des règles de tenue de livres (pour les services publics, les abonnements, etc.) à la volée. Un autre plugin garantit que le grand livre reste toujours équilibré et formaté. Tous ces outils s’exécutent dans le cadre du flux de travail du fondateur chaque fois que de nouvelles données sont ingérées. Le résultat est un grand livre qui « se met à jour tout seul » avec un minimum d’intervention, ce qui, selon le fondateur, lui apporte une « joie pure » en tant que développeur obsédé par l’automatisation.
La sécurité et l’accessibilité étaient également des préoccupations. Le fondateur voulait que son équipe financière (et même son conjoint, agissant comme surveillant) puisse consulter facilement les livres. Pour cela, il a mis en place un déploiement privé de Fava dans le cloud. Chaque fois qu’il envoie un nouveau commit de grand livre au référentiel Git privé, un pipeline CI (utilisant GitHub Actions et AWS Elastic Beanstalk) déploie une instance Fava mise à jour. L’interface web est protégée par un mot de passe (à l’aide d’un proxy Nginx avec authentification de base), de sorte que seules les personnes autorisées peuvent la voir. De cette façon, les derniers états financiers sont toujours disponibles via un tableau de bord de navigateur, sans avoir besoin d’installer quoi que ce soit localement. Le schéma d’architecture ci-dessous illustre cette configuration : le fichier Beancount et la configuration nécessaire sont regroupés dans une image Docker avec Fava, et servis sur AWS, avec Cloudflare devant pour la sécurité.
Automatisation de Beancount dans le cloud : Ce schéma montre un pipeline de déploiement pour un grand livre Beancount + Fava. L’utilisateur met à jour le fichier de grand livre localement et envoie à Git ; un conteneur Docker (y compris Fava et Nginx pour l’authentification) est construit et déployé sur un serveur AWS Beanstalk, et Cloudflare agit comme un proxy. Le résultat est un portail web sécurisé où les données financières de la petite entreprise sont accessibles de n’importe où (par le propriétaire ou l’équipe) en temps réel. Cette configuration avancée montre comment une petite entreprise peut intégrer Beancount avec des outils cloud modernes pour atteindre la commodité sans renoncer à la propriété des données.
Dans l’utilisation quotidienne, l’accent du propriétaire de la petite entreprise est mis sur la gestion des exceptions plutôt que sur la saisie des données. Chaque mois, il examine brièvement les transactions importées automatiquement (à l’aide des diffs Git ou de la vue journal de Fava) pour repérer les entrées non catégorisées ou incorrectes. Il utilise également les assertions de solde de Beancount pour rapprocher les comptes. Par exemple, après avoir saisi toutes les transactions de juin, il pourrait ajouter une vérification de solde pour confirmer que le solde de fin du compte bancaire correspond au relevé ; sinon, Beancount affichera une erreur, indiquant que quelque chose est manquant ou mal saisi. Cela garantit que les livres restent exacts.
Pratiques clés dans la configuration de la petite entreprise : Automatisation lourde grâce à des importateurs et des scripts personnalisés (rendant le grand livre « 95 % automatique »), utilisation du contrôle de version pour les pistes d’audit et la collaboration, comptabilité multidevise avec des flux de prix pour l’évaluation, et déploiement de Fava pour un accès facile et partageable aux rapports financiers. Le scénario de la petite entreprise montre jusqu’où Beancount peut être poussé avec un effort d’ingénierie – transformant la comptabilité en un pipeline largement automatisé tout en préservant la transparence et la flexibilité. Même si l’on n’est pas programmeur, bon nombre de ces avantages peuvent être obtenus en utilisant des plugins communautaires (pour le formatage, la détection des doublons, etc.) et en adoptant le flux de travail en texte brut qui encourage les examens et les sauvegardes fréquents.
Passionné de finances personnelles : Budgétisation et analyse personnalisée
Notre dernière présentation est celle d’un passionné de finances personnelles – quelqu’un qui utilise Beancount pour gérer les finances et les investissements de son ménage avec un niveau de détail élevé. Cet utilisateur traite ses finances personnelles avec la rigueur d’un comptable et la curiosité d’un analyste de données. Le résultat est un grand livre Beancount qui non seulement suit chaque centime, mais sert également de base à la budgétisation, à la prévision et aux expériences analytiques.
Organisation du grand livre personnel : De nombreuses personnes commencent avec un seul fichier Beancount pour tous leurs comptes, et cet passionné ne fait pas exception. Il maintient un grand livre principal (par exemple, main.beancount) qui comprend tous les comptes (comptes bancaires, cartes de crédit, prêts, portefeuilles d’investissement, etc.) et les transactions. Au fil du temps, il a introduit une certaine structure en divisant les sections – par exemple, il a un fichier pour l’ouverture/la fermeture de comptes et des fichiers distincts pour les transactions annuelles – qui sont inclus dans le fichier principal. Cette organisation modulaire facilite la navigation dans des années de données (on peut archiver les années anciennes dans des fichiers séparés) tout en étant logiquement un seul grand livre. Un autre utilisateur personnel sur le forum de la communauté a décrit une disposition similaire : un fichier principal qui inclut d’autres par catégorie (par exemple, Revenus.beancount, Dépenses.beancount, Investissements.beancount). Notre passionné garde les choses simples pour l’instant : un fichier synchronisé sur tous les appareils.
En parlant de synchronisation, comme il s’agit de finances personnelles, cet utilisateur veut saisir les transactions où qu’elles se trouvent. Il utilise une application mobile appelée Beancount Mobile pour ajouter rapidement des entrées en déplacement (par exemple, enregistrer une dépense en espèces directement au magasin). Le fichier de grand livre est partagé via une synchronisation cloud (Syncthing, dans ce cas) afin que son téléphone, son ordinateur portable et un VPS (serveur) aient tous la dernière copie. Sur un ordinateur, il préfère utiliser Emacs avec beancount-mode pour une édition confortable avec la mise en évidence de la syntaxe. Cette configuration garantit que, qu’il soit à son bureau ou en déplacement, il peut enregistrer les transactions immédiatement et éviter d’oublier quoi que ce soit. C’est un excellent exemple d’adaptation des outils technologiques pour la commodité personnelle – en construisant efficacement une alternative auto-hébergée aux applications de budgétisation commerciales.
Balisage et métadonnées pour un suivi granulaire : Cet utilisateur profite des balises pour ajouter une deuxième dimension à ses données au-delà du plan comptable. Pour les catégories de budgétisation régulières, les comptes suffisent (ils ont des comptes comme Dépenses:Épicerie, Dépenses:Loyer, etc.), mais pour les thèmes transversaux comme les événements ou les objectifs, ils utilisent des balises. Par exemple, ils balisent toutes les transactions liées à leur projet de rénovation domiciliaire avec #RénovationDomicile, qu’il s’agisse d’acheter du bois d’œuvre dans une quincaillerie (dépenses) ou de recevoir une remise d’un fabricant (revenus). De cette façon, ils peuvent générer un rapport du coût total du projet facilement sans que ces dépenses soient cloisonnées sous différents comptes. Un utilisateur Reddit a démontré cette approche en balisant des dépenses comme #amélioration-garage ou #amélioration-éclairage pour des projets domiciliaires, ce qui rend trivial le filtrage et la somme de celles-ci via les requêtes de Beancount. Notre passionné fait de même pour les vacances (#VoyageItalie2025), les achats importants et les événements ponctuels.
Les métadonnées (paires clé-valeur sur les transactions) sont également utilisées à des fins spécifiques. Par exemple, ils ajoutent des métadonnées location: ... aux dépenses importantes pour suivre où ils ont dépensé l’argent, ou une note: ... pour un contexte supplémentaire au-delà du bénéficiaire et de la narration. Dans quelques cas, ils ont même créé des champs de métadonnées personnalisés pour aider à la prévision. Un exemple est l’ajout de budget: X et fréquence: mensuelle à certaines dépenses récurrentes – une idée inspirée d’une discussion sur la liste de diffusion de Beancount où un utilisateur stockait des projections budgétaires dans les métadonnées pour chaque dépense. Ces champs de métadonnées n’affectent pas le cœur de Beancount, mais le passionné a écrit un petit script Python qui les lit et compare les dépenses réelles au budget projeté. Il s’agit d’une alternative à l’utilisation des budgets intégrés de Fava (décrits ci-dessous), montrant comment les métadonnées peuvent être pliées à la volonté de l’utilisateur. Comme l’a noté le créateur de Beancount, les métadonnées sont « uniquement là pour vous [à utiliser dans des scripts personnalisés] – Beancount les analyse mais les ignore » par lui-même. En bref, cet utilisateur n’a pas peur d’étendre le grand livre avec des informations supplémentaires pour faciliter son analyse personnelle.
Budgétisation avec Beancount : L’un des principaux objectifs de cet utilisateur est de respecter un budget mensuel. Il utilisait auparavant une application de budgétisation (YNAB) et voulait reproduire certains de ses concepts de budgétisation par enveloppe. Il existe plusieurs façons de faire de la budgétisation dans Beancount, mais la plus simple est d’utiliser les directives budgétaires de Fava. Notre passionné ajoute des entrées budget dans le grand livre comme ceci :
2025-01-01 custom "budget" Dépenses:Épicerie "monthly" 500 USD
2025-01-01 custom "budget" Dépenses:Restaurants "monthly" 200 USD
2025-01-01 custom "budget" Dépenses:Voyages "yearly" 3000 USD
Chaque ligne définit un budget pour un compte (catégorie) sur une période. Fava affiche ensuite des barres de budget par rapport aux dépenses réelles dans l’interface web, permettant à l’utilisateur de voir, par exemple, qu’il a dépensé 480 USD en épicerie ce mois-ci sur les 500 budgétés, et peut-être 220 en restaurants (au-dessus du budget). Le passionné vérifie régulièrement les rapports Compte de résultat et Dépenses de Fava, qui affichent à la fois les totaux mensuels et les objectifs budgétaires. Fava regroupe commodément les budgets quotidiens/hebdomadaires dans les périodes appropriées. En utilisant l’interface utilisateur de Fava pour cela, l’utilisateur n’a pas besoin d’une feuille de calcul distincte pour la budgétisation ; tout est intégré. (Ils ont également expérimenté un système d’« enveloppe » plus automatisé en transférant des fonds vers des comptes fictifs au début de chaque mois, comme suggéré sur les forums, mais ont trouvé les directives budgétaires personnalisées plus simples à maintenir.)
Pour la prévision, au-delà des budgets, ils gardent un œil sur les factures à venir. Certains membres de la communauté ont créé des plugins pour générer des transactions futures pour les abonnements ou les calendriers d’amortissement de prêt, mais cet utilisateur a opté pour une approche plus simple : il maintient une section distincte du grand livre avec des transactions à date future pour les éléments connus (comme le loyer du mois prochain ou un paiement annuel d’assurance à venir). Ceux-ci restent dans le grand livre mais n’affectent pas les soldes d’aujourd’hui, et une fois que la date arrive et que la transaction devient courante, elle sert de rappel (et ils ajusteront le montant si nécessaire pour correspondre aux frais réels). C’est un peu une bidouille, mais cela fonctionne pour prévoir les flux de trésorerie sans outils complexes.
Suivi des investissements et comptabilité multicommodité : En tant que passionné de finances, cet utilisateur utilise également Beancount pour consolider les comptes d’investissement – actions, fonds communs de placement et crypto – aux côtés des comptes de trésorerie. Ils ont des comptes de courtage dont les avoirs (par exemple, des actions d’AAPL, GOOG, etc.) sont enregistrés dans Beancount en tant que marchandises. Par exemple, l’achat de 10 actions d’Apple serait une entrée qui crédite la trésorerie du courtage et débite un compte d’actif avec 10 AAPL comme montant de marchandise. La capacité de Beancount à gérer n’importe quelle marchandise est très utile ici ; on peut mélanger librement les devises et les actions. « Beancount peut suivre les quantités dans n’importe quelle devise, que ce soit l’USD ou un symbole boursier », comme l’a souligné un utilisateur, ce qui était une grande amélioration par rapport aux applications de finances personnelles qui ne prennent souvent pas bien en charge les positions boursières. Notre passionné utilise l’outil bean-price sur une tâche cron nocturne pour extraire les derniers prix du marché pour tous ses titres et devises étrangères. Chaque nuit à 4 heures du matin, un script exécute bean-price qui extrait les prix (de Yahoo Finance ou d’une autre source) et ajoute les enregistrements de prix au grand livre pour ce jour-là. De cette façon, la prochaine fois qu’ils ouvriront Fava ou exécuteront un rapport, ils pourront voir les valeurs de portefeuille à jour et même le rendement des investissements au fil du temps. L’ensemble de la valeur nette, à travers les comptes bancaires, les fonds de retraite et les portefeuilles crypto, est disponible dans une vue unifiée. C’est un rêve pour un investisseur axé sur les données : pas besoin de se connecter à plusieurs plateformes pour voir l’ensemble du tableau. Ils ont essentiellement construit un tableau de bord financier personnel alimenté par Beancount.
Analyse et intégration : Ce qui distingue vraiment cet utilisateur avancé de finances personnelles, c’est la façon dont il analyse les données une fois qu’elles sont dans Beancount. Avec toutes les transactions dans une base de données SQLite (Beancount peut interroger les données via son langage de requête intégré, qui est de type SQL), l’utilisateur peut effectuer une analyse personnalisée. Ils ont écrit des scripts Python pour répondre à des questions comme « Quelle est la moyenne mobile sur 3 mois de mes dépenses d’épicerie ? » ou « Comment les dépenses de cette année en services publics se comparent-elles à celles de l’année dernière ? » Un script interroge le grand livre pour des balises spécifiques et affiche les résultats dans un dataframe Pandas pour un traitement numérique plus poussé. Parce que le grand livre est en texte brut, ils ont également utilisé des notebooks Jupyter pour expérimenter différentes visualisations (au-delà de ce que Fava offre). Par exemple, ils ont produit un graphique à barres personnalisé du taux d’épargne mensuel en utilisant Matplotlib en agrégeant les données de Beancount en Python. Ce type d’analyse ad hoc n’est possible que parce que Beancount maintient les données accessibles et lisibles par machine. Comme l’a dit un utilisateur, l’extraction des données est triviale – « J’ai un script Python qui extrait les données de Beancount en utilisant le langage de requête, puis j’utilise un dataframe Pandas pour préparer les données dans un rapport ». Notre passionné a un référentiel de petits scripts comme celui-ci qu’il exécute pour son examen financier annuel.
Bien sûr, tout ne nécessite pas de codage – la plupart du temps, ils s’appuient sur les graphiques intégrés de Fava. Fava fournit un graphique linéaire de la valeur nette, une tendance des revenus par rapport aux dépenses, et même une décomposition en arborescence (comme indiqué précédemment) qui sont tous à portée de clic. L’utilisateur apprécie que l’ensemble de l’historique de ses finances depuis 2018 soit interrogeable et vérifiable. Par exemple, s’il se demande « combien ai-je dépensé en réparations automobiles au cours des 5 dernières années », il peut écrire une requête rapide ou filtrer dans Fava pour obtenir la réponse, au lieu de fouiller dans les reçus. Cette autonomisation est exactement ce qui l’a attiré vers Beancount : la pleine propriété des données et une flexibilité infinie dans l’analyse. En prime, le grand livre en texte brut est à l’épreuve du temps – il peut être contrôlé par version, migré ou même analysé par d’autres outils si nécessaire. Contrairement à une application à source fermée, il n’y a aucun risque de perdre l’accès à son historique financier.
Pratiques clés dans la configuration personnelle : Utilisation d’outils mobiles et de bureau pour la saisie pratique des données, utilisation de balises et de métadonnées personnalisées pour suivre les événements de la vie et les regroupements intercatégoriels, mise en œuvre de budgets grâce aux directives budget de Fava pour les objectifs de dépenses en cours, suivi des investissements et de plusieurs devises dans le même grand livre (avec des mises à jour de prix automatisées) et réalisation d’une analyse personnalisée en interrogeant directement les données du grand livre. Ce cas montre qu’avec un peu de configuration, même les passionnés de finances personnelles peuvent atteindre un niveau de perspicacité et de contrôle généralement réservé aux entreprises – tout en gardant les choses amusantes et engageantes pour un utilisateur averti en technologie.
Conclusion
Dans ces exemples de la communauté, un thème clair est que la flexibilité de Beancount permet un système comptable hautement personnalisé. Les utilisateurs expérimentés de la communauté ont exploité de simples fichiers texte pour construire des solutions qui rivalisent avec les logiciels commerciaux en termes de capacité, mais qui sont conçues sur mesure pour leurs flux de travail. Les pigistes balisent et lient les entrées pour gérer facilement les projets et les factures des clients. Les propriétaires de petites entreprises automatisent les tâches fastidieuses de tenue de livres et intègrent Beancount avec une infrastructure moderne pour des données financières toujours à jour. Les passionnés de finances personnelles utilisent le grand livre comme une source unique de vérité pour la budgétisation, l’investissement et la prise de décision, l’augmentant avec des balises et des outils pour répondre à pratiquement toutes les questions concernant leur argent. Tout cela est réalisé tout en maintenant les