It's 3:47 PM on a Friday in Denver. A salesperson at Front Range Plumbing Supply takes a call from a project manager at Mortenson Construction. They're 11 weeks into the Saint Joseph Hospital tower retrofit, and the mechanical engineer just spec'd 80 units of a 100-gallon commercial water heater — your model, the one with the stainless heat exchanger. The GC needs them on site by next Friday or the inspection slips two weeks.
The salesperson opens her ERP. Sees "In Stock" next to the SKU. Quotes a 5-day delivery. Wins the bid against two other supply houses. Sends the customer a confirmation by 4:10 PM and goes home for the weekend feeling pretty good about her commission.
Monday morning, the PO hits your order desk. Your actual on-hand is 12 units. Another distributor in Phoenix pulled 110 over the weekend through your portal — they had a multifamily build that finally got released after sitting in permit hell for six months. You can build 80 more, but the production cycle is 14 working days plus QC plus crating. Best-case ship is three weeks out.
Your CSR calls Front Range. Front Range calls Mortenson. Mortenson calls Ferguson, who has 90 of a comparable Bradford White unit on the floor in Salt Lake. The order is gone by Tuesday lunch. The relationship with Front Range cools by ten degrees. The mechanical engineer quietly adds Bradford White to the approved-vendor list for the next three projects.
That's what selling air looks like. And it happens every Friday afternoon at supply houses across North America because the inventory feed your distributors are working from is stale before the salesperson even picks up the phone.
Why the Daily Batch Feed Stopped Being Good Enough
Most manufacturers still push channel inventory the same way they did in 2008. A nightly job — usually scheduled around 2 AM Eastern — generates a flat file of SKU, on-hand, and lead-time strings. SFTP picks it up. Each distributor's ERP ingests it sometime between 4 and 7 AM local. By the time their first salesperson logs in, the number is somewhere between four and twelve hours old.
That worked when distributors quoted from a printed catalog and called you to confirm before committing to anything over $5,000. It does not work now. The salesperson is on the phone with the customer, the customer wants a number in 90 seconds, and the salesperson reads whatever the screen shows. There is no callback. The screen is the truth, and the screen is wrong.
Compounding the problem: the screen often combines your stale feed with the distributor's own committed-but-not-shipped orders, their in-transit POs from you, and a buffer their purchasing manager set six quarters ago and forgot about. The number the salesperson sees is a fiction made of three different stale data points stacked on top of each other.
Your tier-A distributors — the ones doing $4M and up — have started asking for API access. They want a real-time call. The bigger plumbing wholesalers, electrical houses like Rexel and Sonepar, the larger HVAC chains — they're building integrations that pull live ATP at quote time. If you can't serve that call, you're being routed around. They quote your competitor's product because your competitor answers the API.
Available-to-Promise: What the Number Actually Means
ATP is not on-hand. This is the single most common error in channel inventory, and it's the one that creates the Denver scenario.
Real ATP is a calculation:
| Component | What It Is | Effect on ATP |
|---|---|---|
| On-hand | Physical units on your warehouse floor, counted accurately | Starting point |
| Committed | Open sales orders, releases against blanket POs not yet shipped | Subtracts |
| Allocated | Reserved against VMI replenishment, tier-A weekly draws, contracted programs | Subtracts |
| Safety stock | Buffer held to absorb demand variance and protect critical accounts | Subtracts |
| Inbound at dock | PO units received but not yet put-away or QC'd | Doesn't add until released |
| True ATP | What you can actually promise to a new caller right now | = |
When your nightly feed exports "in stock," it's almost always exporting on-hand minus a stale committed number. It's not netting allocations against blanket-PO releases that will land Monday. It's not honoring the safety stock your sales VP promised the top three accounts after last year's stockout fiasco.
The Denver call needs the true ATP number, calculated at the moment the salesperson asks — not 14 hours ago. If your ATP at 3:47 PM Friday says 12 units available after netting Phoenix's weekend draw and the safety stock you promised your top five accounts, the salesperson at Front Range sees 12, quotes accordingly, and offers either a partial ship plus production lead time for the balance, or recommends the substitute SKU you also surface in the portal. Either path keeps the order. Neither involves the customer finding out next Tuesday that you sold air.
Allocation Rules When the Math Doesn't Cover Everyone
You won't always have enough on-hand to satisfy every distributor pulling in the same week. That's not a software problem. It's a manufacturing reality. The software problem is having a defensible, transparent rule for who gets what.
Four allocation patterns show up in practice. None of them are wrong. Pick one and write it down before the next stockout, not during.
FIFO (first-in-first-served). Whoever's PO hits the queue first gets product. Simplest to explain, hardest to defend when your $9M tier-A account loses to a $400K tier-C account that happened to fire off a PO five minutes earlier. Works for commodity SKUs. Doesn't work for channel programs that depend on tiering.
Tier-priority allocation. Tier-A partners get first call on constrained inventory, then B, then C. Defensible commercially — you've been telling your top accounts they get preferential treatment, and now you're delivering on it. Tier-C distributors will see "out of stock" while tier-A is being served, and they'll figure that out within about two cycles. Be honest about the rule in your channel agreements.
Blanket-PO commitments first. If a distributor signed a blanket for 200 units a month and is releasing against it, those units come off the top before anyone else gets allocated. Cleanest rule for VMI and CMI relationships. Rewards distributors who commit volume forward. The trap is that you can over-commit blankets and find yourself with no spot inventory for tier-A walk-up demand. Cap blanket commitments at 65–75% of forecast capacity and you'll have room to handle the Denver call.
Manufacturer's choice. Your channel manager allocates by hand. Maximum flexibility. Minimum defensibility. The phrase "I called Mike about that one" gets used in conference rooms a lot. Works in small networks. Falls apart at scale.
Most well-run channels use a hybrid: blanket-PO commitments come off first, then tier-priority handles the remainder, with a small reserve carved out for manufacturer's choice on strategic situations. Whatever you pick, document it in the portal. When a distributor hits "allocated" instead of "available," they should be able to click through and see why — and what their position is in the queue.
Lead Times That Aren't Made Up
The other half of the Denver problem is the 5-day delivery quote. Where did that come from? It came from the salesperson's head, based on what she remembered from the last six orders that shipped on time. It wasn't a system number. It wasn't your number. It was a guess that the customer treated as a commitment.
Calculated lead time is a real number you can compute and surface:
Production cycle (days) + QC and finishing (days) + Crating / palletizing (days) + Outbound transit by destination ZIP (days) = Promised ship-to-arrival lead time
For a configured commercial water heater built to order, that might be 14 + 2 + 1 + 4 = 21 calendar days from the Denver scenario. For a stocked SKU pulled from Memphis going to a Denver supply house, it might be 0 + 0 + 1 + 3 = 4 days. Same product family. Wildly different lead times. The salesperson should not be guessing which one applies.
Surface the calculated lead time directly in the portal next to the ATP number. When the salesperson sees "12 available, ships 2 business days; balance of 80-unit order builds in 19 business days," she can have a real conversation with the GC about partial shipment, expediting, or the substitute SKU. She can quote a date she can actually hit. That single change — a real lead-time number instead of a salesperson's gut estimate — is what shifts your OTIF from the high 80s into the mid-90s.
The discipline this requires is on you, not the distributor. Your production schedule has to be accurate. Your QC cycle has to be predictable. Your transit-time table has to be maintained against actual carrier performance, not the rates document you got from FedEx in 2022. Garbage in, garbage out — and the garbage shows up in the customer's loading dock receiving paperwork.
Substitute SKUs: The Backorder Killer
When the requested SKU is allocated, the worst answer is "out of stock." The next-worst is "I'll have to call you back." The right answer is "I have 80 of the comparable model, same flow rate, same warranty, available for next-day ship — want me to swap it?"
That answer requires a substitute table the manufacturer maintains and pushes into the portal. For each SKU, define form-fit-function equivalents (same spec, different part number — usually a generation refresh or regional variant), up-spec alternates (the next size up, often at the same price during constraint situations), cross-line equivalents (a SKU from a sister product family that meets the spec), and compatibility notes the salesperson can read to the customer.
When the salesperson keys in the original SKU and sees allocated/limited, the portal surfaces the alternates with their own ATP and lead-time numbers. The decision happens in the same call. The order doesn't go to Ferguson. The relationship with Front Range stays intact because you handed them a save instead of a problem.
Manufacturers who do this well report substitute-SKU acceptance rates of 35–55% on constrained line items. That's directly recovered revenue that would otherwise have walked to a competitor. It's also the strongest signal you can send to your channel that you're built to handle their problems, not push them onto their customers.
The Internal Discipline No Software Can Skip
All of the above only works if your own inventory is accurate. ATP calculated from on-hand that's off by 15% is just a more precise lie. Cycle counts, perpetual inventory accuracy in the high 90s, real-time receiving updates from the dock, scan-driven put-away — these are not glamorous projects. They're the foundation under everything else.
If your warehouse is still doing monthly stock takes against a system that drifts between counts, no portal in the world will save the Denver call. The salesperson at Front Range will see a number you confidently pushed at 2 AM, the number will be wrong by 8 AM, and you'll be back in the same conversation with Mortenson the following Monday.
The tools to fix this exist and aren't expensive. Scan-driven receiving and put-away through a real WMS. Cycle-count programs that hit every SKU on a 30/60/90 cadence based on velocity. Perpetual inventory updates that flow into your ATP engine in seconds, not hours. The OrderHUBx warehouse management system handles the dock-to-shelf side, and BatchTrack keeps lot-level traceability tight enough that QC holds don't quietly drift into your available pool. The control plane that publishes ATP to your distributors only works as well as the floor data feeding it.
What Happens to OTIF When You Get This Right
OTIF — on-time, in-full — is the number your distributors actually grade you on. Their scorecard reviews don't care about your gross margin or your production schedule. They care whether the units showed up when you said they would, in the quantity you committed.
ATP-driven quoting, calculated lead times, and substitute-SKU surfacing typically lift OTIF by 8–15 points in the first 90 days after rollout. The math is straightforward: most OTIF failures come from over-committed inventory and inflated lead times that the manufacturer never had a real chance of hitting. When the quote is honest at the point of sale, the fulfillment is honest at the point of ship. Backorders drop. Partial shipments drop. The chargebacks that your top distributors have been quietly accruing against you stop showing up in the monthly review.
Line fill rate — units shipped on the first pass against units ordered — typically moves from the 88–92% range up to the 95–97% range. Case fill rate on programmed SKUs moves into the high 90s. These are the numbers your distributor's purchasing director uses to decide whether to renew your line for another year or open a slot for the competitor.
For more on how distributors grade you and what to do with the data when you get it back, the playbook on distributor scorecards for manufacturers walks through the metrics that actually move the relationship. And if you're still debating whether the right answer for your channel is a portal at all — versus a B2B webstore — the distributor portal vs B2B webstore comparison covers the architectural fork in the road.
The Friday Afternoon Test
Pick a Friday at 3:30 PM. Pretend you're the salesperson at Front Range Plumbing Supply. The Mortenson PM is on the phone. You need 80 units, on site in five business days, and you need to commit before he hangs up.
What does your portal show? Is the number old? Is it net of weekend pulls from Phoenix? Does it tell you the lead time for the balance? Does it surface a substitute that ships tomorrow? Can the salesperson make a defensible promise without a callback?
If the answer to any of those is no, you're shipping air through your channel — and the bid is going to whoever can answer the question.
Talk to us about real-time ATP for your distributor network.