Il Benchmark sull'Estrazione degli Estratti Conto

Un benchmark nel mondo reale per l'estrazione delle transazioni, e perché un modello che sembra accurato al 90% non restituisce quasi mai un estratto conto completamente corretto.

H
Holofin Engineering · Engineering· 17 min di lettura·Giu 27, 2026
Read in English
BENCHMARK
98%
estratti conto holofin con zero errori
1
riga errata holofin in 44 doc
70–115
righe errate per modello di frontiera
47
banche · gold verificato a mano

In holofin, l'estrazione degli estratti conto bancari è una delle nostre attività principali e la eseguiamo in produzione. Finanziatori, contabili e team finanziari ci consegnano estratti conto di centinaia di banche diverse e si aspettano indietro ogni singola transazione, in modo esatto, senza nulla di inventato e nulla di omesso.

L'estrazione si trova proprio all'inizio di quella pipeline, quindi i suoi errori non restano mai isolati. Una riga mancante o inventata non toglie semplicemente un punto a un punteggio di accuratezza. Diventa un saldo che non quadra, una decisione di sostenibilità finanziaria basata su un numero che non è mai stato sulla pagina, un libro mastro di cui nessuno a valle può fidarsi. Un estratto conto bancario è booleano: o è completamente corretto, o è una passività.

Quindi volevamo sapere con quanta affidabilità i migliori modelli di oggi facciano effettivamente questo, non su una demo scelta ad hoc ma su estratti conto reali, valutati nel modo in cui li valuta un team finanziario, dove l'unica cosa che conta è se l'intero estratto conto regge. Abbiamo costruito un benchmark per scoprirlo.

Il dataset

47 estratti conto reali, uno per banca

Ogni estratto conto è reale, poi anonimizzato in modo che layout, tabelle e totali sopravvivano ma i nomi e i numeri siano sintetici: grandi banche francesi, banche tedesche, neobanche ed EMI, ognuna con la propria idea di come dovrebbe apparire una tabella delle transazioni. Le etichette gold sono state verificate a mano rispetto ai PDF originali.

Il corpus del benchmark · 47 banche, 93 pagine

Ogni estratto conto è reale, poi anonimizzato in modo che layout, tabelle e totali sopravvivano ma nomi e numeri siano sintetici. Clicca su qualsiasi pagina per ingrandire; passa a Per banca per filtrare.

