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