Out of Stock Substitutions
Giving restaurant customers control over product substitutions—saving $80M annually in lost sales and returns.
How do customers know what we're replacing their item with?
This was the first question I asked when I learned about the substitution problem. Sysco's current state offered no visibility into the substitution process—customers had no idea what was being swapped until delivery arrived.
The broken substitution flow
When items go out of stock, manual substitutions happen at a 4PM cutoff—often without customer input. Here's how it works today:
- Order submitted — Customer places order with no way to modify it afterward
- Order prepared — Warehouse discovers item is out of stock
- Item out of stock? — Three possible outcomes:
- If a sub exists in the system → Manual substitution by cutoff (often wrong)
- If manual sub happens → Customer contacted by phone, often too late to respond
- If no sub exists → Nothing happens, customer loses the sale
$80M lost annually on broken substitutions
This broken process results in massive revenue loss:
- $16M per year — Wrong substitutions returned by customers
- $64M per year — No substitute offered at all
The substitution algorithm isn't great, cutoff times are too tight, and customers have zero control or visibility into the process.
Key Insight: Customers order OOS items anyway
Qualitative data revealed customers perceive "Out of Stock" as "Backorder"—and they're not wrong. Chef menus are hardcoded; they can't just accept the next closest thing like a consumer would.
Understanding the scale
| 1st Half of FY23 | 2nd Half of FY23 | 1st Half of FY24 | Projected 2nd Half of FY24 | |
|---|---|---|---|---|
| (in millions) | ||||
| OOS Items Ordered | $514 | $364 | $356 | $251 |
| Offered Substituted | $487 | $326 | $312 | $209 |
| Accepted Subs | $478 | $310 | $305 | $198 |
| Not offered Subs | $26 | $38 | $43 | $63 |
| Unacceptable Subs | $9 | $7 | $7 | $5 |
Rich notifications + inventory visibility
We introduced push notifications when subs occur, letting customers accept, change, or reject substitutions. We also exposed inventory data previously hidden from customers.
Pre-order backup selection
Chefs are busy and can't always respond before cutoff. Phase 2 lets customers set backup items before ordering—giving them control without requiring real-time attention.
We analyzed competitive patterns from HEB, Whole Foods, and Instacart to understand best practices in grocery substitution flows.
Regional pilot before nationwide rollout
We started with a single-region pilot to test the solution before rolling out nationwide. This phased approach allowed us to catch critical issues early.
Critical bug discovered during pilot
During testing, I noticed that out-of-stock items were appearing in the backup selection list—customers could potentially select an unavailable item as their backup. This would have defeated the entire purpose of the feature.
We immediately flagged this to engineering and got it fixed before the nationwide implementation. The fix ensured only in-stock items appeared as backup options, preventing a cascading failure scenario.
Nationwide rollout
After successfully piloting in one region and resolving the inventory visibility issue, we rolled out to all regions nationwide. The phased approach proved essential—what seemed like a small bug would have significantly undermined customer trust if it had shipped to production.
Significant impact on lost revenue
Key Learnings
Customers love transparency and flexibility. Already seeing significant numbers just from the pilot program.
Leadership often wants to make consumer "deals", but we have to constantly remind them that that's not how restaurant customers order. Often, chef's menus are static. This is a big win for the future.
Institutional knowledge was critical. Took a significant amount of institutional knowledge to get here and loads of convincing leadership, so I'm very proud we've been able to push this forward.