← Harness Reports

Test invoices

Every invoice used in testing, grouped by set. Each PDF is exactly what the tool was given; its answer key lists what the tool should find. Links open in a new tab. All invoices are fictitious test data: company names, addresses and tax numbers are invented.

Corpus A: independent invoices

30 invoices written independently of the extractor: 10 page structures, 8 currencies, 6 tax regimes and 4 languages. 15 are correct; 15 contain a random set of one to three mistakes.

Invoice Page structure Currency What the tool should find Answer key
invoice-001 (PDF) letter EUR Correct invoice JSON
invoice-002 (PDF) banner AUD tax mismatch JSON
invoice-003 (PDF) sidebar GBP Correct invoice JSON
invoice-004 (PDF) receipt USD missing vat id; grand total mismatch; line total mismatch (line 2) JSON
invoice-005 (PDF) taxsummary CHF Correct invoice JSON
invoice-006 (PDF) qtyfirst EUR duplicate charge (line 6); line total mismatch (line 4) JSON
invoice-007 (PDF) letterhead INR Correct invoice JSON
invoice-008 (PDF) compact EUR duplicate charge (line 6); missing vat id; grand total mismatch JSON
invoice-009 (PDF) cards AUD Correct invoice JSON
invoice-010 (PDF) multipage EUR duplicate charge (line 17) JSON
invoice-011 (PDF) letter USD subtotal mismatch; tax mismatch; line total mismatch (line 4); line total mismatch (line 5) JSON
invoice-012 (PDF) banner GBP Correct invoice JSON
invoice-013 (PDF) sidebar USD subtotal mismatch JSON
invoice-014 (PDF) receipt PKR Correct invoice JSON
invoice-015 (PDF) taxsummary EUR subtotal mismatch; line total mismatch (line 5); line total mismatch (line 2) JSON
invoice-016 (PDF) qtyfirst CAD Correct invoice JSON
invoice-017 (PDF) letterhead EUR grand total mismatch; tax mismatch; subtotal mismatch JSON
invoice-018 (PDF) compact AUD Correct invoice JSON
invoice-019 (PDF) cards GBP duplicate charge (line 4); subtotal mismatch JSON
invoice-020 (PDF) multipage USD Correct invoice JSON
invoice-021 (PDF) letter CHF Correct invoice JSON
invoice-022 (PDF) banner EUR tax mismatch; subtotal mismatch; line total mismatch (line 4) JSON
invoice-023 (PDF) sidebar INR Correct invoice JSON
invoice-024 (PDF) receipt EUR duplicate charge (line 7) JSON
invoice-025 (PDF) taxsummary AUD Correct invoice JSON
invoice-026 (PDF) qtyfirst EUR line total mismatch (line 2) JSON
invoice-027 (PDF) letterhead USD Correct invoice JSON
invoice-028 (PDF) compact GBP tax mismatch JSON
invoice-029 (PDF) cards USD Correct invoice JSON
invoice-030 (PDF) multipage PKR duplicate charge (line 17); line total mismatch (line 4); subtotal mismatch JSON

Corpus B: built-in generator

40 invoices from the project's own generator in 10 visual designs. Half are correct; the other half have one planted error each.

