Interactive workflow · Bill ↔ PO

Click New Bill Received — see the right decision for the state.

Three live scenarios. Each New Bill Received button below actually triggers the AI parse simulation and opens the correct modal for the state it's in — clean bill, bill with items, or a PO that already has items. No per-row sparkle clutter: provenance sits once, underneath the set AI populated.

Try it two ways: click any New Bill Received button to see the decision modal, or drop a file on a drop-zone (or just click it) to watch the drop-zone become the processing control — Alfred parses immediately, then asks merge / replace / attach only if there's a conflict. Empty Bills populate without any modal. Real AI parsing is handled by the fi-supplier-po app — this page simulates the UX only.
Building this for real? Read the FI-022 spec →
Full technical spec for a Python · Django · Claude Vision build. 25 functional requirements, one Main Job + 7 Sub-jobs (JTBD with steps), parsing algorithms with working code, suggested FI data-model extensions, acceptance criteria, open questions.
A Empty Bill — BL-0053 No items yet

A freshly-created Bill with nothing on it. The New Bill Received button parses the supplier invoice and auto-fills every line item, because there's nothing to conflict with. Modal shows the extracted items for a quick sanity-check before confirmation.

app.fieldinsight.com/bills/BL-0053
BL-0053 (Draft)
Purchases are tax *
Add heading here…
Type Cost Code Category Inventory Code Description Qty Unit Price
No line items on this Bill yet — drop a supplier invoice or click New Bill Received to populate.
+ Item
Total Services
Total Products
Subtotal
Tax amount
TOTAL$0.00
Drop your first supplier invoice here
Alfred will read every line, match items to a PO, detect GST treatment, and ready it for Xero — in under 10 seconds.
Reads PDF · Extracts line items · Detects GST · Matches to a PO
Drag any PDF, or click to simulate
B Bill with existing items — BL-0052 3 items

Same Bill page, different state — 3 items already entered by the tech. The New Bill Received button won't destructively overwrite. AI asks: merge the new items in, replace the existing ones, or just attach the file without parsing.

app.fieldinsight.com/bills/BL-0052
BL-0052 (Draft)
Purchases are tax *
Add heading here…
Type Cost Code Category Inventory Code Description Qty Unit Price
Product Select category L&CCLCM25-M25 Flex Conduit 1.00 6.21
Product Select category L&CCLCM20-M20 Flex Conduit 1.00 4.33
Product Select category CLI264/3SMgry Conduit Reducer 2.00 2.76
+ Item
Total Services
Total Products$21.82
Subtotal$21.82
Tax amount$2.18
TOTAL$24.00
or drag another invoice here (or click to simulate)
Bill workflow · drag-drop parses immediately. Alfred asks merge / replace / attach only if this Bill already has items.
C PO with authorised items — PO-2026-012 8 items · 12 bills linked

Golden rule: drop a document on a PO and it's always a supplier quote — never an invoice, never a new Bill. The drop updates the PO itself (pricing, authorised items, outstanding quantities). If you want to create a Bill from a supplier invoice, click New Bill Received on the Supplier Bills card below — that's an explicit action with a confirmation modal. PO drops default-parse (no modal); supplier-match check runs only when you choose to Parse. Use + Add File to attach without parsing.

app.fieldinsight.com/purchase-orders/PO-2026-012
PO-2026-012 (Authorised)
L&H Electrical · $525.65 authorised · 8 line items · Issued 18 Apr 2026
+ Reconcile PO
PO Line Items from supplier quote Q-2463 · accepted 18 Apr 2026
# Code Description Qty Rcvd Unit $ Total
1 CLI264/3SMgry Conduit Reducer Third-Third M25-M20 2 2 ✓ $2.76 $5.52
2 L&CCLCM20-M20 Flex Conduit Gland 20mm M20 4 4 ✓ $4.33 $17.32
3 L&CCLCM25-M25 Flex Conduit Gland 25mm M25 4 4 ✓ $6.21 $24.84
4 MCB-16A 16A MCB Circuit Breaker — Single Pole 6 0 / 6 $12.50 $75.00
5 CAB-2.5CU 2.5mm² Copper Cable (per metre) 50 m 0 / 50 $3.20 $160.00
6 ISO-25A 25A Isolator Switch — IP66 2 0 / 2 $45.00 $90.00
7 SOCK-DOUB Double GPO Socket — White 12 0 / 12 $8.75 $105.00
8 JBOX-IP66 IP66 Junction Box 4 0 / 4 $12.00 $48.00
or drop a supplier quote here to refresh PO pricing (or click to simulate)
PO workflow · drag-drop auto-parses (no modal). Use + Add File to attach without parsing.
Supplier Bills 12 bills · Total billed: $1282.30 / $525.65 PO value
Bill # Supplier Inv # Date Status Total (inc GST) Billed vs PO
BILL-2026-036 2026-04-23 Draft Not yet imported ↗ Open
BILL-2026-035 2026-04-23 Approved Not yet imported ↗ Open
BILL-2026-034 2026-04-23 Draft Not yet imported ↗ Open
D Reconciling the Bill against the PO — BILL-2026-038 AI matched 3 of 5

