Treadstone Associates
Case File · Construction Job Costing

A WIP review finds a job eleven points under

Anonymised, illustrative composite. An Ontario general contractor’s monthly work-in-progress review, run purely off cost data, flagged a job that looked eleven percentage points behind where its billing said it was.

Treadstone Associates · Updated 2026

At a glance

  • • Ontario general contractor, $2,600,000 contract under a CCDC 2 – 2020 Stipulated Price Contract.
  • • Cost-based percent complete: 72%. Certified billed-to-date: 61%. Gap: 11 points.
  • • 11% of $2,600,000 = $286,000 of performed work not yet reflected in a certified payment application.
  • • Cause: two schedule-of-values line items bundled two trades that were not progressing at the same rate.

The situation

The controller’s monthly WIP schedule compares cost incurred to date against total budgeted cost for every open job, independent of whatever has actually been certified for payment. On this job the two numbers had drifted apart by more than they ever had before.

The problem

The contract was a CCDC 2 – 2020 Stipulated Price Contract, which CCDC notes “assumes monthly progress payments” certified against a schedule of values, not against raw cost incurred. If a schedule-of-values line item bundles two trades’ work into one billing line, and one of those trades is progressing faster than the other, the certified percentage for that line understates real progress until the slower trade catches up — and nothing in the monthly application process forces anyone to notice.

The numbers

Cost-based percent complete (cost incurred to date divided by total budgeted cost) stood at 72%. The certified billed-to-date figure, taken straight from the last approved Application for Payment, stood at 61%. The gap: 11 points, or 11% of the $2,600,000 contract value — $286,000 of work genuinely performed that had not yet been reflected in a certified payment application.

Tracing the gap to source, two schedule-of-values lines — drywall/framing bundled together, and mechanical rough-in/trim bundled together — each carried one combined percentage even though the first trade in each pair was substantially ahead of the second. The combined line had been certified at the slower trade’s pace.

The rule that decided it

CCDC 2’s progress-payment mechanism pays what is certified against the schedule of values, not what cost accounting says is actually done — so a schedule of values that does not track the real sequence of work will systematically understate certified progress, and only a cost-based check catches it before the next application locks the same low number in again. The GC’s own WIP review, not the certification process itself, was the mechanism that surfaced the gap.

The outcome

The controller split the two bundled schedule-of-values lines into separate line items reflecting each trade’s actual progress, and the consultant certified the corrected 72% on the next application, recovering the $286,000 gap in cash flow terms over that and the following month’s billing. On pricing structures generally, see the difference between stipulated price and cost-plus pricing. The related quantity-tracking problem on a unit-price job is in how margin fade got traced to two specific cost codes, and the shop-overhead reclassification on a cost-plus job is in how a job costing rebuild exposed unbilled shop overhead.

What it would have cost otherwise

Left unaddressed, the bundled schedule-of-values line would have kept certifying at the slower trade's pace every month, with the gap between cost incurred and cash certified compounding rather than closing on its own — at a conservative 8% financing cost, carrying $286,000 of uncertified, unpaid-for work for even one additional month is roughly $286,000 × 0.08 ÷ 12, about $1,907 of avoidable financing cost stacked on top of the cash-flow strain itself.

The tell

Run a cost-based percent-complete check against the certified billed-to-date figure every month, on every job, regardless of whether the billing looks routine — a schedule-of-values line that bundles two trades progressing at different speeds will not flag itself; only a comparison against actual cost incurred will.

Why the bundled line hid the gap

A schedule-of-values line covering two trades certifies at whichever pace the slower trade is progressing, because the certifier has only one combined percentage to work from — the faster trade's real progress is invisible on the application for payment even though it is fully reflected in cost incurred. That is why only a cost-based check, run independently of the certification process, could surface the gap: the certification itself was being filled in correctly against the schedule of values as written, it was the schedule of values that no longer matched how the work was actually sequenced. Splitting the two bundled lines into separate items the moment the trades inside them stop moving together is now standard practice on every job this GC certifies.

A check that runs independently of billing, on purpose

The WIP schedule is deliberately built off cost data alone, with no reference to what has already been certified — which is exactly why it could see a gap the certification process itself could not. A review that started from the payment application and worked backward would have inherited the same blind spot the bundled schedule-of-values line already had; starting from cost incurred instead gave the controller an independent number to compare against, rather than a second read of the same number.

Takeaways

  • • A CCDC 2 stipulated-price contract is certified against the schedule of values, not against cost incurred — the two can drift apart without anyone violating the contract.
  • • A bundled schedule-of-values line understates progress the moment the trades inside it move at different speeds.
  • • 11 points on a $2,600,000 contract was $286,000 of real, uncertified work — run the cost-based check even when the billing looks routine.
  • • Split a bundled line the moment two trades inside it stop moving together, rather than waiting for the gap to compound.

See where AI pays off first in your business.

A 30-minute call is enough to tell you whether AI pays for itself here.