Why your jobs aren't as profitable as you think
By Bailey Holdsworth, founder
26 August 2026 · 8 min read
Your jobs look profitable because you only find out the real number after the job is finished. By then the hours are spent and the supplier bills have landed. Margin leaks from six places: unbilled variations, travel, rework, quoting time, materials creep and unlogged hours. The fix is visibility - track costs against the invoice value while the job runs.
Plenty of trade businesses are flat strap all year and still finish up wondering where the money went. The work's there, the invoices go out, but the profit never quite shows up. It's almost never one big thing - it's small leaks across every job that you only notice once it's too late to fix.
If you have ever typed 'why is my tradie business not profitable' into your phone at nine o'clock at night, this is for you. The short version: the money leaks out in small amounts, from six places, while the job is running. Below is where it goes, what it does to a real job, and how to see it before the last invoice.
The end-of-job surprise
The core problem is timing. Plenty of tradies only find out whether a job made money weeks after it finished, once the invoices are reconciled and the supplier bills have landed. By then the job's done - you can't un-spend the hours or claw back the materials. Knowing your numbers after the fact is just record-keeping; knowing them during the job is what actually protects your margin.
Here is the pattern. You quote a job at a price that should make money. The client says yes. Work starts, things come up, you sort them, the job finishes and everyone is happy. Then the supplier statement lands, the apprentice's hours get added up, and the profit you were counting on has gone somewhere. Nothing went wrong. Nobody stuffed up. The job just cost more than anyone was tracking.
Where the margin actually leaks
- Cost creep: a few extra trips, a bit more material, an extra half-day - each one small, all of them adding up
- Unbilled variations: the client asks for "just one more thing" and you do it without writing it up or charging for it
- Labour blowouts: the job runs days longer than you quoted and nobody clocked it until payday
- Underquoting: the quote never covered the real cost in the first place (more on that below)
- Leaky payment terms: money owed sits unpaid while you carry the costs - our guide on progress claims and payment stages covers the fix
Where the money actually goes: the six leaks
The list above is the short version. Here is each leak in more detail: what it looks like when you are standing on site, and the habit that catches it. You will recognise most of them from last week.
| Leak | What it looks like on site | How to catch it |
|---|---|---|
| Unbilled variations | "Can you just move that powerpoint while you're here?" You do it, the client is rapt, and it never makes it onto an invoice. | Price it before you do it, get a yes in writing, add it to the job value the same day. |
| Travel and callouts | The trip back for the part you didn't have. The run across town between jobs. The Saturday callout you never charged for. | Put a travel line in every quote. Log the trip against the job when it happens, not from memory on Sunday night. |
| Rework and callbacks | The door that drops. The tap that drips. The wrong stock delivered, so the set-out gets done twice for the same price. | Log callback hours against the original job so you know what it really cost. If a supplier caused it, chase them for it. |
| Quoting time | Two site visits and an evening on a written quote for a job you didn't win. | Track quoting hours. Build them into your charge-out rate so the jobs you win carry the ones you don't. |
| Materials creep and waste | An extra pack of fixings. Another trip for one length of timber. The offcuts in the skip. None of it in the quote. | Log every receipt against the job the day you buy it. Compare the running material total with the quoted amount. |
| Apprentice and subbie hours not logged | The apprentice starts early to unload, the subbie stays back to finish, and nobody writes it down. | Everyone on site logs their own hours against the job, daily, from their own phone. |
None of these are big on their own. You will recognise every one of them from a real job.
Notice that every catch in the right-hand column is the same habit: write it against the job on the day it happens. Not the end of the week, not when the invoice goes out. The day it happens.
What two small leaks do to a real job
Take the deck from our job costing guide. Quoted at $14,000 ex GST. Materials come to $5,200. You and your apprentice put in 90 hours at a true cost of $70 an hour, which is $6,300. Hire and tip fees add $400. Total cost $11,900, profit $2,100, a margin of 15%. On paper that is a good job.
Now add two leaks that turn up on plenty of decks. Halfway through, the client asks for a step down to the lawn and a short handrail. The timber and fixings come to $600. You do it, because they are good people and it is a small thing, and you never write it up. Then the apprentice comes in on Saturday morning to finish the screening, six hours, and it never goes on a timesheet.
The same deck with two leaks
- Quote ex GST
- $14,000
- Materials
- $5,200
- Labour: 90 hours x $70
- $6,300
- Hire and tip fees
- $400
- Cost as quoted
- $11,900
- Unbilled variation: step and handrail materials
- + $600
- Unlogged hours: 6 x $70
- + $420
- Real cost
- $12,920
- Real profit: $14,000 - $12,920
- $1,080
- Real margin: $1,080 / $14,000
- 7.7%
Two small favours took the margin from 15% to 7.7%. That is $1,020 gone - nearly half the profit - and it never shows on the invoice.
Write that variation up on the day and the picture flips. Bill the step and handrail at cost plus your margin and the extra work adds to the profit instead of eating it. Log the Saturday and you at least know the deck took 96 hours, not 90, so the next one gets quoted right. The leak is not the extra work. The leak is the extra work nobody wrote down.
And that is a job that went well. The job costing guide shows what happens to the same deck when the hours blow out to 120: the profit is gone entirely, and if the variation and the Saturday are on top of that, you paid to build it.
Busy is not the same as profitable
A full diary feels like success. It is not the same thing. If every job leaks a little, more jobs means more leaks, and the bank balance stays flat while you work harder. Turnover is what goes through the account. Profit is what stays in it. A flat-out year on thin jobs can leave you with less than a quieter year on the right ones.
The fix is not more work. It is knowing which jobs make money and which ones only keep you busy, then chasing more of the first kind and either pricing the second kind properly or letting them go. You cannot do that from a bank balance. You can only do it from a per-job number.
How to catch it early
The fix isn't working harder or quoting higher across the board - it's visibility. When you can see costs versus the invoice value on a job live, the problems announce themselves while you can still do something: pull a stage back into line, write up that variation, or have the awkward conversation before you've eaten the cost.
- Set the invoice value (or quote total) on every job from day one
- Log labour and material costs against the job as they happen, not at the end
- Watch the profit figure move - if it heads south, you find out today, not next month
- Bill every variation in writing, the day it comes up
Two of those habits do most of the work. Setting the job value on day one gives you a target. Logging costs as they happen, from the phone on site, gives you the running total. The rest is looking at the gap between them before it closes.
How to see it before the job ends
Start with the job you are on now. Put the quote, the materials, the hours and your true hourly cost into the job profit calculator below. Then add the extras you usually forget - the callout, the extra pack of screws, the apprentice's Saturday - and watch the margin move. If you are not sure what your true hourly cost is, the charge-out rate calculator works it out from your wage, your overhead and the hours you actually bill.
The calculator shows one job, once. Live job costing shows every job, every day. In TrackYaTradie you set the invoice value on the job, everyone logs materials and hours against it from site, and the profit figure updates as you go. When logged costs reach 85% of the invoice total the job is flagged 'Profit at risk' on your dashboard and you get a notification, so you find out while there is still 15% of the job's value in play, not after the final invoice. You can change the warning level in Settings > Notifications to suit your own margin.
That is the whole difference. The same leaks happen either way. With live tracking you see the variation that has not been billed while the client is still standing next to you. Without it you see it in the bank balance months later, when there is nothing left to do about it.
Quote it right in the first place
Some jobs were never going to make money, because the quote never covered the real cost. Our guide on how to quote a carpentry job walks through the build-up: nail the scope, do a real take-off, cost labour at your true hourly rate, spread the overhead, then add margin on top. The method is the same whether you swing a hammer or pull cable. Job costing tells you whether the quote was right. The next quote is where you use what it told you.
What a healthy margin looks like
What counts as a good margin depends on your trade, your turnover and whether your own wage has come out before you measure. Our guide on what is a good profit margin for a tradie covers gross versus net, markup versus margin, and what the ATO's small business benchmarks say for each trade. What matters for this article is the gap between the margin you quoted and the margin you banked. If that gap is wide, the six leaks above are where the difference went.
None of this needs an accountant or a spreadsheet you'll stop updating by week two. It needs the numbers in front of you while the job's running. That's the whole idea behind live job costing - and the reason a tool that tracks profit per job in real time can pay for itself the first time it stops you eating a blown-out job. The same approach works across the trades; see how it looks when it's built for electricians.
Questions
Why am I busy but broke?+
Because turnover and profit are different numbers. A full diary means money is going through the account, not that any of it is staying there. If every job leaks a little in unbilled extras, unlogged hours and travel nobody charged for, more jobs just means more leaks. Cost each job against its invoice value and you will find the work that pays and the work that only keeps you busy.
Should I track profit per job or per month?+
Both, but per job comes first. A monthly figure tells you whether the business made or lost money; it cannot tell you which job did it. Per-job costing shows you which types of work, which clients and which quotes are the problem, and that is what you can act on. Once every job is costed, the monthly picture takes care of itself.
How often should I check job costs?+
Every time something is spent. Log materials the day you buy them and hours the day they are worked, then look at the profit figure whenever you open the job. On a live job that means a glance most days. Checking once at the end tells you what happened. Checking as you go lets you change it.
Does GST count as profit?+
No. GST is a broad-based tax of 10% on most goods, services and other items sold or consumed in Australia. You must register once your GST turnover reaches $75,000. Once registered, you include GST in the price of your taxable sales, put aside the GST you collect so you can pay it to the ATO when you lodge your activity statement, and you claim GST credits for the GST included in the price of your business purchases. Work every job value and every margin on ex-GST figures. The GST was never yours.