Where spreadsheet
job costing breaks.
Not when it gets complicated. When two people open it, when committed cost is not in it, and when the true position is a week old by the time anybody has assembled it.
Published ·5 min read·Written by Unibuild
Spreadsheet job costing fails on four specific properties rather than on complexity: committed cost is not in the file, two people cannot safely edit it at once, the figures are transcribed from elsewhere so they lag, and no version is authoritative. The result is a cost position that is accurate about last week and confident about today.
Spreadsheets are not the problem
Excel is a remarkable tool and most contracting businesses in this country are run on it competently. It is fast, everybody can use it, it costs nothing extra, and it bends to whatever a commercial manager needs it to do on a Tuesday. A firm that has built a good cost model in it has built something real.
What follows is not an argument that spreadsheets are amateurish. It is an argument that a contractor's cost position has four properties that a single file cannot hold, and that the failure is structural rather than a matter of how carefully anybody works.
One. Committed cost is not in the file
This is the big one and it causes more surprises than the other three together.
Most job cost spreadsheets are built from invoices, because invoices are what arrive and what get entered. But a contractor commits money long before it is invoiced. You issue a purchase order for £40,000 of materials on Monday and the invoice appears six weeks later. You instruct a subcontract package for £120,000 and the first application comes at the end of the month.
Until those documents land, the spreadsheet shows the job in better health than it is. Not by a random amount, and not in a random direction: it always understates, and it understates most at exactly the point in a job when the commitments are largest and the invoices have not caught up.
A cost sheet built from invoices is not a picture of the job. It is a picture of the post.
Firms usually know this and compensate with a mental allowance. That works while one person carries the whole job in their head, and stops working the moment there are eleven jobs and three people.
Two. Two people cannot safely have it
The moment more than one person needs to update the file, one of three things happens. Somebody works on a copy and the versions diverge. Somebody waits, so the file is out of date by however long they waited. Or it goes into a shared drive with simultaneous editing, and a formula gets overwritten by a paste that nobody notices for a fortnight.
That third one is worth dwelling on because it is silent. A broken formula in a corner of a large sheet does not announce itself. It produces a number that looks like a number, and the report built on it looks like a report.
Three. Everything in it was typed twice
Hours come off a timesheet or a WhatsApp message and get typed in. Invoices come from the accounts package and get typed in. Applications get typed in from a different sheet. Plant charges come off a hire schedule and get typed in.
Two costs follow. The obvious one is the time, which is somebody's week every month. The less obvious one is the lag: every transcription step adds delay, and by the time all four sources are in, the earliest of them is a fortnight old. That is the mechanism behind the sentence on our directors page, that the true position of a job lives in four places and assembling it takes a week.
Four. No version is the version
Ask a firm running on spreadsheets which file is authoritative and you get a pause. There is the one on the shared drive, the one the QS is working on, the one that was emailed to the director on Friday, and the one somebody took home. All four are plausible and none is marked.
The practical consequence arrives in a meeting, where two people have different numbers for the same job and the discussion becomes about whose sheet is right rather than about the job.
When it actually starts to hurt
Not at a headcount and not at a turnover. Three thresholds, and firms usually cross them without noticing.
- When more than one person needs the answer. One commercial manager with one file is coherent. Two people is where version drift starts.
- When jobs outlast memory. Everything works while somebody can hold the exceptions in their head. At about eight or ten concurrent jobs that stops being possible, and the sheet has to carry what the person was carrying.
- When somebody outside sees the number. A bank, an insurer, a prospective buyer, or a client asking for a cost report. That is when the difference between a figure and a defensible figure becomes real.
If you are staying on spreadsheets
Which is a perfectly reasonable decision for plenty of firms. Three changes remove most of the risk without changing anything else.
Add a committed cost column and populate it at the point of order rather than invoice, even if it is a manual entry. Nominate one file as authoritative, put the date in the filename, and make everybody else read-only. And reconcile to the accounts package monthly rather than at year end, because a difference found in month two is a data entry error and the same difference found in month eleven is an investigation.
Each of the four failures maps to something Unibuild does differently, and it is worth being specific rather than general. Cost is captured at commitment: an order is a cost against the job from the moment it is issued rather than from the moment it is invoiced. Everything sits on one record that people are granted access to page by page, so there is no copy and no authoritative-file question. Hours arrive from a QR clock-in against the job on the day they are worked rather than being retyped from a sheet, and applications are built from work already measured. Gross applied and gross balance are calculated as at each row's own date, so a question about March is answered as at March. The boundary: it is not an accounting system, your accounts package stays, and reconciling the two is still somebody's job.
Where to start, on Monday
Take your largest live job and write down two numbers: the cost your spreadsheet shows, and the total value of purchase orders and subcontract packages you have issued on it that have not yet been invoiced. The second number is the size of the gap you have been carrying in somebody's head.
If that gap is small, your spreadsheet is doing its job and this article is not about you. If it is large enough to change how the job looks, you now know the number, which is a better position than yesterday whatever you decide to do about it.
The follow-up questions.
What replacing it costs is set out in what construction software actually costs.
Why does job costing in Excel stop working?+
What is committed cost and why does it matter?+
At what size does a contractor outgrow spreadsheet job costing?+
How can I make spreadsheet job costing safer without replacing it?+
Are spreadsheets unprofessional for construction cost control?+
More from Insights.
RAMS that hold upWhat an inspector is actually looking for in a risk assessment and method statement, and the difference between a document that exists and one that is doing its job.Read it →
Retention, and the money that goes missing after practical completionWhere cash quietly disappears between the last valuation and the release of the second half of retention, and the four dates that decide whether you ever see it.Read it →
Why field rollouts stall in week threeMost site software is not rejected. It is quietly outlived by the paper route nobody switched off. What the firms that got it to stick did differently.Read it →