---
title: How Trustworthy Is Your Average Session Duration?
description: Most session-duration metrics are built on page-unload events that fire on a minority of pageviews — 21% to 62% across a live publisher panel. How to measure your coverage rate, and what to use when it's low.
url: https://preview.artificialpoets.com/blog/session-duration-accuracy/
site: Artificial Poets
type: post
date: 2026-08-10T03:32:09+00:00
modified: 2026-08-14T18:30:48+00:00
categories:
  - Measurement
---
# How Trustworthy Is Your Average Session Duration?

## How is session duration actually computed?

The classic model derives time from timestamps between hits: time on page A is the gap between the pageview of A and the next signal — another pageview, or an unload event when the reader leaves. Two structural problems follow directly from that design.

**The last page counts as zero.** If no further signal arrives after the final pageview, the model has no endpoint, so the page that ended the session — often the one the reader actually stayed on — contributes nothing. On a site where most sessions are one page, *most sessions* are that page.

**Everything depends on the unload event firing.** The measurement assumes the browser reliably announces the reader's departure. It doesn't. Mobile users switch apps and the tab is discarded without unloading. Browsers serve back/forward navigations from cache without firing lifecycle events. Aggressive power-saving kills background tabs silently. Every one of those departures is a session whose duration your metric never saw.

## What coverage looks like on real sites

Coverage — unload events divided by pageviews — is measurable in any event-level analytics stack, and the range across sites is enormous. On the six-title publisher panel we measure, weekly unload coverage over a three-month window ran:

| Site | Unload events per 100 pageviews |
| --- | --- |
| Highest | **62** |
|  | 56 |
|  | 48 |
|  | 48 |
|  | 23 |
| Lowest | **21** |

Same analytics tool, same event taxonomy, same time range. The spread comes from audience and architecture: device mix, browser mix, and — significantly — how much of the reading experience happens without full page loads.

That last one deserves the honest version: **modern engagement features suppress unload events further.** Continuous-scroll experiences, including the one our own Platform provides, serve additional articles inside a single page lifecycle — more reading, fewer unloads. On the panel above, the two lowest-coverage sites are the two running our product. Which is exactly why we do not measure or report our results in unload-based duration: on the sites where the product works hardest, that metric sees the least.

## What we use instead

The replacement principle is simple: **stop inferring time from departures and start measuring it during the visit.**

**Per-article timers.** Each served article carries its own clock — from entering the viewport to the reader moving past it — reported while the session is alive rather than reconstructed after it ends. On our deployments this telemetry shows a median of about **50 seconds of added reading per engaged session**, roughly **30 seconds per served article**. Unload-based duration on the same sessions reports a fraction of that, not because the reading didn't happen but because the measurement ended early.

**Activity-based engaged time.** Count time only while the tab is visible and the reader is interacting — the approach behind GA4's engaged-time metrics. It solves the walked-away-tab problem and degrades gracefully when unloads never arrive.

**Heartbeats.** Small periodic pings while content is visible. Blunter and heavier than the other two, but robust against every departure mode, and the standard in video for a reason.

## The one-query diagnostic

1. **Compute coverage:** unload (or pageleave) events ÷ pageviews, weekly, per site. Above ~60%, duration is usable with the last-page caveat. Below ~40%, treat it as directional. Near 20%, it is not a metric; it is an anecdote with decimals.
2. **Segment it.** Coverage differs by device and template — mobile is reliably worse. A duration "trend" can be nothing but your device mix shifting the sampling rate.
3. **Mark your feature ships.** Any single-page or scroll experience shipped mid-series changes what the metric can see, at that date. A duration drop on the ship date is the measurement changing, not the readers. We have watched analysts conclude the opposite, in both directions.

- Unload coverage across six measured titles: **21% to 62%** of pageviews
- Same tool, same taxonomy, same window — the spread is audience and architecture
- The lowest-coverage sites are the ones with the most scroll-served reading
- Per-article timers on those sites: median **~50s added per engaged session**, ~**30s per served article** — reading that unload-based duration largely misses

## FAQ

Structurally, yes — it counts foreground activity rather than inferring from departures, so it survives tab-discards and cache navigations. It still deserves the same segmentation discipline: check what share of sessions report any engagement signal before trusting trends.

Sometimes — a mis-installed tag or a consent-mode gap can suppress events wholesale, which is worth ruling out first. But most low coverage is structural: device mix, browser behaviour and single-page experiences. The point of the diagnostic is knowing *your* number instead of assuming the default.

There isn't one worth having until coverage is known, because two sites with identical readers and different coverage report different durations. Benchmark your coverage first; then benchmark duration against yourself, on a fixed instrumentation.

## Your coverage number and depth profile, in one pass

The Session Depth Assessment estimates your single-page rate and depth distribution from two inputs, benchmarked against a measured publisher panel — and tells you which of your metrics deserve a second look.

## See what your session depth looks like

We read your analytics with you for twenty minutes and tell you what share of your sessions stop at the first page. You leave with the annotated read, whether or not we ever talk again. 20 minutes, your analytics, no deck.

[Book my session-depth read](/request-a-demo/)
