I wrote a SEDE query to find the users who should have the Unsung Hero badge, but they have not.
The query simply counts the non-CW, not self-accepted, but accepted answers of the users, and compares the ratio of the zero-scored ones (COUNT(CASE WHEN Score=0 THEN 1 END)
) to all (COUNT(*)
).
Surprisingly, it has found a lot (603) some (6). I think, something might be problematic with my query, or with the exact details of the Unsung Hero badge giving algorithm. (A possible another problem source might be if the SEDE dump generation is not completely atomic, but it is unlikely, because none of the found users got the badge since the last dump.)
The most obvious case is user alotropico, who has 42 accepted answers, 11 of them are zero-scored, and it is manually easily testable, that none of their accepted answers are CW or self-accepts. Despite that, they don't have the Unsung Hero badge.
Why?
Edit: It was made clear that the minimal count of the zero-scored, non-CW, non-own-accept, not-deleted answers is 11, and not 10. The modified query still shows exceptions, the most obvious is Alotropico. User Jean was the prior example.
Edit #2: I extended the query to use all the relevant informations here we could see (10 day oldness calculation, >
instead >=
). I also extended it with another query which shows the induvidual details of a single user. Beside that, a bug in the query was found (<>
gives false result for NULL
-values in SQL). Now the SEDE data and the badge requirements exactly match, problem solved.
> 10
or>= 10
.>=
to>
, there are still mismatches, although not so obvious. Example.>10
, thus at least 11, (non-cw, non-deleted, non-self-accept) answers are needed, but the criteria for the ratio remains>= 25%
.>10
and not>=10
. But many others are eligible, still they have not the badge, for example Atropico.