Skip to main content
Card class: HeroCategory: Ecommerce Platform
Sales Orders held by inventory shortage or credit hold, ranked by revenue at stake. The morning unblocking queue.

At a glance

Sales Orders held by inventory shortage, credit hold, or workflow gating, ranked by revenue at stake. The morning unblocking queue every Controller and Operations lead works on at 9am.
What it countsOpen SOs flagged with at least one of: OnHold = T, CreditHold = T, Backorder > 0 on any line, or Status = 'Pending Approval' for more than 24 hours. Each row shows reason, age, and revenue at stake.
Reason classificationInventory hold (insufficient stock at the SO’s location), Credit hold (customer over credit limit or terms breached), Approval pending (>24h in Pending Approval), Custom workflow hold (extension fields).
Tax treatmentNet of tax. Amount column reflects pre-tax SO total.
ShippingIncluded in the Amount column.
Refundsn/a (pre-Invoice stage).
CurrencyOneWorld: reporting currency at current FX. Single-subsidiary: native subsidiary currency.
Multi-subsidiaryRespects dashboard filter; defaults to all subsidiaries the role can read.
Time windowRT (real-time snapshot)
Alert trigger>0 high-value blocked, where high-value defaults to >$10K per SO (configurable per workspace)
Sentiment keyblocked_so
Rolesowner, finance, operations

Calculation

Calculated automatically from your NetSuite 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 distributor (Annual revenue ~$60M) on NetSuite OneWorld. Snapshot 14 Apr 26 at 9am ET.
SO #CustomerAmountBlock ReasonDays blocked
SO-48201Acme Stores Inc$84,000Credit hold (over limit by $12K)3
SO-48189Birch & Co$61,000Inventory hold (3 SKUs OOS)5
SO-48177Continental Retail$52,000Pending Approval (legal review)7
SO-48155Dakota Outfitters$44,000Inventory hold (1 SKU back-ordered)2
SO-48142Evergreen Group$38,000Credit hold (2 invoices > 60 days overdue)1
(24 more rows under threshold)various$148,000mixedvaries
Blocked SO Value (this card)$427,000
of which High-Value Blocked (>$10K)$279,000
Five things to notice:
  1. **84KAcmeStorescreditholdistheeasywin.Customeris84K Acme Stores credit hold is the easy win.** Customer is 12K over their 200Kcreditlimit.TheControllerhasthreeoptions:getapartialpaymenttobringthemunder,raisethelimit,orreleasetheholdforthisSOwithaflagfornextmonthreview.15minutedecision;200K credit limit. The Controller has three options: get a partial payment to bring them under, raise the limit, or release the hold for this SO with a flag for next-month review. 15-minute decision; 84K starts moving.
  2. $61K Birch & Co inventory hold is an Operations problem. 3 SKUs OOS on the SO. The card surfaces the SKUs (drill-down). Operations either expedites the PO, partial-ships, or substitutes. Each path has revenue and customer-experience implications.
  3. $52K Continental Retail in legal review for 7 days is the slow leak. Custom workflow gating doesn’t auto-resolve. The Controller pings General Counsel; if it’s stuck >14 days the customer typically cancels and orders elsewhere.
  4. $38K Evergreen Group credit hold is a structural signal. Two invoices > 60 days overdue means this customer is becoming an AR risk. Releasing the new SO without addressing the overdue might compound the problem. Pair with Customer Credit Utilisation.
  5. **The card sentiment alert fires at any value > 10Kinthehighvaluebucket.Todaythereare5highvalueblockedSOstotalling10K in the high-value bucket.** Today there are 5 high-value blocked SOs totalling 279K. That’s the morning unblocking queue, by definition.

Sibling cards merchants should reference together

CardWhy pair it with Open SOs Blocked
Open SO ValueThe full pipeline. This card is the blocked subset; together they show what fraction of pipeline is stuck.
Credit Hold OrdersThe credit-block subset. Different remediation than inventory blocks.
Customer Credit UtilisationWhy customers go on credit hold. Predictive view.
Low Stock AlertsWhy SOs go on inventory hold. Pair to see whether stock-outs are causing the blocks.
Total Inventory ValueThe macro-level inventory health.
SO to Invoice Lead TimeBlocks lengthen lead time directly. Track them together to attribute cause.
Overdue Invoices ValueCustomers with overdue invoices are credit-hold candidates. Predictive linkage.
shopify.total_revenue / bigcommerce.total_revenueCommerce inflow, if blocks are growing while inflow is steady, throughput is the problem.

Reconciling against the vendor’s own dashboard

