So, I think there is something up with the badge system awarding process. I know what you are going to say that badges run in a batch process, but please hear me out. So, one question, I got the 100 vote, which should have awarded the great answer badge. This happened a couple of days ago, and I didn't think anything of it.

Today I looked at:


It says that I got the badge for the answer which just received 100 upvotes for, but I know I didn't. I got that badge for another answer to a question which was merged with another a while ago (This question). It says that I got the badge for it on March 25 of 2009, which must have been when the badge was awarded for the other answer.

2 Answers 2


Badge reason calculation for old badges was a semi-best effort thing. For example, its impossible to find all the old tumbleweeds as there is no column in the DB that stored view count in first week.

Similarly, the queries looking for "great answers" and the like are looking at the current score, we do not store max score anywhere and to calculate it regularly it would require a massive amount of db work that would mean performance of SO as a whole would suffer.

Sure we could do a tiny bit better, but going forward reasons should be much more accurate and the amount of effort required to be 1% better seemed to me not really needed.

One thing to keep in mind is that the "badge reason" process tries to sort out all old missing reasons whenever its run, so it will eventually fill up reasons for all your recurring badges if you keep on earning them.


And now you have one 100-vote answer and one Great Answer badge. Balance has been restored to the universe.

  • And that's fine if that is what the intended behavior is. Commented Jul 9, 2010 at 15:01
  • And if it is, the date's still wrong. Commented Jul 9, 2010 at 15:02
  • But the badge was awarded on March 25, 2009.
    – mmyers
    Commented Jul 9, 2010 at 15:04

You must log in to answer this question.

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