A progress claim built from scratch every month is where cash flow goes to die. Build the template, the holdback math and the clock once, and run the same cycle every time.
Key takeaways
STEP 01 OF 10
Alberta's prompt-payment regulator publishes the exact fields a "proper invoice" must carry: the contractor's name and business address, the invoice date, the period the work covers, a description of the work or materials, the amount requested, the payment terms, the name and contact details of the person to be paid, and — unusually — a written statement that the invoice is intended to be a proper invoice. Build all eight into your claim template even if the project sits outside Alberta, because a payment application missing any of them gives the payer an easy excuse to treat the clock as not yet started. See Alberta's own list.
The eighth field — the explicit "this is a proper invoice" statement — is the one firms skip most often, because it feels redundant. It is not: it is the sentence that starts the statutory clock running, and a payer disputing timing will look for its absence first.
STEP 02 OF 10
Keep quantity and progress certification as a separate step from paperwork. The site super or estimator signs off on what was actually done this period — against the schedule of values, not against what was billed last month plus a guess — and only then does that number move into the invoice template from step one.
This separation matters because a payment application built by copying last month's file and changing the total is how errors compound: a mis-measured quantity in month three shows up again in months four, five and six unless someone re-derives the number from the field each time.
STEP 03 OF 10
Ontario and Alberta hold back 10% of the value of the work as it is done or certified. British Columbia's Builders Lien Act s.4(1) calculates it differently: 10% of the greater of the value of work actually provided or the amount actually paid on account — a distinction that matters on a project running behind its billing schedule. Build the holdback formula into the template with the right base for the province the project sits in, not a single sitewide default.
In British Columbia the holdback also has to sit in a dedicated holdback account at a savings institution (s.5(1)), administered jointly with the party it was retained from. A general operating account does not satisfy that requirement.
STEP 04 OF 10
Name who reviews the claim, in what order, and how many business days each reviewer has — site super for quantities, PM for scope and change-order status, controller for the holdback math and the invoice fields from step one. A claim that can sit on any one desk for an undefined number of days is what turns a 28-day statutory clock into a 40-day actual one before the payer has even seen it.
Put the approval chain on a calendar, not in an inbox. If a reviewer is out, the chain needs a named backup, not a silent delay.
STEP 05 OF 10
Alberta's regulator publishes real numbers here: owners must pay within 28 calendar days of receiving a proper invoice, and a dispute notice is due within 14. Ontario's Construction Act runs on the same proper-invoice mechanism, but its own published day counts carry an explicit "verify with a lawyer, the Act may have changed" hedge — useful for internal planning, not something to state as settled law on a client-facing document.
Whatever the province, calendar the response window the day the invoice goes out, not the day a dispute notice arrives. A window that starts when someone remembers to check is not a window at all.
STEP 06 OF 10
Alberta's regulator requires that a Notice of Non-Payment state the amount being withheld and the reasons for withholding it — not a vague objection. A firm on the receiving end of a dispute should have a template ready that forces the payer to be specific, and a firm issuing one should have its own template ready so a genuine dispute does not turn into a missed deadline while someone drafts language from scratch.
A generic "we dispute this invoice" email does not stop the statutory clock in most regimes — a proper notice, with the amount and the reasons, does. Know which one your template produces.
STEP 07 OF 10
In Alberta, once the contractor receives payment from the owner, it must pay each subcontractor within 7 calendar days (PPCLA s.32.3(1)) — and if the owner never pays, the contractor still must pay each subcontractor no later than 35 days after giving the owner the proper invoice (s.32.3(4)). Those two numbers are not independent: 28 days for the owner to pay, plus 7 more for the cascade, lands on exactly the same day 35 as the fallback deadline. Build the cascade date into the same calendar as the owner's payment date — it is not a separate clock running from a different zero.
This is where the internal approval chain from step four earns its keep: a claim stuck on someone's desk for a week does not just delay the GC's own cash, it eats directly into the seven days a subcontractor is legally owed once payment lands.
STEP 08 OF 10
Since 1 January 2026, Ontario's accrued holdback must be released annually rather than at the payer's option — a notice is published within a stated window after each contract anniversary, and payment follows. See project closeout in thirty days for how this interacts with a project's final holdback release. Put every open contract's anniversary date on the same calendar as the monthly claim cycle; a payment cycle that only tracks monthly claims and misses the annual release date is only doing half its job.
This is a new obligation, not a long-standing one — a firm running its 2025 process into 2026 unchanged is the most common way this gets missed.
STEP 09 OF 10
The holdback figure sitting on the books should be checked every month against the same project's lien-deadline calendar — see standing up a scheduling function for how those dates get tracked in the first place. A holdback ledger that only gets reconciled at year end is a ledger that finds its own errors eleven months too late.
This is also the point at which a change order that has not yet been priced (see setting up a change management process) tends to surface as a mismatch between what was certified and what was invoiced. Catch it monthly, not at closeout.
STEP 10 OF 10
A payment-application cycle run on a spreadsheet fails in three predictable places: the holdback formula gets copied wrong when a row is inserted, the statutory-deadline dates are calculated by hand and drift, and there is no flag when a subcontractor's cascade date is approaching. None of those three failure modes require a new system to fix — they require the holdback formula, the deadline calculation, and the escalation flag to be built once, correctly, and never re-typed.
Start with the piece that already has a hard number behind it — the holdback percentage and its base — and only then automate the softer judgment calls, like scope certification. Automating a subjective step before a mechanical one just produces confident-looking wrong numbers faster.
Treating the 10% holdback as the same calculation in every province. Ontario and Alberta hold back 10% of value done; British Columbia holds back 10% of the greater of value done or amount paid. On a project billed ahead of progress, that is a different number.
Letting the response-window clock start on the day someone notices the invoice, not the day it was sent. A statutory clock runs from receipt of a proper invoice, not from the payer's internal review queue. Date-stamp delivery.
Sending a generic dispute email instead of a proper notice of non-payment. Without a stated amount and stated reasons, a payer's objection does not do what the payer thinks it does — and does not protect the contractor's own downstream cascade deadline either.
Running the 2025 holdback-release process into 2026 unchanged in Ontario. The annual release is now mandatory, on a contract-anniversary clock, not something the payer can defer indefinitely.
Building the payment application from last month's file instead of this month's certified quantities. A copy-and-adjust habit compounds a measurement error across every remaining month of the project.
Two calculations sit inside every progress claim: what the holdback takes off this month's payment, and how many days the payer and the chain below have to move the money. Here is both, using illustrative figures.
The holdback. A GC certifies $180,000 of work in this period on a $1,200,000 contract. At the common 10% rate, this period's holdback is $18,000, and the net payment due is $162,000. Cumulative certified work to date, including this period, is $720,000; cumulative holdback is $72,000; cumulative net paid to date is $648,000 — which, checked against last month's cumulative net of $486,000, confirms the $162,000 this period is internally consistent before the invoice goes out.
The Alberta clock. A proper invoice goes out on day 0. The owner has until day 14 to issue a notice of non-payment if it intends to dispute any part of the claim, and until day 28 to pay if it does not. Once payment lands, the contractor has 7 more days to pay each subcontractor — day 35. If the owner never pays at all, the contractor still owes each subcontractor by day 35 regardless, under the fallback rule. Both paths land on the same day 35: the 7-day cascade and the 35-day fallback are not two separate deadlines, they are the same one arrived at two ways.
Neither figure is a claim about what your project will see — the contract value, the rate applicable to your province, and the actual payment timeline all vary. The method is what to build once: certify, calculate holdback against the correct base, and calendar the clock from day zero.
The headline holdback rate is common across Ontario, Alberta and British Columbia. Almost nothing else about the payment cycle is.
A payment-cycle template built for one province and reused for another without checking these three lines is the single most common way a Canadian multi-province GC gets its holdback math wrong.
No. The 10% figure in Ontario, Alberta and British Columbia is a statutory floor, not a default that a contract can waive downward — a contract clause purporting to reduce it does not change the payer's underlying obligation.
The proper-invoice fields are the same either way. What differs is the deadline that starts running once the tier above is paid — in Alberta that is a 7-day cascade, not the 28-day window the prime contractor had.
A proper notice of non-payment must state the specific amount withheld and the specific reasons — it cannot hold back the whole invoice over a partial dispute without saying so.
No. Ontario's regime took effect 1 October 2019, Alberta's 29 August 2022, and British Columbia has no prompt-payment legislation at all as of this writing.
A 30-minute call is enough to tell you whether it is worth building.