Why most contractors fail at Profit First
The standard 5-bucket book example uses a service business with low cost of goods. Contractors aren't that. Half of every deposit might be materials you already paid for or are about to pay for. Run the standard percentages on gross deposits and you'll starve your OpEx bucket in 60 days.
The fix isn't to skip Profit First. It's to run it on the right number — and to handle job deposits and materials differently from labor revenue.
Step 1: split gross from "real revenue"
Real revenue = total income minus pass-through materials and major subcontractor costs. For contractors that's usually 50–70% of gross. Allocate bucket percentages on real revenue, not gross. Every Profit First calculation downstream uses this number.
Step 2: starting bucket percentages for contractors
These are starting allocations on real revenue, not gross. We adjust quarterly based on your actuals.
| Bucket | Solo owner | 2–5 crew | 6–15 crew |
|---|---|---|---|
| Profit | 5% | 5% | 10% |
| Owner's Pay | 50% | 35% | 20% |
| Tax | 15% | 15% | 15% |
| Payroll | 0% | 30% | 40% |
| OpEx | 30% | 15% | 15% |
Payroll is its own bucket for contractors. It's the single most predictable expense you have, and the one that destroys cash flow when it isn't pre-funded.
Step 3: the 5 accounts you actually open
- Income — every deposit lands here. Nothing else.
- Materials Pass-Through — job deposits and material reimbursements move here on receipt. They never touch the bucket math.
- Payroll — pre-funded every 10th and 25th. Crew gets paid out of this no matter what the week looks like.
- Tax — quarterly federal + state estimated tax.
- OpEx — trucks, insurance, fuel, software, marketing.
Profit and Owner's Pay live in two more accounts at a different bank (the friction matters — see below).
Step 4: the 10/25 rhythm
Twice a month, on the 10th and 25th, you (or we) move money from Income to every other bucket using your current percentages. Five minutes. The rhythm is the point — daily fiddling kills the system, monthly is too slow to catch a problem.
Step 5: separate-bank trick for Profit + Owner's Pay
Keep Profit and Owner's Pay accounts at a different bank from your operating accounts. No debit card. No online transfer link to operating. The 60 seconds of friction is what stops you from raiding the buckets when a truck breaks down.
Job deposits — the contractor curveball
When a customer pays a 50% deposit on a $40k job, that money isn't yours. Drop it in the Materials Pass-Through account, pay the supplier from there, and only the labor portion moves into Income for the Profit First math. Bucket-allocating a job deposit on day one is how shops accidentally spend material money on payroll.
Quarterly true-up
Every 90 days, look at:
- Did OpEx run out before payday? Raise prices, cut a category, or temporarily lower Profit %.
- Did Profit grow faster than expected? Take a quarterly distribution — that's the point.
- Did Owner's Pay feel tight? Bump it 2 points and re-run for a quarter.
Profit First is a feedback loop, not a contract. The percentages move; the rhythm doesn't.
What this looks like after 12 months
Contractors who actually run this — separate accounts, real-revenue math, the 10/25 rhythm — usually report three things by the one-year mark:
- No more "can we make payroll this week?" calls.
- A real Profit bucket with three months of expenses sitting in it.
- A salary they actually pay themselves on a schedule, not whatever's left.
We wire this up for contractors across California and Nevada — payroll funded from the Payroll bucket, taxes set aside automatically, owner pay running on a steady cadence. You don't babysit QuickBooks. You don't math it twice a month. You get the buckets the book promised, with the contractor-specific tweaks that make them work.

