Ask a specialty contractor how they price work and you’ll usually hear about The Spreadsheet: built by the owner or a long-gone estimator years ago, layered with tabs and color codes, deeply trusted, and understood — really understood — by exactly one person. It has priced millions of dollars of work, so it must be right.
Here’s the uncomfortable part: your estimate is where the job’s entire profit gets decided, the bid is the one number in your business with no undo button, and the tool most shops use to produce it has no safety rails at all.
The short version
- Spreadsheet audits keep finding errors in the overwhelming majority of operational spreadsheets — including workbooks trusted in production for years.
- The recurring estimating killers:
SUMranges that don’t extend when rows are inserted, markup confused with margin (20% each way is a $50K swing on $1M of cost), values pasted over formulas, and stale loaded labor rates. - Legal relief for a bid mistake is narrow, clerical-only, and deadline-bound — the best outcome is escaping the job, never fixing the number.
- Minimum guardrails: one rate table, locked formula cells, structured tables instead of raw ranges, a bid-day checklist with a second reviewer, and an archived copy of the exact workbook that produced each bid.
- The structural risk is the workbook only one person understands — no reviewer, no history, no test that fails when a formula breaks.
What the record says about trusted spreadsheets
Decades of spreadsheet-audit research keep landing on the same result: errors turn up in the
overwhelming majority of operational spreadsheets examined — not sloppy ones, typical ones,
including workbooks that had been in production use for years. The errors aren’t dramatic; they’re
a SUM that stops one row short, a cell someone once overwrote with a number, a formula copied
into a column it doesn’t fit. They survive because a spreadsheet looks equally authoritative
whether it’s right or wrong.
The corporate horror stories are the same failure at scale — TransAlta, a Canadian power company, famously lost about $24 million on bids for transmission contracts because of what its CEO called “literally a cut-and-paste error” in a bidding spreadsheet. A construction bid is the same transaction: a number leaves the building, someone relies on it, and you own the difference.
And if you’re hoping the law will bail you out: California does give public-works bidders a narrow escape hatch for genuine clerical mistakes, but it’s exactly that — narrow. Tight notice deadlines measured in days, proof requirements, and the best case is being released from the bid, not getting the number corrected. You lose the job either way. On private work, expect even less sympathy.
The errors that actually live in estimating workbooks
These are the recurring ones — worth checking your own workbook against, today:
- The
SUMthat doesn’t grow. Insert a line item at the top or bottom of a section and the subtotal range silently doesn’t extend. The line shows on the sheet, reads as included, and never reaches the bid total. This is the classic omitted-scope error, and it’s invisible on a printout. - Markup confused with margin. “20% profit” as
× 1.20and “20% margin” as÷ 0.80are different numbers — on $1M of cost, $1,200,000 versus $1,250,000. If different tabs (or different estimators) mean different things by “20%,” you’re randomly leaving $50K on the table or padding yourself out of jobs. - Overhead on cost versus overhead on revenue. Same trap, subtler: 10% overhead applied as a multiplier on cost gives a different sell price than 10% of the sell price. Neither is wrong — but the workbook has to pick one and apply it everywhere, and homebrew sheets usually mix them.
- The hardcoded cell. Someone once pasted a value over a formula to hit a number on bid day. The formula never came back, and every estimate since has carried that frozen assumption.
- Stale rate tables. The labor tab holds loaded rates keyed in two years ago — before the CBA increase, before the July 1 prevailing-wage step-up, before workers’ comp went up. A loaded rate missing one fringe component underprices every labor hour on every bid until someone notices, and nobody notices, because the tab is on the far right and nobody opens it.
- Waste and tax applied inconsistently. Waste compounded on some lines and added on others; sales tax applied to labor (it shouldn’t be) or missed on materials (it can’t be). Small percentages, every line, every bid.
- Hidden rows and stale alternates. Last job’s workbook becomes this job’s template, carrying hidden rows, old alternates, and plug numbers from a different project. What doesn’t print still sums.
- Version roulette.
bid_FINAL_v7_REAL_USE-THIS.xlsx, emailed around, edited in parallel. Which version produced the number that went out the door? If you can’t answer in ten seconds, neither can anyone else — including a year from now, when the job is losing money and you’re trying to reconstruct why.
Why the one-person spreadsheet is the real risk
Every error above is survivable if it gets caught, and none of them get caught in a workbook only one person understands. There’s no second reviewer who can follow the logic, no test that fails when a formula breaks, no history of who changed what. The Spreadsheet isn’t just a pricing tool — it’s your rate database, your approval workflow, and your version control, all jobs Excel was never asked to do. And when its author retires or quits, the pricing brain of the company walks out the door in a file nobody else can safely touch.
If you’re staying in Excel, at least do this
- One rate table, one place. Loaded labor rates, tax rate, standard markups — maintained in a single tab (or a single shared file) every estimate references. Review it on a calendar, not when something looks weird — and put July 1 on that calendar if you touch prevailing-wage work.
- Protect the formulas. Lock every calculated cell; leave only input cells editable. Most hardcoded-cell disasters start as a “temporary” bid-day override.
- Use structured tables, not raw ranges, so sums extend when rows are added.
- A bid-day checklist and a second set of eyes on the summary sheet: does every section subtotal tie to its detail? Is the margin basis stated? Does the $/SF land near comparable past jobs? Ten minutes, every bid, no exceptions.
- Freeze the sent version. PDF the bid, archive the exact workbook that produced it, and stop editing that copy. Future-you needs to know what the number was built from.
The pattern behind all of it: the math of an estimate — quantity, waste, unit cost, tax, overhead, margin — should be one recipe, applied identically to every line, by a system that can’t quietly forget a row. That’s a low bar. The Spreadsheet clears it right up until the day it doesn’t, and you find out which day that was when the job goes in the red.