TL;DR
- HN virality is not just “good post gets upvotes.” Visibility, ranking, timing, and moderation all interact.
- I treated virality as reaching the Top 10 within 72 hours, then looked at the process through trajectory patterns, page exposure, and submission timing.
- The results suggest that page exposure and timing matter, but the causal interpretation only makes sense under the assumptions I made.
This is a light version of the analysis. The full report with model details is here.1
The Naive Question
When a post goes viral on Hacker News, is it just because the post was good?
Intuitively, I did not think so. You can feel it just by using HN. The first page shows the top 30 stories, and even if I only open the ones that look interesting, that already takes time. If I also read the information-rich comment threads and debates that make HN valuable, it is hard to move on to page 2. So page 1 and page 2 should have very different exposure, and it is natural to expect a rich-get-richer effect where popular posts become even more popular because they are already visible.
One practical way HN limits this rich-get-richer dynamic is by making ranking depend on time as well as upvotes. The official FAQ describes the basic ranking logic as points discounted by a function of how long ago the story was submitted, and Ken Shirriff’s reverse engineering gives a commonly referenced approximation with post age in the denominator.23 That means ranking is not just a record of total popularity. It is a moving surface where recent posts with enough early votes can rise quickly, and where old posts keep losing visibility unless they continue to attract attention.
This is why I thought virality had to be studied as a process, not as a static property of a post.
What I Mean by Viral
For this analysis, I defined a viral post as one that reaches the Top 10 within 72 hours after submission.
The definition was heuristic. My working hypothesis was that a post first needs to enter the Top 30 quickly enough to secure meaningful exposure. After that, if the content is good enough and keeps receiving feedback, it can climb into the Top 10.
On HN, a submitted story can get visibility through roughly three channels. First, it can reach the main page, which means entering the Top 30. Second, it can be seen on the new page, where newly submitted stories appear. Third, it can get a second-chance boost from moderators, where an overlooked high-quality submission is brought back into view.4
For a brand-new post, the new page is the default path to initial attention. But HN receives about 1,000 story submissions per day in my April 2026 data, so the first page of /newest is short-lived. With 30 slots and roughly that submission volume, a story can fall off the first new page in well under an hour. If it has not gathered enough early attention by then, its chance of entering the main page gets much smaller.
I did not model the moderator second-chance path as a causal mechanism here, because it is precisely the kind of intervention I cannot observe directly or explain from public event data alone. So I focused on the path I can observe most clearly, where a post gets early attention, reaches the main page, gains more exposure, and may eventually reach the Top 10.
Given that hypothesis and HN’s structure, defining virality as reaching the Top 10 within 72 hours was a practical choice. It captures posts that did not merely appear on HN, but got enough early exposure and sustained attention to become part of the main conversation.
The Data and Causal Frame
The analysis uses data I collected during April 2026 from repeated Hacker News API snapshots. Instead of looking only at final scores, I reconstructed how posts moved through ranks and accumulated upvotes over time. HN does not expose impressions or view counts, so I treated upvotes as a rough proxy for attention.
Before fitting any model, I needed a causal story for how virality might happen. Submission timing, author reputation, topic, and title can all affect early attention. Early attention and the competitive environment can affect whether a post reaches the Top 30. Once a post reaches the main page, extra visibility can affect future upvotes and eventually the chance of reaching the Top 10. Moderation can also intervene, but that part is not directly observed in public API data.

Figure 1. The causal story I used to organize the analysis.
This DAG is not the truth. It is the assumption I used to make the rest of the analysis explicit. From there, the analysis follows three questions in order.
RQ1: Trajectory Regimes
The first question was not whether page 1 creates more upvotes. Before that, I had to ask whether HN posts even move through the ranking system in the same way.
They do not. Some posts climb gradually as their upvotes grow. Some appear much higher than their early upvotes would suggest. Others drop faster than their upvote history would predict. If I mix all of these together, I might mistake moderation, penalties, or other hidden ranking behavior for a normal exposure effect.

