Job costing is tracking every cost — labor, materials, subcontractors, equipment — against the specific job that generated it, rather than against the business as a whole. It sounds like accounting jargon, but the question it answers is the one every contractor actually cares about: did this job make money, or did it just move money through the business?
A business can show a healthy profit at the end of the year while several individual jobs lost money the whole way through, because a couple of well-priced jobs carried the loss and nobody could see it happening in real time. Job costing is what makes that visible before the job is finished, not after.
The three numbers that matter
For any given job, job costing tracks three things against the price you quoted: labor cost (crew hours at their real hourly cost, not just what you billed the client), material cost (what you actually spent, not the estimate), and subcontractor or equipment cost coded to that specific job rather than to a general "job costs" bucket.
Add those three up against the job’s revenue and you get a real margin — not the business-wide margin, the margin on this specific roof, this specific remodel. That’s the number that tells you whether your pricing on painting jobs is actually working, even if your pricing on remodels is subsidizing it.
Why "revenue minus total expenses" hides the problem
The simplest version of business math — money in minus money out — is true, but it answers the wrong question. It tells you whether the business survived the month. It doesn’t tell you whether the crew spent Tuesday on a job that was priced too thin, or whether a supplier’s price increase quietly ate the margin on every job using that material since March.
Those are the decisions job costing actually informs: which service lines to raise prices on, which suppliers are costing you more than the quote assumed, and which crews or job types are consistently running over their allotted hours.
Getting started without an accounting degree
You don’t need job costing on every job to get useful signal — even doing it for a month across your typical job types will show you which ones are quietly thin. The prerequisite is just that labor hours, material receipts, and subcontractor bills are captured against a job at the time they happen, rather than reconstructed later from memory.
That’s the part that usually breaks down: a receipt in a truck cupholder isn’t coded to anything. Bricklark’s crew app lets a worker photograph a receipt on site and attach it to the job in the moment, and clock-ins land on the job’s timesheet automatically — so the job-costing number is a byproduct of the day’s work, not a separate task someone has to remember to do.