Skip to main content
Metrics type: Key MetricsCategory: Monitoring
Sessions where load >4s or rage-click detected, proxy for conversion drop.

At a glance

The percentage of real-user sessions Datadog flags as “frustrated”: sessions where page load exceeded 4 seconds, or where a rage-click pattern was detected (3+ clicks within 1 second on the same element), or where an unrecoverable JavaScript error fired in the user’s browser. For a merchant, this is “out of every 100 actual shoppers, how many had a measurably bad time?” Above 5 percent is the threshold where the bad experience starts dragging conversion rate by a measurable amount.

Calculation

Calculated automatically from your Datadog 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 UK fashion brand on Shopify with Datadog RUM enabled across the storefront, PDP, cart, and checkout pages. Snapshot taken on 28 Apr 26 at 14:00 GMT for the trailing 7 days (21 Apr to 27 Apr). The card reads 4.6 percent on the dial; the alert at >5% is just under the trip line, but the per-page breakdown reveals the real story: checkout sessions are 11 percent frustrated, more than 2x the aggregate. Three things the merchant should read:
  1. Checkout is the single page that costs revenue. A frustrated session on the homepage is annoying; a frustrated session on checkout is a direct revenue leak. 2,460 of 22,400 checkout sessions threw the address-autocomplete JS error; if the typical conversion rate from cart to purchase is 65 percent, those frustrated sessions converted at roughly 30 percent (52 percent relative drop). At AOV GBP 58 and the brand’s typical mix, that is approximately GBP 28,000 of lost revenue over the 7 days.
  2. The PDP rage-click signal is product-data, not engineering. Shoppers rage-clicking the variant selector typically means an out-of-stock variant looks selectable but throws on add-to-cart. The fix is updating the storefront theme to grey out OOS variants, not optimising rendering. Pair with Top Slow Endpoints only if rage-clicks correlate with slow API responses; here they do not.
  3. Page load p95 is the structural driver across other pages. Homepage at 4.2s, category at 4.6s, cart at 3.8s. None individually triggers the 5 percent alert but together they dragged the aggregate up from a typical 3.5 percent baseline. The cause is likely third-party script load order; pair with Page Load p95 (RUM) for the diagnostic.
Three takeaways merchants should remember:
  1. The aggregate is meaningless without the per-page breakdown. A 4.6 percent aggregate looks fine; 11 percent on checkout alone is a crisis. Always read the page-type split.
  2. Frustrated sessions correlate with conversion drops at roughly 1:0.5 to 1:1. Every 1 percentage point increase in frustrated sessions on revenue-bearing pages typically costs 0.5 to 1 percentage point of conversion. The math is calibrated against post-incident measured loss across Vortex IQ merchants.
  3. The 4-second page-load floor is calibrated, not arbitrary. Industry research (Datadog, Google, Akamai) consistently finds 4 seconds is the threshold above which most shoppers abandon. Below 4s, frustration signals come from rage-clicks and JS errors rather than from raw speed.

Sibling cards merchants should reference together

Reconciling against the vendor’s own dashboard

Where to look in Datadog: Datadog Dashboard → RUM → Sessions → filter @session.frustration_count > 0. Group by @view.url_path for the per-page breakdown the worked-example table uses. Datadog also exposes a Frustration Signals sub-tab under each application in the RUM Explorer; closest like-for-like view is Last 7 Days, All Browsers, All Devices. For session-level diagnosis, click into any frustrated session to launch session replay; this is the highest-leverage tool when the card alerts. Most frustration patterns become obvious within 5 to 10 replayed sessions. Why our number may legitimately differ from Datadog’s portal: Internal identity (within Datadog): This card relates to RUM-pageload and RUM-error cards by an OR-gate identity: dd.rum_frustrated_users ⊇ (dd.rum_page_load_p95 > 4s) ∪ (dd.rum_js_errors > 0 per session) ∪ (rage_click ∪ dead_click ∪ error_click) A session can be frustrated for multiple reasons simultaneously; the card counts each session once even if multiple signals fire. The identity is “is included in”, not equality. Cross-connector reconciliation. Google Analytics 4 vs Datadog RUM: GA4 reports bounce_rate and engagement_rate as adjacent shopper-experience metrics. They are NOT reconciliable with Frustrated %:
  • GA4 bounce rate = sessions with no qualifying engagement event (typically <10s engagement). It captures a different shopper behaviour than frustrated sessions.
  • A bounced session is often unfrustrated (the shopper just was not interested); a frustrated session is often un-bounced (the shopper tried hard, failed, and was angry about it).
  • Treat both as inputs to the broader UX picture; do not expect them to move in lockstep.

Known limitations / merchant FAQs