Figure 2. Organic, boosted, and penalized trajectory examples.
So RQ1 in the paper is a filtering step. I used early rank-vote consistency to classify posts into organic, boosted, penalized, or uncertain trajectory regimes. Organic means the observed rank roughly matches what a simple vote-and-age ranking proxy would expect. Boosted means the post appears surprisingly high. Penalized means the post appears surprisingly low.
These are not verified moderator labels. They are heuristic trajectory types. The point was to isolate a plausibly organic subset before asking causal questions about exposure and timing.
RQ2: Exposure Feedback
After filtering to organic posts, the next question was whether main-page exposure changes the rate at which a post receives upvotes.
A naive comparison would be misleading. Posts on page 1 are probably better, more interesting, or luckier than posts on page 2. The paper therefore uses a more local comparison near the Top 30 boundary. Ranks 21 to 30 are treated as main-page exposure, and ranks 31 to 40 are the nearby comparison band.
Even then, near-miss posts are not enough. Posts that cross into the Top 30 already look stronger than posts that reach ranks 31 to 40 and never cross. The primary estimate therefore uses posts observed on both sides of the boundary and compares each post against itself.

Figure 3. Raw upvote rates for crossing and near-miss organic posts.
The raw comparison already shows why the design matters. Crossing posts and near-miss posts are not exchangeable. The causal question has to be about the same post while it is in different exposure bands, not about two different groups of posts.

Figure 4. Posterior distribution for the page 1 versus page 2 upvote-rate ratio.
The main model suggests that organic posts receive upvotes at a higher rate while they are in ranks 21 to 30 than while they are in ranks 31 to 40. I would not read this as a clean discontinuity exactly at rank 30. A tighter comparison around the boundary was weaker. The safer interpretation is that first-page exposure is associated with a broader near-boundary increase in upvote rate.
RQ3: Submission Timing
The last question moves one step earlier. If page exposure matters, then it is natural to ask what helps a post enter the Top 30 early enough to benefit from that exposure.
For this part, I looked at whether an organic post reaches the Top 30 within six hours after submission. Timing is a practical lever because the author can choose when to submit. It is also the most assumption-heavy part of the analysis because timing is not randomized. People may choose different submission times because of topic, audience, timezone, or their own habits.
The model uses submission hour in Pacific Time and adjusts for a simple author-popularity proxy. I did not adjust for early engagement or the number of competitors because, under the DAG, those are part of the path from timing to Top 30 entry rather than pre-treatment confounders.

Figure 5. Predicted early page-1 entry probability by submission timing window.
Morning submissions looked more likely to reach the Top 30 within six hours than work-hours or after-work submissions. This does not prove that moving any arbitrary post to the morning would cause it to succeed. It says that, under the DAG and the model, timing is consistent with being part of the path into the exposure feedback loop.
Causal Interpretation
The three pieces have different causal strength.
RQ1 is not a causal effect estimate. It is a filtering step that tries to separate organic ranking dynamics from likely intervention-driven deviations.
RQ2 is stronger than a simple page 1 versus page 2 comparison because it compares the same post across nearby exposure bands. That absorbs stable differences like content quality, author appeal, and title attractiveness. It still cannot remove time-varying momentum or lifecycle effects.
RQ3 is the most fragile. Submission timing is self-selected, and unobserved topic or audience choices may still confound the result. The timing result should be read as DAG-dependent evidence, not as a universal posting-time rule.
Takeaway
The useful story is a sequence. Timing affects the chance of entering the Top 30 early. Top 30 entry creates more exposure. More exposure can increase the upvote rate. More upvotes can keep the post visible long enough to reach the Top 10.
That does not mean quality is irrelevant. It means final popularity is not a pure measurement of quality. On HN, virality is shaped by how attention gets routed through ranking, exposure, timing, and moderation.
Limitations
The analysis covers only April 2026, so I would not treat the results as timeless. HN does not expose direct impressions, so upvotes are only a proxy for attention. The organic subset is based on heuristic trajectory labels, not verified moderation records. The timing analysis depends heavily on the DAG and leaves room for unobserved confounding.