Evidence

How we measured Click Oracle

The headline accuracy numbers come from one run of a frozen engine on held-out data. The baseline comparisons, the memorization checks and the large-set check are separate runs, described below with what was planned in advance and what was added later. Generated Nov 10, 2026 11:04 PM MST.

The data

The Upworthy Research Archive is an open collection of real, randomized headline A/B tests run by Upworthy from 2013 to 2015, published by J. Nathan Matias, Kevin Munger, Marianne Aubin Le Quere and Charles Ebersole (Scientific Data, 2021) under CC BY 4.0. Each test showed different headlines for the same story, with the same image and teaser, to random visitors and counted clicks.

What the engine does

For every pair of options it asks the ranking model which one a typical person is more likely to click, once in each order, and averages the two answers so position bias cancels. Up to 24 options, every pair is judged. Above that, each option first meets 8 random opponents, then the top 16 play a full round robin. A Bradley-Terry model turns the head-to-heads into strengths, with an uncertainty for each option, and one calibration scale (0.458, fitted on tuning data only) turns strength gaps into win odds. A call is Clear when #1 is expected to beat #2 at least 62% of the time, Lean from 55%, and Too close to call below that.

The ranking model is TypeSafe's Jev (jev-1.14.0), a decision model that answers typed questions with probabilities. Claude, by Anthropic, writes options when you ask it to. Claude does not rank.

Results on held-out tests

The engine files and calibration were frozen by hash, and the test protocol was written down (in our repository, not with an outside registry) before the single test run. Every result in this section comes from that run.

One randomly chosen pair from each of the 9,841 test groups, so every pair is a separate experiment. Accuracy counts the 2,762 pairs whose real test had a statistically clear winner (two-sided p < 0.05). Ranges are 95% Wilson intervals.

BandShare of all pairsRight on clear-result tests95% range
Clear19%555 / 675 = 82%79 to 85%
Lean39%684 / 1,027 = 67%64 to 69%
Too close42%624 / 1,060 = 59%56 to 62%
All100%67%66 to 69%

Calibration: across all 9,841 pairs, predicted odds and the real outcome (scored as the probability that one version truly had the higher click rate) differed by 0.9 percentage points on average.

Picking the best of a set

On 8,624 test groups with 3 or more versions (average 4.71), our #1 had the highest real click rate 33% of the time (95% range 32 to 34%), against 22% by chance. Its click rate averaged 11% above the average version in the same test. When the verdict was Clear (315 groups), #1 was the real best 51% of the time, with a 27% lift.

Baselines

What we preregistered, and what we changed. The protocol named one comparison model, Claude Haiku, on a seeded subset of 400 independent test pairs. Only about 100 of those pairs had a statistically clear real winner, which made the comparison too small to separate methods. Here are those preregistered results in full, with Sonnet added afterwards:

Preregistered subset (400 pairs)Right on clear-result pairs95% rangePairs counted
Click Oracle (all versions of each test ranked)57%47 to 66%100
Jev on the pair alone60%50 to 69%100
Claude Haiku (claude-haiku-5-5)54%44 to 65%81
Claude Sonnet (claude-sonnet-5-5), not preregistered67%56 to 76%78
Text-feature model56%46 to 65%100

Pairs counted are clear-result pairs where the method made a pick (Claude often answered exactly 50%). On this small set Click Oracle scored below Sonnet and below Jev on the pair alone, with wide, overlapping ranges.

The larger comparison (added after seeing the result above). We then drew a second seeded sample of 600 held-out pairs that all had a statistically clear real winner, and ran every method on it. This set was chosen after the preregistered run, so treat it as a follow-up, not a preregistered result. Claude saw each pair in both orders, asked for a probability, 25 pairs per request. Click Oracle ranked all versions in each test, as it does in the product, and the pair was read from that ranking; Jev on the pair alone is shown for a like-for-like comparison. Ties count as half right.

Method (600 pairs)Right95% rangeConfident calls
Click Oracle65%61 to 69%144 pairs, 82% right
Jev on the pair alone66%62 to 70%same model
Claude Sonnet (claude-sonnet-5-5)67%63 to 71%30 pairs, 90% right
Claude Haiku (claude-haiku-5-5)55%51 to 59%few

Sonnet scored higher, but the difference is within noise (paired McNemar test, p = 0.40); that does not show they are equal. Click Oracle beat Haiku (p < 0.001). Measured model cost per pair in these runs: about $0.0000213 for Click Oracle's model, $0.0000827 for Haiku and $0.00119 for Sonnet (list prices), so Sonnet cost about 56 times more. On all decisive held-out pairs, a logistic model on simple text features (trained on tuning data) was right 58% (2,755 pairs where it made a pick) and "the longer headline wins" 53% (2,657 pairs with different lengths).

Could the model have memorized this archive?

The archive has been public since 2019, so the ranking model may have seen these headlines in training. We could not find a public set of headline A/B outcomes recent enough to rule that out. Two checks:

Neither check proves the absence of memorization. That is why per-account calibration exists: upload your own recent tests and you get accuracy measured on data no model could have seen.

Limits