Home Services & Trades

You Don't Actually Know If Your Last Job Made Money

"Small GC operation — how do you guys actually manage job costing and invoicing?" The contractor who posted that on Reddit went on to describe matching receipts to jobs by reading the job name he'd scribbled on each one. The best reply: "Every receipt tied to a job. Fuel, materials, and labor separated. Quick capture at point of purchase." Simple. Almost nobody does it.

Here's the uncomfortable truth most small contractors live with: at year-end, your CPA asks "which jobs were most profitable?" and you can't answer. You know some jobs lost money. You just can't prove which ones — so you can't stop bidding them.

Every article on this topic says the same two things: "use QuickBooks job costing" or "hire a construction CPA." You already tried QuickBooks and it didn't stick. And a construction CPA bills $200–300 an hour. Neither tells you how to set up a system simple enough that it actually runs. That's what this is.

Why QuickBooks job costing fails most small contractors

QuickBooks job costing works — in an office, run by someone who codes every transaction to a job and a cost type. That's the problem. Here's where it breaks in the real world:

The reframe: the failure isn't QuickBooks — it's asking the field to feed an office tool. Fix the capture (point-of-purchase, from a phone, one step) and QuickBooks job costing suddenly works, because the data finally arrives clean and on time. Capture first, categorize second.

The 4 numbers that tell you if a job made money

You don't need 40 cost codes to know if a job was profitable. You need four numbers, subtracted from revenue:

  1. Labor. Crew hours × loaded cost — wage plus payroll taxes, insurance, and workers' comp. The single most-underestimated number; the raw hourly rate hides 25–40% of true labor cost.
  2. Materials. Everything bought for that job. This is where the floating-receipt problem lives.
  3. Subcontractors. What you paid other trades on the job.
  4. Overhead allocation. A slice of your fixed costs — truck, fuel, insurance, software, your own admin time — spread across jobs. Skip this and a "profitable" job can actually be a loss.

Revenue − (Labor + Materials + Subs + Overhead) = real job profit. Track those four per job and you can finally answer the CPA's question — and stop re-bidding the jobs that bleed you.

The 3-tier system: pick the one your crew will actually use

Tier 1 — Free: envelope-per-job + 10-minute Friday review

The only field habit required: one envelope per job in the truck, every receipt goes in it at purchase. Once a week, one person spends 10 minutes entering each envelope into a simple per-job sheet (date | vendor | category | amount | job). Add a labor column from the week's hours. You now have profit-per-job in a spreadsheet — no software, no training. This alone puts you ahead of most contractors in your market.

Tier 2 — Automation-lite: receipt photo → auto-categorize

The crew photographs receipts; a tool like Dext, Hubdoc, or a Zapier/Make flow reads the vendor and amount and drops it into the right per-job tab. Time-tracking app hours flow into the labor column. You still review weekly, but you're not transcribing — and nothing depends on a receipt surviving two weeks in a hot truck. Roughly $20–60/month.

Tier 3 — Full automation: field-to-books, hands-off

Crew captures a receipt; OCR tags it to the job; time and sub invoices sync automatically; everything posts to QuickBooks job costing without a human retyping anything. A weekly dashboard flags each active job green/yellow/red on margin, so you catch a job going underwater while you can still adjust scope, change orders, or crew. This is custom — built to your tools, your cost types, your crew — and it's what makes Tier 1's discipline run on autopilot.

Comparison at a glance

