A progress claim is approved, but the bank deposit is short. Before you send a contractor holdback invoice, find out what was withheld and why.
Treat the held amount as a separate job balance. Tie it to the contract, payment detail, release trigger and bank receipt. Then send the document the contract requires without billing the same work twice.
What a contractor holdback invoice is — and what it is not
A contractor holdback invoice is a document used to request an unpaid contract amount when the job records call for an invoice. It is not a catch-all invoice for every short payment.
Use the term in the signed contract. In your internal register, use one standard label.
Separate the progress claim, held balance and final balance
A progress claim asks for payment for work completed during the job. The payer may approve that work but withhold part of the approved amount under a contract term or construction payment requirement.
The held balance is money already identified as withheld. Depending on the contract, a final balance invoice may include newly billable work, approved changes, credits and other adjustments needed to reach the final amount due.
An amount already invoiced and withheld normally needs the release document named in the contract. Do not send a final balance invoice merely because cash remains outstanding. First decide whether the amount was already billed and then withheld.
Keep holdback receivable separate from holdback payable
Holdback receivable is money withheld from your business by a customer or contractor above you. Holdback payable is money your business withholds from a subcontractor under another contract.
Do not net them. Each balance has its own contract, payer, release trigger and payment trail. Mark every register entry as receivable or payable before entering the transaction.
Read the contract and build the Canadian holdback header
Open the signed contract before billing starts. Copy the payment wording into the job file while the scope, schedule and pricing documents are together.
Canadian construction payment requirements can depend on the province or territory, project type, contracting tier and contract. Build a fixed header for the job before the first progress draw. Do not copy a rule or form from another project.
Record:
- the project province or territory;
- whether the project is private or public;
- your tier, such as prime contractor or subcontractor;
- whether the stated basis is contractual, statutory or still unconfirmed;
- the exact contract clause or payment term;
- the amount or work used as the calculation basis;
- the party that calculates or approves the withholding;
- the release trigger and required evidence;
- the official legislation source checked;
- the public contracting authority, when the project is public;
- the person responsible for GST/HST questions; and
- the release document named by the contract or project process.
Use the Government of Canada directory for provincial and territorial governments (opens in a new tab) to reach the official government source for the project location. Find the current construction payment and lien legislation there. Do not assume a percentage, deadline, notice step or release rule.
For a public project, also check the documents and instructions issued by the public contracting authority responsible for that project. If an entitlement, notice or deadline is disputed, get advice for the province or territory where the project sits.
Holdback changes cash timing. You can pay for labour, materials, equipment and subcontractors before receiving all approved revenue. Build the contract price from cost, overhead and markup using the job pricing guide, then plan how the business will carry any withheld cash.
Separate contractual holdback from a legal requirement
Start with the signed contract. Find the clause that describes the withholding, calculation basis and release process.
Then check whether current provincial or territorial legislation affects the project. Keep the contract clause and official source as separate records. One does not erase the other.
If the payment detail simply says holdback, ask the payer to identify the contract term or other basis used. Record the payer's answer. Do not invent the basis to make the account balance.
Record the calculation basis and responsible party
Write down what the contract says the holdback is calculated against. Do not substitute an invoice total, contract total or house rule unless the governing record uses it.
Record the party that calculates the withholding and the party that approves it. Note where the held amount should appear on the progress claim, payment certificate or payment detail.
If the clause is unclear, send a written question before the first claim. Keep the question and answer with the contract.
Copy the release trigger and required proof
Record the exact release trigger. It may refer to a defined stage, completion process, correction of deficiencies, acceptance or delivery of closeout records. Use the contract's wording.
Beside that trigger, record:
- who confirms it;
- what evidence proves it;
- who receives the request;
- which document must be sent; and
- how delivery must be made.
Do not replace the trigger with a guessed date. If the rule depends on a legal event or notice period, check the current official source and get project-specific advice where needed.
Decide how change orders enter the account
An approved change order changes the contract account. It does not prove that a holdback applies to the added amount.
Record the approved scope and price first. Then check the contract and later payment detail for the treatment of that change. The electrical contractor change order process shows how to keep approval, changed work and revised billing together, even when your crew works in another trade.
Give tax questions to the right person
Do not infer GST/HST treatment from the date cash arrives. Keep the invoice, holdback and payment records intact, then ask the Canada Revenue Agency (opens in a new tab) about GST/HST record and reporting questions for your facts.
Write the answer into your accounting procedure. Do not let each project manager make a different tax assumption.
Build a retention payment register when the contract is signed
A retention payment register is the control sheet for each withholding, correction, release and payment. In ordinary Canadian job records, call it the holdback register.
Start it when the contract is signed. Do not wait for the first short deposit. A contractor holdback invoice is easier to check when every earlier transaction already has a source reference.
Copy-ready holdback register
Keep the fixed job fields above the transaction rows.
| Fixed job field | Entry |
|---|---|
| Job and site | [Job reference and address] |
| Contracting parties | [Names of parties] |
| Contracting tier | [Prime contractor / subcontractor / other tier] |
| Project classification | [Private / public] |
| Province or territory | [Project location] |
| Balance type | [Holdback receivable / holdback payable] |
| Contract reference | [Contract number and date] |
| Basis | [Contractual / statutory / unconfirmed] |
| Calculation wording | [Exact wording from source document] |
| Release trigger | [Exact wording from contract or required process] |
| Required evidence | [Closeout document names] |
| Required release document | [Release request / invoice / certificate / declaration / other named form] |
| Recipient and delivery method | [Name, role and delivery instruction] |
Add one transaction row whenever an amount is withheld, corrected, disputed, released or paid.
| Date | Transaction | Source reference | Amount withheld or released | Other deduction | Bank reference | Running held balance | Owner | Next action |
|---|---|---|---|---|---|---|---|---|
| [Date] | [Withholding / correction / release / payment] | [Claim, payment detail, change order or release document] | [Amount and direction] | [Amount and payer's stated reason] | [Bank transaction] | [Balance after entry] | [Person] | [Task and date] |
Never enter an unsupported number. If the payment detail does not explain a difference, open a payment query instead.
Align the register, ledger and cost tracking
The holdback register explains why money was withheld and what releases it. The accounting ledger shows what was billed, paid and left open. Your cost tracking shows what the work consumed.
These records should reconcile, but they do different jobs. Withheld cash changes payment timing. It does not reduce the labour, material, equipment or subcontractor cost already recorded against the job.
Use the job costing guide to record actual costs. Do not move a cost merely because the related revenue remains held.
Reconcile every short payment before calling it holdback
A progress claim can be approved while the deposit arrives short. The payment detail may contain several deductions. Read them separately.
Put these records side by side:
- the submitted progress claim or invoice;
- the approval or payment certificate;
- the payer's payment detail;
- approved change orders and credits; and
- the bank receipt.
Compare the amount submitted with the amount approved. List each deduction using the payer's stated reason. Then match the stated net payment to the bank receipt.
Only move an amount into the holdback register when a source document identifies its basis. Keep disputed work, unapproved changes, credits, deficiencies and payment errors in separate buckets.
Preserve the payer's wording in your construction payment records, even when you disagree. Write your response in a separate note. Changing the original description weakens the collection trail.
If the payment detail and bank receipt do not match, send a written payment query. Record the difference, the person asked and the follow-up date. Do not force an unexplained difference into holdback.
Update approved change orders without inventing a held amount
Enter an approved change order into the contract account before reconciling its billing. Keep the signed approval, changed scope, price, progress claim reference and payment response together.
Then read the source documents to see whether the change affects the holdback calculation basis. An invoice total alone cannot answer that question.
Worked example: Oak Street does not prove a holdback
All figures below are sample currency units, not a rate card.
R. Chen's electrical job at 14 Oak Street covered a bathroom exhaust fan, 150mm and ducted through the roof, plus four LED downlights. Quote Q-1847 was 1,105. The ceiling was lined and the quote excluded chasing.
Extra cable and chasing were approved on site as a 160 change order. Invoice INV-1847 was therefore 1,265.
No contract clause, payment detail or withholding record is supplied. You cannot calculate a holdback from Quote Q-1847, the 160 change order or Invoice INV-1847. Record the approved change first and leave the held amount blank until a source document provides it.
The quote, change order, invoice and holdback record each answer a different question. Do not use one total as proof of another.
Build the closeout file around the release trigger
Start with the recorded trigger. Build one row for each condition that must be proved before payment can be released.
| Contract trigger | Required record | Issuer or approver | Date sent | Acceptance status |
|---|---|---|---|---|
| [Exact contract wording] | [Photo, deficiency record, inspection record, approval or other named proof] | [Person or authority named by the contract or project process] | [Date] | [Not sent / under review / accepted / disputed] |
Give every deficiency a location, description, owner and status. When it is finished, add the completion record and the date sent for review. Keep disputed items visible instead of marking the whole list complete.
Check the permit or inspection authority for the project location through the relevant official provincial, territorial or local source. Keep its records in the closeout file when the contract or project process requires them. A permit or inspection record does not replace contractual acceptance unless the governing requirement connects the two.
Choose the contractor holdback invoice or release document
Start with one question: was the held work already billed?
If it was, another invoice can create a duplicate receivable. Use the release request, progress certificate, declaration or other final payment document named by the contract or required project process.
If an approved contract balance has not yet been billed and the contract calls for an invoice, prepare a final balance invoice. Show the contract account clearly enough that the payer can see what is new and what was billed before.
A clear closeout account can show:
- original approved contract work;
- approved change orders;
- prior billing;
- credits and identified deductions;
- payments received;
- the held balance already billed;
- any unbilled final balance; and
- the amount now requested.
Do not combine an already billed holdback with a new final balance line. That is how completed work gets billed twice.
Use the document name found in the contract. If the project calls for a certificate or declaration, do not rename it as an invoice. If it calls for an invoice, the invoice writing guide gives you the basic document fields after you have confirmed the correct balance.
Follow the request through to cleared payment
Record when the release package was sent, who received it and how it was delivered. Add the payer's review status, any disputed item and the next action date.
When the payer responds, keep the original response. If more evidence is requested, link each new file to the release requirement it answers. Do not overwrite the first submission.
When payment arrives, match the bank receipt to the release document and holdback register. Clear only the amount received. Investigate any remaining difference before closing the balance.
Archive the contract clause, progress claims, payment details, change orders, closeout evidence, contractor holdback invoice or release request, correspondence and final bank receipt in the same job file. Yes Foreman can keep those job documents and the payment status against one job, so the collection trail does not split across inboxes and paper folders.