Methodology

By Rene Roost


This page describes how the quarterly reports are produced — what's measured, how the terms are defined, how articles are ranked, and where the limits of the method lie. It applies to every report in the series.


What I measure

Around the clock, every day since late 2025, my scraper records which articles appear on each publication's own "Most Read" or "Most Popular" list, and in what order. That's the entire input to the ranking. I don't measure pageviews, shares, comments, or social engagement — I have no access to any of that. I record the position a publisher chose to show its readers.

Alongside the position, the scraper stores the article metadata the list itself exposes — headline, sub-headline, URL, byline and image — which is what the deep-dive write-ups draw on and what the site displays. None of it feeds the ranking: position is the only input to a Popularity Score.

These lists are themselves derived from reader clicks. That's what makes them worth tracking: the ranking on this site is a measurement of a measurement of real reading behaviour, with no editorial curation inserted on my end.

The one place a language model enters the pipeline is descriptive, not evaluative: I use an LLM only to categorize and tag articles by subject. It never scores an article, ranks one, or has any part in deciding what counts as popular — every Popularity Score and every ordering on this site is derived purely from the recorded position data.


Definitions

Observation — the atomic unit of the record: one article seen in one slot at one reading. Every figure below is aggregated up from these.

Total Index Footprint — the cumulative hours an article was visible anywhere on a publication's list, whether or not that presence was continuous.

Peak Residency — the cumulative hours an article spent at #1. An article that reaches #1 twice has both stints counted here.

Position Path — the ordered sequence of rank changes, with each segment's share of the article's total footprint shown in parentheses. For example, 1 (65%) → 2 (17%) means the article spent 65% of its tracked life at #1, then 17% at #2. The percentage belongs to that visit, not to that rank overall: an article that returns to #1 three times shows three separate 1 (…) segments, and its total time at #1 is the sum of them. Each segment is rounded independently, so a path does not add up to exactly 100% — long paths made of many short segments can sum well above it. Peak Residency is consistent with the un-normalized figures, so don't rescale a path to 100% before reading it against the other metrics.

Median Duration — the median cumulative hours an article stays visible anywhere on a publication's list. Half of that publication's articles lasted longer; half lasted less.

90th Percentile Duration — the duration threshold only the top 10% of longest-lasting articles cross.

Turn Rate (per 24h) — how many times a single slot on the list refreshes with new content in a day. It is derived arithmetically as 24 ÷ median duration, so it restates the median rather than measuring anything independent.

Popularity Score — the ranking used throughout the reports and across the site. It weights both how long an article stayed on a list and how high it climbed: every hour is weighted by the slot it was spent in, and the weighting is steep — an hour at #1 is worth many times an hour at the foot of the list. So the score is not a duration ranking. An article with a longer total footprint can and does rank below one that spent less time on the list but spent it higher up, which is why some entries in the reports sit above entries showing larger figures on both published metrics. The weighting also adjusts for list depth, so positions stay comparable between a five-slot list and a ten-slot one. The exact formula is not published; it's the core of this site.


Article archetypes

Each deep-dive entry in the reports is tagged with a shape — a description of how the article moved through the list over its lifetime — wherever one of the shapes below applies. A reign is a real stint at #1 (at least 15% of the article's Total Index Footprint); a dominant reign is one of at least 30%; a graze is a passing touch at #1 below the reign threshold. The seven shapes are defined by fixed quantitative rules so that the label is reproducible from the position path, not a matter of opinion:

Archetype Quantitative definitional rules
Multi-Strike Apex Two or more separate #1 blocks, each lasting at least 15% of the article's Total Index Footprint, combined with a total footprint of 70 hours or more — two genuine commanding stints at the top, not incidental touches.
Monolithic Overlord A single continuous block at #1 accounting for 80% or more of the article's Total Index Footprint.
Perennial Contender Never reaches #1, yet sustains a Total Index Footprint of 70 hours or more while making three or more distinct upward moves among the lower slots — a long-lived runner-up that stayed in contention without ever topping the list.
Sub-Peak Oscillator Reaches #1 but never holds it for a single continuous stint of 30% or more of its Total Index Footprint — no dominant reign — then makes three or more distinct upward moves among the below-#1 slots after leaving the top.
Abrupt Cliff Held a dominant reign at #1 — a single continuous block of 30% or more of the Total Index Footprint — then falls from the top by two or more slots, to #3 or worse, on its final departure from a genuine stint (not a lone passing touch), with no subsequent return to #1.
Soft-Landing Decline Reaches #1 exactly once, after which every recorded move is non-improving — each reading at the same slot or lower.
Fading Dominant Held a dominant reign at #1 — a single continuous block of 30% or more of the Total Index Footprint — then fades: after it last leaves #1 the trajectory trends downward, with no single recovery of more than two slots. The noisy-tailed counterpart to the Soft-Landing Decline.

