> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sales Orders Blocked on Inventory or Credit, Microsoft Dynamics 365

> Sales Orders held by inventory shortage or credit hold in Business Central, ranked by revenue at stake. The morning unblocking queue. How to read it, why i...

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Sales Orders held by inventory shortage or credit hold in Business Central, ranked by revenue at stake. The morning unblocking queue.

## At a glance

> Alert table of Sales Orders blocked from progressing in Business Central, ranked by revenue at stake. Each row is a stuck SO with a reason code: Credit Hold, Inventory Shortage, Pending Approval (>72hrs), or Item Tracking Missing.

|                                |                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**             | Open Sales Orders where ANY of: `Customer.Blocked = 'All'` or `'Ship'` (credit hold), `Sales Line.Outstanding Quantity > Item.Inventory` (insufficient stock), `Status = 'Pending Approval'` for > 72 hours, or `Sales Line.Item Tracking required but missing`. Each row carries the SO Number, Customer Name, Amount, Block Reason, Days Blocked, and a Vortex IQ-suggested action. |
| **VAT / tax treatment**        | Net of VAT, parity with [Open SO Value](/nerve-centre/kpi-cards/microsoft-dynamics/msd-open-so-value).                                                                                                                                                                                                                                                                                |
| **Inventory shortage check**   | Uses `Item.Inventory` minus `Reservation Entry.Quantity` (stock already promised to other Orders) vs `Sales Line.Outstanding Quantity`. Drop-Ship lines are excluded (no inventory commitment).                                                                                                                                                                                       |
| **Credit Hold check**          | `Customer.Blocked` field, plus `Customer.Credit Limit` exceeded by sum of `Sales Header.Amount` + open Customer Ledger Entry balance.                                                                                                                                                                                                                                                 |
| **Pending Approval threshold** | 72 hours by default. Tunable per workspace via the field map.                                                                                                                                                                                                                                                                                                                         |
| **Currency**                   | Multi-Company: each SO converted to Reporting Currency for ranking.                                                                                                                                                                                                                                                                                                                   |
| **Time window**                | `RT` (real-time snapshot)                                                                                                                                                                                                                                                                                                                                                             |
| **Alert trigger**              | `>0 high-value blocked` (any SO above \$10K stuck for >24 hours)                                                                                                                                                                                                                                                                                                                      |
| **Sentiment key**              | `blocked_so`                                                                                                                                                                                                                                                                                                                                                                          |
| **Roles**                      | owner, finance, 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 Business Central Online, \$90M revenue. Snapshot 14 Apr 26.

| SO Number       | Customer                 | Amount (USD)  | Block Reason                          | Days Blocked | Suggested Action                     |
| --------------- | ------------------------ | ------------- | ------------------------------------- | ------------ | ------------------------------------ |
| SO-208441       | Acme Tech Distribution   | \$184,200     | Credit Hold (Limit Exceeded)          | 4            | Release on prepayment OR raise limit |
| SO-208533       | NorthEast Components Inc | \$96,400      | Inventory Shortage (12 lines)         | 6            | Substitute SKUs OR backorder         |
| SO-208612       | TechHub Wholesale        | \$54,800      | Pending Approval >72hrs               | 5            | Escalate to Finance Director         |
| SO-208694       | DeltaCorp Industries     | \$48,200      | Credit Hold (Customer.Blocked = Ship) | 9            | Customer review meeting              |
| SO-208702       | RegionalTechCo           | \$34,600      | Item Tracking Missing                 | 2            | Warehouse to assign Lot No.          |
| **Top 5 total** |                          | **\$418,200** |                                       |              |                                      |

Five things to notice:

