Reconciliation workflow · In development
Reconcile BILL-2026-038 against PO-1648.
This is the destination of the ✨ Reconcile Supplier Invoice button on any Purchase Order. AI has matched 3 of 5 PO items to this supplier invoice; 2 items ($615.80) are outstanding. Confirm the sync, check the bill markup, and approve for Xero — or save as draft to review later.
Building this for real? Read the FI-023 spec →
Full technical spec for a Python · Django build. PO-page entry (Parse PO + Reconcile Supplier Invoice), one Main Job + 10 Sub-jobs (JTBD with steps), line-matching + variance algorithms, suggested FI data-model extensions, acceptance criteria.
app.fieldinsight.com/bills/BILL-2026-038/reconcile
PO-1648 — Purchase Order
Supplier: Quickensted Welding P/L · Job: SRF-2346 · Delivery: Kingy's Diesel Industries
| # | Code | Description | Ordered | Received | Unit $ | Total |
|---|---|---|---|---|---|---|
| 1 | CLI264/3SMgry | Conduit Reducer Thrd-Thrd Male M32-Female M25 PVC Grey | 2 | 0 / 2 | $2.76 | $5.52 |
| 2 | L&CCLCM20-M20 | Flex Conduit Gland Straight 20mm M20 Nylon Blk | 1 | 0 / 1 | $4.33 | $4.33 |
| 3 | L&CCLCM25-M25 | Flex Conduit Gland Straight 25mm M25 Nylon Blk | 1 | 0 / 1 | $6.21 | $6.21 |
| 4 | QSW-SVC | Repairs to Rear Bogie Cracks (service) | 1 | 0 / 1 | $585.00 | $585.00 |
| 5 | BF30-610618 | Dis Crdbrd Filter 610X610X50Mm | -4 | -4 / -4 | $30.80 | $-123.20 |
Subtotal (ex GST) $477.86
GST $47.79
TOTAL $525.65
↑ Click `✨ Reconcile Supplier Invoice` to start the reconcile flow for this PO. The button is highlighted. Other buttons show a toast explaining their distinct flow (see FI-023 §4.1 – §4.4 for the full story).
Just arrived. Alfred created a blank Bill (BILL-2026-038) linked to PO-1648 and brought you here. Drop the supplier invoice on the right to begin parsing.
PO-1648 · Purchase Order Received
CodeDescOrdRcvdUnit $
CLI264/3S…Conduit Reducer…20$2.76
L&CCLCM20Flex Conduit 20mm10$4.33
L&CCLCM25Flex Conduit 25mm10$6.21
QSW-SVCRepairs to Bogie10$585.00
BF30-610618Dis Crdbrd Filter-4-4$30.80
PO Total $525.65 · All items awaiting this Bill
Supplier Invoice (BILL-2026-038) Draft
Drop the supplier invoice here
Alfred parses it straight away. Line items land on the right, matches light up on the left, variances flag automatically.
Bill workflow · drag-drop parses immediately. Post-parse modals only if there's a conflict.
Reading the invoice… The line-matcher runs live against PO-1648 as items land on the Bill. You'll see the PO column light up with matches / outstanding / variance flags in a few seconds.
PO-1648 · Purchase Order Received
CodeDescOrdRcvdUnit $
CLI264/3S…Conduit Reducer…20$2.76
L&CCLCM20Flex Conduit 20mm10$4.33
L&CCLCM25Flex Conduit 25mm10$6.21
QSW-SVCRepairs to Bogie10$585.00
BF30-610618Dis Crdbrd Filter-4-4$30.80
Matches will appear as Alfred finishes
Supplier Invoice (BILL-2026-038) Parsing…
Alfred is reading your invoice…
- ·Uploading invoice
- ·Reading document structure
- ·Extracting line items
- ·Matching to PO-1648
quickensted-invoice-1916.pdf
1 / 1
Quickensted Welding P/L
Windsor Park · 235 Myers Rd · Balnarring VIC 3926
CodeDescriptionQtyAmt
CLI264/3S…Conduit Reducer Thrd…2$5.52
L&CCLCM20Flex Conduit Gland 20m…1$4.33
L&CCLCM25Flex Conduit Gland 25m…1$6.21
TOTAL ex GST$16.05
GST$1.60
TOTAL inc GST$17.65
1 / 1
Original PDF sits beside the match
FI-023 FR-PDF-1/2/3 · expand / collapse / hide
After Alfred parses the supplier invoice, the original PDF renders here so the PM can spot-check any parsed line against the real document without leaving the page. Three states: Expanded (now — ~40% of the page width), Collapsed (thin sidebar with file icon + page count + expand chevron), Hidden (preview removed entirely; a Show PDF button appears in the header as a way back in). State persists per user.
Supplier Bill Draft
BILL-2026-038
Date: 2026-04-23
Bill Markup
40%
PO-1648 — Purchase Order
Received
| # | Code | Desc | Ord | Rcvd | Unit $ |
|---|---|---|---|---|---|
| 1 | CLI264/3SMgry | Conduit Reducer | 2 | 2 ✓ | $2.76 |
| 2 | L&CCLCM20-M20 | Flex Conduit Gland 20mm | 1 | 1 ✓ | $4.33 |
| 3 | L&CCLCM25-M25 | Flex Conduit Gland 25mm | 1 | 1 ✓ | $6.21 |
| 4 | QSW-SVC | Repairs to Rear Bogie | 1 | 0 / 1 | $585.00 |
| ⚠Not on this invoice — outstanding | |||||
| 5 | BF30-610618 | Die Crobed Filler | -4 | -4 | $30.80 |
| ⚠Not on this invoice — outstanding | |||||
PO Subtotal $477.86
GST $47.79
PO TOTAL $525.65
Supplier Invoice
| # | Code | Desc | Qty | Price | GST | GST $ | Total | |
|---|---|---|---|---|---|---|---|---|
| 1 | CLI264/3SMgry | Conduit Reducer | 2 | $2.76 | Ex GST | 0.55 | $5.51 | |
| 2 | L&CCLCM20-M20 | Flex Cond. 20mm | 1 | $4.33 | Ex GST | 0.43 | $4.33 | |
| 3 | L&CCLCM25-M25 | Flex Cond. 25mm | 1 | $6.21 | Ex GST | 0.62 | $6.21 |
Bill Subtotal $16.05
GST $1.60
BILL TOTAL $17.65
Bill BILL-2026-038 approved
3 line items posted to Xero. PO-1648 received quantities incremented on 3 matched lines. 2 items still outstanding on the PO for the next delivery — the PO stays in Receiving.
What happened inside the atomic approval transaction (FI-023 §4.7):
bill.status = 'approved'(was'draft')PurchaseOrderLineItem.received_qtyincremented on 3 matched lines (CLI264/3SMgry, L&CCLCM20-M20, L&CCLCM25-M25)- 2 unreceived PO lines (QSW-SVC, BF30-610618) stay
received_qty = 0— outstanding for the next Bill po.statusstays'receiving'(not all items fulfilled yet) — will auto-close on the next Bill that completes itReconciliationAuditLogrow written: actor · bill · po · variance list · acknowledgements- Xero post enqueued as a Celery job
How the reconciliation flow works
Open a PO, click + Reconcile PO, and you land here. AI has already matched invoice lines to PO lines by code; anything unmatched is flagged red. You have four levers:
- Sync Bill to PO-1648 — writes the matched quantities back to the PO so outstanding items stay visible until the next supplier invoice.
- Copy to SRF — pushes the line items to the job's Service / Repair / Fitting workflow.
- Bill Markup — preview your sell price in real time. "Sales $" opens the customer-facing quote.
- Save or Approve — Save leaves it as Draft for later; Approve posts to Xero and closes the Bill.