Frustration scoring: how it works

Every recording gets a score that tells you how frustrating the session was — so you can watch the worst ones first.

Frustration scoring is how Netaj prioritizes your time. Instead of watching recordings randomly, we score each session and surface the high-frustration ones first. Spend an hour on those and you'll find more issues than a week of watching everything.

What we look at

Each session gets a score based on signals that correlate with user frustration:

  • JS errors — ×5 each. A page error usually breaks something the user was trying to do.
  • Rage clicks — ×4 each. Three+ clicks in 50px in under a second.
  • Error clicks — ×4 each. A click immediately followed by a JS error fired from that element.
  • Dead clicks — ×2 each. Clicks on elements with no handler and no link.

The total is bucketed into four tiers:

  • High — score ≥15. Something is definitely broken.
  • Medium — score ≥6. Worth a look.
  • Low — score >0. Minor, but useful in aggregate.
  • None — clean session.

Why these signals?

They're behavioral, not survey-based — you don't need users to tell you they're frustrated, you can see it. They also concentrate: a tiny percentage of sessions account for most of the frustration, which is exactly the long tail you want to investigate.

How to use the score

Open Recordings and filter to High tier. Watch 5–10. Patterns emerge fast — the same broken element, the same checkout step, the same mobile layout glitch shows up across sessions. That's your fix list.

What it doesn't tell you

  • Slow pages don't directly contribute to the score (page-load timing is a separate metric in Analytics).
  • A high score doesn't mean the user didn't convert. Some users grind through frustration; the score just flags the friction.
  • It's a heuristic, not a survey. Pair it with an on-site survey for direct user feedback.

Was this article helpful?