Grounded document extraction with bounding-box citations

marakiii1 pts0 comments

nutrient-extraction-samples | Self-contained demos for the Nutrient Data Extraction API — grounded extraction with per-field citations, bounding boxes, and confidence scores.

nutrient-extraction-samples

Nutrient Extraction Samples

Most document AI returns values.<br>This returns values and proof.

Hover any extracted field. The highlight lands on the exact pixels it came from.

Every extracted value carries a bounding box , a confidence score , and a page index . When a value looks wrong you don’t go hunting through the document — you hover the field and see precisely where the model looked. A highlight in the wrong place is a visible audit trail.

// Send a schema. Get back values with provenance.<br>"procedure_code": "99213", // the value<br>"bbox": { "x": 412, "y": 288, "width": 74, "height": 18 }, // where it came from<br>"confidence": 0.95, // how sure the model was<br>"pageIndex": 0 // which page

Open a live demo →<br>Run it yourself<br>Give it to an agent

Five documents, five hard problems

Each demo is a Python script that calls the API and generates a self-contained HTML file. The generated output is committed — open any of them in a browser with no signup, no key, and no install.

### CMS-1500 Health Insurance Claim<br>`demos/grounded_extraction/` · Data Extraction

Table row extraction across a dense printed grid. The form uses a dropout-red ink grid that scanners typically destroy — procedure codes, diagnosis codes, billing amounts, and provider fields come back correct, each highlighted in the exact table cell it came from.

**[Open demo →](https://pspdfkit.github.io/nutrient-extraction-samples/demos/grounded_extraction/output/index.html)**

### Indiana State Birth Record<br>`demos/birth_record_extraction/` · Data Extraction

Signature block detection on a mixed handwritten/printed document. The schema separates the *printed name* from the adjacent *cursive signature* — two visually adjacent fields that trip up most models. Includes a before/after tuning comparison showing how schema description specificity fixes extraction errors.

**[Open demo →](https://pspdfkit.github.io/nutrient-extraction-samples/demos/birth_record_extraction/output/index.html)**

### Making Home Affordable — RMA<br>`demos/rma_extraction/` · Data Extraction

Value isolation in a dense 3-column financial table. Monthly Income, Total Assets, and Total Expenses sit side by side with nearly identical labels. The tuning story shows a vague schema description pulling the wrong column, and a precise one fixing it — with the highlight visually confirming the correction.

**[Open demo →](https://pspdfkit.github.io/nutrient-extraction-samples/demos/rma_extraction/output/index.html)**

### CA SC-100 Small Claims<br>`demos/sc100_extraction/` · Data Extraction

Full narrative extraction from a free-text legal field. `incident_reason` captures a complete multi-sentence plaintiff explanation across multiple lines, grounded with a single box covering the whole area. Also shows cross-page extraction: five fields from three different pages.

**[Open demo →](https://pspdfkit.github.io/nutrient-extraction-samples/demos/sc100_extraction/output/index.html)**

### Small Residential Income Property Appraisal Report<br>`demos/parse_citations/` · Parse API

The document decomposed into semantic blocks — paragraphs, section headers, tables — each with spatial coordinates. This is the RAG citation case: every block in the sidebar links back to its exact location, so a retrieval pipeline can cite its source precisely. Reach for Parse when you need structure-aware chunking rather than field-level extraction.

**[Open demo →](https://pspdfkit.github.io/nutrient-extraction-samples/demos/parse_citations/output/index.html)**

Vertical<br>Demo

Healthcare billing<br>CMS-1500

Government / vital records<br>Indiana Birth Record

Mortgage / housing assistance<br>Making Home Affordable RMA

Legal / civil court<br>CA SC-100 Small Claims

Real estate / lending<br>Appraisal Report (Form 72)

Screenshots — the hover interaction in each demo

![CMS-1500 extraction demo — procedure code highlighted in the billing grid](/nutrient-extraction-samples/docs/screenshots/grounded-extraction.png)<br>![Indiana birth record demo — applicant signature field highlighted](/nutrient-extraction-samples/docs/screenshots/birth-record-extraction.png)<br>![RMA extraction demo — monthly income field isolated in the 3-column financial table](/nutrient-extraction-samples/docs/screenshots/rma-extraction.png)<br>![SC-100 extraction demo — plaintiff narrative paragraph highlighted across multiple lines](/nutrient-extraction-samples/docs/screenshots/sc100-extraction.png)<br>![Parse citations demo — semantic block highlighted with its location in the appraisal document](/nutrient-extraction-samples/docs/screenshots/parse-results.png)

Run it yourself

Just want to look? Every output/index.html is committed — open one in a browser and you’re done. To regenerate against your own documents:

# 1. Python 3.10+<br>pip install -r requirements.txt

# 2. Replay...

extraction nutrient demo samples demos open

Related Articles