Skip to main content
Metrics type: Cross-Platform MetricsCategory: Analytics
Live $/min loss. GA4 traffic + commerce revenue × incident minutes. The number that pages execs.

At a glance

Live revenue-at-risk in $/min (or equivalent currency) for any open incident from monitoring connectors (Datadog, New Relic, Sentry, statuspage). Computes: typical-revenue-per-minute-for-this-time-of-week × duration-of-open-incident, displayed as a running counter. The number that pages execs, finance and ops want a real currency figure attached to a Sev-1, not “the site is slow”.

Calculation

Calculated automatically from your Google Analytics 4 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 apparel brand on Shopify, Datadog connected for monitoring. On 28 Apr 26 at 14:18 ET (a Tuesday), a Datadog Sev-1 fires: “Checkout API 5xx error rate >50%”. The incident is acknowledged at 14:24 and resolved at 14:53. Property timezone US/Eastern. Three numbered observations:
  1. The card produces a number execs can act on. Without it, the morning’s incident review reads “Checkout API was failing for 35 minutes”. With it: “Checkout API failure cost ~3,045ofGA4measuredrevenue, 3,045 of GA4-measured revenue, ~3,500, $3,800 of true commerce revenue once the tracking gap is added back.” Finance, COO, and the head of engineering all care about that number; “35 minutes of 5xx” is just an engineering brief.
  2. The baseline is DOW/hour-aware. A Tuesday-2pm incident has a 87/minbaseline;thesameincidentonSunday3amwouldhaveabaselineof87/min baseline; the same incident on Sunday-3am would have a baseline of 4/min. The card uses the right reference for “what would normally be happening right now”. This makes peak-hour outages look catastrophic (correct), and 3am outages look minor (also correct, you have time to fix without losing significant revenue).
  3. The displayed number is conservative. The 3,045istheGA4measuredfigure;giventhebrandstypical153,045 is the GA4-measured figure; given the brand's typical 15% tracking gap, the true revenue impact is ~3,500, $3,800. We display the GA4-measured number to avoid over-stating risk during incidents (alert fatigue is real); the post-incident report reconciles against Shopify revenue for the canonical loss calculation.
  4. Multiple concurrent incidents stack. If the checkout outage is happening while a separate “Search down” Sev-2 is open, the card sums both: total revenue at risk = sum-of-(duration × baseline-impact-multiplier) per incident. Each incident has a configurable impact multiplier (a checkout outage might be 100% of baseline; a search-down might be 30% because some users find products via category navigation).
  5. What WOULD trip false positives? Two known false-positive scenarios: (a) a routine deploy that briefly trips a “synthetic check failed” Datadog monitor before stabilising; we filter sub-2-minute incidents to suppress these. (b) a marketing campaign that briefly inflates baseline (Black Friday Tuesday is not the same as a non-BF Tuesday); the engine detects multi-σ baseline outliers and asks for human confirmation rather than auto-closing.
Rule of thumb. $0 = green, no open incidents. Any non-zero figure means a real production incident is currently eating revenue; this is the highest-priority card on the dashboard at that moment.

Sibling cards merchants should reference together

Reconciling against the vendor’s own dashboard

Where to look in GA4 (this card is a Vortex IQ-only metric): GA4 doesn’t have an “incident-aware revenue at risk” view. The closest GA4-native rebuild requires manual triangulation:
Realtime → Revenue for live revenue rate during an incident, eyeball-compare to a typical hour. Reports → Engagement → Events → purchase filtered to the last 1h to estimate the live drop. Realtime → Active users to confirm traffic is reaching the site (rules out DNS/CDN-level outages).
Other GA4 views that look relevant but aren’t:
  • Reports → Acquisition (any view): doesn’t surface real-time incident state; lagged 24h+.
  • Explorations: can be built to do something similar but require manual setup per incident.
  • GA4 alerts (custom): the GA4 UI supports threshold alerts on metrics, but they don’t compose with monitoring-platform incidents.
Why our number may legitimately differ from a manual reconciliation (rare): Cross-connector reconciliation, the IMPORTANT one: This card is fundamentally cross-connector: it joins GA4 baseline + monitoring-platform incident state + commerce-platform truth. Expected relationships: Use the GA4 figure during the incident; reconcile against commerce-platform revenue post-incident. During: the GA4 number is the only real-time signal you have. After: the commerce-platform’s actual revenue dip is the canonical loss.

