41

The Ask Ubuntu Town hall digest caused me to win the Mortarboard badge, yey!

But wait.

[Mortarboard] Hit the daily reputation cap for the first time

Per-site metas don't have any reputation... I am confused :-)

I know why I got the badge. Should I have?

Let me rephrase. Is this behavior desirable?

10
  • Seems like badges are not included in this, by design or bug?
    – Trufa
    Commented Feb 8, 2011 at 22:44
  • 1
    I concur. You should not have.
    – jcolebrand
    Commented Feb 8, 2011 at 22:47
  • 27
    New goal -- get Legendary on an SE meta, while keeping my rep at 1 Commented Feb 8, 2011 at 22:47
  • Should have used Community-Wiki! (See here.)
    – yhw42
    Commented Feb 8, 2011 at 23:58
  • @yhw42: No. I specifically did not want to go CW. I wanted to stick to a given format and didn't want anyone being able to edit the candidates' answers, as it was a representation of each user. Commented Feb 9, 2011 at 0:07
  • 1
    @The: That makes complete sense. I was trying to point out that even though they aren't displayed and don't affect privileges, Votes/Rep are tracked behind the scenes on per-site metas to award badges (i.e. Nice Answer et. al.), and you qualified since the posts weren't CW.
    – yhw42
    Commented Feb 9, 2011 at 0:39
  • @yhw42 AH, ok, I understand what you mean now. Yes, I know why I got the badge. My question was, is this behavior desirable? Commented Feb 9, 2011 at 0:41
  • 2
    Got it! You are questioning the metas even having the MortarBoard badge. I had understood you to be questioning the badge in your case. Sorry for the confusion.
    – yhw42
    Commented Feb 9, 2011 at 3:08
  • 6
    @MichaelMrozek good luck with that.
    – Pops
    Commented Apr 26, 2012 at 18:45
  • (Maybe SE-internal) sources say (meta.stackexchange.com/questions/237906/…), that badge calculator don't use the repu on the metas, only the votes.
    – peterh
    Commented Aug 11, 2014 at 15:49

2 Answers 2

39

Just redefine it as "you received a lot of upvotes in a single day". So I think it is correct in spirit.

1
  • 23
    Could you implement this in the meta badge text? Commented Apr 26, 2012 at 14:56
10

Although reputation on meta is taken from the main site, the badge mechanics, including the badges based on reputation, still works, giving you badges based on reputation you weren't aware off.

The following query shows the number of days a certain member of Meta Stack Overflow has hit the rep cap making you eligible for the Mortarboard badge. If this query returns more than 150 rows the Legendary badge is in the pocket as well

-- uid:Enter your UserId  "As found in the url of your profile"
; 
with upvQ as (
  select v.creationdate
  , count(*)*5
  -- over (order by v.creationdate) 
  as score
  from posts p 
  inner join votes v on v.postid = p.id
  where v.votetypeid = 2 --UpVote
  and p.posttypeid = 1 -- Q
  and p.owneruserid = ##uid##
  group by v.creationdate)
, upvA as (
  select v.creationdate
  , count(*)*10
  -- over (order by v.creationdate)
  as score
  from posts p 
  inner join votes v on v.postid = p.id
  where v.votetypeid = 2 --UpVote
  and p.posttypeid = 2 -- A
  and p.owneruserid = ##uid##
  group by v.creationdate)
, dwnVQA as (
  select v.creationdate
  , count(*)*-2
 --  over (order by v.creationdate) 
   as score
  from posts p 
  inner join votes v on v.postid = p.id
  where v.votetypeid = 3 --DownVote
  and p.posttypeid in (1,2) -- Q and A
  and p.owneruserid = ##uid##
  group by v.creationdate)
, accA as (
select v.creationdate
     , count(*) * 15
     -- over (order by v.creationdate) 
     as score -- every accepted answer 15 fep
  from posts p 
  inner join votes v on v.postid = p.id
  where v.votetypeid = 1 -- Accept
  and p.posttypeid = 2 -- Answer 
  and  p.owneruserid = ##uid##
  group by  v.creationdate)
, sugedt as (
 -- suggested edit for a user
     select cast(approvaldate as date) as dateonly, 
     count(*) * 2
     -- over (order by cast(approvaldate as date)) 
     as score
     from suggestededits
      where approvaldate is not null
      and owneruserid = ##uid## 
      group by cast(approvaldate as date))
, bounty as (
select  v.creationdate
, sum( case when votetypeid =8 then bountyamount else 0 end)
 -- over (order by v.creationdate) 
 as [start] 
, sum( case when votetypeid =9 then bountyamount else 0 end)
-- over (order by v.creationdate) 
as [close]
  from votes v
  inner join posts p on p.id = v.postid 
  where votetypeid in (8,9)
  and ((p.posttypeid = 2 and votetypeid =9)
  or (p.posttypeid = 1 and votetypeid =8))
  and v.userid= ##uid##
  group by v.creationdate
)
select distinct 
       v.creationdate
       , isnull(upvq.score,0)  -- as [Upvote Question]
        + isnull(upvA.score,0) -- as [Upvote Answer] 
        + isnull(dwnVQA.score,0) -- as [Downvotes own Q and A]
        + isnull(accA.score,0) -- as [Accepted Answers]
        + isnull(sugedt.score,0)  --as [Suggested Edits]
        + isnull(bounty.start,0) -- as [Bounties Started]
        + isnull(bounty.[close],0) as score --as [Bounties Received]
from votes v 
left outer join upvQ on upvQ.creationdate = v.creationdate
left outer join upvA on upvA.creationdate = v.creationdate
left outer join dwnVQA on dwnVQA.creationdate = v.creationdate
left outer join accA on accA.creationdate = v.creationdate
left outer join sugedt on sugedt.dateonly = v.creationdate
left outer join bounty on bounty.creationdate = v.creationdate
where v.creationdate >= (
     select creationdate 
     from users 
     where id = ##uid##)
and (isnull(upvq.score,0)  -- as [Upvote Question]
        + isnull(upvA.score,0) -- as [Upvote Answer] 
        + isnull(dwnVQA.score,0) -- as [Downvotes own Q and A]
        + isnull(accA.score,0) -- as [Accepted Answers]
        + isnull(sugedt.score,0)  --as [Suggested Edits]
        + isnull(bounty.start,0) -- as [Bounties Started]
        + isnull(bounty.[close],0)) > 199
order by v.creationdate

The query is based on the one I used on an earlier answer and calculates the rep based on the available data in SEDE. Do notice that this is missing deleted posts and your own downvotes so it is not 100% accurate (and the data is refreshed only once a week, on Monday at 03:00 UTC)

You must log in to answer this question.

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