Pricing a commercial construction project is part cost model, part risk judgment, and part communication. The number has to cover real work, reflect schedule and site conditions, and still stand next to competitors who may be using different assumptions about what is included.
The workflow below is written for GCs, specialty subs, and in-house estimators bidding negotiated tenant improvement or hard-bid commercial work. It is not a residential $/SF shortcut, and it is not a takeoff tutorial. How that commercial book differs from a house quote is in commercial vs residential construction estimating. Quantities still come from STACK, Bluebeam, or whatever you already use to measure drawings. Pricing is what you do after the tape is honest.
A through-line runs the whole article: an illustrative 4,200 SF office tenant improvement — vacant second-floor suite, Class B building, standard shift, GC self-performing interiors, electrical and HVAC bought or quoted. Every dollar that looks like a cost is a 2026 U.S. mid-market example. It is not RSMeans. It is not a real client. The hang-and-finish gypsum build-up is not repeated here; that table lives in how to build a commercial unit rate library. The 3/4" EMT build-up lives in how unit rate estimating works.
1. Clarify scope before you open a spreadsheet
Read drawings, specs, and addenda together. List what you will price, what is allowance, and what is by others. Ambiguity at this stage is margin leakage after award — not a documentation problem.
On the 4,200 SF suite, the set is architectural, electrical, mechanical, and a reflected ceiling plan. Before anyone measures, three conflicts are already visible:
- Existing above-ceiling MEP is not as-built. Relocations could be nothing, or a week of premium time.
- The door schedule shows a standard commercial hardware set; the spec names a heavier one.
- The RCP notes ACT tile as "owner furnished"; the finish schedule does not.
Issue RFIs. Do not guess in a cell.
- RFI-01 (existing conditions): who owns undocumented MEP moves above the ceiling? Until answered, carry a contingency and an exclusion, not a silent bump in the drywall rate.
- RFI-02 (hardware): confirm the specified set. The door rate is EA of door+frame+hardware. The cheaper schedule is a different rate, not a discount.
- RFI-03 (ACT): if tile is OFCI, the ACT rate is grid, labor, and tile handling only. Do not "split the difference" on a full tile+grid number.
Also confirm, in writing:
- Bid form requirements — lump sum on the signature page, unit prices, alternates, bonds.
- Schedule — four-week vacant build vs after-hours in an occupied floor. Labor efficiency is not the same.
- Long-lead items — doors, light fixtures, HVAC gear — that need allowances or escalation language.
- Who supplies fixtures, whether demo includes anything beyond standard partition removal, and whether finishes are allowance or fixed selection.
If the invite is silent, your proposal exclusions have to be loud. That is cheaper than discovering the gap in a kickoff meeting.
2. Build a quantity takeoff tied to units
Takeoff quantities should map to how you install and buy — not only how the architect counts. Group work by assembly or trade, use consistent units, and cross-check major quantities against similar suites you have already built. Takeoff is the measured list — not the estimate and not the proposal. The three-document split is in takeoff vs estimate vs proposal.
This is not takeoff software. Measure in STACK, Bluebeam, or your current tool. Then map those quantities to named rates. Keep the unit identical on both sides of that handoff. If Bluebeam is measuring wall SF by face, the gypsum rate is per face. If someone takes off partition LF and converts with a height factor, write the conversion down.
Illustrative takeoff on the 4,200 SF suite (openings deducted where that is the shop rule):
| Measured item | Quantity | Unit | Notes |
|---|---|---|---|
| Hang+finish 5/8" Type X, walls ≤10', both faces | 4,200 | SF | Level 4, 20ga studs by interiors |
| 20ga studs and track | 2,100 | SF of wall | Partition area, not suite area |
| ACT 2x2, grid labor; tile OFCI | 3,800 | SF | Existing grid reuse where the RCP allows |
| Paint, walls, L4-ready | 4,200 | SF | Paint by interiors; hang/finish already Level 4 |
| Door+frame+hardware, 3070 HM | 8 | EA | Spec hardware, not the cheaper schedule |
| 3/4" EMT, exposed, ≤10' AFF | 1,850 | LF | Raceway only; wire and boxes separate |
| Duplex / data devices | 64 | EA | Device, ring, plate; not the homerun |
| 2x4 LED lay-in | 48 | EA | Fixture and install; controls separate if spec'd |
| HVAC adjust | 1 | LS | Sub quote — not unit-rated in this example |
| Demo / patch | 1 | LS | Standard partition demo; no abatement |
Electrical and low-voltage shops can electrical estimating software for repeat unit-rate work to keep raceway, device, and lighting rates in one library.
Sanity checks before you price: 1,850 LF of 3/4" EMT on 4,200 SF is about 0.44 LF per SF of suite — plausible for a modest power-and-data TI, suspicious if it were 0.15 or 1.2. Eight doors on a small suite is a cut-up office, not an open floor. 4,200 SF of gypsum on a 4,200 SF suite means you are counting wall faces, not floor area; that is expected, and it is why suite-$/SF is a terrible first number.
When an addendum lands, change the quantity in takeoff and re-extend. Do not "add 10% for the IDF" on a lump line.
3. Apply unit rates and loaded costs
Multiply quantities by unit rates that already include labor burden, materials, and known equipment for that condition. For one-off items, build a mini-estimate inline, then save it as a reusable rate only if the scope will repeat.
Validate labor productivity against recent crews and this site, not a national average. Update material from current quotes. Add mobilization, permits, and supervision as line items or as loaded overhead — pick one home, and say which.
On this suite, two rates are already built in the other guides. Use them as extensions; do not rebuild the tables.
- Hang and finish 5/8" Type X, Level 4, interior walls ≤10' on 20ga studs: $2.54/SF direct (illustrative). See the library post. 4,200 × $2.54 = $10,668.
- 3/4" EMT, exposed, ≤10' AFF, commercial TI: $10.36/LF direct (illustrative). See how unit rate estimating works. 1,850 × $10.36 = $19,166. The published 3/4" EMT, exposed unit is at 3/4" EMT, exposed — do not mix those packets.
The rest of the stack below is also illustrative 2026 U.S. mid-market. These unit prices are not worked examples. They exist so the overhead and fee math has a denominator.
| Line | Qty | Unit | Direct rate | Extension |
|---|---|---|---|---|
| Hang+finish 5/8" Type X, L4, ≤10' | 4,200 | SF | $2.54 | $10,668 |
| 20ga studs and track | 2,100 | SF wall | $3.85 | $8,085 |
| ACT 2x2, grid labor; tile OFCI | 3,800 | SF | $4.15 | $15,770 |
| Paint, walls | 4,200 | SF | $0.92 | $3,864 |
| Door+frame+hw, 3070 HM, spec set | 8 | EA | $1,480 | $11,840 |
| 3/4" EMT, exposed ≤10' AFF | 1,850 | LF | $10.36 | $19,166 |
| Duplex / data devices | 64 | EA | $88 | $5,632 |
| 2x4 LED lay-in | 48 | EA | $215 | $10,320 |
| HVAC adjust (sub quote) | 1 | LS | $28,400 | $28,400 |
| Demo / patch | 1 | LS | $7,200 | $7,200 |
| General conditions, 4 weeks | 4 | WK | $4,100 | $16,400 |
| Direct subtotal | $137,345 |
This is an interiors-plus-electrical-plus-HVAC-adjust package, not a turnkey TI. Flooring, millwork, plumbing, fire alarm, and permits sit in allowances or by others. Do not compare $137,345 ÷ 4,200 SF ($32.70/SF direct) to a published full-TI $/SF.
Document the assumptions you will need if the client negotiates: vacant, standard shift, tile OFCI, spec hardware, HVAC as a quoted lump, existing MEP moves excluded pending RFI-01.
4. Add overhead, fee, and contingency deliberately
Overhead recovers home-office cost. Fee is profit. Contingency covers unknown risk on this job. Some companies load overhead into each unit rate; others apply it once at the proposal level. Either works if it is consistent. Mixing them is how interiors get taxed twice.
On this example, keep library rates direct. Apply markup on the proposal, matching how overhead and markup work in the product. The full stack — and why a public unit rate leaf shows 10% then 10% without contingency — is in overhead, fee, and contingency on commercial bids.
- Overhead: 12% of direct = $16,481
- Direct + overhead = $153,826
- Fee: 8% of (direct + overhead) = $12,306
- Contingency: 3% of direct, tagged to RFI-01 existing above-ceiling MEP = $4,120
- Proposal total: $170,252
That is about $40.54 per SF of suite for this defined package. Contingency is not a hidden bump inside the $2.54 gypsum rate or the $10.36 EMT rate. If RFI-01 comes back "owner owns unforeseen MEP moves," drop the $4,120 and keep the exclusion. If it comes back "GC owns it, no as-builts," 3% may be light — put a stated allowance on the proposal instead of padding every LF.

