Ask a contractor what a job sold for and you get an exact number. Ask what it made and you get a range, a pause, or a story about the crew.
That is not carelessness. It is that the costs arrive at different times, from different places, and most of them never land anywhere they can be added up.
What has to be in the ledger
To know a job's margin you need every cost tagged to that job:
- Material — from the order, at real invoiced cost, not the estimate
- Labor — hours actually worked, at a real wage rate
- Subcontractors — as invoiced
- Processing fees — the card or ACH fee on every payment collected
- Commission — what the rep earned on it
Miss any one and margin is optimistic. Miss processing fees on a $30,000 roof paid by card and you are out several hundred dollars per job, quietly, forever.
The two that are almost always missed
Labor burden. The wage is not the cost. Payroll taxes and workers' compensation are the employer's expense and belong in job cost — but not in the employee's pay. Those are genuinely two different numbers, and using the wage for both understates every job with labor on it.
Commission's feedback loop. If commission is calculated on gross profit, and commission is also a cost that reduces gross profit, then a naive recalculation shrinks the commission each time it runs. It has to be excluded from the basis it feeds. This is the kind of bug that shows up as "the numbers drift" and takes weeks to pin down.
Overhead is not job cost
Rent, insurance, the office phone bill — these are real, but they do not belong against a specific job. Keep them separate. Gross profit is revenue minus job cost; net profit is what is left after overhead. Blending them produces a number that is neither and misleads on both.
Sales tax is not revenue
Tax you collect is money you owe the state. Counting it as revenue inflates your top line and your margin percentage, and the error is invisible until you remit. Revenue should be net of tax, with tax shown separately as the liability it is.
Why this matters more than a better sales month
A 3% margin error on a $2M year is $60,000 — roughly a truck, or a rep. Most contractors chase revenue because it is the number they can see. Margin is the number that decides whether the revenue was worth having.
The only way to know is to have every cost land in one ledger, automatically, at the moment it occurs — rather than reconstructing it in a spreadsheet in February.
