The lowest bid is almost never the cheapest job. It only looks that way on the first pass, before anyone has worked out what each contractor left out.
You know the moment. Four quotes are in for a package, the numbers are close enough to argue about, and the estimator who chased them is the only person who knows that one contractor priced the old drawing set, another excluded temporary works, and a third quoted a shorter program with weaker payment terms. That knowledge lives in their head, a few cell comments, and some color coding on a spreadsheet nobody else can read. Then the tab goes to a partner or the client, the meeting runs on price, and the award lands on a number that grows a change order at a time once the trade is on site.
If you run preconstruction, estimating, or commercial for a builder or developer, this is the workflow worth fixing first, because the cost of getting it wrong follows you for the life of the project and shows up long after the award meeting is forgotten.
What you are actually comparing when bids come in
The spreadsheet makes this look like a price comparison. It is not. The real work is making four or five bids describe the same scope, so that the price difference finally means something instead of measuring who read the drawings most carefully.
Before an award holds up, someone has to answer a few plain questions for every bidder. Which drawing set, specification, and addenda did they price. What did they include, exclude, or quietly assume. Which qualifications change the number once you take them seriously. And what still needs a clarification before the comparison is fair. When those answers live only in the estimator's memory, the award is only as durable as their recall on the day of the meeting, and their recall is competing with three other packages closing the same week.
Bid leveling is the name the industry already gives this. The trouble is that in most teams it happens once, by hand, under time pressure, and then evaporates. The next package starts from a blank tab and the same reasoning gets rebuilt from scratch.
Where the hours go before a single number is trusted
Bids arrive as PDFs, spreadsheets, portal exports, emails, and marked-up bills of quantities, each in its own shape. Someone opens a comparison tab and normalizes it all by hand. They line up items that do not match, hunt for the exclusion buried on page nine of a proposal, re-key qualifications into a summary column, and translate one subcontractor's lump sum into something that can sit next to another's unit-priced schedule.
The mechanical part is slow. The expensive part is that the judgment never gets written down. By the time the tab is clean, the reasoning behind it, the calls about why one contractor's headline number is really the higher one once you add back what they left out, sits with a single person. Leadership sees tidy columns and not the thinking that produced them. If that person is on another job the day the client wants to award, the reasoning goes with them.
None of this is a spreadsheet problem. A better formula does not fix it. What is missing is a place where the package carries its own definition and every bid gets described against the same scope, so leveling becomes a fill-in instead of a rebuild.
Walk the leveling workflow one bid at a time
It helps to see the workflow as it actually runs on a live package, because that is where you can see it break.
Define the package before the bids land
Someone, usually the estimator or a preconstruction lead, sets out what is being bought: the governing drawing set and revision, the specification sections, the addenda issued, the scope boundaries with adjacent trades, and how the award will be judged. This is the step teams skip. When the package is not defined before quotes arrive, there is no fixed thing to compare bids against, and every leveling decision becomes an argument.
Intake each bid into the same shape
As quotes come in, each one gets broken into the same fields: base price, inclusions, exclusions, qualifications, alternates, unit rates, lead time, and commercial terms. Right now this is manual transcription, and it is where most of the hours disappear. It is also where errors enter, because a rushed transcription drops the exclusion that later becomes the change order.
Level the scope, not the price
With every bid in the same shape, the estimator adds back what each contractor excluded and strips out what does not belong, so the comparison moves from the headline number to an adjusted, like-for-like number. This is the judgment step, and it is the one that must stay written down rather than living in cell comments.
Chase the open questions
Wherever a gap cannot be closed from the documents, it becomes a clarification: a named question, sent to a named bidder, owned by a named person, with a status. The package is not ready to award while material clarifications are still open.
Recommend the award
Finally the leveled comparison supports a recommendation that a colleague who was not in the room can read and defend. The test of the whole workflow is not how fast the tab comes together. It is whether someone else can see, in five minutes, which contractor excluded what, which clarifications were open at award, and why the winning number won.
Scope gaps are the real comparison
Once the bids are in the same shape, the comparison separates the base price from the risk sitting next to it. The missing scope, the assumptions, the alternates that are not really equivalent. A leveling sheet earns its place when it makes that separation visible on one screen.
What a leveling sheet should hold per bidder
| Field | What it captures | Why it changes the decision |
|---|---|---|
| Governing documents priced | Drawing set, revision, spec sections, addenda | A bid on an older set is not comparable until it is re-priced |
| Base price | The headline number as submitted | The starting point, not the answer |
| Exclusions and qualifications | What the bidder left out or conditioned | Add-backs move the true cost, sometimes past a cheaper-looking rival |
| Alternates | Substitutions in material, method, or warranty | Only comparable once matched to the base scope |
| Unit rates | Priced quantities for variable work | Protects against quantity movement after award |
| Commercial terms | Lead time, payment terms, bonding, retention | Two identical prices are not identical engagements |
| Adjusted number | Base plus add-backs, on a like-for-like scope | The number the award conversation should actually run on |
The point of the sheet is not neatness. It is that the adjusted number, not the headline one, becomes the thing people argue about. That single shift moves most of the value.
Read the inclusions and exclusions before the price
The most expensive line in a bid is often the one that is not there. A mechanical subcontractor who excludes commissioning support, a facade bidder who assumes the general contractor provides access equipment, a groundworks quote that stops at the building line and leaves external drainage to someone else. Each exclusion is a future cost that lands on the project whether or not anyone priced it.
Leveling exclusions is slow because they hide. They sit in a qualifications paragraph, a footnote to a schedule, an email sent after the formal bid, or a clause that says "by others" without saying which others. Reading them out consistently, for every bidder, against a shared list of what a complete bid for this package type should include, is exactly the kind of patient reading that gets shortcut when three packages close in the same week. It is also where AI can take real load off the estimator, which is a point we come back to below.
Alternates are where like-for-like quietly breaks
Alternates are useful. A contractor who proposes a different pump, an equivalent membrane, or a faster sequence may genuinely save money or time. The risk is comparing an alternate as if it were the base scope, when a shorter warranty, a different maintenance obligation, or a substituted material makes it something else entirely.
The workflow needs to hold the base bid and the alternate side by side, with the difference stated, so the team decides on the alternate deliberately rather than defaulting to it because it made the total look lower. An alternate accepted by accident is one of the most common ways a leveled comparison stops being like-for-like without anyone noticing.
Base scope against a proposed alternate
| Element | Base scope as tendered | Contractor alternate | What the team must decide |
|---|---|---|---|
| Specified equipment | Named unit per spec | Equivalent unit, lower cost | Whether the equivalent meets performance and the client accepts it |
| Warranty | Full term per spec section | Shorter manufacturer term | Whether the reduced cover is worth the saving |
| Sequence | Standard program | Compressed program | Whether adjacent trades and site logistics can hold the faster date |
Unit prices and lump sums measure different risks
A lump sum answers one question well: what does this scope cost if the scope does not move. A unit-priced schedule answers a different one: what happens to the number when quantities change, which on most construction packages they will. Comparing a lump-sum bid against a unit-priced one on headline total alone hides the risk you are actually buying.
The leveling workflow should carry both the total and the rates that sit behind variable work, so the team can see not just who is cheapest today but who is exposed if excavation goes deeper, if fit-out quantities grow, or if a provisional sum turns real. A contractor with a low lump sum and punishing unit rates for variations can end up the expensive choice the first time the drawings change. That comparison only exists if the rates were captured during intake rather than discarded because they did not fit the summary column.
The clarification list is the workflow, not the admin around it
Most teams treat clarifications as a side task. They are the workflow. Every gap that cannot be closed from the documents is a question that has to reach the right bidder, come back with an answer, and change the leveled number if the answer warrants it. When that list lives in scattered emails, two things go wrong: the award happens with questions still open, and nobody can later say which answers were in hand when the decision was made.
A usable clarification list names the gap, the bidder it belongs to, who owns chasing it, and where it stands. It is short, it is visible, and it is the reason a package can be called ready or not ready with a straight face. The award recommendation should state which clarifications were closed and which were accepted as open risk, so the decision is legible after the fact.
A worked example: five mechanical bids on a mid-rise
To make this concrete, say a general contractor is leveling five mechanical bids for a mid-rise project. The figures below are illustrative, not from a real tender, but the shape is the everyday one.
The lowest headline bid comes in at what looks like a clear win. Reading the qualifications, that bidder has excluded commissioning support and priced an earlier drawing revision issued before the last addendum. A second bidder, a little higher, has included everything but proposed an alternate pump with a shorter warranty. A third sits in the middle on price with clean inclusions but a longer lead time that pushes the mechanical rough-in past the point the program can absorb. Once the estimator adds back the commissioning scope and re-prices the excluded revision, the cheapest headline bid is no longer the cheapest job.
The bids after leveling (illustrative)
| Bidder | Headline bid | Add-back for gaps | Adjusted, like-for-like | Open clarification |
|---|---|---|---|---|
| Bidder A | Lowest | Commissioning excluded; priced pre-addendum set | Rises above B and C | Confirm re-price on current revision |
| Bidder B | Slightly higher | None; alternate pump offered | Competitive once alternate is decided | Client acceptance of alternate warranty |
| Bidder C | Mid | None; clean inclusions | Comparable to B, longer lead time | Whether program can hold the later date |
| Bidder D | Higher | Provisional sum for access | Above the field | Firm up access allowance |
| Bidder E | Highest | None | Highest, complete scope | None |
Notice what the leveled view changes. The conversation is no longer about who submitted the smallest number. It is about whether Bidder B's alternate warranty is acceptable, whether Bidder C's lead time fits the program, and whether Bidder A's re-priced number stays competitive once the excluded scope is back in. Those are commercial and technical calls for the project team. The workflow's job is to put them on the table cleanly, not to make them.
Where AI earns its place, and where it must not
Once the package is defined and the fields are set, AI earns its place on the mechanical reading. It can pull inclusions and exclusions out of long proposals, shrink a page of qualifications to a line, flag when a bid references an older drawing set than the one currently governing, line up unit rates across bidders, and draft both the clarification questions and the first pass of the award recommendation. That is genuinely the slow, patient reading that consumes an estimator's week, and it is well suited to a first-pass assist.
What it must not do is pick the contractor. Extraction and alignment are assembly work. The award is a commercial decision, and so is every call underneath it: whether an alternate is acceptable, whether a lead time fits the program, whether a low unit rate is a bargain or a trap. Those stay with the estimating, project, and commercial team looking at the same leveled comparison. AI gets the comparison ready faster and more consistently. People still make every call that carries money or risk. If the tool ever presents a recommendation without showing the exclusions, the add-backs, and the open clarifications behind it, it is speeding up the wrong part of the job.
The data and systems underneath the leveling sheet
The inputs are scattered by nature: estimating software, a procurement platform, subcontractor portals, shared folders, the document management system, the accounting system, and a great deal of email. The common mistake is to start from the systems and try to connect them first. Start from the package instead. What is being bought, which documents govern it, who reviews it, and what decision is due.
For some teams the first build is a structured comparison sitting over exports and PDFs, with no integration at all. For others it grows into a connection between the estimating and document systems so that the current drawing revision is always the one bids are checked against. Either way the package definition comes first and the integrations follow it, not the other way round. A leveling sheet fed by clean inputs beats a set of connected systems with no shared definition of a complete bid.
What tends to go wrong
A few failure modes repeat across teams and package types. The most common is treating this as a data-entry problem and automating extraction before anyone has agreed what a complete bid even looks like for this package. Fast transcription of the wrong fields just produces a tidy comparison of the wrong things.
The second is letting the scope-leveling judgment stay in cell comments, so the reasoning never leaves one person's head and the next package starts from a blank tab again. The third is comparing alternates as if they were equivalent, when a warranty term or a commissioning exclusion makes them anything but. The fourth is running the award meeting on headline price because the adjusted number was never made visible enough to anchor the conversation. The fifth is awarding with material clarifications still open, then discovering after mobilization that the answer would have changed the number.
None of these are technology problems. They are the reason the same package feels hard to compare every single time, and why the change orders that follow feel avoidable in hindsight.
A first build that does not try to fix everything
Do not start by redesigning procurement. Pick one package type you tender often, where the leveling pain is obvious and the change-order history is annoying. Pull a handful of recent bid tabs and subcontractor submissions for that package. Then define the leveling sheet for it: the governing documents, the inclusions a complete bid must cover, the exclusions to watch for, the alternates, the unit rates, the commercial terms, the clarification owner, and where the award review stands.
Run that on real bids before adding any AI. If the manual version does not produce a comparison a colleague can read, no amount of extraction will save it. Once it does, add AI where it clearly saves time: reading exclusions out of proposals, summarizing qualifications, flagging outdated drawing references, drafting clarifications. Keep the award decision with your reviewers throughout.
A practical first 90 days
You do not need a procurement transformation to make progress. A focused first quarter is usually enough to get one package type running cleanly and to prove whether the approach earns its keep.
First 30 days: make one package legible
- Choose one frequently tendered package with a change-order history worth fixing.
- Define what a complete bid must include and the exclusions that commonly hide.
- Build the leveling sheet fields and test them on recent bids by hand.
Days 31 to 60: add structure and first-pass AI
- Standardize intake so every bid drops into the same shape.
- Add AI extraction for exclusions, qualifications, and drawing references.
- Make the adjusted number and the clarification list the two things leadership sees first.
Days 61 to 90: make it repeatable
- Turn the leveling sheet into a reusable format for that package type.
- Connect only the estimating or document data needed to keep the current revision honest.
- Run it live on a second tender and adjust before widening to other packages.
How Ubisar would build this with you
In week one, we would take one package type you tender often, pull a handful of recent bid tabs and subcontractor submissions, and define the leveling sheet: the package, the governing documents, the inclusions, the exclusions, the alternates, the unit rates, the commercial terms, the clarification owner, and where the award review stands.
In weeks two and three, we would bring in only the estimating, procurement, document, email, and portal context needed to level scope fairly, and let AI handle the extraction, the qualification summaries, the alternate comparison, and the first draft of the clarification list, while your reviewers keep the award decision. By week four, one package should move from a pile of submissions to an award recommendation a colleague can defend, with no undocumented assumptions riding along into the project. We keep going if your reviewers are catching scope gaps earlier and can stand behind the recommendation, and we narrow it if the package or the reviewers are still too loosely defined to trust. The same leveling sheet then makes the next stage cleaner, from award into vendor payment approval.
If bid comparison is the workflow costing you most in change orders, bring us one package and we will build this around it. That is how AI, Data & Tech Implementation works: one workflow a month, starting from $4,000/month, cancel anytime. When you are ready, tell us which package hurts most and we will start there.
