Retainage Held
The Pay ApplicationWhat you have earned, what you have been paid, and what is still being held.
Retainage leaves your books as billed and never arrives as paid, so it reads as a customer who pays slowly — and because the release condition is written per contract, nothing in a ledger sorts by which ones are already past it.
Retainage is money you earned, billed and had approved, withheld on purpose and sitting in somebody else’s account. It shows on no report as anything but slow payment. This prints what is held per contract, what the contract says should be held, and which jobs are past their own release condition — sorted by how far past.
About this tool
Retainage Held: what it solves
Accounting software knows what was invoiced and what came in. It does not know why the two disagree, because the reason is a clause nobody keyed anywhere: a percentage the general contractor holds back off every pay application, released when one named condition is satisfied. The percentage differs per contract and so does the condition, which is why no platform holds this. The first finding is that retainage is earned money with no document. It is work done, inspected, approved and billed, and on every report either side of the gap it is invisible. The second is the actionable one: the release trigger is per contract, and money sits past it. A job whose condition was met four months ago with the money still held is a phone call that should already have happened, and a job still running is not a fault — an aging report cannot tell them apart. This suggests no percentage, says when to chase nobody, and takes no view on whether a hold-back is valid.
Earned money with no document
The work was done. It was inspected, approved and billed. And a percentage of it was held back.
That held-back money is yours. You earned it, it is in the contract, and it is sitting in the general contractor’s account.
It is also invisible on every report you own, because your accounting knows what you invoiced and knows what came in, and has no opinion at all about why the two disagree. The gap reads as slow payment. It is not slow payment — it is a deliberate hold-back with a written release condition, and those are very different things to be looking at.
The release trigger is per contract, and money sits past it
This is the actionable half.
Substantial completion. Punch list signed. Final lien waiver. Whichever one your contract names — and it names a different one on the next job.
A job whose condition was satisfied four months ago with the retainage still held is a phone call that should already have happened. And because every contract has its own trigger, nothing in your ledger sorts them. There is no column for it. There is no report that could produce it, because the information is in the contract rather than the accounting.
This sorts by how long past the trigger the money has been sitting, furthest first.
Past its condition and still held — not simply finished
The list is money that is past its release condition and still being held. That is a narrower thing than “jobs that finished a while ago”, and the difference is what makes the list worth working.
A job that finished six months ago and was released in full is done. It does not belong on a chase list, and putting it there makes the list long enough to ignore.
A job still running is not a fault either. Its retainage is being held exactly as agreed.
An aging report built on dates alone cannot tell those apart. This can, because it holds the trigger and whether it has been met.
The over-held line
Sometimes more has been withheld than the contract allows — ten per cent applied against a contract written at five, or a rate carried over from a previous job.
That is a real dispute and this makes it visible, with the amount. It does not judge it, does not tell you the general contractor is wrong, and does not draft your email. It shows you the two numbers and that they disagree.
What it replaces
The mental list of what is still being held, kept by whoever runs the office, which is accurate until there are nine jobs. Or the check that happens when cash gets tight, which is exactly when a four-month-old conversation is hardest to have.
You enter each contract’s percentage and release condition once. After that it is what has been billed and what has come in.
Who it is for
Subcontractors, specialty trades and small general contractors — anywhere a percentage is held off every pay application and getting it released is a separate act from earning it.
What it will not do
It suggests no retainage percentage. That is negotiated, and it is negotiated per contract.
It says when to chase nobody. Whether a call gets made this week is about a relationship and the next job, and a page has no standing there.
It takes no view on whether a hold-back is contractually valid. It shows what the contract says against what happened. Whether the general contractor agrees is between you and them.
It computes no interest on money held. That would be a claim about what you are owed, and it is not one this can support.
Nothing you type is sent anywhere. The arithmetic runs in your browser. Contract terms and customer names stay on the machine you typed them on. Close the tab and it is gone.
Yours would be built the same way.
This one runs on made-up data. The version built for your business runs on yours, and you own it outright. Builds start at $2,500. That is a floor, not a quote. What yours costs is agreed before any work begins. The first conversation is free.