bami banque michel inchausp p1/4
bami banque michel inchauspp1/4
bami banque michel inchausp p2/4
bami banque michel inchauspp2/4
bami banque michel inchausp p3/4
bami banque michel inchauspp3/4
bami banque michel inchausp p4/4
bami banque michel inchauspp4/4
banque dupuy de parseval
banque dupuy de parseval
banque transatlantique p1/2
banque transatlantiquep1/2
banque transatlantique p2/2
banque transatlantiquep2/2
berliner sparkasse
berliner sparkasse
berliner volksbank
berliner volksbank
bnp paribas
bnp paribas
boursobank
boursobank
bred banque populaire p1/2
bred banque populairep1/2
bred banque populaire p2/2
bred banque populairep2/2
bunq p1/2
bunqp1/2
bunq p2/2
bunqp2/2
bwebank p1/2
bwebankp1/2
bwebank p2/2
bwebankp2/2
caisse d epargne p1/2
caisse d epargnep1/2
caisse d epargne p2/2
caisse d epargnep2/2
commerzbank p1/2
commerzbankp1/2
commerzbank p2/2
commerzbankp2/2
credit agricole brie picardie
credit agricole brie picardie
credit cooperatif p1/2
credit cooperatifp1/2
credit cooperatif p2/2
credit cooperatifp2/2
credit industriel et commercial p1/2
credit industriel et commercialp1/2
credit industriel et commercial p2/2
credit industriel et commercialp2/2
cr dit mutuel
cr dit mutuel
deutsche bank p1/2
deutsche bankp1/2
deutsche bank p2/2
deutsche bankp2/2
deutsche skatbank p1/2
deutsche skatbankp1/2
deutsche skatbank p2/2
deutsche skatbankp2/2
dkb deutsche kreditbank ag p1/3
dkb deutsche kreditbank agp1/3
dkb deutsche kreditbank ag p2/3
dkb deutsche kreditbank agp2/3
dkb deutsche kreditbank ag p3/3
dkb deutsche kreditbank agp3/3
fiducial banque
fiducial banque
finom
finom
grenke bank ag p1/3
grenke bank agp1/3
grenke bank ag p2/3
grenke bank agp2/3
grenke bank ag p3/3
grenke bank agp3/3
hsbc
hsbc
hypovereinsbank p1/2
hypovereinsbankp1/2
hypovereinsbank p2/2
hypovereinsbankp2/2
ibanfirst p1/3
ibanfirstp1/3
ibanfirst p2/3
ibanfirstp2/3
ibanfirst p3/3
ibanfirstp3/3
kontist p1/2
kontistp1/2
kontist p2/2
kontistp2/2
la banque postale p1/3
la banque postalep1/3
la banque postale p2/3
la banque postalep2/3
la banque postale p3/3
la banque postalep3/3
lcl banque et assurance
lcl banque et assurance
manager one p1/2
manager onep1/2
manager one p2/2
manager onep2/2
mein elba p1/3
mein elbap1/3
mein elba p2/3
mein elbap2/3
mein elba p3/3
mein elbap3/3
memo bank
memo bank
monabanq p1/2
monabanqp1/2
monabanq p2/2
monabanqp2/2
oberbank ag
oberbank ag
paypal p1/4
paypalp1/4
paypal p2/4
paypalp2/4
paypal p3/4
paypalp3/4
paypal p4/4
paypalp4/4
postbank
postbank
qonto
qonto
raiffeisenbank s dstormarn m lln eg p1/8
raiffeisenbank s dstormarn m lln egp1/8
raiffeisenbank s dstormarn m lln eg p2/8
raiffeisenbank s dstormarn m lln egp2/8
raiffeisenbank s dstormarn m lln eg p3/8
raiffeisenbank s dstormarn m lln egp3/8
raiffeisenbank s dstormarn m lln eg p4/8
raiffeisenbank s dstormarn m lln egp4/8
raiffeisenbank s dstormarn m lln eg p5/8
raiffeisenbank s dstormarn m lln egp5/8
raiffeisenbank s dstormarn m lln eg p6/8
raiffeisenbank s dstormarn m lln egp6/8
raiffeisenbank s dstormarn m lln eg p7/8
raiffeisenbank s dstormarn m lln egp7/8
raiffeisenbank s dstormarn m lln eg p8/8
raiffeisenbank s dstormarn m lln egp8/8
revolut business
revolut business
sg credit du nord p1/2
sg credit du nordp1/2
sg credit du nord p2/2
sg credit du nordp2/2
sg societe generale
sg societe generale
shine
shine
sparda bank p1/3
sparda bankp1/3
sparda bank p2/3
sparda bankp2/3
sparda bank p3/3
sparda bankp3/3
sumup p1/4
sumupp1/4
sumup p2/4
sumupp2/4
sumup p3/4
sumupp3/4
sumup p4/4
sumupp4/4
targox bank p1/4
targox bankp1/4
targox bank p2/4
targox bankp2/4
targox bank p3/4
targox bankp3/4
targox bank p4/4
targox bankp4/4
unicredit
unicredit
viva wallet
viva wallet
wise
wise
fig · 47 estratti conto anonimizzati / 93 pagine · clicca su qualsiasi pagina per ingrandire
Il punto chiave

L'accuratezza per riga è una vanity metric

Il numero che conta per un cliente non è "quale frazione di righe è corretta" ma "questo estratto conto è corretto". Non sono la stessa metrica. Un estratto conto è corretto solo se ogni riga lo è, quindi una riga mancata o inventata fa fallire l'intero documento.

  • Per estratto conto, non per riga. holofin estrae il 98% degli estratti conto con zero errori; il miglior modello di frontiera arriva all'80%. Su 44 documenti holofin ha prodotto una riga errata; i modelli di frontiera ne hanno prodotte 70–115 ciascuno.
  • Il divario è l'invenzione, non la lettura. Ogni sistema legge bene la pagina (recall 0.88–1.00). Gli errori sono righe che il modello restituisce ma che non sono sulla pagina: circa l'8–10% delle righe restituite da un modello di frontiera non corrisponde ad alcuna transazione sull'estratto conto. Le abbiamo tracciate tutte a mano — il 68–93% di queste (a seconda del modello) non ha alcuna controparte sulla pagina, una vera e propria invenzione; il resto è una riga reale letta con un importo o una data errati. holofin: una sola riga di questo tipo in 44 estratti conto.
  • Il rischio è la coda, non una tassa fissa. Gli errori non sono distribuiti in modo uniforme — la maggior parte degli estratti conto torna pulita con ogni modello, ma una manciata di layout fallisce pesantemente. Una riga inventata fa fallire l'intero estratto conto, e nulla ti dice in anticipo quale documento sarà.
  • Una finestra più grande non è la soluzione. Fornire più pagine per chiamata è inutile; l'approccio per pagina è affidabile perché limita le invenzioni.