Step C created the new Bill and linked it to the PO. This is where the user lands next — a side-by-side diff of the PO and the supplier invoice. AI does the line-item matching; the user confirms. Outstanding items (on the PO but not on this invoice) are flagged in red so they stay visible for the next supplier bill. Pattern borrowed from the real fi-supplier-po reconciliation view.

app.fieldinsight.com/bills/BILL-2026-038/reconcile
Supplier Bill Draft
BILL-2026-038
Date: 2026-04-23
Supplier
Quickensted
Terms: Payment on Completion
quickensted@hotmail.com
Supplier Invoice #
1916
Linked to PO-1648
Job #
📁 SRF
PO / Ref
2346 Auto-filled on import — editable
AI matched 3 of 5 PO items to this invoice · 2 items outstanding (QSW-SVC, BF30-610618 · $615.80). Sync to PO to keep them open for the next bill.
3 Line Items Qty columns are editable
Bill Markup
40%
PO-1648 — Purchase Order Received
#CodeDescription OrdRcvdUnit $
1 CLI264/3SMgry Conduit Reducer Third-Third M… 2 2 ✓ $2.76
2 L&CCLCM20-M20 Flex Conduit Gland Straight 2… 1 1 ✓ $4.33
3 L&CCLCM25-M25 Flex Conduit Gland Straight 2… 1 1 ✓ $6.21
4 QSW-SVC Repairs to Rear Bogie Cracks… 1 0 / 1 $585.00
Not on this invoice — outstanding
5 BF30-610618 Die Crobed Filler 610x610X50… -4 -4 $30.80
Not on this invoice — outstanding
PO Subtotal $477.86 GST $47.79 PO TOTAL $525.65
Supplier Invoice
#CodeDescription Bill QtyPrice GSTGST $Total
1 CLI264/3SMgry Conduit Reducer Third-Third M… 2 $2.76 Ex GST 0.55 $5.51
2 L&CCLCM20-M20 Flex Conduit Gland 20mm M20… 1 $4.33 Ex GST 0.43 $4.33
3 L&CCLCM25-M25 Flex Conduit Gland 25mm M25… 1 $6.21 Ex GST 0.62 $6.21
Bill Subtotal $16.05 GST $1.60 BILL TOTAL $17.65
D Multiple files on one Bill — BL-0054 3 files attached

Real-world case: the user drags multiple PDFs at once, or attaches files over time. Having 3 files on a Bill is a valid state — not an error. Alfred asks the user to pick one to parse into line items; the others stay attached for reference (or to parse later if the right items are in a different file). Each attachment has its own Extract Line Items trigger. Parsing a second file from the same supplier opens a Merge / Replace / Cancel modal (like Case B). Parsing a file from a different supplier opens a stricter warning — a Bill can only reconcile against one supplier, so merging isn't offered; only Replace or Cancel.

app.fieldinsight.com/bills/BL-0054
BL-0054 (Draft)
📎
3 files attached · Pick one to parse into this Bill. The others stay attached for reference — parse them later if needed.
0 parsed
Add heading here…
Type Cost Code Category Inventory Code Description Qty Unit Price
No line items on this Bill yet — click Extract Line Items on any attachment below.
+ Item
Total Services
Total Products
Subtotal
Tax amount
TOTAL$0.00
SHOW IN PDF
E PO with no items — PO-2026-013 Awaiting first quote

A PO is created from a job's materials forecast, but no supplier quote has been accepted yet. Empty PO is a valid transient state. The drop-zone is the star; the Supplier Bills card is greyed out until authorised items exist. Drop a supplier quote to populate the authorised line items for the first time.

