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!

Dr. Randy Olson is a postdoctoral researcher at the University of Pennsylvania. As a member of Prof. Jason H. Moore's research lab, he studies biologically-inspired AI and its applications to biomedical problems.

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

About this blog

This blog is my labor of love, and I've spent hundreds of hours working on the projects that you'll read about here. Generally, I write about data visualization and machine learning, and sometimes explore out-of-the-box projects at the intersection of the two. I hope you enjoy my projects as much as I have.

If you would like to use one of my graphs on your website or in a publication, please feel free to do so with appropriate attribution, but I would appreciate it if you email me first to let me know.



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