Items with open Sales Order demand but zero on-hand. The morning purchasing queue, ranked by Sales Order value.
At a glance
SKUs that are OOS in BC (Inventory = 0or below safety stock) AND have open Sales Order demand (Sales Line.Outstanding Quantity > 0). The purchasing queue, ranked by SO value at risk. Cross-connector pulls in commerce-side demand signals (carts, recent traffic) for additional ranking.
| What it counts | Items where BC.Inventory <= 0 AND SUM(open Sales Line.Outstanding Quantity) > 0. Each row = SKU, on-hand qty, demanded qty, SO value at risk, longest-waiting SO age, suggested action. Cross-connector enrichment: 30-day commerce sessions, cart adds, ad spend (signals demand strength). |
| Safety stock threshold | If the Item has Reorder Point configured, the card uses below-Reorder-Point as the OOS criterion. Otherwise zero on-hand. |
| Multi-Location | The card respects per-Location stock vs per-Location demand (a SKU can be OOS in Sydney with demand from Sydney customers but in stock in Melbourne; the card flags the Sydney demand only). |
| In-Transit | Configurable: include or exclude in-transit stock. Default include with a flag. |
| Production Orders | Open Production Orders that will replenish the SKU are shown in the row as “expected receipt”. |
| Time window | RT (real-time) |
| Alert trigger | any high-value SO blocked (any SO > $10K stuck on OOS for >24 hours) |
| Sentiment key | oos_with_demand |
| Roles | owner, operations |
Calculation
Calculated automatically from your Microsoft Dynamics 365 data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A US wholesale electronics distributor on BC, $90M revenue. Snapshot 14 Apr 26.| SKU | Description | BC qty | Demanded qty | SO value at risk | Oldest SO age | Commerce sessions 30D | Ad spend 30D | Action |
|---|---|---|---|---|---|---|---|---|
| ELEC-LAPTOP-A14 | Laptop A14 14” | 0 | 142 | $184,200 | 9 days | 12,400 | $4,820 | Purchase Order URGENT (vendor lead 21 days) |
| ELEC-MONITOR-27UHD | 27” UHD Monitor | 0 | 86 | $96,400 | 6 days | 8,200 | $3,640 | PO + check substitution |
| ELEC-DOCK-USB4 | USB4 Dock | 0 | 54 | $54,800 | 12 days | 6,800 | $1,820 | PO (already in transit, 4 days) |
| ELEC-KEYBRD-MX | MX Keyboard | 0 | 38 | $48,200 | 14 days | 4,200 | $920 | Substitute SKU available |
| ELEC-MOUSE-LOG | Logitech mouse | 0 | 24 | $34,600 | 5 days | 3,800 | $640 | PO |
| Top 5 | 344 | $418,200 |
- Top SKU (Laptop A14) has 4,820 of ad spend. The merchant is actively spending money to send traffic to a product they cannot ship. Pause Google Ads on this SKU immediately while the PO is in flight (21-day lead).
- The “stuck SO age 9 days” is the killer detail. B2B customers committed 9 days ago and have heard nothing. They will start chasing today, or worse, cancelling. Operations should email proactively with expected delivery date.
- Cross-connector enrichment makes this card the kill-shot. BC alone shows OOS + open SO. Commerce alone shows traffic + ad spend. Neither sees the intersection. Ad-spend on OOS SKUs is the single most actionable waste signal.
- MX Keyboard has a substitute SKU available. The card flags this if the field map’s substitution rules are configured (e.g. by Item Category + spec). Operations can offer the substitute via a Sales Order line replacement.
- USB4 Dock already has 4-day inbound PO. The card pulls Purchase Order data and shows expected receipt date. Operations can confirm the inbound vs the customer wait time and decide whether to backorder or substitute.
Sibling cards merchants should reference together
| Card | Why pair it with OOS with SO Demand |
|---|---|
| Sales Orders Blocked | The Inventory Shortage subset of blocked SOs. |
| Low Stock Alerts | The forward-looking version (below safety stock). |
| Dead Stock with Active Ad Spend | The mirror image: this card is undersupplied + advertised; that one is oversupplied + advertised. |
| Inventory Sync Drift | If commerce shows stock when BC shows OOS, you have an oversold-risk drift on top of OOS. |
| Top SKUs by Inventory Value | High-value SKUs running OOS are the top concern. |
| Open Sales Order Value | The denominator: this card is the demand-blocked subset. |
Reconciling against the vendor’s own dashboard
Where to look in Business Central:Reports > Inventory > Inventory Stockout (variant) Item Card > Availability by Period > drill to Open SOs Sales > Sales Orders > filter Outstanding Quantity > 0 + drill to Item availability Power BI > Inventory Performance > OOS tileBC’s native views show OOS OR open SOs but rarely the intersection enriched with commerce + ad data. Why our list may legitimately differ from BC’s native views:
| Reason | Direction | Why |
|---|---|---|
| Reorder Point handling | Either | Card uses Reorder Point if configured, else zero. BC reports often use zero only. |
| In-Transit treatment | Either | Card configurable to include or exclude. |
| Multi-Location aggregation | Either | Card respects per-Location demand vs availability. |
| Cross-connector enrichment | Card more comprehensive | BC sees OOS + SO; this card adds commerce traffic and ad spend. |
Known limitations / merchant FAQs
What if the same SKU has open SO demand but plenty of stock at another Location? The card flags per-Location OOS. If the demand is at Sydney and stock is at Melbourne, the card recommends a Transfer Order to Sydney. Does the card see Production Orders that will replenish? Yes. Open Production Orders feed into the “expected receipt” column. The merchant can decide whether the production lead time meets the customer wait time. How does the card prioritise between SO value vs commerce ad spend? Default ranking: SO value at risk descending. Optional secondary sort by ad spend descending (catches the cases where ad-funded waste is highest even if SO value is moderate). Substitution suggestions: how do they work? Field map can specify Item-level substitution rules (e.g. “if Item X is OOS, suggest Item Y when X is on a Sales Line”). Without rules configured, the card simply flags candidates by Item Category match. Does this card account for backorders the customer accepted? If the Sales Line hasBackorder = Yes, the customer agreed to wait, so it is lower urgency. The card still surfaces but with a lower Priority flag.
Multi-Company: same SKU OOS in one Company, in stock in another?
The card flags per-Company. Inter-company transfer is a separate operational decision.
What about Quote stage demand?
Excluded by default. Quotes are non-binding; demand is uncommitted. Some merchants want this for forecasting; configurable.
Does the AL Extension connector matter?
Yes for the cross-connector enrichment (commerce sessions, ad spend). The BC-side OOS + SO logic works regardless of which connector you use.