On competitive bids, do not cut fee first without knowing which line is already thin. A win/loss log that says "lost on price" is useless if HVAC was the outlier and Type X was fine.
When lump sum is still right
Unit rates are the default on repeat commercial scopes. Lump sum still belongs on the page in a few cases:
- A sub quote you do not break down. HVAC on this suite stays one LS line because the GC is not running a mechanical unit-rate library. Do not fake VAV unit rates from a PDF total.
- A one-off assembly. A custom reception desk used once is an EA mini-estimate, not a library rate, until you have installed it twice.
- A bid form that only accepts a lump on the signature page. Internally you can still extend units. The owner-facing total can be one number. Publish unit prices only when the form asks for them.
- A genuine allowance where the work is not measurable yet (finish selection not made, existing conditions sealed). Call it an allowance. Do not call it a unit rate.
The failure mode is using lump sum because the library was empty, then defending that number on a change order. After award, price the change from the same unit rates that won the job.
5. Write scope and payment terms clients can approve
Numbers without clear scope create change orders and disputes. Pair line items with scope language, inclusions and exclusions, and payment terms that match how you actually bill.
On the 4,200 SF suite, the proposal should repeat what the rates already know:
- Gypsum is hang and finish to Level 4, walls ≤10', studs separate, paint separate, ceilings separate.
- EMT is 3/4" exposed raceway ≤10' AFF; conductors, boxes, and devices are other lines.
- ACT tile is owner furnished; grid and labor are in the number.
- Hardware is the specified commercial set.
- HVAC is the quoted adjust; it is not a full mechanical redesign.
- Unforeseen above-ceiling MEP relocation is excluded or covered by the stated contingency/allowance — one of those, not both, and not silence.
Payment terms for a short vacant TI often look like: deposit or first progress on mobilization, monthly progress against a schedule of values, retainage (10% to 5% at substantial is common), and a validity period (30 days is typical while steel, gypsum, and fixtures are moving). Write the terms you will actually invoice. A net-90 surprise after a 4-week job is how a "win" becomes a cash problem.
Construction proposal software should let you send an online review link, capture accept or decline, and keep a PDF record so pricing and agreement stay linked. Do not leave acceptance in an email thread that the PM cannot find.
6. Review internally before send
A second set of eyes is cheaper than a public addendum.
On this package, the review is specific:
- Quantities and extensions. 4,200 × $2.54 and 1,850 × $10.36 are arithmetic; the risk is a missed homerun or double-counted wall faces. Recheck the takeoff units against the rate names.
- Benchmark. Last three vacant-suite interiors-plus-MEP-adjust packages, same scope definition, ran an illustrative $36–$48/SF of suite. $40.54 sits in the band. A $22/SF total would mean missing trades; $70/SF would mean you accidentally loaded a turnkey TI against this thin package.
- Bid form. If the invite asked for unit prices on gypsum and EMT, export those lines as client-facing unit prices (direct plus the stated OH/fee method). Do not send the internal wage rows.
- Alternates. After-hours occupied, Level 5 in the conference room, or owner-supplied vs contractor-supplied fixtures — each is a quantity and a rate, not a round-number "add $8,000."
- Validity, exclusions, and RFI status. Unanswered RFI-01 must appear as exclusion, allowance, or contingency. It cannot appear as hope.
- Double-load check. Direct rates in the library, OH and fee on the proposal, once. See the FAQ if the shop is still mixing methods.
If a junior estimator cannot explain why EMT is $19,166 without calling the person who built the rate, the includes are still in someone's head. Fix that before send.
7. Track outcomes and refine
After bid day, record win, loss, or no-decision, with whatever competitor intel you actually have. Feed that back into rates and markup. Pricing is a loop. The shops that improve treat every proposal as data, not as a PDF that dies in a folder.
On the 4,200 SF suite, suppose the job is lost. "Lost on price" is not a finding. Split the outcome:
- HVAC sub quote was $6,000 above the number that won. That is a vendor problem, not a gypsum-rate problem. Do not "update all rates 3%."
- EMT at $10.36/LF was in family with the winner's published unit prices. Leave it. Version it when stick or wages move, not because this bid lost.
- You included spec hardware; the competitor priced the door schedule. That is an RFI-02 failure if you never asked, or a scope win if you did and the owner later pays the difference on a change order they should have caught at bid.
Log the rate versions you used, not only the total. The test is the same one the library article uses: which proposals used the $2.54 Type X rate, and which used the next version after a wage bump? If that is a scavenger hunt through email, you do not have a pricing system. You have files.
Unit rate estimating software is the place that loop can live: library, proposal, response, change order, and history, without rebuilding the EMT math for every invite. Takeoff stays where it is.
Unit Rate AI maintains a private unit-rate library and turns it into client-ready proposals. Keep labor, material, and markup in one place, apply overhead and fee the way your shop recovers cost, and send a branded link. See pricing if you want to run this sequence on the next TI.
