If I ask a business owner how they're doing, the answer is usually a revenue number. Sales are up, or they're flat, or they're down a little. That number tells you something, but it doesn't tell you the thing that actually determines whether the business is healthy: which jobs made money and which ones cost you money to complete.
I see this constantly with owner-operated businesses that run on jobs, projects, or work orders rather than a single flat product. The business can be growing on paper while a third of its jobs are quietly bleeding margin, and nobody notices because the only number anyone tracks is the total. Revenue can hide a lot of bad jobs.
It's worth separating the two words, because they get used interchangeably and they're not the same thing. Revenue is what a job billed. Profit is what's left after every hour, every material, and every overhead dollar it actually consumed. A job can be the biggest invoice you sent all month and still be the one that made you the least money, once everything it cost to deliver is counted against it. Size tells you nothing about whether a job was worth taking.
Why this stays hidden
Most bookkeeping is built around the business as a whole, not around individual jobs. You see total revenue, total payroll, total materials, and a monthly or quarterly profit figure. That's fine for taxes. It's not fine for running the business, because it averages your best jobs and your worst jobs together and shows you the middle.
A job that ran long, used more materials than quoted, or pulled a crew off another job to finish on time can lose money and never show up as a problem, because the loss gets absorbed into the total before anyone looks closely.
How to actually find out
Break revenue down by job, not by month.
Every job should have its own line: what it was quoted at, what it was invoiced for, and what it actually cost to complete. If your current system can't produce that, that's the first thing to fix, before anything else on this list.
Track labor hours against the job, not the crew.
Total payroll tells you what you spent on people. It doesn't tell you whether a specific job ate twice the labor hours it was quoted for. Time needs to be logged against the job it was spent on.
Attach materials and equipment cost to the specific job.
Not an average cost per job type. The actual receipt, tied to the job it was bought for. Estimated costs make every job look the same. Actual costs are where the surprises live.
Give every job a fair share of overhead.
Rent, insurance, admin time, vehicle costs. These don't disappear just because they're hard to assign. A job can look profitable on labor and materials alone and still be a loss once its share of overhead is counted.
Compare jobs to each other, not to the monthly average.
Once you have real numbers per job, line them up side by side. You're looking for the pattern: which job types, which crews, which clients consistently run thin. That pattern is more useful than any single month's total.
Once you can see this job by job, the decision changes. You're no longer guessing whether to raise prices or cut a service line. You know exactly which jobs to walk away from and which ones to do more of.
This is the piece I build for operations clients: a dashboard that pulls straight from the tools you already use and shows job-level profitability without asking anyone to change how they work day to day. If you already suspect a few of your jobs aren't pulling their weight, this is how you find out for certain.