Risultati

Cosa abbiamo scoperto

Quattro letture dello stesso benchmark. La prima posiziona ogni sistema in base alla completezza (ha trovato le righe?) rispetto all'accuratezza (le righe restituite sono reali?). Il resto segue l'aritmetica da lì.

FIG.01
Legge tutto, ne inventa un decimo

Ogni sistema trova le righe (completezza, x). Differiscono su quante delle righe restituite esistano realmente (accuratezza, y). holofin si trova nell'angolo in alto a destra; i modelli di frontiera scendono lungo l'asse dell'accuratezza man mano che inventano. Modelli di frontiera mostrati per pagina.

85%90%95%100%90%95%100%COMPLETEZZA · RECALL →ACC ↑holofinR 1.000 · P 0.999GPT-5.5R 0.939 · P 0.917Claude Opus 4.8R 0.929 · P 0.908Gemini 3.1 ProR 0.931 · P 0.900
FIG.02
Leggere il 90% delle righe non significa avere il 90% degli estratti conto corretti

Un estratto conto è corretto solo se ogni riga lo è. Percentuale di estratti conto estratti con zero errori (nessuna riga omessa, nessuna riga inventata) rispetto al gold verificato a mano. La sotto-etichetta è il totale delle righe errate su tutti i 44 documenti: holofin ne ha fatta una; i modelli di frontiera ne hanno fatte dozzine.

holofin1 riga errata / 44 doc98%
Gemini 3.1 Pro115 righe errate / 44 doc80%
GPT-5.584 righe errate / 44 doc77%
Claude Opus 4.870 righe errate / 44 doc75%
0%ESTRATTI CONTO CON ZERO ERRORI →100%
FIG.03
L'errore silenzioso è la riga inventata

Di ogni riga restituita da un modello, la percentuale in cui (data, importo) non è sulla pagina. Le abbiamo tracciate tutte a mano: circa il 68–93% (a seconda del modello) non ha alcuna controparte sulla pagina — pura invenzione; il resto è una transazione reale letta con un importo o una data errati. Una riga inventata porta a un saldo errato e sembra plausibile: il fallimento silenzioso. Modelli di frontiera mostrati nella loro impostazione migliore (per pagina).

holofinproduzione · per pagina0.1%
GPT-5.5per pagina8.3%
Claude Opus 4.8per pagina9.2%
Gemini 3.1 Proper pagina10.0%
0%TASSO DI RIGHE INVENTATE →15%
FIG.04
Una finestra più grande non è la soluzione

holofin elabora una pagina alla volta e domina ogni asse. Per i modelli di frontiera, fornire più pagine per chiamata è inutile: la recall scende un po', la precision sale un po', due pagine è spesso il punto di equilibrio. Il divario che conta è quello rispetto alla barra verde.

holofin1.000
GPT-5.5
per pagina0.939
due pagine0.942
intero doc0.932
Gemini 3.1 Pro
per pagina0.931
due pagine0.953
intero doc0.932
Claude Opus 4.8
per pagina0.929
due pagine0.948
intero doc0.940
0.00PIÙ ALTO È MEGLIO →1.00
Dove i modelli falliscono

La distruzione silenziosa della riga inventata

Non è un'incapacità di leggere l'inchiostro sulla pagina. Se una transazione è visibilmente stampata, ogni modello la trova. Il problema è cosa trovano quando la transazione non c'è. C'è un'enorme differenza operativa tra una riga omessa e una inventata. Una riga omessa è fastidiosa: il saldo non quadra e un operatore nota il buco. Una riga inventata è un killer silenzioso. Il modello raschia un saldo parziale, un subtotale o una data isolata e lo formatta come una transazione valida. E sembra perfettamente plausibile mentre lo fa. Semplicemente avvelena lentamente e invisibilmente l'aritmetica.

Cosa significa "inventato" qui — e cosa no

