The ranking algorithm
The Hot ranking is a modified Hacker News score. This page is the source of truth: the formula, the inputs, and a changelog of any parameter change.
The formula
For a post or comment with a vote score S and age in hours t:
rank_score = (max(S − 1, 0) ^ p) / ((t + 2) ^ g) × multipliers Defaults: p = 0.8 (score exponent), g = 1.5 (gravity). Both are tunable
per environment without a code change.
Every vote counts as ±1. We don't weight votes by trust tier or anything else — one account, one vote.
Multipliers
The base score is then multiplied by, in order:
- Soft-hide: 0.5× when a moderator marks a post low-quality but not removable. Post stays visible, ranks lower.
- Duplicate-warned: 0.6× when the post tripped a near-duplicate fingerprint and was kept anyway.
- Brigade dampening: 0.5× while a dampening flag is active, set when sudden vote velocity from a single referrer trips the detector.
Comments use the same formula and exponents but skip every multiplier. Only score and age feed the comment rank.
When ranks are recomputed
For items under 24 hours old, rank_score is recomputed inline on every vote. From 24
hours to 7 days, items are recomputed by a scheduled job; after 7 days the score is frozen.
Parameter changelog
Any change to the formula, exponents, or multipliers is logged here.
- 2026-05-01 — Removed the per-community rank weight. All communities now rank on the same curve; we tune visibility through moderation, not a multiplier.
- 2026-05-01 — Removed the 0.7× new-author penalty. Trust-tier rate limits already gate how often a new account can post; the penalty was redundant and made it hard for legitimate first-time posts to find an audience.
- 2026-04-30 — Removed trust-tier vote weighting. Every vote is now ±1 regardless of voter tier. Weighting added complexity without measurably improving ranking quality, and it surprised people who couldn't tell why their vote felt invisible.