How to Create a Steel Bill of Materials (BOM) That's Actually Accurate
A Bill of Materials is the single most important document in a steel fabrication estimate. It's the master list of every piece of steel on the project — shapes, sizes, lengths, quantities, and weights. Everything downstream depends on it: material purchasing, shop labor estimates, coating calculations, freight costs, and your final bid number.
An inaccurate BOM doesn't just lose you money. It can win you jobs you shouldn't have won, bury your shop in change orders, and erode the client relationships that keep your backlog full.
Here's how to build a BOM that's right.
What Goes Into a Steel BOM
A complete BOM for structural steel should include these columns at minimum:
| Column | Description | Example |
|---|---|---|
| Mark | Unique identifier for the member | B1, B2, C1, BR1 |
| Shape | AISC shape designation | W18x35 |
| Grade | Material specification | A992 |
| Length | Member length in feet-inches | 28'-6" |
| Quantity | Number of identical pieces | 12 |
| Unit Weight | Pounds per linear foot | 35 lb/ft |
| Piece Weight | Single piece weight in lbs | 998 lbs |
| Total Weight | Quantity x Piece Weight | 11,970 lbs |
| Notes | Coating, camber, special requirements | Camber 3/4" |
Optional but Valuable Columns
- Location — Grid lines, floor level (e.g., "2nd Floor, A-B/1-3")
- Connection type — Shear tab, moment, seated (feeds labor estimate)
- Coating — Primer, galvanized, painted
- Delivery sequence — Which erection phase this member ships in
Step-by-Step: Building the BOM
Step 1: Set Up Your Template
Before you touch the drawings, set up your spreadsheet. Whether you use Excel, Google Sheets, or a purpose-built tool, the structure matters.
Group by member type:
- Columns
- Beams and girders
- Bracing
- Miscellaneous (lintels, plates, angles, channels)
Within each group, sort by shape and size (all W18x35s together, all W12x26s together). This makes material purchasing easier later — you can see at a glance that you need 4,200 feet of W18x35.
Step 2: Work the Framing Plans Systematically
Start at the foundation and work up, floor by floor. On each floor:
- Identify columns first. Mark each column location on the plan. Note the size from the column schedule or callout.
- Take beams grid by grid. Go left to right, bottom to top, or pick a pattern and stick with it. The pattern doesn't matter — consistency does.
- Highlight as you go. On a printed plan, use a highlighter. On a PDF, use markup tools. Every member you've recorded gets marked. This is non-negotiable for accuracy.
- Record lengths. Beam lengths come from either a schedule callout or by measuring between grid lines (minus column setbacks). Column heights come from sections and elevations.
Step 3: Cross-Check Against Schedules
If the engineer provides beam or column schedules, compare your counts against them. Discrepancies are common:
- You count more than the schedule — You may have double-counted, or the engineer may have missed updating the schedule after a revision.
- You count fewer than the schedule — You probably missed a sheet or a plan area. Go back and find the missing members.
- Sizes don't match — Check for addenda. The schedule may reflect an earlier design revision.
Resolve every discrepancy before moving on. This single step catches more errors than anything else.
Step 4: Don't Forget the Secondary Steel
Beginners focus on the big beams and columns and forget the secondary members that add significant tonnage:
- Lintels over door and window openings (check architectural elevations)
- Embed plates and base plates (check foundation plans)
- Kickers and struts (short bracing members in the roof or between joists)
- Stair stringers if stairs are in scope
- Platforms, ladders, and handrails if miscellaneous metals are included
- Roof framing — purlins, sag rods, flange braces
Step 5: Calculate Weights
With shapes and lengths recorded, calculating weight is straightforward:
Piece Weight = Length (ft) x Weight per foot (lb/ft)
Total Weight = Piece Weight x Quantity
The weight per foot comes from the AISC shape database. Tools like SteelFlo have this built into their pricing engine, so weight calculations are automatic once you've identified the member.
For plates, the calculation is:
Plate Weight = Length (in) x Width (in) x Thickness (in) x 0.2836 lb/in³
Or more practically: steel plate weighs 40.8 lbs per square foot per inch of thickness. A 1" x 12" x 12" plate weighs 40.8 lbs.
Step 6: Add Subtotals and Grand Total
Sum up each section (columns, beams, bracing, misc) and provide a grand total in both pounds and tons (2,000 lbs = 1 ton for US short tons).
The grand total tonnage is the single number that drives most of your estimate. When someone asks "how big is the job?" they're asking for this number.
Common BOM Mistakes
1. Forgetting to Include a Floor or Sheet
On a multi-story building with 15 framing plan sheets, it's easy to skip one. Always check your sheet index against your notes to confirm every sheet was covered.
2. Confusing Beam Marks with Beam Counts
If a drawing labels a beam as "B1" and a schedule says "B1: W16x31, QTY: 8," make sure you're recording the quantity from the schedule, not counting a single "B1" label on the plan as one beam.
3. Using Nominal Depths as Sizes
"W18" is not a complete designation. W18x35 and W18x97 are both 18-inch-deep beams, but one weighs nearly three times as much. Always capture the full designation including weight per foot.
4. Ignoring Addenda
Addenda issued during bidding can change member sizes, add new members, or delete entire areas. Always verify you're working from the latest revision set.
5. Not Accounting for Plate Material
Base plates, gusset plates, stiffener plates, and connection plates can add 5–15% to the total project weight. These are often not shown on framing plans — they come from detail sheets and connection standards.
6. Double-Counting at Grid Intersections
A beam shown on two adjacent framing plans (where the plans overlap at a grid line) should only be counted once. Watch for this on large buildings where the plan is split across multiple sheets.
7. Missing Camber Notes
Camber (a slight upward curve intentionally rolled into a beam) doesn't change weight, but it affects procurement and shop labor. Cambered beams must be ordered with camber from the mill or cambered in the shop. Note camber requirements in your BOM — they'll affect your cost.
BOM Accuracy Benchmarks
How accurate should your BOM be? Here are the targets experienced estimators aim for:
- Member count: Within 2% of actual (verified against detailer's model later)
- Total weight: Within 5% of actual
- Material cost: Within 3–5% (assuming current pricing)
If your BOMs are consistently off by more than 10% from what the detailer produces, something is wrong with your takeoff process.
From BOM to Estimate
The BOM is step one. To turn it into an estimate, you still need to:
- Price the material — Apply current pricing per ton by shape group
- Estimate shop labor — Hours per ton multiplied by your loaded shop rate
- Add connections hardware — Bolts, shear studs, misc. metals
- Add coating — Shop primer, galvanizing, paint
- Add freight — Material delivery to shop, fabricated steel delivery to site
- Add erection — Sub-quote or self-perform estimate
- Add detailing — In-house or sub-quote
- Add overhead and profit — Your margin
Each of these layers depends on the BOM being right. Get the foundation solid, and the rest of the estimate builds logically on top of it.
Final Thought
A BOM isn't just a document — it's a contract with yourself about what's on the project. Take it seriously, be systematic, and never skip the verification step. The extra hour you spend checking your counts is the cheapest insurance in the business.