Your profit and loss statement shows how the whole company did over a period. It does not show which jobs made money, because it groups costs by type of expense, not by job. To see job profit, every direct cost (labor, materials, subs, equipment) has to be assigned to the right job and category, in the same structure as the estimate.
This is one of the most common things I hear from contractors: “My bookkeeper reconciles everything, and I still can’t tell which jobs are worth taking.” Both halves of that sentence can be true.
Your books and your jobs answer different questions
| Your books | Your jobs | |
|---|---|---|
| The question | How did the company do this month or year? | Did this job make money, and where did it move? |
| Grouped by | Account (materials, subcontractors, payroll) | Job, then phase and cost type |
| Kept right by | Your bookkeeper and CPA | Your operating process |
| Timing | Monthly close | While the job is running |
A sub invoice can be in the right expense account, paid on time and reconciled, and still have no job attached. Payroll can be correct to the penny while none of those hours show up on a job. The books are right. The job view is empty.
Four reasons job profit stays hidden
Labor stays in payroll
If crews clock in and out for payroll but not by job, labor never reaches the job report. For many contractors labor is the cost that moves most, so this one gap can hide the whole story.
Purchases are not assigned at the time
A card line that says a store and an amount does not say which job it was for, what was bought, or whether it was extra scope. If nobody records that at the time, someone guesses later, or nobody does.
Timing
Sub bills and supplier invoices arrive after the work. A job can look healthy simply because the bills have not shown up. Tracking what you have committed to a sub, not only what has been billed, closes that gap.
Overhead mixed with direct costs
If office rent, software and the owner’s truck land in the same buckets as job materials, gross margin per job is distorted. Keep direct job costs separate from overhead.
Gross profit first, net profit later
Most contractors should start with gross profit and gross margin per job: job revenue minus direct job costs. It is concrete and it is enough to compare jobs, job types and estimates.
Net profit per job also subtracts a share of overhead. That needs an allocation method your business has decided on, often with your CPA. Do not let the harder question stop you from answering the easier one.
What has to be true
- Every job-related cost is captured.
- Every cost lands on the right job, category and period, and change-order work is kept apart from original scope.
- Estimate and actual use the same categories, such as a short cost code structure.
- Someone reviews it weekly while jobs are running.
None of these require a new accounting system. They require routines and ownership, set up inside the systems you already use where those systems can support it.
A note on boundaries
I am not a CPA, accountant or tax advisor, and this is not accounting or tax advice. Changes to your chart of accounts, tax settings or how revenue is recognized should be confirmed with your own bookkeeper or CPA. What I build is the operating system that feeds them clean, job-level information.
Next step
Read the companion piece on estimate vs actual, or see how Job Cost Ready connects estimating, accounting, labor, expenses and subs so you can trust what each job cost.
