Engagement Metrics
Date: 2026-08-16
Bounce, time on page, scroll depth, engaged sessions. Each measures the instrumentation as much as the user, and every one of them can be improved by making the site slightly worse.
What it is
Engagement metrics attempt to measure attention and involvement rather than outcomes. They exist because outcomes are rare — 3% of sessions convert, so 97% need some other signal.
That’s the honest justification, and it’s a real one. It’s also why they’re so easy to misuse: they’re proxies for something nobody can measure directly.
What each actually measures
| Metric | Actually measures | Fails when |
|---|---|---|
| Bounce rate | Sessions with one interaction, by that tool’s definition | The definition differs everywhere — see below |
| Time on page | The gap between two timestamps | There’s no second timestamp, or the tab was in the background |
| Session duration | First to last event in a session | Same, plus every Sessionisation arbitrary choice |
| Scroll depth | How far the page scrolled | Short pages score 100% by default |
| Engaged sessions | Sessions passing a threshold — duration, pageviews or a conversion | The threshold is a vendor’s choice, not yours |
| Pages per session | Navigation count | A confusing site scores higher |
Bounce rate is three different metrics
The classic example of a name outliving its definition.
old model a session with exactly one pageview
→ the last page of every visit had no
measurable duration, so a genuine
10-minute read was a "bounce"
newer model the inverse of engaged sessions, where
"engaged" means a threshold of time,
pageviews or a conversion
Those produce very different numbers on the same traffic. Comparing bounce rate across tools, or across a migration, is comparing two unrelated measurements — Metric Drift, Tool Discrepancies.
Time on page is mostly fiction
The mechanism: subtract the timestamp of one event from the next. Which means:
- No second event, no duration. Exit pages have historically been recorded as zero
- Background tabs count unless visibility is tracked
- Adding engagement events changes it. Fire a scroll ping and suddenly the page has a duration it didn’t have yesterday
- It’s bimodal. Most sessions are seconds, a few are hours. The mean is meaningless — read percentiles — Percentiles in Performance
In plain terms: time on page measures how often you fired an event, at least as much as how long someone stayed.
The instrumentation loop
The property that makes all of these treacherous: measuring engagement changes engagement metrics.
Adding scroll tracking gives previously-zero pages a duration, converts bounces into engaged sessions, and — because more events fill timeout gaps — reduces session count, which raises every session-scoped rate. One instrumentation change moves five metrics with no change in behaviour. See Sessionisation.
So an engagement improvement following an instrumentation change is not evidence of anything.
The perverse incentive
Every one of these improves when the site gets worse:
- Pages per session rises when navigation is confusing
- Time on page rises when copy is unclear
- Scroll depth rises when the thing you wanted is buried
- Session duration rises when checkout is slow
Which means engagement metrics must not be primary metrics for a test. They’re diagnostic — they explain why the outcome moved, and they can’t be allowed to decide whether it did — Overall Evaluation Criterion.
Using them well
- Diagnostic only. Pair with an outcome metric that has a business meaning
- Define scroll depth by content, not viewport. “Reached the reviews section” beats “scrolled 75%”, which is a function of page length
- Track visibility, not just time, so background tabs don’t count
- State the definition every time, especially for bounce — Metric Design
- Prefer task completion. “Reached the size guide and then added to basket” is engagement with a meaning, and it’s immune to almost all of the above — Funnel Analysis