TL;DR
7 min readReddit publishes one-line descriptions of hot, top, new and rising in its Content Recommendations help article and says nothing at all about controversial or best. Its own API documentation contradicts one of those lines: the help article says rising "can be filtered by time as well", while the API reference gives the t parameter only to /top and /controversial, not to /rising. The actual formulas are known only from reddit-archive/reddit, the open-source codebase Reddit stopped updating in 2017, where hot adds log10 of the score to the submission time divided by 45,000 seconds, controversy is magnitude raised to the up and down balance, best is an 80% confidence lower bound, and rising is upvotes divided by pageviews.
What is the difference between Reddit hot, new and top?
The practical difference in Reddit hot vs new vs top is which number each sort reads first: new reads the submission timestamp and nothing else, top reads the net score inside a time window you choose, and hot blends the two so that a post decays out of the listing as it ages. Reddit's own help centre confirms that shape in one line each, and stops well short of a formula.
Six sorts exist as listing endpoints in Reddit's API reference, and only four of them get any prose on the help centre.
| Sort | Endpoint | Accepts a time filter | Described in Reddit's help centre |
|---|---|---|---|
| Hot | /r/{subreddit}/hot | No t parameter, but takes a geo filter g | Yes |
| New | /r/{subreddit}/new | No | Yes |
| Top | /r/{subreddit}/top | t = hour, day, week, month, year, all | Yes |
| Rising | /r/{subreddit}/rising | No | Yes |
| Controversial | /r/{subreddit}/controversial | t = hour, day, week, month, year, all | No |
| Best | /best | No | No |
Hot is the default. Reddit's Content Recommendations article states that "Content on a community page is sorted by "hot" by default", with a per-community override available to logged-in accounts.
What does Reddit itself publish about each sort?
Four sentences, all in the Content Recommendations help article, quoted here in full:
- Hot: "This sort prioritizes recent posts that have been getting upvotes. Hot can be used if you're looking for trending topics."
- Top: "This sort prioritizes posts that have all-time high upvote numbers and comments. Top can be filtered by time as well."
- New: "This sort prioritizes the newest posts, regardless of upvotes and comments. New is best used if you're trying to see the most up-to-date information."
- Rising: "This sort prioritizes posts with the most recent views. Rising can be filtered by time as well."
Controversial gets no sentence anywhere in the help centre. Neither does /best, the endpoint that backs the logged-in home feed. For logged-out visitors the article says the Popular feed "showcases the most popular recent posts on Reddit, as determined by net upvotes", which is the only ranking signal Reddit names outright.
Where do Reddit's own pages contradict each other?
On rising, and on hot. Both contradictions are live as of September 13, 2026.
The help article says rising "can be filtered by time as well", and offers "you may only want Rising content from last week" as the example. Reddit's API reference gives /r/{subreddit}/rising these parameters and no others: after, before, count, limit, show, sr_detail. The t parameter, documented as "one of (hour, day, week, month, year, all)", belongs to /top and /controversial. There is no time filter on rising to use.
Hot is described twice, differently. The Content Recommendations article calls it "recent posts that have been getting upvotes". The search sorts article calls it "posts that have recently been getting upvotes, comments, etc." One puts the recency on the post and the other puts it on the votes, and those are not the same ordering. Reddit does not reconcile them.

What did the open-source ranking code actually compute?
Reddit's ranking code was public until the company archived the reddit-archive/reddit repository. Everything below comes from r2/r2/lib/db/_sorts.pyx and r2/r2/lib/rising.py in that archive. Reddit's current production ranking is closed source, so treat this as the last published version rather than as today's behaviour.
Hot combined the order of magnitude of the score with the submission time:
s = score(ups, downs)
order = log10(max(abs(s), 1))
seconds = date - 1134028003
return round(sign * order + seconds / 45000, 7)Two constants carry the whole design. 1134028003 is the Unix timestamp for 2005-12-08 07:46:43 UTC, roughly Reddit's launch, used as a private epoch. 45000 is 12.5 hours in seconds, so every 12.5 hours of age was worth exactly one point of log10 score. Because the score term is logarithmic, the tenth upvote moved a post as far as the next ninety did.
Controversy multiplied volume by balance:
magnitude = ups + downs
balance = float(downs) / ups if ups > downs else float(ups) / downs
return magnitude ** balanceA post at 500 up and 500 down had a balance of 1.0 and scored its full magnitude. A post at 1,000 up and 10 down had a balance near 0.01 and scored close to 1. Controversial rewarded a split vote, not a negative one.
Best, the comment sort labelled confidence in the code, took the lower bound of a Wilson score interval at z = 1.281551565545, commented in the source as "80% confidence". A comment at 2 up and 0 down loses to a comment at 40 up and 3 down, because the smaller sample has a wider interval.
RedReplier
Get Started
Reddit, X, Bluesky & HN
Real-time intent alerts
Unlimited AI replies
Ranked by buyer intent
Rising scored each link as upvotes divided by pageviews, and excluded anything at one upvote or fewer:
def score(link):
count = link_counts[link._fullname][0]
return float(link._ups) / max(count, 1)That is the one place the archived code and the current help centre broadly agree, since Reddit's description of rising is the only sort description that mentions views at all.
Which sorts take a time window?
Only top and controversial, and both take the same six values. The API reference documents t as "one of (hour, day, week, month, year, all)", and listings default to limit 25 with a maximum of 100.
That matters for anyone pulling Reddit through the API rather than the site. /top?t=all on a large subreddit returns posts from a decade ago, which is useful for finding the questions a community keeps asking and useless for spotting a thread today. /top?t=day is the one most monitoring workflows actually want.
How do comment sorts differ from post sorts?
They are a separate list with two extra members and different names. Reddit's API reference gives /r/{subreddit}/comments/{article} a sort parameter of "one of (confidence, top, new, controversial, old, random, qa, live)". confidence is the internal name for the sort the interface labels Best, and qa is the question-and-answer sort designed for AMAs.
Moderators can pin one of those for a thread through /api/set_suggested_sort, which Reddit documents with the reasoning that "casual conversation may be better sorted by new by default, or AMAs may be sorted by Q&A". A suggested sort changes what every visitor sees first, which is worth checking before you read a thread's top comment as the community consensus.

