We priced the same 50 maintenance items at six distributors on one day, 10 September 2026, and the dearest storefront that would show us a price charged a median 126% more than the cheapest for the same part. A 3M 2097 P100 filter pair was $8.80 at McMaster-Carr, $9.24 on Amazon and $29.78 at Fastenal. A Master Lock 410RED lockout padlock was $12.99, $17.71 and $29.60. Three of the six sites, Grainger, its Zoro subsidiary and MSC, would not show a browser without a login any price at all. This piece covers what each storefront let us read, the spread by category, who is cheapest item by item, the size of the convenience premium, what Grainger’s public cooperative contract says its list price is worth, why the vending machine on your floor is a pricing contract, and behind the wall the basket as a CSV, the buying rule by category, and the vending math.

Fastenal's median web price is 126% above the cheapest storefrontMcMaster-Carr 37%, Amazon is the floor
Fastenal's median web price is 126% above the cheapest storefront; McMaster-Carr's is 37%; Amazon is the floorData as of 10 Sep 2026 Fastenal's median web price is 126% above the cheapest storefront; McMaster-Carr's is 37%; Amazon is the floor Median premium of each storefront's unit price over the cheapest of the three, across every SKU it priced with at least one comparison (n in labels), 10 Sep 2026. 0% 50% 100% 150% 37% McMaster-Carr (n=38) 126% Fastenal (n=43) 0% Amazon (n=47) Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices, 10 Sep 2026)

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices; as of 10 Sep 2026)

Across every SKU a storefront priced where at least one other storefront also priced it, Fastenal’s median premium over the cheapest was 126.1% (n=43), McMaster-Carr’s was 37.3% (n=38), and Amazon’s was 0.0% (n=47) because Amazon was the cheapest on 34 of the 48 SKUs with a comparison; only 16.3% of Fastenal’s prices landed within 10% of the cheapest, against 34.2% of McMaster’s and 76.6% of Amazon’s.

Three of Six Storefronts Would Not Show a Price

The basket is 50 items a maintenance crib actually orders: Grade 5 hex bolts and nylon lock nuts, a Cubitron cut-off wheel and a Scotch-Brite 7447 pad, a 1/4 inch jobber bit and a 3/8-16 spiral point tap, a 3M 6200 half mask with 2097 filters and 8511 N95s, HyFlex 11-800 gloves and E-A-R Classic plugs, a Square D QO120 and an Eaton BR120, 500 feet of 12 AWG THHN, Ideal 74B connectors, a Leviton 5362-W, a SharkBite coupling, a PVC elbow, a brass ball valve, a 6205-2RS bearing, a Gates A38, a Climax collar, a UCP205-16 pillow block, WD-40, Brakleen, Loctite 243, Red N Tacky, WypAll X70, Simple Green, a Brute can and liners, Klein cutters and strippers, a Channellock 430, a FatMax tape, a Master Lock 410, a Justrite can, a wet floor sign, Pig mats, and three pleated filters. The full list with specifications is in data/basket.csv, one row per SKU per storefront, 300 rows.

We tried to read all six storefronts with the same headless Chrome, from a San Francisco IP, with no account and no cookies, on 10 September 2026. Three let us in. McMaster-Carr showed every price and pack size with no login (“$12.42 per pack of 50”). Fastenal showed an “Online Price” and a unit price on every product page once the browser presented an ordinary Chrome user-agent string; with the default headless string it returned Akamai’s “Access Denied”. Amazon showed price, seller and item model number on every product page. The other three did not: grainger.com and zoro.com returned a DataDome captcha interstitial on every product and search URL, and mscdirect.com returned an Imperva challenge frame and, to a plain HTTP fetch, “MSCdirect.com is currently not available for your use.”

Three of six storefronts blocked every one of 50 lookups300 attempts, the how in the last column
Three of six storefronts blocked every one of 50 product lookupsData as of 10 Sep 2026 Three of six storefronts blocked every one of 50 product lookups Outcome of 300 product lookups (50 SKUs x 6 storefronts), anonymous headless Chrome, US IP, 10 Sep 2026. Storefront Priced Not carried Not found Blocked How it blocked McMaster-Carr 38 0 12 0 Login wall for HeadlessChrome UA only Fastenal 43 3 4 0 Akamai denies HeadlessChrome UA only Amazon 49 0 0 0 None Grainger 0 0 0 50 DataDome captcha on every URL Zoro 0 0 0 50 DataDome captcha on every URL MSC 0 0 0 50 Imperva challenge frame Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices, 10 Sep 2026)

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example

