Aller au contenu principal

Comment Beancount et Fava alimentent des tableaux de bord

Beancount et Fava transforment des registres en texte brut en tableaux de bord en direct : soldes interrogeables

Introduction

Beancount est un système de comptabilité en partie double open source qui utilise des fichiers texte simples comme grand livre. Il met l'accent sur la simplicité, la transparence et la flexibilité dans le suivi des finances. Fava est une interface web puissante pour Beancount, offrant une interface interactive pour consulter les rapports, les visualisations et gérer votre grand livre. Dans ce rapport, nous explorons les principales capacités de Beancount et Fava, et comment réaliser des analyses financières en temps réel ou quasi temps réel avec ces outils. Nous couvrons des astuces de configuration pour l'automatisation et la mise à jour des données, les fonctionnalités de visualisation de Fava (pour des vues instantanées des flux de trésorerie et la détection des tendances), l'intégration avec des tableaux de bord externes (Grafana, Metabase, etc.), des exemples de tableaux de bord personnalisés et de plugins, des cas d'utilisation en finance personnelle et petite entreprise, des comparaisons avec d'autres plateformes (Power BI, QuickBooks), ainsi que les avantages et inconvénients de l'utilisation de Fava+Beancount pour des analyses basées sur les données.

Explorez un grand livre d'exemple en direct :

Ouvrir Example Ledger dans un nouvel onglet

Tableau de bord du portefeuille de cryptomonnaies sur beancount.io suivant les soldes Bitcoin, Ethereum et Solana avec un graphique de valeur nette

Explorez le grand livre en direct →

Capacités principales de Beancount et Fava

Beancount (Moteur de comptabilité en texte simple)

  • Grand livre en texte brut à parties doubles : Beancount stocke les transactions dans un seul fichier texte .beancount (ou plusieurs fichiers inclus ensemble). Chaque transaction doit être équilibrée (total des débits = total des crédits) entre les comptes, garantissant ainsi l’intégrité comptable. Le format texte brut signifie que vos données sont lisibles par l’homme, contrôlables en version, et non verrouillées par un fournisseur.
  • Comptes flexibles et hiérarchiques : Vous pouvez définir n’importe quels comptes (par ex. Assets:Bank:Checking, Expenses:Food:Coffee) dans une hiérarchie. Beancount n’impose aucune opinion sur votre plan comptable, ce qui le rend adapté à la finance personnelle, aux livres de petites entreprises, aux investissements, etc. – c’est « flexible : convient à la finance personnelle, à la comptabilité des petites entreprises, à la crypto, aux investissements boursiers, et plus encore. »
  • Multiples devises et marchandises : Beancount supporte nativement plusieurs devises et marchandises (par ex. actions, crypto). Vous pouvez enregistrer des transactions en devises différentes, définir des taux de change (directives de prix) et suivre les bases de coûts. Il peut produire des rapports « au coût » ou « à la valeur de marché » si les données de prix sont fournies. Cela le rend adapté aux portefeuilles et à la finance internationale.
  • Contrôles automatisés et équilibrages : Le système supporte les assertions de solde (vous pouvez déclarer ce que le solde d’un compte devrait être à une date, et Beancount génèrera une erreur si ce n’est pas le cas) et les transactions d’équilibrage pour clôturer les livres. Il supporte aussi les écritures d’ouverture/de clôture de capitaux propres et le calcul des résultats conservés pour les fins de période. Cela aide à assurer la cohérence de vos livres et à détecter les erreurs tôt.
  • Moteur puissant de requêtes et rapports : Beancount est livré avec un langage de requête BQL (Beancount Query Language). Utilisez bea query pour BQL au terminal et bea report pour les états standards ; installez le CLI quick start plutôt que les anciens scripts console en amont. Vous pouvez interroger le grand livre pour des rapports personnalisés (par ex. liste des dépenses par bénéficiaire, flux de trésorerie sur une période) – traitant essentiellement le grand livre comme une base de données. Il reste rapide même avec des milliers de transactions. Exportez en CSV avec bea query -f csv -o report.csv "BQL", en remplaçant BQL par votre requête. Voir Modèles de rapports financiers pour des exemples complets.
  • Extensibilité via les plugins : Beancount est écrit en Python et permet des plugins personnalisés pour étendre ses fonctionnalités. Les plugins peuvent appliquer des règles ou calculs supplémentaires lors du traitement du fichier. (Par exemple, il existe des plugins pour gérer les lots fiscaux, ou pour s’assurer qu’aucun achat n’est sans coût.) Le système de plugins et l’API Python permettent aux utilisateurs avancés de programmer des comportements personnalisés ou d’intégrer Beancount à d’autres systèmes.
  • Importateurs pour données externes : Une fonctionnalité pratique clé est le cadre d’importation dans le paquet séparé beangulp (il n’y a pas de module beancount.ingest dans Beancount 3.2.3). Vous écrivez une classe importatrice qui hérite de beangulp.Importer et implémente identify, extract, et account. Elle analyse un fichier téléchargé (CSV, OFX, relevés PDF, etc.) et le convertit en écritures Beancount. Ceci est essentiel pour l’automatisation (plus d’informations plus tard).
  • Auditabilité et compatibilité avec le contrôle de version : Parce que c’est en texte brut, vous pouvez garder votre grand livre dans Git ou un autre système de contrôle de version. Chaque modification est transparente et vous disposez d’un historique complet des éditions. Cela rend les audits ou la révision des changements simples (beaucoup d’utilisateurs commettent chaque jour leurs changements sur un dépôt Git, fournissant un journal infalsifiable de toutes les écritures financières). Ce niveau de transparence est un différenciateur majeur par rapport aux logiciels comptables fermés – « pas de verrouillage SaaS — juste une comptabilité propre, transparente avec des rapports puissants. »

Fava (Interface Web pour Beancount)

  • Interface Web Interactive : Fava fournit un serveur web local qui rend votre grand livre Beancount dans une interface riche. Il affiche les rapports principaux (Compte de résultat, Bilan, etc.), les registres de comptes et les journaux dans le navigateur avec des contrôles interactifs. L’interface est dynamique et conviviale comparée à la ligne de commande. Vous la lancez simplement avec un fava yourfile.beancount et obtenez une application web pour vos comptes.
  • Graphiques et Diagrammes Intégrés : Fava génère des graphiques pour aider à visualiser vos données. Par exemple, il inclut un graphique en ligne de la Valeur nette au fil du temps, des graphiques à barres pour les revenus versus dépenses par mois, et des graphiques en secteurs/arbres pour les répartitions des dépenses. Ces visuels se mettent à jour avec vos données et supportent différentes vues (ex. « au coût » vs « valeur de marché » pour les investissements). Nous explorerons ces capacités de visualisation en détail plus tard.
  • Filtrage et Recherche : En haut des pages de Fava, une barre de filtre vous permet de croiser et découper vos données en temps réel. Vous pouvez filtrer par période (ex. année, trimestre, mois), par expression régulière de compte, par bénéficiaire, par narration, ou par tags/liens. Cela facilite l’inspection des données en temps réel – par exemple, filtrez rapidement « Tag=Travel » et « Year=2025 » pour voir toutes les dépenses de voyage en 2025, avec des totaux. L’interface prend en charge des requêtes complexes via cette barre de filtre ou via la page Query (où vous pouvez exécuter directement des requêtes BQL).
  • Support et Consolidation de Fichiers Multiples : Fava peut charger plusieurs fichiers Beancount simultanément (utile si vous séparez vos grands livres) et basculer entre eux. Il peut aussi les consolider si besoin (par exemple, grands livres personnels et professionnels vus ensemble).
  • Saisie et Édition de Données : De manière unique, Fava n’est pas en lecture seule – il possède un éditeur et un formulaire d’entrée de transaction. Vous pouvez ajouter de nouvelles transactions via un formulaire web (il insérera l’entrée dans votre fichier .beancount). Vous pouvez aussi ouvrir le fichier source dans un éditeur externe depuis Fava. Fava supporte également des raccourcis clavier pour utilisateurs avancés. Cela transforme Fava en un système comptable léger où vous pouvez saisir et consulter les données depuis la même interface.
  • Rapports et Exploration des Comptes : Fava fournit les rapports comptables standards : Compte de résultat (Profit & Loss), Bilan, Balance de vérification, et une liste des avoirs pour les investissements. Le Bilan et le Compte de résultat sont interactifs – vous pouvez cliquer sur un compte pour en approfondir les détails, ou basculer entre vue au coût et valeur de marché pour les actifs. Fava affiche aussi les « gains non réalisés » pour les investissements si vous avez les données de prix. Il génère une vue journal de toutes les écritures et permet de filtrer ce journal selon divers critères (idéal pour trouver des transactions spécifiques).
  • Gestion des Documents : Si vous joignez des reçus ou relevés, Fava aide à les organiser. Beancount a une notion de dossier documents, et Fava vous permet de glisser-déposer des fichiers sur des comptes ou transactions – il les stockera et ajoutera une entrée document dans votre grand livre. Ceci est utile pour garder les pièces justificatives liées à vos données comptables.
  • Personnalisation via Extensions : Fava peut être étendu avec des plugins (écrits en Python) pour ajouter de nouveaux rapports ou fonctionnalités. Certaines extensions sont incluses (ex. un rapport de liste de portefeuille pour investissements). Nous discuterons des extensions personnalisées plus tard, mais essentiellement le design de Fava permet d’injecter de nouvelles pages, voire du JavaScript personnalisé, via son API d’extension. Cela signifie que si une analyse ou un tableau de bord n’est pas intégré, un utilisateur avancé peut l’ajouter.
  • Performances : Fava est efficace – il recharge les données en mémoire et sert les pages rapidement. Le parsing Beancount sous-jacent est rapide, donc les grands livres personnels typiques se chargent en une à deux secondes. En pratique, Fava peut gérer des grands livres personnels sur plusieurs années, bien que des fichiers extrêmement volumineux (dizaines de milliers de transactions) puissent bénéficier d’une optimisation (ex. archivage des écritures anciennes).
  • Accès Web et Mobilité : En lançant Fava sur un serveur ou même votre ordinateur portable, vous pouvez accéder à vos finances depuis n’importe quel navigateur. Certains utilisateurs hébergent Fava sur un serveur privé ou un Raspberry Pi pour consulter leurs finances en mobilité (avec protection via mot de passe ou VPN puisque Fava ne dispose pas d’authentification intégrée). Cela vous donne essentiellement une « application web » auto-hébergée pour vos finances, sans confier vos données à un tiers.

En résumé, Beancount offre une base solide pour une comptabilité transparente, basée sur du texte, avec des règles rigoureuses de comptabilité en partie double et un support multi-devises. Fava s'appuie sur cela en proposant une interface accessible avec des insights immédiats (rapports, graphiques) et la possibilité d'interagir avec vos données. Ensemble, ils forment un système de comptabilité et d'analyse hautement flexible que vous contrôlez de bout en bout.

Analyse en temps réel (ou quasi temps réel) avec Beancount & Fava

Atteindre une analyse en temps réel ou quasi temps réel avec Beancount et Fava implique d’automatiser le flux de données dans votre grand livre et d’assurer que les outils affichent des informations à jour. Par défaut, Beancount est un processus par lots (vous ajoutez des écritures dans le fichier, puis vous consultez les rapports), et Fava détecte les changements et nécessite un rafraîchissement. Cependant, avec la bonne configuration, vous pouvez rationaliser les mises à jour pour que les nouvelles transactions et modifications apparaissent presque instantanément.

Détection des modifications de fichier : Fava surveille le fichier de grand livre pour détecter les changements. Si vous éditez le fichier .beancount (ou des fichiers inclus) dans un éditeur, la page affiche une notification « Changement de fichier détecté. Cliquez pour recharger. » Fava interroge son point de terminaison get_changed. Lorsque le système de surveillance signale un changement, Fava recharge le grand livre côté serveur et la notification offre un clic pour actualiser la vue. En pratique, ce rechargement est très rapide (généralement en moins d’une seconde pour des grands livres typiques). Cela signifie que Fava peut servir de tableau de bord en direct si votre fichier de grand livre est fréquemment mis à jour. Par défaut, il attend votre clic pour ne pas perturber votre affichage.

