AI judging › Basics

AI judgments of sessions

Sequential asks every eligible session your project's questions and stores the answers as probabilities. A stored judgment does not change.

On this page

What it is for

Nobody watches every recording. Filters find only what you already know to look for. Judging asks each judged session the same questions, so you can compare and rank the answers.

The questions are your project's rubric. See "Example questions" and "The default rubric" below, and Rubric.

How a session is judged

  1. Sequential finds sessions with no new events. If background judging is on for your project, Sequential looks every 5 minutes for unjudged sessions. A session needs a session id, at least 3 events and no new event for 30 minutes.
  2. Sequential writes a digest. It turns the stored events into a short text: one line per event, long pauses and a few session facts. The judge reads this text, never the recording.
  3. The judge answers every question in one request. Sequential sends the digest and your rubric's questions to the judge. Sequential does not keep the digest. See AI and third parties.
  4. Sequential stores the answers as numbers. It stores a probability for each answer. See "What Sequential stores" below.

Sequential never sends the user id to the judge. It removes hosts and query strings from URLs. It also drops some custom-event properties by their name. See "Digest lines and session facts" below.

A judgment does not change

Sequential judges each session once in the background. So each answer stays tied to the questions that produced it. Also, a wording edit does not start a paid re-judge of your older sessions.

Change When it applies
Reword, add, remove or turn off a question Only to sessions judged afterwards. Earlier sessions keep their answers and show "judged with an earlier rubric".
Sequential moves to a newer version of the judge Only to sessions judged afterwards. Earlier sessions show "judged with an earlier rubric".
Change a weight At once. Every judged session re-ranks.
New events arrive after judging Never. The judgment does not include them.

Nothing in the app changes a stored judgment. The thumbs up and down on Watch and Ask record whether an answer was right. They never re-judge. See Feedback and calibration.

When the judge cannot tell

An unclear answer is a result, not a failure. It is not a "no". "I can't tell whether an error stopped them" and "no error stopped them" are different answers.

Signal chips on Watch and in the Insights tab, and weak matches in Ask, hide what the judge rated unlikely. So a missing chip or a short Ask result does not prove that something did not happen.

Limits

  • Background judging can be off. An owner or admin can switch it off for the project. The Sequential server can also keep it off for every project. Watch then says why. The Insights tab and Ask do not need this switch.
  • Sequential skips short and old sessions. Sequential never judges a session with fewer than 3 meaningful events. Background judging picks up only sessions whose last event is within the past 7 days. Turning it on does not judge older history by itself.
  • There is a daily allowance. Background judging has its own daily allowance per project. Ask in the app, the rubric editor's Try it preview and the Insights tab each have their own allowance. When an allowance runs out, judging resumes after midnight UTC.
  • Sequential trims long sessions. The judge reads at most 255 events. See "How long sessions are trimmed" below.
  • Sequential does not retry a failed session. Sequential retries temporary errors, such as a timeout. Any other error from the judge leaves the session unjudged. Watch counts failed and too-short sessions under Not yet judged.
  • A new question lowers older sessions. An older judgment scores nothing on a question added after it, so it can rank lower on Watch.
  • The judge reads only 80 characters of properties. Sequential cuts each custom event's properties to 80 characters in total. Put the meaning in the event name.
  • The Insights tab and Watch can disagree. The tab makes its own judgment from a different digest. It never changes what Watch uses.
Example questions

For example, judging can answer:

  • Did the trial user who opened billing add a card, or give up?
  • Did an error stop someone finishing checkout, or were they unsure what to do?
  • Which of yesterday's sessions should a product manager watch first?
The default rubric

The default rubric asks:

  • What did the user come to do?
  • How did it end?
  • How much friction did they hit?
  • Did an error stop them?
  • Does it look like a product bug?
  • Is the session worth watching?

It also has a few more signals and moments.

What Sequential stores

The table shows what Sequential stores for each group in your rubric.

Rubric group Example What Sequential stores
Verdicts Intent A probability for each option, such as 0.81 for "Buy or subscribe"
Scales Friction A probability for each level
Signals Hit an error The probability of yes. A signal is a yes-or-no question.
Moments A moment from your rubric The probability that it happened, and the event it most likely was. There is no event if the judge rates the moment unlikely or cannot identify one event.

The judge writes no prose. Sequential builds the sentences on Watch from these stored numbers and your rubric's wording. The replay's Insights tab builds its sentences from that tab's own judgment. See Reading a verdict.

