Skip to main content

First 5 customers: 6 months free.5 spots still open.

Claim your spot
All postsPayment release

Why lien waiver tracking breaks at 5+ active jobs (and the system that fixes it)

Lien waiver tracking falls apart somewhere between two and five active projects. Here's why the sequencing breaks, the system GCs use to keep it from collapsing, and where a spreadsheet stops being enough.

The LienDone team9 min read
Construction project manager reviewing a tracker across multiple active jobs

A general contractor I talked to last quarter ran 12 active jobs through a single project coordinator. She kept a tracker. The tracker had every sub, every waiver type, every status. She was good at it. And in October, on a $180k pay app, one conditional waiver did not go out and the unconditional from the prior pay period did not come back. The check went out anyway. Two weeks later the sub filed a $40k mechanic's lien on the client's property.

The GC paid the lien claim. The coordinator did not get fired. The system did. It worked at two jobs, held at six, and broke at twelve.

This post is for the GC who has just watched the same thing happen, or who can feel it coming. It covers why the lien waiver process collapses past five active jobs, the four places it breaks, the system that holds up across 20 projects, and the line where a spreadsheet stops being enough.

Why two projects fits in your head and five doesn't

The lien waiver cycle is simple on paper. You send a conditional waiver with the pay app. The check clears. The sub sends back the unconditional waiver. You file it. Next pay period, repeat.

Two waivers per sub per pay period. Four pay periods per quarter. On a single job with five subs, that is 40 waiver events per quarter. You can hold that in your head.

Add a second job. That's 80 events. Still fine.

At five active jobs, you are tracking 200 individual waiver events per quarter, each one in one of six states: not sent, sent and unsigned, signed and on file, payment pending, payment cleared, unconditional received. Mentally tracking 200 states across six categories breaks somewhere between job four and job five for most coordinators.

