The share of vendor-confirmed lines the agent completed on its own. Left alone, the simulator sits at 100% — every exception it can't handle is queued for you. Work the queue and the number settles at an honest ~81%: routine goes to the agent, exceptions go to you.
TOUCHLESS TREND · LAST 14 DAYS
—
——
What you’re looking at
Metis is an AI purchasing copilot. This page runs it against a
complete simulated distribution company in your browser — 10 vendors, 2,000 SKUs, ~200 purchase-order
lines a week, entirely synthetic data; nothing leaves this tab. Every line must clear three checkpoints —
ordered → vendor confirmed → warehouse received. Metis reads
the simulated vendor emails, chases silence, writes routine results back to the ERP on its own, and queues only
the judgment calls for you.
1 Advance the world — hit +1 day / +1 week (top right)2 Work the queue — open Action Center and clear the exceptions3 Read the honest number — touchless shows 100% until the queue is worked; it settles near ~81%
Simulation log
Each simulated day: demand → replenishment → vendor replies → AI processing → chasing → receiving
Hit "+1 day" or "+1 week" (top right) to advance the world — each day's events show up here.
Auto write-backs this week
—
Line confirmations and reschedules executed directly by the agent, fully audit-trailed
Auto-processing feed
ACTION CENTER
Exception queue
Only the calls the agent won't make on its own land here: reschedules that hit demand, quantity mismatches, split shipments, unknown part numbers, three chases with no reply, lead-time drift. Approve, and the AI executes the write-back.
Recently resolved
PO LINE BOARD · LINE-LEVEL STATE MACHINE
Every open line
ordered → confirmed → received. Every line carries a promise date, reschedule history and chase count — this table is the buyer's working surface.
—
SUPPLIER PLAYBOOKS · MODELLED PER VENDOR
10 vendor profiles
Response speed, promise accuracy, OTIF, observed lead time vs master data — scorecards build up from every exchange, and lead-time drift triggers a master-data update proposal.
AI INBOX · FULLY AUTOMATED INTAKE
Inbox & chasers
Every vendor reply in the simulated world lands here first, where the agent extracts, parses and routes it. You can also paste one in by hand.
Manual intake
Inbox
Chasers (agent outbound)
RECEIPT & SETTLEMENT · TODAY —
Delivery → goods receipt → 3-way match → payment
Planning stops at "warehouse received"; this view carries on: in transit → delivered awaiting goods receipt (7-day GR-SLA) → 3-way match (invoice vs PO confirmed price vs GRN good qty) → payable / HOLD. All driven by the same synthetic world — zero real data.
In-transit & receiving pipeline
Not shipped / in transit (GIT) / delivered awaiting GR
Delivered awaiting GR — days since arrival
0–3 OK · 4–7 WARN · 8–14 HIGH · >14 escalate
Goods-receipt action queue (GR-SLA)
Invoice payment status
One short line puts the whole invoice on HOLD
AUDIT TRAIL
Audit trail
AI extraction → autonomy rules → your approval → AI execution — every step leaves a trace.
WHEN SIMULATION MEETS REALITY · THE HONESTY LAYER
When simulation meets reality
This demo runs in a clean synthetic world. Below is what happened when we fed it its first real supplier email — and the fix list we are working through, item by item. The gap between simulation and reality isn't hidden; it is the most honest measure of how far there is to go.
The first real email that broke the simulator
We built Metis as a supply-chain simulator: a clean world of synthetic purchase orders, tidy supplier confirmations, and an extraction engine that ran at roughly 85% touchless. Then we fed it its first real supplier email — one genuine message from a supplier we'll call Cascade Devices, fully desensitized. The simulator didn't just stumble. It returned nothing.
The email wasn't even the type we'd designed for. It was a sea-freight shipment notice — "this PO will be picked up for sea freight today" with the invoice and booking confirmation attached as PDFs — not the neat PO confirmation our schema expected. Three layers of reality broke through at once:
Data hides in attachments
attachments, not body
The visible body was two lines; the real payload sat in PDF attachments. The parser reads only the body — it opened an empty envelope.
Dates speak a local dialect
21/4/26 (D/M/YY)
Australian day/month/year. The date logic only knew YYYY-MM-DD, so this date was silently lost.
PO numbers don't match the shape
PO025969-1
A real PO: no separator, a six-digit body, a -1 batch suffix. The simulator only knew its own invented PO-2026-NNNN, so the extracted reference came back empty.
No concept of message type
no message_type
Every email entered through the same "process a confirmation" gate. A shipment notice had no way to say "I'm not a confirmation, I'm goods in transit" — it could only land in the unmatched queue.
One real email exposed four assumptions the simulated world had never been forced to question.
The fix backlog — P1–P5 (public roadmap, not yet built)
Guardrails: every regression must prove the touchless rate doesn't drop and old formats still work, all local and offline — no real mailbox connected, no data leaves the machine.
Positioning
A simulator that runs ~85% touchless is a promise about a clean world; production is a messy one, and the first real email proved it by breaking four assumptions at once. We're publishing that gap on purpose: the distance between a tidy simulation and the real inbox isn't a failure to hide — it's the most honest measure of how far there is to go, and the exact backlog we're closing one fix at a time.