99

I really like the new Stack Exchange home page, where certain questions from the Stack Exchange Network are presented, along with a hotness rating that is described as "arbitrary" in its tooltip. Such questions also appear randomly on the sidebar on questions across the network, under the heading "Hot Network Questions".

How do these arbitrary hotness points work, and how are they used to select questions to appear in those lists?

94
+50

Basically what's documented here:

What formula should be used to determine "hot" questions?

We have a few tweaks:

  • Successive questions from the same site are penalized by increasing amounts. So, the first question from SO in the list gets multiplied by 1.0, the second by 0.98, the third by 0.96, etc.)

  • Each site is limited to contributing five questions to the list at a time by default.

  • There are per-site adjustments: some sites' questions require higher hotness scores to be selected, some sites are restricted to contributing fewer than the default five at a time, and it's possible for sites to be excluded entirely.

  • The benefit of many answers is capped at 10

  • We only degrade based on question age, and not the last update date on a question, so questions don't pop back up to the top every time they're edited

  • Views are not counted towards the score

  • Questions with no answers are excluded

  • Closed questions are excluded

  • Questions less than eight hours or more than 30 days old are excluded

  • Questions that were already selected to appear on the list more than 72 hours ago are excluded

  • Questions whose titles use blacklisted keywords are excluded; there is one global blacklist, as well as per-site blacklists

  • Questions that a local moderator has manually removed from the list are excluded

  • Questions on per-site metas, Meta Stack Exchange, Stack Apps, and non-English sites are excluded

The core of the formula (without the site-based degrading or traffic scaling) is:

(MIN(AnswerCount, 10) * QScore) / 5 + AnswerScore
-------------------------------------------------
         MAX(QAgeInHours + 1, 6) ^ 1.4

(take this with a grain of salt due to the omissions noted above)

Once a question reaches a threshold hotness score, it will be selected to appear on the list. No questions will be selected if the site has already contributed more than its limit of questions. This is recalculated every 15 minutes. The entire list is shown on stackexchange.com, and the results are randomized when displayed on sidebars.

  • 2
    gentle 2% penalty for same-site-questions is easily overruled by stuffing more answers into these, as demonstrated by recent example of 4 math questions occupying top of collider. Dropping tiny 2% when QScore is blindly multiplied by AnswerCount straight up to 10 answers looks futile – gnat Nov 8 '13 at 10:34
  • "per-site traffic adjustment so SO does not dominate" -- for the record, this is explained in more details in “SO questions are penalized” in the hot list - how does that work, can it be done for other site(s)? – gnat Mar 24 '14 at 12:01
  • Just to be clear: Are downvotes also counted in AnswerScore? Say, if one answer has 20 upvotes and 5 downvotes, would it have a score of 20 or 15? – Amal Murali May 18 '14 at 7:38
  • @Amal Yes, both scores are equal to upvotes - downvotes (same thing you see next to the post). If one answer has 20 upvotes and 5 downvotes, the score would be 15. – David Fullerton May 19 '14 at 14:14
  • The hotness formula has not changed with today's deployments. – Glorfindel Mar 11 at 21:47
  • @Glorfindel please check the listed items in the answer. They contain several elements outside the scope of the formula, that are relevant. That's why I added the item Questions age out of the list after being on it for 72 hours, that goes well together with others like Questions older than 30 days are excluded and Closed questions are excluded that we can read here. – fedorqui Mar 11 at 21:53
26

Based on David Fullerton's answer, I've written a simple user script that adds a "hotness" indicator to the question infobar:

Screenshot

To use the script, you'll first need to install a user script manager like Greasemonkey or Tampermonkey for your browser, if you don't have one already. Then click this link, which should prompt you whether you want to install the script or not. (If you don't have a user script manager installed, it will just show you the source code for the script.)

The "hotness percentage" calculated by the script is simply the raw value given by the "core formula" in David Fullerton's answer, times 100%. It does not include the per-site adjustment factors or the cumulative penalty for multiple questions from the same site, and so is not directly comparable across sites or with the "arbitrary hotness points" shown in the tooltips on the SE.com home page.

In practice, it seems that questions on the Hot Network Questions list tend to have hotness values around 20% to 200% or so, whereas most not-so-hot questions tend to score a flat 0%. For a more detailed score, you can hover your mouse over the percentage to see the raw hotness score rounded to 5 significant digits. For example for this question, as of this writing, the raw hotness score is approximately 0.000016216 (although posting this answer should bump it up a little bit).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .