A pixel art avatar of Max Glenister

Max Glenister

0000

What's the most popular number in Hacker News titles?

#programming

#database

Two consecutive titles on the HN front page yesterday had a 6 in them. This means nothing. But it’s the sort of nothing that lodges in your brain until you do something about it, so what is the most popular number in Hacker News titles?

ClickHouse hosts the full HN dataset in their public playground, and I am exactly the kind of person who finds that exciting. The obvious query is barely a query at all:

public playground

obvious query

The most popular number in HN titles is 2. Case closed, post over.

But why are the numbers so small?

That’s the Vsauce jingle. This post is about to become ‘but why is 19 like that’.

A table where small digits beat large ones looks, for one exciting second, like Benford’s Law: the observation that in a lot of naturally occurring datasets, the leading digit is far more likely to be 1 than 9. It shows up in river lengths, stock prices, physical constants, election results, and it’s genuinely spooky the first time you see it. It does not show up here. Benford’s Law is about the leading digit of numbers that span several orders of magnitude (populations, incomes, file sizes), not single digits extracted from headline prose. The real explanation is duller than a law of the universe.

Benford’s Law

Except sixth place is 0, with 60,931 appearances. Sixty thousand titles do not contain a bare zero. What they contain is “2.0” and “1.0”, which \d+ happily splits into their component digits. The same regex pulls the 3 out of “S3”, chops “1,000 users” into a 1 and a meaningless 000, and generally treats every digit sequence as its own number regardless of context. 2’s 119k lead is mostly the ghost of Web 2.0 and a decade of version numbers with decimal points. The numbers are accurate, they’re just answering a slightly wrong question.

So I tried a smarter pattern, one that captures comma-grouped numbers whole, treats decimals as single tokens, respects word boundaries, and filters years, because “years are popular on a news site” would not surprise anyone. The doubled backslashes below are because ClickHouse turns \b into a literal backspace character before the regex engine ever sees it, which produces an empty result set and takes longer than I’d like to admit to diagnose:

a smarter pattern

Tokenising numbers is also more of a tar pit than it looks: “Python 3.11.2” still splits into “3.11” and “2”, and the year filter can’t tell 1984 the year from 1984 the novel. Good enough to move on from, at least.

2 loses nearly two thirds of its count and the title. 1 takes the crown. The phantom 0 is gone. The years were there all along. Without the filter, 2018, 2017 and 2020 chart at 8th to 10th; the naive regex was just inflating the small digits enough to bury them.

So why do small numbers dominate? HN titles are doing three things that all pull in the same direction.

The first is listicles. “3 ways to do X”, “5 things I wish I’d known”, “10 tools I actually use”. The listicle is practically the native unit of the link post, and its count is almost always small and round. Nobody writes “17 things I wish I’d known” unless they genuinely have 17 things, which is rare, whereas “5 things” is a decision made in a title editor.

The second is version numbers. The highest-scoring titles for 1, 2 and 3 are almost entirely major software releases: Ghostty 1.0 and Rust 1.0 for 1, Llama 2 and Dall-E 2 for 2, Meta Llama 3 and Gemini 3 for 3. Software versioning starts at 1 and increments slowly, so the small numbers accumulate years of release announcements. This is also why 2 ranks above 3, which ranks above 4, almost perfectly. The earlier version numbers have simply existed longer.

The AI era is making this more pronounced. 2, 3, 4 and 5 are all getting a fresh wave of high-scoring model release posts on top of everything else.

The third is round numbers used as thresholds and rankings. “Top 10”, “the No. 1 reason”, “100 days of X”. Digits get pressed into service as emphasis, and the rounder the number the more often it gets chosen. 10 charts well above both 9 and 11 specifically because of this: nobody writes “top 9 tools” unless they actually ran out at nine.

Plotting all ten numbers over HN’s full history reveals two moments where something external breaks the pattern:

Plotting all ten numbers over HN’s full history

19 is the obvious one. Its all-time total of 17,842 is nothing special, until you look at 2020, where it logged 10,439 appearances, five times any other year. That’s what a global pandemic named after the number does to its ranking. It was still elevated in 2021 as COVID-19 remained front-page news, then fell back to baseline as the headlines moved on.

The subtler one is 4 in 2023, where it jumps from around 1,400 the previous year to 2,298, briefly pulling level with 1 and 2. GPT-4 launched in March 2023 and dominated the front page for months. A single model release, visible as a kink in a line chart.

As for 6: 9th place, 17,933 appearances. The two 6s I saw on the front page in a row were entirely unremarkable. I have spent an evening establishing exactly that, and I regret nothing.

Interactions

Discussion

Want to comment? You can do so via Github or reply using Webmentions.