Envelope
+ spreadsheet
QuickBooks
job costing alone
Buildertrend /
Procore
Automation
glue
Cost $0 Included $300–900/mo Built to scope
Crew effort Drop receipt in envelope High (they won't) High (logins) Snap a photo
Weekly office time 10–20 min 1–2 hrs 1 hr ~0 (review only)
Real-time margin alerts No No Partial Yes
Best for 1–10 employees, starting Has a bookkeeper Larger GCs Wants it automatic

The Monday-morning job-cost review

Whatever tier you run, the ritual is the same and it takes 10 minutes: every active job, every week, glance at the four numbers. Is labor tracking to estimate? Are materials over? Is the overhead slice covered? A job going red in week two is a problem you can still fix. A job you discover lost money at year-end is just a lesson you paid full price for.

Do this week: know your numbers by Friday

5 moves to start job costing now

  1. Put an envelope in every truck, labeled with the job. Tell the crew: every receipt, every time, in the envelope. That's the whole ask.
  2. Calculate your loaded labor rate. Take an hourly wage and add taxes, insurance, and workers' comp. Use that number — not the raw wage — in your costing.
  3. Set an overhead percentage. Total monthly fixed costs ÷ monthly revenue = the % to allocate to each job. Even a rough number beats zero.
  4. Build a per-job sheet. Columns: date, vendor, category (labor/materials/subs), amount. One tab per active job.
  5. Do your first Friday review. Enter this week's envelopes and hours for one job. Subtract from what you'll invoice. That number — profit or loss — is the one you've been guessing at for years.

Tier 1, running by Friday, for the price of a box of envelopes.

Frequently asked questions

Why does QuickBooks job costing fail for small contractors?

QuickBooks job costing isn't broken — it's misfit for how small contractors actually work. It assumes every expense gets coded to a job and a cost type at the office, by someone who knows accounting. But your materials get bought at Home Depot by a crew lead who isn't going to log into QuickBooks, your receipts float around the truck for weeks, and labor hours live on text messages. The features work; the data never makes it in clean or on time. The fix isn't more QuickBooks training — it's a capture system that works at the point of purchase, from a phone, with near-zero steps, so the data exists before it can get lost.

What are the four numbers I need to know if a job was profitable?

Labor, materials, subcontractors, and an overhead allocation. Labor is your crew's hours times their loaded cost (wage plus taxes, insurance, and workers' comp — not just the hourly rate). Materials are everything bought for that job. Subcontractors are what you paid other trades on it. Overhead allocation is a slice of your fixed costs — truck, insurance, software, your own admin time — spread across jobs, usually as a percentage of revenue or labor. Revenue minus those four equals real job profit. Most contractors track the first three loosely and skip the fourth entirely, which is why a job that "felt profitable" actually lost money once the truck and insurance were counted.

How do I do job costing if my crew won't use any system?

Make the system require almost nothing from them. The lowest-friction version: one envelope per job in the truck, and every receipt goes in it at the moment of purchase — that's the only field-crew habit you need to build. Then one person (you, a spouse, or a bookkeeper) does a 10-minute Friday entry from those envelopes into a simple per-job sheet. If even the envelope is too much, have the crew photo-text receipts to one number with the job name — capture beats perfection. The trap is asking field workers to categorize expenses or log into accounting software; they won't, and you'll be back to guessing. Keep their job to one step: capture. Categorization happens later, by one person, or by automation.

Can I do job costing if I'm on cash-basis accounting?

Yes. Job costing and your tax accounting method are separate things. Cash vs accrual changes when revenue and expenses hit your tax return; job costing is just tracking what each job cost you so you know which ones made money. You can run a perfectly good per-job profit tracker in a spreadsheet on cash basis — record costs as you pay them and revenue as you collect it, tied to the job. For day-to-day "did this job make money," that's plenty. If you want job costing to feed clean accrual reporting too, that's where a proper system and a little automation earn their keep.

What does automated job costing actually look like?

It removes the data-entry step that always breaks down. A typical build: the crew photographs a receipt, OCR reads the vendor, amount, and date, and it gets auto-tagged to the right job; time-tracking hours sync in with loaded labor rates; subcontractor invoices get matched to jobs automatically; and everything posts to QuickBooks job costing without anyone retyping it. On top, a simple weekly dashboard shows profit per job — green, yellow, red — so you spot a job bleeding margin while you can still do something about it. Jobs Done Labs builds this to your exact tools and crew during a free audit, covered by the $30K-recovered-in-90-days guarantee: if documented recovery doesn't reach $30K, you pay nothing.

Related reading: the real fix for the estimate time drain and taming subcontractor paperwork without another platform.

Find out which of your jobs are quietly losing money

Book a free 15-minute audit. We'll map your field-to-books flow — how costs get captured today, where they leak, and what automation would recover. No pitch, no pressure. You keep the map either way.

Book your free audit →