Extraction de factures par IA : 288 tests sur les erreurs qui reviennent propres
Trois modèles bon marché, 24 factures, quatre niveaux de texte dégradé. L'exactitude est le chiffre facile. Celui qui coûte de l'argent, c'est la part des extractions fausses qui ne signalent rien.
Publié le
11 août 2026
Rubrique
Petite entreprise
Une PME qui reçoit ses factures fournisseurs en PDF préfère les faire lire par un modèle plutôt que de les ressaisir. Savoir si cela marche n'est pas vraiment la question. Sur des documents propres, cela marche, et nous l'avons mesuré aussi. La question est ce qui se passe le jour où cela ne marche pas, et si quelqu'un s'en aperçoit.
Nous avons conduit 288 extractions pour le savoir. Voici les résultats, avant la méthode.
Sur du texte propre, et sur du texte dont la mise en colonnes a été détruite, trois modèles bon marché rendent 144 extractions justes sur 144. Perdre l'alignement d'un copier coller de PDF n'a rien coûté du tout. Le conseil courant qui consiste à « bien nettoyer le document avant » n'est pas soutenu par cette mesure.
Quand le bloc des totaux est remis dans le désordre, ou privé de ses libellés, l'exactitude tombe à 51 sur 72 à chacun de ces deux niveaux, et les modèles se taisent exactement là où ils auraient dû parler. Au niveau le plus difficile, 47,6 % des réponses fausses reviennent sans le moindre signalement, contre 14,3 % au niveau précédent. Le silence augmente avec la difficulté.
Huit extractions sur 288 sont fausses, ne portent aucun signalement, et passent le contrôle d'arithmétique censé les attraper. Les huit sont des factures avec un acompte déjà versé, et à chaque fois le modèle rend le total facturé au lieu du solde dû. Une entreprise qui paierait sur cette base paierait l'acompte deux fois, entre 252,95 et 602,26 USD par facture, médiane 489,83 USD, sans que rien nulle part ne le signale.
La méthode, en bref
Test conduit le 2026-08-10 par la chaîne de test automatisée de ce site : le corpus, les appels aux modèles et l'analyse sont des scripts, publiés plus bas pour que chacun puisse les rejouer et contester le résultat. Etienne signe cet article et répond de son contenu.
Le corpus est construit, pas collecté. 24 factures fournisseurs générées par script avec une graine fixe, de sorte que la vérité terrain est connue sans discussion possible et que le corpus se régénère à l'identique. Aucune facture réelle, aucun fournisseur réel, aucune donnée d'entreprise réelle. C'est un choix assumé : un corpus de vraies factures aurait exigé de trancher à la main 168 valeurs, avec nos propres erreurs de lecture dans la référence.
Sept champs sont extraits de chaque facture : numéro de facture, date de facture, date d'échéance, devise, sous-total, taxe, montant dû.
Chaque facture a été présentée à quatre niveaux de dégradation du texte. Nous dégradons la structure, jamais les chiffres : corrompre un montant rendrait la facture réellement fausse et punirait un modèle de l'avoir bien lue. À chaque niveau, la bonne réponse reste dérivable du document.
Niveau
Ce qui est dégradé
N1 propre
rien, colonnes alignées
N2 colonnes perdues
tous les blancs multiples réduits à un espace
N3 totaux mélangés
N2, plus le bloc des totaux rendu dans l'ordre inverse, libellés intacts
N4 libellés perdus
N2, plus le bloc des totaux réduit à une colonne de nombres nus
Trois modèles, choisis parmi ceux qu'une PME emploierait réellement pour leur prix : openai/gpt-4o-mini, google/gemini-2.5-flash-lite, anthropic/claude-haiku-4.5. Accès par OpenRouter, température 0, une seule exécution par couple facture, niveau et modèle. 288 appels, 0 échec technique, 0 réponse JSON invalide, coût total des appels 0,11951 USD. La consigne était identique mot pour mot pour les trois modèles, et elle autorisait explicitement le modèle à signaler une ambiguïté dans un champ notes. C'est ce champ qui rend le taux d'échec silencieux mesurable.
Ce que ce test ne prouve pas. L'entrée est du texte, pas une image scannée : il ne dit rien des erreurs de caractères d'un OCR, qui ne peuvent qu'aggraver le résultat. Chaque facture tient sur une page et est en anglais. Chaque couple n'a été exécuté qu'une fois. C'est un test sur 24 documents synthétiques, pas un banc d'essai de production. La liste complète des limites est à la fin, et elle mérite d'être lue avant de citer un chiffre d'ici.
Quatre pièges, et celui sur lequel nous nous trompions
Quatre difficultés ont été insérées, chacune résolue par le document lui-même, pour qu'il existe une seule bonne réponse défendable.
Piège
Factures
Fausses à N1
N2
N3
N4
Acompte déjà versé et déduit : le montant dû n'est pas le total facturé
6
0/18
0/18
12/18
6/18
Remise de 10 % appliquée avant taxe : le sous-total attendu est le montant net
6
0/18
0/18
9/18
15/18
Symbole $ ambigu, devise CAD dite en toutes lettres
4
0/12
0/12
3/12
5/12
Date au format ambigu 02/04/2026, levée en toutes lettres à la ligne suivante
6
0/18
0/18
0/18
0/18
Aucun piège
4
0/12
0/12
0/12
0/12
La date ambiguë n'a jamais trompé personne, à aucun niveau, sur aucun modèle : 0 erreur sur 72 extractions. C'est le piège que nous pensions le plus dangereux en écrivant le corpus. Nous nous trompions, et nous laissons la ligne ici plutôt que de la retirer discrètement.
Les factures sans aucun piège n'ont jamais cassé non plus. Toutes les erreurs de ce test, sans exception, tombent sur une facture où il y a réellement de l'argent en jeu.
Résultats bruts
Exactitude : factures entièrement justes, sur 24
Modèle
N1
N2
N3
N4
gpt-4o-mini
24/24
24/24
21/24
14/24
gemini-2.5-flash-lite
24/24
24/24
18/24
19/24
claude-haiku-4.5
24/24
24/24
12/24
18/24
Tous modèles confondus
72/72
72/72
51/72
51/72
Le classement s'inverse entre N3 et N4. gpt-4o-mini est le meilleur à N3 et le pire à N4 ; claude-haiku-4.5 fait l'inverse. Choisir un modèle sur un seul niveau de dégradation ne dit rien de son comportement sur un autre.
Échec silencieux
Niveau
Extractions fausses
Fausses sans aucun signalement
Part
N1
0
0
sans objet
N2
0
0
sans objet
N3
21
3
14,3 %
N4
21
10
47,6 %
Le contrôle le moins cher : sous-total + taxe = montant dû
Niveau
Fausses rattrapées
Taux de rattrapage
Justes signalées à tort
Taux de fausse alerte
N1
0
sans objet
18
25,0 %
N2
0
sans objet
18
25,0 %
N3
10
47,6 %
6
11,8 %
N4
15
71,4 %
12
23,5 %
Les fausses alertes ne sont pas du bruit aléatoire. Ce sont exactement les factures à acompte, où sous-total plus taxe vaut le total facturé et non le solde dû. Le contrôle y est arithmétiquement juste et opérationnellement faux, ce qu'il vaut mieux savoir avant de le brancher sur une alerte.
Quel champ casse
Champ
N1
N2
N3
N4
numéro, date de facture, date d'échéance, devise
0
0
0
0
sous-total
0
0
0
17
taxe
0
0
0
3
montant dû
0
0
21
10
À N3, les 21 erreurs portent toutes sur un seul champ, le montant dû. Rien d'autre ne bouge. Les identifiants et les dates survivent à tous les niveaux de dégradation que nous leur avons infligés.
L'angle mort
Trois choses doivent s'aligner pour qu'une erreur atteigne la comptabilité sans être contestée : l'extraction est fausse, le modèle ne dit rien, et le contrôle d'arithmétique passe. C'est arrivé 8 fois sur 288.
Facture
Niveau
Montant dû réel
Montant rendu
Trop-payé
F04
N3
1329,54
1899,35
569,81
F04
N4
1329,54
1899,35
569,81
F08
N4
1062,38
1315,33
252,95
F12
N3
1405,28
2007,54
602,26
F12
N4
1405,28
2007,54
602,26
F16
N3
914,84
1306,91
392,07
F16
N4
914,84
1306,91
392,07
F20
N4
956,31
1366,16
409,85
Huit extractions, cinq factures distinctes, toutes des factures portant un acompte, et les huit produites par le même modèle, gpt-4o-mini. Nous rapportons ce dernier point parce qu'il est dans les données, et nous le relativisons dans la même phrase : avec une seule exécution par couple, une affirmation sur un modèle appuyée sur huit cas est une observation, pas un résultat. Ce qui est un résultat, c'est la forme. Chaque cas est la même erreur, sur le même type de document, sur le seul champ où le contrôle d'arithmétique ne peut rien, parce que le chiffre rendu est cohérent avec lui-même. Il répond simplement à une autre question que celle qui était posée.
La règle utilisable
Deux choses sortent de ce test, et les deux coûtent peu.
Faites le contrôle sous-total + taxe = montant dû. Il tient en trois lignes de code et rattrape la moitié à deux tiers des erreurs. Acceptez qu'il signale environ un quart de vos factures parfaitement justes aux niveaux propres, et envoyez celles-là à un humain plutôt que de chercher à le régler finement.
Routez systématiquement vers un humain toute facture portant un acompte, un avoir ou une remise. C'est là que tombent 100 % des erreurs de ce test, et c'est le seul endroit où le contrôle d'arithmétique est à la fois inutile et trompeur. Repérer ces documents ne demande aucun modèle : les mots sont dans le texte.
Ce que vous pouvez arrêter de faire, c'est de dépenser de l'effort sur la mise en page du PDF avant l'extraction. Sur ce corpus, cela n'a rien rapporté.
24 factures synthétiques. Un test sur 24 cas est un test sur 24 cas.
Une seule exécution par couple, à température 0. Les modèles ne sont pas parfaitement déterministes pour autant. Les écarts d'un ou deux points entre modèles ne doivent pas être lus comme significatifs. Les écarts de dix points et plus, et surtout la structure des erreurs, toujours le même champ et le même type de facture, le sont.
Entrée en texte, pas en image. Un vrai scan ajoute des erreurs de caractères que ce test ne mesure pas, et qui ne peuvent qu'aggraver le résultat.
Anglais seulement.
Trois modèles d'entrée de gamme. Rien ici ne dit ce que feraient les modèles les plus chers. C'est une question ouverte qui mérite son propre test.
Le corpus est de nous. Il est publié pour que le désaccord soit possible.
Rejouer le test
Tout ce que ce test a produit est ici, pas résumé : les scripts qui ont généré le corpus et l'ont dégradé, les 24 factures avec leur vérité terrain, les 288 réponses brutes telles que les modèles les ont rendues, et le script qui en tire les chiffres ci-dessus.
Sept fichiers, 393777 octets : le générateur du corpus avec sa graine fixe, les 24
factures et leur vérité terrain, les quatre niveaux de dégradation, le script qui a
appelé les modèles et comparé champ par champ, les 288 réponses brutes avec la consigne
employée, et l'analyse qui produit chacun des chiffres ci-dessus. La page de données les
détaille un par un avec ce que chacun contient.
Le générateur emploie une graine fixe : le corpus que vous produirez est celui que nous avons employé.
Si vous rejouez ce test et obtenez autre chose, nous voulons le savoir. Il y a un formulaire de contact, et les corrections sont publiées sur l'article lui-même, datées, comme le disent les règles éditoriales de ce site.
Trois modèles économiques, 8 réunions, quatre formats de compte rendu. Ils retrouvent 94,8 % des actions réelles. Le problème est ce qu'ils ajoutent : le travail annulé pendant la réunion revient sur une liste sur cinq, au nom de quelqu'un.
Trois modèles bon marché, 8 carnets, quatre niveaux de désordre. Trouver les doublons est la partie facile, 94,1 pour cent. Le chiffre qui vous coûte une fiche, c'est la part des personnes distinctes fusionnées sans le moindre avertissement.
Une petite équipe n'a ni programme pilote ni évaluateur d'outils. La décision doit donc être arithmétique. Voici le calcul, y compris le coût que tout le monde oublie.