Pipeline d'importation/mise à jour continue : Pour obtenir des données en temps réel, vous devez automatiser l’ajout des transactions dans le fichier Beancount. Il existe quelques stratégies courantes :

  • Tâches d'importation programmées (Cron) : De nombreux utilisateurs configurent un travail cron (ou tâche planifiée) pour récupérer périodiquement de nouvelles transactions depuis les institutions financières (par exemple chaque nuit ou chaque heure) et les ajouter au grand livre. Par exemple, vous pourriez exécuter un importateur beangulp sur le dernier téléchargement bancaire (CSV ou OFX). Un utilisateur de Beancount a construit un pipeline d'automatisation de façon à ce que ses livres se mettent à jour seuls : « voir mon livre de comptes se mettre à jour tout seul sans que je l’ouvre dans un format ouvert me procure une joie pure ». Cela a été réalisé en se connectant aux API bancaires et en planifiant des mises à jour régulières. Un script Python personnalisé utilisant les API bancaires (par exemple Plaid) peut s’exécuter selon un horaire et écrire de nouvelles entrées dans le grand livre. Validez chaque exécution avec bea check avant qu’elle n’altère votre fichier principal. Après chaque importation programmée, si Fava est en cours d’exécution, vous pouvez simplement actualiser Fava pour voir les nouvelles données.

  • Surveillance de fichiers et déclencheurs : Plutôt que des plannings basés sur le temps, vous pouvez utiliser des surveillants de fichiers pour réagir aux événements. Par exemple, si votre banque peut vous envoyer un relevé quotidien par e-mail ou si vous déposez un CSV dans un dossier, un script pourrait détecter ce fichier (en utilisant inotify sur Linux ou similaire) et lancer immédiatement la procédure d’importation, puis signaler à Fava de recharger. Bien que Fava ne supporte pas encore le rechargement en direct dans le navigateur, vous aurez au moins les données mises à jour, si bien que la prochaine fois que vous consultez la page ou cliquez sur recharger, elles seront à jour. Certains projets communautaires vont plus loin : pour ledger (un cousin de Beancount), un utilisateur a créé un petit serveur qui expose les données ledger à Grafana en temps réel, montrant qu’une approche similaire peut être adoptée avec Beancount – essentiellement construire un démon qui alimente continuellement vos tableaux de bord.

  • Intégration directe par API : Au lieu de passer par des fichiers, les utilisateurs avancés pourraient se connecter directement aux API bancaires (comme Plaid ou les API locales d’Open Banking) pour récupérer fréquemment les transactions. Une personne motivée peut écrire un script d’import « en direct » en boucle (avec limitation de débit appropriée) – interrogeant la banque toutes les quelques minutes pour de nouvelles données. Rien ne vous empêche de « vous inscrire à l’API Plaid et de faire la même [automatisation] localement ». Chaque nouvelle transaction peut être ajoutée au fichier Beancount dès son arrivée. Avec cette approche, Fava devient réellement un tableau de bord temps réel pour vos comptes, rivalisant avec les flux actualisés des applications commerciales.

Actualisation des données dans Fava : Une fois que vos données sont mises à jour, faire en sorte que Fava les affiche est simple : un rafraîchissement du navigateur (F5) ou un clic sur la notification de rechargement chargera l'état le plus récent du grand livre. Notez que fava --debug ne pousse pas les changements du grand livre vers le navigateur. Son texte d’aide est « Activer le débogage ». Il exécute le débogueur Werkzeug et le rechargement du code pour le propre code de Fava et active le rechargement automatique des templates Jinja. Cela recharge le code serveur et les templates de page lors du développement des extensions. Cela n’a aucun rapport avec le surveillant de fichiers qui détecte les changements du grand livre. Alternativement, si vous développez une interface personnalisée, vous pouvez faire interroger l’endpoint get_changed de Fava et rafraîchir lorsqu’il signale de nouvelles données.

Calculs instantanés : Le parsing rapide de Beancount fait que même si vous mettez à jour votre fichier grand livre toutes les quelques minutes, le délai entre la récupération des données → la mise à jour du fichier → le rechargement de Fava est court. Par exemple, un utilisateur note que le rechargement de Fava après édition du fichier « est à peine perceptible… définitivement moins d’une seconde » pour des grands livres de taille raisonnable. Ainsi, vous pouvez garder une fenêtre Fava ouverte et rafraîchir périodiquement pour simuler un tableau de bord en direct. (Pour une expérience vraiment en direct, on pourrait créer un petit script pour auto-rafraîchir le navigateur ou utiliser la fonction de rafraîchissement automatique du navigateur toutes les N secondes.)

Rapprochement et alertes : Pour avoir confiance dans les données en temps réel, vous souhaitez également rapprocher fréquemment les soldes. Beancount facilite cela avec les assertions de solde et un indicateur « à jour ». En fait, Fava colore les comptes en vert, jaune ou rouge quand la directive open porte des métadonnées fava-uptodate-indication. La couleur reflète si les contrôles de solde récents couvrent les dernières entrées du compte. Cela peut être utilisé pour voir rapidement si le solde d’un compte dans le grand livre correspond au dernier relevé bancaire. Dans un dispositif quasi temps réel, vous pourriez automatiser les vérifications de solde quotidiennes (pour que chaque matin, le grand livre dispose du solde de clôture de la veille fourni par la banque pour chaque compte). L’indicateur de Fava vous dirait alors si votre import automatique a raté quelque chose ou s’il y a une divergence, fournissant la confiance que les données « live » affichées sont exactes.

Exemple d'automatisation : Supposons que vous souhaitiez des mises à jour quotidiennes des flux de trésorerie. Vous pourriez programmer une tâche cron s’exécutant chaque nuit à 3h du matin : elle lance un script Python qui utilise l’API de votre banque pour récupérer les transactions du jour précédent, les écrit dans import_today.beancount, puis ajoute ce fichier à votre grand livre principal. Il génère également une assertion de solde pour la fin de journée. Au réveil, vous ouvrez Fava – il affiche toutes les transactions jusqu’à hier, et vous voyez le revenu/dépenses du mois en cours mis à jour. Si vous effectuez une dépense dans la journée, vous pouvez la saisir manuellement (par exemple via le formulaire de nouvelle transaction de Fava sur votre téléphone), ou attendre l’import nocturne. Cette approche hybride (principalement automatisée, avec possibilité d’ajout manuel ponctuel) donne une image quasi temps réel. Une autre méthode consiste à laisser ouverte la page Journal de Fava et l’utiliser comme registre : à mesure que vous dépensez, vous enregistrez rapidement la transaction (comme dans un chéquier) – vous devenez alors le flux en temps réel. Cette méthode est plus manuelle, mais certains utilisateurs apprécient la prise de conscience qu’elle apporte. Pour des mises à jour véritablement diffusées en continu sans étapes manuelles, il faudra investir dans du scripting et possiblement utiliser des APIs tierces comme discuté.

En résumé, en combinant l’automatisation d’import de Beancount avec le rafraîchissement rapide de Fava, vous pouvez obtenir des données financières quasi temps réel. Cela n’est peut-être pas aussi « simple d’un clic » que d’avoir un flux en direct comme un service tel que QuickBooks (qui récupère automatiquement les flux bancaires), mais c’est possible – et surtout, vous gardez un contrôle total et une transparence complète du processus. Comme l’a souligné un défenseur de la comptabilité en texte brut, un peu d’effort initial peut produire un système automatisé qui est « bien meilleur que les solutions commerciales, et beaucoup plus flexible et extensible ». Dans la section suivante, nous verrons comment les capacités de visualisation de Fava vous permettent de donner immédiatement du sens à ces données à jour, transformant les transactions brutes en informations exploitables.

Capacités de visualisation dans Fava (Flux de trésorerie, Tendances, Inspection en temps réel)

(GitHub - beancount/fava : Fava - interface web pour Beancount) Le rapport du compte de résultat de Fava (dans l’interface web) supporte des visualisations riches comme les treemaps (illustrées) et les diagrammes en étoile pour un aperçu rapide de la composition des revenus et des dépenses. Dans ce treemap, chaque rectangle représente une catégorie de dépense, dimensionné en fonction de son montant – vous pouvez voir instantanément que le Loyer (grand bloc vert) domine les dépenses. La barre de filtre supérieure et les contrôles (en haut à droite) permettent de changer la devise, le type de graphique et la période (par exemple, visualisation des données mensuelles). Fava propose également des graphiques en lignes (par exemple, la valeur nette dans le temps) et des graphiques en barres (par exemple, revenus vs dépenses par mois) pour aider à détecter les tendances dans vos données financières.

L’une des plus grandes forces de Fava est de transformer instantanément les données du grand livre en rapports visuels et interactifs. Dès que le grand livre est chargé, Fava génère des graphiques qui facilitent la compréhension des flux de trésorerie et des tendances en un coup d’œil :

  • Treemap/Diagramme en étoile des revenus & dépenses : Sur la page du compte de résultat, Fava peut afficher vos revenus et dépenses sous forme de treemap ou de diagramme en étoile. Ces visualisations sont idéales pour une visualisation « d’un coup d’œil » des flux de trésorerie. Par exemple, si vos dépenses mensuelles sont affichées sous forme de treemap, la surface de chaque rectangle correspond à l’ampleur de chaque catégorie de dépense. Les grands blocs montrent immédiatement où la majeure partie de votre argent est allée (par exemple le loyer ou l’hypothèque, les impôts, etc.), tandis que les petits blocs indiquent des dépenses mineures. Ceci est extrêmement utile pour repérer les tendances dans les dépenses – si le bloc « Sorties au restaurant » s’agrandit chaque mois, vous le remarquerez visuellement. Vous pouvez basculer vers un diagramme en étoile pour voir les décompositions hiérarchiques (par exemple, l’anneau externe pourrait montrer des sous-catégories comme Épicerie vs Restaurants dans la catégorie Alimentation). Ces graphiques se mettent à jour pour toute période filtrée (un mois, depuis le début de l’année, etc.), vous offrant une visualisation instantanée des flux de trésorerie pour cette période. Un utilisateur sur le forum de la comptabilité en texte brut a noté : « J’utilise beaucoup les treemaps des revenus et dépenses. Ils donnent une excellente perception visuelle de nos mouvements fiscaux. » – ce genre de compréhension immédiate est exactement ce que visent les graphiques de Fava.

  • Valeur nette et bilan dans le temps : Fava fournit un graphique linéaire de la valeur nette dans le temps (sur la page « Bilan » ou « Statistiques »). Ce graphique trace la somme de vos actifs moins vos passifs à chaque instant (par jour, semaine ou mois). Il est inestimable pour repérer des tendances – vous pouvez voir la trajectoire de vos finances (par exemple, une progression régulière ou des creux à certains moments). Si vous avez des investissements, vous pouvez basculer entre la valeur au coût et la valeur de marché (si les données de prix sont enregistrées) – par exemple, vous pourriez voir votre valeur nette à la valeur de marché fluctuer avec les cours des actions, tandis qu’elle est plus stable au coût. Fava peut également afficher les soldes des comptes dans le temps. En cliquant sur un compte (par exemple Assets:Bank:Checking), la page du compte montre un graphique de l’historique du solde de ce compte. Vous pouvez immédiatement inspecter comment évolue votre compte de trésorerie – ce qui est en fait un graphique de flux de trésorerie (la pente de la ligne de solde indique le flux net de trésorerie). Si la tendance est à la baisse, vous savez que vous dépensez plus que vous ne gagnez sur la période. En examinant ces tendances, vous pourriez repérer des schémas comme « chaque décembre mes économies baissent (dépenses de vacances) » ou « mes investissements ont fortement augmenté ce trimestre ».

  • Graphiques à barres pour comparaison périodique : Dans la vue du compte de résultat, Fava propose des onglets pour « Profit mensuel », « Revenus mensuels », « Dépenses mensuelles », etc. Sélectionner ces onglets affiche des graphiques à barres par mois. Par exemple, le Profit net mensuel montrera chaque excédent/déficit mensuel sous forme de barre, facilitant la comparaison des performances entre les mois. Vous pouvez rapidement identifier les valeurs aberrantes (par exemple, une grosse barre négative en avril signifie que ce mois a connu une perte/dépense inhabituelle). De même, le graphique à barres « Dépenses mensuelles » empile ou regroupe les dépenses par catégorie chaque mois, vous permettant de voir les catégories qui fluctuent. C’est idéal pour repérer les tendances dans le temps – par exemple, vous pourriez remarquer que vos dépenses de « Voyages » augmentent chaque été, ou que vos factures de « Services publics » sont plus élevées en hiver. Fava vous offre essentiellement certaines capacités d’une application de budgétisation (suivi des tendances) mais avec une personnalisation complète (puisque vous définissez les catégories et leur regroupement).

  • Filtrage en temps réel et inspection des données : Les visualisations dans Fava ne sont pas statiques ; elles fonctionnent en tandem avec le filtrage de Fava. Supposons que vous vouliez inspecter un scénario précis : « À quoi ressemblent mes flux de trésorerie trimestriels uniquement pour mes comptes professionnels ? » Vous pouvez définir le filtre temporel sur T1 2025 et filtrer les comptes sur votre hiérarchie Business – Fava mettra instantanément à jour les graphiques pour montrer le revenu net, la carte arborescente des dépenses, etc., mais uniquement pour ce sous-ensemble. Ce découpage interactif permet de faire des analyses ad hoc très rapidement, sans écrire de requêtes. La vue Journal supporte également le filtrage en direct : vous pouvez rechercher par sous-chaîne du bénéficiaire ou de la narration et voir immédiatement une liste filtrée de transactions. Si vous regardez des données en temps réel (par exemple, vous venez d’importer les transactions de la semaine dernière), vous pouvez filtrer par un tag comme #uncategorized pour voir les nouvelles transactions qui pourraient nécessiter une catégorisation, ou par @pending (si vous marquez les écritures en suspens) pour voir ce qui n’est pas encore validé. Cette capacité d’inspection en temps réel contribue aussi à garantir la qualité des données — car vous pouvez isoler et traiter les anomalies à la volée.

  • Tableau des flux de trésorerie (indirect) : Bien que Beancount/Fava ne génère pas de tableau de flux de trésorerie formel (ventilation Exploitation/Investissement/Financement) prêt à l’emploi, vous pouvez l’imiter avec des requêtes personnalisées ou en structurant vos comptes. Par exemple, vous pouvez taguer certaines transactions ou utiliser des comptes spécifiques pour l’investissement et le financement, puis interroger les totaux. L’interface de requête de Fava exécute du BQL tel que SELECT sum(position) WHERE account ~ 'Assets:Bank:Checking'. Elle renvoie ainsi le solde courant utilisé derrière les graphiques. L’exemple complet ci-dessous montre ce processus aller-retour. Cela dit, la plupart des utilisateurs personnels trouvent que la combinaison des tendances de solde et des graphiques de revenus/dépenses suffit pour comprendre les flux de trésorerie.

  • Visualisation des avoirs et du portefeuille : Sur la page Holdings, Fava liste vos avoirs actuels en matières premières (par exemple actions, obligations, crypto) avec les quantités, le coût, la valeur marchande et les gains non réalisés. Bien qu'il s'agisse d'un tableau et non d'un graphique, cela est très utile pour une inspection en temps réel de l'état de votre portefeuille. Certaines extensions communautaires (comme fava-investor, discutée plus loin) ajoutent plus de visuels pour les portefeuilles, tels que des graphiques en secteurs d'allocation ou des graphiques de performance. Même sans extensions, vous pouvez voir par exemple comment la valeur de votre portefeuille d'actions évolue au regard des derniers prix – si vous mettez à jour régulièrement les cotations (ce qui peut être automatisé quotidiennement), les graphiques de Fava refléteront la valeur marchande de vos investissements à la minute près.

Exemple pratique : deux mois de dépenses

Cet exemple fonctionne de bout en bout sur Beancount 3.2.3 avec beanquery 0.2.0. Enregistrez le grand livre sous le nom example.beancount. Il contient deux paiements de salaire et quatre dépenses.

option "title" "Analytics example"
option "operating_currency" "USD"
 
2024-01-01 open Assets:Bank:Checking USD
2024-01-01 open Expenses:Food:Groceries USD
2024-01-01 open Expenses:Food:Dining USD
2024-01-01 open Expenses:Housing:Rent USD
2024-01-01 open Income:Salary USD
2024-01-01 open Equity:Opening-Balances USD
 
2024-01-05 * "Employer" "January salary"
  Income:Salary  -3000.00 USD
  Assets:Bank:Checking  3000.00 USD
 
2024-01-08 * "Grocery Store" "Weekly groceries"
  Expenses:Food:Groceries  120.00 USD
  Assets:Bank:Checking  -120.00 USD
 
2024-01-12 * "Restaurant" "Dinner out"
  Expenses:Food:Dining  80.00 USD
  Assets:Bank:Checking  -80.00 USD
 
2024-02-01 * "Landlord" "February rent"
  Expenses:Housing:Rent  1000.00 USD
  Assets:Bank:Checking  -1000.00 USD
 
2024-02-05 * "Employer" "February salary"
  Income:Salary  -3000.00 USD
  Assets:Bank:Checking  3000.00 USD
 
2024-02-10 * "Grocery Store" "Weekly groceries"
  Expenses:Food:Groceries  150.00 USD
  Assets:Bank:Checking  -150.00 USD

Vérifiez-le d'abord. Puis exécutez la requête dépenses par catégorie.

bea --file example.beancount check
bea --file example.beancount query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account ORDER BY account"

Un grand livre propre retourne 0 de bea check ; les erreurs sont listées avec une sortie non nulle. La requête retourne une ligne par compte de dépenses.

        account          sum(position)
-----------------------  ------------
Expenses:Food:Dining        80.00 USD
Expenses:Food:Groceries    270.00 USD
Expenses:Housing:Rent     1000.00 USD

Deux autres requêtes complètent le tableau. Revenu total et dépenses totales :

SELECT sum(position) WHERE account ~ 'Income'
SELECT sum(position) WHERE account ~ 'Expenses'

Elles retournent (-6000.00 USD) et (1350.00 USD). Ainsi, le foyer a gagné 6,000.00 USD, dépensé 1,350.00 USD, et économisé 77.5 %. Le solde du compte courant le confirme :

SELECT sum(position) WHERE account ~ 'Assets:Bank:Checking'

Elle retourne (4650.00 USD). Les mêmes requêtes s’exécutent sans modification dans la page Requête de Fava. Fava 1.30.16 affiche les mêmes trois lignes de dépenses sous forme de tableau interactif.

En pratique, les rapports visuels de Fava se mettent à jour aussi rapidement que les données sous-jacentes. Dès qu’une nouvelle transaction est ajoutée et que la page est rechargée, les graphiques sont recalculés. Il n’y a pas besoin de retraitement long. Cela signifie que si vous avez un pipeline semi-automatisé alimentant les données tout au long de la journée, vous pouvez garder Fava ouvert et actualiser ponctuellement pour obtenir des graphiques mis à jour – ce qui correspond à une surveillance financière en temps réel.

