What is Frustration score?
Frustration Score is a measure of how much friction a user encountered ,on a single page, across a group of pages, or throughout an entire session. The higher the score, the more friction they experienced.
Contentsquare automatically detects friction signals across your site and uses these to calculate a score. This means you don't need to manually set thresholds or define what "frustration" looks like, it's surfaced for you, ranked by business impact.
The 3 levels of Frustration score
Pageview level
Measures the friction a user experienced on a single page during their visit. Use this to pinpoint which specific pages are causing the most difficulty.
Page group level
Aggregates the pageview scores across all pages within a page group. Use this to understand frustration patterns across a category of pages, like all product pages or all checkout steps.
Session level
Aggregates the pageview scores across a user's entire session, plus additional session-wide signals (see below). Use this to identify the most frustrated users and watch their replays to understand what went wrong.
How Frustration Score is calculated
The score is calculated using an AI-based algorithm trained on real user feedback. It evaluates all friction signals detected on a page or session, and weights them based on their likely impact on the user's experience.
Here's how it works in practice:
- Each type of friction (listed below) contributes to the score independently, with different weights depending on its severity
- The algorithm uses a decision tree to evaluate all detected friction signals together
- Pageview scores are based solely on friction signals detected on that page
- Session scores are primarily an aggregation of pageview scores, but also factor in session-wide signals like how often a user went back and forth between pages
What triggers a frustration signal
The table below shows every type of friction Contentsquare detects and what it means in plain terms.
Detected on pageviews and sessions
Friction type |
What it means |
| rage click | A user clicked the same element 3 or more times within 2 seconds , a strong sign of frustration or an unresponsive element |
multiple use element |
An element was clicked at least 3 times. |
no clicks on a page |
A user made no clicks at all during their visit to a page, they may not have found what they were looking for |
|
JS error (requires Experience Monitoring) |
A JavaScript error occurred on the page, not triggered by a user click |
|
JS error after click (requires Experience Monitoring) |
A JavaScript error occurred on the page after a user clicked something |
|
API error (requires Experience Monitoring) |
A connection error occurred on the page, not triggered by a user click |
|
API error after click (requires Experience Monitoring) |
A connection error occurred within 2 seconds of a user clicking something |
excessive hovers |
A user hovered over the same element at least 5 times, for a total of 3 or more seconds |
multiple button interactions |
A user clicked the same button 3 or more times |
multiple field interactions |
A user clicked the same form field 3 or more times |
loading time |
The page took at least 3 seconds to load. |
Detected at page level view only
| Frustration Signal | What it means |
| Low activity | No clicks or hovers for more than 10 seconds — the user was inactive, which may indicate confusion or disengagement |
Detected at session level only
| Frustration signal | What it means |
| Looping index | The user repeatedly visited the same pages back and forth during their session — a sign they couldn't find what they needed |
| Page consumption | A large proportion of pages in the session had very short visits (under 2 seconds and fewer than 2 clicks) — suggesting low engagement or quick exits |
| Average pageview score | The average Frustration Score across all pages visited in the session |
When to use the Frustration Score
Use Frustration Score to:
- Find your biggest problem areas: identify pages or sessions with the highest friction and focus your effort where it matters most
- Watch the right replays faster: surface the sessions with the most issues without having to manually search through recordings
- Track improvements over time: compare scores for the same page before and after a UX change to measure its impact