Work sample 10 / 17Purchase orders and supplier bills
Fergus purchase orders and Xero bills for a plumbing and gas business
How I'd approach a Melbourne plumbing and gas business that buys from three main suppliers, so that every purchase has a purchase order, every supplier invoice lands on the right job, and the materials on a job match what Xero has been billed.
- Area
- Purchase orders and supplier bills
- Tools
- Fergus · Xero
- Typical scope
- US$1,500–3,000
- Timeline
- About 5 weeks, 4 milestones
Work sample: realistic data, not a past client job. Amounts are in AUD and GST is 10%.
01The problem
A plumbing and gas business with a handful of vans buys most of its materials from three suppliers. Some orders are phoned in from site, some are picked up at the counter, and the invoices turn up later by email. The office enters them in Xero, and the job in Fergus only learns about some of them.
In this sample, over six months (March to August 2026) there were 1,850 purchase orders and 1,920 supplier bills. 260 bills ($40,062 ex GST) had no purchase order: 96 of them were never put on a job at all ($15,482 ex GST), and 164 were put on a job after the customer invoice had already gone out ($24,579 ex GST).
Owners usually notice it as
- Materials are bought, the job is invoiced, and the supplier's invoice arrives a week later and never gets charged to anyone
- Nobody can say which purchase order an invoice belongs to, so the supplier statement is checked by eye at month-end
- Prices creep up on the supplier's side and the job quote does not move with them
- Xero shows what was spent, but not which job it was spent on
02The outcome
This is what the setup does and delivers:
- A short purchase order rule for each supplier: when a PO is required, who raises it, how it is sent, and what the supplier must quote on the invoice
- The supplier price books loaded into Fergus, so the cost on a PO is the supplier's current price
- Every PO raised from a job, so the materials are always tied to a job from the moment they are ordered
- Supplier invoices matched to their PO (or "invoice to come") in Fergus, then assigned to the job and sent to Xero with the job ID in the reference
- A weekly list of exceptions: invoices with no PO, price differences over 3%, and POs still waiting on an invoice
- An unbilled materials report that shows job costs not yet on a customer invoice
- A one-page routine for the vans and one for the office
03Scope
| Deliverable | What's included | Notes |
|---|---|---|
| Health check of ordering and bills | Review of a month of POs, supplier invoices, Xero bills and supplier statements; findings, risk list and a fixed quote | US$300, and the findings are yours to keep. If the findings change the plan, I re-quote before M2 |
| PO rules per supplier | One page per supplier: who orders, when a PO is required, approval limit, how it is sent, what the invoice must show | Agreed with the owner and the office in M1 |
| Price books | Supplier price files cleaned and loaded into Fergus as price books, with a repeatable monthly or quarterly refresh | Fergus imports price books from CSV and shows the columns to map. Suppliers connected through a Fergus integration can supply their own price book |
| PO to invoice matching | Weekly routine in Fergus: POs and "invoices to come" reconciled against supplier invoices, with an exceptions list | Matching is done in Fergus. POs themselves stay in Fergus and are not sent to Xero |
| Xero bill settings | Purchase account, job ID in the bill reference, and a send-to-Xero routine for approved supplier invoices | Xero bills are checked against Fergus each month by supplier, reference and amount, in a workbook |
| Unbilled materials report | Fergus Cost Report exported to CSV and filtered to jobs with costs but no customer invoice | Built as a Google Sheet or Excel workbook, so the office can run it weekly |
| SOPs and handover | One-page routines for the vans and for the office; recorded walkthrough | Written to match the way the business already works |
| Not included | Replacing Xero, supplier contract negotiation, and anything beyond purchase orders and supplier invoices | Quoted separately if wanted |
Not included: payroll, STP or BAS lodgement.
| Item | Volume |
|---|---|
| Period | March to August 2026, plus a test month (September 2026) |
| Suppliers | 3 (named generically) |
| Jobs | 260 in the six months, 46 in the test month |
| Purchase orders | 1,850 (1,590 invoiced, 140 price only, 70 cancelled, 50 open) |
| Supplier bills | 1,920 ($648,050 ex GST) |
| Bills with no PO | 260 |
| Test month bills | 318 ($103,712 ex GST) |
04Walkthrough
4.1 PO rules per supplier
The rules are short and written per supplier, because each one supplies and invoices differently. The exact route for each supplier is settled in the health check, depending on what each supplier offers and what Fergus supports on the business's plan.
4.2 Price book import
Each supplier's file is cleaned in a spreadsheet first (one row per product code, cost price ex GST, a sell price from a markup rule agreed in M1), then imported into Fergus as a price book from CSV, mapping each column when you upload it. A small example of the import file:
The full example, 22 rows across the three suppliers, is in price_book_import_sample.csv (sell price here is cost plus 30%).
4.3 One job from PO to Xero
Take Blocked drain, Moonee Ponds (job J6050). Every purchase is ordered from the job, so the PO, the packing slip or "invoice to come", and the supplier invoice all end up on the same job.
Materials on this job: $2,451.34 ex GST. The counter purchases at the bottom of the table are the kind of bill that, in the old process, was entered in Xero without a PO and put on a job late or not at all. Under the new rules they get a PO at the time of the sale, or are linked to one the same day and logged on the exceptions list.
The weekly routine for the office has five steps:
- Open the reconciliation area in Fergus and match each new supplier invoice to its PO, or to the "invoice to come" created when the goods arrived
- Check the invoice price against the PO and flag anything more than 3% different
- Assign the invoice to the job and approve it
- Send approved invoices to Xero (this is a deliberate step, so unchecked invoices do not reach Xero)
- Update the exceptions list and the unbilled materials report
4.4 Six months, before the new rules
Purchase orders and bills by month:
By supplier:
What the 1,850 purchase orders were:
Of the 1,590 invoiced POs, 70 were delivered in two parts and have two bills, which is why 1,660 bills sit against 1,590 POs. 103 invoiced POs had a bill more than 3% away from the PO value, and in the old process nobody looked.
4.5 Xero settings and the tie-out
Example Xero bill from the test month: bill A-90020 from Plumbing supplier A, reference J6303, $864.81 ex GST, $86.48 GST, $951.29 total, matched to PO-7155.
4.6 A test month under the new rules (September 2026)
One month is run through the new routine before handover. The Fergus and Xero totals are compared by supplier:
All 318 bills carry a PO number. 6 were exceptions: bills where the PO had to be linked after the sale or the invoice. They are on the exceptions list with a reason, for example "counter purchase, PO raised after the sale and linked the same day". 18 bills were more than 3% away from the PO value and were reviewed. The six largest differences are shown first, then the rest as one line:
The full month, with every bill, PO number and Xero reference, is in test_month_sep_2026.csv.
4.7 Unbilled materials report
The report starts from the Fergus Cost Report exported to CSV, filtered to jobs with materials costs and no customer invoice. At 30 September 2026, 46 jobs had materials costs in the test month, and 18 of them had not yet been invoiced to the customer. The eight with the largest materials cost are shown, then the rest as one line:
The office reviews this list every Friday. Anything on it older than 14 days is chased.
05Checks
| Check | Before (Mar to Aug) | After (test month, Sep) | Status |
|---|---|---|---|
| Every supplier bill has a PO | 1,660 of 1,920 bills | 318 of 318 bills (6 on the exceptions list) | PASS |
| Every PO is on a job | 1,850 of 1,850 POs | 318 of 318 POs | PASS |
| Every supplier bill is on a job | 1,824 of 1,920 bills | 318 of 318 bills | PASS |
| Materials on jobs = matched bills | Not compared | $103,711.98 on 46 jobs = $103,711.98 of bills | PASS |
| Fergus supplier invoices = Xero bills | Not compared | 3 of 3 suppliers, difference $0.00 | PASS |
| POs with a bill more than 3% away from the PO | 103 unreviewed | 18 reviewed | PASS |
06Milestones
| Milestone | What happens | Rough duration | What is signed off | Share |
|---|---|---|---|---|
| M1 · Health check and rules | Health check (US$300), a month of POs, invoices and Xero bills reviewed, PO rules agreed per supplier | About 1 week | Findings, rules and fixed quote | 25% |
| M2 · Fergus and Xero set up | Price books loaded, PO settings, Xero bill settings, exceptions list and the unbilled materials report built | About 2 weeks | A test PO taken through to a Xero bill | 40% |
| M3 · Month of bills matched | A month of live POs and bills run through the new routine, tie-out and exceptions reviewed | About 1.5 weeks, plus the month running | Fergus and Xero tie-out at $0.00 and the exceptions list reviewed | 25% |
| M4 · Handover | SOPs for the vans and the office, walkthrough recording and a short review | About 0.5 week | Office confirms they can run it | 10% |
The fixed quote follows the US$300 health check, so the price is based on what is actually in your files. If the health check changes the plan, I re-quote before M2.
Typical scope for this kind of project: US$1,500–3,000.
About 5 weeks, 4 milestones. Your software subscriptions are billed to you by the vendors.
07Handover
- A one-page PO rule for each supplier
- Supplier price books in Fergus, with a repeatable refresh routine
- The weekly matching routine and exceptions list
- The unbilled materials report workbook
- A monthly Fergus and Xero tie-out workbook
- One-page routines for the vans and for the office
- A recorded walkthrough
- Prepared by Manaz Afzal
08Files
A screen from the sample workbook, then every file in the work sample. Select the image to open it full size.

fergus-xero-purchase-orders.xlsx › Summary
| File | What it is | Size |
|---|---|---|
| fergus-xero-purchase-orders.xlsx | Workbook with 10 tabs (Read me, Summary, Purchase orders, Supplier bills, Test month Sep 2026, Price book import, Monthly Mar to Aug, By supplier, PO status, Test month by supplier). The Summary tab lines up every figure on this page with a live formula | 431.7 KB |
| fergus-xero-purchase-orders.pdf | This work sample as an A4 PDF (8 pages) | 347.9 KB |
| purchase_orders.csv | 1,850 POs with job, type, value, status and billed amount | 222.1 KB |
| supplier_bills.csv | 1,920 supplier bills with GST, job, PO number and the position before the new rules | 189.3 KB |
| test_month_sep_2026.csv | 318 bills in the test month with PO value, variance and Xero reference | 32.8 KB |
| price_book_import_sample.csv | Example price book import file | 1.7 KB |
Tell me what’s bugging you and I’ll tell you where I’d look first.
Send a short note on Upwork about what is slowing the business down. I’ll reply with where I’d start, and whether the US$300 Systems Health Check is the right first step.