How to Collect Budgeting Information from Subcontractors (and Get Numbers You Can Compare)
To collect budgeting information from subcontractors that you can actually compare, send every sub in a trade the same bid form: your line items by cost code, quantities where you know them, required boxes for exclusions and assumptions, and a validity date. Say up front whether you want a budget number for an early estimate or a firm price, because subs price those differently.
Most GCs lose time after the numbers arrive. One electrician sends a lump sum, another a 14-page proposal, and a third forgets the temporary power. Fixing the question saves the week of phone calls that leveling turns into.
Tell subs which number you want
A budget number at concept stage and a firm bid at tender are different requests. Subs give early budget numbers on trust, often for free, and the best ones stop answering if every budget request turns out to be a disguised bid.
Say which one you're asking for in the first line of the request:
- Budget pricing: a range or a rough figure from schematic drawings, to set the project budget. Give the drawing set and its date, and say there's no award from it.
- Firm bid: a price they'll hold for a stated period, against a defined scope and drawing list.
Then tell budget-stage subs how it went. A sub that helped price the scheme and never heard back won't help on the next one.
Organise bid packages by cost code
Split the work into packages by trade, using the same cost codes you'll use for the budget and the job cost report. Many US contractors use CSI MasterFormat, which CSI describes as the industry's standard language for project documentation. The current edition is MasterFormat 2026.
Each package should state the scope in plain words, list the drawings and specification sections by number and date, and spell out the scope boundaries with the neighbouring trades. Most gaps in leveling sit on those boundaries: who supplies the access, who patches after the cores.
Send a bid form, not a blank page
A bid form is the single biggest fix. Give each sub the line items you want priced, and require an answer on every line:
Example bid form lines for an electrical package
| Line | What you ask for |
|---|---|
| 26 05 00 Common work results | Lump sum, with labour and material shown separately |
| 26 24 00 Switchboards and panelboards | Lump sum, with equipment lead times |
| 26 51 00 Interior lighting | Unit rate per fixture type and total |
| Temporary power and lighting | Included, excluded or priced separately |
| Alternate 1: LED upgrade in car park | Add or deduct amount |
| Allowances | Stated amount you've set, to be carried by every bidder |
| Exclusions and assumptions | Required, free text |
| Price validity | Date the price holds until |
Add a file upload so subs can attach their own breakdown, but make the form the price you compare. Online tools help here. Buildertrend's bid requests let subs price line items against cost codes, and a document request in ExpiryEdge can carry the same lines as fields with an upload alongside.
Level the bids side by side
Put every bidder in a column and every line item in a row. Procore's bid leveling guide describes the same layout, and the point is to find gaps before you compare totals.
Keep the same line items from bid package through to the schedule of valuesFor each gap, either ask the sub to price it or put in a plug number from your own estimate, and label the plug clearly. Log every scope question and its answer, and send material clarifications to all bidders in the trade so everyone prices the same thing.
Compare exclusions as carefully as prices. A low number that excludes hoisting, out-of-hours work or design isn't low.
Carry the bid lines into the schedule of values
Once you award, ask the sub to build its schedule of values from the same lines it priced. On AIA contracts, that's the G703 continuation sheet used with the G702 pay application. For subcontracts, AIA's G703S breaks the subcontract sum down using a schedule of values the subcontractor prepares, and its total should equal the original subcontract sum.
When the SOV matches the bid form, each pay application checks against something you've already agreed. When it doesn't, your project manager spends every month reconciling two sets of numbers.
Collect the paperwork at the same time
The winning sub will need insurance, a licence check, a W-9 and a signed subcontract before mobilising. Ask for them in the award request, not three weeks later. Our subcontractor onboarding checklist lists what to collect.
ExpiryEdge can send the bid form and the onboarding documents as no-login links, chase subs until they respond, and export answers as CSV for your leveling sheet. It doesn't level bids or run pay applications, so it sits alongside your estimating tool. Plans start at $29 a month with a 14-day free trial. For tools that do level bids, see our comparison of subcontractor management software.
Frequently asked questions
Budget pricing is an early, unbinding figure from schematic drawings that helps set the project budget. A bid is a firm price the sub will hold for a stated period against a defined scope and drawing list.
Line items matched to your cost codes, unit rates where quantities are known, alternates, any allowances you set, exclusions and assumptions, and the date the price is valid until. Add a file upload for the sub's own breakdown.
Put bidders in columns and line items in rows, mark every gap or exclusion, then either get the sub to price it or add a labelled plug from your estimate. Compare totals only after the scopes match.
Yes, ideally line for line. If the sub's schedule of values uses the same lines as its bid form, every pay application checks against figures you've already reviewed.



