We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

Challenge

Mission: Turn messy documents into something useful, reliable, and trustworthy enough for real-world regulated work.

Category

Nutrient — Turn Documents Into Something People Actually Trust: Nutrient DWS Challenge

Inspiration

Fannie Mae and Freddie Mac are moving the appraisal industry from fixed legacy forms to standardized, machine-readable UAD 3.6 data — mandatory for new submissions in November 2026. Billions of Form 1004 appraisals still live in PDFs, tables, and free-text addenda. Pure AI on raw PDFs guesses; in mortgage, almost right is liability. We wanted a bridge that treats the PDF as evidence, not as something to silently rewrite into XML.

What it does

AppraiseForward extracts legacy Form 1004 appraisals with Nutrient, maps those elements onto a trimmed UAD 3.6 candidate model, and puts a human in the loop wherever the extract is combined or contradictory.

Shows Nutrient bounding boxes on the source PDF Flags conflicts (e.g. Property Values: Declining vs Stable) and split extracts (e.g. APN + tax year + taxes in one blob) Records reviewer decisions in an audit trail Generates a labeled candidate package (JSON / XML / PDF / ZIP) with local preflight Local technical checks can pass. Official GSE validation is still required. The app does not invent APNs, pick winners on conflicts, or claim UCDP delivery readiness.

How we built it

Two processes, no database:

  1. Frontend: Vite + React audit workspace — Review queue, PDF viewer with Nutrient overlays, verify flow, package modal
  2. Backend: FastAPI session API — upload / demo → background pipeline (load → extract → detect → map → validate) → session files under data/sessions/{uuid}/ Nutrient is the spatial extract layer (/extraction/parse, spatial elements + bboxes). A two-pass LLM mapper (Claude by default) assigns elements to UAD sections and fills a MISMO subset — or a saved fixture path for the hackathon demo with no live API calls. The UI never talks to Nutrient or the LLM directly; FastAPI owns those calls and persists extraction.json, mapped.json, and audit_log.json. ## Challenges we ran into Trust vs automation: Mapping must never invent values. Designing “stop” states (conflict, split, checkbox cluster, confirm) was harder than happy-path extraction. Fixture vs live: Demo reliability required a replayable Nutrient fixture, while still supporting a real live path — and making sure Load Demo 1004 and Upload PDF are not interchangeable. Honest packaging: ZIP generation is easy to oversell. We split package integrity from data readiness and kept Official GSE validation: Not run visible. Incomplete sample forms: Many Gaps are demo artifacts; we had to teach the UI that Gaps ≠ a missing-field punch list. ## Accomplishments that we're proud of A judge-ready fixture demo: 543 Nutrient elements, conflicts and APN split that refuse to guess Human-verified audit trail tied to page-level Nutrient evidence Clear product stance: draft vs review-complete badges without claiming GSE acceptance End-to-end path from PDF → extract → map → verify → candidate ZIP in one workspace ## What we learned In regulated document workflows, provenance beats perfect autofill Spatial extraction (Nutrient) and schema mapping (LLM) should be separate trust layers Labeling what you don’t do (invent, auto-approve, UCDP-ready) is part of the product Fixture-first demos make hackathon storytelling reliable without hiding the live architecture

What's next for AppraiseForward -Moving appraisal data into the future.

Wire Fannie Mae’s UAD Compliance API as an explicit external validation step Expand beyond Form 1004 toward more property types and fuller UAD 3.6 coverage Nutrient Web SDK viewer for production-grade PDF review Multi-reviewer workflows for lenders, AMCs, and QC teams Stronger live-mapping evals so conflict/split detection stays as sharp as the authored fixture Tagline: Moving appraisal data into the future — with evidence, humans, and honest package labels. Validate with target personas such as

Built With

Share this project:

Updates

Submission history