Revenue tells you how busy you were. Margin tells you whether it was worth it. Most shops know their revenue by job type to the dollar and their margin by job type not at all, because working it out means pulling invoices, supply house receipts, timesheets and payroll rates into a spreadsheet nobody keeps up after March.
Job costing in TradesWork builds the cost as the job happens, from records you already create: stock used, purchase orders received, time from job statuses. The margin is on the job page the week the job closes.
What goes into the cost of a job
The Job costing card on each job has four parts: Estimated vs actual, Direct costs, Ledger and Review flags.
| Cost | Where it comes from | When it's final |
|---|---|---|
| Materials from stock | Inventory used on the job, at the inventory cost (average or receipt) | When the stock is used |
| Materials not from stock | Invoice lines for materials or equipment, at the cost captured on the line | When invoiced |
| Purchase orders | PO lines for the job at actual received cost, de-duplicated against the two above | When received |
| Labor | Drive plus on-job time × each person's burdened rate | When the week's timesheets are approved |
| Mileage (optional) | Fleet trips during drive time × your cost per mile | When the trip is recorded |
| Flat commission (optional) | A percentage of revenue you set | When invoiced |
| Direct costs | Equipment rental, subcontractor, permits and fees, materials bought for the job, other | When entered |
Gross margin
Margin percent is that margin divided by revenue. Tax is left out of revenue because it isn't yours.
Why burdened labor matters
Wages are only part of what a tech costs. The Bureau of Labor Statistics measures what private employers spend per hour worked, and benefits are 30% of that total, on top of wages1.
Those are all-industry averages, not trade figures, and your workers' comp rate, vehicle policy and paid time off will move your number. The point stands: costing labor at wage alone overstates every job's margin. Set a burdened rate per person in payroll settings. Only owners and admins can see rates; technicians never do.
If anyone on a job has no burdened rate, labor shows as unknown and the margin shows a dash. That's deliberate. A margin that quietly treats someone's time as free is worse than no margin.
Free calculatorLabor rate & flat-rate price calculatorFind the hourly rate you need to charge to hit your profit goal, then price any job.Estimated vs actual
When a job comes from a sold estimate, the card compares the estimate's revenue and cost with the actuals. An example of how that reads, with made-up figures:
| Estimated | Actual | |
|---|---|---|
| Revenue | $9,400 | $9,400 |
| Materials and equipment | $4,100 | $4,350 |
| Labor | $1,150 | $1,610 |
| Direct costs | $0 | $275 (permit) |
| Gross margin | 44% | 34% |
The useful question isn't "did we lose money?" but "where did it go?" In this example: two extra labor hours and a permit nobody priced. Next time, the install estimate carries both.
Review flags before the invoice leaves
Job costing feeds the invoice review queue. An invoice gets a flag when:
- Margin is under your floor, 25% by default.
- A material has no cost, so margin can't be trusted.
- A discount is over 15% of the invoice.
- The customer PO is missing where one is required.
- There's no customer signature or no technician notes.
- There's a possible duplicate line.
Reviewers can approve flagged invoices in batches or return one to the tech with a note. An optional setting holds invoices back from QuickBooks until they're reviewed, so a mistake gets fixed once rather than in two systems.
A ledger that keeps history
Every job's money posts to an append-only ledger: revenue, discount, tax, payment, refund and cost entries. Nothing is overwritten. A correction is a reversal of the original entry plus a new one, each with a reason. Click Post updated costs when costs change after invoicing, such as a late supplier credit, and the difference posts as new entries.
Months can be closed. Only the owner can reopen one, and only with a reason. Integrity checks confirm the ledger matches the invoice, so the job page and the books agree.
Margin across the business
Five job costing metrics sit in the metric dictionary alongside revenue and close rate: Gross profit, Gross margin, Materials % of revenue, Labor % of revenue and Revenue per labor hour. Each can be filtered by business unit, job type, technician, campaign, marketing channel, branch or brand, and each opens to the jobs behind it. They need permission to see costs, so a CSR won't see them.
Reading margin by kind of work
Margins differ by kind of work, so compare like with like. A demand service call with a diagnostic and a capacitor carries little material and a lot of labor; its margin depends on how many billable minutes the tech spent per hour on the clock. A system replacement carries a large equipment cost; a few points of margin there is real money, and the usual leak is labor overrun or a forgotten permit. Maintenance visits on memberships often show thin margins on their own and earn their keep through the repairs they find, so judge them over the year, not the visit.
Filter the gross margin metric by job type and business unit, then open the rows for the bottom ten jobs. Patterns show up fast: the same tech, the same equipment line, the same neighborhood with long drives.
Where this falls short
ServiceTitan's job costing page describes margin that accounts for labor, performance-based pay, labor burden, equipment, materials and taxes2. TradesWork doesn't yet pull commissions and spiffs from performance pay plans into job cost; use the optional flat commission percentage as a stand-in. There's also no project budget, WIP schedule or progress billing, so multi-month construction jobs are better served by construction-focused software. For service, maintenance and residential replacement work, the job page has what you need.
Job costing in your first month
- Set a burdened rate for everyone who works on jobs
- Fill in costs on your top 50 price book materials and equipment
- Receive purchase orders against jobs, not just to the warehouse
- Set your margin floor and turn on review before QuickBooks if you want the gate
- Approve timesheets weekly so labor stops being provisional
- Look at revenue per labor hour by job type after four weeks
Footnotes
-
U.S. Bureau of Labor Statistics, Employer Costs for Employee Compensation, June 2026 (private industry). https://www.bls.gov/news.release/ecec.nr0.htm ↩
-
ServiceTitan, Job costing software feature page. https://www.servicetitan.com/features/job-costing-software ↩