Known limitations / merchant FAQs

The card shows a number but my Datadog dashboard shows everything healthy. What’s wrong? Either (1) the card has stale incident state from before Datadog auto-closed (force-refresh; should clear within 60s), or (2) a different monitoring connector (New Relic, Sentry, statuspage) has an open incident that Datadog isn’t aware of. Check the incident-source row in the card’s drill-down. The card aggregates across all connected monitoring platforms; closing one source’s incident doesn’t automatically clear another. Why is the number lower than my actual revenue loss after the incident? The card uses the GA4 baseline, which is structurally 10, 25% lower than commerce-platform revenue (the tracking gap). The displayed number is intentionally conservative. After the incident, reconcile the true revenue impact against your commerce platform: Shopify Total Revenue dip vs typical = canonical loss. Then update your incident retrospective with the higher number. The baseline shows 87/minforTuesday2pmbutourTuesday2pmlastweekwas87/min for Tuesday 2pm but our Tuesday 2pm last week was 145/min. Why is the card understating? The baseline is a 30D average smoothed across all Tuesdays in the window. Last Tuesday could have been a peak day (sale, viral moment, marketing push) that’s mathematically averaged with three quieter Tuesdays. The card uses the smoothed median to avoid alert-shock during routine quiet hours. Configure a custom baseline override for known peak windows (BFCM, planned campaigns) via the card’s settings. An incident has been open for 2 hours but the card shows $0. What happened? Three known cases: (1) the incident’s severity is below the card’s threshold (P3/P4 don’t count), (2) the incident is informational/non-customer-impacting (e.g. internal monitoring on a non-public service), (3) the affected service has zero baseline (e.g. a B2B portal during retail hours). Check the incident’s severity classification and impact-multiplier setting. **The card paged me at 3am for an incident that has 4inrevenueatrisk.Why?Becausethealerttriggeris>4 in revenue at risk. Why?** Because the alert trigger is `>0`, ANY open Sev-1/Sev-2 pages, regardless of revenue impact at the moment. We page on incident-existence, not on revenue threshold, the alternative would mean a 3am incident that’s only 4/minnowbecomesa9amincidentthats4/min now becomes a 9am incident that's 400/min by the time anyone notices. Page now, fix now, even if the revenue number looks small. My multi-currency store, what currency does the card display? The GA4 property’s reporting currency. Multi-currency stores see one normalised number (FX-converted at event time during baseline computation). For a more granular view by currency, contact support; we have a multi-currency variant in the roadmap. Does the card include Sev-3 / P3 incidents? No. Only Sev-1 and Sev-2 (or “page” status) incidents trigger the calculation. P3/P4 are tracked by Datadog/New Relic for engineering hygiene but don’t represent customer-facing revenue impact warranting executive attention. The card is a fire alarm, not an issue tracker. Can I customise the impact multiplier per service? Yes. The card settings include per-service impact multipliers: a checkout outage might be 100% of baseline (every order fails), a search-down might be 30% (some users still navigate via category), a CMS-down might be 50% (cached pages still serve). Configure these once; the card uses them for all future incidents on that service. The card’s number keeps changing during an open incident, why isn’t it stable? The number grows linearly: every minute the incident stays open, the card adds another minute × baseline = the running counter. That’s the design, the number IS the cumulative loss to date, not the per-minute rate. The per-minute baseline is shown separately in the drill-down. If the card’s number ever shrinks, that’s a bug; the running counter is monotone-increasing while an incident is open. Does the card account for delayed-impact orders (customer abandoned during outage but came back later)? No. The card measures real-time lost revenue, not eventual recovery. Many customers who abandon during an outage do return later in the day (5, 30% recovery rate is typical). The card’s number is the gross loss; the net loss after recovery is smaller. Reconcile against commerce-platform revenue post-incident to estimate the recovery rate, this is captured in the post-incident retrospective view, not in the live card.

Tracked live in Vortex IQ Nerve Centre

Revenue at Risk (active incidents) is one of hundreds of KPI pulses Vortex IQ tracks across Google Analytics 4 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.