How Subcontractors Bid GCs Without Losing Margin

How Subcontractors Bid GCs Without Losing Margin

This story is based on patterns we see in real estimating and proposal work. Names and identifying details have been changed.

Part one · The bid

The email from the general contractor was three sentences long. Marco forwarded it to me on a Tuesday afternoon with one line typed on top: “Do we have to eat this?” The GC, Hartwell Builders, wanted to know whether Marco’s masonry bid on a four-story medical office building included the 2-inch rigid insulation board drawn inside the exterior cavity wall.

Marco runs Westline Masonry, a crew of nine that has spent the last two years climbing out of storefronts and small retail into real commercial work. He had priced the brick, the cast stone, the ties, and the flashing, everything he could see as masonry. The insulation was a single line in one wall detail. It was also worth about $36,000 installed, and a wrong answer to Hartwell would mean carrying that cost for free.

The arithmetic is the easy part of a commercial subcontractor bid. The hard part is knowing exactly what scope you are bidding, what risk you are accepting, and how to say so plainly when the GC starts comparing numbers. This is the story of how one masonry bid turned from a routine takeoff into a scope and pricing problem, and the playbook we pulled out of it afterward.

A routine takeoff, at first

Westline came to us at Quotr a few weeks before that email, right after the bid package dropped. The plan was simple: review the drawings, run a masonry takeoff, price material and labor, and help Marco put a proposal in front of Hartwell. The exterior showed brick veneer, stone veneer, cast stone bands and sills, thru-wall flashing, weeps, cavity ties, control joints, and the insulation sitting in the wall assembly. We measured roughly 14,800 square feet of brick veneer across four elevations and about 380 linear feet of cast stone.

The quantities came together quickly. Then we got to the wall details, and the job stopped being a takeoff. In one section, you could see masonry, rigid insulation, an air and water barrier, sheathing, a steel lintel, and joint sealant all stacked into the same six inches. They touched on paper, which told us nothing about who owned each one. In many commercial sets, the rigid insulation and the air barrier fall under Division 07, and the sheathing under a separate framing or envelope contractor, unless the drawings specifically hand them to masonry. That was the moment the takeoff became a scope question.

Four bids, a wide spread

When Hartwell collected the masonry bids, the spread was wide. The low number sat around $362,000. Marco was at $428,500. Two others landed between $410,000 and $450,000. Hartwell told Marco he was “on the high side” and asked him to take another look.

The gap came from the scope. One sub had carried the cavity insulation, the joint sealants, the scaffold and telehandler, winter protection, sales tax, and the cast stone anchors. Another had left most of that out or assumed it was by others. Every document said “masonry bid” across the top, and the dollar difference was mostly a difference in what each price actually bought. Marco was simply the bidder who had included the most, which is what made his number look high.

The number kept moving

Our estimate changed several times before it was final, and that made Marco uneasy. The cast stone allowance became a firm quote once Acme Cast Stone sent their numbers. The labor reset when Marco walked me through how his crew actually runs, with lead masons working the wall while they supervise, laborers carried as direct hourly cost, and lead mason pay handled through his margin rather than a flat database rate. The insulation and a couple of sealant lines moved into exclusions and alternates after Hartwell’s questions came back.

Each of those changes had a reason, and we logged every one. Because we built each version in Quotr as a copy of the one before it, Marco could see exactly which line moved the number and why. By the time Hartwell started asking questions, Marco could answer any of them from a single screen, with the assumption sitting right next to the figure.

Writing the proposal

We split the proposal into four layers so every part of the number had a basis Marco could point to: the quantity takeoff; material priced from vendor quotes where we had them and clearly marked allowances where we did not; labor built from Marco’s real crew and production rates; and proposal language that drew the scope line cleanly. For the insulation, the wording stayed plain and cooperative:

Base masonry proposal includes masonry veneer installation, mortar and grout, masonry ties and anchors, weeps, cavity vents, thru-wall flashing, and related masonry accessories. Thermal insulation, including 2-inch rigid board and batt insulation, is excluded unless specifically assigned. If required, Westline can furnish and install it as a separate alternate, priced at $36,000.

That gave Marco a professional way to answer the email. He stayed cooperative, and he avoided signing up for $36,000 of envelope work through silence. If Hartwell wanted the insulation in the masonry scope, there was a clear price and a clear path to add it.

