Skip to content

Instantly share code, notes, and snippets.

@Corvimae
Last active May 5, 2022 01:42
Show Gist options
  • Save Corvimae/5a0970e67406fbae44348c1c99d10c22 to your computer and use it in GitHub Desktop.
Save Corvimae/5a0970e67406fbae44348c1c99d10c22 to your computer and use it in GitHub Desktop.
Speedrun Marathon Gender Representation Statistics

Pronoun Fetching Methodology

Given a marathon in Oengus:

  1. Fetch all the submissions.
  2. For each unique runner, see if their pronouns are set in Oengus.
  3. If they're not, see if they've linked their speedrun.com profile and fetch from the SRC API. If they didn't link their SRC profile, see if there's a SRC profile matching their username and use that.
  4. If that doesn't provide any pronouns, see if they've linked their Twitch account and fetch from the Twitch pronouns extension API at pronouns.alejo.io. If they didn't link their Twitch account, see if there's a Twitch account matching their username and use that.
  5. If that still doesn't provide any pronouns, we're out of options and we'll just assume they haven't provided them.
  6. If a runner's pronouns are he/him or she/her, bucket them as such. Any other pronouns are bucked under 'other'. (Normalizing pronouns is really hard and I'm mostly concerned about the percentage of gender minorities, sorry :<)
  7. If the marathon has a published schedule, use the data from above to determine schedule pronoun distribution as well.

Normalized Percentages

The normalizedPercentages data is calculated by throwing out all of the none results; that is, we assume that unspecified pronouns adhere to the same ratio as the rest of the submissions.

{
"name": "ESA Winter 2022",
"counts": {
"submissions": {
"none": 97,
"she/her": 11,
"he/him": 102,
"other": 15
},
"schedule": {
"none": 39,
"she/her": 4,
"he/him": 40,
"other": 10,
"notFound": 6
}
},
"percentages": {
"submissions": {
"none": 0.4311111111111111,
"she/her": 0.04888888888888889,
"he/him": 0.4533333333333333,
"other": 0.06666666666666667
},
"schedule": {
"none": 0.3939393939393939,
"she/her": 0.04040404040404041,
"he/him": 0.40404040404040403,
"other": 0.10101010101010101,
"notFound": 0.06060606060606061
}
},
"normalizedPercentages": {
"submissions": {
"she/her": 0.0859375,
"he/him": 0.796875,
"other": 0.1171875
},
"schedule": {
"she/her": 0.06666666666666667,
"he/him": 0.6666666666666666,
"other": 0.16666666666666666,
"notFound": 0.1
}
}
}
{
"name": "Midspring Speedfling 2022",
"counts": {
"submissions": {
"none": 28,
"she/her": 8,
"he/him": 26,
"other": 13
},
"schedule": {
"none": 13,
"she/her": 5,
"he/him": 17,
"other": 6,
"notFound": 1
}
},
"percentages": {
"submissions": {
"none": 0.37333333333333335,
"she/her": 0.10666666666666667,
"he/him": 0.3466666666666667,
"other": 0.17333333333333334
},
"schedule": {
"none": 0.30952380952380953,
"she/her": 0.11904761904761904,
"he/him": 0.40476190476190477,
"other": 0.14285714285714285,
"notFound": 0.023809523809523808
}
},
"normalizedPercentages": {
"submissions": {
"she/her": 0.1702127659574468,
"he/him": 0.5531914893617021,
"other": 0.2765957446808511
},
"schedule": {
"she/her": 0.1724137931034483,
"he/him": 0.5862068965517241,
"other": 0.20689655172413793,
"notFound": 0.034482758620689655
}
}
}
{
"name": "Power Up With Pride 2021",
"counts": {
"submissions": {
"none": 28,
"she/her": 11,
"he/him": 28,
"other": 16
},
"schedule": null
},
"percentages": {
"submissions": {
"none": 0.3373493975903614,
"she/her": 0.13253012048192772,
"he/him": 0.3373493975903614,
"other": 0.1927710843373494
},
"schedule": null
},
"normalizedPercentages": {
"submissions": {
"she/her": 0.2,
"he/him": 0.509090909090909,
"other": 0.2909090909090909
},
"schedule": null
}
}
{
"name": "Really Really Long A Thon 5",
"counts": {
"submissions": {
"none": 39,
"she/her": 5,
"he/him": 43,
"other": 14
},
"schedule": {
"none": 25,
"she/her": 4,
"he/him": 18,
"other": 9,
"notFound": 2
}
},
"percentages": {
"submissions": {
"none": 0.38613861386138615,
"she/her": 0.04950495049504951,
"he/him": 0.42574257425742573,
"other": 0.13861386138613863
},
"schedule": {
"none": 0.43103448275862066,
"she/her": 0.06896551724137931,
"he/him": 0.3103448275862069,
"other": 0.15517241379310345,
"notFound": 0.034482758620689655
}
},
"normalizedPercentages": {
"submissions": {
"she/her": 0.08064516129032258,
"he/him": 0.6935483870967742,
"other": 0.22580645161290322
},
"schedule": {
"she/her": 0.12121212121212122,
"he/him": 0.5454545454545454,
"other": 0.2727272727272727,
"notFound": 0.06060606060606061
}
}
}
{
"name": "Speed Stuff 4 Charity 8",
"counts": {
"submissions": {
"none": 22,
"she/her": 4,
"he/him": 27,
"other": 9
},
"schedule": {
"none": 15,
"she/her": 4,
"he/him": 24,
"other": 7,
"notFound": 0
}
},
"percentages": {
"submissions": {
"none": 0.3548387096774194,
"she/her": 0.06451612903225806,
"he/him": 0.43548387096774194,
"other": 0.14516129032258066
},
"schedule": {
"none": 0.3,
"she/her": 0.08,
"he/him": 0.48,
"other": 0.14,
"notFound": 0
}
},
"normalizedPercentages": {
"submissions": {
"she/her": 0.1,
"he/him": 0.675,
"other": 0.225
},
"schedule": {
"she/her": 0.11428571428571428,
"he/him": 0.6857142857142857,
"other": 0.2,
"notFound": 0
}
}
}
{
"name": "Velocity Online Vol. 3",
"counts": {
"submissions": {
"none": 13,
"she/her": 2,
"he/him": 19,
"other": 7
},
"schedule": {
"none": 7,
"she/her": 2,
"he/him": 12,
"other": 6,
"notFound": 1
}
},
"percentages": {
"submissions": {
"none": 0.3170731707317073,
"she/her": 0.04878048780487805,
"he/him": 0.4634146341463415,
"other": 0.17073170731707318
},
"schedule": {
"none": 0.25,
"she/her": 0.07142857142857142,
"he/him": 0.42857142857142855,
"other": 0.21428571428571427,
"notFound": 0.03571428571428571
}
},
"normalizedPercentages": {
"submissions": {
"she/her": 0.07142857142857142,
"he/him": 0.6785714285714286,
"other": 0.25
},
"schedule": {
"she/her": 0.09523809523809523,
"he/him": 0.5714285714285714,
"other": 0.2857142857142857,
"notFound": 0.047619047619047616
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment