Analyse Financière en Temps Réel avec Fava et Beancount
Introduction
Beancount est un système de comptabilité en partie double open source qui utilise des fichiers texte brut 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 visualiser des rapports, des visualisations et gérer votre grand livre. Dans ce rapport, nous explorons les capacités principales de Beancount et Fava, et comment réaliser une analyse financière en temps réel ou quasi temps réel avec ces outils. Nous abordons les conseils de configuration pour l'automatisation et l'actualisation 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 et de plugins personnalisés, des cas d'utilisation dans les finances personnelles et des petites entreprises, des comparaisons avec d'autres plateformes (Power BI, QuickBooks), et les avantages/inconvénients de l'utilisation de Fava + Beancount pour des informations basées sur les données.
Capacités Principales de Beancount et Fava
Beancount (Moteur de Comptabilité en Texte Brut)
- Grand Livre en Partie Double en Texte Brut : 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, ce qui assure l'intégrité comptable. Le format texte brut signifie que vos données sont lisibles par l'homme, contrôlables par version et non verrouillées par un fournisseur. - Comptes Hiérarchiques et Flexibles : Vous pouvez définir n'importe quel compte (par exemple,
Actifs:Banque:Chèque,Dépenses:Alimentation:Café) dans une hiérarchie. Beancount n'a pas d'opinion sur votre plan comptable, il fonctionne donc pour les finances personnelles, les livres des petites entreprises, les investissements, etc. - il est "flexible : fonctionne pour les finances personnelles, la comptabilité des petites entreprises, la crypto, les investissements en actions, et plus encore." - Devises et Produits Multiples : Beancount prend en charge nativement plusieurs devises et produits (par exemple, actions, crypto). Vous pouvez enregistrer des transactions dans différentes devises, 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 marchande" si les données de prix sont fournies. Cela le rend adapté aux portefeuilles et aux finances internationales.
- Vérifications et Équilibrages Automatisés : Le système prend en charge les assertions de solde (vous pouvez déclarer quel devrait être le solde d'un compte à une date donnée, et Beancount affichera une erreur si cela ne correspond pas) et les transactions de solde pour la clôture des livres. Il prend également en charge les écritures d'ouverture/de clôture des capitaux propres et conserve le calcul des bénéfices non distribués pour les clôtures de période. Ceux-ci aident à garantir que vos livres restent cohérents et à détecter les erreurs précocement.
- Moteur de Requête et de Reporting Puissant : Beancount est livré avec un langage de requête BQL (Beancount Query Language) et des outils en ligne de commande tels que
bean-balance,bean-registeretbean-querypour générer des rapports. Vous pouvez interroger le grand livre pour des rapports personnalisés (par exemple, la liste des dépenses par bénéficiaire, les flux de trésorerie pour une période) - en traitant essentiellement le grand livre comme une base de données. Il est rapide même avec des milliers de transactions et peut être exporté vers CSV ou même directement vers Excel/LibreOffice (avec des modules complémentaires optionnels). - Extensibilité via des Plugins : Beancount est écrit en Python et autorise des plugins personnalisés pour étendre ses fonctionnalités. Les plugins peuvent appliquer des règles ou des calculs supplémentaires lorsque le fichier est traité. (Par exemple, il existe des plugins pour gérer les lots fiscaux ou pour garantir qu'aucun achat ne manque de coût.) Le système de plugins et l'API Python permettent aux utilisateurs avancés de scripter des comportements personnalisés ou d'intégrer Beancount à d'autres systèmes.
- Importateurs pour les Données Externes : Une caractéristique pratique clé est le framework ingest de Beancount pour l'importation de données (par exemple, à partir de relevés bancaires). Vous pouvez écrire ou utiliser des plugins d'importation qui analysent les relevés CSV, OFX, PDF, etc., et les convertissent en entrées Beancount. Ceci est essentiel pour l'automatisation (plus d'informations à ce sujet plus tard).
- Auditable et Compatible avec le Contrôle de Version : Parce qu'il s'agit de texte brut, vous pouvez conserver votre grand livre dans Git ou un autre contrôle de version. Chaque modification est transparente et vous avez un historique complet des modifications. Cela rend les audits ou les révisions des modifications simples (de nombreux utilisateurs valident les modifications de chaque jour dans un dépôt Git, fournissant un journal inviolable de toutes les entrées financières). Ce niveau de transparence est un différenciateur majeur par rapport aux logiciels de comptabilité fermés - "pas de verrouillage SaaS - juste une comptabilité propre et transparente avec un reporting puissant."
Fava (Interface Web pour Beancount)
- Interface Web Interactive : Fava fournit un serveur web local qui transforme votre grand livre Beancount en une interface utilisateur 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 utilisateur est dynamique et conviviale par rapport à la ligne de commande. Vous le démarrez avec un simple
fava yourfile.beancountet obtenez une application web pour vos livres. - Graphiques et Diagrammes Intégrés : Fava génère des graphiques pour vous aider à visualiser vos données. Par exemple, il comprend un graphique linéaire de la valeur nette au fil du temps, des diagrammes à barres pour les revenus par rapport aux dépenses par mois et des diagrammes circulaires/arborescents pour la ventilation des dépenses. Ces visuels se mettent à jour avec vos données et prennent en charge différentes vues (par exemple, "au coût" par rapport à "la valeur marchande" 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 découper et d'analyser vos données en temps réel. Vous pouvez filtrer par heure (par exemple, année, trimestre, mois), par expression régulière de compte, par bénéficiaire, par narration ou par balises/liens. Cela facilite l' inspection des données en temps réel - par exemple, filtrer rapidement sur "Tag=Voyage" et "Année=2025" pour voir toutes les dépenses de voyage en 2025, avec les totaux. L'interface prend en charge les requêtes complexes via cette barre de filtre ou via la page de requête (où vous pouvez exécuter directement des requêtes BQL).
- Prise en Charge de Plusieurs Fichiers et Consolidation : Fava peut charger plusieurs fichiers Beancount à la fois (utile si vous séparez les grands livres) et basculer entre eux. Il peut également les consolider si nécessaire (par exemple, les grands livres personnels et commerciaux sont consultés ensemble).
- Saisie et Modification des Données : Fait unique, Fava n'est pas en lecture seule - il possède un éditeur et un formulaire de saisie de transaction. Vous pouvez ajouter de nouvelles transactions via un formulaire web (il insérera l'entrée dans votre fichier .beancount). Vous pouvez également ouvrir le fichier source dans un éditeur externe à partir de Fava. Fava prend même en charge les raccourcis clavier "de type Gmail" (appuyez sur
?dans l'interface utilisateur pour les voir) pour les utilisateurs expérimentés. Cela transforme Fava en un système comptable léger où vous pouvez saisir et afficher les données à partir de la même interface. - Rapports et Exploration des Comptes : Fava fournit des rapports comptables standard : compte de résultat (pertes et profits), 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 explorer ses détails ou basculer entre l'affichage au coût ou à la valeur marchande pour les actifs. Fava affiche également les "gains non réalisés" pour les investissements si vous avez des données de prix. Il génère une vue journal de toutes les entrées 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 des relevés, Fava vous aide à les organiser. Beancount a une notion de dossier de documents et Fava vous permet de glisser-déposer des fichiers sur des comptes ou des transactions - il les stockera et ajoutera une entrée de document dans votre grand livre. Ceci est utile pour conserver les documents justificatifs liés à vos données de grand livre.
- Personnalisation via des Extensions : Fava peut être étendu avec des plugins (écrits en Python) pour ajouter de nouveaux rapports ou fonctionnalités. Certaines extensions sont regroupées (par exemple, un rapport de liste de portefeuilles pour les investissements). Nous discuterons des extensions personnalisées plus tard, mais la conception de Fava permet essentiellement d'injecter de nouvelles pages, et même du JavaScript personnalisé, via son API d'extension. Cela signifie que si une certaine analyse ou tableau de bord n'est pas intégré, un utilisateur avancé peut l'ajouter.
- Performance : Fava est efficace - il recharge les données en mémoire et sert les pages rapidement. L'analyse Beancount sous-jacente est assez rapide (optimisée en C++ dans la dernière version), de sorte que même les grands livres volumineux se chargent en une seconde ou deux. En pratique, Fava peut gérer les grands livres personnels de nombreuses années, bien que les fichiers extrêmement volumineux (des dizaines de milliers de transactions) puissent bénéficier d'une certaine optimisation (par exemple, l'archivage d'anciennes entrées).
- Accès Web et Mobilité : En exécutant 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 Raspberry Pi afin de pouvoir consulter leurs finances en déplacement (en le sécurisant éventuellement derrière un mot de passe ou un VPN, car Fava n'a pas d'authentification intégrée). Cela vous donne essentiellement une "application web" auto-hébergée pour vos finances, sans donner vos données à un tiers.
En résumé, Beancount fournit une base robuste pour une comptabilité transparente basée sur du texte avec des règles rigoureuses de partie double et une prise en charge multidevise. Fava s'appuie sur cela en offrant une interface accessible avec des informations immédiates (rapports, graphiques) et la possibilité d'interagir avec vos données. Ensemble, ils forment un système de comptabilité et d'analyse très flexible que vous contrôlez de bout en bout.
Analyse en Temps Réel (ou Quasi Temps Réel) avec Beancount et Fava
La réalisation d'une analyse en temps réel ou quasi temps réel avec Beancount et Fava implique l'automatisation du flux de données dans votre grand livre et la garantie que les outils affichent des informations à jour. Par défaut, Beancount est un processus par lots (vous ajoutez des entrées au fichier, puis consultez les rapports) et Fava détectera les modifications et nécessitera une actualisation. Cependant, avec la bonne configuration, vous pouvez rationaliser les mises à jour afin que les nouvelles transactions et modifications apparaissent presque instantanément.
Détection des Modifications de Fichier : Fava surveille le fichier de grand livre pour les modifications. Si vous modifiez le fichier .beancount (ou incluez des fichiers) dans un éditeur, Fava affichera une bannière "Modifications détectées - cliquez pour recharger". En cliquant (ou en appuyant sur recharger), il recharge les données et met à jour la vue. En pratique, ce rechargement est très rapide (généralement moins d'une seconde pour les 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. (En mode débogage, Fava peut même se recharger automatiquement lors des modifications de fichier, bien que par défaut, il attende la confirmation de l'utilisateur pour éviter d'interrompre votre vue.)
Pipeline d'Importation/Mise à Jour Continue : Pour obtenir des données en temps réel, vous devez automatiser l'ajout de transactions au fichier Beancount. Il existe quelques stratégies courantes :
-
Tâches d'Importation Planifiées (Cron) : De nombreux utilisateurs configurent une tâche cron (ou une tâche planifiée) pour récupérer périodiquement de nouvelles transactions auprès des institutions financières (par exemple, chaque nuit ou chaque heure) et les ajouter au grand livre. Par exemple, vous pouvez utiliser les plugins d'importateur Beancount pour récupérer les dernières transactions bancaires via l'API ou le téléchargement OFX. Un utilisateur de Beancount a créé un pipeline d'automatisation de sorte que ses livres se mettent à jour eux-mêmes : "voir mon livre comptable se mettre à jour sans que je le touche dans un format ouvert m'apporte une joie pure". Cela a été réalisé en se connectant aux API bancaires et en planifiant des mises à jour régulières. Des outils tels que
bean-fetch(pour OFX) ou des scripts Python personnalisés utilisant des API bancaires (par exemple, Plaid) peuvent être exécutés selon un calendrier et écrire de nouvelles entrées dans le grand livre. Après chaque importation planifiée, si vous avez Fava en cours d'exécution, vous pouvez simplement actualiser Fava pour voir les nouvelles données. -
Observateurs de Fichiers et Déclencheurs : Au lieu de planifications basées sur le temps, vous pouvez utiliser des observateurs de fichiers pour réagir aux événements. Par exemple, si votre banque peut vous envoyer par e-mail un relevé quotidien ou si vous déposez un CSV dans un dossier, un script pourrait détecter ce fichier (en utilisant
inotifysous Linux ou similaire) et exécuter immédiatement la routine d'importation, puis signaler à Fava de recharger. Bien que Fava ne prenne pas encore en charge l'envoi d'un rechargement en direct au navigateur, vous auriez au moins les données mises à jour de sorte que la prochaine fois que vous consultez la page ou que vous cliquez sur recharger, elle soit à 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 de ledger à Grafana en temps réel, montrant qu'une approche similaire peut être adoptée avec Beancount - essentiellement construire un démon qui alimente les données à vos tableaux de bord en continu. -
Intégration API Directe : Au lieu de passer par des fichiers, les utilisateurs avancés peuvent se connecter directement aux API bancaires (comme Plaid ou les API Open Banking régionales) pour extraire fréquemment les transactions. Une personne motivée peut scripter des importations "en direct" en boucle (avec une limitation de débit appropriée) - en interrogeant effectivement la banque pour de nouvelles données toutes les quelques minutes. 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 au fur et à mesure de son arrivée. Avec cette approche, Fava devient véritablement un tableau de bord en temps réel pour vos comptes, rivalisant avec le flux mis à jour des applications commerciales.
Actualisation des Données dans Fava : Une fois vos données mises à jour, il est simple de faire en sorte que Fava les affiche : une actualisation du navigateur (F5) ou un clic sur la bannière de rechargement chargera le dernier état du grand livre. Si vous préférez même ne pas cliquer, l'exécution de Fava avec --debug active un rechargement automatique pour le développement d'extensions que certains ont utilisé pour forcer les rechargements de page immédiats lors des modifications. Alternativement, si vous créez une interface en front-end personnalisée, vous pouvez la faire interroger une petite API qui renvoie le dernier solde ou ainsi du grand livre selon un calendrier.
Calculs Instantanés : L'analyse rapide de Beancount signifie que même si vous mettez à jour votre fichier de 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 rapide. Par exemple, un utilisateur note que le rechargement de Fava après avoir modifié le fichier "est à peine perceptible... certainement moins d'une seconde" pour les grands livres de taille raisonnable. Ainsi, vous pouvez garder une fenêtre Fava ouverte et appuyer sur Actualiser périodiquement pour imiter un tableau de bord en direct. (Pour une expérience véritablement en direct, on pourrait créer un petit script pour actualiser automatiquement le navigateur ou utiliser la fonctionnalité d'actualisation du navigateur toutes les N secondes.)
Réconciliation et Alertes : Pour faire confiance aux données en temps réel, vous souhaitez également réconcilier fréquemment les soldes. Beancount facilite cela avec les assertions de solde et un "indicateur à jour". En fait, Fava propose des indicateurs colorés à côté des comptes si vous les marquez avec certaines métadonnées (par exemple, vous pouvez marquer un compte avec des métadonnées fava-uptodate et Fava le colorera en rouge/jaune/vert en fonction du fait que la dernière entrée soit une vérification de solde récente). Cela peut être utilisé pour voir rapidement si le solde d'un compte dans le grand livre correspond au dernier relevé de la banque. Dans une configuration quasi temps réel, vous pouvez automatiser les vérifications de solde quotidiennes (ainsi, chaque matin, le grand livre contient le solde de clôture d'hier de la banque pour chaque compte). L'indicateur de Fava vous indiquerait alors si votre importation automatique a manqué quelque chose ou s'il y a une divergence, vous donnant la confiance que les données "en direct" que vous voyez sont exactes.
Exemple d'Automatisation : Supposons que vous souhaitiez des mises à jour quotidiennes des flux de trésorerie. Vous pouvez définir une tâche cron à exécuter à 3 heures du matin tous les soirs : elle exécute un script Python qui utilise l'API de votre banque pour récupérer les transactions du dernier jour, les écrit dans import_today.beancount, puis ajoute ce fichier à votre grand livre principal. Il écrit également une assertion de solde pour la fin de journée. Lorsque vous vous réveillez, vous ouvrez Fava - il affiche toutes les transactions jusqu'à hier et vous voyez les revenus/dépenses du mois en cours mis à jour. Si vous effectuez une dépense pendant la journée, vous pouvez l'ajouter manuellement (via le nouveau formulaire de transaction de Fava sur votre téléphone, par exemple) ou attendre l'importation nocturne. Cette approche hybride (principalement automatisée, avec la possibilité d'ajouter manuellement ad hoc) donne une image proche du temps réel. Une autre approche consiste à laisser la page Journal de Fava ouverte et à l'utiliser comme registre : au fur et à mesure que vous dépensez, vous enregistrez rapidement la transaction (comme si vous l'entriez dans un carnet de chèques) - alors vous êtes le flux en temps réel. C'est plus manuel, mais certains utilisateurs apprécient la sensibilisation que cela apporte. Pour des mises à jour véritablement en streaming sans étapes manuelles, vous devrez investir dans la scriptation et éventuellement utiliser des API tierces comme indiqué.
En résumé, en combinant l'automatisation de l'importation de Beancount avec l'actualisation rapide de Fava, vous pouvez obtenir des données financières quasi temps réel. Il n'est peut-être pas "facile à utiliser" pour atteindre le même niveau de flux en direct qu'un service comme QuickBooks (qui extrait automatiquement les flux bancaires), mais c'est possible - et surtout, vous conservez le contrôle total et la transparence du processus. Comme l'a noté un défenseur de la comptabilité en texte brut, un petit effort initial peut donner un système automatisé qui est "bien meilleur que les solutions commerciales, et bien plus flexible et extensible". Dans la section suivante, nous verrons comment les capacités de visualisation de Fava vous permettent de donner un sens immédiat à ces données mises à jour, transformant les transactions brutes en informations.
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 sur le compte de résultat de Fava (dans l'interface utilisateur web) prend en charge des visualisations riches telles que les treemaps (en photo) et les diagrammes en rayons de soleil 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épenses, dimensionnée par 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 commandes (en haut à droite) permettent de modifier la devise, le type de graphique et la période (par exemple, l'affichage des données mensuelles). Fava fournit également des graphiques linéaires (par exemple, la valeur nette au fil du temps) et des diagrammes à barres (par exemple, les revenus par rapport aux dépenses par mois) pour aider à repérer les tendances dans vos données financières.
L'un des plus grands atouts de Fava est de transformer instantanément les données du grand livre en rapports visuels 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 :
-
Arbre de répartition/diagramme en rayons de soleil des revenus et des dépenses : Sur la page du compte de résultat, Fava peut afficher vos revenus et vos dépenses sous forme de diagramme en arbre de répartition ou en rayon de soleil. Ils sont parfaits pour la visualisation des flux de trésorerie "en un coup d'œil". Par exemple, si vos dépenses mensuelles sont affichées sous forme d'arbre de répartition, la superficie de chaque rectangle correspond à l'ampleur de chaque catégorie de dépenses. Les grands blocs indiquent immédiatement où est allée la majeure partie de votre argent (par exemple, le loyer ou l'hypothèque, les impôts, etc.), tandis que les petits blocs indiquent les dépenses mineures. Ceci est extrêmement utile pour repérer les tendances dans les dépenses - si le bloc "Sorties au restaurant" a augmenté chaque mois, vous le remarquerez visuellement. Vous pouvez passer à un diagramme en rayons de soleil pour voir les ventilations hiérarchiques (par exemple, l'anneau extérieur peut afficher des sous-catégories telles que l'épicerie par rapport aux restaurants dans la catégorie Alimentation). Ces graphiques se mettent à jour pour toute période que vous avez filtrée (un mois, depuis le début de l'année, etc.), ce qui vous donne une visualisation instantanée des flux de trésorerie pour cette période. Un utilisateur sur le forum de comptabilité en texte brut a noté : "J'utilise beaucoup les arbres de répartition des revenus et des dépenses. Ils donnent une excellente idée visuelle de nos mouvements fiscaux." - ce genre de compréhension immédiate est exactement ce que visent les graphiques de Fava.
-
Valeur nette et solde au fil du temps : Fava fournit un graphique linéaire pour la valeur nette au fil du temps (sur la page "Bilan" ou "Statistiques"). Ce graphique trace la somme de vos actifs moins les passifs à chaque moment (par jour, semaine ou mois). Il est précieux pour repérer les tendances - vous pouvez voir la trajectoire de vos finances (par exemple, régulièrement à la hausse ou des baisses à certains moments). Si vous avez des investissements, vous pouvez basculer entre l'affichage de la valeur au coût par rapport à la valeur marchande (si les données de prix sont enregistrées) - par exemple, vous pouvez voir que votre valeur nette à la valeur marchande fluctue avec les cours des actions, tandis qu'au coût, elle est plus lisse. Fava peut également afficher les soldes des comptes au fil du temps. Si vous cliquez sur un compte (par exemple, Actifs :Banque :Chèque), la page du compte affiche un graphique de l'historique des soldes de ce compte. Vous pouvez instantanément inspecter la façon dont votre compte de trésorerie évolue - ce qui est effectivement un graphique des flux de trésorerie (la pente de la ligne de solde indique les flux de trésorerie nets). S'il a une tendance à la baisse, vous savez que vous dépensez plus que vous ne gagnez au cours de cette période. En examinant ces tendances, vous pouvez repérer des schémas tels que "chaque décembre, mon épargne diminue (dépenses des Fêtes)" ou "mes investissements ont fortement augmenté ce trimestre".
-
Diagrammes à barres pour la comparaison périodique : Dans la vue du compte de résultat, Fava a des onglets pour "Bénéfice mensuel", "Revenu mensuel", "Dépenses mensuelles", etc. Les sélectionner affiche des diagrammes à barres par mois. Par exemple, le bénéfice net mensuel affichera le surplus/déficit de chaque mois sous forme de barre, ce qui facilitera la comparaison des performances entre les mois. Vous pouvez rapidement identifier les valeurs aberrantes (par exemple, une grande barre négative en avril signifie que ce mois a eu une perte/dépense inhabituelle). De même, le diagramme à barres "Dépenses mensuelles" empile ou regroupe les dépenses par catégorie par mois, vous pouvez donc voir quelles catégories fluctuent. Ceci est idéal pour repérer les tendances dans le temps - par exemple, vous pouvez remarquer que vos dépenses de "Voyage" augmentent chaque été, ou que les factures de "Services publics" sont plus élevées en hiver. Fava vous donne essentiellement certaines des 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 la façon dont elles sont regroupées).
-
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 souhaitiez inspecter un scénario spécifique : "À quoi ressemblent mes flux de trésorerie trimestriels uniquement pour mes comptes d'entreprise ?" Vous pouvez définir le filtre temporel sur T1 2025 et filtrer les comptes vers votre hiérarchie Entreprise - Fava mettra instantanément à jour les graphiques pour afficher le revenu net, l'arbre de répartition des dépenses, etc., mais uniquement pour ce sous-ensemble. Cette segmentation interactive signifie que vous pouvez effectuer une analyse ad hoc très rapidement, sans écrire de requêtes. La vue Journal prend également en charge le filtrage en direct : vous pouvez rechercher par bénéficiaire ou sous-chaîne de narration et voir immédiatement une liste filtrée des transactions. Si vous consultez des données en temps réel (disons que vous venez d'importer les transactions de la semaine dernière), vous pouvez filtrer par une balise comme
#non classépour voir les nouvelles transactions qui pourraient nécessiter une classification, ou par@en attente(si vous marquez les entrées en attente) pour voir ce qui n'est toujours pas réglé. Cette capacité d'inspection en temps réel contribue également à assurer la qualité des données, car vous pouvez isoler et corriger les anomalies à la volée. -
État des Flux de Trésorerie (indirect) : Bien que Beancount/Fava ne produise pas d'état des flux de trésorerie formel (ventilation des opérations/investissements/financements) prêt à l'emploi, vous pouvez l'imiter avec des requêtes personnalisées ou en structurant les comptes. Par exemple, vous pouvez baliser certaines transactions ou utiliser des comptes spécifiques pour les investissements et le financement, puis interroger les totaux. L'interface de requête de Fava vous permet d'exécuter une requête BQL comme :
SELECT sum(amount) WHERE account ~ "Assets:Bank" AND year = 2025pour obtenir les flux de trésorerie pour l'année, etc. Cela dit, la plupart des utilisateurs personnels trouvent que la combinaison des tendances des soldes et des graphiques des revenus/dépenses est suffisante pour comprendre les flux de trésorerie. -
Visualisation des Avoirs et du Portefeuille : Sur la page Avoirs, Fava répertorie vos avoirs actuels de marchandises (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, il est très utile pour l'inspection en temps réel de l'état de votre portefeuille. Certaines extensions (comme fava-investor, dont nous parlerons plus tard) ajoutent davantage de visuels pour les portefeuilles, tels que des diagrammes circulaires 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 en fonction des derniers prix - si vous mettez à jour régulièrement les cotations (ce qui pourrait être automatisé quotidiennement), les graphiques de Fava refléteront la valeur marchande à la minute de vos investissements.
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 de long retraitement nécessaire. Cela signifie que si vous avez un pipeline semi-automatisé qui alimente les données tout au long de la journée, vous pouvez garder Fava ouvert et appuyer périodiquement sur Actualiser pour obtenir des graphiques mis à jour - surveillance financière en temps réel efficace.
Par exemple, imaginez que vous dirigez une petite entreprise et que vous souhaitez surveiller la trésorerie disponible et les dépenses quotidiennes. Vous pouvez ouvrir Fava sur un tableau de bord personnalisé (peut-être en utilisant une extension ou l'écran de requête) qui affiche "Solde du compte de trésorerie aujourd'hui" et "Dépenses - Aujourd'hui par rapport à Hier". Chaque fois que vous actualisez après l'arrivée de nouvelles données, vous verriez ces chiffres se mettre à jour. Cela s'apparente à 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 planifier des actualisations, alors que ces outils envoient automatiquement des mises à jour. Mais fonctionnellement, l'information que vous obtenez est la même, avec l'avantage supplémentaire que vous pouvez explorer n'importe quel nombre sur Fava (cliquez dessus pour voir les transactions sous-jacentes) - ce dont de nombreux tableaux de bord BI manquent.
En résumé, Fava transforme vos données comptables en informations visuelles immédiates : les ventilations des flux de trésorerie, les courbes de tendances, les comparaisons dans le temps et le filtrage interactif vous aident tous à voir l'histoire derrière les chiffres. Que vous inspectiez les dépenses de la semaine dernière à la recherche d'anomalies ou que vous examiniez les tendances pluriannuelles de la valeur nette, les graphiques et les rapports de Fava offrent une clarté en temps réel (dès que vos données sont là). Ensuite, nous verrons comment vous pouvez étendre ces capacités ou les intégrer à des outils externes si vous avez besoin d'une analyse encore plus personnalisée.
Intégration avec des Tableaux de Bord Externes et des Outils de Visualisation
Bien que Fava fournisse un ensemble riche de rapports et de graphiques intégrés, vous souhaiterez peut-être intégrer les données de Beancount à d'autres outils d'informatique décisionnelle (BI) ou de tableau de bord tels que Grafana, Metabase ou des interfaces frontales web personnalisées (par exemple, une application React). La motivation pourrait être de combiner des données financières avec d'autres sources de données, d'utiliser des capacités de graphique 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 de réaliser l'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, n'importe quel 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érience qui reflète un grand livre Beancount dans une base de données PostgreSQL, implémentant une grande partie de la logique de Beancount en tant que fonctions SQL. Cela fournit "un backend flexible qui peut s'intégrer à d'autres outils tels que les applications web ou les systèmes de reporting." Vous pouvez exécuter Beanpost pour synchroniser en continu votre grand livre texte vers Postgres. Ensuite, un outil comme Metabase ou Tableau peut se connecter à cette base de données Postgres et vous pouvez créer les graphiques ou les tableaux de bord que vous souhaitez (mise à jour en direct au fur et à mesure des mises à jour de la base de données). Un utilisateur a signalé l'utilisation de Postgres + PostGraphile pour exposer automatiquement une API GraphQL pour les données du grand livre, puis l'écriture d'une interface frontale React personnalisée par-dessus cela - traitant essentiellement le grand livre comme un service web. Cette approche traite des cas où l'interface de Fava peut ne pas être suffisante (par exemple, accès multi-utilisateurs ou interfaces utilisateur plus adaptées aux mobiles). C'est plus lourd en ingénierie, mais cela montre le potentiel : vous pouvez intégrer Beancount avec des piles web modernes relativement facilement. Une variante plus légère consiste à utiliser la prise en charge SQLite intégrée de Beancount - l'exécution d'une requête comme
bean-query -e ledger.beancount "SELECT ..."peut sortir des résultats, ou l'utilisation de l'API Python de Beancount pour obtenir des données et les insérer dans une base de données SQLite. Certaines personnes utilisent SQLite comme intermédiaire pour se connecter à des outils