River
Y CombinatorBacked by Y Combinator

Product & DesignFree

Session Recording Analysis and Watch List

Send your recordings export and element-level click data, and get every element ranked by how much more droppers click it, plus a short watch list.

Start here

River reads two exports that share no key and joins them anyway. The recordings metadata export gives one row per session: the rage-click and u-turn flags, device, duration, action count and exit page. The heatmap CSV gives clicks per element on one URL. Segment that heatmap twice, once to sessions that continued and once to sessions that left, and every element gets a number, which is how much more the people who dropped clicked it. In the worked review that ranking put a help link fifth by volume and second by difference.

Working from the export is not a preference, it is what leaves the tool. Hotjar's own announcement calls the feature a way to bulk export lists of Recordings with all their metadata to CSV or XLSX. It then lists what comes with each row: the recording URL, whether it has been watched, tags, notes, and whether the user rage-clicked or u-turned. Flags and a link, and no video. Any ordering of forty thousand recordings therefore has to be computed outside the tool that made them.

Built for the product manager or researcher staring at a step the funnel numbers will not explain, and for the week after an instrumentation audit proves the events are fine and the drop-off is still there. It runs before a usability test, because the recordings say which task to put in front of people, and after a feature adoption review that found a segment ignoring something they opened twice. The output is a list of sessions, not a summary of them.

Two colleagues reading a spreadsheet of session data rather than watching recordings
The review happens in the export. The video is opened last, for two dozen sessions.

The most-clicked element is rarely the broken one

Every guide to this job says the same four things: pick a goal, filter to a segment, watch fifteen or twenty sessions, tag what you see. That works when you have twenty candidate sessions. At Kelmscott Optical, 12,480 sessions reached the prescription step in a month and 1,043 of them carried a rage-click flag. At a mean duration of four minutes seven seconds, watching that set is 72 hours. The question every guide skips is which 24 of the 1,043.

The element ranking is what answers it. Kelmscott's click map on that URL recorded 149,976 clicks across 63 elements, and the right sphere dropdown took 41,196 of them. Read alone, that is the finding. Segmented, it is not the only one: the help link beside the pupillary distance field drew 9,737 clicks, fifth of six, but people who finished clicked it 0.40 times a session and people who left clicked it 1.50 times. A help link clicked three and three quarter times as often by people about to leave is not help.

The flags in the export are inputs, not an order. Microsoft Clarity, which documents its equivalents plainly, defines a rage click as clicking multiple times in a clustered area in rapid succession and a dead click as one that gets no feedback in reasonable time. Both are also true of an impatient person on a slow connection. What separates a defect from impatience is whether the same behaviour is absent from the sessions that finished, and that comparison is arithmetic on two CSVs.

How it works

  1. Send the exports

    The recordings metadata CSV and a click map CSV for the page you are investigating.

  2. Split the sessions

    Sessions that continued past the step are separated from sessions that left from it.

  3. Rank the elements

    Clicks per session are computed for each group, and every element is ordered by the gap.

  4. Get the watch list

    Two dozen recording URLs, stratified so the sample is not all one device, each with a reason.

What you get

  • Every element on the page ranked by how much more the dropping sessions clicked it
  • A shortlist of specific recording URLs, stratified by device and exit behaviour, with a watch order
  • One sentence per shortlisted session saying what to look for and why it qualified
  • The clicks-per-session figure for each element, with the denominator it was divided by
  • Elements a raw click map ranks high and the segmented comparison demotes, named explicitly
  • The watch time before and after, so the review is a scheduled afternoon rather than a week

Common questions

Does this work without the video?

That is the premise. The export is a list of flags and a recording URL, so the ranking is computed from the metadata and the click CSVs. The video is opened at the end, for the two dozen sessions that earned it, and by a person rather than by River. Nothing before that step needs playback to run.

We use Clarity, not Hotjar. Does that change anything?

Only the column names change. Clarity splits its click data into separate maps and lets you download the click map as a CSV or PNG, with all clicks, dead clicks, rage clicks and error clicks each rendered as its own map. Say which map each CSV came from, because those maps have different denominators and mixing them produces a ranking that is quietly wrong.

Why segment the heatmap instead of just reading it?

Because an unsegmented map ranks by volume, and volume tracks how many people saw the element rather than how much trouble it caused. At Kelmscott the cylinder dropdown was second by clicks and fourth by gap, while the continue button was fourth by clicks and last by gap, since the people who dropped clicked it less than the people who finished.

How many sessions should we actually watch?

Enough to fill each cell and no more. The worked review took six from each of four cells, split by device and by whether the session u-turned, which is 24 of the 391 that qualified. That is one hour thirty-eight minutes against the 72 hours the unfiltered flag would have cost.

What if the heatmap screenshot is out of date?

Say so, and the element names get treated as unreliable. A click map is rendered against the page as it looked when the map was made, so a layout change since then can attach clicks to the wrong label. The per-session figures survive that. The human-readable names do not, and the review flags which conclusions depend on one.

Can it tell us why people clicked the element?

No, and it should not pretend to. The ranking says which element to look at and the shortlist says which sessions to open. The reason comes from watching those sessions, which is why each element ends in a question rather than an explanation, and why the watch list is the deliverable.

What do we do with what we find?

Three routes, depending on the element. A defect goes to engineering with the sessions attached. A layout or target-size problem goes into the accessibility remediation plan, grouped by component. A copy problem becomes a hypothesis worth an experiment brief rather than a fix shipped on a hunch.

Session Recording Analysis and Watch List

Fill in the form and your workspace opens with the work already underway.