Github

Webmentions

Want to reply? I've hooked up Webmentions, so give it a go!

hooked up Webmentions

GitHub API rate limit exceeded. Comments available again at

Webmentions last fetched:

About the author

Photo of Max

Max Glenister is an Interface Designer and Senior Full-stack Developer based in Oxfordshire. For work he spends his time designing, validating and implementing user interfaces. For fun he tinkers with Virtual Reality, 3D printing, embedded systems, game development and many other things.

Max Glenister

Blog sections

All posts

Previous Retro game archives, MechCommander bug fixes, and a live train map

Retro game archives, MechCommander bug fixes, and a live train map

Retro game archives, MechCommander bug fixes, and a live train map

Recent

11 Jul 2026The progress of progress bars

The progress of progress bars

The progress of progress bars

07 Jul 2026How I'm using CSS View Transitions on this blog

How I'm using CSS View Transitions on this blog

How I'm using CSS View Transitions on this blog

03 Jul 2026Why I'm using a low-profile keyboard (for now)

Why I'm using a low-profile keyboard (for now)

Why I'm using a low-profile keyboard (for now)

29 Jun 2026Every Kickstarter project I've backed

Every Kickstarter project I've backed

Every Kickstarter project I've backed

28 Jun 2026How the five AIs actually did

How the five AIs actually did

How the five AIs actually did

Related

13 Mar 2011My solution to the JavaScript challenge 07/03/11

My solution to the JavaScript challenge 07/03/11

My solution to the JavaScript challenge 07/03/11

11 Mar 2011Javascript function to group repeated values of an array with totals

Javascript function to group repeated values of an array with totals

Javascript function to group repeated values of an array with totals

07 Mar 2011Javascript/jQuery challenge of the week 07/03/11

Javascript/jQuery challenge of the week 07/03/11

Javascript/jQuery challenge of the week 07/03/11

05 Mar 2011Building JavaScript arrays from HTML using regular expressions

Building JavaScript arrays from HTML using regular expressions

Building JavaScript arrays from HTML using regular expressions

All tags

#guide (82)

#hardware (53)

#programming (36)

#life (41)

#review (33)

#web-development (29)

#3d-printing (26)

#software (34)

#macos (23)

#android (24)

#css (17)

#design (16)

#site-related (22)

#jekyll (16)

#linux (16)

#handheld (13)

#diy (14)

#retro-gaming (12)

#indieweb (9)

#gaming (10)

#reddit (7)

#google (7)

#ux (5)

#server (5)

#ai (4)

#github-pages (5)

#git (4)

#database (3)

#nintendo (4)

#world-cup (3)

#interview (3)

#clockwork-pi (3)

#emoji (3)

#llm (2)

#raspberry-pi (7)

#pico-8 (7)

#e-ink (2)

#vr (10)

#coffee (2)

#chromebook (7)

#kickstarter (1)

#pixel-art (16)

#gimp (1)

#chip (4)

#jquery (7)

#userscripts (8)

#windows (5)

#hackday (5)

#dingoonity (2)

#conference (4)

#email (4)

#arch-linux (4)

#youtube (3)

#ubuntu (2)

#icons (5)

#responsive-design (3)

#minecraft (3)

#hackintosh (3)

Latest interactions

xFutuxe commented on Inside the BBC's 3D World Cup viewerJul 14, 2026

xFutuxe

Inside the BBC's 3D World Cup viewer

Max Glenister mentioned /lwal/week-28/Jul 13, 2026

Max Glenister

/lwal/week-28/

Max Glenister mentioned Your forecast is accurate and still wrongJul 13, 2026

Max Glenister

Your forecast is accurate and still wrong

Max Glenister mentioned The progress of progress barsJul 11, 2026

Max Glenister

The progress of progress bars

martrapp commented on How I'm using CSS View Transitions on this blogJul 07, 2026

martrapp

How I'm using CSS View Transitions on this blog

Mathew Attlee reposted How I'm using CSS View Transitions on this blogJul 07, 2026

Mathew Attlee

How I'm using CSS View Transitions on this blog

RSS Bot mentioned How I'm using CSS View Transitions on this blogJul 07, 2026

RSS Bot

How I'm using CSS View Transitions on this blog

Max Glenister mentioned How I'm using CSS View Transitions on this blogJul 07, 2026

Max Glenister

How I'm using CSS View Transitions on this blog

Max Glenister mentioned /lwal/week-27/Jul 06, 2026

Max Glenister

/lwal/week-27/

Justin Sherrill mentioned The Xteink X4 E-Ink ReaderJul 05, 2026

Justin Sherrill

The Xteink X4 E-Ink Reader

IndieWeb Webring