Free calculator, no signup
Short answer: a Reddit score is upvotes minus downvotes. Enter the score and the upvote ratio, and 500 points at 96% becomes 522 up and 22 down.
upvotes = ratio x score / (2 x ratio - 1)Where to Find the Upvote Ratio
Old Reddit: open the post on old.reddit.com and look at the sidebar on the right. It reads like "500 points (96% upvoted)".
Post JSON: add .json to the end of the post URL and find the upvote_ratio field. 0.96 means 96%.
Your own posts: the post insights panel shows the author an upvote rate once the post has a few views.
522 upvotes + 22 downvotes = total votes cast on this post
The displayed score on the post, which is upvotes minus downvotes
Almost universally positive. Very few people disagreed with this post. This is typical for highly useful content, guides, or widely appreciated posts.
A 96% ratio (controversy score 8/100) means the community liked what you posted. Keep producing this type of content. Posts like this build trust and karma over time, making future posts more visible.
Plan Your Next 96% PostEnter your website and MediaFast builds a sample Reddit plan: subreddits hand-picked from 4,200+, a rule-aware draft, and when to post.
See when upvote ratios tend to run highest, plus weekly tips for getting more upvotes on your posts. No spam, unsubscribe anytime.
Free. No spam. Unsubscribe in one click.
Upvote ratio calculator, reverse mode
Type upvotes and downvotes from post insights, a dataset or a screenshot. Get the ratio and the score Reddit would show.
Upvote ratio from vote counts
Ratio = upvotes ÷ (upvotes + downvotes). Reddit rounds the ratio it shows to a whole percent, so a post with 180 up and 20 down displays as 90% upvoted with a score of 160.
Where the two numbers live
Reddit shows the score everywhere and the ratio in only a few places.
What I learned from 30 days of posting our changelog on Reddit
submitted 6 hours ago by example_founder to r/SaaS
this post was submitted 6 hours ago
500 points (96% upvoted)
shortlink: redd.it/xxxxxx
2"score": 500, "upvote_ratio": 0.96Illustrative mockup, not a real post
The score
The number between the arrows: upvotes minus downvotes.
The ratio, old Reddit
The old.reddit.com sidebar prints it next to the score, like 96% upvoted.
The ratio, JSON
Add .json to the post URL and read upvote_ratio. 0.96 means 96%.
| Where | Score | Upvote ratio | Who sees it |
|---|---|---|---|
| old.reddit.com sidebar | Yes | % upvoted | Anyone |
| Post URL + .json | score | upvote_ratio | Anyone |
| Post insights | Yes | upvote rate | Poster and mods |
| Current reddit.com and apps | Yes | usually hidden | Anyone |
Read the score
Copy the number between the vote arrows. It is upvotes minus downvotes.
Find the upvote ratio
Check the old.reddit.com sidebar, or add .json to the post URL and read upvote_ratio.
Enter both numbers
The calculator solves upvotes = ratio x score / (2 x ratio - 1).
Read the split
Downvotes are upvotes minus the score. Add both for total votes cast.
Post insights details from Social Media Today's report on creator stats. Layout checked October 2026.
The formula, step by step
Two facts about every post, one line of algebra.
What Reddit shows
score = up - downThe number on the post is the net result.
What the ratio means
ratio = up ÷ (up + down)96% means 96 of every 100 votes were up.
Solve for upvotes
up = ratio × score ÷ (2 × ratio - 1)Then down = up - score.
500 at 96%A room that agrees
A clean, well-liked post. The calculator's default.
500 at 70%Same 500, a heated room
Same score, twice the voters. A heated thread behind a modest number.
3,000 at 55%A huge crowd, split down the middle
A small visible score on top of a huge, divided crowd.
| Post | Upvotes | Downvotes | Votes | Controversy | What it tells you |
|---|---|---|---|---|---|
| 500 at 96% | 522 | 22 | 544 | 8/100 | A clean, well-liked post. The calculator's default. |
| 500 at 70% | 875 | 375 | 1,250 | 60/100 | Same score, twice the voters. A heated thread behind a modest number. |
| 1,200 at 88% | 1,389 | 189 | 1,578 | 24/100 | A strong post in a mid-size subreddit with some pushback. |
| 40 at 62% | 103 | 63 | 166 | 76/100 | Looks like a flop, yet 166 people voted. The topic split the room. |
| 3,000 at 55% | 16,500 | 13,500 | 30,000 | 90/100 | A small visible score on top of a huge, divided crowd. |
| 12 at 100% | 12 | 0 | 12 | 0/100 | No downvotes, so score and upvotes match. |
Illustrative inputs, not real posts. Rounded to whole votes, like the calculator.
Same score, different crowds
Every post below shows a score of 500. The upvote ratio decides how many people voted.
Bar length is total votes cast. Computed with the calculator's formula, rounded to whole votes.
The solid line is the best estimate, the soft band is every upvote count the rounded ratio allows. Before fuzzing.
Rule of thumb: above 90% the estimate is tight enough to quote. Near 55% rounding moves it by thousands, so give a range.
Reddit never shows exact vote counts. Here is why, and how to read what it does show.
Score is not upvotes
Both posts show 500. The score alone says nothing about how many people voted.
Fuzzing hides the exact split
Reddit adds noise so spammers can't tell if their votes counted. Small changes between loads are normal.
Volume says more than score
1,000 votes at 55% sparked more discussion than 100 at 99%. MediaFast finds the threads where that discussion happens, you write the replies.
Reddit voting explained
Five bands, from rejected to loved, read straight from how the ratio is defined.
A reading guide from how the ratio is defined, not an official Reddit scale. Compare posts inside the same subreddit when you can.
How many upvotes to hit Hot
Hot ranks by log10 of net score plus credit for being newer. You chase the post in the slot above you, not a fixed number.

