Finance and Bookkeeping
Job Costing for roofing contractors
The price is agreed on one day. The costs land over the following weeks, from parties who bill on their own schedule. Margin is only knowable once the last one arrives.
What a closed job tells you
A cost picture per job with labour, material, subcontract and the smaller trailing categories in one place — disposal, equipment, permits, callbacks — rather than spread across accounts that only reconcile at the company level.
Costs attached to the job at the point of entry, which is the difference between a record and a reconstruction. Anything coded later is coded from somebody’s recollection of which roof a pallet went to.
And a deliberate close, with a margin attached and the date it was closed recorded, so the figure you price against is one that stopped moving rather than one that was caught mid-flight.
The price stops moving before the costs do
A roofing contract fixes a number early. From that moment the commercial outcome is settled on one side and entirely open on the other, and it stays open for longer than most owners account for.
The costs arrive from independent sources on their own timetables. The supplier bills against their cycle. The subcontractor invoices when they get to the paperwork. Disposal is charged by weight after the fact. Equipment comes off a rental account somebody closes late. And then, some weeks after everyone considers the job complete, a callback puts a crew back on the roof for half a day that nobody has anywhere to record.
So the gap is structural, not a symptom of disorganisation. What varies between companies is only whether the gap is watched. A company that closes a job when the crew leaves has a margin that excludes its own tail; a company that never closes jobs at all has no margin, only a running total that keeps drifting.
Roofing sharpens this because so much revenue is concentrated into a season. A decision about pricing made in spring is made against jobs whose trailing costs are still landing, which is exactly when the number is least settled and the pressure to commit to it is highest.
Construction work has its own recognised shape
The mismatch between when a construction price is set and when its costs conclude is well enough recognised to have its own treatment in the federal rules. 26 CFR 1.460-1 — Long-term contracts addresses when “a contract for the manufacture, building, installation, or construction of property” falls into that category and what activities must be accounted for together.
Whether any particular roofing contract is treated that way is a professional determination, and it is not one this desk makes. It depends on the work, the timing and circumstances that belong with your licensed adviser. What is useful here is narrower: the existence of the rule confirms that the price-then-cost gap is a real structural feature of construction rather than something a better-run company would not have.
Which is the argument for tracking it deliberately. If the gap were an artefact of poor administration, tightening admin would close it. It is not, so the answer is to measure the tail rather than to pretend it is absent — and to make sure the job record is still open when the tail arrives.
This describes a federal accounting rule in general terms to explain a pattern. It is not legal, tax or accounting advice, it makes no determination about your contracts or which treatment applies to them, and circumstances differ. Those questions belong with your own licensed adviser; the department page below sets out where this work stops.
What feeds this desk
Job costing depends on the desks around it and sits inside Finance and Bookkeeping, which carries the department boundary.
Questions about what a job made
We know roughly what our margin is. Is that not enough?
It is enough until two jobs that felt the same return very differently, and then roughly stops being useful. An average across a year conceals the thing worth knowing, which is which kind of work carries the margin and which kind is being subsidised by it. Owners are frequently right about the average and wrong about which jobs make it up.
What makes a cost arrive late?
Its own supply chain. Material invoices follow deliveries by their own billing cycle, subcontractors bill when they get to it, disposal and equipment charges land whenever the counterparty raises them, and warranty or callback costs can appear well after everyone considers the job finished. Every one of those is normal and none of them is under the contractor’s control.
How do labour hours get onto a job?
By being captured against a job when they are reported, not sorted out afterwards from a weekly total. That happens on the payroll desk rather than here, which is why the two are usually taken together — a job-cost record built on hours that were never coded is a material-and-subcontract record wearing a misleading name.
When is a job actually closed?
When nothing further is expected against it, which is a decision somebody has to make rather than a date that arrives. The useful discipline is a short holding period after completion during which trailing costs are watched for, and then a deliberate close. Jobs left open indefinitely never produce a number; jobs closed too early produce a flattering one.
Can you tell us what we should be charging?
No, and that is a real limit rather than modesty. Pricing is a commercial judgement involving your market, your capacity and your appetite, and none of that is in a cost record. What the record gives you is the input that judgement has been missing — what the work actually cost last time, by kind, with the trailing items included.
Our jobs are small and fast. Does this still apply?
The mechanics are lighter but the gap is the same, and on high-volume residential work it is arguably worse. A single job’s trailing costs are small; the same pattern across a season is not. Companies doing many small jobs are precisely the ones most likely to be pricing from an impression rather than from a closed record.
The rule referred to above
- 26 CFR 1.460-1 — Long-term contracts — U.S. Office of the Federal Register (eCFR)
Take one finished job and total it honestly
Include the disposal, the callback and the rental nobody closed. The difference from what you assumed is the size of this.