We recently ran the first episode of The Build, covering subcontractor bid leveling.
Tyler Hurst, VP of Marketing at Pivotly, opened with the problem. Three quotes land for the same package and none of the line items match, so one of them looks cheapest. Sometimes it genuinely is the cheapest. Sometimes it only looks that way because a scope line was left out, or because a number moved wrong on the way into your sheet. You find out when the change order arrives, after the award. 
Then Danielle Guruge, Director of Customer Success, ran one HVAC package all the way through Pivotly PreCon on screen. She created the project with a client and a due date, then uploaded the documents. From there the subcontractor bid packages drafted themselves by CSI and division, and she reviewed them line by line before sending them out to subs. The quotes came back and were read against the scope that went out, item by item, marked included or excluded. A person then confirmed each one for the rest of the team. The leveling ran side by side after that, with every line tagged by where the number came from. Award followed, and then a recap by division that starts bid finalization.
Her closing line is the one worth keeping. Bid leveling comes down to making sure every subcontractor is compared against the same scope. That is how you pick the right partner and protect your margin.
We took questions live as well. Where to start when a team is wary of running documents through AI, and why a general purpose chat gives two estimators two different answers to the same question.
Why the demo starts before the quotes arrive
More than half the demo went by before a single quote appeared on screen, and that was deliberate. The Build starts with subcontractor bid packages because the comparison at the end is decided by the request at the start.
You cannot level your way out of a bad package. If the scope you sent left the controls wiring ambiguous, three subs will answer it three different ways. No comparison you run afterward will tell you which of the three was right.
So the rest of this is the part that rarely makes it into a leveling guide, and it is where comparable bids actually come from.
Start subcontractor bid packages at the division line
Organizing bid packages by CSI division gives every request a boundary you can defend. Division 23 is mechanical and Division 26 is electrical. So when a sub asks who carries the thermostat wiring, the division line is the answer, and it is the same answer for every sub on that package.
That boundary does more work later than it appears to be doing now. Bid packages by CSI division give your leveling sheet its rows, and they give the award recap its structure.
Watch the seams while you are in there. Controls, fire alarm and temporary power move between divisions from job to job. If two requests overlap at the edges, the overlap surfaces twice: once as a line two subs both priced, and once as a gap that nobody priced at all. Either one is cheaper to catch this week than on bid day.
One small habit helps here. Set the due date when you create the project rather than later. A precon team carrying six pursuits needs to know which one closes first, and a due date listed on the project from the beginning is the easiest way to hold that order.
Practical bid-leveling tactics in your inbox.
What a complete bid package contains
Before anything goes out, every bid package should carry six things. Most of the rework you do in leveling traces back to one of them being missing.
- The division and the trade boundary, stated in writing.
- Every scope line, with the document and section it came from.
- Allowances you want carried, named and valued, so that three subs do not pick three different numbers.
- Alternates you want priced on their own rather than folded into the base.
- The exclusions you are asserting up front.
- And finally, the due date, along with the format you want the quote back in.
That last one costs nothing and saves you an afternoon of rework. A sub who knows you want line items rather than a lump sum will usually send them.
Pull scope from the whole document set

The line that gets missed is almost never in the RFP. It is in the spec book three hundred pages in, or on a detail drawing that nobody opened.
So the document set behind your subcontractor bid packages has to be the whole set. The RFP, the spec sections, the technical drawings, and every addendum that has landed. A package built from the RFP alone reads as complete and quotes light, and the difference comes back as a change order after the award.
This is also the part of the week that eats estimators. Reading four hundred pages to find the sixty lines that belong in a mechanical package is real work, but none of it is judgment. Judgment is deciding whether the allowance looks light, and everything that gets you to that question is transcription.
Pivotly PreCon reads the whole set and drafts your bid packages by division. The subcontractor scope of work is on the table before you open a spreadsheet. From there you review what came out, correct what needs correcting, and add what the documents left unsaid.
Check every line back to the document it came from
A scope line you cannot trace is a scope line you cannot defend. Reviewing subcontractor bid packages is not only a question of whether the number is right. It is also a question of whether the line was pulled in the right context. A quantity that is correct for the second floor and wrong for the building reads as perfectly fine on a spreadsheet.
Every line in a Pivotly PreCon package opens to the document it came from. Click the line, land on the source, confirm the context, keep moving. You are checking in seconds instead of hunting for where the line lived.
Say what the request does not cover
Most of a comparison problem is created by silence. A sub prices what the documents appear to ask for. Anything the documents leave open, they will resolve in their own favor, because that is how they stay in business.
So write the boundary down. Name what sits outside this trade and who is carrying it, then say what happens to anything left unconfirmed. Our Bid Board System sets that default in one line you can copy: anything not confirmed in writing will be carried as excluded. Put that in the request and you have decided the ambiguity before it becomes a change order.
None of that is software. It is the part of the subcontractor scope of work that only you can write. It is also what makes the quotes you get back worth comparing.
Send subcontractor bid packages the same way every time
Once the packages are right, send the same thing to everyone bidding the work: same scope lines, same order, same format, same due date. Subs will still quote in their own shapes, and that is their business to run. The ask is the part you control.
Export the bid packages one at a time or all at once, in the format you already attach to an email. Nothing about the way you send has to change for this to be worth doing.
What the request decides once the quotes come back
The subcontractor bid packages you sent decide how much work the comparison takes. When a quote lands it gets read against the scope you sent, item by item. That reading only exists because the scope went out as one list rather than five.
Everything after it follows from that: the confirmation, the tagging, the side by side view and the recap at award. If you want the mechanics of the comparison itself, our guide to leveling subcontractor quotes covers what to do when no two bids match.
If your team is wary of running documents through AI
The objection came up live on the webinar, and it is the right one to raise. A number nobody checked is a number nobody can stand behind.
Three things make it answerable. Every extracted line traces back to the document it came from, so checking is quick rather than archaeological. Nothing leaves your hands until a person has reviewed it, and every line stays editable up to that point. And where the extraction gets something consistently wrong, the prompts behind it are written by our team, and they can be tuned to your documents.
There is a practical benefit underneath all of that. The documents are read once, and everyone on your team works from that same result. Two estimators asking the same spec book the same question stop getting two different answers back.
Where to start on your next bid
Take one trade on the pursuit you are working right now, build the request the way you always would, and keep the file. Then run the same documents through and put the two side by side.
Compare them on coverage, because the lines one found and the other missed are the whole answer. Subcontractor bid packages are the cheapest place to fix a leveling problem, since you fix it once and every quote that comes back inherits the fix.
And before you know it, capacity changes. Same estimators, same headcount, and more pursuits your team can carry at once.

See it on your own bids
Stop paying estimators to retype PDFs.
Send us your bid docs. See the output on your own files in a free working session.
Try it on your bid docs

