Cognitive Load On Real Pages
What 514 real pages, measured on 2026-10-24, show about first screens, whole pages, and the personas who read them.
The CTC Reference Set is the collection of real pages that cognitive_effort ranks every score against. It holds 514 graded pages from 161 sites, split across three sampling frames (brand, Tranco and public) and six page types, and each one was measured at 1920x1080. That page explains how the set was collected. This page reports what the set shows when you add it up.
Two kinds of numbers appear below, and they mean different things.
- Measured counts are facts about the pages as they loaded: elements, links, words, screens, and animations. "First screen" means the viewport-scope measurement. An element that is only partly on screen counts there.
- Model outputs are Total CTC percentiles from the cognitive transport chain. The chain's weights are design values. The code labels them as hypotheses, and they have not been fitted to user data. A CTC number tells you where a page sits among real pages under this model. It does not tell you how a person experiences the page.
No site is named here. Every figure is an aggregate.
Key findings
- A typical first screen has 28 interactive elements, 20 links and 88 words of prose. These are medians. The middle half of pages runs from 18 to 47 interactive elements. A typical whole page has 82 interactive elements and 348 words, and it is 3.1 screens long.
- The model's scores differ far more within a frame than between frames. In the model's first-screen scores, the page explains 73.3% of the variance and the persona explains 18.6%. Only 0.5% lies between the three sampling frames.
- Government and nonprofit pages have fewer controls and less motion, and the model scores them as less costly. Compared with brand pages, their first screens have fewer interactive elements (median 23 against 31) and far less motion (12.7% have a CSS animation set on a first-screen element, against 34.5%), but more words (103 against 76). Of their (page, persona) pairs, 14.5% score 0.8 or above on the first screen, against 24.4% for brand pages.
- On one page, the persona moves the model score a long way. The median gap between the highest and lowest of the 25 personas on the same first screen is 0.528 on the 0 to 1 percentile scale (about 53 percentile points).
- Under the model, a page's first screen and its whole page rank differently. Across the 514 pages, the Spearman correlation between each page's median score (over the 25 personas) at the two scopes is 0.58.
Findings 2, 4 and 5, and the score shares in finding 3, are model outputs. The chain's weights are design values labelled as hypotheses, not fitted to user data.
What a page holds
Each cell gives the median, with the middle half (first to third quartile) in parentheses. Words are whitespace-separated words of visible prose. The measurement counts each prose block once and leaves out blocks below a minimum length. 15 pages are in CJK script. 14 of them are Chinese or Japanese, which do not put spaces between words, so their word counts run low. The fifteenth is Korean, which does.
First screen
| Measured | All | Brand | Tranco | Public |
|---|---|---|---|---|
| Pages | 514 | 171 | 170 | 173 |
| Interactive elements | 28 (18-47) | 31 (18-87) | 30 (19-52) | 23 (17-34) |
| Links | 20 (12-37) | 20 (8-58) | 25 (14-43) | 17 (11-27) |
| Choices (links plus select options) | 21 (12-41) | 22 (9-65) | 25 (14-43) | 18 (11-32) |
| Words of prose | 88 (40-151) | 76 (31-149) | 79 (44-151) | 103 (51-154) |
| Images (img, svg, role=img) | 4 (1-8) | 4 (1-12) | 4 (1-10) | 3 (1-5) |
Brand pages have the longest tail. A quarter of brand first screens have 87 or more interactive elements, against 34 or more for public pages.
Whole page
| Measured | All | Brand | Tranco | Public |
|---|---|---|---|---|
| Interactive elements | 82 (51-134) | 111 (62-221) | 88 (53-136) | 63 (45-86) |
| Links | 67 (41-113) | 92 (43-149) | 71 (45-120) | 54 (38-76) |
| Words of prose | 348 (162-641) | 344 (162-737) | 373 (162-660) | 333 (165-521) |
| Length in screens | 3.1 (1.7-5.5) | 3.5 (1.5-6.1) | 3.7 (1.8-6.6) | 2.8 (1.8-3.9) |
| 5 screens or more | 29.0% | 35.7% | 34.7% | 16.8% |
| One screen or less | 14.2% | 19.3% | 12.4% | 11.0% |
Motion
| Share of pages | All | Brand | Tranco | Public |
|---|---|---|---|---|
| A CSS animation set on a first-screen element (finished ones included) | 24.1% | 34.5% | 25.3% | 12.7% |
| An autoplay element on the first screen | 2.3% | 4.7% | 1.2% | 1.2% |
| A carousel, slider or swiper class anywhere on the page | 25.7% | 25.7% | 28.8% | 22.5% |
| At least one of the three | 40.7% | 49.7% | 41.8% | 30.6% |
The animation count reads each element's CSS animation settings, so an animation that has already finished, such as a fade-in, still counts. Landing pages carry the most motion. 59.6% of them show at least one of the three signals, against 25.6% of form pages.
By page type
| Page type | Pages | Interactive elements, first screen | Words, first screen | Length in screens | Model median, first screen | Model median, whole page |
|---|---|---|---|---|---|---|
| Landing | 161 | 28 | 70 | 4.3 | 0.497 | 0.605 |
| Form | 90 | 20 | 70 | 1.6 | 0.355 | 0.243 |
| Search | 57 | 32 | 94 | 2.9 | 0.608 | 0.534 |
| Article | 106 | 31 | 131 | 3.9 | 0.585 | 0.593 |
| Help | 92 | 31 | 101 | 2.7 | 0.478 | 0.417 |
| Cart | 8 | 32 | 80 | 1.6 | 0.479 | 0.352 |
The measured columns are medians over pages. The model columns are medians over every (page, persona) pair, and they are model outputs: the chain's weights are design values labelled as hypotheses, not fitted to user data. With only 8 cart pages, that row is too small to read much into.
Forms are among the shortest pages (median 1.6 screens, the same as cart), and the model scores them as the least costly type at both scopes. 34.4% of them fit on one screen. Article pages have the most first-screen prose (median 131 words) and 660 words over the whole page.
What the model makes of them
Every page was scored for all 25 built-in personas on a first visit, with the chain's default options, the same way cognitive_effort scores a page. Each score is a percentile of the pooled reference at the same scope, so across all pages the median is 0.5 and 20% of pairs sit at 0.8 or above by construction. The weights behind these numbers are design values labelled as hypotheses, and they have not been fitted to user data.
By frame
| Frame | First screen, median | First screen, share at 0.8+ | Whole page, median | Whole page, share at 0.8+ |
|---|---|---|---|---|
| Brand | 0.506 | 24.4% | 0.584 | 27.2% |
| Tranco | 0.534 | 21.2% | 0.507 | 21.2% |
| Public | 0.468 | 14.5% | 0.429 | 11.8% |
The frame gap widens on whole pages. There the frames explain 1.9% of the variance and page types explain 11.0%. On first screens the figures are 0.5% and 4.1%.
In the Tranco frame, the 29 pages from the 11 sites ranked in the top 1,000 have a median page score (each page's median over the 25 personas) of 0.762 on the first screen. The other three rank bands sit between 0.443 and 0.558 on the same measure.
By persona
First-screen medians over all 514 pages and within each frame, for ten of the 25 personas:
| Persona | All pages | Brand | Tranco | Public |
|---|---|---|---|---|
| impatient-user | 0.841 | 0.802 | 0.861 | 0.868 |
| cognitive-adhd | 0.755 | 0.707 | 0.779 | 0.768 |
| mobile-user | 0.683 | 0.662 | 0.706 | 0.664 |
| elderly-user | 0.581 | 0.607 | 0.612 | 0.544 |
| power-user | 0.571 | 0.568 | 0.597 | 0.563 |
| first-timer | 0.503 | 0.515 | 0.536 | 0.463 |
| low-vision-magnified | 0.437 | 0.420 | 0.476 | 0.427 |
| dyslexic-user | 0.434 | 0.445 | 0.466 | 0.401 |
| screen-reader-user | 0.296 | 0.366 | 0.325 | 0.247 |
| stoic-user | 0.210 | 0.240 | 0.257 | 0.180 |
Three things stand out.
- The frame ordering is not the same for every persona. On first screens, 17 of the 25 personas give public pages the lowest median of the three frames. The other 8 give public pages a higher median than brand pages, among them impatient-user, cognitive-adhd and mobile-user. On whole pages, all 25 give public pages the lowest median.
- The model scores power-user as costlier than first-timer. Every persona in the reference is scored as a first visit, and this one has patience 0.3, where first-timer has 0.7. power-user's costliest layer is frustration on 58.4% of first screens. first-timer's is decision on 71.8%.
- Persistence tracks persona cost most closely. Across the 25 personas, it has a rank correlation of -0.77 with the median score. That describes how the model is built, not how people behave.
Which layer costs most
On first screens, the decision layer is the costliest of the eight layers for 43.6% of (page, persona) pairs. The next are frustration (16.1%), readability (15.7%) and motor (14.3%). On whole pages, readability leads (29.8%), ahead of frustration (23.1%).
What the score follows
The rank correlation between a page's median first-screen score and its measured counts is 0.76 for interactive elements, 0.75 for links and for prose characters, and 0.74 for words. It is 0.33 for images and 0.12 for page length. These figures show which counts the model's scores move with. Some counts move together (interactive elements with links at 0.94, words with characters at 0.99), so these figures cannot say which count drives the score. They are not evidence about readers.
How stable is one measurement
On the night of 2026-11-07, the 486 direct-route graded pages were loaded again (the 28 pages fetched through a proxy were left out). 470 loaded both times. Each page was loaded twice, one load after the other, each in a fresh browser. A page's move is the largest change in Total CTC across its 25 personas, on the 0 to 1 percentile scale. Total CTC is the model's output, and its weights are design values labelled as hypotheses, not fitted to user data. This section measures how repeatable the measurement is, not whether the score is right.
| Comparison | Scope | Metrics differ | Moved 0.05+ | Moved 0.10+ |
|---|---|---|---|---|
| Load A vs load B, animations not held | First screen | 17.9% | 2.8% | 1.7% |
| Load A vs load B, looping animations held | First screen | 17.0% | 2.6% | 1.5% |
| Load A vs load B, animations not held | Whole page | 23.4% | 3.2% | 1.5% |
| Load A vs load B, looping animations held | Whole page | 20.2% | 2.1% | 0.6% |
| 2026-11-07 vs the stored 2026-10-24 record, not held | First screen | 17.7% | 10.4% | |
| 2026-11-07 vs the stored 2026-10-24 record, not held | Whole page | 10.2% | 5.3% |
The median move between two loads was 0.0000 at both scopes. Since 21.4.5, cbrowser holds looping animations at time 0 while it measures. Two reads seconds apart on the same load agreed on 98.1% of first screens with the hold, against 94.9% without it. On whole pages the figures were 86.2% and 80.0%. The reference pages were measured before the hold. On this measurement, holding them would move the reference curve by at most 0.0026 on the 0 to 1 scale, read noise included.
With the hold, 12 pages still moved 0.05 or more on the first screen. On 8 of them the page came back different on the second load: 2 ended at a different URL and 6 had a different page length. The largest move, 0.83, was a login page that came back almost empty on the second load: 2 interactive elements and no prose, against 38 and a block of prose on the first. On the other 4 the URL and page length matched but the counts still differed; this run did not measure why.
Against the stored 2026-10-24 record, 17.7% of pages (about one in six) had at least one persona's first-screen score move by 0.05 or more. That is far more than the 2.8% that moved between two loads that night, so most of it is change since the crawl, in the pages or in the browser setup (cbrowser 21.2.0 began sending a locale Accept-Language header). Rebuilding the reference curve from that night's 470 measurements (the other 44 pages kept at their stored values) moves it by at most 0.0075 on the first screen (0.0077 with the hold) and 0.0048 on the whole page (0.0060 with the hold). The curve's own 95% interval (the one totalCTCInterval reports) has a median half-width of 0.0274.
So treat one measurement as one sample. If a score is close to a band edge, measure again.
Run the same measurement on your own page
cognitive_effort is an MCP tool. There is no CLI command for it. To run it locally, start the stdio server with npx cbrowser mcp-server and add it to your MCP client (see MCP Server).
{
"name": "cognitive_effort",
"arguments": {
"url": "https://example.com",
"persona": "first-timer",
"scope": "viewport"
}
}
To compare a result with the tables above:
- Use
scope: "viewport"for the first-screen tables and"full_page"for the whole-page ones.referenceScopein the response says which reference your score was ranked against. - Leave
siteFamiliarityunset. The reference was scored as a first visit. - Measure at 1920x1080, the size the reference used. The local server shares one browser for the whole conversation and ignores
_browserToken. It starts at 1920x1080 unless your environment, a cbrowser config file, or a device saved withcbrowser device setin the same data directory sets another size. If you set a device withnavigateorcbrowser device set, restart the server with a freshCBROWSER_DATA_DIRbefore measuring. On the hosted servers, call without a_browserTokento get a new browser at 1920x1080. - Your measurement holds looping animations and the reference's did not. Holding the reference pages would move the curve by at most 0.0026.
- Run several personas. The persona table shows how far apart they can land on the same page.
The response gives cognitiveTransportCost.total (the percentile), totalCTCInterval, band, a rank sentence, the bottleneck layer and pageScreens. The raw measurements behind the tables above the stability section are in the repository at src/data/ctc-reference-v2-2026-10-24.ts. The npm package ships them compiled, as dist/data/ctc-reference-v2-2026-10-24.js. referenceRaw and referenceGraded in src/visual/ctc-reference.ts read them. The stability figures come from a separate repeat-load measurement on 2026-11-07. Its data is not published, and the comment at the top of src/visual/ctc-reference.ts summarizes part of it.
Related
- CTC Reference Set -- How the 514 pages were collected and how the rank is computed
cognitive_effort-- Scores one page for one persona against this set- Cognitive Optimal Transport -- The model behind the cost, and its status