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 author submitted a link that had already been posted and chose to post it anyway. Near-duplicate fingerprint matches are flagged for human review instead of penalized automatically.
- Brigade dampening: 0.5× for 24 hours, set when a burst of same-direction votes arrives from very new accounts within a short window. The detector stays disarmed until the site has an established base of older accounts, since "new account" carries no signal while every account is new.
Comments use the same formula and exponents but skip every multiplier. Only score and age feed the comment rank.
When ranks are recomputed
rank_score is recomputed by a scheduled job — every five minutes for items under 24 hours
old, every thirty minutes from 24 hours to 7 days. After 7 days the score is frozen. Vote counts themselves
are aggregated within a few seconds of each vote.
Parameter changelog
Any change to the formula, exponents, or multipliers is logged here.
- 2026-07-25 — Near-duplicate fingerprint matches now flag for human review instead of auto-applying the 0.6× duplicate multiplier (which still applies to acknowledged link reposts). Brigade detector disarmed until the site has an established account base.
- 2026-05-07 — Initial implementation.