How many Reddit upvotes do you need to hit hot? (per-subreddit velocity table)
Minimum upvote velocity to land on hot, by subreddit archetype. Niche, mid, large, and r/popular thresholds with the first-hour math operators run.
Minimum upvote velocity to land on hot, by subreddit archetype. Niche, mid, large, and r/popular thresholds with the first-hour math operators run.
The number of upvotes needed to hit hot is a function of subreddit size, hour of day, and how fast votes arrive, never a fixed score.
Niche subs (under ~50k members) hit hot on 15–40 upvotes if they land in the first 60 minutes; mega-subs (1M+) need 1,000–10,000 upvotes at velocity.
Reddit's hot sort is
log10(score) + seconds/45000, so every 12.5 hours of age cancels exactly one 10× score advantage. A late vote is a discounted vote.r/popular is a separate filter on top of hot: NSFW and excluded subs are stripped, so a sub's hot doesn't always carry into Reddit's site-wide front page.
Signals runs an aged Reddit account marketplace plus an editorial network for AI brand mentions across Reddit, Quora, Product Hunt, and Threads. Every campaign we ship is paced against the velocity windows below.
The "how many upvotes do I need to hit hot" question is the wrong question, and we hear it every week. There is no single number, because the hot sort is a race, not a threshold. A 25-upvote post in the first 30 minutes will outrank a 250-upvote post that took six hours to crawl there, in the exact same subreddit. The right question is "how many upvotes per hour, and against which subreddit's neighbors."
We have run thousands of Reddit campaigns since 2017, and every campaign we pace is calibrated against two numbers: subreddit archetype (niche, mid, large, mega) and the time-of-day vote curve. This piece gives you the table, the math, and the decision tree. Signals runs an aged Reddit account marketplace plus an editorial network for AI brand mentions across Reddit, Quora, Product Hunt, and Threads, and we keep this data current because our delivery protocols depend on it.
15–40 (Operator data, Signals 2026) Upvotes to hit hot in a niche sub (under ~50k members) inside the first 60 minutes.
44% (MediaFast 2026) Share of posts that reached r/all after hitting 25 upvotes within 20 minutes.
6% (MediaFast 2026) Share of posts that reached r/all after taking longer than an hour to hit 25 upvotes.
12.5h (reddit-archive _sorts.pyx) Age penalty per log10 step. Every 12.5 hours of age cancels a 10× score lead.
Why the answer is "it depends": the hot formula in one line
The hot score from Reddit's archived _sorts.pyx is one expression: sign(score) * log10(max(abs(score), 1)) + seconds/45000. Score is ups - downs, seconds is submission time minus the December 8, 2005 epoch. Every 45,000 seconds (12.5 hours) of age adds exactly +1 to the order term, and every 10× jump in score adds the same +1. That is why a niche sub with three new posts an hour and a mega-sub with three hundred new posts an hour produce wildly different "hit hot" numbers despite running the same formula.
The hot table that follows is not arbitrary. It is the score you need to keep your log10 term ahead of the time penalty long enough to survive the surrounding hour's competition. Front-load the velocity, win the slot. Spread it over six hours, and the math has already deducted half a log-step before your last vote lands.
The per-subreddit velocity table (hit-hot thresholds by archetype)
The table below is what we plan against when sizing a campaign. Subreddit archetype is the dominant variable: bigger subs see more new posts per hour, so the "neighbors" your post is competing against on hot have higher scores, and your log10 term needs to be larger. Hour of day shifts the curve up or down by ~30%; weekends shift mega-subs more than niche subs.
| Archetype | Member range | Posts / hour at peak | Upvotes to hit hot top 25 (first 60 min) | Upvotes to hit sub front page (top 5) |
|---|---|---|---|---|
| Niche | < 50k | 1–5 | 15–40 | 30–80 |
| Small-to-mid | 50k–250k | 5–15 | 40–120 | 100–250 |
| Mid | 250k–1M | 15–60 | 100–300 | 250–600 |
| Large | 1M–5M | 60–200 | 300–1,000 | 800–2,500 |
| Mega | 5M+ | 200–600 | 1,000–10,000 | 5,000–25,000 |
| r/popular | site-wide | n/a | 1,000–5,000+ (depends on hour) | 5,000–20,000+ with cross-subreddit appeal |
Sources: Signals operations data, GummySearch r/SaaS public stats (677k members, March 2026), MediaFast's 2026 first-hour study, Reddit Help on r/popular's qualified-subreddit filter. Treat the ranges as 60th–90th-percentile bands per archetype, not floors. A sub running a controversial day or a sticky takeover can shift the bottom of its band 2× either direction.
Why the first 60 minutes set the ceiling
Posts that crossed 25 upvotes within 20 minutes reached r/all 44% of the time in MediaFast's 2026 cohort; posts that took longer than an hour to clear the same 25 upvotes hit r/all only 6% of the time. The asymmetry is not behavioral; it is the formula. After 60 minutes, the time term has already accumulated 60 * 60 / 45000 = 0.08 of a log-step, which on a still-tiny score is the difference between rank 4 and rank 18.
This is why we treat the first hour as a one-way fuse. If a campaign cannot deliver enough early velocity to clear the niche-or-mid threshold within 30–60 minutes, it will not "catch up" later; the math literally subtracts faster than late votes can add. Our Reddit 12.5-hour time decay rule breakdown walks through the underlying constant; this piece is its operator-grade output.
How subreddit size changes the math
In a niche sub with three new posts per hour, your post is competing against two or three score-3 posts. A clean 20-upvote post locks log10(20) = 1.30, well ahead of a log10(3) = 0.48 neighbor with similar age. In a mega-sub with 300 new posts per hour, the score-1,000 post next to you has a log10(1,000) = 3.00 order term; your log10(20) is buried two log-steps below the floor, and no amount of late vote drips will close that gap before the hot page rotates.
The implication is operator-actionable. Pick the smallest sub where your audience genuinely lives. r/SaaS at 677k members (per GummySearch) is a "mid" archetype where 100–300 first-hour upvotes lock hot for half a day. r/Entrepreneur at ~5M members is "mega"; the same 100 upvotes barely register on its hot page. Choosing the right archetype is a 5–10× efficiency gain on every campaign we have ever run.
What about r/popular and r/all?
r/popular is a filter on top of hot, not a separate ranking. Reddit Help's own definition: r/popular shows posts trending across communities but excludes NSFW subs, opted-out subs, and Reddit's hand-curated exclusion list (large gaming subs, sports, narrowly political subs). r/all is the broader, less-filtered feed that explicit users can still access. To land on r/popular you need to be hitting hot inside a qualified sub and earning cross-subreddit appeal, with votes from accounts active in unrelated subs.
Reddit's recommendation system explicitly rewards diverse-interest upvotes for r/all and r/popular promotion. A 1,000-upvote post inside r/SaaS with all votes from SaaS-adjacent accounts may never reach r/popular; a 600-upvote post with votes from r/SaaS, r/marketing, r/Entrepreneur, and r/personalfinance often does. This is also why bot-flat upvote drops rarely hit r/popular: the upvoting accounts have no diverse-subreddit history.
What "hit hot" actually means in 2026 (Best, hot, rising)
Reddit's mobile home feed defaults to Best (the personalized ML sort that rolled out in 2020). But subreddit hot pages, the /.json endpoints, and the per-sub rails inside Reddit's app all still use the classic hot formula. Your post needs to win on hot first; Best can only amplify a post the per-sub hot signal already validated.
Rising matters more for niche and small-to-mid subs. Rising surfaces posts gaining upvotes faster than the sub's normal new-post baseline. In a niche sub seeing 5–10 upvotes/hour as typical baseline, a post pulling 20–30 upvotes in its first 30 minutes will hit Rising, and Rising is where moderators and engaged users hunt for new content, which feeds the snowball into hot. For sub-50k subs we plan against Rising thresholds, not hot thresholds, because Rising is the gateway.
Why bot-pattern upvote drops fail this math
The hot formula is unforgiving for two reasons most cheap upvote services ignore. First, the log10 saturation: 50 upvotes in 30 minutes is a stronger hot signal than 200 upvotes in 4 hours, because the late votes are working against accumulated time penalty. Second, vote fuzzing absorbs flat 20-account drops: Reddit's anti-manipulation layer rolls back cluster-vote patterns before they reach the score, so the visible counter rises but the order term does not.
Both failures are pacing problems. A drip pattern that looks like organic velocity, front-loaded inside the first 60 minutes, tapered through hours 2–3, with the upvoting accounts active in adjacent subs, clears both filters. Anything that arrives as a single spike in hour 6, or arrives from accounts with zero subreddit-diversity history, registers as a fuzzed event and the order term ignores it.
The operator decision tree (which archetype, which hour, how many votes)
Run this in order before sizing a campaign:
Archetype check. Is the target sub niche (< 50k), small-to-mid (50k–250k), mid (250k–1M), large (1M–5M), or mega (5M+)? The table above gives the band.
Hour-of-day check. Look at the sub's hot page right now. Are the top 5 posts averaging score 50, 200, or 1,000? Your post needs to clear that cohort's log10 within 60 minutes.
Audience overlap check. If your goal includes r/popular or r/all, you need cross-subreddit voting accounts, not flat in-niche accounts.
Velocity shape. Plan 60% of votes in the first 30 minutes, 30% in minutes 30–90, 10% in hours 2–3. Anything later is paying full cost for fractional log10 benefit.
Backup plan. If you cannot stack enough first-hour votes, do not "rescue" the post in hour 6. Resubmit after 24 hours with a different angle. Our Reddit algorithm primer covers the resubmission cadence.
If you want a deeper price-tier breakdown of how upvote campaigns are sized against this math, our how much do Reddit upvotes cost in 2026 piece has the per-subreddit price ladder. The cost-per-retained-vote ratio is dominated by whether the velocity shape clears the formula or not.
Cost framing: what an operator actually pays per "hot" landing
A niche-sub hot landing usually costs $5–$15 in pacing infrastructure (votes, scheduling, account warmth). A mid-sub hot landing runs $40–$120 when paced correctly, and 2–3× that when paced badly. A mega-sub hot landing inside the first hour ranges from $200 to $600 depending on the velocity shape and account diversity required to survive vote fuzzing. r/popular is a different cost class entirely; you are not buying hot, you are buying diverse-subreddit upvote signal layered on top of hot.
The operator move is to never pay for "more upvotes" past the archetype band. Buying 1,000 upvotes for a 200k-member sub when 200 first-hour votes would have locked hot is wasted spend, and the marginal votes get fuzzed because they no longer match organic velocity. The right size is "enough to clear the band, paced to mirror organic." Anything beyond that is overpaying for a number that the order term already saturated.
Who this is for
Founders running their own subreddit launches, marketers measuring whether a campaign actually moved the hot needle, and creators trying to understand why a post with 400 upvotes never appeared on r/popular while a competitor's 200-upvote post did. If you are at week 3 of running Reddit campaigns and the gap between "post got upvotes" and "post got visibility" is confusing, this table is what you measure against.
It is not for first-time Reddit users who have not yet dealt with AutoMod, contributor quality score, or shadowbans. Those are upstream filters that decide whether your post even gets a fair shot at hot. If you are landing zero upvotes and suspect filtering, start with our shadowban detection guide on how to check if you're shadowbanned on Reddit, then come back to this table when the upstream filters are clear.
FAQ
For a niche subreddit under ~50k members, 15–40 upvotes inside the first 60 minutes will land you on hot's top 25 in most cases. The exact number depends on how many other posts arrived that hour. Use the sub's current hot page as a calibration: your log10 score needs to clear the median of the top 5 within 60 minutes to lock the slot.
There is no single number. r/popular requires you to be on hot inside a qualified subreddit (NSFW, opt-out, and the hand-excluded sub list are filtered out), AND to earn cross-subreddit upvote diversity. Practical bands: 1,000–5,000+ upvotes in a mid-to-large sub with votes coming from accounts active in unrelated subs. A flat 1,000 upvotes from in-niche accounts often will not promote.
Almost always pacing. 500 upvotes spread over 12 hours produces a log10(500) = 2.70 order term against a 6+ hour age penalty of +0.48, net +2.22. A neighboring post with 100 upvotes in its first hour has log10(100) = 2.00 minus +0.08 of age, net +1.92. The 500-upvote post barely outranks the 100-upvote post, and on the next refresh, it will lose. Velocity beats volume.
Yes, materially. Most subreddits see ~30% more new posts during their peak hours, which raises the hot threshold by the same margin. For US-business-hours subs (r/SaaS, r/Entrepreneur, r/marketing) the 9–11 AM EST window is the highest-bar hour. Posting at 7–8 AM EST so your first 60 minutes line up with the audience climb is the standard operator move.
No. Rising surfaces posts gaining votes faster than the sub's normal baseline; thresholds there are 30–50% lower than hot. In niche subs (< 50k) Rising is the actual gateway: hitting Rising at minute 15–30 reliably feeds into hot at minute 45–60. We plan campaigns against Rising thresholds for any sub under 100k members.
Often no. Reddit's vote fuzzing layer rolls back cluster patterns, many votes from accounts with similar histories arriving within a tight window, before the score updates the order term. The visible counter may rise; the hot rank does not. A correctly-paced organic-shape drop (front-loaded, account-diversified) clears both fuzzing and the formula. A flat 100-vote spike from low-diversity accounts in hour 4 typically does neither.
Every 12.5 hours of age adds +1 to the time term in the hot formula. To offset that with score, you need 10× more upvotes than a competing post that posted 12.5 hours later. A 12-hour-old post needs roughly 10× the upvotes of a brand-new post to hold the same rank; a 24-hour-old post needs 100×. This is why "hit hot in the first hour" is not a tactic; it is the only window where votes carry more weight than the decay they have already absorbed.