Guide
Lien waiver tracking spreadsheet: columns, statuses, an example
A lien waiver tracking spreadsheet for general contractors: the columns, statuses and checks that show which subs still owe a waiver before the pay app.
Open the free lien waiver tracking spreadsheet tool full screen
A lien waiver tracking spreadsheet needs one row per subcontractor per project per month, a status for each requirement, and a date column that tells you who is still missing as the pay app approaches. Start with the nine columns below and one rule: a row is not done until you have opened the signed file and accepted it.
This guide gives the layout, the status list, a short worked example and the point where a spreadsheet stops being the right tool. It does not give a waiver form or say which form your state requires; that depends on the state and your contract.

What columns does a lien waiver tracking spreadsheet need?
Nine columns cover the monthly job:
| Column | What goes in it |
|---|---|
| Project | The job name |
| Period | The month, as 2026-10 so it sorts |
| Sub | Company name |
| Contact and email | Who you chase |
| Waiver type | Conditional or unconditional for this period |
| Requested on | The date you sent the request |
| Received on | The date a signed copy arrived |
| Status | One value from the list below |
| Note | Why it was rejected, or who you called |
Keep the period in its own column instead of making a new tab each month. One long sheet filters better and keeps last month's rows as your record.
What statuses should each row have?
Use a short, fixed list so a filter gives the right answer:
- Missing: requested, nothing back.
- Received: a file arrived but you have not checked it.
- Accepted: you opened it and the signer, date and period are right.
- Rejected: wrong period, unsigned or unreadable; say why in the note.
- Not applicable: the sub had no work this period.
Put these in a drop-down (Data validation in Excel or Google Sheets) so nobody types "recvd" or "got it". One of the commenters in the ContractorTalk thread on this exact problem described the real difficulty as getting clean documents from subs, not recording them, and "Rejected" with a reason is the status that captures that.
How do I see who is still missing before the pay app?
Add one more column, Billing day, holding the date the pay app is due for that project. Then filter Status to Missing and Rejected and sort by Billing day. The top of that list is who to call today.
A formula helps for the days left: =B2-TODAY() where B holds the billing date. Colour any row red when it is under three days and still not Accepted. Check the filter at the start of each morning in the last week of the month.
Worked example: six subs, one project
This is an illustrative sheet, not real data. Project: Harbor Street Office, period 2026-10, billing day 25th.
| Sub | Waiver type | Status | Note |
|---|---|---|---|
| Alder Electric | Conditional | Accepted | |
| Brightline Mechanical | Conditional | Received | Not opened yet |
| Cole Drywall | Conditional | Rejected | Signed for September |
| Delta Concrete | Conditional | Missing | Called Tuesday |
| Eastside Roofing | Conditional | Not applicable | No work this month |
| Fox Glazing | Conditional | Missing | Email bounced |
Filtering to Missing and Rejected leaves three subs. The bounced email is the one a spreadsheet will not tell you about unless you notice it, which is the first limit of the approach.
When does a spreadsheet stop working?
A spreadsheet records the chase; it does not do it. Past a handful of projects, four things break down:
- Nobody sends the reminders. You still write each email and follow up by hand.
- Files live elsewhere. The signed PDF sits in an inbox while the status sits in the sheet, and they drift apart.
- Several people edit one file. Statuses get overwritten and nobody knows which copy is current.
- Nothing reminds you of insurance dates. The same pattern shows up with certificates; see the COI tracking spreadsheet template for the matching sheet.
When those four cost you more than an hour a project a month, a tool that does the sending is worth a look; lien waiver software explains what to compare.
What does Waiver Chase do instead of the sheet?
Waiver Chase keeps the same rows, but sends the requests. It emails each sub what is missing on each project with a no-login upload link, reminds the ones who have not sent it on weekday mornings, then stops and lists them in your digest. Subs upload a signed PDF or photo up to 4 MB with the signer's name and date, and you accept or reject each one with a reason. The tracker per project has the statuses above, and there is a cross-project exceptions list and a CSV export. It does not supply waiver forms: you attach your own state's form to each project. It also does not read the contents of the waiver, so you still check each one.
The free run on this page builds this tracker from up to ten of your own subs and shows the email each sub would get. Nothing is sent to your subs.
FAQ
Can I download this as a template?
Build it from the columns above in Excel or Google Sheets; it takes about ten minutes, and the free run on this page produces the same layout from your sub list.
Should the sheet track conditional and unconditional waivers separately?
Use the Waiver type column and one row per period. Which type you need at each stage depends on your contract and your state, so confirm that with your attorney or lender.
How long should I keep the signed copies?
Keep them as long as your contract, lender or attorney requires. Waiver Chase keeps uploaded files for 13 months after their period, then deletes them.
Every sub's lien waiver and COI in before you release the pay app
Waiver Chase emails each subcontractor what is missing for the month, reminds the ones who don't send it, tracks COI expiry dates, and lists what is still outstanding on every project.
$149/ month
Get startedCancel any time.