How it ended

Marco answered the next morning. He held his price. He sent the exclusion language, offered the insulation as a $36,000 alternate, and asked Hartwell to confirm whether the lower bidders had carried the insulation, the cavity sealants, and the scaffold, so everyone was being compared on the same scope.

Hartwell took a couple of days, then went back to the other bidders with the same scope questions, which was the entire point. Once every bid was leveled to the same scope, Marco’s number was no longer high. It sat in the middle of the field. What set Westline apart from there was the proposal itself: a clean base, clear exclusions, and priced alternates that let Hartwell compare every bid on equal terms and see exactly what he was buying. Marco won the job, and he won it without dropping his price. The clarity that protected his margin through leveling was the same clarity that made his bid the easiest one to award.

Everything Marco did on this bid comes down to a handful of habits that travel from one job to the next. That is the playbook.

Part two · The playbook

The same small group of subs bids to the same small group of GCs season after season, so the durable money lives in the method, and it compounds over dozens of bids. Six habits carried Marco through the medical office, and they carry through every commercial bid Westline makes now.

1. Level the scope before you discount

When a GC says your number is high, find out why before you touch the price. A wide spread usually means the bidders carried different scopes, so the first move is to confirm whether everyone included the same items: insulation, flashing, sealants, cast stone accessories, equipment, and tax. If the others left out what you carried, re-present your bid as a clean base with the differences priced as alternates, so the comparison becomes fair. Only once the scope is genuinely equal does the number itself become the question. Figure 1 lays out four situations, starting with how to set the bid up before you submit, and the right move for each.

Quotr AI chart of four general-contractor responses to a subcontractor bid — "you're high," "you're low," a rival's exact figure, and setup before submitting — with the recommended move for each.

[Figure 1: Responding to a GC without giving away margin: four situations and the move for each.]

Two of those situations catch subs off guard. A GC who says you are low is handing you a warning worth checking, because a number under the field often means you dropped scope the others kept. A GC who feeds you a rival’s exact figure has drifted into bid shopping, where the right answer is to hold your scope and compete on clarified work.

2. Cost is your floor, price is a market decision

Measure your true cost precisely and protect it. Material, labor, equipment, vendor quotes, mobilization, tax, and the way your crew is actually paid are the one part of the bid you fully control, and the number you should never shave to win. The price you submit is that cost plus a margin, and the margin is a judgment about the market. When work is scarce and crews are hungry, it comes down. When everyone is busy, and the GC has few options, it goes up. Your cost tells you where the floor is, and the market tells you how far above it you can stand. (For the mechanics of building that number, see how to price a construction job.)

3. Use alternates to protect your margin

Handle unclear scope out loud. Put ambiguous items into clear exclusions and price them as alternates, so the base stays clean and comparable while the GC keeps a path to add the work. This also gives you the right lever when you have to come down. Cutting the price hands over profit on work that is still yours. Moving a scope item out to an alternate lowers the base while the margin on the rest stays intact. Figure 2 shows the difference.

Quotr AI comparison showing that cutting the bid price eats into margin, while moving a scope item to a priced alternate lowers the same number but protects margin on the retained work.

[Figure 2: Cutting the price lowers the number by eating into your margin. Moving a scope item to an alternate lowers the same number while the margin on the work you keep stays intact.]

4. Carry three numbers, show one

Decide your pricing range before the pressure starts. Keep three numbers on every bid. The walk-away price is your floor, the true cost plus the minimum margin you will accept, and it stays internal. The target price is where most bids should sit, the walk-away plus a healthy market margin. The strategic price is a thinner margin you might accept for a job genuinely worth winning, and it carries a hard rule: it still clears the walk-away, and it is justified only when the future value is concrete, a named GC with real upcoming work. Figure 3 shows how the three relate.

Quotr AI — The Three Prices Behind a Bid

[Figure 3: The three prices behind a bid: cost is known, but where you land above the walk-away line is judgment.]

5. Make every bid feed the next one