Where to look in NetSuite: There is no single native report. The closest manual approach:
Saved search: Transaction.Type = SalesOrd AND Status = 'Pending Approval' OR OnHold = T OR CreditHold = T, sorted by Amount descending.
Most NetSuite Admins build this on day one, then retire it when SuiteAnalytics dashboards came in. Vortex IQ runs the equivalent every 15 minutes and adds the reason classification. Adjacent NetSuite reports that look related but aren’t:
  • Backorder by Item: shows SKUs short, not the SOs blocked by them. Different unit.
  • Customers Over Credit Limit: shows customers, not SOs. Useful for credit ops; not the operational unblock queue.
  • Approval History: workflow-level audit trail, not a current-state dashboard.
Why our number may legitimately differ from a manual saved search:
ReasonDirectionWhy
24-hour Pending Approval thresholdCard excludes fresh SOsThe card filters Pending Approval to SOs older than 24 hours, on the basis that approval is expected within a day. A bare saved search includes new SOs that aren’t actually stuck.
Custom hold flagsEitherSome accounts add custom check-box fields (“Pending Compliance”, “Awaiting CSR review”) that mark holds. The card respects them only if the field map registers them.
Backorder logicEitherNetSuite’s Backorder logic depends on Inventory Location, Subsidiary, and Item record settings. A SKU “OOS” at the warehouse fulfilment location is fine if the SO routes from a different location. The card uses the SO’s commit-quantity field, which respects this.
Real-time vs cached refreshSmallCard refreshes every 15 minutes; saved searches are on-demand. SOs released or newly held in between drift.
Cross-connector reconciliation: This card has no commerce-platform counterpart. Commerce platforms don’t model holds (they auto-fail or auto-allocate). The blocked-SO concept is uniquely a NetSuite intermediary state. The closest cross-connector signal is:
CardRelationship
shopify.inventory_pending_orders (if available)Commerce-side OOS allocation. A spike there often correlates with inventory-hold rises here within 24-48 hours.
shopify.refund_countIf Inventory holds drag too long, customers cancel. Refund spike on this connector signals upstream.
The detailed worklist with per-SO drill-down lives on the card itself; this is the headline.

Known limitations / merchant FAQs

What’s a healthy blocked-SO ratio? Most well-run mid-market commerce businesses run at 3 to 8% of Open SO Value blocked at any moment. Below 3% suggests the credit policy may be too generous (no one ever trips the limit). Above 12% suggests Operations or Finance is the bottleneck and pipeline is degrading. Why does the alert only fire on high-value blocked? Low-value blocked SOs (1Kto1K to 5K) are usually self-correcting: they release within hours when stock is replenished or the customer pays a small balance. High-value blocks tie up working capital and customer relationship; they need human attention. The threshold is configurable per workspace (some retailers set 5K,someset5K, some set 25K). Inventory hold vs Backorder, what’s the difference? NetSuite’s Backorder is the line-level state when commit quantity is less than ordered quantity. Inventory hold is the SO-level OnHold flag set by workflow when any line is short. The card uses both: an SO with any backordered line and any quantity uncommitted shows under Inventory Hold. This is the operational view; the line-level detail lives in the drill-down. Why are some SOs in Pending Approval for >7 days? Three usual reasons: (1) the approver is on leave and no delegation is set up; (2) the SO has a custom workflow tag waiting for an external system (legal review, compliance check); (3) the SO is genuinely an exception and stalls in review. The card surfaces the age column so the Controller can chase the right person. B2B credit-hold mechanics, how does the card decide? NetSuite’s CreditHold flag is set automatically when a customer’s open AR + new SO total exceeds the credit limit. Some accounts customise the trigger (e.g. “credit hold if any invoice >60 days overdue, regardless of total”). The card respects whatever logic is configured on the Customer record; it doesn’t recompute. Can I release a hold from inside Vortex IQ? Not yet. The card surfaces the SOs and reasons; releasing the hold happens in NetSuite UI. Future roadmap: deep-link to the SO record with a one-click release confirmation if the user has the right NetSuite role. (See feature requests on the connector.) How do approvals get auto-resolved if the user has approval authority? NetSuite’s standard SO approval workflow has user-defined thresholds. If the SO is under the user’s threshold, it auto-approves on entry. If over, it routes to a higher approver. The card respects whatever the workflow does; it just shows the queue. Pending Billing isn’t in this card, why? Pending Billing isn’t blocked, it’s just the operational lag between fulfilment and invoicing. It’s tracked separately in SO to Invoice Lead Time. The blocked-SO card is for “stuck”, not “in flow”. Does it work on single-subsidiary NetSuite? Yes. Subsidiary scoping just collapses to “the one subsidiary”. All other logic is identical.

Tracked live in Vortex IQ Nerve Centre

SOs Blocked on Inventory or Credit is one of hundreds of KPI pulses Vortex IQ tracks across NetSuite 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 or book a demo to see this metric running on your own data.