app.fieldinsight.com/purchase-orders/PO-2026-013
PO-2026-013 (Draft · No quote yet)
Job: SRF-1048 · Bayside Apts coil replacement · Awaiting supplier quote
No authorised items yet
Drop a supplier quote below to populate the PO's authorised line items and unlock the reconciliation workflow.
Drop the supplier's quote to authorise this PO
Alfred will read the quote, extract line items, set supplier, and mark the PO Authorised — in under 10 seconds.
Reads quote PDF · Identifies supplier · Extracts line items · Authorises PO
Drag any PDF quote, or click to simulate
Supplier Bills 0 bills · No items authorised yet — accept a quote first
F PO partially fulfilled — PO-2026-014 5 of 8 received · 3 outstanding

Mid-project reality: half the authorised items have been delivered and billed, half haven't. Alfred shows which items are fulfilled (green tick) and which are outstanding (red amber). A Partial chip in the header signals the PO isn't closed yet. Dropping a revised supplier quote here refreshes pricing / adds new line items — it never creates a Bill. Bills still come in through the New Bill Received button on the Supplier Bills card; each billed line ticks off the Rcvd column.

app.fieldinsight.com/purchase-orders/PO-2026-014
PO-2026-014 (Receiving) Partial
Trade Tools Australia · $1,248.40 authorised · 5 of 8 items received · 3 outstanding ($486.20)
+ Reconcile PO
5 of 8 items received — $762.20 billed against $1,248.40 authorised · 3 items outstanding (GRINDER-4-5, MASK-N95x50, TAPE-MEAS-8M). Alfred will auto-match when the next supplier invoice arrives.
PO Line Items 5 received · 3 outstanding · PO total $1,248.40
#CodeDescriptionQtyRcvdUnit $Total
1 DRILL-18V 18V Cordless Drill Driver — Brushless 2 2 ✓ $189.00 $378.00
2 BATT-18V-5AH 18V 5Ah Battery Pack 4 4 ✓ $68.50 $274.00
3 CHRG-RAPID Rapid Dual-Port Charger 1 1 ✓ $145.00 $145.00
4 DRILL-BIT-SET Drill bit set HSS — 25pc 1 1 ✓ $89.20 $89.20
5 SAFETY-GLOV-L Safety gloves — large — pair 6 6 ✓ $12.50 $75.00
6 GRINDER-4-5 4.5" Angle Grinder 900W 2 0 / 2 $115.00 $230.00
7 MASK-N95x50 N95 dust masks — box of 50 2 0 / 2 $78.60 $157.20
8 TAPE-MEAS-8M Tape measure 8 m · magnetic tip 4 0 / 4 $24.75 $99.00
or drop a revised supplier quote here to refresh pricing and outstanding quantities
PO workflow · drop = Supplier Quote updating this PO (never a new Bill). Bills come in via New Bill Received on the Supplier Bills card. Drag-drop auto-parses; supplier-match check runs only when you Parse.
G Bill with partial items — BL-0055 3 AI-parsed · 2 manual

Real-world case: AI parsed 3 items from the supplier invoice, and the tech added 2 more items manually (disposable consumables not itemised on the PDF — e.g. rags, loose screws). Provenance lives at the group level only — the banner below the table reads "AI parsed 3 items from <file> · 2 items added manually" and the totals panel shows the split. No per-row sparkle. No per-row Source chip. The banner + split-totals is enough — per-row markers are just glitter.

app.fieldinsight.com/bills/BL-0055
BL-0055 (Draft) Mixed provenance
Purchases are tax *
Add heading here…
Type Cost Code Category Inventory Code Description Qty Unit Price
Product Select category CU-22-COPPER Copper pipe 22mm 12 m7.00
Product Select category ELB-12X Elbow joints 123.00
Product Select category COMP-35KW Compressor unit 3.5kW 11042.00
Product Select category RAGS-10 Shop rags — pack of 10 112.00
Product Select category SCR-M6-BX M6 machine screws — box 26.50
+ Item
AI parsed 3 items from reece-invoice-INV-38472.pdf · 2 items added manually
Total Services
AI-parsed$1,162.00
Manual$25.00
Subtotal$1,187.00
Tax amount$118.70
TOTAL$1,305.70

How the styling blends

The rule is simple: the existing app's brand stays on the app's own chrome; the AI brand only appears where AI is doing work. A user who's used the existing app for years feels nothing has changed on their familiar buttons and tabs — but the moment AI does something for them, the sparkle tells them why.

App purple
Buttons, tabs, table headers — existing brand
#4a148c
AI brand purple
Sparkle, AI pill button, AI-parsed tags
#39006B
AI brand light
Drop-zone hover, sparkle tiles, modal sparkle bg
#f5eeff
App orange
In-app state cues — left untouched
#f6851f