# Source notes for the fictional PDF extraction example

This packet accompanies `ai-pdf-data-extraction-workflow-fictional-quote.pdf`. It is an authored teaching document, not a supplier quote submitted by a customer, a legal instrument, an invoice, an OCR benchmark, or an OpenMax execution. All names, identifiers, items, quantities and monetary values are invented. The quote has no real issuer or signature.

## What the actual file contains

The PDF has three 600 × 840 point pages. Pages 1 and 2 contain ordinary generated text. Page 3 is a rasterized image of an authored page, embedded without an OCR text layer. The synthetic source image is 1250 × 1750 pixels; it is not a photographed or scanned physical document. All three pages identify the example as fictional.

Page 1 gives quote ID Q-00742, revision B, date 03/04/2026, currency EUR, and delivery date “To be confirmed.” It explicitly defines DD/MM/YYYY, periods as thousands separators, commas as decimals, and preservation of identifier characters. The date therefore normalizes to 2026-04-03; this does not rely on a guessed jurisdiction. The delivery date is null with status not_set, not zero, an unreadable value or today's date.

Page 2 begins an item table. AX01 has 12 pieces at EUR 25.00, line amount EUR 300.00. BX02 has 8 pieces at EUR 37.50, line amount EUR 300.00. A continuation statement identifies page 3. The units and currency note lies below the table, illustrating context that a tightly cropped table region could omit.

Page 3 repeats the table header and adds CX03: 2 pieces at EUR 120.00, amount EUR 240.00. The subtotal is EUR 840.00, illustrative tax EUR 168.00, and total EUR 1008.00, displayed as `1.008,00`. The 20% tax is merely a declared arithmetic assumption, not a jurisdictional tax rule or a recommendation.

## How to read the candidate CSV

`ai-pdf-data-extraction-workflow-fields-example.csv` contains ten deliberately authored candidate fields. Its first row is the header. Raw values containing commas are quoted using normal CSV rules. Do not parse this CSV by splitting each line on commas.

- quote_id: candidate Q-742 loses characters; expected Q-00742.
- issue_date: candidate 2026-03-04 reverses the declared date order; expected 2026-04-03.
- currency: EUR matches.
- line1_qty: 12 matches AX01.
- line2_qty: 2 belongs to CX03 rather than BX02; expected 8 for BX02.
- line3_qty: 2 matches CX03.
- subtotal: 840.00 matches.
- tax: 168.00 matches.
- total: 100.80 is not a valid normalization of 1.008,00; expected 1008.00.
- delivery_date: an empty CSV value with value_state=not_set correctly represents no set date. It is not a failed extraction simply because the scalar cell is empty.

The errors are seeded by the author. No claim is made that a particular model produced them. Nine nonempty scalar values out of ten fields give 90% filled cells. Six correctly interpreted fields out of ten give 60% agreement with the authored answer key, including the correctly represented unset date. Neither number is a measured product accuracy rate. The record remains blocked for release until its four erroneous material fields are resolved; 0 of 1 records is releasable before corrections under this example's release rule.

## Calculations and provenance

12 × 25.00 + 8 × 37.50 + 2 × 120.00 = 840.00 EUR. The illustrative tax is 840.00 × 20% = 168.00 EUR. 840.00 + 168.00 = 1008.00 EUR. The candidate total differs from the reconciled total by 100.80 − 1008.00 = −907.20 EUR. These calculations can reveal inconsistency; in real documents, they do not authorize overwriting the source total or assuming which input is wrong.

`ai-pdf-data-extraction-workflow-source-manifest.json` contains the actual PDF's SHA-256 hash, page modes and ten authored field rectangles. These are placement coordinates around the displayed values, not bounding boxes detected by an OCR model. `page_index` is zero-based; `printed_page` retains the visible label. Rectangles use top-left coordinates on an unrotated 600 × 840 point page, with x/y/width/height also represented as normalized ratios. The hash identifies this byte stream, not a supplier's identity or document authenticity.

A separate coordinate arithmetic example uses left=0.1, top=0.2, width=0.3, height=0.04 on a 1000 × 1400 pixel rendering. It yields left=100, top=280, width=300, height=56 pixels. This example is not the crop geometry of any field in the PDF. Recalculate actual transformations when page rotation, cropping or output size changes.

## What was and was not checked

Local checks inspect the three-page structure, the original-file hash, six text-backed field regions, the absence of a text layer on page 3, the candidate answer key and decimal arithmetic. All three rendered pages were visually inspected for legibility, item association and the source totals. This is not an OCR evaluation: no OCR engine, hosted extraction API or OpenMax workflow was run. The synthetic image is deliberately clean and does not represent the range of real document defects.

When evaluating a real system, add permitted examples of rotated pages, poor scans, merged cells, revised layouts, lost footnotes and unsupported languages. Keep a held-out answer key and distinguish exact field correctness, exception detection and whole-record release. Have the relevant professionals approve sensitive or consequential use; the exercise itself grants no upload, storage, payment or write permissions.