1. \*\*The top stuck SO ($184K Credit Hold) represents 24 hours of GL revenue in one Order.** A $90M / year merchant invoices roughly $250K / day on a Net-30 basis. One stuck $184K Order is significant working-capital drag. The Controller's morning routine starts here.
2. **Inventory shortage on SO-208533 (\$96K) is upstream symptom of the [OOS with SO Demand](/nerve-centre/kpi-cards/microsoft-dynamics/oos-with-open-sales-order-demand) cross-connector finding.** 12 lines short = a multi-SKU demand spike that purchasing did not see coming. The cross-connector card surfaces ad-spend on the same OOS SKUs (a double-loss: spending money to acquire customers for products you cannot ship).
3. **Pending Approval >72hrs (\$54K) is process drag.** BC's approval workflow holds SOs above a threshold for Finance signoff. If approvers are out of office or notifications are misrouted via Microsoft Teams, SOs sit in queue. The Approval Workflow audit log shows who is the bottleneck.
4. **Customer.Blocked = Ship (\$48K stuck 9 days) is a flag-day case.** Some Customer relationship has gone sideways (overdue >90 days, or contract dispute). Until a senior person resolves with the customer, the SO sits. The 9-day age makes this card's `>0 high-value blocked` alert fire daily.
5. **Total stuck: $418K, plus 23 lower-value SOs not shown = ~$640K total blocked.** That is roughly 8.5% of [Open SO Value](/nerve-centre/kpi-cards/microsoft-dynamics/msd-open-so-value). At Net-30 terms, every stuck day is 1/30th of monthly revenue lost in DSO drift. The Controller's job is to drive this number to zero by Friday afternoon.

## Sibling cards merchants should reference together

| Card                                                                                                   | Why pair it with Sales Orders Blocked                                           |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| [Open Sales Order Value](/nerve-centre/kpi-cards/microsoft-dynamics/msd-open-so-value)                 | The denominator. This card's % is the share blocked.                            |
| [Orders on Credit Hold](/nerve-centre/kpi-cards/microsoft-dynamics/orders-on-credit-hold)              | The Credit Hold subset as its own time series.                                  |
| [Customer Credit Utilisation](/nerve-centre/kpi-cards/microsoft-dynamics/customer-credit-utilisation)  | Predictive: customers approaching their limit will become Credit Hold tomorrow. |
| [Low Stock Alerts](/nerve-centre/kpi-cards/microsoft-dynamics/low-stock-alerts)                        | The Inventory Shortage subset as a forward warning.                             |
| [OOS with SO Demand](/nerve-centre/kpi-cards/microsoft-dynamics/oos-with-open-sales-order-demand)      | Cross-connector: ties inventory shortages to live commerce demand and ad spend. |
| [SO to Invoice Lead Time](/nerve-centre/kpi-cards/microsoft-dynamics/sales-order-to-invoice-lead-time) | Tells you whether blockages are systemic (slow lead times) vs episodic.         |
| [Revenue Gap vs Commerce](/nerve-centre/kpi-cards/microsoft-dynamics/revenue-gap-vs-commerce)          | Blocked SOs feed directly into Released-Not-Invoiced on the gap card.           |

## Reconciling against the vendor's own dashboard

**Where to look in Business Central:**

> **Sales > Sales Orders > filtered view "Blocked Orders"** (custom filter)
> **Role Centre > Order Processor profile > Cues > Pending Approval, Inventory Issue tiles**
> **Customer Card > drill to Sales Orders > filter Blocked**
> **Power BI > Sales Insights > Blocked Orders tile** (if installed)

There is no single native "Blocked Orders" page; merchants typically build a saved filter combining `Customer.Blocked != ' '` OR a calculated insufficient-stock condition. The Order Processor Role Centre cues approximate this for one Company at a time.

**Why our list may legitimately differ from a manual filter:**

