R&D LAB Méthode En service Conçu pour notre propre planification financière
Chronos Ledger
Projection de trésorerie et d'impôts pour une GmbH, calculée de façon déterministe
Combien d'argent sur quel compte à une date donnée, et quels impôts dus d'ici là ? Calculé selon le droit allemand, sans modèle de langage.
- 0dépendance d'exécution, seulement Node et SQLite
- 1liste de lignes dont chaque vue est calculée
- 12vues sur la même projection
- P10à P90 : une bande autour de la courbe, calculée analytiquement

Toutes les captures de cet article montrent une base de démonstration distincte, avec des chiffres inventés pour une Beispiel GmbH. Les personnes n'apparaissent que par leur rôle.
Pourquoi c'est publié
Nous vendons du logiciel et de l'automatisation, y compris là où les règles sont denses et lourdes de conséquences. Chronos Ledger montre comment nous traduisons des règles fiscales et comptables en code : chaque règle à un seul endroit, l'arithmétique fiscale verrouillée par un autotest, les totaux centraux recalculés par un script d'audit indépendant. L'application est aussi un contre-exemple à l'idée qu'un modèle de langage aurait sa place partout aujourd'hui. Il n'en a aucune ici, car un chiffre de trésorerie ou d'impôt doit être identique à chaque exécution et vérifiable pas à pas.
La comptabilité regarde en arrière : elle consigne ce qui s'est passé. Pour planifier une petite entreprise, il manque l'autre direction. Chronos Ledger calcule vers l'avant et indique combien d'argent se trouvera sur quel compte à une date donnée, et ce qui sera échu d'ici là en TVA, en impôts sur les bénéfices et en salaires. Pour cela, l'application tient côte à côte les comptes de la société et les comptes privés, modélise la TVA selon l'Ist-Versteuerung avec Dauerfristverlängerung, calcule Körperschaftsteuer, Solidaritätszuschlag et Gewerbesteuer, projette l'impôt sur le revenu selon le § 32a EStG et reporte chaque échéance au jour ouvré suivant selon le § 108 AO. Un curseur temporel recalcule chaque chiffre pour toute date choisie. Elle tourne en local avec Node et SQLite et ne dépose rien.
La décision
Un chiffre d'impôt qui change au second appel n'en est pas un
Pour une application de planification, il paraît aujourd'hui naturel d'intégrer un modèle de langage : une question en mots, une réponse en mots. Chronos Ledger n'en a délibérément aucun. Une prévision de trésorerie devient la base de décisions sur les salaires, les achats et les réserves fiscales. Il faut donc que les mêmes données donnent le même chiffre à chaque exécution, et que chaque chiffre puisse être ramené aux écritures dont il provient. Un panneau de questions a été envisagé et n'a pas été construit ; il aurait été le premier appel d'API sortant de cette application.
La deuxième décision porte toute l'application. À chaque requête, l'horizon de planification est construit une seule fois sous forme de liste plate de lignes datées : mouvements comptabilisés, ordres permanents développés, paies, paiements dérivés de TVA et d'impôts sur les bénéfices, investissements validés et remboursements d'impôt sur le revenu attendus. Chaque graphique et chaque tableau est calculé à partir de cette seule liste. Deux vues ne doivent jamais diverger sur un même jour. Lorsque l'en-tête et la courbe l'ont fait une fois, parce que deux fonctions parcouraient séparément les mêmes lignes, le script d'audit a trouvé l'écart.
La troisième concerne la fiscalité. Ce qu'est une écriture, ce que la déclaration de TVA en voit et ce que le calcul du bénéfice en voit sont trois colonnes distinctes. Un type unique par écriture ne peut pas exprimer un virement entre vos propres comptes, qui déplace de l'argent sur deux comptes sans être un chiffre d'affaires nulle part. Les catégories préremplissent les trois valeurs, mais chaque écriture en garde sa propre copie.
Ce qui n'en sort délibérément pas, c'est une déclaration fiscale. L'application projette et prépare ; elle ne transmet rien à ELSTER, et chaque vue fiscale porte la mention qu'il s'agit d'une estimation.
Une prévision qu'on ne peut pas recalculer est une opinion avec des décimales.
De l'ordre permanent à la courbe
Comment naît un chiffre pour un jour quelconque
- 01 Mouvements et séries Les mouvements comptabilisés et prévus figurent dans la même table, un statut les distingue. Les ordres permanents sont développés en échéances datées et s'arrêtent à leur date de fin, après un nombre fixe de paiements ou à la fin de l'horizon. Une série au 31 tombe le 28 en février et revient au 31 en mars.
- 02 Paiements d'impôts dérivés Les lignes donnent la Zahllast trimestrielle selon l'Ist-Versteuerung, exigible avec Dauerfristverlängerung le 10 du deuxième mois suivant, et le jour ouvré suivant en cas de week-end ou de jour férié. Les impôts sur les bénéfices sont placés sur leurs dates légales d'acomptes. Un excédent de TVA déductible n'arrive pas à l'échéance mais 21 jours plus tard.
- 03 Une liste L'ensemble forme la liste unique de lignes. Les montants sont en centimes entiers, les dates sont des chaînes ISO sans fuseau horaire. Seul le barème de l'impôt sur le revenu calcule en euros, car la loi énonce ses constantes en euros.
- 04 Courbe et bande La liste donne la courbe de trésorerie par compte et au total. Chaque ligne prévue est un tirage à pile ou face avec sa probabilité saisie ; il en découle l'espérance, la variance et une bande P10/P50/P90 sous forme fermée, sans nombres aléatoires. Les mêmes données tracent toujours la même bande.
- 05 Curseur temporel Le curseur saute entre les jours où de l'argent circule réellement et les fins de mois. À chaque point, l'en-tête, les soldes et les comptes de créances sont recalculés. Les graphiques, eux, sont à l'échelle du temps, pour que le point bas apparaisse là où il tombe dans le calendrier.
La TVA selon la date de paiement, et rien d'autre
Sous l'Ist-Versteuerung, la TVA naît dans la période où l'argent circule. L'application enregistre donc une date de paiement et aucune date de facture. Une seconde colonne de date finirait tôt ou tard par servir à un total, et la déclaration ne serait plus juste.
La même vue indique ce qui ne se produit pas : un déclarant trimestriel avec Dauerfristverlängerung ne verse pas de Sondervorauszahlung, car le onzième ne s'applique qu'aux déclarants mensuels. Pour les prestations de fournisseurs étrangers selon le § 13b UStG, la taxe est calculée en sus du montant plutôt qu'extraite de celui-ci, et portée des deux côtés de la déclaration, sans effet sur la trésorerie ni sur la Zahllast.
La TVA ne peut tout simplement pas s'attacher à de l'argent qui n'est pas une prestation. Salaires, virements entre vos propres comptes, paiements d'impôts et prêts sont exclus de la TVA déductible dans le calcul, quelle que soit la case cochée dans le formulaire.
Ce qui est inscrit en dur
Un investissement se valide, il ne se liste pas
Un investissement prévu reçoit deux conditions : un bénéfice minimal après impôt sur l'exercice, et un plancher de trésorerie qui ne doit pas être franchi sur une période de contrôle après le décaissement, coûts mensuels courants compris. Il ne passe au vert que lorsque les deux sont remplies.
La réponse n'est pas oui ou non, c'est une date. L'application parcourt la courbe vers l'avant et indique le premier jour à partir duquel la trésorerie supporte le décaissement. Si un investissement a une date limite et la manque, il est considéré comme manqué, afin qu'une option close ne se présente plus comme ouverte.
Les scénarios agissent sur le même calcul. Investissements, ordres permanents et écritures peuvent être rattachés à un scénario et activés ou désactivés avec lui. Retirer un élément d'un scénario le rend à la planification de base au lieu de le supprimer.
Vérification
Trois manières de se méfier de son propre chiffre
Un autotest verrouille l'arithmétique : montants, échéances avec leurs reports, TVA, impôts sur les bénéfices, tranches du barème de l'impôt sur le revenu, séries, lignes d'ajustement et bande d'incertitude. Qui modifie un taux ou une constante du barème modifie dans la même étape l'assertion correspondante. Un changement silencieux de constante est précisément l'erreur que cette application ne supporte pas.
Un script d'audit recalcule une seconde fois les totaux centraux directement à partir des tables brutes, avec son propre code : trésorerie du jour, point bas, fin de l'horizon, TVA et base du bénéfice. Il signale aussi les écritures contradictoires en elles-mêmes, par exemple une sortie classée comme chiffre d'affaires. L'origine des écarts a été instructive : à plusieurs reprises, l'erreur se trouvait dans le script d'audit, qui ne connaissait pas encore une règle que le moteur avait déjà. Depuis, chaque nouvelle règle s'accompagne de la question de savoir si le script d'audit la connaît.
Enfin, l'application enregistre ses propres prévisions : une fois par jour, fins de mois seulement, jamais écrasées. Elles sont ensuite évaluées par rapport à ce que les comptes contenaient réellement selon les mouvements comptabilisés, jamais par rapport à une prévision plus récente. L'erreur est moyennée en valeur absolue, pour qu'un chiffre trop haut et un chiffre trop bas ne s'annulent pas.
Ce qu'il calcule, et ce qu'il ne fait délibérément pas
Calculé
- La trésorerie par compte et au total, pour chaque jour de l'horizon.
- La TVA par trimestre avec échéances, reports et autoliquidation.
- Körperschaftsteuer, Solidaritätszuschlag, Gewerbesteuer et leurs dates d'acomptes.
- Un impôt sur le revenu projeté selon le § 32a EStG avec son remboursement attendu.
- Le premier jour où un investissement remplit les deux conditions.
- Une bande P10/P50/P90 à partir des probabilités saisies.
Délibérément pas
- Aucune transmission à ELSTER et aucun conseil fiscal. Le dépôt se fait ailleurs.
- Pas de comptabilité en partie double. L'application projette, elle ne comptabilise pas.
- Pas d'impôt sur les salaires calculé à partir du brut. Les chiffres de la paie sont repris.
- Aucun modèle de langage, aucune simulation avec nombres aléatoires.
- Aucune corrélation entre paiements dans la bande. Si des défauts sont liés, la dispersion réelle est plus large, et c'est indiqué à côté de la bande.
- Pas de report de pertes. Une perte ne produit pour l'instant simplement aucun impôt.
Personnes et tableau, sur des données inventées
Ce à quoi sert cette construction
- Les petites sociétés de capitaux qui veulent voir si salaires, réserves et échéances fiscales s'accordent au cours des prochains mois.
- Les décisions d'achat liées au bénéfice et à la trésorerie plutôt qu'à une impression.
- Les applications métier aux règles légales denses, où chaque chiffre doit être reproductible et traçable.
- Comme modèle : un ensemble de règles sous forme de code, avec autotest et script d'audit indépendant, au-delà de la fiscalité aussi.
Pourquoi c'est publié
Ce que cela signifie pour votre projet
Plus du laboratoire

Méthode Event Scout Un modèle de langage lit les pages d'événements, tout le reste est du code fixe. Il reste une courte liste des journées qui valent le déplacement.
Recherche appliquée Vellum Bords, perspective, lumière et texte sont calculés sur le téléphone. Un document ne quitte l'appareil que lorsque quelqu'un l'envoie. Avez-vous un ensemble de règles qui vit aujourd'hui dans un tableur et dont quelqu'un doit pouvoir vérifier les chiffres ? C'est précisément à cela que sert un pilote.
Nous contacter