Most bids that lose money do not lose it to a single bad number. They lose it to a handful of avoidable mistakes that repeat across jobs, and almost all of them are documentation failures rather than arithmetic ones. The estimate was fine. The scope underneath it was not.
Here are the ones that show up most often, and what to do instead.
Pricing before the scope is closed
The most expensive mistake is also the earliest. Time pressure pushes contractors to start pricing the moment drawings arrive, before anyone has finished reading them.
Every hour spent pricing an open question is an hour at risk. Close the scope first: know what you are including, what you are excluding, and which items need an answer. Pricing is the last step, not the first.
Missing an addendum
Addenda arrive late, sometimes days before the deadline, and a missed one can change the whole job: revised quantities, a substituted material, an extended schedule, a different scope boundary.
The defense is mechanical. Track every addendum the moment it is issued, acknowledge each one formally, and price the current revision rather than the one you started with. A bid priced off a superseded drawing is wrong before it is opened.
Treating the specifications as optional
The specifications routinely override the drawings on materials, submittals, testing, and installation methods. Contractors who read only the plans price the picture instead of the requirement.
The two documents are one contract. Read them together, and where they disagree, treat the conflict as a question rather than a choice.
Reusing the last job's number
The job that looked just like this one is the most dangerous input in estimating. It feels efficient and it quietly imports every assumption from a project that had different access, different site conditions, and a different owner.
Use a past job for rates and production, never for scope. The quantities have to come from these documents.
Leaving exclusions unwritten
Exclusions that were discussed but never written down do not exist. The customer remembers the price, not the conversation, and the difference becomes an argument you will usually lose.
Write the exclusions into the proposal in plain language. An exclusion the customer accepted in writing is a boundary. The same exclusion, unspoken, is a gap.
Confusing markup with margin
These two are not interchangeable, and the error compounds as the numbers grow. Markup is what you add to cost. Margin is what you keep as a percentage of the price.
A 20 percent markup is roughly a 16.7 percent margin. A contractor who plans in margin but prices in markup will under-earn on every job and never find the leak. Decide your target as margin, then convert deliberately, and check that overhead is genuinely covered before profit starts.
Submitting an incomplete bid packet
Plenty of bids are rejected before the price is even read. A missing signature, an unacknowledged addendum, a price submitted on the wrong form, a required bond that never arrived.
Build the required-items list the day you decide to bid, and work the packet alongside the estimate instead of assembling it at the end. Then read it as the reviewer will, looking for a reason to disqualify it, and check the written price against the numeric one.
Going quiet when the documents are unclear
Unclear documents are normal. Bidding them without asking is a choice to absorb the risk, and the risk always costs more than the question would have.
Submit RFIs while there is still time for an answer. Where no answer comes, state the assumption explicitly in the proposal so the price is connected to something the customer can see.
Why these repeat
None of these mistakes come from not knowing how to estimate. They come from the process around the estimate: reading under time pressure, tracking changes informally, and holding assumptions in memory instead of on paper.
That is good news, because process problems are the fixable kind. A documents review that produces a written scope and a question list, an addenda log, and a submission checklist will prevent more losses than any refinement of rate tables.
BidPacket builds the scope breakdown, materials checklist, and proposal draft from your uploaded documents, so the structured part of bid prep happens first and stays visible. The judgment calls — what to price, what to exclude, what to ask — remain where they belong.