Why is my Frustrated % spiking? Three usual causes, in order of likelihood:
  1. A recent storefront deploy or third-party-script change. New theme version, new chat widget, new review app, new A/B-test SDK. Each adds JS, often poorly, and the slowest 5 to 15 percent of users feel it as frustrated sessions. Pair with Deploy Markers vs Latency.
  2. A specific browser or device version regression. A library update broke on Safari 17.4 mobile; a CSS change reflows on iOS 16; a React component throws on Chrome on Android. RUM session-replay reveals these in 5 to 10 sessions.
  3. CDN or third-party script outage. Your stripe.js, klarna.js, klaviyo.js, or chat-widget host throttles or fails on a specific region; sessions that depend on it become frustrated.
Action: open RUM session replay first. Five frustrated sessions usually expose the cause. Then pair the cause with the right diagnostic card. My Frustrated % is 4.6 percent. Is that bad? Marginal. Healthy ecommerce sites sit at 2 to 4 percent steady-state. 4.6 percent is amber: not an emergency but an early signal. Most sites that hit 4.6 percent and ignore it find themselves at 6 to 8 percent within 30 days because the underlying causes (third-party script bloat, deferred bug fixes) compound. How can I reduce Frustrated %? Five practical levers, in rough order of impact:
  1. Audit third-party scripts quarterly. Ad pixels, chat widgets, A/B SDKs, review widgets, recommendation engines. Each one adds latency and JS-error surface area; collectively they typically cause 50 to 70 percent of merchant frustrated sessions. Disable or defer everything not earning revenue.
  2. Optimise the checkout page above all others. Frustrated sessions on checkout are 2 to 5x more revenue-impacting than frustrated sessions elsewhere. Even a small reduction here pays back fastest.
  3. Use Datadog RUM session replay for top-frustrated session patterns. Watch the actual user behaviour; pattern-match across 5 to 10 sessions to find the common UX failure mode.
  4. Test on real devices, not just desktop Chrome dev tools. Most frustrated sessions cluster on mobile Safari, mid-tier Android, and edge browser versions. Set up BrowserStack or LambdaTest checks in CI.
  5. Mute non-revenue pages from the headline. The card includes admin pages, B2B portals, account self-service. If non-customer pages skew the headline, filter them out at the connector tag level.
Why does my daily Frustrated % swing so much? Volume sensitivity, plus session-clustering. A single bad deploy at 14:00 affects every shopper for the next 30 minutes; that batch can shift daily Frustrated % by 1 to 3 points. Also: traffic-source mix shift. Paid traffic from emails arrives in concentrated bursts; if the email landing page has a script issue, the burst spikes the metric. My Frustrated % is high but conversion is steady. What does that mean? Two possibilities. (1) Frustration is concentrated on non-revenue pages (e.g. blog, account settings) where shoppers tolerate it; (2) the frustration affects a population of shoppers who would not have converted anyway. Open the per-page breakdown (Slowest Pages) to confirm; if checkout is healthy, frustration on other pages is lower priority. Should the alert threshold be 5 percent for everyone? No. The 5 percent default is calibrated for typical mid-market DTC ecommerce. Premium/luxury brands with low-volume high-value sessions need tighter thresholds (3 percent) because each lost session costs more. Mass-market high-volume brands tolerate higher thresholds (7 to 8 percent) because the population is more heterogeneous and frustrated outliers are more common. Tune in Settings → Datadog → Frustrated-Sessions Threshold per workspace. My ad-blocker share is 25 percent. Does that affect this card? Yes, structurally. RUM SDK scripts are blocked by uBlock Origin and similar extensions on roughly 10 to 25 percent of UK / German / Dutch shoppers. Those sessions are invisible to RUM, so they cannot count as frustrated in this card. The blind spot tilts the card toward less-blocking populations (US users, mobile users); cross-reference with server-side metrics (Apdex Score) for a fuller picture. Does cookie consent / GDPR rejection affect this number? Yes. Customers who reject analytics cookies are not measured by RUM. The card represents the cookie-accepted population only; for sites with low cookie-accept rates (e.g. EU markets at 60 to 70 percent acceptance), the card under-samples. Treat the percentage as directionally accurate but absolute counts as lower bounds. When does today’s Frustrated % swing most? Mid-day GMT for UK / EU brands; afternoon EST for US brands. The morning’s traffic is mostly direct returners; afternoon traffic is more paid-acquisition heavy and skews younger / mobile, which tends to surface different frustration patterns. Use 24-hour-old readings for stable trend; same-day for triage. Should I act on a 1-day spike or wait for the rolling 7-day to confirm? For checkout-page frustration, act immediately on a 1-day spike (revenue is at risk now). For non-checkout, wait for 3 to 5 days of sustained elevation before retrofitting. The card defaults to 7-day rolling for the same reason: noise reduction on non-urgent pages.

Tracked live in Vortex IQ Nerve Centre

Frustrated User Sessions is one of hundreds of KPI pulses Vortex IQ tracks across Datadog 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.