Your users are not telling you what your product costs them

In three points

  • Users under-report friction for structural reasons: normalisation, self-blame, and no alternative in view.
  • Every perception-led instrument — surveys, interviews, feedback widgets — inherits the same blind spot.
  • The fix is not better questions. It is measuring behaviour separately and reading the disagreement.

Your satisfaction score is 4.1. Your task completion rate is 54%. Both numbers are accurate, and one of them is quietly accusing the other of missing the point.

The instinct is to treat this as a measurement problem — one of the numbers must be wrong, so triangulate, weight, average, resolve. That instinct is the mistake. When behaviour and reported experience disagree, the disagreement is not noise around a true value. It is the finding.

Why the reports come back clean

Normalisation. A user who has done a task ten times has stopped experiencing its cost. The three extra clicks are baseline now. They are not comparing your flow to a better one; they are comparing it to yesterday, and yesterday was the same.

Self-blame. When something is hard, people are considerably more willing to conclude they are bad with computers than that the product is badly made. The cost registers — as their own inadequacy, which they do not report to your survey, because your survey asked about the product.

No alternative in view. “Acceptable” is defined by what a user has. With nothing to compare against, a costly flow is just the flow.

None of these are lies. Ask the user and they will honestly tell you it is fine, because to them it is. That honesty is exactly what makes the blind spot structural: any instrument that samples perception — a survey, an interview, a feedback widget, an NPS prompt — is asking the one witness whose testimony has already been contaminated by adaptation.

What this means for your research stack

It means your feedback channels are systematically biased toward two of the four friction states: the one where users complain about a real problem, and the one where they complain about an imagined one. The state where the product is costing them the most per session — high friction, no complaints — is invisible to all of them, by construction.

The only way in is from the other side: measure behaviour independently, keep it uncontaminated by the asking, then put the two readings next to each other and read the direction of the gap. That comparison, run per surface, is the whole of the say–do matrix — and the direction, not the level, decides the treatment.

A product where users complain about a working flow needs its story fixed. A product where users defend a broken one needs the step removed, quietly. The two situations can produce the identical satisfaction score.

Signals this affects

Every perception-pass signal, but especially task completion, error recovery and content clarity, where normalisation and self-blame run strongest.

Find your gap


Related: Silent friction: the failures no survey will find · The say–do gap, from Samuelson to your checkout funnel