Turn each bid into a record. For every job, keep the bid amount, the true cost, the submitted price, the GC’s feedback and range, whether you were high or low, whether you won or lost, and why, and the scope you included or excluded. Then, on the jobs you win, keep the actuals: labor days, material cost, change orders, and final gross profit. The actuals are the step most subs skip, and they are what tell you whether your estimate was any good. Kept up for twenty or thirty jobs, the records start to show which GCs are worth chasing, which scope keeps getting pushed onto you, and which unit prices are quietly costing you bids. Figure 4 shows the loop. (Many of these patterns show up in our roundup of common construction estimating mistakes.)

Quotr AI feedback loop from bid to submitted price to win/loss to job actuals and back, highlighting job actuals as the step most small subcontractors skip.

[Figure 4: Estimating as a feedback loop: the job actuals are the step almost every small sub skips, and the one that makes the database worth keeping.]

A subcontractor estimate is a living bid position that keeps changing as scope, responsibility, vendor pricing, and GC questions become clearer.

Keeping that position legible is its own discipline. Saving each version and comparing them line by line is what lets a sub explain why a number moved, the way Marco answered Hartwell from a single screen. Figure 5 shows that kind of comparison on a masonry estimate.

Quotr AI version-compare view placing two saved estimate versions side by side and flagging every line that changed between bids, so a subcontractor can explain why the number moved. Figures illustrative.

[Figure 5: Quotr’s version compare puts two saved versions of an estimate side by side and flags every line that moved, so a sub can explain exactly why a number changed between bids. Figures are illustrative.]

6. Win the relationship, not every job

Aim for a profitable win rate. Winning often at a thin margin can earn less than winning less often at a healthy one, because expected profit is your markup multiplied by the odds of winning. Pricing to win every job earns little, and pricing for a fat margin wins almost nothing. The money sits in the middle. Figure 6 shows the curve.

Quotr AI curve of expected profit against bid price, with thin-margin/high-win and fat-margin/low-win at the low ends and peak profit in the middle.

[Figure 6: Expected profit as a function of price: a thin margin with a high win rate and a fat margin you rarely win both sit at the low ends, and the profit is at the peak.]

Before you price at all, decide whether the job is worth winning. A clear scope, a fair GC, local work in your strength, and real repeat potential earn your sharper pricing. A vague scope, a price-only GC, a punishing schedule, or a crew already full are reasons to add a risk margin or to pass. Walking away from the wrong job protects the capacity to win the right one well. Figure 7 sorts the call.

Quotr AI job-triage matrix scoring scope clarity, GC type, schedule, and crew availability to set margin posture and decide whether to bid at all.

[Figure 7: Triage the job before you price it: where it lands sets your margin posture, and whether to bid at all.]

Over enough cycles, the durable edge is reputation. A sub who bids clean scope, answers leveling questions like a professional, and holds a number he can defend becomes the default invitation, which means he bids into softer competition on the next job. That is worth far more than a fat markup on any single one.

That reputation can reach past the GC. On larger or negotiated jobs the developer can have a say in which subs get used, and what owners remember most is which subs kept their work inside the bid and which sprang change orders on them. A lot of change orders trace back to scope nobody clearly owned, so the same clean exclusions and priced alternates that protect your margin also spare the GC an awkward budget conversation with the owner. Marco won the medical office on the strength of a clear bid and a fair number, and that same reputation is what keeps Westline at the top of Hartwell’s list for the next one.

The short version

Know your cost cold, price to the market, draw your scope clearly, choose your jobs, learn from every bid, and treat each clean proposal as a deposit in a relationship. The most profitable subs are the ones a GC trusts most and can level fastest, and who know their own floor well enough to bid with confidence. Marco’s job that week reached past telling Hartwell how much. It reached toward becoming the sub Hartwell calls first, which is the number that compounds.

Bid your next GC job without giving away margin

Quotr is built for exactly this workflow: level scope cleanly, track every assumption next to the number, compare bid versions side by side, and learn from each job — so your bid is the easiest one to defend and the easiest one to award.

Start a free trial and run your next package through it, or book a walkthrough and we’ll show you the version-compare and scope-leveling workflow on one of your own bids. See how it works for contractors and subcontractors.

A note on the details

Names, company names, dollar figures, and project details in this article are illustrative and have been changed for confidentiality. The scenario is a composite drawn from real Quotr estimating and proposal engagements, written to show how the work goes rather than to report any single client’s bid.


Published on the Quotr.ai blog. Quotr.ai is an AI-powered construction estimation, takeoff, and procurement platform based in San Francisco.

Related Stories