The Gap Between Quoting and Knowing
Most trades businesses in Australia know what they quoted. Very few know what they actually made. This gap — between the margin you projected when you priced the job and the margin you actually achieved when the job was finished — is where a significant amount of profit disappears, quietly, over the course of a year.
Quoting software tells you what you intended to charge. Job costing tells you what actually happened. They are different tools that answer different questions. Plenty of trades businesses have sophisticated quoting systems and virtually no job costing. That's like measuring the start of a race but not the finish.
Why Most Trades Businesses Don't Know Their Real Job Margin
There are three structural reasons job costing is absent from most trades businesses:
- Quoting software doesn't equal job costing. Platforms like Buildxact, Simpro, and QuoteWerks create detailed quotes. But they show you what you planned to spend — not what you spent. Unless actual costs are tracked and matched to the job as work progresses, the quote is just a projection that was never tested.
- Materials tracking is patchy. Materials are often purchased in bulk, used across multiple jobs, or ordered through an account and reconciled weeks later. Without a clear process for matching material purchases to specific jobs, cost tracking is incomplete at best.
- Labour is estimated, not actual. Quotes are built on estimated hours. Actual hours worked are rarely tracked at the job level, particularly in businesses without timesheets or job card software. The difference between estimated and actual hours is often where margin goes — and it's invisible without time tracking.
The Three Elements of Job Cost
Every job has three cost categories. Getting all three right is what makes job costing meaningful:
- Materials. Everything purchased for the specific job. This includes materials ordered specifically for the job plus a fair allocation of any van stock used. The challenge: van stock purchases are often coded to a general materials account, not matched to individual jobs. Implement a process where tradespeople record what van stock they use on each job — even a simple photo of what was used is better than nothing.
- Labour. Not just the base wage. Actual labour cost per job includes super (11.5%), leave loading (17.5% on annual leave), and a pro-rata allocation of sick leave entitlement. Total employment cost for a trades employee earning $70,000 base is typically $82,000–$87,000 per year. That's the cost rate to apply to actual hours worked on each job.
- Subcontractors. Any subbies engaged for the specific job. This should be straightforward — the subcontractor's invoice is the cost. The key is matching the invoice to the job it relates to, not coding it to a general subcontractor account.
How to Set Up Xero for Job-Level Tracking
Xero supports job-level tracking through Tracking Categories. Here's the basic approach:
- Create a tracking category called "Job" (or "Project" or "Client" — whatever fits your language)
- Tag each customer invoice to the relevant job when you raise it
- Tag each supplier bill and purchase order to the relevant job when you enter it
- Run a Profit and Loss by Tracking Category report each month to see revenue minus direct costs per job
This gives you job-level gross profit in Xero without needing additional software. The limitation: labour cost isn't automatically allocated to jobs in Xero because payroll is processed as a total, not by job. You need to either enter labour cost manually per job, or use a job management integration that handles this.
Integrations That Actually Help
For comprehensive job costing, the practical answer is a job management platform integrated with Xero:
- Fergus — widely used by Australian plumbers and electricians. Handles quoting, job cards, time tracking, and materials tracking. Completed job reports show quoted vs actual margin. Syncs invoices and bills directly to Xero.
- ServiceM8 — suits small trade operations (typically under 5 field staff). Strong scheduling and invoicing, good Xero integration, lighter on job costing than Fergus but sufficient for many operators.
- Tradify — simple interface, popular with sole traders and small teams. Good Xero integration, reasonable job costing for businesses that don't need the full complexity of Fergus.
The integration means job invoices and purchase orders flow automatically into Xero — no double entry, no manual exports, and the data lands in the right accounts for accurate reporting.
The Overhead Allocation Question
Job costing covers direct costs — materials, labour, subcontractors. But your business has fixed costs that also need to be covered by jobs: rent, admin wages, insurance, vehicle running costs, accounting fees. These are overhead.
If your jobs cover their direct costs but not a share of overhead, you're not actually profitable — you just haven't attributed all the costs to the jobs that generated the revenue.
A simple overhead rate: divide total monthly overhead by total estimated billable hours per month. If your overhead is $15,000/month and your team generates 200 billable hours, your overhead rate is $75/hour. Add that to your direct labour rate when pricing jobs. This ensures every job contributes to overhead recovery — and when you win enough jobs, overhead is covered and the rest is profit.
Variations and How to Capture Them
Unbilled variations are one of the biggest margin leaks in Australian trades. Scope creep absorbed without documentation and billing can represent 5–10% of job revenue on complex projects.
The process that works: when scope changes, stop and raise a variation before doing the additional work. Get the client to approve it in writing (an email response is sufficient). Bill the variation as a separate line on the final invoice so it's clearly identifiable. In Xero or your job management system, variation revenue is tagged to the same job so the updated margin is visible in reporting.
Resistance from clients is far lower before the work is done than after. A variation conversation mid-job is normal. A surprise invoice line after completion is a dispute.
The Monthly Review Habit
Job costing data is only valuable if you use it. Build a monthly habit: review your five to ten largest completed jobs from the prior month. For each, compare:
- Quoted revenue vs actual invoiced revenue (were there variations? were they captured?)
- Quoted materials vs actual materials cost (did materials stay on budget?)
- Quoted hours vs actual hours (was the job estimated accurately?)
You're looking for patterns, not outliers. If you're consistently over on labour for a particular job type, your template needs adjusting. If materials are consistently over on a certain product category, your quoting rates for those materials are out of date. A monthly review takes 30–60 minutes and surfaces these patterns quickly.
What a 5% Margin Improvement Looks Like in Dollar Terms
On $1M in revenue, a 5 percentage point improvement in gross margin is $50,000 in additional gross profit annually. On $2M in revenue, it's $100,000. These are not trivial numbers for a trades business — they're the difference between a thin year and one where you're building equity, investing in the business, and taking a proper income.
The improvement typically comes from a combination of reducing underquoting (better quoting templates built from actual job data), capturing more variations, and reducing materials wastage. None of these improvements are visible without job costing data — which is exactly why most trades businesses don't make them.
True Tally: Xero setup and job costing for trades businesses
We set up Xero with job tracking for trades businesses across Victoria and help you build the monthly reporting habit that improves margin. Book a free call to talk through your setup.
Our Services Book a Free Call