14

I'm still 29, and this shows correctly on StackOverflow and the rest of the "trilogy" because I entered my correct birth date. The data dump says I'm 30. I know this is happening to other users as well — you can see it here:
StackQL test site updated to March data http://jcoehoorn.dyndns.org/stackql/default.aspx?qid=470

16
  • Yep, also shows me @ 37 which doesn't happen for another 29 days (get your shopping in quick).
    – squillman
    Commented Mar 8, 2010 at 16:13
  • 11
    Whom are you going to be believe? The cold, raw data or some guy named Joel?
    – Welbog
    Commented Mar 8, 2010 at 16:13
  • What's odd about this is that they already have good code to do it for the profile pages. I thought that this might have been a performance consideration, if the full calculation was taking too long for the export, but I find that doubtful as the users table is one of the smallest.
    – Joel Coehoorn Mod
    Commented Mar 8, 2010 at 16:20
  • 5
    Yeah, like we haven't heard this one before! Still 29, eh? Sure...
    – user27414
    Commented Mar 8, 2010 at 16:22
  • Has anyone done the query on themselves and found that the age in the data is correct? Mine is wrong as well.
    – Jon Seigel
    Commented Mar 8, 2010 at 16:32
  • 3
    @Jon Seigel - I suspect it's correct for those that have had their birthday this year. I'm guessing the export is done all in sql with a "FOR XML" query or similar, where an accurate age calculation would be cumbersome but a simple Year(getdate()) - Year([Users].[dob]) is easy. The fact that it's been nearly a year before anyone noticed shows that this might even be the right approach.
    – Joel Coehoorn Mod
    Commented Mar 8, 2010 at 16:40
  • @Jon: wrong here too. I'm two more months away from the age integer to be incremented, yet it seems the SO dump can't wait.
    – perbert
    Commented Mar 8, 2010 at 16:42
  • @Jon - my age is wrong (says 25, pretty sure I'm 24), my birthday's in August. Commented Mar 8, 2010 at 16:44
  • Still 29? That's what she said...
    – AnonJr
    Commented Mar 8, 2010 at 17:06
  • My b-day is in November, and it says I'm a year older than i actually am.
    – jjnguy
    Commented Mar 8, 2010 at 17:12
  • Does anyone have a correct birthday in the data dump?
    – jjnguy
    Commented Mar 8, 2010 at 17:19
  • 2
    @Justin: I do. @voyager confirmed it in a comment below. Commented Mar 8, 2010 at 20:50
  • @richardj.ross Opening a new question would likely make more sense than resurrecting this one. I think we know about this and are planning to fix it either way, though.
    – Adam Lear StaffMod
    Commented Apr 30, 2013 at 21:44
  • @AnnaLear good to know, but opening another question just for it to get closed as a dupe probably wouldn't have helped too much either. We'll see what happens. Commented Apr 30, 2013 at 21:50
  • 1
    @Closers: "Should we close bug reports that are tagged "status-completed"?".
    – Rob
    Commented Jan 20, 2020 at 2:49

4 Answers 4

4

This will be fixed in the next dump.

3
6

Maybe Jeff should post a question on StackOverflow asking how to calculate someone's age from their birthday and the current date...

Oh look, he did ask that in 2008.

Perhaps he now believes his current knowledge will be entirely obsolete in one year, not five, so he deliberately wipes his memory every 12 months to make room.

2
  • There are some good answers there - particularly this one - stackoverflow.com/questions/9/… - an obvious solution when it's shown, but not one I'd have come up with in a million years.
    – ChrisF Mod
    Commented Mar 8, 2010 at 21:43
  • As homage to Jon Skeet, someone should post an answer that uses Noda Time code.google.com/p/noda-time
    – MarkJ
    Commented Mar 9, 2010 at 17:57
5

Here are the results of twenty randomly chosen users:

User 218540: 28 years in data dump, 27 years on website
User 160208: 25 years in data dump, 24 years on website
User 23897: 40 years in data dump, 39 years on website
User 86038: 23 years in data dump, 22 years on website
User 20367: 39 years in data dump, 38 years on website
User 106040: 31 years in data dump, 31 years on website
User 2368: 27 years in data dump, 27 years on website
User 116553: 23 years in data dump, 22 years on website
User 191385: 15 years in data dump, 14 years on website
User 214528: 24 years in data dump, 23 years on website
User 18102: 35 years in data dump, 35 years on website
User 58309: 42 years in data dump, 42 years on website
User 110227: 32 years in data dump, 32 years on website
User 98585: 26 years in data dump, 25 years on website
User 184340: 39 years in data dump, 38 years on website
User 250022: 24 years in data dump, 23 years on website
User 8843: 39 years in data dump, 39 years on website
User 234438: 33 years in data dump, 32 years on website
User 5975: 27 years in data dump, 26 years on website
User 251474: 34 years in data dump, 33 years on website

14 out of 20 differ, and where they do, the age on the website is exactly one less than the age in the db.

Code used:

import sqlite3, random, httplib2, re

# the <center> cannot hold it is too late
age_re = re.compile(r"<td>age</td>\s*<td>\s*(\d*)\s*</td>")
http = httplib2.Http()
db = sqlite3.connect("so201003.db")

with_age = db.execute("SELECT Id, Age FROM USERS WHERE Age IS NOT NULL").fetchall()
random.shuffle(with_age)

sample = with_age[:20]

for userid, db_age in sample:
    url = "http://stackoverflow.com/users/%d" % userid
    response, content = http.request(url, headers = {"User-Agent": "Hi Jeff! Joel says you're wrong. I'm checking that."})
    if response.status != 200:
        raise IOError("Response was %d" % response.status)
    web_age = int(age_re.search(content).groups(1)[0])
    print "User %d: %d years in data dump, %d years on website" % (userid, db_age, web_age)
4
  • 1
    Could it be that those 6 that have a correct age have their birthdays in the first two months?
    – perbert
    Commented Mar 8, 2010 at 18:34
  • @voyager: Possibly. Or actually: Likely. That would concur with Pollyanna's assumption.
    – balpha StaffMod
    Commented Mar 8, 2010 at 18:37
  • My birthday has already come and gone this year, so I'm guessing my ages will both be correct assuming Pollyanna has the right idea. Commented Mar 8, 2010 at 20:28
  • @gnovice: so it is.
    – perbert
    Commented Mar 8, 2010 at 20:30
3

I expect they are doing the simple year calculation. If you were born in 1970, and it's 2010, then sometime during this year you have already or will turn 40. It's easier/cheaper than a full date calculation, and does it really matter?

It could also be to avoid minor privacy concerns - look at previous data dumps and determine the birthmonth. Seems a bit over concerned, though, so it's unlikely, but possible. Notably one can determine the exact birthdate by reading the user page once a day and waiting for the age to change, so it's already visible, but takes up to a year to find out.

You must log in to answer this question.

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