How to see your profit by job, not just total revenue

Most owners can tell you their revenue last month. Far fewer can tell you which jobs made money and which ones lost it. That gap is where profit quietly disappears. If you want to see profit by job instead of one big revenue figure, you need to break the number apart and look at each job on its own. This post walks through why total revenue is misleading, what data you actually need, and how a simple dashboard surfaces the jobs that drain your margin.

Why total revenue lies to you

Revenue is a vanity number. It tells you how much money moved, not how much you kept. A $40,000 month feels like a win until you find out three big jobs ran over on labor and barely broke even.

Here is the problem. Total revenue blends everything together. Your best job and your worst job get averaged into one line. The losers hide behind the winners. You feel busy and profitable right up until cash gets tight and you cannot explain why.

Small shops feel this harder than anyone. One bad job is a bigger slice of the month. A single callback, a parts order that doubled, a tech stuck on site for three extra hours. Any of those can flip a job from profit to loss, and the revenue total will never tell you.

The fix is to stop looking at the top line alone and start looking at margin one job at a time.

What profit by job actually means

Profit by job is simple math done consistently. For each job, you take what you charged and subtract what it cost you to do the work.

A clean profit by job calculation pulls in:

  • Job revenue. The invoiced amount for that specific job.
  • Labor cost. Hours worked times the loaded pay rate for each tech on the job.
  • Materials and parts. What you actually paid, not what you marked it up to.
  • Subcontractor or rental costs. Anything you paid out to get the job done.
  • Direct fees. Permits, dump fees, equipment, travel if you track it.

Subtract those costs from the revenue and you have gross profit for that job. Divide profit by revenue and you have your margin. Do that for every job and the picture changes fast. You stop seeing a blur and start seeing a ranked list. The top jobs you want more of. The bottom jobs you need to fix or fire.

The data you need and where it lives

The good news is you are probably already collecting most of this. The data is just scattered. Pulling it into one place is the real work.

Most owner-run shops have the pieces in two or three systems:

  • Field service software holds the job, the invoice, and often the assigned techs and hours. Service Fusion is a common one in the trades.
  • Accounting software like QuickBooks holds the costs, vendor bills, and payroll.
  • Spreadsheets or notes hold the stuff that never made it into either, which is usually the costs that kill your margin.

The challenge is tying everything back to a single job. Labor needs to map to the right job. A parts receipt needs to land on the job it was bought for. If your costs float around loose, you cannot trust the profit number. So the first step is almost always cleaning up how costs get tagged to jobs at the source. Once the data is consistent, the math is easy.

If you want a deeper look at structuring this kind of reporting, our dashboards and reporting work is built around exactly this problem.

How a dashboard surfaces profit by job

You could run profit by job in a spreadsheet once a quarter. Most owners do not, because it is tedious and it goes stale the moment a new job closes. A dashboard solves both problems by pulling the data automatically and keeping it current.

A good profit by job dashboard does a few things well:

  • Pulls revenue and cost data on a schedule so the numbers stay live without anyone exporting reports by hand.
  • Calculates margin per job and shows it as both dollars and a percentage.
  • Ranks and flags jobs so your lowest margin work rises to the top where you will actually see it.
  • Filters by tech, job type, or date so you can spot patterns, not just one-off bad jobs.

That last point matters most. One bad job is bad luck. The same job type losing money every month is a pricing problem. The same tech running long on every visit is a training or scheduling problem. A dashboard turns a pile of jobs into a pattern you can act on.

This is the same approach behind every dashboard we build. Connect the systems you already use, calculate the number that matters, and put it somewhere you will look at it. You can see the broader business automation side of that work too, since clean reporting usually starts with cleaning up the data flow.

What owners do once they can see it

Visibility is only useful if it changes a decision. When owners can finally see profit by job, the changes are usually quick and concrete.

Some raise prices on a job type that always runs thin. Some tighten estimates because they were lowballing labor. Some catch that callbacks on one kind of work are eating the margin, then fix the root cause. A few realize a “good” customer has been their least profitable one for a year.

We have seen the same pattern in adjacent work. One HVAC company had 110 overdue maintenance visits that were sitting unseen in their system. Once those were surfaced and routed to the nearest truck, that was revenue they already owned and were leaving on the table. Profit by job works the same way. The money is already in your data. You just cannot act on what you cannot see.

If you also want the surfacing to trigger action on its own, like flagging a low margin job the moment it closes, that is where AI automation fits in on top of the reporting layer.

Start with one number

You do not need a giant project to begin. Pick one question. Which jobs lost money last month? Answer that honestly and you will already know more than most owners on your block.

From there, it is about making that answer automatic so you never have to dig for it again. We build dashboards for owner-run small businesses across Medina County and greater Akron, and profit by job is one of the most common asks. If you want to stop guessing and start seeing the real number, book a call and we will map out what it would take with the tools you already have. You can also browse more on the blog for related reporting ideas.

Frequently asked questions

What data do I need to calculate profit by job?

You need the revenue for each job plus its real costs. That means labor hours and pay rate, materials and parts, subcontractor costs, and any direct fees. Most of this already lives in your field service software or accounting tool. The trick is tying it all back to a single job ID.

Why does total revenue hide unprofitable jobs?

Total revenue blends your winners and losers into one number. A busy month can look great while a handful of jobs lose money on overtime, parts, or callbacks. You only see the damage when you break the number down job by job.

Can I track profit by job without expensive software?

Yes. If your jobs and costs are already in a system like Service Fusion or QuickBooks, a dashboard can pull that data and calculate margin per job automatically. You do not need a new platform, just a clean way to connect what you already have.

How often should I review profit by job?

Weekly is a good rhythm for most small shops. You catch a bad pattern before it repeats across the next month. Owners with high job volume sometimes check a live dashboard daily so nothing slips.

What is a good profit margin per job?

It depends on your trade and overhead, so there is no single answer. The point is to know your real number per job, see which jobs fall below your target, and fix the pricing or process behind the losers.

Let's find what to fix first

Book a short call and tell me where your time goes. I'll give you a straight answer on what's worth automating and what isn't.

Field Systems · Wadsworth, Ohio · Serving Medina County & Greater Akron