How much profit did I make on this roofing job?
You’ve finished the job. Invoice is sent. Customer’s happy.
But here’s the question most roofers never actually answer: Did I make any money on that job?
Not “did I get paid,” that’s different. I mean, after all the costs, all the hours, all the extras you threw in, what was actually left?
If you can’t answer that in about 30 seconds, you’ve got a problem. Because if you don’t know which jobs made you money and which ones didn’t, you’re flying blind. And you’ll keep quoting the same way, making the same mistakes, and wondering why you’re working your arse off for bugger all at the end of the month.
Let me show you how to actually work it out.
Start With What You Quoted
Pull up the original quote you gave the customer.
What did you say the job would cost?
- Labour: How many days? How many lads?
- Materials: What did you quote for tiles, felt, battens, flashing, fixings?
- Total price you charged
Write those numbers down. That’s your baseline.
Now Add Up What It Actually Cost You
This is where it gets uncomfortable. Because most roofers don’t track this properly, so they’ve got no idea what the job really cost them.
Here’s what you need to include:
Labour costs:
- How many days did it actually take? (Not quoted days. Actual days.)
- Did your lad call in sick and you had to get up the ladder yourself?
- Did the job run into a third or fourth day because something took longer than expected?
Take the actual days worked and multiply by your daily labour rate. If you’re paying a lad £180/day and you’re on the tools yourself, you need to cost your time too. Let’s say £200/day for you.
Materials costs:
- What did you actually spend on materials?
- Not what you quoted. What you actually paid.
- Did you have to return tiles because they were the wrong colour?
- Did you order extra because you underestimated?
- Did you use materials you already had in stock (you still need to cost those)?
Pull your supplier invoices. Add it all up.
Extras you didn’t charge for:
- Did the customer ask you to “just check the flashing while you’re up there”?
- Did you fix something that wasn’t on the quote because you knew it would cause problems later?
- Did you throw in extra tiles or felt because “it’s easier than arguing”?
Cost those. Even if you didn’t charge for them, they cost you time and materials.
Other costs people forget:
- Fuel to and from the job
- Waste disposal (skip hire, tip fees)
- Tool hire if you rented anything
- Insurance, van costs (yes, these count)
Do The Maths
Now you’ve got two numbers:
Total you charged the customer: £4,200
Total it actually cost you:
- Labour: 3.5 days @ £180/day = £630
- Your time: 2 days @ £200/day = £400
- Materials: £1,340 (including the return)
- Extras you didn’t charge: £280 (flashing repair, extra tiles in garage)
- Fuel, waste, other: £150
Total cost: £2,800
Profit: £4,200 – £2,800 = £1,400
Not bad, right?
But hang on. You worked 2 days on the tools yourself. That’s £400 of your time. If you take that out, your actual profit is £1,000.
Over 3.5 days of work (including your time), that’s £285/day.
Is that what you wanted to make? Or did you think this job was going to clear you £2k+?
What This Actually Tells You
Once you’ve done this for a few jobs, patterns start to show up:
Jobs always run over by half a day? Your quotes are wrong. You’re underestimating labour.
Materials always cost more than quoted? You’re either not tracking supplier prices or you’re absorbing waste you shouldn’t be.
You’re always doing extras for free? You need boundaries. “While you’re here” requests need to be quoted separately or you’re working for nothing.
Certain types of jobs always underperform? Stop quoting them so low. Or stop doing them altogether.
Why Most Roofers Don’t Do This
Because it’s uncomfortable.
You don’t want to know that the job you thought made you £1,800 actually made you £340.
But here’s the thing: if you don’t know, you’ll keep doing it.
You’ll keep quoting the same way. Keep absorbing the same costs. Keep doing extras for free.
And you’ll keep working 50-hour weeks wondering why there’s nothing left at the end of the month.
What To Do Next
Start tracking this. Properly.
After every job, spend 10 minutes:
- Quoted vs actual (days, materials, costs)
- What went over and why
- What you absorbed that you shouldn’t have
After 10 jobs, you’ll see exactly where the profit’s going.
Then you can fix it.
Most roofers are working twice as hard as they need to because they never look at what jobs actually cost them.
Don’t be one of them.
Want help working out where your profit’s actually going? That’s exactly what we do at TradeCS. We help UK trade businesses diagnose what’s broken, fix the biggest drains, and build systems that keep you profitable. Get in touch to find out more