Yes, yes, I know, the Necromancer Badge has been beaten to death (heh) on Meta, but hear me out. I got my first Necromancer today, and naturally, I can't figure out why. So I went to CloudExchange to find out, using this query:
select
q.id, q.title, a.score
from posts a inner join posts q
on a.ParentId = q.id
where
a.OwnerUserId=12716
and
a.CreationDate >= dateadd(day, 60, q.CreationDate)
Now, I didn't expect it to show the post at 5, since the database is out of sync, but none of the posts listed there come close to 5, even on SO itself (I checked), and none of my most recent answers that are over 5 appear to qualify. I went back several months; unless CloudExchange is really stale, I shouldn't have the Necromancer badge.
So what gives? Did I construct my query wrong? That's certainly possible, although it appears correct based on the public description of Necromancer, at least to me. I don't think the process itself is broken, but I can't be sure since I don't know the algorithm, which leads me (finally) to my question:
What's the actual algorithm for determining the Necromancer badge? I assume that the query is something like this (ignoring filters for existing badges):
select a.OwnerUserId
from posts a inner join posts q
on a.ParentId = q.id
where
a.CreationDate >= dateadd(day, 60, q.CreationDate)
and a.Score >= 5
Is it actually? Or is it something else entirely?