.webp)
Updated July 2026
TL;DR: Managing 50+ bids per project is where most general contractors lose money. Scope gaps, pricing inconsistencies, and buried exclusions slip through when bids live across email, text, and paper. The solution: (1) centralize all bids into one system, (2) normalize formats using bid leveling, and (3) use AI to spot outliers and gaps human brains miss. Result: 6-10 hours saved per project and fewer surprise overruns.
Good bid management is the work of making sure every line of the job is priced by somebody before you sign anything. On a residential project running 15 to 20 trades, that means reconciling dozens of proposals written in dozens of formats, and finding the work that fell between them. Miss a gap and it comes back as a change order at the worst possible moment, priced without competition, on your margin.
Most of what gets written about this assumes you have a preconstruction department. You don't. You have a phone, an inbox, and a truck. So this is the version for a builder who is doing bid review between site visits.
Watch someone experienced go through a stack of proposals and the order is consistent. They check what's missing first. Then who sent it. Price comes third.
That order is not intuition, it's diagnostics. A number you can't trust is worse than no number, so the first pass is about whether the bid describes the whole job. The second pass is about whether the company sending it has ever finished a job like yours. Only after both is the dollar figure worth reading, because until then you don't know what the dollars are buying.
The failure mode is sorting by price first and letting the low number set your expectation before you've read the exclusions. Once a builder has anchored on $67,000 for HVAC, the $71,000 bid that actually includes the ductwork reads as expensive. It isn't. It's complete.
A scope gap is work the plans require that nobody bid. Not work someone added later, and not a dispute about who should have known. Simply: it's on the drawings, it's in no proposal, and it surfaces when a framer stops and asks who's handling it.
The money involved is well documented. Rework runs between 4% and 12% of total project value depending on the study, with most research landing at 5% to 10%, according to figures compiled from CII, NIST, and the UK Get It Right Initiative and reviewed by the ASCE in January 2026. Change orders average roughly 10% of contract value and reach 25% on the projects that get away from you.
Set that against what builders actually earn. The NAHB reported in April 2025 that average net margin reached 8.7% across 2020 to 2023, the strongest in three decades. The spread underneath that average is the part worth sitting with: the top quarter of builders cleared 17.7%, and the bottom quarter lost money at -1.4%. On a home costing $428,215 to build, about $162 per square foot, a single missed $8,000 scope item is roughly a fifth of the profit on the job.
The builders in that top quartile are not winning on better pricing. They're winning on fewer surprises.
Most of the leverage is here, and it costs nothing.
Write the exclusion list yourself. For each trade, name the items that habitually fall between scopes on your jobs and require every bidder to price them or decline them in writing. Dumpster and haul-off. Temporary power and its teardown. Daily cleanup. Floor and finish protection. Fire caulking. The electrical connection on HVAC equipment. Cabinet hardware, which is the one that gets people, because a cabinet package can exclude hinges and slides and still look complete.
Then send everyone the same document. Same plan revision, same date, same list. A bid written against last month's drawings is not a low bid, it's a different job, and you will not spot the difference three weeks later reading it cold.
Set a return date and hold it. Bids arriving on a rolling basis get compared against whichever ones happen to be sitting on top.
Line them up by scope item rather than by bidder. The moment the comparison is vertical instead of horizontal, blank cells stop being invisible. That's the whole mechanism behind bid leveling, and you can do it in a spreadsheet, though at 50 bids across 18 trades the spreadsheet becomes its own job.
Read every exclusion out loud. Skimming exclusions is how they work. They're written in the language of limitation and they're usually accurate, which is exactly why they slide past a fast reader.
Then go looking for the outliers in both directions. A bid 30% under the pack is missing something, and a bid 30% over usually means that contractor understood a complication the others didn't see. The high bid is often the most informative document in the stack. Call that bidder and ask what they priced that nobody else did.
Call on the gaps rather than guessing at them. A ten-minute phone call to a sub before award is the cheapest information you will ever buy on that job.
Software is good at the mechanical part. Pulling line items out of proposals that arrive as PDFs, photos, and forwarded email, mapping them to a consistent scope list, flagging the blanks, and surfacing prices that sit outside the range for that trade. That work is pattern matching across a lot of documents, which is precisely what people are bad at on a Thursday evening and machines are reliably good at.
It is not good at judgment. Whether a bidder's exclusion is reasonable, whether a sub who is 15% high is worth it because they finish, whether a relationship is worth protecting through a tight bid cycle: none of that comes out of a document. Any tool that claims to pick your subs for you is selling something.
The honest framing is that automation buys back the hours you currently spend transcribing, and spends none of the judgment you've built over years of jobs. Companies with consistent quality control processes hold rework under 5% of budget 56% of the time, compared with 37% of companies without them. The processes are the point. Software makes them cheap enough to actually run on every job.
Documents arrive at Trade Agent the way they already arrive at you, which is to say however the sub felt like sending them. Forward the email, upload the photo, drop in the PDF. Arti reads what's there, maps the line items to your cost codes, and flags the figures that don't match what was agreed. Today that runs on invoices, which is where it catches the change nobody wrote down before it reaches the draw.
The bid side is what we're building now, and it's the same machinery aimed one step earlier in the job: same extraction, same cost codes, same gap detection, pointed at proposals instead of invoices. The reason to care about that continuity is what happens in month four. When the scope you awarded and the scope you're billed against live in the same cost codes, a surprise has something to be measured against.
"Every builder I've sat with can tell you exactly which job cost them money and exactly which line item did it," says Nic Widhalm, co-founder and CEO of Trade Agent. "They just found out in August instead of in March. The information wasn't missing, it was sitting in twelve PDFs nobody had time to read side by side."
Related reading: what a draw package needs, where change orders quietly take your margin, and the same bid problem from the subcontractor's side of the table.
You don't need to systematize all 18 trades this month. Pick the one that has burned you most often, write the exclusion list for it, and send it with the next bid package. Most builders find the gaps immediately, because the list is built out of jobs where the gap already cost them.
The builders who stop getting surprised mid-job generally started with one trade and one list.
Book a demo if you'd rather not run it out of a spreadsheet.
Collecting subcontractor bids, normalizing them into a comparable format, and checking that every required scope item is priced by someone before award. The goal is finding gaps while you still have leverage to fix them.
Arranging bids so scope items run down the page and bidders run across it. Comparing vertically instead of side by side makes missing line items visible as blank cells rather than as things you have to remember to look for.
A residential project generally involves 15 to 20 trades, and competitive bidding on each produces dozens of proposals. Custom builds with a full trade package routinely pass 50.
Because bids differ in what they include. An incomplete bid looks cheap until the missing work reappears as a change order, priced without competition once the sub is already on site.
A scope gap is required work that nobody bid. Scope creep is work added after the project starts. Gaps are a bidding failure and are preventable at no cost; creep is a documentation problem during construction.
The GC. Subs price the scope they understand to be theirs, and no individual sub sees the whole set of drawings the way you do. Assigning every required item is the general contractor's job.
Manually, expect the better part of a working day across 15 to 20 trades if you read the exclusions properly. Most builders don't have that day, which is why exclusions get skimmed.
Call the bidder before you do anything else. A bid well under the pack usually indicates a misread scope or a missing item, and the conversation costs ten minutes. Awarding it without the call is how gaps get bought.