Committed cost is money you have already promised to a supplier but have not yet been invoiced for. Actual cost is what has hit the job ledger. In construction job costing the gap between those two numbers is where the surprise lives: the material is ordered, the price is fixed, the job will absolutely be charged for it, and none of it shows up in your cost report until the invoice arrives weeks later. If you only watch actual cost, you are reading a report that describes the past and calls it the present.
The fix is a purchase order for material and a habit of reading committed and remaining committed cost the same way you read actual. No new accounting system required. Foundation Software, which builds construction accounting software, puts it plainly: purchase orders let contractors track committed cost and remaining committed cost at the job, cost code or cost class level, and without them contractors risk thinking a job is more profitable than it really is.
This post is about how to run that number on material specifically, because material is the category where the lag is longest and the price is least stable.
The three states every dollar of material passes through
Every material dollar on a job moves through the same sequence. Job costing goes wrong when a report only looks at one state.
| State | What it means | Where it lives | Typical lag before you see it |
|---|---|---|---|
| Estimated | The number in your bid for this cost code | Estimate or budget | Fixed at bid day |
| Committed | You issued a PO or accepted a job quote at a stated price | Purchase order register | Immediate, if you write POs |
| Received | Material is on site, packing slip signed | Delivery tickets | Days |
| Actual | Invoice received, coded, and posted to the job | Job cost ledger | Weeks |
A contractor with no PO discipline sees column one and column four. Everything in between is invisible, which means the first evidence of a material overrun is an invoice you have already legally incurred. The whole point of tracking commitment is to convert that from a discovery into a decision.
Why the lag is worse on material than on anything else
Labor posts weekly, because payroll runs weekly. Equipment posts on a schedule. Material posts whenever the supply house cuts the invoice, whenever the driver drops the paper, and whenever somebody in your office codes it.
The lag compounds with a second problem: the price you were quoted and the price you get billed are not always the same number. That is the ordinary case, not an accusation. Job quotes are scoped to quantities and dates, branches price from different agreements, and a substituted part number carries a different rate. The mechanics are worked through in contract price versus counter price and in quote versus invoice mismatch, and both are reasons your committed number and your actual number will differ even when everyone is acting in good faith.
A contractor on the Mike Holt forums described the pattern in a way that anyone who has bought gear will recognize: “They may quote the stuff on bid day at say $87,000 but when you add all the total invoices up at the completion of the project they can be from $87,000 to $100,000 or more.” The control the same poster suggested is exactly commitment tracking done by hand: “keep a running tally on what has been invoiced and when it hits the quote amount flag it.”
That is the entire idea. A PO register is that running tally with the arithmetic done for you.
The market gives you a reason to care right now
Material input costs and what you can charge for them have been moving at different speeds. AGC of America’s May 2026 release reported that the producer price index for inputs to new nonresidential construction rose 1.8% for the month and 8.4% year over year, the largest annual jump since the pandemic, while contractors’ bid prices rose only 3.5% year over year. The April release showed the same shape: inputs up 6.6% year over year against bid prices up 3.6%.
When input costs run ahead of bid prices, the margin you protect is the margin you notice early. A commitment report is how you notice early.
How to actually compute committed and remaining cost
You need three numbers per cost code, and you can keep them in your accounting system or in a spreadsheet. The spreadsheet version is not embarrassing. It is how most shops under a certain size start, and it works.
Committed cost. The sum of open purchase order values against that cost code, at the prices on the PO. Include accepted job quotes even where you did not cut a formal PO, because a quote you accepted is a commitment in every sense that matters to the job.
Actual cost to date. Invoices received and coded to that cost code.
Remaining commitment. Committed cost minus the portion of those POs already invoiced. This is the number nobody has and everybody needs. It answers “how much more material money is already gone?”
Then the projection: actual to date, plus remaining commitment, plus material still to be bought. Compare that to the estimate line. That comparison is your real variance, and it is available in week two of a job rather than week twenty.
A worked illustration, using made-up numbers to show the shape rather than to report anything real. Say a cost code for branch wiring was estimated at $42,000:
| Line | Amount |
|---|---|
| Estimated material for this cost code | $42,000 |
| Invoiced to date (actual) | $11,800 |
| Open POs not yet invoiced (remaining commitment) | $24,900 |
| Material not yet ordered (your estimate of the balance) | $9,600 |
| Projected total | $46,300 |
| Projected variance | $4,300 over |
The actual column alone says you are at 28% of budget and looking fine. The commitment column says you are already 87% committed with material still to buy. Those are two completely different management meetings.
Splitting the variance into price and quantity
“Over budget on material” is not actionable. Over budget because you paid more per foot is a supplier conversation. Over budget because you installed more feet than the takeoff is an estimating or a field conversation. Cost accounting has separated these for a century, and the two formulas are worth knowing because they tell you who to go talk to.
Materials price variance is (actual price minus standard price) times actual quantity. Named causes of an unfavorable price variance include rush delivery charges, commodity price swings, supplier pricing power, and buying in volumes different from the estimate.
Materials quantity variance is (actual quantity used minus standard quantity expected) times standard price, and the total direct materials cost variance is actual quantity times actual price, minus standard quantity times standard price.
Commitment tracking gets you the price half early. The moment a PO is issued at a price above your estimated unit cost, the price variance is knowable, before a single foot is installed. The quantity half you only learn as the work happens, but at least you are no longer looking at one blended number and guessing which half moved.
If your unit prices are drifting between orders on the same part, that is its own pattern with its own fix, covered in material price creep.
Getting the committed number without adding paperwork the field will ignore
The concept is the easy part. The obstacle is that POs feel like overhead to a shop where a foreman calls the counter and picks up material on the way to the job. A few things make it survivable.
Use POs where the dollars are, not everywhere. Gear, switchboards, fixture packages, rooftop units, pipe and wire packages: these are the commitments that move a job. A $60 counter run does not need a PO and will not get one. Published matching policies work exactly this way. One university’s accounts payable rules set two-way matching for goods POs at or below $2,499.99 and three-way matching at or above $2,500. Pick a threshold that fits your job sizes and stop apologizing for it.
Treat an accepted job quote as a commitment. You do not need a separate document. Log the quote number, the total, the quantities covered, and the expiry. When invoices start arriving against it, tick them off. This is the running tally from the forum quote, formalized.
Let the supply house carry your reference. Distributor ERP systems commonly ship job management features holding bid schedules and lot costs, as with Epicor’s electrical distribution platform. Ask your branch to put your job number or PO number on the order and on the invoice. It costs them nothing and it removes the single biggest cause of miscoded material.
Code fast. A committed cost report is worthless if invoices sit in a pile for five weeks, because the commitment never converts and you cannot tell an open PO from a lost invoice. That workflow problem gets its own treatment in coding supply-house invoices to jobs.
Closing a commitment correctly is where most systems leak
Issuing POs is the easy half. The half that decays is retiring them.
When the invoice arrives, it gets matched against the PO and the delivery ticket. Three-way matching cross-checks the invoice, the purchase order and the delivery receipt, and tolerance rules can be set by value threshold, discrepancy percentage, or vendor quality rating. Common practice is that invoices within 2% to 3% of the PO pass automatically, with named failure modes including quantity mismatch, price over tolerance, missing receiving documentation and misaligned line-item descriptions. The full contractor version of that process is in three-way matching for contractors.
Three specific leaks to watch on the commitment side:
- Partial shipments left open forever. A PO 90% invoiced sits in your remaining commitment at 10% forever if nobody closes it. Your projected cost is quietly overstated.
- Material invoiced against no PO. It posts to actual, the PO stays open, and the same dollars appear twice in your projection. This is the most common way a commitment report loses credibility with a PM.
- Change orders bought against the base PO. Extra material charged to the original commitment makes the base scope look overrun and the change order look free. Both numbers are then wrong.
And when a line genuinely does not match, the standard response is to withhold payment and request a corrected invoice or a credit note. Do it while the invoice is fresh. A published credit memo policy at one institution escalates uncollected credit balances to vendor contact at 45 days and to collections at 90, which is a fair reflection of how quickly a credit stops being routine. There is a ready-made version of that message in the supplier credit request email template.
What this does not fix
Two honest limits.
First, your estimate is a range, not a number, and comparing a precise commitment against an imprecise budget can manufacture alarm. AACE’s estimate classification system uses maturity of project definition as the sole primary determinant of estimate class, and treats accuracy ranges as indicative rather than fixed. A commitment 8% over a conceptual budget line may be noise. The same 8% over a fully bought-out package is not.
Second, committed cost only captures material that flows through a job. Anything bought to stock, replenished on a truck, or grabbed off shop shelves never lands on a PO for that job, so your commitment report is complete and your job cost is still wrong. That failure mode is separate and is covered in truck stock and shop stock.
The short version
- Committed cost is promised and not yet invoiced. Actual cost is invoiced and posted. Job costing that only reads actual is reading history.
- Write POs where the dollars are, and treat an accepted job quote as a commitment even without a PO.
- Track remaining commitment per cost code. Projected cost is actual, plus remaining commitment, plus what is still to be bought.
- Split any variance into price and quantity. They point at different people and different fixes.
- Close POs properly: partial shipments, non-PO invoices and change order material are the three leaks that discredit the report.
- Match invoices against the PO and the delivery ticket while they are fresh, and ask for the credit early.
Sources
- Job Costs and Purchase Orders, Foundation Software
- Materials Price Variance, AccountingTools
- Direct Materials Variances, Penn State ACCTG 211
- Prices for Construction Materials Climb at Highest Rate Since the Pandemic, AGC of America
- Surging Materials and Energy Costs Drive Construction Input Prices Sharply Higher in April, AGC of America
- Three-Way Invoice Matching, Stampli
- 3-Way Match, Tipalti
- 3-Way Matching, BILL
- Purchase Order Matching Thresholds, University of Georgia Business and Finance
- Credit Memo Policy, Miami University
- Electrical Distribution Software, Epicor
- Estimate Classification System, AACE International
- Ethics of sharing competing supply house prices, forums.mikeholt.com