DEV Community

Frank Anderson
Frank Anderson

Posted on

Your Bid Has Bugs: Why Contractors Win Jobs but Lose Money (and What Devs Can Learn)

Short answer: Contractors who win bids but lose money almost always underpriced the job. The usual causes are an incomplete quantity takeoff, outdated pricing, uncovered overhead, confusing markup with margin, and no contingency. Think of it as a bug in the estimate, not in the execution.

If you've ever quoted a fixed-price project, freelanced, or run an agency, this will sound familiar. You win the work, scope creep and missed requirements eat the budget, and the "profit" disappears. Construction has the same problem, with concrete and steel instead of code. The lessons transfer well.

TL;DR
A very high win rate can mean you're underpriced, not great at sales.
Missed scope, stale pricing, and forgotten overhead cause most profit leaks.
Markup and margin are not the same number.
Comparing estimate vs. actual after every project is the fastest way to improve.
Specialist help (or tooling) beats rushing estimates when volume grows.

What "Winning Bids but Losing Money" Means

A bid is accepted, but the final cost exceeds the budget built into the estimate. The project ships, and profit is thin, zero, or negative. This is called bid underpricing. It rarely starts in delivery. It starts in the estimate.

1. The Lowest Bid Is Often the Incomplete Bid

If you win almost everything, check what competitors priced that you didn't. A big gap usually means missing scope, not superior efficiency. Developers know this as the quote that forgot authentication, migrations, and QA.

2. The Quantity Takeoff Has Gaps

In construction, a quantity takeoff is measuring and listing every material and labor quantity from the plans and specs. It is the equivalent of a requirements breakdown. Common failures:

  • Working from outdated drawings or missing addenda
  • Skipping items buried in the specifications
  • Forgetting waste and overage
  • Rushing to meet a deadline

Bad inputs here corrupt every number downstream, like a wrong assumption at the top of a dependency chain.

3. Pricing Data Is Stale

Material and labor costs shift often and vary by region. Reusing unit prices from an old job is like hardcoding a config value and never revisiting it. Refresh with current supplier quotes.

4. Overhead Isn't Covered

Overhead is what it costs to run the business regardless of any single job: insurance, software, vehicles, admin staff, licenses. If it isn't built into each bid, your profit is quietly paying the bills.

5. Markup vs. Margin

  • Markup is a percentage added to cost.
  • Margin is the percentage of the selling price that is profit.

Worked example, with a project cost of $100,000:

Python:

cost = 100_000

20% markup

price_markup = cost * 1.20 # 120,000
margin_actual = (price_markup - cost) / price_markup
print(round(margin_actual * 100, 1)) # 16.7

True 20% margin

price_margin = cost / (1 - 0.20) # 125,000
print(price_margin)

A 20% markup gives only a 16.7% margin. To earn a true 20% margin, you must price at $125,000. That $5,000 gap repeats on every job you price the wrong way.

6. No Contingency for Risk

Contingency is a budget allowance for unknowns like weather, shortages, site surprises, and rework. A bid without it assumes the happy path. Every edge case then comes straight out of profit. Same idea as a buffer in a sprint estimate.

7. No Estimate vs. Actual Feedback Loop

If you never review finished jobs, the same errors repeat. After each project, compare:

  • Estimated vs. actual hours
  • Estimated vs. actual material costs
  • Items missed in the takeoff
  • Planned vs. final profit

It's a retrospective for your pricing.

A Quick Fix List

  • Bid for profit, not just to win.
  • Do a detailed takeoff (requirements breakdown) every time.
  • Refresh pricing with current quotes.
  • Add overhead and profit using the margin formula.
  • Include contingency that matches the risk.
  • Review actuals after every job.
  • Bring in specialist help when volume outgrows capacity.

When to Bring in an Estimation Service

Consider it if you're bidding more than your team can estimate carefully, deadlines force shortcuts, or margins are shrinking despite winning work. Dedicated estimators focus on takeoffs and cost accuracy so your team doesn't have to.

For construction specifically, Design Estimation provides quantity takeoffs and cost estimating for contractors, subcontractors, and builders.

FAQ

Why do I win bids but make no profit? The bid was likely underpriced due to missed quantities, outdated costs, uncovered overhead, or no contingency.

What's the difference between markup and margin? Markup is added to cost. Margin is the share of the price that is profit. A 20% markup is about a 16.7% margin.

Is a high win rate a bad sign? It can be. It may mean your prices sit below the market, which often points to missed scope or thin margins.

Can outsourcing estimating help? Yes. Specialists catch missed items and apply current pricing, which reduces rushed, inaccurate bids.

Final Thoughts

Winning work is half the job. Winning it at a price that protects your profit is what keeps a business alive, whether you pour concrete or ship software. Audit your estimating process, fix the leaks, and let accurate numbers drive your quotes.
For More Read Visit: www.designestimation.com

Top comments (0)