Invoice Design Currency What the tool should find Answer key
invoice-001 (PDF) corporate-blue EUR Correct invoice JSON
invoice-002 (PDF) serif-classic GBP Correct invoice JSON
invoice-003 (PDF) mono-receipt EUR Correct invoice JSON
invoice-004 (PDF) modern-green USD Correct invoice JSON
invoice-005 (PDF) bordered-grid EUR Correct invoice JSON
invoice-006 (PDF) letterhead-logo EUR Correct invoice JSON
invoice-007 (PDF) compact-orange EUR Correct invoice JSON
invoice-008 (PDF) large-print EUR Correct invoice JSON
invoice-009 (PDF) slate-tall-header EUR Correct invoice JSON
invoice-010 (PDF) teal-minimal EUR Correct invoice JSON
invoice-011 (PDF) corporate-blue USD grand total mismatch JSON
invoice-012 (PDF) serif-classic EUR grand total mismatch JSON
invoice-013 (PDF) mono-receipt GBP missing vat id JSON
invoice-014 (PDF) modern-green EUR tax mismatch JSON
invoice-015 (PDF) bordered-grid EUR missing vat id JSON
invoice-016 (PDF) letterhead-logo EUR line total mismatch (line 2) JSON
invoice-017 (PDF) compact-orange USD missing vat id JSON
invoice-018 (PDF) large-print EUR subtotal mismatch JSON
invoice-019 (PDF) slate-tall-header GBP subtotal mismatch JSON
invoice-020 (PDF) teal-minimal EUR line total mismatch (line 2) JSON
invoice-021 (PDF) corporate-blue GBP Correct invoice JSON
invoice-022 (PDF) serif-classic EUR Correct invoice JSON
invoice-023 (PDF) mono-receipt EUR Correct invoice JSON
invoice-024 (PDF) modern-green EUR Correct invoice JSON
invoice-025 (PDF) bordered-grid GBP Correct invoice JSON
invoice-026 (PDF) letterhead-logo GBP Correct invoice JSON
invoice-027 (PDF) compact-orange EUR Correct invoice JSON
invoice-028 (PDF) large-print EUR Correct invoice JSON
invoice-029 (PDF) slate-tall-header USD Correct invoice JSON
invoice-030 (PDF) teal-minimal USD Correct invoice JSON
invoice-031 (PDF) corporate-blue GBP subtotal mismatch JSON
invoice-032 (PDF) serif-classic EUR subtotal mismatch JSON
invoice-033 (PDF) mono-receipt EUR tax mismatch JSON
invoice-034 (PDF) modern-green GBP grand total mismatch JSON
invoice-035 (PDF) bordered-grid EUR grand total mismatch JSON
invoice-036 (PDF) letterhead-logo EUR subtotal mismatch JSON
invoice-037 (PDF) compact-orange USD grand total mismatch JSON
invoice-038 (PDF) large-print EUR missing vat id JSON
invoice-039 (PDF) slate-tall-header EUR line total mismatch (line 3) JSON
invoice-040 (PDF) teal-minimal GBP line total mismatch (line 4) JSON

Corpus C: multi-page invoices

40 multi-page invoices with 40 answer keys, made with a separate multi-page generator: 9 run to two pages, 21 to three and 10 to four, and 20 carry a planted mistake. They have wrapped descriptions, section totals, carried-forward rows, deposits and other content that single-page invoices do not have.

Invoice Page structure Currency What the tool should find Answer key
invoice-001 (PDF) inline CHF Correct invoice JSON
invoice-002 (PDF) stacked CHF Correct invoice JSON
invoice-003 (PDF) wide CAD Correct invoice JSON
invoice-004 (PDF) inline SEK Correct invoice JSON
invoice-005 (PDF) wide SEK Correct invoice JSON
invoice-006 (PDF) inline EUR Correct invoice JSON
invoice-007 (PDF) wide SEK Correct invoice JSON
invoice-008 (PDF) coded CHF Correct invoice JSON
invoice-009 (PDF) stacked CAD Correct invoice JSON
invoice-010 (PDF) stacked AUD Correct invoice JSON
invoice-011 (PDF) inline CHF subtotal mismatch JSON
invoice-012 (PDF) coded CHF line total mismatch (line 14) JSON
invoice-013 (PDF) inline CAD subtotal mismatch JSON
invoice-014 (PDF) coded EUR line total mismatch (line 49) JSON
invoice-015 (PDF) inline SEK line total mismatch (line 58) JSON
invoice-016 (PDF) classic SEK line total mismatch (line 40) JSON
invoice-017 (PDF) coded CHF line total mismatch (line 46) JSON
invoice-018 (PDF) inline CAD grand total mismatch JSON
invoice-019 (PDF) wide CHF grand total mismatch JSON
invoice-020 (PDF) wide EUR line total mismatch (line 73) JSON
invoice-021 (PDF) wide CHF Correct invoice JSON
invoice-022 (PDF) stacked AUD Correct invoice JSON
invoice-023 (PDF) wide SEK Correct invoice JSON
invoice-024 (PDF) classic AUD Correct invoice JSON
invoice-025 (PDF) inline EUR Correct invoice JSON
invoice-026 (PDF) classic AUD Correct invoice JSON
invoice-027 (PDF) stacked CHF Correct invoice JSON
invoice-028 (PDF) wide AUD Correct invoice JSON
invoice-029 (PDF) stacked EUR Correct invoice JSON
invoice-030 (PDF) wide EUR Correct invoice JSON
invoice-031 (PDF) classic CAD subtotal mismatch JSON
invoice-032 (PDF) inline EUR grand total mismatch JSON
invoice-033 (PDF) coded EUR line total mismatch (line 15) JSON
invoice-034 (PDF) wide AUD grand total mismatch JSON
invoice-035 (PDF) stacked CHF tax mismatch JSON
invoice-036 (PDF) inline EUR grand total mismatch JSON
invoice-037 (PDF) classic AUD line total mismatch (line 3) JSON
invoice-038 (PDF) classic CAD subtotal mismatch JSON
invoice-039 (PDF) wide CAD missing vat id JSON
invoice-040 (PDF) coded EUR line total mismatch (line 23) JSON

