How does holdback (retainage) work on invoices?

Set a default holdback percentage in Finance Settings and WorkSkedge withholds it on every new invoice, showing it as a holdback line on the invoice and the PDF. Withheld amounts build up as the project holdback balance — issued invoices only, not drafts — and you bill them later with Release Holdback on the Invoices page.

Updated August 31, 2026 · Verified against HOLDBACK-RETAINAGE.md, INVOICE-FEATURES.md, FINANCE-SETTINGS.md

Steps

  1. 1Open Settings > Finance Settings and select the Holdback / Retainage tab.
  2. 2Set the jurisdiction, default percentage, release days, terminology and tax method.
  3. 3Create invoices as usual — the percentage is withheld and shown as a holdback line.
  4. 4Issue the invoices; only issued invoices add to the project holdback balance.
  5. 5When the job qualifies, open Finances > Invoices and click Release Holdback to bill the accumulated balance.

Settings

Holdback lives in Finance Settings under the Holdback / Retainage tab.

FieldWhat it does
JurisdictionRegional rules applied to holdback handling
Default percentagePercentage withheld on new invoices
Release daysDays after substantial completion before holdback is releasable
TerminologyWhether the app and PDFs say "Holdback" or "Retainage"
Tax methodWhether holdback is computed pre-tax or post-tax

How the money flows

  1. An invoice on a project with holdback enabled withholds the configured percentage and shows it as a holdback line on the invoice and PDF.
  2. Withheld amounts accumulate as the project's holdback balance. Only issued invoices count — drafts do not.
  3. When the job qualifies, click Release Holdback on the Invoices page to bill the accumulated balance. The release invoice draws the balance down.

Pre-tax vs post-tax

The tax method decides whether holdback is taken before or after tax, and it changes the totals block:

Pre-tax (typical in Canada)

taxable base = subtotal - holdback
tax          = taxable base x tax rate
total        = taxable base + tax   <- this is the amount due

Post-tax (typical in the US)

tax        = subtotal x tax rate
total      = subtotal + tax
amount due = total - holdback

On the invoice this reads as Subtotal, Tax, Total, then Less holdback (%) and Amount Due This Invoice, followed by Amount Paid and Balance Due.

Practical notes

  • The holdback label is customisable, so the invoice can print "Holdback", "Retainage" or "Retention" to match your contracts.
  • Holdback is included in the PDF and in the invoice data sent to connected apps and accounting integrations.
  • Payments are tracked against the amount due, not the withheld portion — the balance due never includes holdback that has not been released.

What it looks like in WorkSkedge

WorkSkedge invoice totals block showing subtotal, tax, total, less holdback at 7.5 percent, amount due, amount paid and balance due
The totals block shows the withheld holdback between the total and the amount due.

Frequently asked questions

Do draft invoices add to the holdback balance?

No. Only issued invoices count toward the project's holdback balance.

Why does my total look different from subtotal plus tax?

You are on the pre-tax method. Holdback is deducted before tax is calculated, so the stored total already excludes the withheld amount.

Can I call it retainage instead of holdback?

Yes. The terminology setting changes the wording throughout the app and on the PDFs, including the settings tab name.

How do I bill the money that was held back?

Use Release Holdback on the Invoices page to create a release invoice, which draws down the accumulated holdback balance.

More in Invoicing & Billing