> ## 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.

# Revenue at Risk (live), OpenCart

> Live composite currency figure for value tied up in stuck or at-risk states across your OpenCart store. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Card class:** [Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> 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

```
APPROX:
  value_of_orders_stuck_too_long
+ estimated_lost_demand_on_oos_bestsellers
+ value_of_failed_orders
= revenue_at_risk (live composite estimate, not a fixed formula)
```

## 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](/nerve-centre/kpi-cards/opencart/pending-orders)               |
| Orders stuck in Processing too long          | \$2,100                 | [Processing Orders](/nerve-centre/kpi-cards/opencart/processing-orders)         |
| Lost demand on out-of-stock best-sellers     | \$3,800                 | [Out-of-Stock Products](/nerve-centre/kpi-cards/opencart/out-of-stock-products) |
| Failed orders (last 24h)                     | \$1,500                 | [Failed Orders (24h)](/nerve-centre/kpi-cards/opencart/failed-orders-24h)       |
| **Revenue at Risk (this card)**              | **\$13,800**            | composite estimate                                                              |

What's interesting here:

1. **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.
2. **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.
3. **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.
4. **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](/nerve-centre/kpi-cards/opencart/pending-orders)                     | A primary contributor. Stuck pending value is often the largest slice of the figure. |
| [Processing Orders](/nerve-centre/kpi-cards/opencart/processing-orders)               | Orders aging in Processing add to the at-risk pile.                                  |
| [Out-of-Stock Products](/nerve-centre/kpi-cards/opencart/out-of-stock-products)       | Lost demand on out-of-stock best-sellers feeds the estimate.                         |
| [Failed Orders (24h)](/nerve-centre/kpi-cards/opencart/failed-orders-24h)             | Failed-order value is a direct component.                                            |
| [Stock-Out Burst](/nerve-centre/kpi-cards/opencart/stock-out-burst)                   | A burst that zeros best-sellers spikes the lost-demand component sharply.            |
| [Order Processing Backlog](/nerve-centre/kpi-cards/opencart/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.

**Why our number may legitimately differ from the OpenCart admin:**

| 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                     |

**Cross-connector note:** the stuck-order component overlaps with what a payment gateway calls pending settlement, and the lost-demand component overlaps with a marketplace's out-of-stock exposure. Neither external system sees the *whole* picture the way this composite does, which is the point: it unifies signals that otherwise live in separate tools.

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The same idea of a composite revenue-at-risk figure exists on other commerce platforms. This is **not a reconciliation**, your OpenCart store has no parallel store elsewhere to compare against. These links help agencies running multi-platform client books navigate between equivalent metrics.

  * [`shopify.revenue_at_risk`](/nerve-centre/kpi-cards/shopify/revenue-at-risk)
  * [`bigcommerce.revenue_at_risk`](/nerve-centre/kpi-cards/bigcommerce/revenue-at-risk)
</details>

## 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](/nerve-centre/kpi-cards/opencart/pending-orders), [Processing Orders](/nerve-centre/kpi-cards/opencart/processing-orders), [Out-of-Stock Products](/nerve-centre/kpi-cards/opencart/out-of-stock-products), and [Failed Orders (24h)](/nerve-centre/kpi-cards/opencart/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 share `store_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.

***

### Tracked live in Vortex IQ Nerve Centre

*Revenue at Risk (live)* is one of hundreds of KPI pulses Vortex IQ tracks across OpenCart 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.
