This goes through the JSON API for reputation amounts for questions and halved the total gain points. The loop is needed because there is 90 days limitation on the range.

import sys,time,urllib2 as u2,json

U,S=int(A[0]),A[1:] and A[1] or "stackoverflow.com"

while True:
 if not d:break
 g+=sum(x['Gain'] for x in d if x['IsQ'])

print "Your reputation is expected to be down around",g/2,"points",


 filename.py YOURID

Example for Jeff

 filename.py 1

You can specify the site name like superuser.com, serverfault.com like

 filename.py 1 superuser.com

As a result, Jon Skeet is going to lose 688 points, and Jeff is going to lose 2286 points

PS: I noticed that above numbers are not divisible by 5, reps cap is the only I can think of for that case.

Let me know your ideas about bugs or improvements.

  • 1
    I don't think those numbers are right. Any amount of rep lost should be evenly divisible by 5, no? – squillman Mar 19 '10 at 15:22
  • 7
    Grew up on code golf? :-P – Chris Jester-Young Mar 19 '10 at 15:23
  • may be because of reputation cap @squillman, thats only I can think of – YOU Mar 19 '10 at 15:34
  • @Chris, :P thats my passion – YOU Mar 19 '10 at 15:35
  • Yes, it's most likely the rep cap. But this estimation can't account for times when a question is upvoted and then after the rep cap is hit, answers are upvoted. I suspect Jon Skeet will end up losing fewer than 100 points. – mmyers Mar 19 '10 at 15:38
  • @mmyers, I am not counting the votes, I used the JSON API used in this page /users/X?tab=reputationhistory and which show exact reputation points gotten, and upvoted questions after rep cap isn't count, If I am not wrong. – YOU Mar 19 '10 at 15:40
  • @S.Mark: I don't mean that it's your fault, since it would be an extreme amount of effort to calculate accurately (and would probably get your IP banned for your trouble). I'm just pointing out that as you said, it's an estimate. – mmyers Mar 19 '10 at 15:48
  • @mmyers, sure, its an estimate. I would not know how will the algorithm implement and this does not include rep recalc, so this will not be final result for sure. And I wish Jeff to allow 5 to 10 JSON request for that, only Jon Skeet reputations list request was biggest. :-) – YOU Mar 19 '10 at 15:55
  • Somebody please point me to where the new reputation rule is, I'm lost. – Lance Roberts Mar 19 '10 at 16:36

See How do I audit my reputation?:

You can use


...etc. to pull a fresh and accurate rep-report for your account.

  • 2
    Thannnnnnnnnnnnnnnnnnk you! – YOU Mar 20 '10 at 9:03

Here it is in Easy-To-Use Greasemonkey Format™

A picture of a profile just after the script has been run

Same caveats: no allowances for the daily rep cap or bonuses, final tally may have a fractional component and none of this will be correct after the official recalc.

After installing, click button on any user's profile page to run script. Script is done when numbers turn green. First number is estimated rep, small numbers below are total gains and losses, difference reflects change from current site-calculated rep. Based on my fake recalc script...

  • +1 Great!, my python code does not include rep re-calc parts, I am learning yours now. – YOU Mar 19 '10 at 15:57
  • @S.Mark: yeah, this is likely to give somewhat different results from yours simply because there are probably other differences between current rep and rep-graph rep for most users. – Shog9 Mar 19 '10 at 16:01
  • Slight issues with people who have 1 reputation, which might mean that this is always 1 rep off. You may be assuming everyone starts with a rep of 0. – HAL 9000 Mar 19 '10 at 16:11
  • @Yacoby: yup - this only counts the gains/losses reported by the rep graph, so other influences (the 1 everyone starts with, the 100 for associating an account, rep capped at 1 or rep gain capped at 200...) aren't reflected. If you run it on someone who's been heavily down-voted, you can actually see a negative final rep... – Shog9 Mar 19 '10 at 16:16
  • @Shog9, I still can't get same results as yours, I can assume you also count till date.now right? I am getting 13417.5 points, don't know why. – YOU Mar 19 '10 at 16:38
  • my current code is here codepad.org/Pe9nwJkE , cannot run directly in codepad though – YOU Mar 19 '10 at 16:58
  • Can you do me? For some reason I cannot login to SO with FF – juan Mar 19 '10 at 17:37
  • @S.Mark: not quite sure what you're doing with timespans in that code... But I did re-examine mine, and found a couple of serious bugs with how I was handling them: the start date (second-to-last parameter in the URL) should be at the start of a day (00:00:00) in UTC, and the end date should be 1 millisecond short of n days later, where n is >= 1 <= 90. I had been starting each day at whatever time the user joined the site, which resulted in the script returning some values twice (where days overlapped)... I suspect you're doing something similar, but based on the current time. – Shog9 Mar 19 '10 at 18:12
  • 1
    @Downvoter: according to this, you stand to lose something like 2670 points... – Shog9 Mar 19 '10 at 18:20
  • @Downvoter: I should probably mention, there's a 900pt discrepancy between your current rep and what the script calculates it should be... so the actual loss due to question rep halving may be considerably less (not that it matters if you lose it anyway). – Shog9 Mar 19 '10 at 18:40

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