Le journal de bord, et comment nous nous vérifions
Une méthode arrêtée n'est pas une méthode qui ne change jamais : c'est une méthode dont chaque changement est écrit ici, daté, avant le code. Voici ce journal, et les dix-neuf cas calculés à la main qui vérifient le moteur.
Ce texte fait foi : c'est lui que citent les rapports et les autres pages, mot pour mot. Il ne change qu'avec une date.
Ce qui a changé, et quand
Format SEXTANT_LEDGER_V1, version 1.0.0-draft — publié le 22/08/2026.
Il passera en 1.0.0 quand deux sources auront été qualifiées, soit quatre fichiers réels passés à travers. D'ici là, il peut encore changer.
Complété le 24/08/2026 : la liste des sources passe de quatre à cinq entrées et gagne sa colonne canal.
Complété le 31/08/2026 : quatre conventions qui manquaient sont publiées — coût de revient au prix moyen pondéré, appariement d’une position soldée en plusieurs ventes, référence du buy & hold, et sort des lignes averties dans le décompte. Aucune n’était écrite ; toutes étaient nécessaires pour qu’une mesure puisse être refaite par vous.
Précisé le 31/08/2026 : les trois motifs de validation qui n’avaient pas de critère de déclenchement en ont un. « Version de format inconnue » devient un rejet du fichier portant sur ses colonnes, et non sur sa provenance — il entrait en contradiction avec ce que la partie 02 promet aux sources non listées. « Actif inconnu » et « ligne hors période » sont définis ci-dessous. Ces trois trous ont été trouvés en écrivant le moteur, pas en relisant la page.
Retiré le 02/09/2026 : « actif inconnu » n’est plus un motif produit. La table d’actifs qu’il exigeait n’a jamais été publiée — nous retirons la promesse plutôt que d’en improviser une liste.
Complété le 03/09/2026 : six conventions tranchées le 02/09/2026 en écrivant le moteur de mesure sont publiées ici. Une est nouvelle — un jour sans taux BCE prend le dernier taux publié avant l’opération. Trois corrigent une phrase qui promettait autre chose que ce que nous calculons : le total des frais en euros est bien calculé même quand leur portée n’est pas renseignée ; le seuil de 70 % se mesure en euros de coût de revient engagé, et non en nombre d’opérations ; une récompense de staking entre dans le panier buy & hold. Une comble un trou : le second chiffre indicatif nomme enfin son actif de référence, ses dates d’entrée et le sort de ses frais. Une précise sans rien changer aujourd’hui : ce que votre fichier déclare lui-même comme transfert interne vaut confirmation, ce que nous inférons ne la vaut pas. La septième ne concerne que notre jeu d’étalonnage interne et n’a rien à publier ici.
Complété le 14/09/2026 : cinq conventions arrêtées les 13 et 14/09/2026 en préparant notre premier dossier réel. Une est nouvelle — l’achat à crédit : le capital engagé varie pendant l’emprunt, et les intérêts d’emprunt forment une ligne distincte des frais. Une comble un trou : le mode d’arrondi, resté tacite alors que le moment et la précision de l’arrondi étaient publiés. Deux élargissent une définition qui promettait moins que ce que nous mesurons : la valorisation au prix du jour de réception vaut pour tout actif reçu sans contrepartie, et non pour les seules récompenses de staking ; l’USDC rejoint l’USDT parmi les jetons traités comme le dollar. La cinquième ne comble son trou qu’à moitié, et le dit : le régime de nos séries de prix — déposées à la main, figées, citées par leur empreinte — est publié, mais la source des prix de cryptomonnaies n’est pas encore nommée ; elle le sera ici, datée, avant le premier rapport remis.
Corrigé le 18/09/2026 : un échange entre deux cryptomonnaies n’est plus systématiquement hors périmètre. Cette page disait « il n’y a pas de prix » — c’était confondre l’absence de prix dans votre relevé avec notre incapacité à en connaître un. Quand au moins une des deux cryptomonnaies a une série de prix déposée chez nous, l’échange est valorisé au prix du jour de cette jambe : le même geste que pour un actif reçu sans contrepartie, à la même source, déposée et figée. Quand aucune des deux n’en a, rien ne change — l’échange sort du périmètre, et il est compté.
Complété le 21/09/2026 : la liste des sources gagne une sixième entrée — l’historique des transactions Binance (binance.transactions), distinct de l’export Spot. C’est lui qui porte les conversions d’une cryptomonnaie vers une autre, absentes de tout historique d’ordres, et les frais ligne à ligne ; son en-tête a été lu sur un fichier réel le 15/09/2026. En cours de qualification sur notre premier dossier.
Corrigé le 21/09/2026 : le prix de référence est celui de la minute de l’opération, pas celui du jour — clôture de la bougie d’une minute, heure UTC, repli sur la dernière clôture connue dans les soixante minutes précédentes, panier final à la dernière minute UTC du jour de mesure. Cette page disait « au prix du jour » : sur notre premier dossier réel, le prix obtenu variait dans une même journée de 1,5 % en médiane et jusqu’à 37 % sur une ligne. La source des prix de cryptomonnaies est nommée : la place où l’opération a été exécutée — Binance, données publiques de marché, pour un fichier Binance. La réserve ouverte le 24/08/2026 est levée ; cette page permet désormais de refaire nos valorisations.
Corrigé le 21/09/2026, au vu du premier dossier réel : le capital comparé au bitcoin n’est plus le cumul de vos engagements, mais le capital que vous avez réellement immobilisé. Cette page disait « chaque euro entre à la date où vous l’avez réellement engagé » — sur un compte qui vend pour racheter, cela comptait le même euro autant de fois qu’il servait. Sur notre propre historique, la règle d’avant supposait un capital de 308 961 € là où le plus haut réellement immobilisé était de 20 795 € : un rapport d’un à quinze, et un chiffre de comparaison que personne n’aurait pu interpréter. La règle nouvelle ne compte chaque euro qu’une fois, et ne change rien pour qui n’a jamais vendu.
Complété le 21/09/2026 : un actif du panier qui a cessé d’être coté avant la date de mesure ne fait plus tomber toute la comparaison. Le panier est valorisé sans lui, et le rapport nomme l’actif et la raison. Auparavant, une seule ligne sans prix — fût-elle une poussière détenue vingt minutes — suffisait à supprimer une mesure du noyau.
Corrigé le 21/09/2026 (second temps) : le panier principal suit la même règle que le capital comparé. Il ne retient que les achats faits avec de l’argent neuf ; un achat financé par une vente n’y entre pas, et un achat neuf à moitié n’y entre qu’à moitié. Cette page disait « les actifs que vous avez réellement achetés » sans dire avec quel argent : sur notre propre historique, le panier cumulait 309 055 € d’achats — plus d’un milliard de jetons de trois mémécoins détenus ensemble — pour un argent neuf de 20 795 €. Le chiffre principal de cette mesure était donc aussi peu lisible que son second, que nous venions de corriger. Les actifs reçus sans contrepartie continuent d’y entrer en entier : les réduire flatterait vos décisions.
Complété le 22/09/2026 : le coût cumulé des frais gagne une seconde ligne — le coût des conversions. Quand une plateforme se rémunère sur le taux au lieu de facturer un frais, aucune ligne de votre export ne le dit, et cette page ne mesurait donc rien. Sur notre propre historique, les frais facturés font 40,43 € et le coût des conversions 1 855,02 € : le rapport montrait 2,1 % de ce que l’activité avait coûté. La mesure est l’écart entre la valeur de marché de ce qui sort et de ce qui entre, à la minute de l’opération ; elle est déjà comprise dans la performance nette et ne s’en retranche pas ; et chaque rapport publie désormais sa propre marge d’erreur, mesurée sur vos opérations dont les frais sont facturés à part.
Corrigé le 22/09/2026 : le capital comparé ne redescend pas au remboursement d’un emprunt. Cette page disait, depuis le 14/09/2026, que le capital engagé « monte à l’emprunt, redescend au remboursement » et se lisait jour après jour ; la règle des dépassements du plus haut, publiée le 21/09, ne redescend jamais. Les deux phrases ne pouvaient pas être vraies ensemble. Nous gardons la seconde : l’argent emprunté compte comme de l’argent en jeu, et le plus haut qu’il a fait atteindre reste acquis — un emprunt remboursé deux heures plus tard élève votre capital comparé pour la suite. Le sortir rétrécirait le panier auquel vous êtes comparé, et ferait passer un gain obtenu au levier pour un gain obtenu seul ; un euro que vous engagez deux minutes compte déjà de la même façon. Les intérêts d’emprunt gagnent leur propre ligne : aucun export que nous avons lu ne les nomme, nous les déduisons de l’écart entre ce qui a été emprunté et ce qui a été remboursé, et le rapport écrit que c’est une déduction. Enfin, une liquidation est nommée quand votre export la déclare — et le rapport dit dans la foulée ce qu’il ne sait pas : si rien n’y distingue les ventes qu’elle a forcées de celles que vous avez décidées, les premières sont comptées comme des décisions.
Corrigé le 22/09/2026 (relecture des phrases publiées) : trois phrases de cette page n’étaient écrites nulle part dans le rapport, et une quatrième manquait au moteur. La plus grave : sur un export qui ne contient aucun frais, le rapport affichait « performance nette » — que cette page définit comme « après déduction des frais réellement payés » — sans jamais dire qu’elle était brute. La phrase existait depuis toujours ; rien ne la lisait. Les trois autres : la portée des frais et le nombre d’opérations concernées, les limites de périmètre (actifs sans série, liquidité de protocole, passage inter-chaînes), et le périmètre multi-comptes. ⚠️ Deux contradictions trouvées dans la même relecture : cette page écrivait encore, en partie 01, que le prix d’un échange entre deux cryptomonnaies est pris « au jour de l’opération » — la correction du 21/09 avait mis à jour le tableau des conventions et pas la prose ; et notre jeu de vérification comptait 19 cas pour un plafond publié de 18, franchi le 18/09 sans que rien ne le dise. Le plafond est porté à 19, un garde le tient désormais, et sa re-motivation est datée et annoncée. Aucune de ces quatre phrases ne changeait un chiffre : elles changeaient ce que le rapport dit de ses chiffres, ce qui est le propos de cette page.
Complété le 22/09/2026 : les trois mesures hors noyau sortent de l’état « non étalonnable ». Depuis le 28/08/2026, notre registre de lacunes portait trois questions ouvertes qui les rendaient incalculables, et cette page n’en disait rien — elle imputait leur absence à votre fichier alors que la cause était chez nous. Elles sont tranchées ici. La courbe de valeur (mesure 06) est la valeur de ce que vous déteniez à la fin de chaque journée, au prix de la dernière minute UTC ; un jour où l’un de vos actifs n’a pas de prix est valorisé sans lui, et le rapport publie la part maximale que vos avoirs sans prix ont atteinte sur toute la courbe. Nous avions d’abord arrêté l’inverse — écarter ces jours entièrement, parce qu’une perte maximale se lit sur un chemin et qu’un actif qui apparaît en cours de route y fabrique une baisse. Mesuré sur notre propre historique avant d’écrire la moindre ligne de code, cela revenait à jeter treize mois de chemin réel pour un euro de jeton non coté pendant deux jours. La règle a été changée le jour même, avant publication : nous valorisons, et nous publions de combien le chemin peut mentir. Le contrefactuel d’abstention (mesure 07) est redéfini : cette page en donnait une définition — « ce qu’il se serait passé si vous n’aviez rien fait » — qui était mot pour mot la question de la mesure 03. Il compare désormais deux courbes là où la mesure 03 compare deux points, sur le même panier, et répond à ce que 03 ne peut pas dire : quand l’écart s’est creusé. Une « baisse » (mesure 08) est une baisse du bitcoin, la référence déjà publiée en mesure 03 ; son seuil et sa fenêtre ne sont pas encore arrêtés, et ils ne le seront qu’après avoir été mesurés sur des historiques réels — tant qu’ils ne sont pas écrits ici, la mesure n’est pas produite.
Corrigé le 22/09/2026, le soir même : la perte maximale et le contrefactuel d’abstention ne sont pas produits tant qu’une convention ne retire pas les dépôts et les retraits de la courbe. Nous avons fait tourner ces deux mesures pour la première fois sur des prix complets, et la perte maximale annonçait 99,8 % sur notre propre historique. Elle ne mesurait aucune perte : 13 492 € étaient sortis du compte contre 8 891 € entrés — le portefeuille n’avait pas chuté, il avait été retiré. La courbe publiée ce jour est exacte — « la valeur de tout ce que vous déteniez à la fin de chaque journée » — et c’est précisément pourquoi elle ne peut pas servir telle quelle : un retrait y est indiscernable d’une baisse. La courbe reste publiée ; les deux mesures qui s’en déduisent attendent la convention, qui sera écrite ici, datée. Nous préférons ne rien dire plutôt que d’appeler « perte » l’argent que vous avez repris.
Complété le 23/09/2026 : le second axe du seuil de recevabilité reçoit sa définition et son chiffre — la période couverte, à 80 %, mesurée comme la durée entre votre première et votre dernière opération rapportée à celle que vous déclarez. Cet axe était publié depuis le 03/09 sans définition ni seuil : invocable, mais inapplicable. Trois formulations ont été mesurées sur un dossier réel avant de choisir, et deux ont été écartées — l’une comptait les mois où vous avez négocié et aurait refusé un portefeuille gardé sans y toucher, l’autre se dégradait toute seule avec le temps sur un fichier inchangé.
Comment nous nous vérifions
Dix-neuf cas, dont la réponse a été calculée à la main avant d'écrire le code. Le jeu d'étalonnage du moteur a été établi le 28 août 2026. Un cas n'y entre que si sa réponse attendue a été dérivée sur papier, indépendamment du code ; le jour où une valeur attendue est produite en exécutant le moteur, le cas cesse d'être un étalon. Un étalon dit « c'est faux » ; une régression dit seulement « ce n'est plus comme avant ». Les deux ne sont jamais comptés ensemble.
Le critère d'admission est la falsifiabilité : un cas mérite sa place s'il existe un bug plausible et précis qu'il attrape et qu'aucun autre n'attrape. Chaque cas est adossé à un point publié sur cette page — une convention de calcul, un cas hors périmètre, un motif de validation ou une règle de format — et c'est cette page qui fait foi quand les deux divergent.
En cherchant à calculer les réponses à la main, cinq des huit mesures publiées se sont révélées non calculables telles qu'elles étaient écrites. Les lacunes ont été tranchées et publiées ici, datées, avant que le code ne les applique. Chaque sortie du moteur porte en en-tête le commit qui l'a produite et l'empreinte des séries de prix utilisées, pour qu'un chiffre puisse être refait.
Le jeu de cas est conservé avec ses réponses et leur calcul, et il se lit sans le moteur. Si l'un d'eux vous paraît faux, écrivez-nous : la contestation et la réponse seront publiées.
↑ Sommaire