Synthetic Invoice Data
Synthetic training data — no real PII, fully coherent identities
Generate synthetic modern SaaS-style invoice training data — dark header accent, borderless line-item table, uppercase FROM / BILL TO blocks, PO number and discount lines. The billing-platform aesthetic (Stripe, FreshBooks, Bill.com) that most AP extractors see least often.
54
Fields per document
1
Page
Commercial
Category
What this document is
The modern invoice is the layout that billing platforms popularized: a dark accent header, uppercase section labels (FROM, BILL TO, PAYMENT INFORMATION, NOTES), a borderless line-item table separated by whitespace rather than rules, and a totals stack that carries Subtotal, Tax, Discount, and a prominent TOTAL DUE. It is what a B2B SaaS or agency invoice looks like when it is generated by software rather than a word processor.
Why generate synthetically
Borderless, whitespace-delimited tables are the failure mode for extractors that rely on ruled grid detection. Synthetic modern invoices let you train and benchmark that case at volume, with exact ground truth, instead of hunting for real examples that you then cannot use because they contain live vendor and customer data.
What makes synthetic data useful
Each document is generated from a coherent business identity: FROM and BILL TO carry two distinct fabricated parties, line-item quantities multiply against unit prices to produce the extended amounts, the subtotal sums the rows, and the discount and tax lines resolve to a TOTAL DUE that balances. Invoice numbers follow sequential conventions and payment terms come from the standard Net 15/30/45/60 and 2/10 Net 30 vocabulary.
Training challenges
The line-item table has no ruled cell boundaries — row and column segmentation has to come from whitespace and alignment alone, which is precisely where grid-based table extractors collapse. The uppercase section labels sit in a reversed-contrast header band, so binarization tuned for black-on-white text can drop them entirely. FROM and BILL TO occupy the same horizontal band with only whitespace between them, and both are address blocks, so a model that segments on layout rather than semantics routinely assigns the vendor's city line to the customer. The totals stack adds a Discount row that is absent from the other invoice designs, shifting every subsequent label down and breaking any fixed-offset assumption about where TOTAL DUE lives.
Who uses this data
AP-automation and invoice-capture vendors, B2B billing and subscription platforms, spend-management and procurement SaaS, ERP add-ons that ingest supplier PDFs, and table-extraction research teams that need a borderless-grid benchmark with exact ground truth. Any extractor sold into modern B2B has to handle this aesthetic, and most were trained on scanned enterprise invoices instead.
Document complexity profile
54 fields on a single rendered page: 34 text, 18 currency, and 2 date. 52 annotation relations link the 22 static printed labels to their values. There are no conditional or arithmetic bindings in the definition itself — line-item arithmetic is applied by the invoice computed-field module before render — so the document's internal consistency is guaranteed without expression-tree evaluation at fill time.
Key stats from our synthetic corpus
Quantitative characteristics of the Invoice documents our generator produces.
| Metric | Value | Detail |
|---|---|---|
| Population coverage | 64% | 64% of identities in our 1,000-identity corpus can send a modern invoice. The other 36% have no business or employment relationship — the negative class for supplier-document classifiers. |
| Ruled table lines | 0 | The Modern design draws no cell rules at all. Row and column boundaries exist only as whitespace, which is the specific condition under which grid-detection table extractors lose line-item recall. |
| Fourth line item present | 79% | 79% of synthetic modern invoices carry a fourth line item and 57% carry a fifth, so the table's bottom edge — and therefore the vertical position of the totals stack — moves from document to document. |
| Printed labels on the page | 22 | 22 static labels are printed and exported, including the uppercase FROM / BILL TO / PAYMENT INFORMATION / NOTES section headers that sit inside the reversed-contrast accent band. |
| Annotation relations | 52 | 52 label-to-value relations ship with every document, giving FUNSD-style linking models a fully supervised target on a layout with no ruled structure to lean on. |
How this document co-occurs with others
Rates at which identities in our corpus that produce a Invoice also produce other documents.
| Correlation | Rate | Detail |
|---|---|---|
| Same transaction, Classic layout | 100% | Every modern-invoice identity can also render the Classic layout from the same transaction. The ruled-versus-borderless pair is the cleanest controlled experiment for measuring how much of a model's accuracy comes from table rules. |
| Same transaction, Professional Services layout | 100% | The same transaction also renders as a professional-services invoice with a Qty/Hrs column and a late-fee policy block — a third label vocabulary over identical ground truth. |
| Sender's W-9 on file | 100% | Every modern-invoice sender produces a matching W-9. Header name, address, and TIN reconcile to Part I of the W-9, the standard invoice-to-vendor-record match. |
| Sender files a 1040 | 100% | Every sender also produces a Form 1040, so invoice revenue can be reconciled against a personal return in the same identity graph. |
| Households with dependents | 33% | 33% of modern-invoice senders claim at least one dependent and 14% claim two or more — household signals fintech underwriters use to separate full-time businesses from side operations. |
| Six-figure household income | 17% | 17% of senders report household income at or above $100K, producing the larger totals that exercise currency parsing past the five-figure boundary. |
All stats above are corpus-derived: they were computed on a local synthetic corpus of 1,000 generated identities produced by SymageDocs' World Simulation Engine. No real vendor, customer, or business transaction data was used. `make corpus-stats` regenerates the shipped corpus_stats.json for the site's analytics form set, which does not include this edition; reproduce these figures with `python -m symagedocs.corpus_analysis --corpus-size 1000 --form-id invoice_modern`.
Frequently asked questions
- What data format do synthetic modern invoice documents include?
- Each generated identity produces a rendered PDF plus a structured JSON annotation file with bounding boxes, field types, and ground-truth values for all 54 fields, including every line-item cell and the full totals stack. COCO, YOLO, FUNSD, and BIO/NER exports are available from the same job.
- Does the borderless table actually make extraction harder?
- Yes, measurably. The Classic layout draws alternating row shading and column rules; the Modern layout separates cells with whitespace only. Models trained on ruled invoices typically hold their header accuracy but lose line-item row recall on this design — which is the entire reason to include it in a training mix.
- How does labeling work?
- Labels are emitted by the generator, not annotated afterwards. Every value field and every static printed label (FROM, BILL TO, Subtotal, Discount) is exported with its exact box and its relation to the value it labels, so relation-extraction and key-value linking models can train directly on the output.
- Are PO numbers and discounts always present?
- The Modern design is the only invoice layout we ship that prints a PO Number label and a Discount row. Their presence in the template — and their variable population per document — is what makes this variant useful for training conditional-field logic rather than fixed-slot extraction.
- Can I use this data commercially?
- Yes. All synthetic data is generated from statistical models, contains no real business data, and is licensed for commercial use including ML model training and benchmarking.