Which sort should you watch for mentions?
New, because it is the only sort with a defined ordering that does not depend on votes arriving first. A post ranks in new the instant it is submitted, and a post may never reach hot at all. Anyone monitoring a keyword for buying conversations is reading new or the API, not the front page.
Hot is the sort to watch for the opposite reason: a thread that reaches it is already past the point where a first comment gets read. That timing question is the subject of when to post on Reddit, and the score it operates on is the same one described in how Reddit karma works. Hacker News solves the same problem with a published formula rather than an archived one, which is why the Hacker News ranking algorithm can be quoted with more confidence than Reddit's.
Frequently asked questions
Does Reddit publish its hot algorithm?
No. Reddit's help centre gives hot a one-sentence description and no formula. The formula people quote comes from reddit-archive/reddit, which Reddit stopped updating in 2017.
Why do hot and top show different posts on the same subreddit?
Top orders by net score inside the window you pick and ignores age within it. Hot mixes score with submission time, so an older post with a higher score can rank below a newer post with a lower one.
What does the controversial sort actually rank?
Posts where upvotes and downvotes are close to even and the total is high. In the archived code that was total votes raised to the power of the up and down ratio, so a lopsided post scored near 1 no matter how many votes it had.
Can I filter rising by time?
No. Reddit's help centre says you can, but the API reference gives /r/{subreddit}/rising no t parameter. The two pages disagree, and the API is the one you can test.
What is the difference between hot and best?
Best is a separate endpoint, /best, that backs the personalised logged-in home feed. Reddit describes that feed as ranked by content signals, your own activity, your account age and your location setting, and gives no ranking description for /best itself.
How many posts does one sorted listing return?
25 by default and 100 at most, per Reddit's API reference. Paging further uses the after and before fullname cursors rather than an offset.
RedReplier
Get Started
Reddit, X, Bluesky & HN
Real-time intent alerts
Unlimited AI replies
Ranked by buyer intent
Why do Reddit's own help articles describe hot inconsistently?
The Content Recommendations article calls hot "recent posts that have been getting upvotes," putting the recency on the post. The search sorts article calls it "posts that have recently been getting upvotes, comments, etc.," putting the recency on the votes instead. Those describe two different orderings, and Reddit never reconciles the two pages.
Why does rising exclude posts with almost no upvotes?
The archived rising.py code kept only links above one upvote, scoring the rest as upvotes divided by pageviews. That floor keeps a single early vote from producing a score with a meaningless pageview denominator. Reddit's current rising implementation is closed source, so this rule reflects only the pre-2017 archive.
What ranks Reddit's Popular feed for logged-out visitors?
Reddit's help centre says the logged-out Popular feed "showcases the most popular recent posts on Reddit, as determined by net upvotes." That is the only ranking signal Reddit names outright anywhere in its help centre. It is a separate description from hot, top, new, or rising, and it applies only to visitors without an account.
What is the qa comment sort used for?
Reddit's API reference lists qa among the sort values for comments and never defines it. The one gloss anywhere in the reference sits under /api/set_suggested_sort, which offers "AMAs may be sorted by Q&A" as a reason a moderator would pin it. Setting it there changes what every visitor sees first. It exists only as a comment sort, never as a post listing.
See us more often in Google
One click marks RedReplier as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
RedReplier
Catch every buyer asking for what you sell
RedReplier watches Reddit, X, Bluesky and Hacker News in real time, ranks every thread by buyer intent, and drafts your reply, so you get there first.
Reddit, X, Bluesky & HN
Real-time intent alerts
Unlimited AI replies
Ranked by buyer intent
Related Articles


Only Eight Reddit Search Operators Are Officially Documented
Reddit search operators split into eight that Reddit documents and a long tail that only lives in community posts. Here is which is which, with the syntax.


Straight From the HTML: Are Reddit Links Nofollow?
Checked in live HTML: are Reddit links nofollow, what rel="noopener nofollow ugc" means, and why Google calls those attributes hints instead of directives.


The Quora vs Reddit Differences That Change How You Post
A sourced Quora vs Reddit comparison of link handling, moderation, self-promotion limits, editing, and how long each post keeps earning traffic.

