The real margin on a job is worked out from three numbers that almost no small company has side by side: the hours that actually went into it, the materials booked against it, and the follow-up visits nobody invoices. Subtract those from what was invoiced and you have the direct margin. Allocating shared costs comes last and is the least important part.
The order is always the same: a code per job, a time clock that asks which job, delivery notes with a code, booking the work you do not invoice, a monthly close, and one table sorted worst to best. What sinks the project is never the technique, it is skipping the fourth step. Touch-ups, wasted trips and warranty visits are free on the invoice and very expensive on the margin, and they are exactly what nobody writes down.
Why don't the annual accounts answer this?
Because they add up and never separate. They tell you the year went well or badly, but not why, and above all not what to stop doing. It is a full-time score when what you need to know is which plays lose money.
One symptom repeats itself: the company invoices more than last year and earns less. When that happens there is nearly always one type of job eating the profit of all the others, and it tends to be the big one, the one people show off, the one that looks good. Nobody suspects it because the invoice is handsome.
Separating by job does not force you to change your invoicing software or set up cost accounting. It forces every euro and every hour to know where it belongs at the moment it happens, which is the only way to know without guessing three months later.
How do you calculate it, step by step?
- Give every job a short code. Four characters, along the lines of
25-14, generated the moment a quote is accepted. It is the peg everything else hangs from. - Make the time clock ask which job. At the start of the day you pick from a list of open jobs; if you go to two sites, the day splits. Two taps on a phone. If it takes more than ten seconds, nobody will do it a fortnight from now.
- Write the code on the delivery note before filing it. While you are looking at it, not at the end of the month. Anything with no destination goes into a common pot to be allocated later.
- Book the work you do not invoice. Touch-ups, warranties, wasted trips, the admin hour it took to reconcile the invoice. This is the column nobody records and the one that explains the hole.
- Close the month on the 5th and allocate shared costs. Unit, insurance, vehicles and admin, in proportion to booked hours. It is an approximation and it is worth saying so out loud.
- Sort the table worst to best. Job, quoted, invoiced, actual hours, materials, margin. No charts. The top three rows usually hold the decision.
Step two decides whether any of this works. I have watched immaculate systems die because the time clock asked for client, job, task and notes. People filled in the first field and made up the rest.
Which costs get forgotten almost every time?
The ones with no piece of paper attached. Nobody forgets materials, because they arrive with a delivery note. Everything else gets forgotten:
- The visits afterwards. A fault a fortnight later, a thermostat that will not behave, something that has to be moved back. Forty minutes and a van, three times over, is half a day for two people eating the margin of a mid-sized job.
- Travel. Two people driving forty kilometres for a nine-hundred-euro job is not the same as two people on the next industrial estate, and on the invoice it looks identical.
- The admin the job generates. Quoting, chasing the signature, reconciling the certificate, chasing payment. On small jobs this weighs more than on large ones, which is the opposite of what people assume.
- What you quoted and did not win. It does not belong against any one job, but it is worth counting separately. If quoting costs six hours and you win one in five, every job won carries thirty hours of office work.
The working rule: if somebody takes a van out or opens a laptop because of a job, that belongs to the job, invoiced or not.
How do I allocate what belongs to no job?
With a single criterion you stick to. These are the reasonable options and where each one breaks:
| Allocation basis | When it fits | Where it breaks |
|---|---|---|
| By booked hours | Labour-heavy work: installation, services, maintenance | Punishes long jobs with little material |
| By material cost | Supply-and-fit work where materials outweigh hours | A job with one expensive machine carries almost all the shared cost |
| By amount invoiced | When neither hours nor materials are reliable yet | It is circular: it assumes expensive means profitable |
| No allocation at all | The first year, to rank jobs against each other | Margins look optimistic; good for sorting, not for setting prices |
Starting without allocating anything is a legitimate decision and often the best one. It ranks just as well and saves you three meetings about how the rent on the unit gets divided.
When is it NOT worth doing?
- When every job is the same. If you sell one repeated service, the margin is known per unit and watching your buying price is enough.
- When it is two or three large projects a year. They are already tracked one by one on a spreadsheet. Building a system for three rows is expensive craftwork.
- When nothing will change. If the answer cannot move a price, a minimum call-out charge or a decision about what not to bid for, measuring is a hobby.
- When the time clock is not solved. Without hours per job there is no margin per job. That is the first project, and this is the second.
What mistakes get made most often?
- Asking for too many fields. Every extra field lowers the quality of the data. Job and hours. The rest is unnecessary at the start.
- Letting admin book hours from memory. Four days later nobody remembers where they were. Let the person who was there assign them, with a Friday reminder if days are missing.
- Chasing precision before habit. An approximate margin calculated every month is worth far more than an exact one calculated once.
- Looking only at the percentage. Five per cent of eighty thousand euros leaves more money than forty per cent of three thousand. Show margin in euros and in per cent, in separate columns.
- Closing the job too early. If the code closes when you invoice, later touch-ups have nowhere to land. Leave it open for booking another three months.
Frequently asked questions
Do you need an ERP to work out margin per job?
No. You need three things: a code per job, a time clock that asks which one, and the habit of booking the work you do not invoice. That fits in a small database connected to the invoicing software you already use. A full ERP also solves stock, purchasing and production, and if you do not have that problem you will be paying for it anyway.
How long before the numbers can be trusted?
Building it takes a few weeks, but the first two or three months of data are worthless: people forget to pick a job and the hours fall into limbo. The fix is a Friday afternoon reminder to anyone with unassigned days, and having that person assign them rather than admin doing it from memory. From the third month the table holds up.
How do you allocate costs that belong to no job?
In proportion to booked hours, which is the most defensible split when the business is labour-heavy. If the weight is in materials, allocate by material cost. What matters is not refining the split but always using the same criterion: what makes jobs comparable is consistency, not precision.
When is margin per job not worth calculating?
When every job is nearly identical and the margin is known per unit, when the volume is two or three large projects a year that are already tracked one by one, or when nobody intends to change anything with the answer. Measuring to confirm a suspicion that will not move a single price is wasted work.
The missing column is the work you never invoice
Hours and materials get recorded by almost everyone with a bit of discipline. What separates a credible margin from an invented one is touch-ups, travel and warranty visits: no invoice, no delivery note, and the most frequent explanation for why turnover went up and profit went down.
Start without allocating shared costs, with six columns and a table sorted worst to best. Once you have closed it on the 5th three months running, refine the allocation. Not before.
Do you know what you earn on each job, or only what you invoice in a year?
If hours travel on paper timesheets and delivery notes are filed by supplier, margin per job does not exist anywhere. It can be built on top of the invoicing software you already use, with the first table ready in a few weeks. Tell me how you record hours today.
See the dashboards service Let's talk about your case