Frustration signals are easy to collect and hard to prioritise. A list sorted by frequency tells you to go fix whatever your largest, least valuable segment bumps into most often. The thing you actually want to know is which broken thing your paying customers are hitting.
The join
Friction, priced rolls up every frustration signal the SDK captures — rage clicks, dead clicks, form abandons and errors — by where it happens, weighted by the MRR of the accounts that hit it.
This is the join a split stack can't make: your error tool doesn't know the account on the other end pays $899 a month, and your revenue tool never saw the click. Both facts live on the same record here, so the rollup is a lookup rather than an integration project.
What the number is, and isn't
Two things stated plainly, in the UI as well as here:
- The figure is exposure — the revenue sitting behind accounts that hit this friction. It is not "revenue lost". Nobody churned because of a dead click, and we're not going to pretend otherwise.
- Unidentified traffic prices at zero. Anonymous visitors are still counted as friction, they just carry no revenue weight, because we don't know who they are. The list is honest about what it can and can't see.
When there's nothing there, the section says so — no friction from identified traffic in the window is the answer you want, not an empty state to fill.
Find it in Analytics.