The table reads: Amazon priced 49 of 50 SKUs (the fiftieth, a 3M cut-off wheel, showed a price but no count per box, so we did not compute a unit price), Fastenal 43 (3 not carried, 4 not found on the day), McMaster-Carr 38 (12 not found, mostly branded Klein, Ansell and Milwaukee items it does not list), and Grainger, Zoro and MSC 0 of 50 each. The rows for the blocked sites carry the URL and the error reference so anyone can repeat the attempt. We did not estimate a single blocked price.

Zoro is Grainger’s own “endless assortment” business, the one its 2025 10-K says serves customers who “are focused on transparent pricing”, and it is the one that would not let a robot read a price. A bot wall says nothing about the number behind it, so we do not treat the block as a verdict on Grainger’s prices. It does mean the basket below compares three sellers, not six, and that the Grainger column comes from a different public document, which we get to below. The three storefronts we could not read are the three a plant buyer already has a login for; the OEM Disclosure Scorecard exists because that asymmetry is the norm in this industry, not the exception.

Where the Spread Lives: 345% on Abrasives, 54% on Fasteners

For each SKU we took the unit price at each storefront (per each, per pair, per foot, per ounce, per towel as the item demands, at the largest pack no bigger than the basket quantity) and computed the spread as the highest divided by the lowest, minus one. Forty-eight of the 50 SKUs had two or more prices; 32 had all three.

The same item costs 65% to 345% more at the dearest of three storefronts, median by categoryabrasives and PPE at the top, fasteners at the bottom
The same MRO item costs 65% to 345% more at the dearest of three storefronts, median by categoryData as of 10 Sep 2026 The same MRO item costs 65% to 345% more at the dearest of three storefronts, median by category Median spread (highest unit price over lowest, minus 1) across McMaster-Carr, Fastenal and Amazon for SKUs priced at two or more, by basket category. Labels show SKUs. 0% 100% 200% 300% 400% Abrasives (n=4) 345% Cutting tools (n=4) 206% PPE (n=5) 172% Janitorial (n=4) 155% Electrical (n=4) 130% Pipe and fittings (n=3) 100% Lubricants (n=4) 95% Hand tools (n=4) 91% Bearings and PT (n=4) 90% Safety (n=4) 86% HVAC filters (n=3) 65% Fasteners (n=5) 54% Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices, 10 Sep 2026)

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example

The medians by category are abrasives 345%, PPE 238%, cutting tools 206%, janitorial 155%, electrical 130%, pipe and fittings 100%, lubricants 95%, hand tools 91%, bearings and power transmission 90%, safety 86%, HVAC filters 65%, and fasteners 54%. The commodity categories with the most brand substitution, abrasives and PPE, carry the widest spreads; the categories where every seller sells the same catalog number, bearings and filters, carry the narrowest.

That pattern is the first thing to know about MRO pricing. A 6205-2RS bearing was $12.26 at McMaster (unbranded), $12.30 on Amazon (SKF) and $12.67 at Fastenal (unbranded): a 3.3% spread, because the part number is the product and every buyer can check it in ten seconds. A 20x25x1 MERV 8 pleated filter was $5.62, $5.68 and $6.43: 14%. A Channellock 430 was $18.95 on Amazon and $19.68 at McMaster: 4%. At the other end, a 5 inch 80-grit hook-and-loop sanding disc was $0.14 on Amazon as a 50-pack from a brand nobody has heard of and $2.02 at Fastenal as a five-pack of SIA Gold: 1,348%. Those are not the same disc, and the spread is partly a quality spread; it is also partly a tariff spread, since the generic disc is imported and the Tariff Exposure Calculator puts Section 232 duty on the steel backing of a domestic one. We flag every such row in the CSV so the reader can decide which comparisons to trust.

