Treadstone Associates
Ask an Expert · 4 min read

Why does our WIP never match the bank?

Both numbers can be exactly right and still never agree, and that's usually a feature, not a bug.

Treadstone Associates · Updated 2026

Short answer

Because they're not measuring the same thing. Your WIP schedule reports revenue earned against physical or cost progress on each job — an accrual number. Your bank balance reports cash that has actually cleared, which lags or leads that progress depending on your billing cycle, holdback, and any scope you haven't invoiced yet. Three correct numbers, three different dates.

Two clocks running on the same job

CCDC 2 builds most Canadian contracts around monthly progress billing tied to provincial payment legislation — a fixed cycle, not a real-time meter. Between billing dates, work keeps happening: revenue keeps accruing on the job even though no invoice has gone out to capture it yet. That's underbilling — costs and earned margin sitting ahead of what's been billed, an asset on the balance sheet. The reverse, overbilling, happens when billing runs ahead of physical progress, which shows up as a liability, not cash you actually get to keep.

Unbilled scope creep is one of the most common reasons WIP shows revenue the bank has never seen — work genuinely performed and genuinely earned, sitting unbilled because nobody wrote up the change order.

Worked example

A $250,000 job with a $200,000 budgeted cost has $140,000 of cost incurred at month-end — 70% complete by cost. Revenue earned to date is 70% of $250,000, or $175,000. The progress-billing schedule has only reached $160,000, and of that, $150,000 has actually been collected — the remaining $10,000 is still in transit or held back under the contract.

Three numbers, three different stories: $175,000 earned on the WIP schedule, $160,000 billed, $150,000 in the bank. The first gap, $15,000, is unbilled revenue — work done, not yet invoiced. The second gap, $10,000, is billed-but-not-collected, whether that's ordinary payment timing or statutory holdback the client is entitled to retain. Every dollar is accounted for; none of the three numbers is wrong.

What people get wrong

“The bank account looks fine” is not proof a job is fine — the bank balance blends every job's timing gaps together, so one badly underbilled job can hide behind several healthy ones. See this WIP review that found a job eleven points under on exactly that pattern.

The fix is reconciling WIP to the general ledger every month, not at year end — see preparing a WIP schedule every month — and it pairs directly with getting the revenue-recognition timing right in the first place.

Get a second set of eyes on the numbers.

A 30-minute call is enough to tell you whether your pricing, bonding or collections process is leaking margin.