Abbinamo ogni riga restituita alla pagina in base a (date, signed amount) con precisione al centesimo. Una riga restituita che non corrisponde a nulla conta a sfavore del modello. Questo gruppo non è tutto uguale, quindi abbiamo tracciato a mano ogni riga non corrispondente: il 68–93% di queste (a seconda del modello) non ha alcuna controparte sulla pagina — un saldo parziale, un subtotale o una cifra isolata travestita da transazione. Il resto è una transazione reale letta con un importo o una data storpiati. Entrambi rendono l'estratto conto errato, ma sono fallimenti diversi — e la maggioranza è pura invenzione, non un errore di OCR. (Un avvertimento: un errore di lettura è distinguibile da un'invenzione solo quando sopravvive una riga gemella con cui accoppiarla, quindi questa suddivisione è un limite inferiore per le vere invenzioni).

Il gold è umano, non un modello

Non abbiamo lasciato che un modello valutasse altri modelli. La ground truth è stata costruita a mano: su ogni documento in cui i sistemi erano in disaccordo, una persona ha aperto il PDF originale e ha controllato le transazioni riga per riga. Il benchmark valuta rispetto a ciò che è effettivamente stampato sulla pagina, verificato da un essere umano, non rispetto all'opinione di un altro modello.

Metodologia

Come è strutturato il benchmark

I candidati di frontiera ricevono le immagini delle pagine con un prompt di estrazione generico in tre dimensioni di contesto. holofin è la vera pipeline di produzione (classificazione → OCR → estrazione per pagina), guidata tramite HTTP. Ogni metrica è doc-macro: calcolata per documento, poi mediata.

47 PDF bancari
uno per banca distinta
Anonimizzazione
pdf-holomask · tabelle & totali preservati
Finestre di rendering
per pagina · due pagine · intero doc
Estrazione
3 modelli di frontiera + pipeline holofin
Punteggio
vs gold verificato a mano
Gold = verificato da umani
controllato riga per riga rispetto a ogni PDF originale
Regola di match
esatta (transaction_date, signed amount) con precisione al centesimo
Cosa è questo benchmark — e cosa non è

44 estratti conto, uno per banca distinta, scelti per la diversità di layout — non ponderati in base alla frequenza con cui ogni banca appare nel traffico reale. Questo sovrarappresenta deliberatamente layout rari e complessi (una minuscola mutua basca, una cooperativa tedesca Raiffeisen di otto pagine), che è esattamente dove i modelli di frontiera falliscono. Quindi leggetelo come un test di affidabilità nel caso peggiore, non come una previsione dell'accuratezza media in produzione: un modello pulito sulle banche comuni qui può comunque essere affondato dal prossimo layout strano che incontra. E la singola riga errata di holofin su 44 doc è un dato incoraggiante, non un tasso garantito.

Perché non valutare semplicemente tramite la riconciliazione del saldo?

L'ovvio controllo in produzione è se la matematica di un estratto conto quadra: saldo iniziale + Σ transazioni = saldo finale. Lo abbiamo misurato, ed è necessario ma non sufficiente come metrica di verità. Gli estratti conto di GPT-5.5 quadrano 42 volte su 45, eppure inventa ancora circa l'8% delle righe rispetto alla pagina reale; una riga inventata compensata da un altro errore quadra comunque, e un modello che omette del tutto i saldi (Gemini li ha lasciati in bianco su 12 documenti) non può essere controllato affatto. Un estratto conto può superare la matematica ed essere comunque sbagliato. Quindi valutiamo ogni transazione rispetto al gold che è stato verificato a mano con il PDF originale.

Performance in produzione

Non ti serve una finestra più grande. Ti serve un'impalcatura.

Non risolvi l'estrazione passando un intero PDF a un endpoint e chiedendo a un modello di fare attenzione. In holofin questa è la descrizione del lavoro. Costruiamo la gabbia all'interno della quale corre l'intelligenza:

  • Struttura prima della semantica. L'OCR deterministico e la geometria costruiscono prima il contesto della pagina. I prompt catturano bene il significato e male la struttura visiva.
  • Delimitare il problema. Elaboriamo rigorosamente per pagina, senza mai chiedere a un modello di tenere un intero libro mastro nella memoria di lavoro.
  • Vincoli > sensazioni. Regole contabili rigorose decidono cosa conta come transazione prima ancora che un risultato venga finalizzato.

Una volta scritta abbastanza impalcatura per essere al sicuro (la ridondanza dell'OCR, la geometria di delimitazione, i parser rigorosi, le riconciliazioni), il modello non è più l'eroe. È lo specialista che chiami per le dispute e i casi limite. Il lavoro non è eliminare le parti noiose; è costruire cose noiose in modo che la magia abbia qualcosa di solido su cui poggiare.

Articoli correlati

Holofin