By Ryan Richardson · Published 8 October 2026
Filtering phantom sessions at read time is step 47 (Part VII), marked moderate difficulty, almost nobody does this, with partial tooling support. The partial rating matters: most analytics suites filter only a published list of known bots, which a headless browser with a normal user agent walks straight through.
In one split test, about 30% of raw sessions were phantoms: prefetchers, scanners and bots registering a session and leaving without drawing a page. A shorter forensic window came back higher. A cut against paid clicks alone came back lower. There isn't one real number, so the denominator has to be stated every time a phantom rate is quoted, or the figure is worthless.
A separate, earlier read on the same kind of problem found a hard spike at 23 seconds: 274 page loads, zero scroll, zero engaged time, that looked like a performance problem and wasn't. It was a measurement full of ghosts, and real time got spent chasing a page issue that didn't exist.
No single tell is enough on its own; all four together is near certain: traffic source showing as direct or not-set, a country outside the advertised markets, an engagement rate of exactly zero, and one page per session. Acting on any single signal alone deletes real people along with the bots.
Absence is the tell: no page drawn, no scroll, no active time is not a person. Require a sign of life before a session enters any denominator (a scroll past a quarter, ten seconds of active time, or a click). Collect everything, filter only when reading, because filtering at collection deletes the data for good while filtering at read time lets the definition change later. Read through one saved view, so two people always get the same number.
Filtering at collection instead of read time, which deletes the raw data permanently. Over-filtering, which deletes real people on slow connections and flatters the funnel. Under-filtering, the default, which makes everything read worse than it is.
| Claim | Value | Source |
|---|---|---|
| Share of raw sessions that were phantoms in one split test | about 30% | The Sixty Steps manuscript |
| Page-load spike later traced to a measurement artefact | 274 loads at a 23-second spike, zero scroll, zero engaged time | The Sixty Steps manuscript |
| Four-signal phantom signature | direct/not-set source; country outside advertised markets; zero engagement rate; one page per session | Measured in Real Money, Field Manual |
| Matrix status for this step | Moderate difficulty, almost nobody does this, partial tooling | The Sixty Steps matrix |