Par exemple, imaginez que vous gérez une petite entreprise et que vous souhaitez surveiller la trésorerie disponible et les dépenses quotidiennes. Vous pourriez avoir Fava ouvert sur un tableau de bord personnalisé (peut-être en utilisant une extension ou l'écran de requête) qui affiche « Solde du compte en espèces aujourd'hui » et « Dépenses – Aujourd'hui vs. Hier ». À chaque actualisation après l'arrivée de nouvelles données, vous verriez ces chiffres se mettre à jour. Cela est comparable à ce que fournissent les tableaux de bord en temps réel coûteux, mais en utilisant des outils open-source. La différence est que vous devrez peut-être actualiser manuellement ou programmer des actualisations, tandis que ces outils poussent les mises à jour automatiquement. Mais fonctionnellement, l'information que vous obtenez est la même, avec l'avantage supplémentaire que vous pouvez approfondir n'importe quel chiffre sur Fava (cliquez dessus pour voir les transactions sous-jacentes) – ce que beaucoup de tableaux de bord BI ne proposent pas.

En résumé, Fava transforme vos données comptables en insights visuels immédiats : répartition des flux de trésorerie, courbes de tendance, comparaisons dans le temps, et filtres interactifs vous aident tous à voir l’histoire derrière les chiffres. Que vous inspectiez les dépenses de la semaine dernière pour détecter des anomalies ou que vous examiniez des tendances pluriannuelles dans la valeur nette, les graphiques et rapports de Fava offrent une clarté en temps réel (dès que vos données sont disponibles). Ensuite, nous verrons comment vous pouvez étendre ces capacités ou les intégrer à des outils externes si vous avez besoin d’analyses encore plus personnalisées.

Intégration avec des tableaux de bord et outils de visualisation externes

Bien que Fava propose un ensemble riche de rapports et graphiques intégrés, vous pourriez vouloir intégrer les données de Beancount avec d'autres outils d’intelligence d'affaires (BI) ou tableaux de bord tels que Grafana, Metabase, ou des interfaces web personnalisées (par exemple une application React). La motivation peut être de combiner les données financières avec d’autres sources, d’utiliser des capacités graphiques avancées, ou de partager des tableaux de bord avec d'autres dans un format différent. Grâce à l’ouverture de Beancount, il existe plusieurs façons d’obtenir cette intégration :

  • Intégration de base de données (BeanSQL / Beanpost) : Une approche simple consiste à exporter ou synchroniser votre grand livre Beancount vers une base de données SQL. Une fois dans SQL, tout outil BI peut interroger les données. En fait, des membres de la communauté ont créé des outils pour cela. Par exemple, Beanpost est une expérimentation qui duplique un grand livre Beancount dans une base de données PostgreSQL, en implémentant une grande partie de la logique de Beancount sous forme de fonctions SQL. Cela fournit « un backend flexible pouvant s'intégrer avec d'autres outils comme des applications web ou des systèmes de reporting. » Vous pouvez faire tourner Beanpost pour synchroniser en continu votre grand livre texte avec Postgres. Ensuite, un outil comme Metabase ou Tableau peut se connecter à cette base Postgres et vous pouvez construire tous les graphiques ou tableaux de bord que vous souhaitez (avec mise à jour en temps réel au fur et à mesure des mises à jour de la base). Un utilisateur a indiqué utiliser Postgres + PostGraphile pour exposer automatiquement une API GraphQL pour les données du grand livre, puis écrire un front-end React personnalisé par-dessus – traitant essentiellement le grand livre comme un service web. Cette approche répond aux cas où l’interface de Fava pourrait ne pas suffire (par exemple accès multi-utilisateurs, ou interfaces plus adaptées au mobile). Elle est plus lourde techniquement, mais montre le potentiel : vous pouvez intégrer Beancount facilement avec des stacks web modernes. Une variante plus légère consiste à exporter les résultats de requêtes dans SQLite – l’exécution de bea --file ledger.beancount query "SELECT ..." affiche un tableau que vous pouvez coller ou rediriger, et le CSV tableur depuis la CLI attend des options d’export natives pour bea query. Certaines personnes utilisent SQLite comme intermédiaire pour se connecter à des outils comme Metabase (qui peut lire les fichiers SQLite via une connexion).

  • Grafana (Tableaux de bord de séries temporelles) : Grafana est populaire pour la surveillance et les données en séries temporelles. Les données financières au fil du temps (dépenses, soldes) peuvent être traitées comme des séries temporelles. Il y a eu des discussions dans la communauté sur la connexion de Beancount à Grafana. Une idée était un plugin source de données Grafana qui pourrait exécuter des requêtes BQL sur un fichier Beancount à la volée. Cela permettrait aux panneaux Grafana d'afficher directement, par exemple, « Solde du compte courant » sous forme de jauge ou « Dépenses des 30 derniers jours » sous forme de graphique, en interrogeant le grand livre. À ce jour (2025), aucun plugin dédié n’est publié, mais des passionnés ont construit des solutions ad hoc. Par exemple, un utilisateur Reddit aquilax a créé un serveur simple qui rend les données Ledger CLI accessibles à Grafana, et l’a partagé sous le nom grafana-ledger-datasource-server. Un concept similaire peut être appliqué à Beancount : vous écririez un petit serveur HTTP en Python qui charge le grand livre Beancount (utilisant l’API Beancount pour interroger les données) et expose des points d’accès qui retournent des cadres de données JSON pour Grafana. Grafana possède un plugin source de données JSON générique qui peut alors extraire ces données via cette API. En pratique, cela signifie que vous pourriez concevoir un tableau de bord Grafana avec des panneaux tels que « Revenu mensuel (graphique à barres) » ou « Solde de trésorerie quotidien (graphique en ligne) », ces panneaux récupérant les données via votre API pilotée par Beancount. Grafana offrirait des options avancées de visualisation (annotations, seuils, combinaisons avec des métriques serveur, etc.). Andreas Gerstmayr (un des mainteneurs de Fava) a suggéré exactement cette approche et a même mentionné avoir créé une extension Fava appelée fava-dashboards (plus d’informations ci-dessous) pour afficher des graphiques issus de requêtes BQL, comme alternative à une installation complète de Grafana. Si vous préférez l’interface de Grafana, l’intégration est réalisable – cela nécessite juste de construire le pont de données.

  • Metabase (Requêtes ad hoc et tableaux de bord) : Metabase est un outil BI convivial qui vous permet d’exécuter des requêtes et de créer des tableaux de bord sans coder. Si vous exportez votre grand livre au format relationnel (via Beanpost ou en écrivant des tables de transactions, d’écritures, etc.), vous pouvez pointer Metabase vers cette base de données. Vous pourriez créer des tables personnalisées comme expenses (date, category, amount) à partir de votre grand livre, puis dans Metabase vous pouvez générer facilement des graphiques (par exemple un camembert des dépenses par catégorie pour le mois dernier). L’avantage est que des utilisateurs non techniques (ou des collègues) pourraient alors interagir avec les données via l’interface graphique de Metabase sans avoir à toucher au fichier Beancount. L’inconvénient est que vous devez maintenir l’export/synchronisation. Certains utilisateurs ont automatisé la conversion nocturne du grand livre Beancount vers SQLite, puis laissent Metabase lire le SQLite ; d’autres utilisent peut-être l’approche Postgres mentionnée. L’important est que la portabilité des données de Beancount rend cela possible – vous êtes libre de dupliquer les données dans n’importe quelle forme dont votre outil externe a besoin.

  • Frontaux / applications personnalisés : Si vous avez des besoins spécifiques, vous pouvez toujours écrire une application personnalisée basée sur Beancount. La bibliothèque Python Beancount vous donne accès à toutes les écritures analysées, soldes, etc., donc un framework web Python (Flask, Django, FastAPI) peut être utilisé pour construire une application sur mesure. Par exemple, une petite entreprise peut créer un tableau de bord affichant des indicateurs clés (comme la marge brute, les ventes quotidiennes, etc.) en interrogeant le grand livre et en combinant peut-être avec des données hors grand livre (comme le nombre de clients servis). Un membre de la communauté a construit une interface web adaptée au mobile car Fava n’était pas intuitif pour son conjoint – il a exploité le grand livre dans une base de données pour piloter cette interface personnalisée. Si vous préférez JavaScript/TypeScript, vous pouvez utiliser un outil pour convertir le grand livre en JSON et construire à partir de là. Fava elle-même expose sa page Query via une API de requêtes JSON, donc un frontal personnalisé peut lui envoyer des requêtes BQL et afficher les tableaux retournés au lieu de créer un nouveau moteur de requêtes.

  • Intégration Excel/PowerBI : Il est intéressant de noter que vous pouvez même intégrer Excel ou PowerBI. Jusqu'à ce que bea query obtienne une exportation CSV native, utilisez l'export de la page Query de Fava pour les fichiers tableurs qu'Excel ouvre directement. Un workflow pourrait être : un travail nocturne génère un fichier CSV des principaux indicateurs financiers à partir de Beancount, et PowerBI est configuré pour importer ce fichier. C'est un peu indirect, mais pour les organisations qui utilisent déjà beaucoup Excel/PowerBI, c'est une intégration à faible friction. PowerBI supporte également les sources de données Python, donc on peut écrire un court script Python qui exécute des requêtes BQL et l’utiliser comme source de données dans PowerBI, réalisant une connexion directe.

Étude de cas – Idée d’intégration Grafana : Josh, utilisateur de Beancount, a demandé sur la liste de diffusion comment pousser les métriques Beancount vers Prometheus et les visualiser dans Grafana. Les développeurs principaux ont répondu qu’au lieu de dupliquer les données dans Prometheus, une meilleure approche est un plugin ou un service Grafana qui interroge directement le grand livre Beancount. Andreas a partagé son extension fava-dashboards qui rend des graphiques personnalisés directement dans Fava comme solution exemple. La conclusion est : vous avez des options – soit intégrer via l’infrastructure BI existante (Prometheus+Grafana ou SQL+Metabase) soit étendre Fava pour répondre à vos besoins (la section suivante abordera cela).

Sécurité et considérations multi-utilisateurs : En intégrant dans des outils externes, soyez attentif à la sensibilité des données. Le texte brut de Beancount contient souvent des informations financières privées, donc tout serveur qui les expose doit être sécurisé (authentifié). Si vous déplacez les données vers un outil BI cloud, vous pourriez perdre un peu de confidentialité. Les outils auto-hébergés (versions open source de Grafana/Metabase) peuvent être locaux pour atténuer cela. Aussi, si plusieurs personnes doivent voir des tableaux de bord, un tableau de bord externe en lecture seule peut être préférable plutôt que de donner à tous accès à Fava (où ils pourraient modifier des données s'ils ne font pas attention). Par exemple, une startup peut utiliser Beancount en interne mais utiliser Metabase pour que les chefs de département voient les dépenses par rapport au budget sans toucher aux fichiers du grand livre.

En résumé, Beancount et Fava s'intègrent bien avec d'autres outils. Vous pouvez exploiter tout l'écosystème d'outils de données avec un peu de code pour relier les composants : envoyer les données du grand livre vers une base SQL pour les outils BI, les servir via des API pour des applications web, ou même utiliser des bibliothèques spécialisées pour les diffuser vers des systèmes de séries temporelles. Cette flexibilité signifie que vous n'êtes jamais bloqué si les visuels intégrés de Fava ne répondent pas à une exigence spécifique – vous pouvez toujours intégrer dans une autre plateforme tout en continuant à utiliser Beancount comme source de vérité. Ensuite, nous examinerons l'extension de Fava lui-même avec des plugins et des tableaux de bord personnalisés, ce qui est souvent une solution plus simple que l'intégration externe si vous avez juste besoin de quelques fonctionnalités supplémentaires.

Tableaux de bord personnalisés et extension de Fava avec des plugins (Exemples de code)

Fava est conçu pour être extensible : vous pouvez ajouter de nouvelles pages, graphiques et comportements en écrivant des plugins Fava (extensions) en Python. Cela permet d'adapter l'interface web à vos besoins spécifiques sans construire une application entièrement séparée. Nous explorerons deux pistes principales de personnalisation : (1) Utiliser ou écrire des extensions Fava, et (2) Configurer des tableaux de bord personnalisés via des plugins communautaires comme fava-dashboards.

Extensions Fava (Plugins personnalisés)

Une extension Fava est essentiellement un module Python qui définit une sous-classe de fava.ext.FavaExtensionBase. Lors du démarrage, Fava peut charger ce module et l'intégrer à l'application. Les extensions peuvent enregistrer de nouvelles pages de rapport, se connecter à des événements, et même inclure du JavaScript personnalisé pour l'interactivité. Fava 1.30.16 embarque deux extensions : fava.ext.auto_commit et fava.ext.portfolio_list. D'autres peuvent être installées via pip ou écrites à partir de zéro.

Pour activer une extension, vous utilisez la directive personnalisée Beancount dans votre fichier grand livre :

2010-01-01 custom "fava-extension" "my_extension_module" "{'option': 'value'}"

Cela indique à Fava de charger le module donné. Si vous avez installé une extension via pip, vous devez référencer son nom de module ici. La chaîne optionnelle à la fin est la configuration de l'extension. Fava la parse comme un littéral Python, donc "{'option': 'value'}" arrive sous forme de dict.

Exemple – Extension d'auto-commit : L'extension fava.ext.auto_commit fournie effectue un commit git des modifications quand vous éditez le fichier via Fava. Pour l'utiliser, il faudrait ajouter :

2025-01-01 custom "fava-extension" "fava.ext.auto_commit"

Elle surcharge after_write_source, after_insert_entry, after_entry_modified, after_delete_entry, et after_insert_metadata. Chaque hook exécute un git commit dans le répertoire du fichier grand livre. Le grand livre doit donc déjà exister dans un dépôt git. Cet exemple montre comment les extensions se connectent aux événements d'édition de Fava.

Exemple – Extension de la liste de portefeuille : L’extension intégrée fava.ext.portfolio_list ajoute une page qui répertorie vos comptes d’investissement. Elle définit report_title = "Portfolio List" et fournit un modèle. Fava détecte cela et ajoute une nouvelle entrée dans la barre latérale « Portfolio List » sous Rapports. Elle définit également has_js_module = True pour charger son JavaScript compagnon. Pour l’activer explicitement, vous ajouteriez :

2025-01-01 custom "fava-extension" "fava.ext.portfolio_list"

(Aucune configuration nécessaire dans ce cas.)

Écrire une extension personnalisée : Supposons que vous vouliez une page de rapport personnalisée, par exemple « Receivables Aging » pour les factures. Vous pourriez créer un fichier receivables.py comme :

# receivables.py
from fava.ext import FavaExtensionBase
 
 
class ReceivablesReport(FavaExtensionBase):
    report_title = "Receivables Aging"
 
    def after_load_file(self):
        # Runs after Fava loads the ledger. Summarise open
        # invoices here so the template only renders.
        self.overdue = [
            txn for txn in self.ledger.all_entries
            if "invoice" in getattr(txn, "tags", set())
        ]

Vous créeriez aussi un templates/ReceivablesReport.html à côté du module pour définir le HTML de la page. Dans ce modèle, vous pouvez lire des attributs comme self.overdue que votre hook a préparés. Une fois cette extension écrite, vous ajoutez à votre registre :

2025-01-01 custom "fava-extension" "receivables"

(en supposant que receivables.py se trouve dans le répertoire du fichier Beancount ou dans PYTHONPATH, Fava peut le trouver par nom). Au démarrage de Fava, vous verriez maintenant une page « Receivables Aging ».

Sous le capot, Fava appelle les méthodes de votre extension à des points fixes. Les hooks disponibles dans Fava 1.30.16 sont after_load_file, before_request, after_entry_modified, after_insert_entry, after_delete_entry, after_insert_metadata et after_write_source. Une méthode décorée avec @extension_endpoint devient en plus un point d’API JSON sous l’extension. En général, les hooks fournis ainsi qu’un modèle suffisent.

La documentation de Fava note que le système d’extensions est encore en évolution, mais il est utilisable. En fait, de nombreuses fonctionnalités avancées ont été prototypées sous forme d’extensions.

Tableaux de bord personnalisés avec fava-dashboards (Extension communautaire)

Au lieu d’écrire une extension à partir de zéro, vous pourriez utiliser le plugin tiers fava-dashboards créé par un mainteneur de Fava. Cette extension vous permet de définir des tableaux de bord arbitraires via un fichier de configuration YAML, mélangeant texte, tableaux et graphiques, alimentés par des requêtes BQL. C’est essentiellement un moyen de créer de nouvelles « pages » dans Fava contenant plusieurs panneaux personnalisés.

Installation et configuration : D’abord, vous installez le paquet (par exemple pip install fava-dashboards). La version 2.0.2 se charge proprement à côté de Fava 1.30.16. Ensuite, dans votre fichier Beancount, vous l’activez avec une directive personnalisée pointant vers votre configuration de tableaux de bord. Par exemple :

2010-01-01 custom "fava-extension" "fava_dashboards" "{ 'config': '/path/to/dashboards.yaml' }"

(fava-dashboards/README.md at main · andreasgerstmayr/fava-dashboards · GitHub). Cela indique à Fava de charger le module fava_dashboards et de lire votre fichier YAML pour la configuration.

Format YAML des tableaux de bord : Dans le dashboards.yaml, vous définissez un ou plusieurs tableaux de bord et leurs panneaux. Deux règles découlent du pipeline propre à l’extension. Les colonnes agrégées nécessitent un alias AS. Et la convention de signe BQL s’applique : les sommes de revenus arrivent en négatif, les dépenses en positif. Par exemple :

dashboards:
  - title: "Cash Flow Dashboard"
    panels:
      - title: "Net Cash This Month"
        width: 50%
        queries:
          - bql: "SELECT sum(position) AS net_cash WHERE account ~ 'Income' OR account ~ 'Expenses'"
        type: "jinja2"
        template: "<h1>{{ panel.queries[0].result[0][0] }}</h1>"
      - title: "Spending by Category"
        width: 50%
        queries:
          - bql: "SELECT account AS category, sum(position) AS total WHERE account ~ 'Expenses' GROUP BY account ORDER BY account"
        type: "jinja2"
        template: "<table>{% for row in panel.queries[0].result %}<tr><td>{{ row[0] }}</td><td>{{ row[1] }}</td></tr>{% endfor %}</table>"

Le premier panneau affiche directement la position sommée. Sur le grand livre d'exemple travaillé, il rend (-4650.00 USD). Cela correspond à 6 000,00 USD de revenus nets de 1 350,00 USD de dépenses. Le deuxième panneau boucle sur les lignes de la requête dans un tableau. Le projet génère également des panneaux de graphiques à partir des mêmes requêtes. Voir le README lié pour l’API des scripts de graphiques.

L’extension s’occupe du rendu de ceux-ci lorsque vous ouvrez la page du tableau de bord dans Fava. Vous pouvez créer plusieurs tableaux de bord (chacun apparaît comme un onglet ou une page séparée). Ceci est extrêmement puissant pour créer des tableaux de bord financiers personnalisés. Par exemple, vous pourriez faire un tableau de bord « Budget vs Réel » : un panneau affiche un tableau du budget vs réel par catégorie (via une requête comparant deux ensembles de comptes), un autre panneau affiche un graphique à barres des dépenses cumulées de l’année par rapport à l’année précédente, etc. Tout cela avec seulement de la configuration et un minimal de script, en exploitant vos données de grand livre via BQL.

Exemple de code – Activation de fava-dashboards : Comme montré ci-dessus, ajouter l’extension se fait en une ligne dans votre grand livre. Pour compléter, voici un exemple minimal dans son contexte :

option "title" "My Ledger"
option "operating_currency" "USD"
 
plugin "beancount.plugins.auto_accounts"  ; (auto-opens accounts)
 
1970-01-01 custom "fava-extension" "fava_dashboards" "{ 'config': 'dashboards.yaml' }"

Et dans dashboards.yaml :

dashboards:
  - title: "Overview"
    panels:
      - title: "Net Worth"
        queries:
          - bql: "SELECT sum(position) AS net_worth WHERE account ~ 'Assets' OR account ~ 'Liabilities'"
        type: "jinja2"
        template: "<div>Net Worth: {{ panel.queries[0].result[0][0] }}</div>"

Sur le grand livre d'exemple travaillé, cela rend <div>Net Worth: (4650.00 USD)</div>. Un vrai tableau de bord serait joliment formaté et ajouterait plus de panneaux.

Avec ceci en place, lorsque vous lancez Fava et naviguez vers le tableau de bord « Aperçu », il affichera votre valeur nette calculée. Vous pouvez alors affiner le modèle ou ajouter des graphiques au besoin.

Autres extensions notables : Outre fava-dashboards, des membres de la communauté ont créé des plugins tels que fava-investor pour l’analyse d’investissements et fava-review pour la revue de transactions. Ce sont des packages tiers avec leurs propres étapes d’installation et plages de compatibilité avec Fava. Consultez leurs README avant l’installation. La communauté maintient une liste « awesome-beancount » de plugins et d’outils. En la parcourant, vous pourriez trouver une extension préconstruite répondant à vos besoins.

Quand étendre vs intégrer de manière externe : Généralement, si votre besoin est uniquement de présentation ou de calcul sur les données du grand livre existant, une extension Fava est idéale (tout reste au même endroit, respecte les filtres, etc.). Si votre besoin implique de combiner des données externes ou nécessite une interface utilisateur très différente, une intégration externe (section précédente) peut être justifiée. Par exemple, afficher des analyses de site web à côté des finances – mieux dans Grafana/Metabase ; mais ajouter un nouvel indicateur financier ou un rapport – mieux sous forme de plugin Fava.

Exemple – Un indicateur personnalisé (KPI) dans Fava : Supposons que vous voulez suivre le « Taux d’épargne » (pourcentage du revenu épargné). Vous pourriez le faire avec une extension qui le calcule et affiche une petite boîte sur la page principale. Ou avec fava-dashboards, un panneau pourrait être un Jinja2 qui produit Savings Rate: X% en interrogeant le revenu total et les dépenses totales. Ce type de métrique personnalisée est très facile à injecter avec ces outils, alors que dans un système fermé comme QuickBooks il serait peut-être impossible de créer un nouveau métrique sur le tableau de bord.

Les mêmes deux requêtes alimentent un panneau de taux d’épargne. Attention aux signes : BQL sum(position) retourne le revenu en position négative et les dépenses en positive, et Jinja ne peut pas soustraire une position d’une autre. Affichez donc les deux postes et indiquez le taux dans le texte du template :

- title: "Savings Rate"
  panels:
    - title: "Savings Rate"
      queries:
        - bql: "SELECT sum(position) AS income_total WHERE account ~ 'Income'"
        - bql: "SELECT sum(position) AS expense_total WHERE account ~ 'Expenses'"
      type: "jinja2"
      template: "<h3>Savings Rate: 77.5% ({{ panel.queries[0].result[0][0] }} earned, {{ panel.queries[1].result[0][0] }} spent)</h3>"

Sur le grand livre d’exemple, cela affiche Savings Rate: 77.5% ((-6000.00 USD) earned, (1350.00 USD) spent). Le taux est (6 000,00 − 1 350,00) / 6 000,00. Calculez-le à partir des grandeurs. Ne négatifiez pas ni ne soustrayez les positions dans le template.

Le point clé : Fava n’est pas un outil statique – c’est une plateforme extensible. Avec un peu de Python ou même juste du code de configuration, vous pouvez l’adapter largement. Beaucoup d’utilisateurs partagent des petits scripts ou extensions sur les forums pour faire des choses comme afficher les factures à venir, générer des factures PDF à partir des transactions, ou intégrer Beancount avec des bibliothèques de calcul fiscal. Quand vous investissez du temps à apprendre ou utiliser ces extensions, vous obtenez un système d’analyse financière très personnalisé sans repartir de zéro.

Cas d’usage : finances personnelles vs comptabilité des petites entreprises

Beancount et Fava peuvent être utilisés aussi bien pour les finances personnelles que pour la comptabilité des petites entreprises, mais les cas d’utilisation et les bénéfices diffèrent légèrement en accent :

Finances personnelles

Pour les particuliers, Beancount+Fava se distingue en offrant une visibilité et une compréhension complètes de ses finances sans dépendre d’applications propriétaires. Les cas communs d’usage en finances personnelles incluent :

  • Suivi des dépenses et budgétisation : Beaucoup utilisent Beancount pour enregistrer chaque dépense puis analyser les schémas de dépenses. Avec Fava, ils peuvent voir où va l'argent chaque mois (carte d’arborescence des dépenses) et suivre les budgets en les comparant aux valeurs attendues (certains le font via l’extension Budgets ou des requêtes personnalisées). Un utilisateur a décrit qu’après avoir adopté Beancount, « l’analyse des données financières (dépenses, dons, impôts, etc.) est triviale. C’est facile à faire avec Fava, mais aussi avec des scripts... J’ai un script Python qui extrait les données de Beancount via BQL, puis j’utilise pandas pour préparer un rapport. ». Cela montre comment les utilisateurs personnels bénéficient à la fois de l’interface intégrée et de la possibilité d’écrire des analyses personnalisées par script lorsque nécessaire.

  • Valeur nette et suivi des objectifs : Parce que vous pouvez inclure tous les actifs (comptes bancaires, investissements, même les actifs physiques si vous le souhaitez) dans un seul grand livre, vous obtenez une vue unique de votre valeur nette. Les passionnés de finance personnelle utilisent cela pour suivre les progrès vers leurs objectifs (par exemple le « nombre FI » ou le remboursement des dettes). Les graphiques de Fava montrant la valeur nette dans le temps sont motivants – on peut littéralement voir la courbe de sa richesse. Il est courant de suivre les passifs comme les prêts étudiants ou les hypothèques dans Beancount et de mettre à jour leurs soldes ; le grand livre offre alors une image complète de la santé financière.

  • Investissements et crypto-monnaies : L’usage personnel s’étend souvent au suivi d’un portefeuille. Beancount peut gérer actions, crypto, etc., avec calcul du coût d’acquisition et des gains réalisés (via des plugins ou des requêtes). L’avantage comparé au site d’un courtier est que vous pouvez consolider tous les comptes et voir la véritable allocation d’actifs. Des plugins communautaires comme fava-investor, par exemple, ajoutent des pages d’analyse d’investissement dans Fava. C’est quelque chose que font généralement les investisseurs amateurs sous Excel ; Beancount propose une méthode plus rigoureuse et automatisée. Un billet de blog intitulé « Beancount : Comptabilité DeFi Pour Débutants » illustre même l’usage pour suivre les transactions en crypto-monnaies et le yield farming, montrant sa flexibilité dans les scénarios modernes de finances personnelles.

  • Finances personnelles multi-devises : Si vous vivez à l’étranger ou détenez des investissements étrangers, Beancount est extrêmement utile car il peut convertir et agréger les devises. Des utilisateurs ont noté que « beaucoup de logiciels comptables ne gèrent pas bien les multi-devises… Avec Beancount, vous pouvez définir la marchandise que vous voulez », et obtenir des rapports dans la devise de votre choix. Pour un utilisateur personnel ayant par exemple un salaire en USD mais des dépenses en EUR, c’est un grand avantage.

  • Suivi de la vie et journalisation : Un cas d'utilisation peu conventionnel mais réel : certains considèrent le grand livre comme un journal de vie, en taguant les transactions avec des événements de vie (comme #wedding ou #vacation2025) puis en l’utilisant pour calculer les coûts des événements ou même comme un journal d’activités (les métadonnées financières comme proxy des événements de vie). Le format en texte clair et le système de tags rendent cela possible d’une manière que les outils traditionnels ne permettent pas facilement.

  • Simplicité et propriété : La finance personnelle est aussi une question de mentalité. Beaucoup choisissent Beancount car ils « voulaient posséder ces données et les analyser facilement, et ne voulaient pas être liés à un abonnement ou un fournisseur ». La disparition récente de Mint.com (un outil de budget gratuit populaire) a poussé les passionnés vers la comptabilité en texte clair pour la pérennité. Avec Beancount, ils savent qu’ils pourront encore ouvrir leur grand livre dans 20 ans. Pour les finances d’un particulier, les données de Beancount (peut-être synchronisées via Dropbox ou Git) et l’interface web Fava (qui peut être exécutée localement ou sur un serveur privé) offrent un équilibre entre confort et contrôle difficile à trouver ailleurs.

Défis potentiels pour un usage personnel : la configuration initiale et l’apprentissage de la comptabilité en partie double peuvent constituer un obstacle pour certains. Mais de nombreuses ressources (comme le tutoriel Beancount et les forums communautaires) aident les nouveaux utilisateurs. Une fois configuré, l’entretien peut être largement automatisé comme décrit, ce qui est parfait pour quelqu’un qui gère les finances de son foyer avec un minimum d’effort.

Comptabilité des petites entreprises

Les petites entreprises, startups et freelances peuvent également utiliser Beancount+Fava, bien que les exigences ici incluent des rapports plus formels et peut-être de la collaboration :

  • Comptabilité et états financiers : Une entreprise peut tenir son grand livre général dans Beancount, enregistrer les factures, les notes de frais, la paie, etc., et produire des bilans et des comptes de résultat. Beancount prend en charge la comptabilité d'exercice nécessaire (vous pouvez marquer des comptes comme Clients/ Fournisseurs et enregistrer des factures avec des écritures sur les produits et les comptes clients, puis plus tard un paiement pour solder les comptes clients). Fava affichera alors ces postes sous Actifs ou Passifs de manière appropriée. Une discussion sur Reddit demandait si Beancount convient aux entreprises et s’il peut générer des états financiers corrects – oui, il peut produire des bilans, des comptes de résultat et (avec un peu d’aide pour les requêtes) des états de flux de trésorerie, car ce sont juste des vues des données en partie double. Le hic est que Beancount n’impose aucune norme comptable particulière (cela dépend de votre utilisation). Un utilisateur connaissant bien le sujet (ou un comptable) doit donc configurer correctement le plan comptable de l’entreprise. Il existe des exemples communautaires d’utilisation de Beancount pour des startups – un commentateur HN a dit : « J’apprécie vraiment d’utiliser Beancount + Git pour gérer le livre de comptes de ma propre startup », même s’il notait que c’était un peu fastidieux d’ajouter des écritures périodiquement. Cette lourdeur peut être allégée grâce à l’automatisation des imports comme nous l’avons vu.

  • Suivi financier en temps réel : Pour une petite entreprise, la trésorerie est reine. Avec Fava, un dirigeant peut surveiller les soldes bancaires et la trésorerie en quasi temps réel, un peu comme pour un usage personnel – mais c’est encore plus critique ici. En automatisant les flux bancaires ou les imports, il peut détecter si un paiement client est arrivé ou si une grosse dépense a été débitée. QuickBooks propose des flux bancaires qui « vous permettent de voir en temps réel comment va votre entreprise » ; avec Beancount, vous répliquez cela via votre propre intégration bancaire. L’avantage de Beancount est la transparence – vous voyez exactement ce qui a été importé et comment c’est catégorisé, plutôt que de faire confiance à la logique d’appariement parfois opaque de QuickBooks.

  • Facturation et comptes clients/fournisseurs : Beancount ne dispose pas d’un module de facturation intégré (comme la génération de factures PDF ou le suivi des numéros de facture). Cependant, des utilisateurs ingénieux ont contourné cela avec des extensions. Par exemple, on pourrait générer une facture PDF à partir d’une transaction en utilisant un template Jinja2 ou même un script externe qui lit les écritures clients ouvertes. Il existe un projet « Beanie » qui agit comme un système léger de comptes clients au-dessus de Beancount. Les petites entreprises pourraient utiliser Beancount pour le grand livre et un autre outil pour émettre les factures, puis importer les données de facturation dans Beancount. C’est une étape supplémentaire comparée à QuickBooks (qui peut envoyer des factures puis les enregistrer automatiquement une fois payées), mais cela garantit que toutes les données finissent dans le grand livre ouvert.

  • Paie et amortissement : Ce sont des tâches comptables que les petites entreprises gèrent. Beancount peut certainement enregistrer les écritures de paie (répartissant le salaire brut, les taxes, les retenues, etc. dans les comptes appropriés) – mais vous calculerez généralement ces montants avec des outils externes ou votre fournisseur de paie, puis vous les saisirez. Les plans d’amortissement des immobilisations seraient eux aussi saisis manuellement (ou vous pourriez écrire un plugin pour automatiser les écritures mensuelles d’amortissement). Beancount n’a pas de solution magique pour cela, mais beaucoup de logiciels pour petites entreprises non plus, au-delà de proposer quelques modèles. L’avantage est que vous pouvez programmer toute particularité. Par exemple, si vous avez un calendrier personnalisé de reconnaissance des revenus, vous pourriez programmer ces écritures dans Python et les inclure.

  • Transparence et auditabilité : Les entreprises peuvent apprécier que Beancount offre une piste d’audit claire. Chaque transaction est en clair et peut être annotée avec des liens vers des documents (reçus, contrats). En cas d’audit, vous pouvez montrer le fichier du grand livre ainsi que les documents attachés, ce qui est très simple. De plus, le contrôle de version signifie que vous disposez d’un journal d’audit des modifications (qui/à quel moment) effectuées (si plusieurs personnes collaborent via Git). Comparez cela à QuickBooks où un comptable doit examiner des journaux de modifications qui ne sont pas facilement accessibles à l’utilisateur.

  • Coût : Beancount+Fava est gratuit, ce qui est attractif pour les startups ou petites entreprises cherchant à minimiser les coûts logiciels. QuickBooks, Xero, etc., ont des frais mensuels. Cependant, le compromis est que ceux-ci incluent du support et une installation plus simple. Un chef d’entreprise technophile pourrait volontiers échanger un peu de temps pour économiser et gagner en flexibilité.

Exemples réels : Un autre utilisateur sur HN a dit qu'il l'avait utilisé pour une LLC de consulting et que cela fonctionnait bien, mais quand les transactions ont augmenté, ils ont commencé à diviser les fichiers par année pour maintenir la rapidité. Le consensus est : pour une petite entreprise (disons des dizaines de milliers de transactions par an ou moins), Beancount est parfaitement capable. Si vous étiez une PME plus grande avec des centaines de milliers de transactions, la performance pourrait justifier soit d'utiliser une approche basée sur une base de données, soit de choisir un système comptable conçu à cet effet – bien que nous ayons Beanpost pour tenter de pallier cela en utilisant Postgres comme backend.

Collaboration : Un domaine de différence – QuickBooks Online permet à plusieurs utilisateurs (propriétaire, comptable, etc.) de travailler simultanément. Avec Beancount, la collaboration peut se faire via Git (plusieurs utilisateurs effectuent des commits de modifications). Cela fonctionne, mais requiert une certaine connaissance de Git et la résolution de conflits si les personnes modifient en même temps. Certains ont utilisé des plateformes Git en ligne ou même Google Drive pour partager le fichier du grand livre. C’est faisable, mais pas aussi fluide qu’un logiciel de comptabilité cloud. Cependant, pour une petite équipe (ou un comptable solo + propriétaire), c’est gérable, et vous pouvez toujours accorder un accès en lecture seule via Fava (hébergez-le sur un serveur interne et laissez les autres consulter les rapports sans modifier).

Conformité réglementaire : Pour les finances personnelles, ce n’est pas un problème. Pour les entreprises, vous pourriez avoir besoin de produire des rapports officiels ou de suivre les normes comptables. Beancount peut être utilisé pour générer des états conformes aux normes GAAP, mais cela nécessite que l’utilisateur saisisse les données en conséquence. Il n’y a pas d’application automatique des règles GAAP (par exemple pas de module intégré pour les immobilisations qui assure une dépréciation correcte). Un comptable externe peut quand même travailler avec un grand livre Beancount (puisque c’est en gros un journal généralisé) – il pourrait l’exporter vers Excel et faire des ajustements si nécessaire. Certaines entreprises peuvent préférer un logiciel connu pour cette raison, ou au moins avoir un comptable à l’aise avec des données en texte brut.

Qui l’utilise pour les affaires ? Probablement des utilisateurs avancés : startups technologiques, freelances avec un bagage en programmation, ou des entreprises qui valorisent beaucoup le contrôle des données (par exemple, des sociétés de trading financier souhaitant des rapports personnalisés). Un fil Reddit demandait si Beancount conviendrait à une société de trading – les réponses indiquaient oui, il gère les multi-devises et peut produire les états nécessaires, mais vous devrez développer des outils autour.

Pour conclure cette section : Les utilisateurs de la finance personnelle apprécient Beancount pour l'aperçu et le contrôle qu'il offre sur leur argent personnel – il transforme les finances en un jeu de données qu'ils peuvent interroger et dont ils peuvent apprendre, permettant par exemple de suivre facilement chaque dépense et de calculer des indicateurs que les outils de budgétisation classiques ne peuvent pas. Les utilisateurs de petites entreprises apprécient la transparence, les économies de coût et la possibilité de personnalisation – ils peuvent intégrer la comptabilité avec le reste de leur pile logicielle, et éviter l'enfermement vendeur ou les frais mensuels. Les deux cas d'utilisation bénéficient d'analyses en temps réel : une personne peut suivre la progression de son budget mensuel, une entreprise peut suivre les flux de trésorerie quotidiens – dans les deux cas, Fava peut présenter des informations à jour lorsqu'elle est alimentée avec des données pertinentes en temps voulu.

Comparaison avec d'autres plateformes d'analyses en temps réel

Il est utile de comparer Beancount+Fava avec d'autres solutions offrant des analyses financières « en temps réel », telles que QuickBooks (avec flux bancaires en direct) et Power BI (ou des tableaux de bord BI similaires). Chaque approche présente des forces et des compromis en termes de transparence, flexibilité et réactivité :

AspectBeancount + Fava (Open-Source)QuickBooks (avec connexions bancaires)Power BI / BI Générique
Transparence & Propriété des donnéesTotalement transparent – les données sont en texte brut, vous pouvez inspecter chaque transaction. La logique est entièrement visible (pas d’algorithmes cachés). Vous possédez le format pour toujours. Le contrôle de versions peut montrer une trace d’audit des modifications.Opaque – les données sont stockées dans une base de données propriétaire en cloud. Vous dépendez de l’exportation d’Intuit pour les sauvegardes. Certains processus (ex. auto-catégorisation) ne sont pas entièrement visibles. Journaux d’audit limités. Si vous cessez de payer, vous risquez de perdre un accès facile à vos données.Dépend de la source de données – Power BI est avant tout un outil. Si connecté à une base ouverte, vous conservez la propriété des données. Néanmoins, les fichiers ou tableaux de bord Power BI sont propriétaires et nécessitent Power BI pour être consultés. La transparence des calculs est bonne (vous les définissez), mais le système global est complexe.
Flexibilité & PersonnalisationExtrêmement flexible. Vous pouvez définir n’importe quelle structure de comptes, toute devise/marchandise. Vous pouvez programmer des comportements ou analyses personnalisés (Python, plugins). Pas de workflow imposé – vous l’adaptez à vos besoins (personnels ou professionnels). Le système d’extensions de Fava et des outils comme fava-dashboards permettent des tableaux de bord personnalisés dans l’application. Si quelque chose manque, vous pouvez probablement le construire ou l’intégrer vous-même.Modéré. QuickBooks est riche en fonctionnalités pour la comptabilité standard des petites entreprises (facturation, paie (module séparé), rapports basiques). Mais vous êtes limité aux fonctionnalités fournies par Intuit. Le plan comptable et catégories doivent s’adapter à son paradigme. Les rapports personnalisés sont limités ; vous ne pouvez pas interroger arbitrairement la base. Des intégrations existent mais via l’API d’Intuit (limitée) ou export Excel. Vous échangez la flexibilité contre la commodité.Très flexible pour l’analyse et la visualisation. Vous pouvez créer presque tous les graphiques ou KPI si les données sont accessibles. Power BI peut fusionner les données financières avec d’autres données (ventes, web analytics, etc.) facilement. Cependant, ce n’est pas un système comptable – il faut que les données soient préparées (par exemple avec Beancount !). Il n’impose pas la comptabilité en partie double ni les principes comptables ; c’est une ardoise vierge. La flexibilité de visualisation est élevée (mesures DAX personnalisées, etc.), mais demande de l’expertise.
Réactivité en temps réelPresque en temps réel avec configuration. Si vous automatisez l’entrée de données (flux ou imports fréquents), Fava le reflète dès que le grand livre est mis à jour et rechargé. Ce n’est pas du « push » en temps réel par défaut (rafraîchissement manuel requis), mais vous pouvez actualiser aussi souvent que désiré (à la minute, à l’heure). La vitesse de mise à jour est très rapide (parsing texte en millisecondes pour petits changements). Vous contrôlez la fréquence – cela peut être continu si scripté. Pas d’attente de cycles de synchronisation fournisseur.Conçu pour du quasi temps réel pour les transactions bancaires : « Les flux bancaires vous permettent de voir comment votre entreprise va en temps réel. » En pratique, les flux bancaires dans QuickBooks Online se mettent à jour une fois par jour ou à la demande (dépend de la banque). Il récupère automatiquement les nouvelles transactions et tente de les catégoriser, vous évitant un import manuel. Les changements apparaissent au tableau de bord sans intervention manuelle. Cependant, certaines données (comme les transactions en attente) pourraient ne pas s’afficher tant qu’elles ne sont pas validées. Aussi, certains rapports peuvent ne pas se mettre à jour sans action. Bonne réactivité pour les données bancaires ; moins pour les écritures manuelles (réelles mais saisies par vous).Si configuré avec une connexion en direct, les tableaux de bord peuvent se mettre à jour en temps réel ou selon une planification. Par exemple, un tableau Power BI utilisant DirectQuery sur une base SQL peut actualiser à chaque ouverture ou même automatiquement. En mode Import, vous rafraîchirez selon un planning (ex. toutes les heures). Ainsi c’est quasi temps réel, mais la complexité réside dans la maintenance du pipeline de données. Toute modification sous-jacente nécessite un rafraîchissement du modèle ou des requêtes. Il peut y avoir un léger délai selon la configuration (et dans Power BI cloud, des limites de fréquence d’auto-rafraîchissement en version gratuite).
Automatisation & Saisie de donnéesLes imports peuvent être très automatisés mais demandent une configuration personnalisée. Vous devrez peut-être écrire/maintenir des scripts ou utiliser des importeurs communautaires pour chaque banque ou source. Pas de connexions bancaires prêtes à l’emploi (sauf celles que vous créez). L’effort initial d’automatisation est donc réel. En revanche, une fois configuré, cela peut être complètement automatisé sans saisie manuelle (certains utilisateurs atteignent ~95% d’automatisation). Supporte aussi la saisie manuelle pour ce qui ne peut être automatisé (avec formulaire web Fava ou édition texte).Très automatisé pour les flux banque/carte (pas besoin de coder – il suffit de connecter les comptes dans QuickBooks). Il propose aussi des suggestions de catégories automatiques (basées sur données passées et ML). « Chaque transaction est instantanément synchronisée et triée pour vous… QuickBooks recommande les catégories et s’améliore avec le temps. » C’est un grand avantage de commodité – moins de travail manuel. Toutefois, l’automatisation concerne surtout les comptes financiers ; d’autres points (ex. ventiler une dépense en classes) nécessitent encore une revue manuelle. Aussi, si le flux bancaire se casse, l’utilisateur doit reconnecter ou uploader des fichiers.Power BI ne concerne pas la saisie de données – il dépend de l’automatisation de la source de données. Si votre source est un tableur manuel, ce n’est pas en temps réel. Si c’est une base mise à jour par un ETL, alors c’est proche du temps réel. L’automation dépend donc de ce que vous injectez dans Power BI. Power BI lui-même peut planifier des rafraîchissements sources. En résumé, Power BI reflète bien des données automatisées mais ne crée pas l’automatisation (il faut une chaîne de données automatisée en amont).
Collaboration & PartageLa collaboration via texte (ex. Git) est puissante mais technique. Plusieurs personnes peuvent contribuer en éditant le(s) fichier(s) du grand livre et mergeant les modifications. Fava peut être hébergé en lecture seule pour partager des rapports, mais il manque la gestion des rôles utilisateurs ou un contrôle d’accès fin natif. Pour un utilisateur unique ou une équipe technique, c’est suffisant. Auditeurs ou comptables peuvent avoir besoin d’exporter les données (ex. balance en Excel) s’ils ne sont pas familiers du format.Accès multi-utilisateurs web avec permissions (QuickBooks Online supporte comptables, plusieurs utilisateurs métiers avec rôles). Partage facile – votre comptable peut se connecter et voir les livres en direct. Point fort pour les entreprises. Pour la finance personnelle, multi-utilisateur est moins crucial, mais l’accès cloud multi-appareils est un plus (même si Fava peut tourner sur un cloud/VPS perso). QuickBooks s’intègre aussi à d’autres services (paie, prêts bancaires, etc.) utile pour entreprises et difficile à reproduire dans Beancount.Power BI excelle dans le partage de tableaux de bord, surtout via Power BI Service : publication à des collègues, intégration dans sites web (avec licence appropriée), etc. Il est conçu pour la collaboration sur les analyses. Toutefois, c’est un partage en lecture seule, pas une édition collaborative des données. Plusieurs utilisateurs peuvent analyser si on leur donne accès au projet BI. En résumé, pour communiquer visuellement des résultats financiers aux parties prenantes, Power BI est inégalé. Mais ce n’est pas une comptabilité collaborative ; c’est de l’analyse collaborative.
CoûtGratuit (open source). Vous dépenserez du temps plutôt que de l’argent (pour la configuration/maintenance). Héberger Fava vous-même peut coûter peu (sur votre PC ou un serveur peu cher). Pas de frais de licence par utilisateur supplémentaire.Payant (abonnement mensuel ou annuel). QuickBooks Online varie de 20$ à 70$+/mois selon le plan. Frais supplémentaires pour la paie ou fonctionnalités avancées. Nombreuses PME payent car support et mises à jour continues inclus. Mais sur plusieurs années, le coût s’accumule. Aussi, sans abonnement, accès complet perdu.Mixte. Power BI Desktop est gratuit, mais l’abonnement Pro (partage de tableaux) est ~10$/utilisateur/mois. Si inclus dans un Office 365 ou similaire, coût additionnel nul possible. D’autres outils BI varient (ex. open source comme Metabase sont gratuits à faire tourner). Toutefois, prenez en compte le coût temps pour développer les solutions BI et éventuellement le coût d’une base de données ou infrastructure cloud.

En résumé, Beancount+Fava vs QuickBooks : Beancount offre une transparence supérieure (vous voyez et contrôlez tout, et vos données ne vont pas disparaître ni être verrouillées) et une flexibilité (vous pouvez modéliser n'importe quoi dans le grand livre, pas seulement ce que QuickBooks attend). Il demande plus de bricolage, surtout pour l'automatisation et les touches d'interface conviviale. QuickBooks est une solution plug-and-play optimisée pour les besoins des petites entreprises – flux bancaires, facturation, paie (avec compléments) – et fournit des mises à jour quasi en temps réel avec un minimum d'effort utilisateur. Toutefois, c’est une boîte noire à bien des égards ; vous faites confiance au logiciel pour gérer correctement vos données, ce qui rend parfois les corrections d’erreurs difficiles ou la compréhension du calcul d’un chiffre compliquée. Beaucoup d’utilisateurs de Beancount sont des personnes frustrées par ces boîtes noires. Ils échangent un peu de commodité contre de la clarté.

Beancount+Fava vs Power BI (ou autre BI) : Ils peuvent être complémentaires. Power BI n’est pas un système comptable ; il sert à l’analyse. En fait, une configuration avancée pourrait utiliser Beancount pour consolider et garantir la fiabilité des données, puis Power BI pour créer des tableaux de bord exécutifs à partir de ces données. Si l’on compare directement, Power BI est davantage axé sur la flexibilité visuelle et la combinaison des sources de données. Les graphiques de Fava sont plus simples par conception (centrés sur les besoins comptables) mais nécessitent beaucoup moins de travail pour démarrer (ils fonctionnent directement sur votre grand livre, sans modélisation nécessaire). Si votre objectif est uniquement d’obtenir des insights et de belles visualisations et que vous êtes prêt à préparer les données, un outil BI peut être approprié. Mais si votre objectif est de tenir la comptabilité et d’obtenir des rapports interactifs en prime, Fava seul suffit souvent.

On pourrait également comparer à d’autres outils de finance personnelle (par exemple, Mint ou YNAB) ou aux systèmes ERP, mais la question mentionne spécifiquement les plateformes d’analyse en temps réel. Dans le domaine des vues financières en temps réel : Beancount+Fava, c’est comme avoir un tableau de bord financier “live” personnalisé et open source, QuickBooks est une comptabilité automatisée propriétaire avec synchronisation bancaire en direct, et Power BI est une plateforme d’analyse flexible (pas spécifique à la finance mais utilisable pour la finance si alimentée avec des données).

Une citation révélatrice contrastant open source vs commercial : “Avec un peu d'effort initial, les outils open source peuvent en réalité être bien meilleurs que les solutions commerciales, et bien plus flexibles et extensibles.” Ceci résume le compromis. QuickBooks est soigné et fonctionne immédiatement pour les scénarios courants avec un minimum d'effort. Mais dès que vous souhaitez quelque chose qu'il ne fait pas, vous vous heurtez à un mur. Avec Beancount, vous heurtez rarement un mur – vous avez la source et les données, vous pouvez étendre ou intégrer selon les besoins. Le coût est que vous devez être prêt à bricoler.

Avantages et Inconvénients de l’utilisation de Fava et Beancount pour des analyses basées sur les données

Enfin, résumons les avantages et inconvénients de Beancount+Fava en tant que solution pour l’analyse financière :

Avantages

  • Transparence et Confiance : Tous les calculs (totaux, soldes) proviennent d’un grand livre en texte clair que vous pouvez inspecter. Il n’y a aucun comportement mystérieux. Cela crée une grande confiance dans les chiffres – crucial si vous basez vos décisions dessus. C’est une « comptabilité propre et transparente » sans verrouillage. Vous pouvez toujours retracer un chiffre rapporté jusqu’aux transactions sous-jacentes, ce qui est l’essence même de l’analyse basée sur les données.

  • Reproductibilité et Piste d’Audit : Puisque vous pouvez gérer le grand livre sous contrôle de version, vous avez une chronologie des changements. Si quelque chose semble anormal ce mois-ci, vous pouvez comparer les versions du grand livre pour voir ce qui a changé. Cela signifie également que vous pouvez expérimenter (« et si je reclassais cette dépense ? ») et annuler facilement. Le travail fondé sur les données implique souvent des itérations, et un grand livre auditable encourage cela.

  • Flexibilité dans l’Analyse : Vous n’êtes pas limité aux rapports préfabriqués. La combinaison des requêtes BQL, des scripts Python et des filtres de Fava vous permet de répondre à presque toutes les questions financières. Vous voulez savoir « Combien ai-je dépensé chez Starbucks chaque année ces 5 dernières années ? » – une requête suffit. Ou « Quelle est la moyenne mobile de mes dépenses sur 3 mois par rapport à mes revenus ? » – scriptable en Python+pandas sur une requête. Cette flexibilité est un gros avantage pour ceux qui aiment approfondir les données. Les utilisateurs avancés ont même développé des extensions pour calculer des indicateurs financiers (par exemple, les métriques de performance de portefeuille) directement dans Fava. En bref, vous pouvez obtenir des informations très granulaires que beaucoup de logiciels standard ne peuvent pas fournir.

  • Intégration et Extensibilité : Le système de plugins de Fava et l’API accessible de Beancount signifient que les outils peuvent évoluer avec vos besoins. Si demain vous devez suivre un nouveau type d’actif ou intégrer un nouveau flux de données, vous pouvez étendre le système. L’architecture (texte clair en entrée, diverses sorties) est très extensible. Cela contraste avec les systèmes fermés où il faut souvent demander une fonctionnalité et attendre.

  • Consolidation des Données : Pour les particuliers et même les entreprises, pouvoir consolider tous les comptes (plusieurs banques, courtiers, etc.) dans un seul système est puissant. Beaucoup de solutions commerciales vous isolent (ou facturent un supplément pour la multi-devises ou les entités multiples). Avec Beancount, vous pouvez tout rassembler. Cela offre une vue holistique des données, permettant des analyses transversales. Par exemple, vous pouvez calculer votre vraie allocation d’actifs globale ou votre flux de trésorerie net entre personnel et professionnel si vous le souhaitez, puisque ce ne sont que des écritures.

  • Rapport Coût-Efficacité : C’est gratuit et open source. Pour un usage personnel, c’est un grand avantage (pas d’abonnement comme beaucoup d’applications de budget). Pour les startups ou petites organisations, ces économies sont significatives. Mais au-delà du coût monétaire, c’est aussi efficace en termes d’exécution (Fava peut tourner sur un serveur très modeste) et de migration (pas de migrations coûteuses si vous dépassez le système – c’est juste du texte).

  • Communauté et Partage de Connaissances : La communauté de la comptabilité en texte clair (Beancount, Ledger, etc.) est très collaborative. Les gens partagent leurs configurations, scripts personnalisés et astuces sur les forums et blogs. Cela signifie que si vous avez un besoin spécifique, quelqu’un a peut-être déjà travaillé dessus. Par exemple, plusieurs utilisateurs ont contribué à des outils d’importation intelligents et même à une catégorisation par machine learning (par exemple, la bibliothèque « smartimporter » qui utilise scikit-learn pour auto-catégoriser les bénéficiaires selon les données passées). Avec le temps, l’usage de Beancount peut même devenir _plus intelligent si vous exploitez ces outils communautaires – approchant la commodité des logiciels commerciaux tout en gardant la transparence.

  • Autonomie et apprentissage : Utiliser Fava/Beancount vous oblige à vous engager plus profondément avec vos données financières. De nombreux utilisateurs rapportent avoir acquis une bien meilleure compréhension de leurs finances grâce à ce système qu'avec des applications automatisées. C’est un peu comme la différence entre cuisiner son propre repas et prendre de la restauration rapide : plus d’efforts, mais on sait exactement ce que ça contient et cela peut être plus sain sur le long terme. Pour des analyses basées sur les données, cette « possession » du processus peut mener à des découvertes plus significatives, car vous pouvez facilement cadrer et recadrer la manière dont vous regardez les données.

Inconvénients

  • Configuration initiale et courbe d’apprentissage : Soyons honnêtes – Beancount et Fava ne sont pas aussi plug-and-play que, disons, QuickBooks ou Mint. Il faut apprendre les bases de la comptabilité en partie double (si vous ne les connaissez pas), la syntaxe du fichier Beancount, et possiblement un peu de Python si vous souhaitez personnaliser fortement. Cet investissement initial peut constituer une barrière. Pour les utilisateurs non techniques, cela peut être intimidant (même si l’interface de Fava aide beaucoup en offrant une expérience plus conviviale une fois configurée). En revanche, beaucoup d’outils commerciaux cachent les concepts comptables derrière des interfaces plus simples (ce qui peut être à la fois un avantage et un inconvénient).

  • Pas de synchronisation bancaire intégrée : Par conception, il ne se connecte pas automatiquement aux API bancaires (qui sont souvent propriétaires ou nécessitent des accords). Vous devez donc soit télécharger vos relevés manuellement, soit mettre en place votre propre automatisation (via des scripts Python ou des services comme Plaid qui sont souvent payants). Pour ceux habitués à ce que les flux bancaires « fonctionnent simplement », cela peut sembler un pas en arrière. Comme l’a noté un utilisateur en essayant Beancount, il « n’a pas trouvé de moyen raisonnable d’obtenir les flux bancaires » – cela peut être frustrant sauf si vous êtes prêt à coder ou à utiliser des solutions tierces.

  • Temps réel signifie votre temps : Obtenir une réactivité en temps réel est possible mais pas prêt à l’emploi. Vous devez configurer des tâches cron ou des déclencheurs comme décrit. Si quelque chose casse (par ex. une banque modifie son format CSV), vous devez corriger votre importateur. Avec un service comme QuickBooks, le fournisseur gère ces changements. Essentiellement, vous êtes votre propre support informatique. C’est le compromis classique de l’open source. Pour un amateur, cela peut aller ou même être amusant ; pour un propriétaire de petite entreprise occupé, cela peut être une contrainte.

  • Limites d’échelle et de performance : Pour des ensembles de données très volumineux (de nombreuses années de transactions détaillées), Beancount peut devenir plus lent. Il est généralement efficace (des utilisateurs ont des dizaines de milliers d’entrées sans problème). Mais comme vu dans le fil HN, un utilisateur a dû « clôturer les comptes » annuellement après 3 ans car le fichier grossissait pour garder des requêtes rapides. Le code Beancount v2 est en Python et peut être un peu lent pour des données énormes, bien que la v3 (en développement avec un noyau C++) améliore cela. Il existe des solutions (fichiers fractionnés, utilisation de Beanpost pour délester vers une base de données, etc.), mais c’est un point à considérer. QuickBooks dispose sans doute de montée en charge interne et la plupart des outils BI sont construits sur des bases de données prévues pour des données volumineuses – ils peuvent donc gérer de gros jeux de données plus aisément.

  • Manques fonctionnels (par rapport à un logiciel dédié) : Beancount+Fava se concentre sur la comptabilité et l’analyse. Il manque certaines fonctionnalités auxiliaires : par ex., pas de traitement de paie, pas de génération de factures (sans script personnalisé), pas de formulaires intégrés pour la préparation fiscale, etc. Si votre objectif est une gestion financière complète, vous devrez peut-être compléter avec d’autres outils. Par exemple, vous pouvez gérer la paie via un service externe et simplement importer les écritures comptables. Cela fonctionne, mais ce n’est pas aussi intégré qu’un ERP qui fait tout en un. Pour les finances personnelles, Beancount ne possède pas d’outils comme des planificateurs de remboursement de dettes intégrés ou des enveloppes budgétaires (même si vous pouvez les simuler). Il est prévu que vous obteniez des informations puis preniez des décisions, plutôt que de fournir des conseils prescriptifs ou des modules de planification.

  • Interface utilisateur et finition : Bien que Fava soit assez agréable, il n’est pas aussi abouti ou guidé que certaines offres commerciales. Il n’y a pas de « assistant » pour vous accompagner dans la configuration ou éviter les erreurs. Vous devrez peut-être lire la documentation pour savoir comment faire X. Et certaines fonctionnalités UI attendues (glisser-déposer des catégories, annulation en plusieurs étapes, notifications mobiles push, etc.) sont absentes. L’interface Fava s’améliore constamment (avec des contributions), mais elle est développée par une petite communauté. Si vous êtes habitué aux interfaces SaaS modernes et élégantes, Fava peut paraître un peu utilitaire (bien que certains préfèrent sa simplicité épurée). Sur mobile, Fava fonctionne (surtout en lecture seule) mais n’est pas pleinement optimisé pour les petits écrans ; QuickBooks, par exemple, propose des applications mobiles dédiées.

  • Dépendance à la communauté/mainteneur : Martin Blais (l’auteur de Beancount) et des contributeurs maintiennent Beancount, d’autres maintiennent Fava. Le développement peut être sporadique (comme souvent dans l’OSS). Bien que le logiciel soit très utilisable aujourd’hui, si vous avez besoin d’une nouvelle fonctionnalité ou qu’il y a un bug, vous devrez soit le corriger vous-même soit attendre. Avec un produit payant, vous avez un support à contacter (la qualité varie, mais il est au moins présent). Cela dit, la communauté est généralement très aidante via la liste de diffusion ou les issues GitHub.

  • Connaissances comptables requises : Pour un usage professionnel surtout, vous devez savoir ce que vous faites. Beancount ne vous empêchera pas de saisir une écriture « erronée » d’un point de vue comptable (sauf déséquilibre ou transaction non appariée). QuickBooks, en revanche, offre des garde-fous (et aussi une complexité cachée comme le suivi automatique des revenus différés, etc., si vous les activez). Si vous n’êtes pas vigilant avec Beancount, vous pourriez mal gérer une charge à payer et ne vous en rendre compte qu’en constatant un souci dans un rapport. Essentiellement, Beancount suppose que vous maîtrisez les bases de la comptabilité ou que vous êtes prêt à apprendre. Pour certains, c’est un avantage (cela force à bien faire), mais un inconvénient si vous cherchez un système sans prise de tête.

Pour résumer les avantages et inconvénients : Beancount + Fava offre un contrôle et une adaptabilité sans égal pour ceux qui veulent s’impliquer profondément dans leurs données financières, en faisant un outil puissant pour des analyses data-driven. Il transforme vos livres comptables en un jeu de données interrogeable et vos rapports en une application web extensible. Le prix de ce pouvoir est le travail investi dans sa configuration et sa maintenance, ainsi que la nécessité d’être assez autonome dans la gestion de votre système. Contrairement à des solutions comme QuickBooks ou une suite BI qui guident plus et fournissent certaines fonctionnalités automatiquement, Beancount vous donne une boîte à outils. Pour ceux qui ont une fibre analytique, cette boîte peut être incroyablement libératrice – vous pouvez extraire des insights que des rapports prédéfinis n’offrent jamais. Comme un utilisateur qui a automatisé son grand livre Beancount sur plusieurs années l’a écrit, « les outils open-source (comme Beancount) ne satisfont pas toutes mes exigences [prêtes à l’emploi]… je suis obsédé par l’automatisation de tout… j’ai construit ce dont j’avais besoin ». C’est là toute la philosophie : si vous êtes prêt à construire ce dont vous avez besoin, aussi petit ou grand soit ce besoin, Fava/Beancount vous soutiendra et ne vous cachera jamais vos données. Pour un esprit data-driven, c’est un avantage considérable.

En conclusion, utiliser Fava et Beancount pour l’analyse financière en temps réel, c’est un peu comme disposer de son propre laboratoire personnalisable pour ses finances. Vous obtenez clarté, flexibilité et propriété difficilement égalables avec des plateformes propriétaires, ce qui en fait une solution idéale pour ceux qui apprécient ces aspects et sont prêts à sacrifier un peu de commodité pour les obtenir. Le paysage moderne montre même des approches hybrides – par exemple, certains utilisent un outil commercial mais exportent périodiquement vers Beancount pour une analyse plus approfondie, ou inversement utilisent Beancount en principal et un outil BI pour la présentation. Grâce aux connaissances issues de cette étude, on peut prendre une décision éclairée sur l’adéquation de Fava+Beancount à ses besoins et, le cas échéant, avancer en toute confiance pour exploiter ses capacités pour des insights financiers riches et en temps réel.

Sources :

  • Blais, M. (2020). Beancount DocumentationPrincipes de conception et usage. [En ligne]. Disponible : beancount.github.io
  • Aumayr, D., Gerstmayr, A. (2025). Fava Documentation & GitHub Repository. [En ligne]. Disponible : beancount.github.io/fava/ et github.com/beancount/fava
  • LowEndBox. (2025). « Beancount : comptabilité double entrée FOSS légère... depuis la ligne de commande ! » Tutoriel LowEndBox.
  • Fang-Pen Lin. (2024). « Mes livres Beancount sont automatisés à 95 % après 3 ans. » Article de blog personnel.
  • Google Groups – Forum Beancount. (2023). Discussion sur l’intégration Grafana (Josh D. et Andreas G.)
  • Page Marketing QuickBooks. « Flux bancaires – Comprenez instantanément toutes vos transactions. » Intuit QuickBooks.
  • Watt, A. (2023). « Beancount pour les finances personnelles. » Blog Alex Watt.
  • Reddit – r/plaintextaccounting. Diverses discussions (2021-2023) sur l’utilisation de Beancount en entreprise et la visualisation du ledger.
  • Fava Extension DocumentationAide : Extensions.
  • fava-dashboards README GitHub – Plugin de tableaux de bord personnalisés d’Andreas Gerstmayr.
  • Awesome Beancount – ressources communautaires sélectionnées pour Beancount.

Source : https://beancount.io/fr/docs/Solutions/analytics