Job costing: margins, direct costs and costing settings
Read a job's revenue, materials, labor and margin, add direct costs like permits and subcontractors, and set optional mileage and commission costs.
- Owner
- Admin
- Accounting
On this page
Overview#
Every job shows what it made. Revenue comes from the invoice (before tax, after discounts). Costs come from materials used (inventory cost), purchase orders for the job (actual received cost), technician time from timesheets at burdened rates, optional mileage and commission, and direct costs the office adds. When a cost is unknown, TradesWork says so instead of showing a misleading margin.
Before you start#
The Job costing card needs costing.read (Owner, Admin, Accounting). It's hidden for other roles.
Adding and reversing costs and changing settings needs costing.manage (Owner, Admin, Accounting).
Per-person labor rates show only with payroll.rates (Owner, Admin).
Labor cost needs burdened rates set in payroll and approved timesheets.
Steps#
Read the job cost card#
Open the job. In the side column, find Job costing.
The headline says "This job made $X" (or "lost"), with the margin, or "Nothing invoiced yet", or "Margin unknown until every cost is known".
Rows: Revenue, Materials (expand for details), Labor (hours; expand for drive and on-job time), Mileage, Commission, Direct costs, Total cost and Gross margin.
Estimated vs actual compares the sold option (Sold) with Actual revenue, cost and margin.
Warnings tell you what's missing, for example "N material lines have no cost, so the margin is overstated." or "Labor includes time not yet approved."
Add a direct cost#
Open Add a direct cost.
Pick the Kind: Equipment rental, Subcontractor, Permit / fees, Materials (bought for the job) or Other.
Enter Description, Amount and Date, then click Add cost.
Reverse a direct cost#
Next to the cost, open Reverse…, write Why (kept on the record) and click Reverse.
The original stays visible, struck through, with the reason.
Post updated costs#
Costs post to the job's ledger when the invoice is approved. If costs change later, a Post updated costs button appears (with how the ledger and the job differ). Click it to bring the ledger up to date.
Set optional costs#
Go to Accounting › Job Costing.
In Optional costs, enter Mileage cost per mile ($) (for example 0.67, counting GPS trips during drive time to the job) and Commission (% of revenue). Leave blank to leave them out.
Click Save.
Settings that change this#
Accounting › Job Costing: optional costs and invoice review rules.
Settings › People › Payroll: burdened rates, which drive labor cost.
Pricebook › Services & Materials: item costs, used when stock has no average cost yet.
Tips#
Fix "no cost" materials in the pricebook or by receiving them on a PO. Otherwise margins look better than they are.
Approve timesheets promptly; unapproved time is shown but flagged.
Check Reports for job costing totals: gross profit, gross margin, materials and labor as a % of revenue, and revenue per labor hour.
Troubleshooting#
"Describe the cost" / "Enter an amount above zero" → fill both fields.
"A cost can't be dated in the future." → use today or an earlier date.
"{month} is closed. Date this today, or ask the owner to reopen {month} (with a reason)." → see Close and reopen accounting months.
"This cost was already reversed." → nothing to do.
Labor shows as unknown → someone on the job has no burdened rate → set it in payroll.
FAQ#
Why is labor a single total? Per-person rates are private. Only owners and admins see them.
Do costs go to QuickBooks? No. Job costing lives in TradesWork. QuickBooks gets invoices, payments and refunds.
Coming from ServiceTitan#
Same: job costing from materials, labor and other costs, with margin per job.
Different: costs that are unknown are shown as unknown, not zero. Direct costs are reversed with a reason, never edited.
Where it lived: ServiceTitan job costing reports and the job's costing view; the Job costing card and Accounting › Job Costing in TradesWork.
Related articles
- Correct an invoice with the job ledgerSee every financial entry on a job and correct a line on an invoice that already went out, with reversing entries and a reason.
- Review invoices before they postUse the invoice review queue to catch missing signatures, costs, POs and notes, low margins, big discounts and duplicate lines, then approve or return invoices.
- Close and reopen accounting monthsClose last month so nothing new posts into it, and reopen it (owner only, with a reason) when a correction must land there.
Still need help?
Ask the assistant a question about your account, or open a ticket and a person will reply.