{
  "provenance": {
    "sourceId": "ubc-pair-grade-data",
    "sourceName": "UBC PAIR Grade Data",
    "sourceUrl": "https://github.com/DonneyF/ubc-pair-grade-data",
    "sourceRef": "18af317b9ded65047f8438b854317b4ff7fcb88d",
    "sourceLicense": null,
    "retrievedAt": "2026-08-31T07:24:28.727Z",
    "generatorVersion": 1,
    "subject": "MATH",
    "generationWindows": [
      {
        "generation": "tableau-dashboard",
        "from": "2014S",
        "to": "2021W",
        "note": "UBC's earlier reporting system. It also covers the 2021 sessions, which both systems published; the earlier figures are used there because the newer ones are missing a substantial number of sections."
      },
      {
        "generation": "tableau-dashboard-v2",
        "from": "2022S",
        "to": null,
        "note": "UBC's current reporting system, and the only source for these sessions. It also reports medians and quartiles, which the earlier system did not."
      }
    ],
    "activeSince": "2022S",
    "thresholds": {
      "minSessions": 3,
      "minTotalStudents": 100
    },
    "caveats": [
      "small-cell-suppression",
      "upstream-imputation",
      "avg-precision-drift",
      "instructor-data-excluded",
      "campus-series-kept-separate"
    ]
  },
  "source": {
    "name": "UBC PAIR grade data",
    "url": "https://github.com/DonneyF/ubc-pair-grade-data"
  },
  "usage": "No licence is claimed over the underlying figures. Attribution terms: https://learn4less.ca/ubc-grades/methodology/#attribution",
  "bucketOrder": [
    "<50",
    "50-54",
    "55-59",
    "60-63",
    "64-67",
    "68-71",
    "72-75",
    "76-79",
    "80-84",
    "85-89",
    "90-100"
  ],
  "course": {
    "schemaVersion": 1,
    "gradesSlug": "math-110",
    "courseSlug": "ubc-math-110",
    "code": "MATH 110",
    "buckets": [
      "<50",
      "50-54",
      "55-59",
      "60-63",
      "64-67",
      "68-71",
      "72-75",
      "76-79",
      "80-84",
      "85-89",
      "90-100"
    ],
    "campuses": {
      "UBCV": [
        {
          "session": "2014W",
          "year": 2014,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 4,
          "reported": 341,
          "avg": 62.71,
          "avgCoverage": 1,
          "buckets": [
            67,
            29,
            31,
            31,
            23,
            36,
            26,
            29,
            31,
            12,
            4
          ],
          "bucketTotal": 319,
          "bucketsComplete": false,
          "below50": 67,
          "below50Share": 0.21
        },
        {
          "session": "2015W",
          "year": 2015,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 4,
          "reported": 324,
          "avg": 60.22,
          "avgCoverage": 1,
          "buckets": [
            65,
            43,
            27,
            41,
            28,
            26,
            29,
            14,
            27,
            1,
            5
          ],
          "bucketTotal": 306,
          "bucketsComplete": false,
          "below50": 65,
          "below50Share": 0.2124
        },
        {
          "session": "2016W",
          "year": 2016,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 3,
          "reported": 275,
          "avg": 60.13,
          "avgCoverage": 1,
          "buckets": [
            55,
            29,
            29,
            32,
            27,
            31,
            19,
            16,
            16,
            11,
            10
          ],
          "bucketTotal": 275,
          "bucketsComplete": true,
          "below50": 55,
          "below50Share": 0.2
        },
        {
          "session": "2017W",
          "year": 2017,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 3,
          "reported": 245,
          "avg": 61.31,
          "avgCoverage": 1,
          "buckets": [
            44,
            27,
            21,
            27,
            32,
            29,
            13,
            12,
            22,
            12,
            6
          ],
          "bucketTotal": 245,
          "bucketsComplete": true,
          "below50": 44,
          "below50Share": 0.1796
        },
        {
          "session": "2018W",
          "year": 2018,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 3,
          "reported": 201,
          "avg": 60.87,
          "avgCoverage": 1,
          "buckets": [
            43,
            20,
            19,
            23,
            26,
            14,
            16,
            13,
            11,
            13,
            3
          ],
          "bucketTotal": 201,
          "bucketsComplete": true,
          "below50": 43,
          "below50Share": 0.2139
        },
        {
          "session": "2019W",
          "year": 2019,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 3,
          "reported": 185,
          "avg": 64.16,
          "avgCoverage": 1,
          "buckets": [
            13,
            27,
            27,
            19,
            23,
            19,
            18,
            13,
            18,
            4,
            4
          ],
          "bucketTotal": 185,
          "bucketsComplete": true,
          "below50": 13,
          "below50Share": 0.0703
        },
        {
          "session": "2020W",
          "year": 2020,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 1,
          "reported": 200,
          "avg": 66.62,
          "avgCoverage": 1,
          "buckets": [
            21,
            13,
            22,
            13,
            17,
            26,
            23,
            17,
            28,
            13,
            7
          ],
          "bucketTotal": 200,
          "bucketsComplete": true,
          "below50": 21,
          "below50Share": 0.105
        },
        {
          "session": "2021W",
          "year": 2021,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 1,
          "reported": 176,
          "avg": 60.99,
          "avgCoverage": 1,
          "buckets": [
            41,
            17,
            11,
            13,
            17,
            13,
            16,
            7,
            15,
            11,
            15
          ],
          "bucketTotal": 176,
          "bucketsComplete": true,
          "below50": 41,
          "below50Share": 0.233
        },
        {
          "session": "2022W",
          "year": 2022,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 1,
          "reported": 198,
          "avg": 58.6,
          "avgCoverage": 1,
          "buckets": [
            45,
            25,
            20,
            14,
            12,
            20,
            19,
            11,
            19,
            4,
            9
          ],
          "bucketTotal": 198,
          "bucketsComplete": true,
          "below50": 45,
          "below50Share": 0.2273,
          "median": 62,
          "p25": 50,
          "p75": 74
        },
        {
          "session": "2023W",
          "year": 2023,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 1,
          "reported": 208,
          "avg": 60.7,
          "avgCoverage": 1,
          "buckets": [
            33,
            10,
            17,
            24,
            10,
            22,
            17,
            16,
            16,
            4,
            4
          ],
          "bucketTotal": 173,
          "bucketsComplete": false,
          "below50": 33,
          "below50Share": 0.1908,
          "median": 64,
          "p25": 55,
          "p75": 75
        },
        {
          "session": "2024W",
          "year": 2024,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 1,
          "reported": 127,
          "avg": 68.3,
          "avgCoverage": 1,
          "buckets": [
            12,
            10,
            9,
            13,
            6,
            15,
            11,
            13,
            15,
            13,
            10
          ],
          "bucketTotal": 127,
          "bucketsComplete": true,
          "below50": 12,
          "below50Share": 0.0945,
          "median": 71,
          "p25": 60,
          "p75": 81.5
        },
        {
          "session": "2025W",
          "year": 2025,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 1,
          "reported": 119,
          "avg": 62.2,
          "avgCoverage": 1,
          "buckets": [
            28,
            9,
            7,
            9,
            10,
            11,
            10,
            11,
            8,
            8,
            8
          ],
          "bucketTotal": 119,
          "bucketsComplete": true,
          "below50": 28,
          "below50Share": 0.2353,
          "median": 66,
          "p25": 50,
          "p75": 78
        }
      ]
    }
  }
}