Some articles satisfy more than one rule. Where that happens the report assigns the first match in this order of precedence: Multi-Strike Apex, Monolithic Overlord, Perennial Contender, Sub-Peak Oscillator, Abrupt Cliff, Soft-Landing Decline, Fading Dominant. The order runs from the most structurally specific shape to the most general, so the rarest qualifying pattern always wins. A minority of articles match no shape at all — for instance, a dominant peak whose tail recovers by several slots before fading — and these are left untagged rather than forced into a category they don't fit.


How the data is collected

Position telemetry is captured by a standalone scraper that reads the public-facing, reader-accessible "Most Read" and "Most Popular" lists of each monitored source and records the article in each slot along with its rank. Nothing behind a login or paywall is read; the scraper sees only what any visitor to the list would see.

What counts as one article

An article's identity is its URL. One URL is one article for the whole of its life in the record, however its content changes, and a report's corpus is every article whose publication date falls inside the quarter.

Liveblogs. A rolling liveblog — the format Al Jazeera and The Guardian use heavily for continuing stories — is a single URL whose content is replaced throughout the day. It therefore counts as one article, not as the dozens of updates it carries, and its publication date is the day it opened rather than the day it last changed. Its recorded headline is whatever the publisher was showing when the reading was taken, which is why a liveblog's title describes a particular hour of a story that ran much longer. This matters most in World News, where liveblogs are a large share of the corpus: a liveblog can hold a list for a day or more, and that longevity belongs to one continuously updated page rather than to a fixed piece of text.

Articles with no date in the URL. Corpus membership is set by the publication timestamp the publisher exposes for the article, not by the URL. Many outlets — Business Insider among them — publish evergreen list-features and explainers on undated URLs; these qualify on the same basis as any other article, and an evergreen that resurfaces long after publication is dated to when it was published, not to when it charted. Separately from that timestamp, the record keeps the moment an article first entered the record — the first time it was seen on any list — which brackets its publication date from above whether or not the URL carries one.


Reconstruction of missing readings

The scraper occasionally misses a reading. When that happens, short gaps are reconstructed rather than left blank: the rank order is interpolated between the real readings on either side of the gap. Two rules keep this conservative:

  • Only short gaps are filled. Gaps longer than three consecutive missed readings are left unfilled entirely.
  • No article is ever invented. Reconstruction can only place an article that was already present on the list both before and after the gap. It never introduces a story that wasn't there.

Every reconstructed reading is flagged in the data, so any figure can be recomputed using directly recorded readings only. This creates two separate measures of record quality. Coverage is how much of the quarter a source was being recorded at all: gaps too long to reconstruct are left blank, and they surface as reduced coverage rather than as reconstructed readings. Directly recorded is, of the readings that do exist, the share captured first-hand rather than interpolated. A source can be strong on one axis and weak on the other — steady tracking with many short, patchable gaps looks very different from long stretches of no record at all. Where either measure is weak enough to matter, the report gives its headline figures both ways.

Counting only directly recorded readings slightly undercounts an article's true time on the list, because hours nobody observed aren't counted. Counting reconstructed readings as well may overcount. The two figures bracket the real value; for sources with near-complete records they are effectively identical.

Which basis each published figure uses. Source-level statistics — Median Duration, the 90th Percentile and Turn Rate — lead with directly recorded readings only, and the reports give the reconstruction-inclusive median alongside them. Per-article figures in the deep-dives — Total Index Footprint, Peak Residency and the Position Path — include reconstructed readings. This is uniform across every source and every report, so two articles are always comparable with each other; an article from a heavily reconstructed source simply carries wider uncertainty than one from a near-complete record.


Limitations

Timing precision. The record is built from discrete readings, so every duration carries a small measurement error. A very short-lived article can rise and fall between two readings and leave little or no trace, and the exact start and end of any article's run are approximate.

Corpus definition and window edges. Each report's corpus is defined by article publication date within the quarter, matching what the site's own by-source filters display. Membership is set by that publication date, but an article's duration is then counted in full: a story published near the end of a quarter that keeps charting into the next one has all of its readings counted, including those past the quarter boundary, so its longevity is not truncated at quarter's end.

Single vantage point. All readings are taken from one location, logged out. If a publisher personalises or A/B-tests its list by region or visitor, these figures reflect one such view rather than a canonical global list.

Publisher mechanics. A Most Read list is generated from reader clicks, but each publisher decides how those clicks become a ranking: over what time window, which articles are eligible, how many slots are shown. Those rules aren't published and they differ between outlets. So the durations here measure how long an article survived a given publisher's ranking process — a faithful record of what real readers made popular, filtered through ranking rules whose output I can observe but whose workings I can't inspect.


Method version 1.0 (Q2 2026). Material changes to the method will be noted here with a date. Spotted something wrong? Get in touch.