The spreads on identical parts are the ones that should bother a purchasing manager. Loctite 243 in the 50 mL bottle, same Henkel part, was $13.98 on Amazon, $48.57 at McMaster and $73.63 at Fastenal, a 427% spread on a bottle of glue. A Stanley FatMax 33-725 was $20.48 (Amazon, two-pack), $28.31 (McMaster) and $47.37 (Fastenal). A Klein D213-9NE was $34.99 on Amazon and $71.42 at Fastenal. A Justrite 7150100 safety can was $64.67, $73.73 and $86.41. Five hundred feet of 12 AWG stranded THHN was $135.00 on Amazon (Southwire 22964101), $173.16 at McMaster and $353.05 at Fastenal (Southwire): 27, 35 and 71 cents a foot for the same copper, on a day when the Copper and Wire Price Sheet puts the metal in that spool at well under a quarter of the highest price.

Who Is Cheapest, Item by Item

Amazon is cheapest in 10 of 12 categories, McMaster-Carr in 2, Fastenal in nonewins and median premium by category
Amazon is cheapest in 10 of 12 categories, McMaster-Carr in 2, Fastenal in noneData as of 10 Sep 2026 Amazon is cheapest in 10 of 12 categories, McMaster-Carr in 2, Fastenal in none SKUs won (lowest unit price) by storefront and median premium over the cheapest storefront, by category, 48 SKUs with two or more prices, 10 Sep 2026. Category SKUs McMaster wins Fastenal wins Amazon wins McMaster premium Fastenal premium Amazon premium Fasteners 5 3 0 2 0% 46% 54% Abrasives 4 1 0 3 49% 251% 0% Cutting tools 4 0 0 4 137% 206% 0% PPE 5 1 0 4 83% 160% 0% Electrical 4 1 1 2 64% 81% 23% Pipe and fittings 3 1 1 1 50% 116% 50% Bearings and PT 4 2 0 2 10% 90% 0% Lubricants 4 1 0 3 9% 95% 0% Janitorial 4 1 0 3 87% 155% 0% Hand tools 4 0 0 4 21% 104% 0% Safety 4 0 1 3 40% 34% 0% HVAC filters 3 0 0 3 48% 5% 0% Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices, 10 Sep 2026)

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example

Counting SKU wins, Amazon was the cheapest storefront most often in ten categories, McMaster-Carr in two (fasteners, where it won 3 of 5, and pipe and fittings, a one-one-one tie), and Fastenal in none; Fastenal won three SKUs outright, the absorbent pads ($0.56 a pad against $0.64 on Amazon), a Hubbell duplex receptacle ($6.45 against a Leviton 5362-W at $12.99) and a Watts brass ball valve ($19.36 against an Apollo at $33.56). McMaster’s premium over the cheapest is 0% on fasteners, 9% on lubricants and 10% on bearings, then 48% on abrasives, 64% on electrical and 137% on cutting tools. Fastenal’s premium is 5% on filters and 34% on safety, then 81% to 251% everywhere else.

Category SKUs McMaster wins Fastenal wins Amazon wins Cheapest most often McMaster premium Fastenal premium Amazon premium
Fasteners 5 3 0 2 McMaster-Carr 0% 46% 54%
Abrasives 4 1 0 3 Amazon 49% 251% 0%
Cutting tools 4 0 0 4 Amazon 137% 206% 0%
PPE 5 1 0 4 Amazon 83% 160% 0%
Electrical 4 1 1 2 Amazon 64% 81% 23%
Pipe and fittings 3 1 1 1 tie 50% 116% 50%
Bearings and PT 4 2 0 2 Amazon 10% 90% 0%
Lubricants 4 1 0 3 Amazon 9% 95% 0%
Janitorial 4 1 0 3 Amazon 87% 155% 0%
Hand tools 4 0 0 4 Amazon 21% 104% 0%
Safety 4 0 1 3 Amazon 40% 34% 0%
HVAC filters 3 0 0 3 Amazon 48% 5% 0%

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example. CSV: data/cheapest-by-category.csv

Two things the table hides. First, McMaster-Carr lists what it lists and nothing else: no Klein, no Ansell, no Milwaukee, no Eaton BR, no WypAll, and its 12 not-found rows are mostly those. Where it does list the item, it is often the second-cheapest by a small margin and the only one of the three that states the pack size, the spec and the delivery date on the same line. Second, Amazon’s wins on commodity items are frequently a different product: the 1/2-13 x 2 Grade 5 bolt at $0.84 each is a Hard-to-Find Fastener 50-pack sold by Amazon itself, but the flap disc, the sanding disc, the pillow block and the end mill are marketplace brands with no datasheet. The Equipment Price Benchmark will eventually carry contributor grades on exactly this question, whether the cheap generic held up; the basket cannot, and neither can the $2,850 category reports that price nothing at the SKU level.

