Hacker News Insights

How every number is verified

Updated 12 July 2026 · each view states its own data-through date

Hacker News Insights is a data almanac of Hacker News, built from the full public corpus — about 18 million items since 2007. The whole point is that you don't have to take any chart on faith. Here's exactly how the figures are produced and checked.

1. Every number comes from a query

Each figure is the output of a deterministic SQL query over the corpus — not an estimate, not a model's guess. Plain-language summaries only describe already-computed numbers; a summary can never introduce, compute, or round a figure that isn't in the verified result. If a summary cites a number the data didn't produce, it is rejected.

2. Re-run and diffed before publishing

At build time the publish step re-derives every figure that appears on the site from the live corpus and compares it to the value about to be shown. If they don't match within tolerance, the build fails and nothing ships. A fact-sheet records each published claim, the value, and the era it covers, so any number is traceable back to its query.

3. Share-normalized, so coverage can't fake a trend

The retained corpus is census-complete for 2007–2025; 2026 is live and partial. Long-run topic charts use each year’s share of retained story titles, not raw volume. Partial-year comparisons remain seasonally incomplete, so current-year movement is paired with an equivalent prior-year interval wherever the dashboard labels a change as year-to-date.

4. Honest about correlation vs. cause

A relationship that is a correlation, a coincidence, or a temporal alignment is labeled as exactly that — never dressed up as cause. The clearest device here is an event study: attention around a known, dated event. Even that is an association, and it's framed that way. Two topics that both rise over a decade will correlate for no real reason; that's why co-movement is measured on month-over-month changes, not levels.

5. Separate scopes stay separate

The annual almanac describes retained HN item metadata. The Time Machine and Story Lifecycle describe only the forward-captured top 30 during explicitly listed dates. Ask HN, Show HN, and Jobs use their official list surfaces. The interface does not infer historical ranks, join observations across a capture gap, or present forward capture as a sample of all submissions.

6. Story velocity favors a stable signal

Score, comment, and rank-climb velocity use consecutive observations at least five minutes apart inside a continuous capture segment. The default value is the median positive qualifying interval; a single fastest interval is retained only as secondary context. Percentiles rank this capture set, not all Hacker News submissions.

7. Community and domain views are descriptive

Community output contains cohorts and aggregates only—never handles, individual rankings, inferred identity, or comment text. Cohort differences can reflect topic mix, source mix, tenure, survivorship, and collection boundaries. The discussion-surface comparison uses retained stories with observed final score and comment counters, classifies them by explicit Ask HN, Show HN, link, or other-text rules, and reports descriptive story-level outcomes. “No comments” means the retained counter is zero; “50+ comments” is a thread-size threshold, not a quality judgment. Domains are normalized to registrable domains; volume defaults to the last five complete years and includes a median annual share, while all-time engagement remains labeled historical context rather than a quality score.

8. Exact public data remains inspectable

The Attention Lab exposes an exact annual-values table and separate public data files for topic history, community and domain aggregates, coverage and derived distributions, and captured story measurements. Homepage chart dialogs expose exact mark data where the source series is available and always retain a written chart summary and evidence path.

9. Semantic views stay directional

Comment themes use a fixed monthly-stratified sample of 1,816 comments from 2007–2025. Shares are normalized within that sample contract and never presented as a census of all comments. Open-vocabulary title discovery uses the dominant retained embedding space; only coherent candidates with human-reviewed display labels are shown, while unreviewed clusters are withheld. Neither semantic surface replaces the stable curated topic series.

10. Linked-source framing is lexical, not a verdict

Linked-page acquisition reports every attempted URL as readable live, readable through an archived capture, paywalled or thin, denied or rate-limited, unavailable, non-article or empty, or another fetch error. The framing view measures the share of meaningful HN-title terms found in the locally generated article summary. That is wording overlap only: it cannot establish accuracy, editorial intent, or clickbait. A separate, accruing comparison uses the publisher’s og:title or document title captured from the same live or archived page and reports token-set overlap, length changes, and added question, first-person, or number cues. Those transformations are descriptive, and current title-pair coverage is disclosed rather than generalized to every link. The direct comparison remains secondary until it reaches 5,000 usable pairs; at that exact threshold, the interface marks it established, promotes it above the source-summary cards, and replaces the provisional low-alignment card with direct-pair coverage. Its annual table is a coverage audit rather than a trend claim: submission years are UTC, each shown year requires at least 50 usable pairs, sparse years are withheld, and uneven historical title capture prevents interpreting differences as changes in HN behavior.

11. Hiring corpora remain separate

Jobs intelligence uses auditable case-insensitive whole-term matches over two distinct sources: official HN Jobs titles/text and top-level comments in monthly “Ask HN: Who is hiring?” threads. Percentages use analyzed records in complete years. The interactive history includes only complete UTC years with at least 100 analyzed records and switches among remote, hybrid, compensation, and visa/sponsorship language without blending the corpora; its exact table preserves all four series and denominators. Records can mention multiple skills or reviewed place names, so those shares do not sum to 100%. Compensation bands include only annual-looking currency amounts near explicit salary/pay language. Dollar, euro, and pound records stay separate and are never converted; the displayed dollar denominator is shown. A missing remote, location, compensation, visa, or seniority phrase means “not stated in the retained text,” not absent in reality. No posting text, handle, company ranking, or individual profile is published.

12. Missing signals remain missing

The dashboard cannot observe historical front-page paths from before capture began, time outside the captured top 30, impressions, clicks, voter identities, vote timing, or the reason an item was moderated or downranked. These absences are not estimated or converted into zeros.

13. Go read the source

Most charts link back to the original discussions or searches on Hacker News, so claims can be checked against the source. The underlying data comes from Hacker News / Y Combinator's public API (whose code is MIT-licensed) and openly published datasets; only aggregate statistics are shown here, never republished comment text.

The rule, in one line: if a number can't be reproduced, it doesn't ship.

Hacker News Insights is an independent project, not affiliated with or endorsed by Y Combinator. Questions: use the contact form.