One of the more confusing experiences for a growing specialty contractor is looking at a profit and loss statement that shows a healthy month, while the bank account tells a completely different story. This isn't an accounting error — it's the natural result of how construction billing and cash timing actually work, and it's one of the most common reasons contractors underestimate how much working capital they need to keep growing.
Why profit and cash are different questions
Profit and loss statements answer "did this job make money." Cash flow answers "do I have the money in the bank right now to make payroll, pay vendors, and cover overhead." A job can be highly profitable on paper and still create a cash crunch if the timing is wrong — materials get paid for upfront, labor gets paid weekly, but the client payment isn't due for 30-45 days after invoicing.
- Payment terms mismatch. You're often paying vendors and crews faster than clients are paying you, which means growth itself — taking on more jobs — can create a cash squeeze even when every job is profitable.
- Retainage. On larger commercial jobs, 5-10% of every invoice may be withheld until project completion, sometimes months later. That's real earned revenue sitting outside your immediate cash access.
- Seasonal swings. Many specialty trades have a slow season where overhead continues but new job revenue slows, requiring cash reserves built during busier months.
A contractor can be running at a healthy 25% GP% and still face a genuine cash crisis if three large jobs all hit their heaviest cost phase in the same month that two big client payments are running late.
What a real cash flow forecast looks like
The useful version of this isn't a generic 13-week cash flow template — it's a forecast built from your actual job schedule and billing terms, projecting forward what's coming in and going out based on real data rather than averages.
1. Pull confirmed and projected inflows
Approved invoices with known payment terms, retainage release dates, and expected billing dates on active jobs based on their schedule and percentage of completion — not just "revenue we expect this month" as a lump sum.
2. Pull scheduled outflows
Payroll dates, vendor payment terms, and any recurring overhead, connected directly to JobTread's job cost data so upcoming labor and material spend is grounded in the actual jobs in progress, not historical averages.
3. Build a rolling forward view
A live 8-13 week forward view that updates automatically as new invoices, bills, and payroll runs are entered, so a cash crunch becomes visible weeks before it happens instead of showing up as a surprise low bank balance.
Why this matters more as you grow
The contractors who get burned by cash flow are usually the ones scaling fastest — taking on larger jobs, hiring ahead of demand, investing in equipment — precisely because growth increases the gap between when cash goes out and when it comes back in. Visibility into that gap early is what separates controlled growth from a cash crisis that forces reactive decisions.
Confused why a profitable month still felt tight on cash?
I build cash flow forecasting dashboards that pull live from JobTread and QuickBooks, so you can see cash crunches coming weeks out instead of finding out from your bank balance.