{
  "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-180",
    "courseSlug": "ubc-math-180",
    "code": "MATH 180",
    "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": "2014S",
          "year": 2014,
          "term": "summer",
          "generation": "tableau-dashboard",
          "sections": 1,
          "reported": 121,
          "avg": 59.88,
          "avgCoverage": 1,
          "buckets": [
            19,
            24,
            17,
            9,
            12,
            6,
            14,
            9,
            7,
            0,
            0
          ],
          "bucketTotal": 117,
          "bucketsComplete": false,
          "below50": 19,
          "below50Share": 0.1624
        },
        {
          "session": "2014W",
          "year": 2014,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 4,
          "reported": 465,
          "avg": 56.84,
          "avgCoverage": 1,
          "buckets": [
            106,
            70,
            77,
            54,
            47,
            35,
            32,
            6,
            11,
            0,
            0
          ],
          "bucketTotal": 438,
          "bucketsComplete": false,
          "below50": 106,
          "below50Share": 0.242
        },
        {
          "session": "2015W",
          "year": 2015,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 3,
          "reported": 359,
          "avg": 60.41,
          "avgCoverage": 1,
          "buckets": [
            65,
            46,
            45,
            39,
            30,
            41,
            30,
            17,
            26,
            15,
            5
          ],
          "bucketTotal": 359,
          "bucketsComplete": true,
          "below50": 65,
          "below50Share": 0.1811
        },
        {
          "session": "2016W",
          "year": 2016,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 3,
          "reported": 394,
          "avg": 59.22,
          "avgCoverage": 1,
          "buckets": [
            73,
            54,
            64,
            47,
            45,
            40,
            30,
            13,
            18,
            4,
            6
          ],
          "bucketTotal": 394,
          "bucketsComplete": true,
          "below50": 73,
          "below50Share": 0.1853
        },
        {
          "session": "2017W",
          "year": 2017,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 2,
          "reported": 332,
          "avg": 61.26,
          "avgCoverage": 1,
          "buckets": [
            65,
            42,
            26,
            31,
            23,
            39,
            37,
            15,
            23,
            11,
            20
          ],
          "bucketTotal": 332,
          "bucketsComplete": true,
          "below50": 65,
          "below50Share": 0.1958
        },
        {
          "session": "2018W",
          "year": 2018,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 2,
          "reported": 372,
          "avg": 60.99,
          "avgCoverage": 1,
          "buckets": [
            64,
            43,
            47,
            35,
            32,
            52,
            34,
            20,
            23,
            16,
            6
          ],
          "bucketTotal": 372,
          "bucketsComplete": true,
          "below50": 64,
          "below50Share": 0.172
        },
        {
          "session": "2019W",
          "year": 2019,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 2,
          "reported": 249,
          "avg": 59.85,
          "avgCoverage": 1,
          "buckets": [
            59,
            22,
            30,
            25,
            17,
            21,
            25,
            13,
            23,
            7,
            7
          ],
          "bucketTotal": 249,
          "bucketsComplete": true,
          "below50": 59,
          "below50Share": 0.2369
        },
        {
          "session": "2020W",
          "year": 2020,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 2,
          "reported": 207,
          "avg": 66.22,
          "avgCoverage": 1,
          "buckets": [
            8,
            25,
            30,
            32,
            20,
            24,
            20,
            11,
            16,
            11,
            10
          ],
          "bucketTotal": 207,
          "bucketsComplete": true,
          "below50": 8,
          "below50Share": 0.0386
        },
        {
          "session": "2021W",
          "year": 2021,
          "term": "winter",
          "generation": "tableau-dashboard",
          "sections": 1,
          "reported": 294,
          "avg": 57.24,
          "avgCoverage": 1,
          "buckets": [
            69,
            52,
            52,
            28,
            17,
            26,
            14,
            9,
            15,
            6,
            6
          ],
          "bucketTotal": 294,
          "bucketsComplete": true,
          "below50": 69,
          "below50Share": 0.2347
        },
        {
          "session": "2022W",
          "year": 2022,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 1,
          "reported": 431,
          "avg": 61.8,
          "avgCoverage": 1,
          "buckets": [
            72,
            123,
            13,
            22,
            25,
            52,
            42,
            17,
            41,
            18,
            6
          ],
          "bucketTotal": 431,
          "bucketsComplete": true,
          "below50": 72,
          "below50Share": 0.1671,
          "median": 62,
          "p25": 50,
          "p75": 73
        },
        {
          "session": "2023W",
          "year": 2023,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 1,
          "reported": 426,
          "avg": 60,
          "avgCoverage": 1,
          "buckets": [
            61,
            65,
            60,
            31,
            38,
            33,
            32,
            22,
            17,
            14,
            4
          ],
          "bucketTotal": 377,
          "bucketsComplete": false,
          "below50": 61,
          "below50Share": 0.1618,
          "median": 60,
          "p25": 51,
          "p75": 70
        },
        {
          "session": "2024W",
          "year": 2024,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 2,
          "reported": 667,
          "avg": 63.56,
          "avgCoverage": 1,
          "buckets": [
            94,
            67,
            80,
            63,
            72,
            70,
            64,
            56,
            44,
            38,
            19
          ],
          "bucketTotal": 667,
          "bucketsComplete": true,
          "below50": 94,
          "below50Share": 0.1409,
          "median": 65,
          "p25": 54.5,
          "p75": 75
        },
        {
          "session": "2025W",
          "year": 2025,
          "term": "winter",
          "generation": "tableau-dashboard-v2",
          "sections": 2,
          "reported": 711,
          "avg": 55,
          "avgCoverage": 1,
          "buckets": [
            194,
            163,
            78,
            53,
            49,
            58,
            40,
            30,
            34,
            9,
            3
          ],
          "bucketTotal": 711,
          "bucketsComplete": true,
          "below50": 194,
          "below50Share": 0.2729,
          "median": 54.5,
          "p25": 43.4,
          "p75": 66.7
        }
      ]
    }
  }
}