Le piège des "outils intelligents" pré-paramétrés
La plupart des apps de gestion vendent du "matching intelligent". En réalité, c'est :
- Une liste de patterns hardcodés (URSSAF, DGFIP, Stripe, OVH)
- Un score de similarité textuelle entre libellés
- Et c'est tout
Ça marche pour 60-70% de vos transactions. Les 30% restants, vous classifiez à la main chaque mois. Aucun apprentissage.
La différence : règles persistées + confidence évolutive
Chez Freelance Budget, chaque fois que vous validez ou créez une classification, l'app génère ou met à jour une ReconciliationRule :
- Pattern (substring ou regex) du libellé bancaire
- Match cible (mission, dépense, salaire, autre revenu)
- Confidence score : 0-100, monte à chaque validation, descend si vous rejetez
Exemple concret :
-
Mois 1 : Premier prélèvement OVH SAS. Vous classez en "Hébergement web". Une règle est créée :
pattern: "OVH SAS"→expense: "Hébergement OVH", confidence 50. -
Mois 2 : Nouveau prélèvement OVH SAS. Le moteur applique la règle automatiquement. Vous validez l'auto-match. Confidence monte à 65.
-
Mois 3 : Confidence 80. Le moteur l'auto-applique sans même vous demander.
-
Mois 6 : Confidence 95. Le moteur l'applique en silence. Vous voyez juste "9 transactions auto-matchées" en haut du dashboard.
Le système qui devient plus intelligent au fil du temps
Voici ce qui se passe vraiment chez un freelance actif après 3-6 mois d'usage :
| Mois | Transactions à classer manuellement | Temps passé | |---|---|---| | Mois 1 | 95% du relevé | 1h30 | | Mois 3 | 35% du relevé | 30 min | | Mois 6 | 12% du relevé | 10 min | | Mois 12+ | 5-8% du relevé | 5 min |
Ces 5-8% restants, c'est typiquement :
- Une transaction unique (achat exceptionnel, virement nouveau client)
- Une variation inhabituelle (prélèvement habituel mais montant différent)
- Une suppression de pattern (vous avez résilié un abonnement et un mois plus tard, le pattern est obsolète)
Le mécanisme regex vs substring
Les règles supportent deux modes :
- Substring (défaut) : match si le libellé contient le pattern. Simple, suffit pour 80% des cas.
- Regex : pour les cas tordus. Exemple :
^STRIPE.*ACMEcapture tous les versements Stripe pour le client Acme spécifiquement.
Les regex se gagnent automatiquement quand vous corrigez plusieurs fois un faux match. Si vous rejetez "STRIPE — Acme Consulting" matché à "STRIPE — Autre Client", l'app durcit la règle avec un regex plus spécifique.
La confiance qui descend aussi
Si vous rejetez ou modifiez une classification, la confidence baisse. C'est essentiel — ça évite que l'app s'enferre dans une erreur.
Exemple : vous aviez classé "STRIPE PAYOUT" en "Other income". Mais en réalité, vous avez 2 sources Stripe : votre boutique (revenus) et votre app Pro (refacturations). Quand vous rejetez 3 fois, la règle perd confiance et l'app vous redemande.
Pourquoi peu d'outils SaaS font ça
Construire un moteur d'apprentissage persistant et qui s'adapte au comportement demande :
- Une table
ReconciliationRuleavec un schéma riche (confidence, regex flag, applied/confirmed counts) - Un moteur de matching qui interroge ces règles avant les patterns hardcodés
- Une UI qui rend la correction explicite (pas juste un "x" qui efface la suggestion)
C'est de l'ingénierie produit invisible — le freelance lambda ne demande pas explicitement "je veux des règles persistantes avec confidence". Mais après 3 mois, il voit l'effet : son relevé mensuel se classe tout seul.
Le moment où on s'en rend compte
Mois 4 typique : vous uploadez votre relevé d'avril. L'app montre "47 transactions, 44 auto-matchées en utilisant 31 règles apprises, 3 à classer".
Vous classifiez les 3 en 1 minute. C'est fini.
Vous vous souvenez avoir passé 1h30 le mois 1. Vous réalisez que vous venez de gagner 15-20 heures par an rien que sur la réconciliation bancaire.
C'est exactement le genre de bénéfice qu'on ne peut pas voir dans une démo de 5 minutes — mais qui devient évident au bout de 90 jours d'usage régulier.