How Do We Make Money? Getting Profit by Job and by Customer You Can Trust
July 14, 2026
The problem: You can say what you billed last month, but not which customers and jobs actually carried the margin.
The solution: Connect the job, the labor, and the invoice into one picture so profit by job and by customer is something you look up instead of rebuild.
The math
A $9M contractor running 18 percent of its work at near-zero margin is putting roughly $1.6M of revenue through the business for almost nothing, tying up crews that could be on work that pays.
Ask most owners how their business makes money and you get a real answer, just not the one that helps. They can tell you revenue by month, revenue by division, maybe gross margin for the year. What they usually cannot tell you is which specific customers and which specific jobs produced that margin, and which quietly consumed it.
That gap matters because you cannot do more of what pays if you do not know what paid.
Revenue is not the same as profit
Revenue is easy to see. It arrives in one system, it is one number, and everybody watches it.
Profit by job is hard to see because it is assembled from pieces that live apart. The quote sits in one place. The hours sit in a time app or on paper. Materials sit with the supplier invoices. The change order sits in somebody's email. Overhead sits in an allocation nobody has revisited in three years.
To answer "did this job make money" you have to gather all five. Doing it once, carefully, for one job takes an afternoon. Doing it for every job, every month, is a full-time role nobody has hired.
So it does not get done. The business runs on the number it can see, which is revenue, and hopes margin follows.
The part that costs real money
Here is the trap. Work that loses money does not announce itself. It looks like work. Crews are busy, invoices go out, the customer is pleased, and the phone rings again next quarter.
Without job-level profit, the natural response to a busy year is to chase more of the same. If a meaningful slice of that work is at or below break-even, chasing more of it makes the problem larger, not smaller. You add revenue, add crew, add stress, and the bank balance does not move the way the top line suggests it should.
That is the quiet version of this failure, and it is the common one. It rarely shows up as a crisis. It shows up as a business that feels busier every year and no more profitable.
A look at a $9M specialty contractor
Take a specialty contractor doing about $9M a year, with roughly fifty people, running on accounting software and a set of spreadsheets that one person maintains.
They know their annual gross margin. They do not know it by job. Connect the quote, the field hours, the material invoices, and the billing into one picture, and the shape of the business would change on paper without changing at all in reality.
You would not be surprised to find something like 18 percent of jobs, by revenue, coming in at close to zero margin. That is roughly $1.6M of annual revenue moving through the business and leaving almost nothing behind. It would rarely be random. Typically it clusters in one job type the business drifted into over several years because it was easy to win, and it was easy to win because they were the cheapest bidder, and they were the cheapest bidder because the original estimate was never corrected for how long that work actually took.
Two customers would likely account for most of it. Neither is a bad customer. Both are being served at a price set years earlier against a cost the business never measured.
The response need not be dramatic. Reprice that job type, keep one of the two customers at the new number, and let the other go to a competitor. The crews that come free go onto work that is already earning well. Revenue would dip slightly the following year. Profit would go up.
What it takes to answer the question properly
- Join the job to its costs. The quote, the hours, the materials, and the invoice need to be connected to the same job, automatically, not reconciled by hand at month end.
- Get labor time to the job level. This is the piece most businesses are missing, and it is usually the largest cost on the sheet.
- Make overhead allocation explicit. It does not have to be perfect. It has to be written down, consistent, and revisited when the business changes shape.
- Automate the assembly. An answer somebody has to build by hand is an answer you will get four times a year. An answer that assembles itself is one you will actually use to make decisions.
- Then look by customer, not just by job. Job-level margin tells you what to price. Customer-level margin tells you who to keep.
The takeaway
Knowing how you make money means knowing it at the level you can act on: this job, this customer, this type of work. Once the information behind those jobs is connected and the assembly happens on its own, the question stops being a research project and becomes something you check. That is when you can start doing more of the work that pays and less of the work that only looks like it does.
Common questions
How do we make money, by job and by customer?
- You answer it by tying every cost to the job and customer it belongs to, which most contractors cannot do with confidence. A contractor running a meaningful share of its work at near-zero margin is putting large revenue through the business for almost nothing, tying up crews that could be on work that pays, and the only way to see it is profit you can trust at the level of a single job and a single customer.
Why can't QuickBooks show me profit by job I can trust?
- It can hold costs against a job, but only what someone codes to it, and it never sees the field hours, the change, or the supplier invoice until they are keyed in by hand. That is why the job-cost report is usually late and roughly right, which is not good enough to act on.
Where would we start?
- With one cost type tied cleanly to jobs, usually field labour, rather than trying to perfect everything at once. A narrow view you can trust beats a complete one you cannot.
Related reading
What Overtime Actually Costs a Construction Contractor Once You Add Up the Year
Why a $12M contractor never sees the annual cost of overtime, and what the premium, the lost output in long weeks, and the rework that follows add up to.
Crew Productivity for a General Contractor: Which Crews Actually Produce Margin
Why a $12M general contractor cannot say which of its six crews produce margin, and what comparing margin per crew hour across similar jobs would reveal.
Buy or Rent: How an Excavation Contractor Can Tell Which Machines Are Worth Owning
Why an $11M excavation contractor cannot say how many hours a machine actually works, and what utilization by machine would settle about buying or renting.
What a Claim Actually Costs a Trucking Carrier Beyond the Premium
Why a $13M carrier cannot say what a single claim costs beyond the deductible, and what counting downtime, admin time, and premium increases would show.
Every business can find 20%
Pick the three leaks you recognize, and we’ll come back with what they typically cost a business your size, in dollars.
Would rather just talk? Text us, hello@ondework.com, or the contact form.