Ten SKUs where the dearest storefront charged 3 to 15 times the cheapestunit prices at all three, the cheapest named
Ten SKUs where the dearest storefront charged 3 to 15 times the cheapestData as of 10 Sep 2026 Ten SKUs where the dearest storefront charged 3 to 15 times the cheapest Unit prices per each (per pad, disc, liner, pair or mL where noted), three storefronts, 10 Sep 2026. Dash means not listed or not comparable. SKU McMaster Fastenal Amazon Cheapest Spread Hook-and-loop sanding disc 5 in 80 grit 8-ho $2.02 $0.140 Amazon 1,348% Zirconia flap disc 4-1/2 x 7/8 60 grit type $10.67 $6.91 $2.00 Amazon 434% Trash can liner 55 gal 1.5 mil black $0.833 $1.93 $0.363 Amazon 432% Loctite 243 threadlocker 50 mL $48.57 $73.63 $13.98 Amazon 427% Pillow block bearing UCP205-16 1 in bore $16.49 $39.98 $7.89 Amazon 406% Jobber drill bit 1/4 in HSS black oxide 118 $4.08 $6.09 $1.33 Amazon 358% New Pig MAT204 lightweight absorbent mat pad $2.12 $0.555 $0.635 Fastenal 282% Leviton 5362-W 20 A industrial duplex recept $23.14 $6.45 $12.99 Fastenal 259% 3M Cubitron II cut-off wheel 4-1/2 x .045 x $3.92 $13.95 McMaster-Carr 256% Ansell HyFlex 11-800 nitrile foam glove size $9.48 $2.75 Amazon 245% Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices, 10 Sep 2026)

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example

The ten widest spreads run from 1,348% on the sanding disc to 245% on the HyFlex glove ($2.75 a pair on Amazon in a dozen, $9.48 at Fastenal in a dozen), and six of the ten are consumables a vending machine dispenses: discs, pads, drill bits, gloves, a threadlocker bottle and a filter.

SKU McMaster Fastenal Amazon Cheapest Spread
Hook-and-loop sanding disc 5 in 80 grit not listed $2.02 $0.14 Amazon 1,348%
Zirconia flap disc 4-1/2 x 7/8 60 grit $10.67 $6.91 $2.00 Amazon 434%
Trash can liner 55 gal 1.5 mil black $0.83 $1.93 $0.36 Amazon 432%
Loctite 243 threadlocker 50 mL $48.57 $73.63 $13.98 Amazon 427%
Pillow block bearing UCP205-16 $16.49 $39.98 $7.89 Amazon 406%
Jobber drill bit 1/4 in HSS black oxide $4.08 $6.09 $1.33 Amazon 358%
Absorbent mat pad 15 x 20 lightweight $2.12 $0.56 $0.64 Fastenal 282%
20 A industrial duplex receptacle $23.14 $6.45 $12.99 Fastenal 259%
3M Cubitron II cut-off wheel 4-1/2 x .045 $3.92 $13.95 not comparable McMaster-Carr 256%
Ansell HyFlex 11-800 glove, per pair not listed $9.48 $2.75 Amazon 245%

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example. CSV: data/sku-spreads.csv

The Convenience Premium Has a Name

The word for what Fastenal charges above Amazon is not markup, it is service, and Fastenal is explicit about it. Its 2025 10-K reports 45.0% gross margin against Grainger’s 39.1%, and it explains the model as a branch, a bin and a machine “right to the point of consumption within customers’ facilities”, with 65% of sales to national accounts on contract. The web price we captured is the price for the customer who has none of that: no contract, no bin, no rep, and no plant on the delivery route. It is the ceiling from which the contract discount is measured, and the size of the ceiling is the finding.

The premium is largest where a plant is least likely to check. Among the 43 SKUs Fastenal priced, the premium was under 10% on 7 (the filters, the bearing, the receptacle, the pads, the valve, and two fasteners) and over 100% on 24. McMaster-Carr’s premium over the cheapest was under 10% on 13 of 38 SKUs and over 100% on 6, four of them cutting tools and abrasives where its unbranded catalog item met a marketplace generic. The buyer who orders bearings and filters from a rep is paying a few points; the buyer who orders gloves, discs and threadlocker from the same rep is paying double.

