Bid or No Bid? A Steel Fabricator Framework
A bid/no-bid decision framework is a short scorecard you run on every invitation to bid before anyone opens the drawings. Score the job on fit, risk, capacity, relationship, and margin potential; bid the jobs that clear your threshold and decline the rest in writing. Most small fabrication shops that adopt one find they were spending 30-40% of their estimating hours on jobs they had almost no chance of winning — or worse, jobs they could win but should not.
Why Bidding Everything Is the Most Expensive Habit in Fabrication
Run the math on your own shop. Say your estimator spends 6 hours on an average takeoff and pricing exercise, you bid 120 jobs a year, and your hit rate is 15%. That is 720 estimating hours producing 18 wins — 612 hours, roughly fifteen work weeks, spent pricing jobs you lost.
Some of that is the unavoidable cost of playing. But a chunk of it is predictable losses: the GC who has never once awarded you a job but keeps you on the list for leverage, the job type your shop has lost eight straight times, the project 300 miles away against a fabricator whose yard is next door. Those bids were decided before you opened the PDF.
The habit persists because saying no feels like leaving money on the table. It is not. Every hour spent on a 3%-probability bid is an hour not spent sharpening a 40%-probability bid — or following up on one you already submitted. Shops that track and organize their bids can see this pattern in their own data within a quarter.
The 9-Question Scorecard: Fit, Risk, Capacity, Relationship, Margin
Score each question 1-5. A 5 means "strongly in our favor," a 1 means "strongly against." Total the column. The whole exercise should take 15 minutes, not an afternoon — the point is to spend a little time deciding so you do not waste a lot of time estimating.
| # | Category | Question | Score 5 looks like | Score 1 looks like |
|---|---|---|---|---|
| 1 | Fit | Is this our kind of work? | Structural mid-rise, the tonnage and connections we run weekly | Miscellaneous ornamental we have touched twice |
| 2 | Fit | Is the size in our sweet spot? | 60-250 tons, our proven range | 900 tons, 4x our largest completed job |
| 3 | Risk | Are the drawings and scope clean? | Full IFC set, clear steel scope, schedule realistic | 30% DDs, "fabricator to verify all," compressed schedule |
| 4 | Risk | Are the contract terms survivable? | Standard AIA terms, escalation language allowed | Pay-if-paid, no price escalation clause, liquidated damages with no cap |
| 5 | Capacity | Can the shop absorb it when it lands? | Fabrication window hits our slow quarter | Delivery overlaps our two largest booked jobs |
| 6 | Capacity | Can we handle the detailing and PM load? | Existing detailer has open capacity | Would need to hire or sub out detailing at market peak |
| 7 | Relationship | Do we know the buyer, and do they award us work? | GC has awarded us 3 of the last 6 bids | Never won with them in 10+ attempts |
| 8 | Relationship | How many bidders, and who are they? | 3 invited bidders, we are the local shop | 8+ bidders including two low-cost regionals |
| 9 | Margin | Can we realistically hit our target margin? | Complexity favors our equipment; few can do it | Commodity work that will go to whoever is hungriest |
Thresholds that work for most small shops:
| Total score | Decision |
|---|---|
| 36-45 | Bid, and bid hard — assign your best estimator |
| 28-35 | Bid if the week allows; standard effort |
| 20-27 | Bid only with a strategic reason (new market entry, filling a hole in the schedule) |
| Below 20 | No bid. Decline in writing, same day |
Two rules that keep the scorecard honest. First, any single question scored 1 in the Risk category triggers a discussion regardless of total — a 38-point job with uncapped liquidated damages can still sink you. Second, the person who wants to bid the job does not score it alone.
Scoring Worked Example: Two Real-World Job Profiles
Job A: 140-ton warehouse expansion, repeat GC, 45 miles out. Full construction set, standard purchase order terms, delivery in your typical spring lull. Four bidders. Straightforward W-shape and joist package — commodity work, but you have won this GC's last two similar jobs.
Job B: 380-ton hospital addition, new GC, 220 miles out. Design-development drawings with "coordinate with mechanical" scattered through the steel notes. Pay-if-paid contract, no escalation relief, eight bidders. Big number, prestigious project, and the estimator is excited about it.
| Question | Job A | Job B |
|---|---|---|
| 1. Our kind of work | 5 | 3 |
| 2. Size sweet spot | 5 | 2 |
| 3. Drawings/scope clean | 4 | 1 |
| 4. Contract survivable | 4 | 1 |
| 5. Shop capacity | 5 | 2 |
| 6. Detailing/PM load | 4 | 2 |
| 7. Buyer relationship | 5 | 1 |
| 8. Bidder field | 3 | 1 |
| 9. Margin potential | 3 | 3 |
| Total | 38 | 16 |
Job A is an easy bid — and worth extra care, because it is exactly the kind of job you lose by being sloppy, not by being expensive. Job B is a no-bid three different ways: two Risk questions scored 1, the total is under 20, and the honest answer to "why do we want this?" is that the tonnage is exciting. The revenue is a mirage if the terms can bankrupt you on a steel price spike.
Notice what the scorecard did: it converted an emotional argument ("it's a $2M job!") into nine specific disagreements you can actually resolve.
Red Flags That Should End the Conversation Early
Some signals justify skipping the scorecard entirely. If you see one of these, decline before anyone spends an hour on drawings:
- Bid due in under a week on a job that needs three. The GC either has a favored fabricator already or is disorganized. Both are losses.
- "We just need a budget number." Free estimating dressed up as opportunity. Offer a per-ton conceptual range in 15 minutes or pass.
- The buyer will not tell you who else is bidding or how many. Usually means the list is long.
- Payment history you can verify is bad. One call to another sub who worked for this GC is worth more than any scorecard question.
- Scope that cannot be pinned down in one phone call. If the GC cannot say whether stairs, rails, and deck are in your package, the change-order fights are already scheduled.
- Contract terms that shift steel price risk entirely onto you with no escalation mechanism, on a 9+ month schedule. In a volatile mill-pricing environment, that is not a job, it is a short position on steel.
How Faster Takeoffs Change the Bid/No-Bid Math
The scorecard's biggest input is hidden in plain sight: the cost of bidding. Every threshold above assumes an estimate costs you most of a day. Cut that cost and the whole curve shifts.
If a takeoff that took 6 hours now takes 1 — which is realistic when software finds and counts the steel members on the drawings and your estimator verifies rather than counts — then a 25%-probability job that was marginal at 6 hours of cost becomes clearly worth bidding at 1 hour. Shops using SteelFlo for takeoff commonly compress the counting stage enough that the borderline band (20-27 points) becomes biddable by default, because the downside of a loss shrank by 80%.
Two second-order effects matter more than the raw speed:
- You can re-bid revisions cheaply. Addenda and revised sets kill margins on estimating time. When re-running the takeoff is fast, revision-heavy jobs stop being automatic point deductions on Question 3.
- Your best estimator's hours flow to strategy. The scarce resource in a small shop is not counting speed, it is judgment — pricing connections, reading the bidder field, deciding where to be aggressive. Faster counting reallocates hours toward the work that actually wins bids.
Faster takeoffs do not mean bid everything. They mean your threshold drops a few points and your effort on high-score jobs goes up.
Tracking Hit Rate by Job Type to Tune Your Scorecard
The scorecard above is a starting draft. Your data makes it yours. Track four fields on every bid — score, job type, buyer, and outcome — and review quarterly:
| What to look at | What it tells you |
|---|---|
| Hit rate by score band | If you win 35% of 36+ jobs and 4% of sub-28 jobs, the scorecard is calibrated. If bands do not separate, your scoring is wishful |
| Hit rate by job type | Losing every school project but winning half of industrial? Weight Question 1 harder |
| Hit rate by buyer | A GC below 5% over 10+ bids is using you for coverage — score them 1 on Question 7 forever |
| Margin on won jobs by score | If low-score wins consistently under-deliver on margin, your threshold is too low |
After two quarters most shops make two or three edits: reweighting a question, adding a shop-specific one ("does this job require galvanizing logistics?"), or moving the no-bid line. That is the system working.
A One-Page Printable Scorecard
Copy this into a document, print a stack, and keep them where invitations to bid land:
JOB: ____________________ GC: ____________________ DATE: ________
BID DUE: ________ EST. TONNAGE: ________ SCORED BY: ____________
Score (1-5)
1. Is this our kind of work? ____
2. Is the size in our sweet spot? ____
3. Are the drawings and scope clean? ____
4. Are the contract terms survivable? ____
5. Can the shop absorb it when it lands? ____
6. Can we handle detailing and PM load? ____
7. Does this buyer actually award us work? ____
8. How favorable is the bidder field? ____
9. Can we hit target margin? ____
TOTAL: ____ Any Risk question = 1? Y / N
36-45: Bid hard 28-35: Bid 20-27: Strategic only <20: No bid
DECISION: BID / NO BID Reason if overriding score: ____________
The framework only works if the no-bid is real. Send the decline the same day, keep the note polite and specific ("outside our current capacity window"), and log it. GCs respect a fast no far more than a slow, half-hearted number.
Bid more of the right jobs — and spend the recovered hours winning them. SteelFlo turns a PDF drawing set into a verified steel takeoff with 95-99% accuracy through AI detection plus human verification, covering 4,500+ sections across 6 international standards. Your first 3 takeoffs are free, so you can test it on the next job that clears your scorecard: start a free takeoff.