PRIVATE CASH-FLOW WORKSHEET

See what retainage is costing your business.

A construction retainage calculator for contractors and subcontractors. Turn your contract value, payment history, and days outstanding into a clear cash snapshot, a modeled release schedule, and a factual follow-up email.

Your project figures

Use your own borrowing or opportunity-cost assumption. This is a model, not an interest claim.

How far the job has progressed. Paid-to-date is cash received, not percent complete.

Many contracts drop retainage after 50% complete. Check yours.

Typical reduction is from 10% to 5%. Use the figure in the contract.

Used only for the 0% / 5% / 10% bid comparison — how long you expect the withheld slice to sit before release. Not a contractual deadline.

Payment milestones

Optional private schedule for checking your worksheet against billed and paid amounts. Add rows as needed; blank rows are ignored.

Use it safely

Weighing this against Levelset or another payments/lien-rights platform? See this calculator vs. Levelset. Already tracking this in a spreadsheet? See this calculator vs. a spreadsheet.

Everything runs in your browser. Your project data is never uploaded. If you opt in, the worksheet is stored only in this browser so you can return to it. We count only anonymous feature events in local storage (calculations, rate compares, draft copies, downloads, prints, saved drafts, link copies, and partial-offer compares), never people, content, IPs, or cookies. Counting honors Do Not Track and Global Privacy Control. Turn it off with the checkbox below.

No warranty. This tool is provided free and as-is, without warranty of any kind, express or implied. It is not legal, tax, financial, or engineering advice, and it does not replace a qualified professional. You are responsible for reviewing and verifying its output before relying on it, and for meeting any obligation it helps you prepare for. To the maximum extent permitted by law, the authors accept no liability for any loss or damage arising from its use.

Best-effort hosting, no SLA. These tools are free, experimental, and may be slow, broken, moved, or taken offline without notice. We do not promise uptime, backups of anything you type, or that a URL will keep working. Do not use this as a system of record. If a tool needs to survive, export your inputs and run it yourself.

Free and open source. If it helped you plan around a slow retainage release, the code is under an MIT licence — GitHub Sponsors is optional and never changes what the tool does.

Planning the whole subcontract's payment timing — materials, retention, and late-payment buffer — rather than just the retainage hold? The subcontractor cash flow planner models the funding gap before you order, and the certificate of insurance tracker checks whether the subs you are holding retainage on are still insured — nothing uploaded.

Common questions

How much retainage will be withheld on my contract?

Retainage withheld is the contract value times your retainage percentage — it does not depend on how much has been paid to date. On the worksheet defaults, a $100,000 contract at 10% retainage withholds $10,000.00. The calculator separately tracks retainage still unpaid, which is capped at whichever is smaller: the full retainage withheld, or the earned-but-unpaid balance.

Is retainage the same thing as an unpaid invoice?

No. Earned but unpaid is the contract value minus what has actually been paid — $25,000.00 on the defaults ($100,000 contract, $75,000 paid). Retainage still unpaid is a narrower figure inside that: the smaller of the retainage withheld ($10,000.00) or the earned-but-unpaid amount. On the defaults the full $10,000.00 of retainage is still inside that $25,000.00 owed, not on top of it.

When does retainage typically release?

The calculator models a common AIA-style rule: the full retainage rate applies to billed work until the job passes a reduction point (50% complete by default), then the rate drops to a lower reduced rate (5% by default). On the worksheet defaults — a job 75% complete against that 50%-complete reduction point and 5% reduced rate — the modeled proper hold is $5,000.00 of the $7,500.00 progress retainage billed, meaning about $2,500.00 is typically already releasable. This is a planning model built from a common contract pattern, not a reading of your actual subcontract — check the release terms your contract actually states.

What does a payment delay actually cost me?

The calculator applies your own annual carrying-cost assumption only to the earned-but-unpaid balance, not the full contract value. On the defaults — $25,000.00 earned but unpaid at a 12% annual carrying-cost assumption — each additional day models about $8.22, and another 30 days of delay models about $246.58. Over the 90 days already outstanding in the default scenario, that comes to $739.73 in modeled carrying cost on top of the $25,000.00 owed. This is a planning figure using your own rate assumption, not a contractual interest claim.

Should I bid higher to cover retainage?

The calculator compares what it takes to keep the same progress-payment cash at 0%, 5%, and 10% retainage. On a $100,000 job at 10% retainage, keeping the same cash flow as a no-retainage job means bidding $111,111.11 — $11,111.11 more — because the withheld 10% has to be grossed back up from progress payments. That is different from the smaller economic add-on ($296.77 on the defaults) that only covers the modeled carrying cost of the hold. Most contractors price the cash-now gap, not just the interest, when retainage is negotiable.

Should I take a partial retainage check now?

On the worksheet defaults — a $100,000 contract with 10% retainage, $75,000 paid, and a 12% carrying-cost assumption — waiting 60 days for the remaining $10,000 models $197.26 more carrying cost on that retainage, leaving $9,802.74. A $5,000 check that closes the rest is $4,802.74 behind that wait. If the other $5,000 still arrives in 60 days, taking the check now leaves $9,901.37. The calculator shows the arithmetic; it does not tell you to sign a waiver.