This is not a discipline problem. It is a working-memory problem. Add tier-two suppliers (the sub's own suppliers, who can also file liens) and the matrix grows by another 2x. A GC at 10 active jobs with three suppliers per sub is tracking close to 1,200 individual waiver states per quarter. No spreadsheet survives that without a process around it.

The four places the process breaks

When the system breaks, it breaks in the same four places almost every time.

1. Sequencing. Conditional goes out before payment. Unconditional comes back after. Confuse the order and you either signed away lien rights for a check that never cleared (the sub's nightmare) or sent a check without the conditional on file (the GC's nightmare). On one job, with one sub, you remember which is which. Across 12 jobs with 80 subs, you mix it up.

2. Ownership. Whoever has bandwidth this week becomes the de facto owner. Then bandwidth shifts. The waiver process gets handed off mid-cycle. The handoff loses the context of which waivers are outstanding and which were sent yesterday. The first thing to fall through a handoff is a waiver that was almost done.

3. The follow-up gap. A sub signs the conditional. You pay. You ask for the unconditional. The sub says "I'll get it to you next week." Next week becomes next pay period. Next pay period becomes never. The sub already has the money. The follow-up has nothing to push against. Most missed waivers are not refusals. They are forgotten follow-ups.

4. The payment gate that is not a gate. Most GCs say they have a rule: no waiver, no payment. In practice, when a project is on a deadline and the sub says "I'll send the waiver tomorrow, just cut the check," the check goes out. The exception becomes the pattern. Once subs learn that the gate has a back door, the back door is the door.

Each of these four breaks shows up gradually. None of them feels critical when it happens once. The lien filing two months later is the moment they stop being abstract.

The system that holds up

The fix is not a better spreadsheet. It is four rules, applied without exceptions.

One named owner across every active job

Pick one person by name. Make this their job, not a side task. The role owns every waiver across every project. Not "the PM owns it on their own job" — one owner across the portfolio, because the bookkeeping is portfolio-level even when the projects are not.

That person needs the authority to hold a check until the waiver is on file. If they have to escalate to a partner every time a sub pushes back, the authority is not real. Write the authority into their job description.

One tracker, one source of truth

One file. One view. Every active sub on every active project, with these columns at minimum:

  • Project
  • Sub or supplier name
  • Trade
  • Pay app number
  • Conditional waiver sent date
  • Conditional waiver signed date
  • Payment release date
  • Unconditional waiver requested date
  • Unconditional waiver received date
  • Status: open, paid-awaiting-unconditional, closed

The tracker has to be one file. If half your data lives in QuickBooks and half lives in a spreadsheet and half lives in email, the math never reconciles. Whatever tool you pick, it owns the whole record.

The hard payment gate

The rule is short and goes in writing to every sub at onboarding:

No payment is released without a signed conditional waiver on file. No new pay period starts until the prior unconditional is received.

Two sentences. No exceptions. The first time a sub gets a partial check or a delayed payment because their waiver is not on file, every other sub on that project gets the message. Most lien waiver discipline problems disappear within one pay period of the first held check.

A reader on r/Construction put it well: "Subs respond to deadlines that affect their next check, not to abstract 'please return the form' emails. Frame the unconditional ask as 'we need this back seven days before your next pay app or you do not make this draw.' Shifts the urgency from your team to the sub's calendar."

That is the trick. Tie the unconditional deadline to the sub's next payment, not to yours. Their pay app becomes the pressure to return the form.

Weekly review, not monthly

A monthly review catches problems after a pay period has closed. A weekly review catches the missing unconditional before it gets buried.

Block 30 minutes every Monday. Open the tracker. Read down the "open" and "paid-awaiting-unconditional" rows. For every row older than seven days, send a follow-up. For every row older than 14 days, escalate.

That is the whole review. It does not need to be a meeting. It does not need a deck. It needs to happen on the calendar, every week, run by the named owner.

When a spreadsheet is enough, when it stops being enough

A spreadsheet is enough for one to three active projects with under 25 unique subs across the portfolio. The matrix is small enough to scan in 60 seconds. You can hand-edit a few cells per week and stay accurate.

A spreadsheet stops being enough when one of these three things happens:

  • You cross five active projects, or 30 unique subs across the portfolio.
  • More than one person on your team needs to send or receive waivers (the file gets edited from two browsers, the cells start to lie).
  • A sub starts working across two of your projects with different pay periods (the cross-project state breaks the columns).

At that point, you are choosing between three options.

Option one is an in-house build (Airtable, Notion, a custom Google Apps Script). This works if you have a person who owns the build long-term. It usually breaks the first time that person leaves.

Option two is a generalist construction PM tool with a waiver module bolted on (Procore, Buildertrend, GCpay). These hold up for large portfolios but cost five figures per year and the waiver flow is one of 50 things the tool does. The setup is heavy.

Option three is a purpose-built waiver tool like LienDone. The trade is depth for narrowness. You give up the rest of the construction PM stack and get a tool that does the conditional-out, payment-clears, unconditional-back loop and nothing else. The setup is short because the surface is small.

There is no wrong answer. The wrong answer is staying on the spreadsheet past the point it has visibly broken once.

The story you do not want to live: paid the GC, got a lien anyway

The Reddit thread that prompted this post had a homeowner in Illinois. They hired a GC for a $10k bathroom remodel. The sub and the GC argued about payment mid-job. The homeowner paid the GC in full. Job finished. Three weeks later, the sub filed a $2,500 mechanic's lien on the home.

The sub had sent a preliminary notice during the job. In Illinois, that notice is what gives the sub lien rights against the property if the GC does not pay. The homeowner had no contract with the sub. The homeowner had paid the GC. The homeowner still had a lien on their house.

This is the consequence of the GC not running the waiver process. The GC did not collect the sub's signed waiver before releasing the sub's portion of the payment. The homeowner did not require lien releases from the GC before each progress payment. The two gaps compounded.

If you are a GC, you are not the homeowner in this story. You are the GC. Your client is the homeowner. The story ends with your client calling you, your reputation taking the hit, and your insurance not covering the dispute. The next project you bid on with that client, you do not get.

The cost of not running a tight waiver process is not the missed waiver itself. It is the next two jobs.

The shortest version of the rule

If you only remember one thing:

Tie the payment to the conditional. Tie the unconditional to the sub's next pay app. Put one person in charge of both, give them the authority to hold the check, and read the tracker every Monday.

That is the entire system. Everything else is the implementation.

If your current process matches that and your team can keep up with it, you are fine. If it does not, the first quarter you scale past five active jobs is the quarter you find out.

Run the system on autopilot

LienDone runs the conditional-out, payment-clears, unconditional-back loop automatically. The tracker is one screen. The payment gate is hard. The Monday review is a single email digest of every open waiver across every job. Forty waivers go out in one click. Subs sign without a login. The unconditional comes back tied to the next pay deadline, not yours.

Two minutes per signature. No missed waivers. Every state's statutory form built in.

See how it works →

Send your next waiver in two minutes.

Pick the project, pick the sub, hit send. The signed PDF lands in your dashboard.

Get startedSee pricing