Safety and PPE Consumables: Raw-Material Swings, Contract Volumes and the Size Tail
Selling safety supplies is a consumables business wearing a hardware business's clothes. Unit prices are small, reorder rates are high, the buyer is often on a standing arrangement, and the cost is set upstream by materials that move on their own schedule rather than your supplier's. Three things break margin here, and none of them is the headline increase everybody watches for.
The cost driver is a material, not a supplier
Most PPE lines are one processing step away from a commodity. Disposable gloves track their polymer feedstock; disposable garments and a great deal of non-woven product track polypropylene resin; cut-resistant gloves track engineered yarns; safety footwear tracks leather, steel and composite plate. On top of that sits ocean freight, which for bulky low-density goods like coveralls and hard hats is a meaningful share of delivered cost in its own right.
The practical consequence is a timing one. A supplier who revises a price book twice a year will still send you an off-cycle letter when their input cost moves, and a supplier who buys on the spot market may simply requote. Watching these categories on the supplier's revision calendar means finding out late. They want checking on the material's clock — which in practice means diffing every file the month it arrives rather than at quarterly review, because for a fast-turning consumable a quarter is a lot of units.
Small units make percentages and dollars disagree
A box of 100 nitrile gloves goes from $7.40 to $8.70. That is $1.30, which sounds like nothing, and 17.6%, which does not. Both statements are true and only one of them is decision-relevant, depending on how many boxes you move.
Margin is (price − cost) / price; the hold price is cost / (1 − target margin), so 8.70 / (1 − 0.429) = $15.24. Ten margin points on a line most people would describe as "up a dollar thirty".
Velocity is what separates this category from durables. A tool that sells twenty units a year gives you months of slack before a missed increase costs anything real; a consumable at 900 boxes a year is moving about seventeen boxes a week. If it takes six weeks to notice — a perfectly normal lag when files arrive by email and get reviewed quarterly — that one SKU has already given back roughly $130. Across a five-size family turning 3,000 boxes a year at an average $1.35 increase, the same six weeks is closer to $470. Detection latency is a cost line in a consumables business in a way it simply is not for durable goods.
The size tail, where the floor actually breaks
A single glove "product" on your site is five or six SKUs, and suppliers do not move them in lockstep. Larger sizes use more material and are often on a different cost step; a revision may lift some sizes and not others. If your matching is done on product name rather than per-SKU key, this is invisible — you compare one number against one number and never see the spread.
Same family, same file, floor set at 30%, one retail price across all sizes:
| Size | Cost before | Cost now | Change | Retail | Margin before | Margin now | Price to clear 30% |
|---|---|---|---|---|---|---|---|
| S | $7.40 | $7.40 | — | $12.95 | 42.9% | 42.9% | — |
| M | $7.40 | $8.70 | +17.6% | $12.95 | 42.9% | 32.8% | — |
| L | $7.40 | $8.70 | +17.6% | $12.95 | 42.9% | 32.8% | — |
| XL | $7.85 | $9.20 | +17.2% | $12.95 | 39.4% | 29.0% | $13.15 |
| 2XL | $8.40 | $9.95 | +18.5% | $12.95 | 35.1% | 23.2% | $14.22 |
The headline SKU — medium, the one anybody would spot-check — lands at 32.8% and clears the floor. Two sizes do not. The 2XL at 23.2% is nearly twenty points below where the family started, and it got there through a cost move that is barely distinguishable in percentage terms from the others. Nothing exotic happened; the small sizes simply had more cushion to begin with.
That leaves a choice most stores make by accident:
- Price by size. Honest, and the arithmetic is trivial — each size gets
cost / (1 − target). It costs you the clean single-price presentation, and in some channels it invites complaints. - One price, set by the worst size. Charging $14.22 across the range clears 30% on the 2XL, and puts the small at 48.0%. Fine if the mix is stable; a slow leak if buyers self-select toward the sizes you priced generously.
- One price, set by the mix. Defensible, but only if you actually compute the weighted cost and re-compute it when the mix moves, rather than picking a number that felt right two years ago.
The contract asymmetry
Much of the volume in this category goes to business buyers on a standing arrangement: an agreed price for the year, or a blanket order drawn down over months. Your customer's price is fixed. Your supplier's price is not. That asymmetry is the single most expensive structure in safety supply, because it converts an ordinary cost increase into a locked loss.
If the increase lands in month two, you are carrying it for ten more months on your largest single customer. There are only three real answers, and all of them are set at signing rather than discovered later: a shorter term, a stated escalation trigger (prices reopen if delivered cost moves more than an agreed percentage), or a price built with a buffer sized to the material's actual volatility. The general shape of that negotiation — and why the increase-notice clause matters as much as the number — is covered in B2B and trade pricing under cost increases.
Pack basis, the quiet arithmetic error
Consumables are quoted in whatever unit the manufacturer's line uses, and a single price file will mix several:
- Gloves — per pair, per box of 100, or per case of 10 boxes, sometimes two of the three in one sheet.
- Respirators and masks — per box of 10 or 20, per case.
- Wipes and absorbents — per canister, per case, or per bale.
- Earplugs — per pair, per box of 200, per dispenser refill.
A case price misread as a box price fails loudly and gets fixed the same day. The dangerous direction is the reverse, and the truly dangerous event is a change of basis between editions — a supplier moving a line from case to box pricing with a similar-looking number. Nothing in the file announces it, and the cost you derive is wrong by an order of magnitude in the flattering direction. Unit of measure and pack quantity belong in the normalisation step before any diff runs; comparing two prices quoted on different bases produces confident nonsense rather than an error you can see.
Pack size deserves attention for a second reason here. Suppliers change case configurations on consumables more often than on durables, and a smaller case at the same case price is a price increase nobody wrote down. The effective-unit-cost arithmetic for that, and for the buy-more-to-save trade, is worked through in MOQ and pack size economics.
What the review looks like in practice
Nothing here needs a large system. It needs four habits:
- Diff every file the month it arrives, normalised to cost per selling unit, and sort the output by floor breach rather than by size of increase — otherwise the 2XL never surfaces.
- Review by family, not by SKU. When one size in a family moves, check all of them, because the material moved for all of them.
- Keep a per-SKU key that survives the size tail. Supplier item number, not product title. Matching on names is where the spread disappears.
- Flag every line on a fixed customer price, so that a cost move on a contracted SKU raises a different kind of alarm than a cost move on a retail one. You cannot reprice the first; you need to know how much it is costing and when the term ends.
The last one is the difference between managing this category and being managed by it. Retail lines you can reprice the week you notice — the arithmetic is in recalculating margin and price after a cost increase. Contract lines you cannot, and the only lever left is the number you write into the next agreement. That number should come out of a file of actual observed cost movement over the last year, not out of an argument about whether prices are likely to rise.
Find the sizes that broke your floor
Paste in costs and retail prices, get every line under your target margin and the price that would hold it — including the sizes nobody spot-checks. Free, no account.
Open the free checker ↗