Busy all year and the accountant says margin is down
The gangs have been flat out. The diary has been full since March. Then the year end figures arrive and the margin is lower than last year. Which jobs caused it? Was it flat roofs, big re-roofs, the housing association repairs, or the insurance work? Nobody can say, because nobody looked at any single job once it was invoiced.
You have a feeling about which work pays. But a feeling is what you priced the jobs on in the first place.
Why job costs never come together
Every cost on a roofing job is recorded somewhere, just not in the same place. Labour is on timesheets or in the owner's head. Materials are on merchant invoices, often without a job reference. Scaffold comes on a monthly invoice. Skips, waste and extra visits are separate again. Pulling them together for every job by hand takes longer than anyone has.
- Labour days per job are not recorded, only days worked per person.
- Merchant invoices are coded to 'materials', not to a job.
- Scaffold extensions and skip exchanges are not tied back to the job.
- Return visits and snagging are never counted.
- Quotes are in one system and costs in another.
What not knowing costs
You keep pricing the jobs that lose money the same way. You cannot tell whether a surveyor consistently under-prices a roof type, or whether one gang takes longer on slate than another. You take on more of the work that feels busy rather than the work that pays. And when you want to raise prices, you have no evidence for where.
Pricing work that does not pay also has a knock-on cost. A gang tied up on a job that barely covers its costs is a gang not available for the better job you turned down that week because the diary looked full.
The job costing we build
- Each accepted quote becomes a job with its priced lines: labour days, materials, scaffold, skips, other.
- Gang leads record days on each job from their phone, with who was there. Day rates or pay rates come from your records.
- Merchant invoices are matched to jobs as they arrive, with a person confirming anything uncertain.
- Scaffold, skip and plant hire are linked to the job, including extensions.
- Return visits for snagging or call-backs are recorded against the original job.
- When the job is invoiced, the system shows quoted against actual for each cost line.
- Reports group jobs by type, surveyor, gang and client, so patterns show up across many jobs rather than one.
| Cost | Collected from | Compared with |
|---|---|---|
| Labour | Gang lead's day entries | Quoted labour days |
| Materials | Matched merchant invoices | Quoted materials |
| Scaffold | Scaffold register and invoices | Quoted scaffold line |
| Waste | Skip bookings and invoices | Quoted skips |
| Return visits | Logged against the job | Usually nothing, which is the point |
The figures come from your own records. We build the collection and the reports, and your accountant still owns the accounts.
What you can see afterwards
At the end of each job, you know whether it came in where you priced it. After a few months, you know which roof types, clients and sizes of job make you money. The surveyor sees how their prices turned out. And pricing conversations become about evidence rather than habit.
It also shows the smaller leaks, such as snagging visits that nobody charges for, which rarely appear anywhere else.
Is this your position?
- You find out about margin at year end.
- Merchant invoices are not coded to jobs.
- You do not know how many labour days a job actually took.
- Return visits are never costed.
- You price by feel and habit.