Popular subreddits have predictable cycles of virality

Ever since I started studying reddit, I’ve always wondered why the most successful posts were consistently posted around 7-8 am EST. I’ve had several theories, but until today I wasn’t able to back any of them up with real data. After gaining a better understanding of how reddit ranks posts on the front page a couple months ago, I think I’ve finally figured it out.

To get to the default front page of reddit (that most visitors to reddit see), our post needs to get to the top of one of the default subreddits. And to stand a chance of getting to the top of one of the default subreddits, our post needs to make it into the top 25 posts of one of the default subreddits. Otherwise, too few people will see and upvote it enough to push it to the top.

Of course, our post is constantly battling with other posts to have a higher hotness score so it can be ranked higher. Therefore, it behooves us to post our link when the other posts in the subreddit have the lowest hotness. In other words, we should strike when our opponents are at their weakest.

For the past couple months, I’ve been measuring the hotness of the front page of the most popular subreddits. This front page hotness score gives us a sense of how easy it will be for our new post to invade a particular subreddit’s front page. The higher the score is above 1.0, the more difficult it will be. If the score is below 1.0, then our new post will have a much easier time of getting into the subreddit’s top 25.

I’ve plotted the hotness scores by day and hour for several of the popular subreddits below.









Notice how there are predictable cycles of virality in several of the popular subreddits: In the mornings to noon EST, the front pages die down and are easier to invade. Around 2 pm EST, the front pages start to pick up again and culminate in the highest virality in the evening — just in time for the US workforce to get home and browse reddit.

It’s no wonder, then, that the most successful posts were posted around 7-8 am EST. Around that time, the popular posts from the previous day are cooling down and falling off the front page, leaving an opening for a new post on the block. If these 7-8 am posts can build up enough hotness to reach the subreddit’s top 25 by the afternoon, then they’re in prime position to get upvoted to the default front page.

Not all subreddits follow this trend (especially the more niche ones like /r/dataisbeautiful), but many of the more popular subreddits clearly show that they’re dominated by users in the North American time zones. In future posts, I’ll follow up with the hotness trends in more niche subreddits.

“Breathing” map of virality

Just for fun, I made a “breathing” map of virality for 40 of the popular subreddits. Here, each square represents a subreddit and the color of the square represents how hot the subreddit was at the given time. To make the hotness values comparable between subreddits, I normalized each subreddit’s hotness scores by the average hotness score for the subreddit. Also, to make this video a little more grandiose, each of the 40 subreddits I’m visualizing are actually copied 40 times into random locations on the grid, making for a total of 1,600 tiles.

Red = hotter; blue = colder


I ran a bot between March 23, 2014 through May 11, 2014 that checked the hotness of the front page of several of reddit’s most popular subreddits every hour. To determine the hotness of a subreddit’s front page, I first computed and summed the hotness of each post in the subreddit’s current 25 hottest posts. I then divided the subreddit’s summed hotness by the summed hotness of 25 new posts with no upvotes, which is the score I plotted above.

The summed hotness of 25 new posts with no upvotes provides a “baseline hotness” where a new post with no additional upvotes would not be able to immediately reach the subreddit’s front page. Therefore, new posts in subreddits with a hotness score >= 1.0 will not start on the front page of the subreddit. In contrast, new posts in subreddits with a hotness score < 1.0 are much more likely to make it onto the subreddit's front page. Note the score's small scale; small increases or decreases of the score have a large effect!

Dr. Randy Olson is a Senior Data Scientist at the University of Pennsylvania, where he develops state-of-the-art machine learning algorithms with a focus on biomedical applications.

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