Documentation

Progress billing and retainage from a contract

Bill a customer against a contract’s schedule of values: invoice → customer → job → contract line, with percent complete, billed-to-date, and retainage held on each line.

Plans
Advanced and above
Availability
Available
For
Owners, Bookkeepers, Accountants
In KontoCore
Projects → Contracts → Progress billing

Prelaunch capability. Retainage release billing is still being verified and is not yet documented as a supported workflow.

In plain English

A big job is billed in installments as work gets done. Each invoice says how far along each part of the job is, and the customer may hold back a percentage (retainage) until the end.

What this does

A progress invoice is a normal sales invoice linked to a customer, a job, and a contract. Each invoice line points at one schedule-of-values line, so the contract always knows how much of every line has been billed and how much remains.

Retainage is calculated per line at the contract’s retainage rate and is tracked separately from the amount due now, so receivables show both what the customer owes today and what is being held. Billing the held retainage at the end of a job is being verified in prelaunch; until it is documented here, confirm the release approach with your accountant.

TermWhat it means
Schedule of values (SOV)The contract broken into billable lines with a scheduled amount for each.
Billed to dateWhat has already been invoiced on a line. KontoCore derives it from posted invoices; it is never typed in.
RetainageThe portion the customer holds back on each bill until completion or release.

More plain-language help in KontoGuide and the Glossary.

Before you start

  • Create the customer and the job (project) the work belongs to.
  • Create the contract on that job and enter its schedule of values and retainage rate.
  • Confirm your chart of accounts includes a retainage receivable account (the default chart does).

How to

Create a progress invoice

  1. 1Open the job, then its contract, and choose Progress billing.
  2. 2For each schedule line, enter this period’s percent complete or amount. KontoCore shows scheduled value, billed to date, this period, and balance to finish.
  3. 3Review the retainage withheld on each line and the net amount due.
  4. 4Save as draft to review, then post the invoice.

What happens in your books

Posting moves the current amount into accounts receivable and the withheld portion into retainage receivable; revenue is recognized for the full billed amount. Billing a line beyond its scheduled value is blocked rather than silently allowed.

Progress invoice: $10,000 billed, 10% retainage · illustrative
AccountDebitCredit
Accounts receivable9,000.00
Retainage receivable1,000.00
Contract revenue10,000.00

Common mistakes

  • Creating a plain invoice for contract work — it won’t update billed-to-date on the schedule.
  • Editing the schedule of values after billing instead of recording a change order.
  • Recording customer retainage payments as general income instead of applying them to the retainage invoice.

Troubleshooting

Line can’t be billed

The amount would exceed the line’s remaining balance. Check billed to date, or add a change order if the scope grew.

Retainage looks wrong

Confirm the contract’s retainage rate and whether any line uses a different rate; then void and re-create the draft.

Was this helpful?

Last reviewed October 6, 2026