Amazon’s floor has its own cost. Of Amazon’s 34 wins, 11 were marketplace or no-name brands, and 9 of the 49 priced items were sold by third parties whose stock read “only 3 left” or “only 4 left” on the day. The Square D QO120 was cheapest on Amazon at $11.70 apiece, but only as a ten-pack from a marketplace seller; the single QO120CP from Amazon itself showed no price. The Rubbermaid Brute at $63.82 was a third-party listing with 20 in stock, and Rubbermaid’s own listing at $53.27 was out of stock. Amazon Business, which we could not log into, sells Savings Insights and Spend Anomaly Monitoring to 11 million organizations doing $60 billion a year, which is Amazon telling its buyers that the price they see is not the price they are paying somewhere else.

The Basket Total: $1,782, $4,254, $5,812

The same crib order costs $1,782 at Amazon, $4,254 at McMaster-Carr and $5,812 at Fastenalall 32 common SKUs, then the brand-name subset
The same crib order costs $1,782 at Amazon, $4,254 at McMaster-Carr and $5,812 at FastenalData as of 10 Sep 2026 The same crib order costs $1,782 at Amazon, $4,254 at McMaster-Carr and $5,812 at Fastenal Basket total at the basket quantities in data/basket.csv, SKUs priced at all three storefronts, US$, 10 Sep 2026. Left: all 32 common SKUs. Right: 23-SKU subset with marketplace and no-name Amazon listings removed. Amazon McMaster-Carr Fastenal $0 $2,000 $4,000 $6,000 $1,782 $4,254 $5,812 All 32 common SKUs $1,463 $3,514 $5,244 Brand-name subset, 23 SKUs Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example (compiled from mcmaster.com, fastenal.com and amazon.com web prices, 10 Sep 2026)

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example

At the basket quantities in the CSV (100 nuts, 500 feet of wire, 200 pairs of earplugs, 12 filters and so on) the 32 SKUs priced at all three storefronts cost $1,782.09 on Amazon, $4,253.52 at McMaster-Carr (+139%) and $5,812.21 at Fastenal (+226%); strip out the 9 SKUs where Amazon’s item is a marketplace or no-name brand and the 23-SKU brand-name basket is $1,463.08, $3,514.29 and $5,244.17. A crib that fills this order at Fastenal’s web price pays $4,030 more than the same order on Amazon, and $1,559 more than at McMaster-Carr, before anyone negotiates. The gap is not driven by one item. Removing the wire, the earplugs and the threadlocker, the three largest dollar spreads, still leaves Fastenal at roughly double Amazon.

Nobody with a Fastenal contract pays the web price, which is the point of the next section: the web price is the reference from which a discount is quoted, and a discount is only as good as the number it is taken from. Grainger made this argument itself in 2017, when it admitted its list prices had become fiction and cut them; we told that story in Grainger’s 2017 Confession. The 2026 basket says the list is still fiction at the storefronts that publish one, and that the storefronts with the most to lose from comparison are the ones that block it.

What Grainger Filed With Sourcewell

Grainger will not show a robot its web price, but it filed 811 of its prices with a public purchasing cooperative. Sourcewell, the Minnesota cooperative whose contracts any US public agency can use, awarded Grainger contract 091422-WWG for facility MRO in November 2022 (maturing 8 November 2028), and posts a 14-page “Hot List” that gives, for each Grainger SKU, a “US Contract Reference Price” and a “US Contract Price”. The PDF was generated on 19 December 2025. We parsed all 811 rows into data/sourcewell-grainger-hotlist.csv.

Half of Grainger's Sourcewell Hot List sells at 50% or more off its own reference priceshare of 811 items by discount bucket
Half of Grainger's Sourcewell Hot List sells at 50% or more off its own reference priceData as of Dec 2025 Half of Grainger's Sourcewell Hot List sells at 50% or more off its own reference price Share of 811 Hot List items by discount bucket (1 minus contract price over US contract reference price). Median 50.4%. 0% 10% 20% 30% 5% 0 to 20% 11% 20 to 30% 12% 30 to 40% 21% 40 to 50% 25% 50 to 60% 14% 60 to 70% 12% 70% or more Open Factory Source: Sourcewell contract 091422-WWG, Grainger Hot List US price information, Dec 2025

