The window of virality on Reddit

Have you ever wondered why most of the posts on Reddit’s front page are less than 12 hours old? Or why a post with a score of 4,000 is ranked below 3,000 score post? It all has to do with Reddit’s window of virality.

Each post on Reddit has a score attached to it: score = upvotes – downvotes. Reddit’s “hotness” algorithm uses this score in combination with the post’s age to rank every single post on Reddit.

Amir Salihefendic wrote a fantastic post explaining the nitty gritty of how Reddit’s hotness algorithm works, so I won’t bother repeating that here. Instead, I’ll jump right into the visualization showing us Reddit’s window of virality.

The y-axis indicates the post’s current score; the higher up, the higher the post’s score. The x-axis indicates the post’s current age; the more to the right, the older the post is. The color indicates the post’s “hotness” or virality, with darker shades of red for viral posts and darker shades of blue for posts that don’t stand a chance of getting to Reddit’s front page.

Reddit post hotness by score and age

I labeled the dark blue region as “dead” because posts in these regions have the same hotness as a newly submitted post with no upvotes. If our post can be outranked by a post that hasn’t even been voted on yet, it doesn’t stand a chance of making the front page.

Immediately, we see why posts older than 12 hours are such a rarity on Reddit’s front page: A 12-hour-old post needs roughly 3x the score to match the hotness of a 6-hour-old post! 18- and 24-hour-old posts don’t even stand a chance on the front page unless it’s President Obama holding an AMA. Clearly, the life of a viral post on Reddit is short — so if you make it to the front page, enjoy your precious few hours in the spotlight.

It’s no surprise then that time plays such a huge role in the success of a Reddit post. If the first 6 hours of a post’s life are the most crucial for going viral on Reddit, none of that time can be wasted sitting around when no one’s online.

In the end, all posts must die. As we see in the top right of this graph, even the most high-scoring posts will be ouranked by a new post with no upvotes at all by the end of their second day of life. Reddit’s front page is constantly evolving, and 2-day-old news is just so yesterday.

There’s of course an important addendum here: This classification really only applies to Reddit’s front page, but not individual subreddit pages. If we take a stroll down any of the smaller, non-default subreddits, we’ll see plenty of older, sub-500 score posts that are still on the front page of the subreddit. That just means it’s easier to get on the front page of the individual subreddits — but that’s a topic for a future post!

Randy is a PhD candidate in Michigan State University's Computer Science program. As a member of Dr. Chris Adami's research lab, he studies biologically-inspired artificial intelligence and evolutionary processes.

Posted in analysis, data visualization, reddit Tagged with: , , , ,

About this blog

The data visualizations on this blog are the result of my “data tinkering” hobby, where I tackle a new data analysis problem every week. If I find something interesting, I report my findings here to share with the world.

If you would like to use one of my graphs on your website or in a publication, please email me.


Enter your email address to subscribe to this blog and receive notifications of new posts by email.