| Reason                         | Direction                | Why                                                                                                                                                                                    |
| ------------------------------ | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Reservation Entry handling** | Card may show fewer      | Some Sales Lines have stock reserved (Reservation Entry rows). The card subtracts reserved stock before flagging shortage; a naive `Inventory < Outstanding Quantity` filter does not. |
| **Approval-age computation**   | Card uses 72hr threshold | BC's standard view shows all Pending Approval, regardless of age. The card highlights only > 72hr (configurable).                                                                      |
| **Drop-Ship exclusion**        | Card may show fewer      | Drop-Ship lines have no inventory commitment; the card excludes them from Inventory Shortage flagging.                                                                                 |
| **Multi-Company aggregation**  | Card materially more     | The card sums across all connected Companies; BC's per-Company view shows one.                                                                                                         |
| **Customer.Blocked variants**  | Either                   | BC has `Blocked = All` (no transactions) and `Blocked = Ship` (post but do not ship). The card flags both; some manual filters look at one only.                                       |

**Cross-connector reconciliation:**

| Card                                                                      | Direction                | Notes                                                                                     |
| ------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------- |
| [shopify.fulfillment\_pending](/nerve-centre/shopify/fulfillment_pending) | Commerce side correlated | Shopify orders blocked at the warehouse layer correlate with BC SOs blocked on inventory. |
| [stripe.payment\_failed](/nerve-centre/stripe/payment_failed)             | Upstream signal          | Failed Stripe payments often generate BC SOs on Credit Hold.                              |

## Known limitations / merchant FAQs

**What is the right ratio of blocked to total open SOs?**
\< 5% is healthy. 5 to 10% suggests a process or staffing gap (slow approvers, tight credit limits, lean inventory buffer). > 10% is a firefighting situation; pair with [Customer Credit Utilisation](/nerve-centre/kpi-cards/microsoft-dynamics/customer-credit-utilisation) and [Low Stock Alerts](/nerve-centre/kpi-cards/microsoft-dynamics/low-stock-alerts) to see whether the cause is concentrated in customers or SKUs.

**How does BC's `Customer.Blocked = Ship` differ from `Blocked = All`?**
`Blocked = All` halts every transaction with that customer (Order, Invoice, Payment receipt). `Blocked = Ship` lets the order be created and invoiced, but the warehouse cannot ship until released. `Blocked = Invoice` allows shipping but blocks invoicing. The card flags all three.

**Are Pending Prepayment SOs counted?**
Yes if the prepayment is overdue. BC's `Status = Pending Prepayment` means the customer must pay an upfront percentage before the rest of the order ships. If that prepayment is overdue (Sales Header `Prepmt. Payment Terms Code` matured), the SO is effectively blocked.

**My approval workflow uses Microsoft Power Automate. Does the card see it?**
Yes via OData. The Sales Header's Status = `Pending Approval` is set regardless of whether approvals route through native BC or Power Automate. The age timer starts at the status transition.

**Does the card include orders blocked by AL Extension validation?**
Yes if the extension sets the Sales Header `Blocked` field or pushes the Status into a recognised state. Custom blocking states added by extensions need to be registered in the field map.

**How is "high-value" defined for the alert trigger?**
Default: any SO above $10K USD equivalent stuck for >24 hours. Tunable per workspace; some merchants set higher ($50K) for low-noise alerts, some lower (\$1K) for high-touch DTC.

**Can I auto-resolve Credit Hold from this card?**
Vortex IQ surfaces the action; the merchant clicks through to the BC Customer Card to release. We do not write to BC for high-risk actions like credit-limit overrides. See the AI OS Action Engine roadmap for safe auto-resolve workflows.

**Multi-Company tenant: does the card prioritise across Companies?**
Yes. The list is sorted by USD-equivalent Amount descending so the biggest stuck Order anywhere in the group floats to the top. Each row carries the Company Name as a column.

**Does this card surface Returns Orders blocked?**
Yes. A Return Order with `Document Type = Return Order` blocked on a Customer Block fires the alert. Most merchants want this because a stuck return delays the Sales Credit Memo.

***

### Tracked live in Vortex IQ Nerve Centre

*Sales Orders Blocked on Inventory or Credit* is one of hundreds of KPI pulses Vortex IQ tracks across Microsoft Dynamics 365 and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