Source: Sourcewell contract 091422-WWG, Grainger Hot List US price information, Dec 2025

The distribution reads: 5% of items at under 20% off, 11% at 20 to 30%, 12% at 30 to 40%, 21% at 40 to 50%, 25% at 50 to 60%, 14% at 60 to 70%, and 11% at 70% or more; the median is 50.4%, the interquartile range 36.9% to 60.1%. The median public-contract price on Grainger’s own Hot List is 50.4% below Grainger’s reference price, and one item in four sells at 60% off or more (n=811, Dec 2025). A Dayton A38 V-belt carries a reference price of $11.04 and a contract price of $2.69. A box of 100 Ideal 600 V twist-on connectors is $19.64 and $7.05. A 3/4 inch schedule 40 PVC elbow is $0.64 and $0.18.

Public-contract discounts off Grainger's reference price run from 28% on abrasives to 75% on V-beltsmedian by basket category, n in labels
Public-contract discounts off Grainger's reference price run from 28% on abrasives to 75% on V-beltsData as of Dec 2025 Public-contract discounts off Grainger's reference price run from 28% on abrasives to 75% on V-belts Median discount of the Sourcewell contract price against Grainger's US reference price, by Open Factory basket category, 811 Hot List items, PDF dated Dec 2025. Labels show n. 0% 20% 40% 60% 80% Bearings and PT (n=39) 75% Cutting tools (n=16) 65% PPE (n=44) 59% Janitorial (n=167) 51% Fasteners (n=32) 51% Safety (n=31) 49% Lubricants (n=35) 46% Electrical (n=119) 46% HVAC filters (n=26) 42% Pipe and fittings (n=26) 40% Hand tools (n=12) 36% Abrasives (n=11) 28% Open Factory Source: Sourcewell contract 091422-WWG, Grainger Hot List US price information, Dec 2025; categories assigned by Open Factory

Source: Sourcewell contract 091422-WWG, Grainger Hot List US price information, Dec 2025; categories assigned by Open Factory

Sorted into our twelve categories by keyword, the median discount is 75% on bearings and power transmission (n=39, nearly all Dayton belts), 65% on cutting tools (n=16), 59% on PPE (n=44), 51% on janitorial (n=167) and fasteners (n=32), 49% on safety, 46% on lubricants and electrical, 42% on filters, 40% on pipe and fittings, 36% on hand tools and 28% on abrasives (n=11). The order is close to the inverse of our web spread chart: where the web spread between storefronts is widest, abrasives, Grainger’s contract discount is smallest, and where the Grainger discount is deepest, belts, the web spread is narrow. The reference price is doing different work in different aisles.

The Hot List is, in the contract’s own words, a “specific selection” offered “at discounts greater than those listed in the Contract”, so these are Grainger’s deepest public prices, not its average contract price. The category schedule that governs the rest of the catalog was uploaded as “Pricing-091422.zip” and is not posted. Fastenal’s schedule for the same solicitation is posted, and it is a single page.

Fastenal's public-contract schedule: 57% off catalog on fasteners, 23 to 30% on everything elseselected categories of 37
Fastenal's public-contract schedule: 57% off catalog on fasteners, 23 to 30% on everything elseData as of Sep 2022 Fastenal's public-contract schedule: 57% off catalog on fasteners, 23 to 30% on everything else Discount off catalog price by category in Fastenal's Sourcewell contract 091422-FAS pricing schedule (selected categories of 37). 0% 20% 40% 60% Fasteners 57% Janitorial: Wipers, Towels, and Rags 40% HVAC and Refrigeration: Filters 35% Janitorial: Trash Cans and Liners 35% Safety: Hand and Arm Protection 35% Electrical 30% Janitorial and Cleaning 30% Plumbing 30% Safety 30% Power Transmission 28% Abrasives 25% Cutting Tools and Metalworking 25% Lubricants, Coolants, and Fluids 25% Tools and Equipment 25% Tools: Cordless Power Tools 23% Open Factory Source: Sourcewell contract 091422-FAS, Fastenal Discount Schedule for Catalog Items, Sep 2022

Source: Sourcewell contract 091422-FAS, Fastenal Discount Schedule for Catalog Items, Sep 2022