Corpus D: new independent invoices

30 invoices written independently of the extractor, after all the fixes in Report 4: 10 different kinds of document (till receipt, amount-first bill, prose list, e-mail, cards, grouped, tax column, quantity-first, sidebar and summary-first), 11 currencies and 6 languages. 15 are correct; 15 contain one to three planted mistakes.

Invoice Document kind Currency What the tool should find Answer key
invoice-001 (PDF) receipt SEK Correct invoice JSON
invoice-002 (PDF) summaryfirst BRL subtotal mismatch JSON
invoice-003 (PDF) prose USD Correct invoice JSON
invoice-004 (PDF) qtyfirst NZD line total mismatch (line 4) JSON
invoice-005 (PDF) sidebar MXN Correct invoice JSON
invoice-006 (PDF) grouped EUR tax mismatch, grand total mismatch JSON
invoice-007 (PDF) taxcolumn SGD Correct invoice JSON
invoice-008 (PDF) cards EUR duplicate charge (line 4) JSON
invoice-009 (PDF) amountfirst EUR Correct invoice JSON
invoice-010 (PDF) email ZAR grand total mismatch JSON
invoice-011 (PDF) receipt GBP subtotal mismatch, line total mismatch (line 1) JSON
invoice-012 (PDF) summaryfirst EUR Correct invoice JSON
invoice-013 (PDF) prose AED line total mismatch (line 7), tax mismatch, subtotal mismatch JSON
invoice-014 (PDF) qtyfirst CAD Correct invoice JSON
invoice-015 (PDF) sidebar SEK line total mismatch (line 3), line total mismatch (line 4), subtotal mismatch JSON
invoice-016 (PDF) grouped BRL Correct invoice JSON
invoice-017 (PDF) taxcolumn USD subtotal mismatch, tax mismatch JSON
invoice-018 (PDF) cards NZD Correct invoice JSON
invoice-019 (PDF) amountfirst MXN line total mismatch (line 3), line total mismatch (line 6), missing vat id, grand total mismatch JSON
invoice-020 (PDF) email EUR Correct invoice JSON
invoice-021 (PDF) receipt SGD Correct invoice JSON
invoice-022 (PDF) summaryfirst EUR line total mismatch (line 2) JSON
invoice-023 (PDF) prose EUR Correct invoice JSON
invoice-024 (PDF) qtyfirst ZAR subtotal mismatch JSON
invoice-025 (PDF) sidebar GBP Correct invoice JSON
invoice-026 (PDF) grouped EUR line total mismatch (line 1) JSON
invoice-027 (PDF) taxcolumn AED Correct invoice JSON
invoice-028 (PDF) cards CAD subtotal mismatch JSON
invoice-029 (PDF) amountfirst SEK Correct invoice JSON
invoice-030 (PDF) email BRL line total mismatch (line 5), line total mismatch (line 6) JSON