Digest lines and session facts

Each event becomes one numbered line, except System events. The digest also has a line for each pause of 10 seconds or more.

Each line has the event's time. For anything but a page view, it also has the page the event happened on.

Event What the judge reads
Page view The path, such as /settings/billing, or a mobile screen name
Click, rage click, dead click The element's text or id, such as "Add card"
Form submit The form's name
Error The error message and type
Custom event Its name, such as trial_started, and its properties as key=value, cut to 80 characters in total
Identify Only that the visitor was identified

Sequential cuts each name, path, element text or error message to 60 characters.

Sequential cuts each page URL to its path. In other text, Sequential removes the host and query string from a full URL.

Sequential drops a custom-event property if its name starts with $. It also drops a property if its name contains a word such as email, name, phone, address, user, account, ip, card, password or token.

Session facts are:

  • duration
  • device type
  • identified or anonymous
  • entry page
  • browser
  • operating system
  • country
  • pages visited

If the recording's DevTools capture measured them, the facts also include counts of JavaScript errors, failed requests and console errors.

Unclear answers and hidden results

Some answers are unclear because the digest does not have enough information. Sequential keeps an unclear answer and a "no" apart on purpose.

These views hide what the judge rated unlikely. They do not label it:

  • signal chips on Watch
  • signal chips in the Insights tab
  • weak matches in Ask

See Reading a verdict.

Missing counts

Sequential leaves out what it did not measure. It never replaces it with zero.

A session recorded without DevTools capture has no error counts. The default rubric tells the judge that a missing count means "not measured". A zero would say "nothing went wrong" and pull the answer the wrong way.

Which label edits count as rewording

The judge does not read weights, question labels, or the label of an option that has criteria. So these changes apply at once.

Change When it applies
Change a question label, or the label of an option that has criteria At once. The new label shows on past judgments made under the same wording.
Rename a scale's level, or an option whose criteria are blank Only to sessions judged afterwards, like a rewording. The judge reads these labels.
The Watch score

Watch puts judged sessions into three groups. In each group, the session with the highest Watch score comes first. Watch tells what each group holds.

To calculate the Watch score:

  • Each weighted signal adds its weight times the probability of yes.
  • Each weighted scale adds its weight times the session's position on the scale.

The default rubric weights Worth watching 45%, Friction 25%, Hit an error 15% and Product bug 15%. Your weights are in the Watch score % field on each signal and scale, under Settings → Projects → your project → Insights.

Sequential calculates the score from the stored answers and your current rubric each time you open Watch. So a weight change never needs a new judgment.

Ranking follows your current rubric at once. A removed or turned-off question stops counting toward every session's Watch score. An older judgment scores nothing on a question added after it, so it can rank lower. See Watch.

The Insights tab

The replay's Insights tab judges one recording on demand. It builds its own digest in your browser, from the recording and its events. It differs from the background digest:

  • It adds clicks and page changes from the recording.
  • It leaves out the DevTools counts.
  • It keeps the host, such as app.example.com, on page views and the referrer.
  • It sends up to 3 properties of each custom event or error, without the name filter.
  • It does not remove hosts or query strings from text such as an error message or a property that holds a link.

When you open the tab, it judges the recording with your current rubric. It reuses the result for up to 7 days.

Re-run forces a new judgment, at most once every 10 minutes per session. On-demand judging has its own daily allowance per project.

The tab can judge a recording while background judging is off. It never changes what Watch uses, so the two can disagree. See Session insights.

Get better judgments

The judge knows only what your events tell it.

  • Name your milestones. Custom events such as trial_started or invite_sent show whether someone got what they came for. Put the meaning in the name, because the judge reads only the first 80 characters of the properties. See Send custom events.
  • Make events readable. A click with no text or id reads as "element". A screen with no path or name reads as "(unnamed screen)". An error needs its message.
  • Record with DevTools capture. A session can break without sending an error event. Then the DevTools counts of errors and failed requests can be the only sign. See DevTools in replays.
  • Ask answerable questions. The judge always gives an answer. A guess looks the same as a measurement. Ask whether they opened the docs, not whether they read them carefully.
How long sessions are trimmed

The judge reads at most 255 events. Sequential gives priority to errors, rage clicks, dead clicks, form submits and page views. If it must drop events, it drops custom events and plain clicks first.

If the text is still too large for the judge, Sequential retries once with the higher-priority half of the events. That judgment ranks like any other. On hover, a Watch row's expanded details show "Based on X of Y events".