Back to field notes

Purchase order tracking: closing the gap between approved cost and actual invoice

Purchase orders approved by email and matched to invoices by hand leave budget overruns invisible until month-end. Here is where the workflow breaks and how to connect it.

A purchase order is supposed to anchor a cost commitment: what was approved, for how much, by whom. In practice, the approved PO and the eventual invoice often live in separate systems—connected only by memory and manual matching.

The problem is not the PO itself. It is the handoffs on either side of it: the approval that happens in an email thread, and the reconciliation that happens at month-end when cost control is already delayed.

Where the workflow loses control

The commitment is approved before it is recorded. A project manager or site supervisor emails a supplier or subcontractor to confirm a scope and price. The work begins. The PO is created afterward—if at all—as a formality. The actual commitment sits in an inbox, not in the budget.

Approval moves through email, not the project system. The PO document is attached to an email, sent to the approver, and approved by reply. The approval has no trail in the project management or accounting system. If the approver is on vacation or the thread is missed, the work proceeds anyway.

The approved PO does not update the cost forecast. A budget line is committed when a PO is approved. But if the PO is managed in a spreadsheet or sent by email, the accounting system does not know the commitment exists until the invoice arrives—sometimes weeks later. Cost reports in that window overstate what is available.

Invoice matching is manual and error-prone. When the invoice arrives, someone searches for the original PO to verify the amount, the scope, and the approver. If the PO is in a spreadsheet and the invoice is in the accounting system, the comparison is a manual process. Discrepancies—partial deliveries, revised amounts, missing scope—require further investigation.

A better workflow structure

Capture the commitment before the work starts. A structured PO form—completed and submitted before the supplier is confirmed—creates the record that everything else references. The commitment date, supplier, scope, and amount are in the system before the work begins.

Route approval through the system, not email. The draft PO routes to the approver with the budget context visible. Approval logs in the system with a timestamp. The approver’s email reply is replaced by an in-system action that updates the record automatically.

Push approved POs to cost control immediately. An approved PO automatically updates the project’s committed cost forecast. The cost report reflects the commitment the same day it is approved—not when the invoice arrives.

Match invoices against approved POs. When an invoice arrives, it is matched to the open PO automatically by supplier, project code, and amount. Invoices within the approved amount are flagged for payment. Discrepancies route for review with the relevant context attached.

The right implementation depends on what is already in place—Procore, Sage, Viewpoint, or a mix of project management and accounting tools. The goal is not to replace those systems. It is to close the gap where PO approvals currently happen outside them.

Related: change order tracking: closing the gap between field and accounting and where margin is lost between site and office.


If approved costs in your operation sit outside the accounting system until the invoice arrives, describe the current process to us. We will map where the commitment is lost and what a targeted connection could recover.

Is one recurring workflow still held together by re-entry, email, or spreadsheets?

Map that workflow