Hot slot target
120
Your post is 5 hours newer, so it needs fewer points than the 300 the older post has. Based on the archived open-source Hot formula. Today's feeds add personalization on top, so treat this as a baseline.
order = log10(max(abs(score), 1))
sign = 1 if score > 0, -1 if score < 0, else 0
seconds = post_time - 1134028003
hot = round(sign * order + seconds / 45000, 7)From _sorts.pyx in the reddit-archive repository. 45,000 seconds is 12.5 hours.
Multiplier = 10 to the power of (hours ÷ 12.5), from the archived Hot formula. A baseline, not a promise about today's personalized feeds.
50 net upvotes posted 5.5 hours later beats 100, because 5.5 hours of freshness is worth about a 2.8x score edge.
Score tier reference
Hot takes log10 of net score before weighing it against age. Formula math, not a front-page guarantee.

Each step is a 10x jump in net score for the same +1 of ranking weight.
Best ranks comments by a Wilson score interval at 80% confidence, not a simple up to down average.
View the source codeIn Hot, the first 10 upvotes weigh the same as the next 100, then the next 1,000.
View the breakdown"The first 10 upvotes have the same weight as the next 100 upvotes which have the same weight as the next 1000."
Amir Salihefendic, "How Reddit ranking algorithms work" (2015)
Tiers derived from Reddit's archived sorting code and Amir Salihefendic's breakdown of Reddit's ranking algorithms.
Controversial sort, worked out
Reddit's archived formula raises total votes to the power of how evenly they split.
First bar is the up/down split, second bar is the controversy score on a log scale. Illustrative inputs, rounded to one decimal.
magnitude = ups + downs
balance = minority / majority
score = magnitude ** balanceFrom _sorts.pyx. The calculator's 0 to 100 controversy score reads one post, this formula explains the tab.
Which sort you are looking at changes what score and ratio mean.
| If you want | Check | Why |
|---|---|---|
| What is trending right now | Hot | Age counts, so an hour-old post can outrank yesterday's bigger one. |
| The highest scoring posts | Top + time filter | Ignores age and sorts on net score. |
| Divisive threads | Controversial | Surfaces big, closely split posts on purpose. |
| What was just posted | New | A timestamp sort, no score or age weighting. |
| To judge a comment thread | Best | Wilson score: 5 up and 0 down can rank above 100 up and 40 down. |
| To explain a low ratio for its score | the topic first | Suspect brigading or a divisive topic before calling the content bad. |
| To compare posts across subreddits | ratio + total votes | Subreddit size swings raw score by orders of magnitude. |
Searching for free upvotes?
This tool reads numbers, it never adds votes. Here is what happens to bought or bot votes.
Bot or bought votes land
Fuzzing exists so cheaters can't check whether fake votes counted. Filtered votes do nothing for the post.
It breaks Rule 2
Reddit's Rule 2 lists vote manipulation as content manipulation, next to spam and ban evasion.
The account takes the hit
Posts removed, accounts suspended, links to the domain blocked. A burned domain is hard to bring back.
Fit the subreddit's rules, post when it is awake, reply to every early comment. See buying Reddit upvotes for the risks and why your post isn't getting upvotes for the fixes.
Promoting a product? MediaFast finds the subreddits that fit and tells you when to post.
Get more upvotes the clean waySame +1 of log10 weight in the archived Hot formula.
Why the numbers look the way they do
A few public decisions explain why any calculator can only estimate.
Up and down counts replaced by a percentage
The Daily Dot, June 2014Authors get an upvote rate in post insights
Social Media Today, March 2022Up and down counts replaced by a percentage. Reddit dropped separate up and down numbers in June 2014. Admin Chad Birch said accurate counts would expose anti-cheating systems.
Scores rebuilt to show real participation. Admin KeyserSosa: if 50,000 people upvoted something, the score should reflect it. Big posts jumped overnight.
Ranking code stops being public. Reddit archived its public repositories. The Hot, Controversial and Best formulas here are the last documented version, not today's personalized feeds.
Authors get an upvote rate in post insights. Creator stats came back on desktop: the poster and mods see views, upvote rate, karma earned and shares. Everyone else sees the score.
More on 2017: BetaNews on Reddit ending open-source updates. Any tool claiming the exact upvotes for today's front page is guessing.
| Mistake | Wrong read | Right read |
|---|---|---|
| Reading the score as total upvotes | 500 points means 500 upvotes. | 500 is net score. Split it with the ratio. |
| Low ratio means bad content | 60% upvoted, so the post flopped. | The controversy code surfaces big split threads on purpose. Check the topic. |
| Comparing scores across subreddit sizes | 2,000 in a giant sub beats 200 in a niche one. | Compare ratio and total votes. Hot log10s the score anyway. |
| Quoting one exact number | Exactly 875 upvotes at 70%. | 860 to 891 upvotes. Quote a range below 80%. |
| Chasing raw upvotes on comments | The most upvoted comment is the best one. | Best uses the Wilson lower bound. A clean small ratio can rank higher. |
| Confusing Hot and Top | Gone from Hot means it flopped. | Hot decays with age, Top does not. It can still sit near the top of Top. |
| Term | Meaning |
|---|---|
| Score | Net number on a post or comment, upvotes minus downvotes. |
| Upvote ratio | Share of votes that were upvotes, upvote_ratio in post JSON. |
| Upvote rate | The same idea, shown to the author in post insights. |
| Vote fuzzing | Noise Reddit adds to displayed votes to deter manipulation. |
| Hot sort | Log10 of net score plus credit for being newer. |
| Top sort | Net score inside a time window, no age decay. |
| Controversial sort | Surfaces posts with many votes split close to evenly. |
| Best sort | Comments ranked by the Wilson score lower bound. |
| Karma | A user's running total across posts and comments. |
| 45,000 seconds | The 12.5 hour Hot constant, worth one 10x jump in score. |
Client-side math. Nothing is fetched, no login, nothing stored.
Fuzzing and whole-percent rounding are baked into what Reddit shows.
Votes keep coming and fuzzing moves the numbers. Re-enter them.
The split was close to even. Opinion posts often bring more comments.
Upvotes that turned into users
A good ratio is a signal the community trusts you. Here is what that trust turned into for a few founders.
13 answers on upvote ratios, downvotes, vote fuzzing and what it takes to hit Hot.
Take the post score and the upvote ratio as a decimal and use upvotes = ratio x score / (2 x ratio - 1). Downvotes are upvotes minus the score. A 500 point post at 96% works out to about 522 upvotes and 22 downvotes, 544 votes in total. The calculator at the top of this page does it for you.
It is the share of all votes on a post that were upvotes. 96% upvoted means 96 of every 100 votes were up and 4 were down. It tells you how the room felt, while the score tells you the net result.
Reddit does not show downvote counts on posts. You can estimate them: read the score and the upvote ratio (old.reddit.com sidebar, or upvote_ratio in the post's .json), enter both into the calculator, and it returns the downvotes. On your own posts, the post insights panel shows you an upvote rate as well.
Anything from 85% up is well received, and 95% or more means almost nobody downvoted. 70 to 85% shows noticeable pushback, 50 to 70% means the room is split, and below 50% the post got more downvotes than upvotes. These bands follow from how the ratio is defined, not from an official Reddit benchmark, and heated topics sit lower even when the post is good.
No. Reddit shows an upvote ratio for posts, not for comments. A comment only shows its net score, and Reddit's API exposes upvote_ratio on posts (submissions) only, so the real up and down split of a comment cannot be worked out from public numbers. This calculator works on posts.
No. On old.reddit.com the sidebar of any post shows the % upvoted, and adding .json to the end of a post URL returns the upvote_ratio field. Both work in a normal browser with nothing to install. The current reddit.com site and the apps show only the score, and posters and mods also see an upvote rate in post insights.
Divide upvotes by total votes. 180 up and 20 down is 180 / 200 = 90%, and the score Reddit would show is 160. The reverse mode tool under the main calculator does this instantly.
Vote fuzzing is noise Reddit adds to displayed vote numbers so spammers cannot tell whether their votes counted. The net score stays roughly right, but the exact up and down counts are hidden. That is why any calculator, this one included, gives an estimate rather than an exact count.
The math is exact for the two numbers you enter. The limits come from Reddit: the ratio is rounded to a whole percent and the score is fuzzed. For a 500 point post at 96%, rounding alone allows anything from about 519 to 525 upvotes. Low ratios widen the range, so 500 at 70% could be anywhere from about 860 to 891 upvotes.
There is no fixed number. In Reddit's archived open-source Hot formula, a post needs a higher value than the post holding the slot, and that value is log10 of net score plus credit for being newer. Every 12.5 hours of age difference equals a 10x difference in net score, so a post 6 hours newer needs roughly a third of the older post's score to tie it. Today's feeds are personalized, so treat this as a baseline.
In June 2014 Reddit replaced the separate up and down counts with a percentage, because the old numbers were fuzzed and misleading. In December 2016 Reddit changed its vote counting so large posts show scores closer to their real participation, with scores over 10,000 shown in k. Separate up and down counts have not come back.
No. Reddit's rules list vote manipulation as content manipulation, and votes from bots, vote rings or bought accounts put the posting account and the domain at risk. This calculator only reads numbers you type in, it never adds votes. To earn real upvotes, fit the subreddit's rules and post when the community is awake.
This calculator's controversy score is a simple 0 to 100 measure of how close a ratio is to 50/50. Reddit's archived Controversial sort raises total votes to the power of minority votes divided by majority votes, so it also rewards volume. A 5,000 up and 4,000 down post scores far higher on Reddit's formula than a 100 up and 90 down post, even though both are closely split.
Enter your website and MediaFast builds a sample Reddit plan: subreddits hand-picked from 4,200+ that fit you, a rule-aware draft, and when each one is awake.
Free live demo with your own website, no signup.
