Year 1 follows the architecture's build sequence, Phases 0–5. Every year after expands what the platform does only as fast as observability, evals, and review controls allow.
Straight from the final architecture. MVP definition of done: upload demand → normalized SKUs → evidence-linked matches → versioned landed-cost quote → approved events on the ledger → lakehouse mirror → dashboards.
gantt
dateFormat YYYY-MM-DD
axisFormat %b '%y
section Build sequence
Phase 0 · Data & workflow baseline :p0, 2026-07-01, 45d
Phase 1 · Ledger foundation :crit, p1, 2026-07-21, 71d
Phase 2 · AI ingestion & normalization :p2, 2026-10-01, 85d
Phase 3 · Matching & quote engine :crit, p3, 2026-12-01, 106d
Phase 4 · Lakehouse & evaluation loop :p4, 2027-02-01, 73d
Phase 5 · Order, shipment & finance :crit, p5, 2027-04-01, 91d
section Milestones
Ledger live :milestone, m1, 2026-09-30, 0d
First evidence-backed quote :milestone, m2, 2027-01-20, 0d
Quote→payment loop closed :milestone, m3, 2027-06-25, 0d
Artifact inventory, initial product families, required-attribute ontology, event taxonomy v1, review policy v1, tenant and security model.
Postgres schema for documents, evidence, candidate facts, review tasks, events, projections, and outbox. Ledger command API, hash chain, idempotency controls, basic operator workbench.
Document classifier, field extractor, product normalizer, evidence-span creation, model run logging, review queues for specs and supplier records.
Product equivalency agent with attribute-level comparison, match approval workflow, supplier quote extraction, deterministic landed-cost calculator, quote versioning and savings report.
Outbox publisher, Iceberg bronze/silver/gold, model evaluation datasets from review outcomes, reporting dashboards, feedback into prompts and ontology.
Customer and supplier PO ledger, shipment milestones, invoice and payment tracking, credit accounts and draws, reconciliation agents for PO / invoice / packing list / BOL / payment.
"Facts auto-approved" means the share of committed ledger events whose candidate facts required zero human touches. The rate only rises while every metric below holds on the regression sets — miss one, and the policy engine rolls thresholds back.
| METRIC · MEASURED ON REVIEWED SETS | Y1 EXIT | Y3 EXIT | Y5 EXIT |
|---|---|---|---|
| Field-extraction accuracy, material fields | ≥95% | ≥98% | ≥99% |
| Match precision at approval | ≥97% | ≥98.5% | ≥99.5% |
| Correction rate on auto-approved facts | <2% | <1% | <0.5% |
| Reconciliation auto-match rate | 60% | 80% | 92% |
| Quote dispute rate | <1.0% | <0.5% | <0.25% |
| → Facts auto-approved | 40% | 75% | 90% |
Each track advances a year at a time. The gate for more autonomy is always the same: eval scores and review outcomes, never enthusiasm.
The share of facts committed without a human touching them — gated by eval scores, reversible by policy. It is the platform's leverage, the moat's growth rate, and the margin story in one metric.
flowchart TB RO["Review outcomes
approve · edit · reject"] --> ED[("Eval datasets
gold tables")] ED --> RG["Regression runs
per model or prompt change"] RG --> PE["Auto-approval
policy engine"] PE -->|thresholds raised| AA["Higher auto-approval rate"] PE -->|scores regress| RB["Thresholds rolled back"] RB --> RO AA --> MV["More volume,
fewer human touches"] MV --> RO