A single live currency figure that rolls up value tied up in at-risk states, orders stuck too long, lost demand on out-of-stock best-sellers, and failed orders, so you can see exposure at a glance.
At a glance
Most cards answer one question. This one answers “how much money is currently in trouble?” by combining several at-risk signals into one live figure: the value of orders stuck in a pre-completion state too long, the lost demand on top-selling products that have gone out of stock, and the value of orders that have failed outright. It is deliberately a composite estimate, not an accounting total. Its job is to turn scattered operational problems into a single dollar number an owner can react to, then drill into the contributing cards to act.
| What it estimates | A live, composite currency value of revenue currently exposed across at-risk states, not a single ledger figure. |
| What feeds it | Broadly: value of orders stuck in pending/processing beyond a healthy age, estimated lost demand on out-of-stock best-sellers, and the value of failed orders. The exact blend is a Vortex IQ composite, not a fixed OpenCart formula. |
| Order / value source | Order totals live in oc_order; OpenCart stores order totals and tax separately and supports multiple currencies. Stock comes from oc_product. |
| Tax / shipping | Because it draws on order totals, the figure reflects the totals as OpenCart stores them; it is an exposure estimate, not a tax-reconciled number. |
| Currency | OpenCart supports multiple currencies and does not apply FX here; a multi-currency store mixes units unless filtered to one currency. |
| Not an accounting figure | This is an operational early-warning estimate. Do not reconcile it line-for-line against your books; reconcile its components instead. |
| Multi-store | Orders and stock carry / share store_id; by default the estimate spans the whole estate. |
| Time window | RT (live) |
| Alert trigger | > $0 |
| Roles | owner, finance |
Calculation
Worked example
A US outdoor-gear store on OpenCart 4.x. The snapshot is taken at 14:00 on 19 Mar 26, during a week with a payment-callback hiccup and a stock-sync slip. Figures are illustrative.| Contributing signal | Estimated value at risk | Source card |
|---|---|---|
| Orders stuck in Pending beyond a healthy age | $6,400 | Pending Orders |
| Orders stuck in Processing too long | $2,100 | Processing Orders |
| Lost demand on out-of-stock best-sellers | $3,800 | Out-of-Stock Products |
| Failed orders (last 24h) | $1,500 | Failed Orders (24h) |
| Revenue at Risk (this card) | $13,800 | composite estimate |
- One number replaces a morning of clicking around. Instead of the owner checking four separate queues, the card surfaces $13,800 at risk and points to the four contributors. The value is triage, it tells you a problem is worth acting on today, before you know exactly which.
- The biggest slice is stuck Pending orders. At $6,400, the pending pile dominates, and it traces straight back to the payment-callback hiccup. Fixing the callback both clears those orders and drops this figure fastest, so it is the first lever to pull.
- It is an estimate, not the ledger. The out-of-stock lost-demand component is modelled from recent velocity, not booked revenue, so $13,800 is a directional exposure figure, not a number to journal. The owner reconciles each component against its own card, never this total against the books.
- Any non-zero reading fires the alert. Because risk above zero always deserves a look, the trigger is
> $0. In a perfectly healthy hour the card reads zero and stays quiet; the moment money is exposed, it speaks up.
Sibling cards merchants should reference together
| Card | Why pair it with Revenue at Risk (live) |
|---|---|
| Pending Orders | A primary contributor. Stuck pending value is often the largest slice of the figure. |
| Processing Orders | Orders aging in Processing add to the at-risk pile. |
| Out-of-Stock Products | Lost demand on out-of-stock best-sellers feeds the estimate. |
| Failed Orders (24h) | Failed-order value is a direct component. |
| Stock-Out Burst | A burst that zeros best-sellers spikes the lost-demand component sharply. |
| Order Processing Backlog | The aging view that explains why pending/processing value is at risk. |
Reconciling against OpenCart
Where to look in the OpenCart admin: There is no single OpenCart screen that shows “revenue at risk”, because this is a Vortex IQ composite. You reconcile its parts. Sales → Orders, filtered by status, gives you the stuck-pending and stuck-processing populations and their totals (oc_order holds totals, with tax stored separately). Catalog → Products, sorted by quantity, plus Reports → Products Purchased, shows which out-of-stock items had real demand. Reports → Sales → Orders summarises order value by status across a period.
OpenCart admin views that look like the same number but aren’t:
- Reports → Sales → Orders total is realised or booked order value by status, not a forward-looking risk estimate; it has no lost-demand component.
- The Dashboard revenue tile is recent sales, not exposure.
- A gateway’s pending-settlement figure overlaps with the stuck-order component but excludes stock-driven lost demand entirely.
| Reason | Direction of divergence |
|---|---|
| It is an estimate, not a ledger. The lost-demand component is modelled from velocity, so no OpenCart report will match the total exactly. | By design, not reconcilable as a single figure |
| Timezone. Aging thresholds are evaluated in UTC by default; OpenCart timestamps follow the store timezone. Which orders count as “too long” can shift at the boundary. | Cosmetic timing shift |
Multi-store. Orders and stock span store_id; the estimate covers the whole estate unless filtered. | Card higher than a single-store view |
| Multi-currency. OpenCart supports multiple currencies and no FX is applied here, so a multi-currency store mixes units. | Mixed-units total for international stores |
| Status-name customisation. Renamed pending/processing/failed statuses need mapping for the right orders to feed the estimate. | Either direction |
| API / DB sync lag. A just-stuck order or a just-zeroed best-seller may not yet be reflected. | Self-resolves at next sync |
Known limitations / merchant FAQs
Is this a number I can put in my accounts? No. It is an operational early-warning estimate, not an accounting figure. The lost-demand component is modelled from recent product velocity rather than booked revenue, so the total is directional. Reconcile its components against their own cards and your books, never this single number against the ledger. Why does it fire at any value above zero? Because money in trouble always deserves a look. In a healthy hour the figure is zero and the card stays quiet; the moment value is exposed (a stuck order, a zeroed best-seller, a failed payment), it should be visible. There is no “safe amount” of at-risk revenue to ignore by design. What exactly goes into the number? Broadly: the value of orders stuck in a pre-completion state past a healthy age, the estimated lost demand on out-of-stock best-sellers, and the value of failed orders. The precise blend is a Vortex IQ composite rather than a fixed OpenCart formula, which is why we describe the inputs rather than publish an exact equation. The figure jumped, how do I find out why? Open the contributing cards: Pending Orders, Processing Orders, Out-of-Stock Products, and Failed Orders (24h). Whichever moved is the driver. Vortex Mind can also investigate the cause automatically when the figure spikes. My store uses multiple currencies, what currency is this in? OpenCart supports multiple currencies and no FX conversion is applied here, so a multi-currency store produces a mixed-units total unless you filter to a single currency. Treat the figure as directional for international estates. Does it cover all my storefronts? Yes by default. Orders and stock span or sharestore_id, so the estimate covers the whole estate unless you filter to one store.
It reads zero, does that mean nothing is wrong?
It means none of the tracked at-risk states currently hold value: no over-aged stuck orders, no out-of-stock best-sellers with modelled lost demand, no failed orders. Other problems outside these signals can still exist, which is why this card sits alongside the rest of the Nerve Centre rather than replacing them.