Contract 091422-FAS gives a flat percentage off catalog by category: 57% on fasteners, 40% on wipers and rags, 35% on filters, trash liners and hand protection, 30% on electrical, plumbing, janitorial and safety, 28% on power transmission and motors, 25% on abrasives, cutting tools, lubricants and hand tools, 23% on power tools. Sourcewell’s evaluators scored twenty bidders on price out of 400 points: Grainger took 313 and ranked first overall on everything else, Fastenal 321 and third, Motion Industries 339 and second, MSC’s Sid Tool Co. 311 and fifth (proposal evaluation). None of the three storefronts that blocked us won on price, and the one that ranked first scored twelfth of twenty on it.

Grainger’s Reference Price Against the Web

Ten items in the basket have a near-twin on the Hot List, which gives a Grainger column of a kind: not a web price captured on the day, but Grainger’s own December 2025 reference price and its public contract price for the same or equivalent item, against the three web prices we did capture.

On ten matched items, the cheapest web price sits 20% to 60% under Grainger's reference price and near its public contract pricesame unit throughout
On ten matched items, the cheapest web price sits 20% to 60% under Grainger's reference price and near its public contract priceData as of Sep 2026 On ten matched items, the cheapest web price sits 20% to 60% under Grainger's reference price and near its public contract price Grainger US contract reference price and Sourcewell contract price (Hot List PDF, Dec 2025) against web prices captured 10 Sep 2026, same unit. Item Grainger ref. Sourcewell contract McMaster Fastenal Amazon Cheapest web vs ref. WD-40 16 oz aerosol (Hot List: "GeneralP $14.68 $8.61 $9.92 $20.71 $11.78 -32% Simple Green 1 gal Sassafras (Hot List: $25.60 $13.53 $18.64 $31.85 $9.98 -61% Pleated Air Filter 20x25x1 MERV 8 (Grain $9.77 $5.41 $6.43 $5.68 $5.62 -42% Pleated Air Filter 16x25x1 MERV 8 (Grain $8.75 $5.15 $9.64 $6.12 $5.83 -33% Ideal twist-on wire connector 600 V PK10 $19.64 $7.05 $13.72 $20.13 -30% 3M half mask respirator, elastomer, gray $25.77 $16.46 $32.96 $37.81 $17.99 -30% Dayton V-belt A38 40 in $11.04 $2.69 $12.24 $14.72 $10.13 -8% CRC brake parts cleaner 20 oz aerosol $12.06 $5.70 $12.26 $16.59 $11.25 -7% Klein wire stripper 18 to 10 AWG 7-1/8 i $32.73 $19.56 $37.38 $20.99 -36% 90 elbow 3/4 in schedule 40 socket (PVC) $0.64 $0.18 $0.69 $2.29 $1.04 +8% Open Factory Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example; Sourcewell contract 091422-WWG Grainger Hot List, Dec 2025

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example; Sourcewell contract 091422-WWG Grainger Hot List, Dec 2025

Item Grainger reference (Dec 2025) Sourcewell contract McMaster web Fastenal web Amazon web Cheapest web vs reference
WD-40 16 oz can $14.68 $8.61 $9.92 $20.71 $11.78 -32%
Simple Green 1 gal $25.60 $13.53 $18.64 $31.85 $9.98 -61%
Pleated filter 20x25x1 MERV 8 $9.77 $5.41 $6.43 $5.68 $5.62 -42%
Pleated filter 16x25x1 MERV 8 $8.75 $5.15 $9.64 $6.12 $5.83 -33%
Yellow twist-on connectors, box of 100 $19.64 $7.05 $13.72 not found $20.13 -30%
3M half mask respirator $25.77 $16.46 $32.96 $37.81 $17.99 -30%
A38 V-belt (Dayton vs Gates) $11.04 $2.69 $12.24 $14.72 $10.13 -8%
CRC brake parts cleaner, 20 oz basis $12.06 $5.70 $12.26 $16.59 $11.25 -7%
Klein wire stripper 18 to 10 AWG $32.73 $19.56 not listed $37.38 $20.99 -36%
PVC 3/4 in sch 40 90 elbow $0.64 $0.18 $0.69 $2.29 $1.04 +8%

Source: Open Factory Public Bid-Tab Price Book, MRO basket worked example; Sourcewell 091422-WWG. CSV: data/grainger-reference-vs-web.csv

Read across: on eight of the ten the cheapest web price is 7% to 61% under Grainger’s reference price and within a few dollars of the Sourcewell contract price; on the filters, Amazon and Fastenal’s web prices are within 10% of what a public agency pays Grainger on contract; on the elbow and the belt, Grainger’s contract price is far below anything a walk-up web buyer can get anywhere, and the reference price is roughly what the web charges. Grainger’s reference price is not a market price; on this evidence it is a ceiling set 30% to 60% above what the same item costs to anyone who looks, and the contract discount returns the buyer to the market. That is the mechanism Grainger described in its own April 2017 release: a “pricing model that applied contractual discounts to high list prices”, which made it “difficult to win new business”, followed by new web prices on 450,000 SKUs and a 1.7-point drop in US gross margin as “customers with access to lower pricing bought more than company expectations”. Nine years on, the web prices exist and a robot cannot read them.

The Vending Machine Is a Pricing Contract

The basket above is what a buyer sees with a browser. Most industrial MRO is not bought that way. Fastenal ended 2025 with 136,638 weighted FASTBin and FASTVend devices installed on customer floors, signed 25,892 more during the year (102 a day), and booked $2,675.0 million of sales through them, 32.2% of company revenue; with FASTStock bins the managed-inventory total is $3,712.7 million, 44.7% of sales (10-K FY2025). MSC had 29,611 vending machines in service and 411 in-plant programs at fiscal year end in August 2025, up from 27,003 and 342. Grainger’s KeepStock is the same product without a device count in the 10-K.

Divide Fastenal’s device sales by its device count and each machine-equivalent moved about $19,600 of product in 2025. The 10-K lists the customer benefits as “reduced consumption, reduced purchase orders, reduced product handling, and 24-hour product availability” and does not list price. That is the point. A vending machine is a supply agreement in a steel box: the SKUs inside are chosen once, the prices are set by the contract behind the machine, and replenishment is automatic. Nobody at the machine sees a price, and nobody in purchasing re-quotes a glove the machine has dispensed 4,000 times. Six of the ten widest spreads in our basket are vending SKUs. Fastenal’s gross margin in 2025 was 45.0%; Grainger’s High-Touch segment ran 41.7% and its Endless Assortment segment, the transparent-price web business, ran 29.9%. The twelve-point gap between the two Grainger segments is the price of the rep and the bin, and the plant pays it on every glove.

None of this makes the machine a bad deal. ISM’s August 2026 report puts the average lead time for MRO supplies at 48 days, and a stock-out on a $2 glove can idle a $200-an-hour line; we made the same argument about the spares list in The Recommended Spares List Is Where the Margin Hides and about the 171-day capex queue in The 171-Day Capex Lead Time. The machine buys availability. What the basket shows is what availability costs when the price inside the machine is never checked against the price outside it, and that the check takes an afternoon.

What to Do Monday

Pull twelve months of MRO spend from the ERP, sort by extended dollars, and take the top 50 lines. Price them on McMaster-Carr and Amazon with a browser; both show prices without a login, and the basket CSV is a template with the columns you need (part number, pack, unit, URL, date). Then put your contract price beside them. If the contract price is within 10% of the cheapest web price, as it was on the filters and the bearing here, leave the line alone; the rep is earning the margin. If it is 50% above, as it was on the threadlocker, the gloves, the earplugs and the wire, you have found the lines the machine is paid to hide. Send the list to the rep with the URLs and ask for the category discount off the web price, not off list, in writing; Fastenal’s Sourcewell schedule is public and 30 to 57% off catalog is what a public agency gets with no negotiation. Ask the vending rep for the price file behind the machine, dated, and put a 90-day re-quote clause on it, the same clause the capital equipment RFQ template puts on escalation. And when the capital side of the same plant is buying switchgear or a transformer, run the quote through Quote Check, because the same list-versus-net structure sits under a $400,000 lineup as under a $14 can of WD-40, and the Public Bid-Tab Price Book is the public record for that.

Behind the paywall: the full 50-SKU basket with all 300 rows as a CSV, the category-by-category buying rule that names the storefront and the caveat for each of the twelve aisles, and the vending math, including what the 32-SKU basket costs at Fastenal’s public 57% and 25 to 35% contract discounts and what that implies for the roughly $19,600 a year that passes through each of its 136,638 machines, built on the Public Bid-Tab Price Book worked example and the Equipment Price Benchmark contribution form.