Why "Profitable" Jobs Still Go Broke (The Margin Leak Problem)
Here is a question that should be easy and usually is not: did you make money this year? Not "did the jobs finish" — they did. Not "were the clients happy" — they were. Did you make money. A lot of contractors cannot answer that with a straight number, and the ones who force themselves to answer it are often surprised, and not in the good direction.
That surprise has a name, even if nobody in the trade calls it this on purpose: a margin leak. Not one bad job. Not a client who stiffed you. A hundred small, quiet losses spread across a hundred good jobs, none of them big enough to notice on its own.
The job that taught me this
In 2024 I closed a $42,000 bathroom remodel here in Fort Worth. The bid said 30% margin. The job finished on schedule, the client was thrilled, and I moved on to the next one feeling good about the number. That is the part that should scare you more than a job that goes sideways — everything about this job looked right.
Three months later my accountant ran the real numbers. Not 30%. Twelve. A $7,500 gap between what I thought I made and what I actually made, on a job I would have told you was a win. I've told the full story of that job elsewhere — here I want to slow down on the part that matters most: where the $7,500 actually went.
It was not one thing. It was lumber runs I paid for and never wrote down. It was two separate Home Depot trips, cash out of my own pocket, that never made it into any job file. None of it was theft, none of it was a dramatic screwup, and no single receipt would have changed the outcome if I'd caught it. That is exactly what makes a margin leak dangerous — every individual piece of it is too small to trigger alarm.
Why a leaking job still looks profitable
A job leaks margin without ever looking broken because every signal you naturally check is a good-news signal. The contract price was solid. The job finished on time. Nobody called you back for warranty work. The client left you a good review. Every one of those things can be true on a job that is quietly bleeding, because none of them measure cost — they measure outcome and relationship, not money.
The number that would catch a leak — real cost against real contract price, updated as the job runs — usually does not exist anywhere until tax season, if it exists at all. By the time it does exist, the job is closed, the receipts are scattered, and the leak is a mystery instead of a fixable pattern.
Where the leaks actually come from
None of these will surprise you once you see them written down. That is the whole problem — they are obvious in a list and invisible in the middle of a workweek.
- The $40 receipt that never gets logged. A fitting, a box of screws, a return trip for the right size of something. Paid out of pocket, crumpled in a truck console, gone by Friday.
- The drive time nobody bills.A second supply run because the first order was wrong. An extra trip to the job because the client wanted to "just take a quick look." Real hours, real gas, no line item.
- The favor that never got invoiced."While you're here, could you also—" and you said yes because the client is good and the ask was small. Small asks add up to real hours over a job.
- Overhead that never made it into the bid. Insurance, the truck, software, your own time running the business — costs that are real every single week but rarely get allocated into what a job actually needs to clear.
Each one of these, alone, is nothing. A $40 receipt does not sink a $42,000 job. But a $40 receipt here, three hours of unbilled drive time there, and a few "quick favors" add up exactly the way mine did — quietly, and only visible once someone adds every job together.
Why it takes the whole year to notice
A margin leak is invisible for the same reason a slow leak in a tire is invisible — you are not checking pressure every hour, you are checking whether the truck still drives. Job by job, a leak looks like rounding error. It is only when you stack every job from the year side by side that the pattern turns from noise into a number, and by then the money is long spent.
This is also why the accountant conversation always lands the same way: not "here is one thing you did wrong," but "here is what a whole year of small things adds up to." My accountant did not find a mistake on that bathroom remodel. She found a pattern of small omissions that no one job made obvious.
The fix is not more discipline — it is catching the cost the moment it happens
I want to be honest about something: I am not a more disciplined person now than I was on that job. What changed is when the cost gets captured. Waiting until you have the willpower to write down every receipt at the end of a twelve-hour day is a losing bet — I made that bet for years and lost the same way most contractors do.
That is the actual argument for building Job Cost Pro the way I did. AI receipt scanning means the $40 fitting gets logged to the job the moment you snap it at the counter, not reconstructed from memory three months later. Voice-to-expense means a cost you notice on a drive back from the supply house gets said out loud and filed before you forget it existed. Neither of those requires more discipline than you already have — they just move the moment of capture to where the cost actually happens instead of a Sunday-night pile that never quite gets worked through.
Real margin, during the job — not three months after it

The other half is seeing the number while there is still time to do something about it. A live per-job profit and margin view means you are not waiting for a quarterly P&L or a year-end accountant call to find out a job is drifting from 30% toward 12%. You see it in week two, while you can still adjust the next bid, have the conversation with the client about scope, or simply start writing down the trips you've been letting slide. Read more on what job costing actually meansif that per-job number is new territory for you — it is the tool that turns "I think this job went fine" into an answer you can actually stand behind.
What to check on your own jobs
You do not need software to start finding your own leaks — you need to ask a harder question about jobs you already closed. Pull three jobs from this year that you would call "good ones." For each, ask: does every receipt from that job exist somewhere, tagged to that job, right now? Does every hour your crew spent on it show up on that job's ledger, including the extra trips? If a client got a "quick favor," is there any record it happened?
If the honest answer is no on any of those, you do not have a bad job — you have a margin leak you have not measured yet. That is not a guess about your business. It is the same gap my own accountant found on a job I would have sworn was clean.
A profitable year is a lot of profitable jobs, tracked the same way
A business does not go broke because one job lost money. It goes broke because thirty jobs each quietly gave back a few points of margin nobody was watching for, and the sum of thirty small leaks looks exactly like a bad year even though every individual job looked fine. The fix is not working harder or being more careful in the moment — it is making the small costs impossible to lose in the first place.
Job Cost Pro is free on the App Store — 3 projects, 50 receipts a month, full AI scanning. No credit card. Get it here.
FAQ
What is a margin leak in construction?
A margin leak is a small, easy-to-miss cost — an unlogged receipt, unbilled drive time, an unpaid favor, or overhead never built into the bid — that quietly reduces a job's real profit. No single leak is large, but a year of them can turn a business that closed profitable-looking jobs into one that is barely surviving.
Why does a job look profitable but the business is not?
Because the signals contractors check day to day — contract price, on-time finish, a happy client — measure outcome, not real cost. A job can hit every one of those marks while dozens of small, unlogged costs quietly eat the margin. The gap usually only shows up once every job for the year is added together.
How much money can margin leaks actually cost a contractor?
It varies job to job, but the pattern is real: on one $42,000 bathroom remodel, the difference between the 30% margin I expected and the 12% I actually made was $7,500 — almost entirely small, individually forgettable receipts and trips that never got logged.
How do I find margin leaks on jobs I already closed?
Pick a few jobs you'd call successful and check three things: does every receipt from that job exist and is it tagged to it, does every hour your crew spent show up on that job's record including extra trips, and is there any record of small favors you did for the client without invoicing them. Gaps in any of those are where leaks hide.
What is the best way to stop margin leaks without more paperwork?
Capture the cost the moment it happens instead of trying to remember it later. AI receipt scanning logs a receipt to the right job when you snap it at the counter, and voice-to-expense lets you log a cost out loud from the truck. Pairing that with a live per-job profit view means you catch a drifting margin in week two of a job, not at tax season.
Is tracking every small receipt really worth the effort?
On its own, one $40 receipt is not worth agonizing over. The problem is that "small and not worth it" is true of every individual leak and false of all of them added up. Treating small costs as worth logging — because they compound — is what separates a job that clears its real margin from one that quietly does not.