Skip to content
Biltix
← All posts
Cash flow·4 min read

Why your pay apps age 60 days — and the operating discipline that fixes it

Trade contractors lose more margin to slow pay-app cycles than to almost any other cause. Here's where the days actually go, and the workflow changes that get cash in the bank in 30.

By Biltix Team

Ask a controller at a specialty trade contractor what keeps them up at night and the answer is rarely "winning bids." It’s "getting paid for the bids we already won." Across the trades we work with, the average gap between work-completed and cash-in-bank sits at 68 days. The contract says 30. That gap is silently killing your business — and most of it is preventable.

Where the days actually go

Pull a sample of slow pay apps from your last six months and you’ll see the days cluster into about five buckets:

  1. Build-the-pay-app drag (5–10 days). Reconciling progress against schedule of values, chasing field hours, hunting for CO approvals to roll in.
  2. Internal review (2–5 days). PM-to-controller-to-CFO sign-off.
  3. GC review (10–20 days). Their PM checks against their progress numbers, often disagreeing with yours.
  4. Owner review (10–15 days). Often the actual blocker. Owner may also dispute progress.
  5. Treasury cycle (5–15 days). When the check actually cuts.

You can’t fix the owner’s treasury cycle. You can fix buckets 1, 2, and 3 — and often pull 20+ days out of the cycle.

The pattern that creates the leak

The story is almost always the same:

  1. Field hours don’t roll into job cost in real-time — they sit in someone’s timesheet until end of month
  2. CO requests live in email — when it’s time to build the pay app, half are unsigned and the PM has to chase them down
  3. Progress is estimated, not measured — your PM eyeballs "75% on the slab pour" and the GC says 60%, and now you’re negotiating instead of billing
  4. Lien waivers get assembled at the last minute — sometimes blocking submission for days
  5. The pay app itself is built in a spreadsheet — copy-pasted from last month, edited by hand, error-prone

Every step in that chain is fixable. None of them are fixed by working harder.

What “fast pay app” actually looks like

The trades we see hitting 30-day cycles consistently share a few patterns:

1. Daily reports that roll into job cost the day they’re filed

If your foremen file daily reports on mobile, those hours should hit your cost system that day — not at the end of the month when accounting reconciles. Same for material deliveries and equipment time. The pay app shouldn’t be a data-entry exercise; it should be a snapshot of data that’s already there.

2. CO requests that don’t graduate to "approved" can’t roll into the pay app

Pending COs don’t belong on a pay app — but the bid for them belongs in your forecast. If you can’t see your pending CO pipeline at any moment, you’re flying blind on what next month’s cash will look like. The teams that get this right have one record per CO request that progresses through states the PM can see and the controller can trust.

3. Progress measured in artifacts, not estimates

If the GC is going to disagree with your %-complete, the negotiation goes faster when you can point at: photos from this week’s daily reports, delivered material, completed punch items, signed-off RFIs. "We’re 75% because here’s the photo log of the work" is a different conversation than "we’re 75% because trust me."

4. Lien waivers and conditional releases pre-staged

The first month a new GC is on your roster, the lien-waiver/conditional- release format is a fire drill. Six months in, it should be a template that auto-generates with the pay app. If yours isn’t, your PM is doing rework every single submission.

5. The pay app is generated, not authored

G702 and G703 should generate from your job-cost data, not be hand-built in Excel and copy-pasted. Every hand-built pay app is a calculation error waiting to happen — and in this industry, calc errors get found by the GC and they cost you days of back-and-forth.

What we built into Biltix

A few of the patterns we baked in directly because of the above:

  • Field-to-cost in one hop — daily report hours roll into job cost the moment they’re filed, no monthly reconciliation
  • CO lifecycle tracking — every request in one place, statuses the controller can trust, pipeline view of what’s pending
  • AIA G702/G703 generation — from your actual progress data, with CO impact baked in
  • Retention tracking by job and GC — you always know what’s aging where, and how much
  • Lien-waiver and conditional-release templates — per-GC, auto-generated, pre-staged

The 68-to-30-day jump isn’t a fantasy. We’ve watched trades get there inside the first quarter of switching workflows.

If you want to see what your pay-app cycle would look like with this kind of tooling, we run free 30-minute working sessions on your real numbers. Book one here.

Early access · By invitation

Reserve your spot. We’re onboarding new shops in waves.

Join the waitlist to lock in early-access pricing and a 30-minute working session on a real bid from your shop. We onboard new trade contractors in weekly cohorts — your spot opens when we reach you in line.