{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "83f2fbd6",
   "metadata": {},
   "source": [
    "# Where Your Degree Takes You — 1. Methodology & ROI\n",
    "\n",
    "*Part of the [Data Stories](https://portfolio.palavir.co/degree-roi) project by Josh Elberg.*\n",
    "\n",
    "This notebook documents how the study is built and reproduces the **earnings, debt, and ROI** analysis from the committed data. \n",
    "\n",
    "**The integrity rule:** every displayed number traces to a real published source. Privacy-suppressed cells are kept as `null` — never zero, never imputed. ML/embedding outputs are labelled estimates, not source facts.\n",
    "\n",
    "All data here is the processed JSON committed in `public/data/degree/`, derived by the pipeline in `scripts/degree/` from these public sources:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2e74c838",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T18:49:40.484892Z",
     "iopub.status.busy": "2026-06-19T18:49:40.475644Z",
     "iopub.status.idle": "2026-06-19T18:49:44.053726Z",
     "shell.execute_reply": "2026-06-19T18:49:44.053726Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reading committed data from: C:\\Users\\jelbe\\palavir-estate-audit\\repos\\data-portfolio\\public\\data\\degree\n"
     ]
    }
   ],
   "source": [
    "import json, os\n",
    "import numpy as np, pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use(\"dark_background\")\n",
    "plt.rcParams.update({\"figure.facecolor\": \"#0a0a0a\", \"axes.facecolor\": \"#0a0a0a\",\n",
    "                     \"savefig.facecolor\": \"#0a0a0a\", \"axes.edgecolor\": \"#444\",\n",
    "                     \"font.size\": 11, \"axes.grid\": True, \"grid.alpha\": 0.15})\n",
    "PURPLE, GREEN, ROSE = \"#a855f7\", \"#10b981\", \"#f43f5e\"\n",
    "DATA = os.environ.get(\"DEGREE_DATA\", os.path.join(\"..\", \"public\", \"data\", \"degree\"))\n",
    "load = lambda n: json.load(open(os.path.join(DATA, n), encoding=\"utf-8\"))\n",
    "print(\"Reading committed data from:\", os.path.abspath(DATA))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5570c84e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T18:49:44.055731Z",
     "iopub.status.busy": "2026-06-19T18:49:44.055731Z",
     "iopub.status.idle": "2026-06-19T18:49:44.077459Z",
     "shell.execute_reply": "2026-06-19T18:49:44.077459Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>publisher</th>\n",
       "      <th>vintage</th>\n",
       "      <th>license</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AI Occupational Exposure (AIOE)</td>\n",
       "      <td>Felten, Raj &amp; Seamans</td>\n",
       "      <td>2021 (+ generative-AI variants)</td>\n",
       "      <td>citation requested (no formal license)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>GPTs are GPTs — Occupational AI Exposure</td>\n",
       "      <td>Eloundou, Manning, Mishkin &amp; Rock (Science, 20...</td>\n",
       "      <td>2023 (GPT-4 era)</td>\n",
       "      <td>MIT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>BLS OEWS — Metropolitan Areas</td>\n",
       "      <td>U.S. Bureau of Labor Statistics</td>\n",
       "      <td>May 2024</td>\n",
       "      <td>public domain</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>CIP 2020 → SOC 2018 Crosswalk</td>\n",
       "      <td>NCES / U.S. Census Bureau</td>\n",
       "      <td>CIP 2020 to SOC 2018</td>\n",
       "      <td>public domain</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>College Scorecard — Field of Study</td>\n",
       "      <td>U.S. Department of Education</td>\n",
       "      <td>Most Recent Cohorts (Field of Study), June 202...</td>\n",
       "      <td>public domain (17 U.S.C. §105)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>College Scorecard — Institution</td>\n",
       "      <td>U.S. Department of Education</td>\n",
       "      <td>Most Recent Cohorts (Institution), 2024</td>\n",
       "      <td>public domain (17 U.S.C. §105)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Zillow Observed Rent Index (ZORI)</td>\n",
       "      <td>Zillow</td>\n",
       "      <td>monthly, latest available</td>\n",
       "      <td>free for public use with mandatory attribution</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                       name  \\\n",
       "0           AI Occupational Exposure (AIOE)   \n",
       "1  GPTs are GPTs — Occupational AI Exposure   \n",
       "2             BLS OEWS — Metropolitan Areas   \n",
       "3             CIP 2020 → SOC 2018 Crosswalk   \n",
       "4        College Scorecard — Field of Study   \n",
       "5           College Scorecard — Institution   \n",
       "6         Zillow Observed Rent Index (ZORI)   \n",
       "\n",
       "                                           publisher  \\\n",
       "0                              Felten, Raj & Seamans   \n",
       "1  Eloundou, Manning, Mishkin & Rock (Science, 20...   \n",
       "2                    U.S. Bureau of Labor Statistics   \n",
       "3                          NCES / U.S. Census Bureau   \n",
       "4                       U.S. Department of Education   \n",
       "5                       U.S. Department of Education   \n",
       "6                                             Zillow   \n",
       "\n",
       "                                             vintage  \\\n",
       "0                    2021 (+ generative-AI variants)   \n",
       "1                                   2023 (GPT-4 era)   \n",
       "2                                           May 2024   \n",
       "3                               CIP 2020 to SOC 2018   \n",
       "4  Most Recent Cohorts (Field of Study), June 202...   \n",
       "5            Most Recent Cohorts (Institution), 2024   \n",
       "6                          monthly, latest available   \n",
       "\n",
       "                                          license  \n",
       "0          citation requested (no formal license)  \n",
       "1                                             MIT  \n",
       "2                                   public domain  \n",
       "3                                   public domain  \n",
       "4                  public domain (17 U.S.C. §105)  \n",
       "5                  public domain (17 U.S.C. §105)  \n",
       "6  free for public use with mandatory attribution  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "src = load('sources.json')['sources']\n",
    "pd.DataFrame(src)[['name','publisher','vintage','license']]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90e05ab0",
   "metadata": {},
   "source": [
    "## The program universe\n",
    "\n",
    "The spine is the U.S. Department of Education **College Scorecard — Field of Study** file: one row per *program* = institution × 4-digit CIP (major) × credential level. We load every Bachelor's program with reported 5-year earnings."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "773e1d01",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T18:49:44.077459Z",
     "iopub.status.busy": "2026-06-19T18:49:44.077459Z",
     "iopub.status.idle": "2026-06-19T18:49:44.204812Z",
     "shell.execute_reply": "2026-06-19T18:49:44.204812Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24,591 Bachelor's programs with reported 5-yr earnings\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>cip4</th>\n",
       "      <th>major</th>\n",
       "      <th>school</th>\n",
       "      <th>earn_5yr</th>\n",
       "      <th>earn_1yr</th>\n",
       "      <th>debt</th>\n",
       "      <th>payoff_yrs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>01.00</td>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>California Polytechnic State University-San Lu...</td>\n",
       "      <td>68350</td>\n",
       "      <td>64786.0</td>\n",
       "      <td>21903.0</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>01.00</td>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>California State University-Chico</td>\n",
       "      <td>64138</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14750.0</td>\n",
       "      <td>2.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>01.00</td>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>Delaware State University</td>\n",
       "      <td>47478</td>\n",
       "      <td>38873.0</td>\n",
       "      <td>21500.0</td>\n",
       "      <td>4.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>01.00</td>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>Florida Agricultural and Mechanical University</td>\n",
       "      <td>42263</td>\n",
       "      <td>26677.0</td>\n",
       "      <td>14000.0</td>\n",
       "      <td>3.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>01.00</td>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>Illinois State University</td>\n",
       "      <td>64041</td>\n",
       "      <td>47295.0</td>\n",
       "      <td>15750.0</td>\n",
       "      <td>2.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    cip4                 major  \\\n",
       "0  01.00  Agriculture, General   \n",
       "1  01.00  Agriculture, General   \n",
       "2  01.00  Agriculture, General   \n",
       "3  01.00  Agriculture, General   \n",
       "4  01.00  Agriculture, General   \n",
       "\n",
       "                                              school  earn_5yr  earn_1yr  \\\n",
       "0  California Polytechnic State University-San Lu...     68350   64786.0   \n",
       "1                  California State University-Chico     64138       NaN   \n",
       "2                          Delaware State University     47478   38873.0   \n",
       "3     Florida Agricultural and Mechanical University     42263   26677.0   \n",
       "4                          Illinois State University     64041   47295.0   \n",
       "\n",
       "      debt  payoff_yrs  \n",
       "0  21903.0         3.2  \n",
       "1  14750.0         2.3  \n",
       "2  21500.0         4.5  \n",
       "3  14000.0         3.3  \n",
       "4  15750.0         2.5  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx = load('programs_index.json')\n",
    "schools = idx['schools']\n",
    "rows = []\n",
    "for m in idx['majors']:\n",
    "    shard = load(f\"by_cip/{m['cip4'].replace('.','')}.json\")\n",
    "    for p in shard:\n",
    "        if p['cr'] == '3' and p.get('e5'):\n",
    "            rows.append({'cip4': m['cip4'], 'major': m['cip_title'],\n",
    "                         'school': schools.get(p['u'], p['u']),\n",
    "                         'earn_5yr': p['e5'], 'earn_1yr': p.get('e1'),\n",
    "                         'debt': p.get('d'), 'payoff_yrs': p.get('y')})\n",
    "df = pd.DataFrame(rows)\n",
    "print(f'{len(df):,} Bachelor\\'s programs with reported 5-yr earnings')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "079d7e6b",
   "metadata": {},
   "source": [
    "## Earnings vs. debt\n",
    "\n",
    "Median 5-year earnings cluster in the $40k–$75k range, but the tail runs to six figures. Debt is strikingly flat by comparison — a first hint that *debt and earnings are weakly linked* (quantified in notebook 3)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ebd34545",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T18:49:44.204812Z",
     "iopub.status.busy": "2026-06-19T18:49:44.204812Z",
     "iopub.status.idle": "2026-06-19T18:49:44.539220Z",
     "shell.execute_reply": "2026-06-19T18:49:44.539220Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKIAAAGDCAYAAAAYrLi+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAc/VJREFUeJzt3QecE3X+//HPwu7Se1MEBEFRmqhgQRRR5KyAir13PVHPE8uJ7SxY4PQUu3L2iood9VRErOgJFsBCld7rUnaXzf/x/vqb/JNstmR3k5lsXk8f45Dku8nkm8nMJ59vmay6deuGDAAAAAAAAEiyGsl+AQAAAAAAAEBIRAEAAAAAACAlSEQBAAAAAAAgJUhEAQAAAAAAICVIRAEAAAAAACAlSEQBAAAAAAAgJUhEAQAAAAAAICVIRAEAAAAAACAlSEQBAAAAAAAgJUhEARnq22+/tYkTJ1q6+M9//mOTJk2yoDrppJMsLy/P+vfvH9g6HjJkiI0cOdLvzQiMrKws9xn9+9//9ntTAKDae+edd+y3334L395jjz3cefPcc8+1dNjeRCgW0HtTbJBMzZo1s0WLFtn5559vQZUOn/urr75qXbp08XszAqNXr162YcMG6927t9+bgmqMRBTSkk66OonFW2rVquX35iEJJ8Tjjz/ebrvtNuo2ie67774Sv1ennXZasfJHH320TZgwwebOnWvLli2z7777zm644QZr1KhRuV5vhx12sOuuu84+//xzW7JkiXueDz/80E444YS45XfccUd76qmn7I8//rAVK1a4xOTgwYPjli3PtoVCIZeYO/vss23XXXctdz0BQDrZaaedwsfyV155JW6ZOnXqhGOrH3/8MeXbmMn2228/V+9nnnlmwn97/fXX2/r16925EclRt25dO/XUU+2NN96w33//3cUUasS6+eabrUmTJhUuW5qmTZva6NGjbebMmbZmzRqbNWuWi9GUeIy1atWqEmO3kholFT8pjlI8pX2nXbt2UWUUMykeu/POO8u9zUCishP+CwDVQjq1cvzjH/9wrWn//e9/LZ0EpY6VxLvwwgute/fu7sfGoYceau+++6499NBDtnz58go95xVXXFEsMbjbbru55aijjrIDDjjA8vPzS30OBT99+vQJ327YsKG1bNnS9t9/f9t3333t73//e/ix1q1bu95lrVq1ikpQvvDCC+69PffccxXatvHjx9sdd9xhV199tZ1zzjkVqgsASAcbN260v/zlL+54unjx4mLnicaNG7syqTJ16lSrV69eyl6vutluu+1cQ8ott9xiBQUFli6C8rlrf7/mmmvcd6JTp07Wt29f+/777+3JJ5+01157zYqKily5v/3tbzZixIiov1XvKS0nnniiiylWrlyZcNmSqMHsk08+sZ133jl83/bbb2/nnXee20b1tlPysSKU7FTsF5k403dfz6tl6dKl4cceeOAB15vt4IMPdtsDVDV6RCFtvf322+5EFrts3brV701DFVIrjRInL774IvVaAcOGDXMJH7W41q9f32rWrOkCoquuuspuvfXWElviYr9XkYkeufTSS62wsNAFXW3atHGtdAqO1HrXrVu3qCGKJVFvJSUZ99lnH/f3bdu2dUH1unXrXMAV2Xp40003uSSUWhl32WUXa968uV188cUu+FYiSe+totv28ssvuxZCPScAVFf6UakkfLyeNzr2qpeEenAgPegzq1Gjhr300kt+b0rayc7Otrfeessuu+wy69y5s4uNGjRoYP369XMxkxrEPOpZ9Oyzz9qgQYNccqhFixZ2xBFHuB5PilEvuuiiCpUticrob9VbXI11iskUtykOU+/tK6+8stjfjBs3Lu5vokhq7FMvcMVHl1xyiYt5FE+9/vrrLtGlXuORPv30U9dLUvEYkAwkopCRdBDXySKyN0Zk64CGCemg7rn77rtdef2g1YH6l19+ca0RPXr0KPV1dJAfNWqUzZgxo9SutbVr17azzjrLdYNdsGCBCwTV+2fgwIHFnrO0bVGvIQWaaiV7/vnnXYvnwoULbezYsa7lJ1K8+YsS+Xu54IILbNq0aa5bsJ5PrSrx5kpSokE9T+bMmeN64Hz99dc2fPjwcrWIHXPMMS5AUN3E8rZXQ7Y0vl8tObNnz3a9W0QBmlqmfv31V9cC5ZUtqfeShiyo/levXu3eT0kBg+ZiiHzfxx13XNxy8epYiRElgKZMmeK6Rc+bN8/Nf6UkTEnvr7yfR0mJKLVwa2idggm1hOnzUGKnMj84NARW2/f444+7fXvLli3uPXnDA9Tzqizaf+6//377+eef3d+r3vUZfPTRR+4z13dRcnNzXaJI9aU5JRQYbd682Z555hl77LHHXJB2+OGHV3jb3n//ffc3Rx55ZIXrAwCCbu3a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y8XS0D0tkcGpKNCNDHa92/SIiq+sBFPo/8okkoj686/+f/1nOvZB6o/9L73xHQ5O/XFOAQAAqEaTlcv1119vF154oZ111ln2/vvvl/vv9thjDzfZ+IIFC8L3TZw40fWq8uZukgEDBrjeSpMmTUq4HAAAAAAAAKpJIuqyyy6zq6++2s3z9M4777geRt4S6amnnrKjjz7atttuO9c9/uyzz3bzNel+DcXy3H///VavXj276667rFGjRtazZ0+74YYb3NxTmow80XIAAAAAAACoJomoYcOGuS7vDz/8sK1evTpqiZw0XAmjY4891l1N77vvvrMzzzzTrrzySrv88sujnk9X1dNE5prE/LfffrNx48bZyy+/7JJdFSmH9DFvwyo7+aPHSx1aCQAAAKSSYtPjjz+eGBUAgjJH1C677FKucjNnznS9oMpj6tSpdthhh1VZOaSHdfmbbcKCn61g3Tq/NwUAAAAIX/37vffeozYAIEhzRAFVoWWdBnZF9wHWqlUrKhQAAACBoNhUU4oQowJA8pCIgi+2r9vIbup1tLv6IQAAABAEik3/+c9/EqMCQBKRiAIAAAAAAEBKkIgCAAAAAABA8CYrBwAAQOlatmxpe+21l9WrV89mzJjhlpLsu+++1qlTJ1u8eLG72nBhYWFKygEAAPiFRBR8sXbrZntj7lRbu3YtnwAAoNp4/PHH7dhjj7XPP//cnePuv/9+lxA655xzbNOmTeFyubm59sorr1jXrl3tk08+sd69e1t+fr4dffTRtmLFiqSVA1A6fW9ff/11YlQASCISUfDF/I2r7KxPn7KCefP4BAAA1ULNmjXt4IMPtsMOO8y+/fZbd1+HDh3sq6++squvvtpuvvnmcFldlUu9pnr16mXLli2z2rVr2+TJk23UqFF21llnJa0cgNLNmzfPTj/9dKoJAJKIOaLgi5waNa113UaWk5PDJwAAqBaKiorsiCOOCCehZO7cufbdd99Znz59osqeccYZrgeTkkayZcsWGzt2rA0ePNgaNmyYtHIASqfYtHXr1sSoAJBE9IiCL7o02d4mDbrK9r//Y5s2bRqfAgAg7YVCIfv111+j7svKyrL27dtHJadatGhhbdu2LXb+mzp1qhti161bN/vyyy+rvByAsml46xdffGH7779/wjHqyH7flPr4dZP24SMAABJRAAAAyfPXv/7VDc+78soroyYzl9i5m1auXBn1eFWXi0eJqlq1aoVv16hRI5xA04LK8eqRukzP+kz4dbIq8XyV+dsKYv+kPoOM/bN61yk9ogAAAJJA80Xddttt9thjj9kHH3xQLNmjHlSRvNve41VdLh7NLTVixIjw7by8PBsyZIhLnsU+HxKnYL9du3ZxPx8Esz7btGkTXm/cuDGhv23cOrfUxzt27JiUv60o9k/qM8jYP5NXpySiAAAAqqG9997bXnzxRXvrrbeiekPJ6tWr3bpx48ZR9zdq1Mit16xZk5Ry8YwePdrGjBkTvq2klYYmaW6rbdu2JfiuEcsL9mfPnk0iKk3qs379+m69cOFC9zqJWNsmv9THS3u+yvxtRbF/Up9Bxv6ZvDrVRRmaN29ufqJHFAAAQBXq0aOHu/z7p59+aueee66bxDzSokWLbNWqVdalS5eo+5UAUtnp06cnpVw8+fn5bom88p/oRz49eKqGV5fUZ/rVZ8KvEarE81XmbyuB/ZP6DDL2z6oXlPMRiSj44sdVi6zl03+3gvN6W471ilumYNgTKd8uAAAqY+edd7Y333zTTU5+2mmnWWFhYdxySlQNHTrURo4caVu3bnX3nXrqqTZ58mRbvnx50soBKN0PP/xgTZo0sYKCAqoKAJKERBR8EbKQ5RfR5R8AUH3UqVPH3n77bbf++OOP7Ywzzgg/tn79ehs3blz4tuaO6t+/v7377rs2fvx4O+CAA9zV7QYOHBj1nFVdDkDp1FMgspcgAKDqlTx7JZBEHRu2sHcOG+bWAABUB9nZ2W5S8pdfftn1jNIQPW/p3LlzsSva9e3b1yWn2rdvb1OmTLHevXvbzJkzk1oOQOk6depkEyZMcGsAQHLQIwq+qJ9Ty/puv7NbAwBQHWzYsMEuv/zyhMo/+uijKS8HoPTJyg888MDwpOUAgKpHjygAAAAAAACkBIkoAAAAAAAApASJKAAAAAAAAKQEiSj4YsHGNXbp5y+6NQAAABAECxYssL/+9a9uDQBIDiYrhy9Wb82zZ3//mtoHAABAYKxatcqefvppvzcDAKo1ekTBF01r1bPTd97XrQEAAIAgaNasmZ155pluDQBIDhJR8EXb+k1sTN+T3RoAAAAIgrZt29pDDz3k1gCA5CARBQAAAAAAgJQgEQUAAAAAAICUIBEFAAAAAACAlCARBV9sLNhqny/53a0BAACAINi4caN99tlnbg0ASI7sJD0vUKrZ61fYUe8/QC0BAAAgMGbNmmWHH36435sBANUaPaLgiyzLstwaNd0aAAAACIKsrCzLzc11awBAcpCIgi96NNvBlp95j1sDAAAAQbD77rvbmjVr3BoAkBwkogAAAAAAAJASJKIAAAAAAACQEiSiAAAAAAAAEMyr5rVu3dr69etnLVu2tNmzZ9sHH3xgBQUFccv279/f9thjD1u3bp29++67tnTp0pSUQ2JyHjiPKgMAAAAAAMHqETVq1Cj7+eefbciQIdaqVSu76aabbOrUqbbbbrtFldNVJp566ikbO3astWjRwg499FBXrm/fvkkth/QxY80S6/LyjW4NAAAABMH06dNt5513dmsAQAB6RPXs2dOOOeYYmzRpkrt944032uTJk+2ee+6xww8/PFzuxBNPdOX22Wcf++WXX9x9jzzyiFt69OhhRUVFSSmH9FFQtM0Wb1rn92YAAAAAYRrpsXjxYmoEAILSI+rss88OJ6GksLDQPv74YzdcLtJJJ51kn3/+eThpJI8//rh16NDB+vTpk7RySB871m9mTx10llsDAAAAQdC+fXt79tln3RoAEIBE1MKFC4vd1717d5s/f36xnlM//fRT1H0a0ie777570sohfTSuVceGdNjDrQEAAIAgaNy4sR177LFuDQAIyGTlkY4++mgbMGCAXXnllVH3N23a1FavXh1139atWy0vL8+aN2+etHKxcnNzrVatWuHbNWrUCM85pSXy397tTJRlWZX626wKPUdWzDPEKZEhnwn7IPXH/pfe+A4Hq/4y5dwBAACQriqciFIvpccee8zefvttN1dTrFAoVK7nqepykYYPH24jRowI31biShOta0if93wKWNu1a1fh16gOshuWnMwri5JIbes3cf8KWfnrr029xuH1xoItccsUduxomYB9kPpj/0tvfIeDVX8kogAAAKphIqpz5872xhtv2Pfff29nnnlmscfVe6lZs+i5f9QzqV69erZq1aqklYs1evRoGzNmTFSPqK5du9rcuXNt27ZtUQHr7NmzMzYRlbN+ZYX/9s/eTCGbs35VQomo+jm13Xph3lqbU8LrF8yebZmAfZD6Y/9Lb3yHg1V/NWvWdFfYBQAAQDVJRO24446uF9Rvv/1mxx9/vBsiF2vatGlu7qhI3bp1Cz+WrHKx8vPz3RIZ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Xbt21O1atWrZq6++arvssot99NFHtvfee7v7jzzySFu+fHnC5YCqMrLfN9WyMrds2GY/f7DarQEAyUEiCr5YkLfGLvviJWofAJCx5s+fb1deeWWpZa666irXc6pXr162YsUKl3CaPHmyjRo1ys4888yEywEo3YblBfbxfYupJgBIIiYrhy9q18yxXRtv59YAACC+008/3caNG+eSS7J161YbO3asDRo0yBo2bJhwOQClq5mbZU3b1XJrAEBykIiCLzo3bmVfH/MPtwYAIBMpQXTKKafYiSeeaD179iz2eMuWLa1NmzY2bdq0qPunTp1qubm51r1794TKAShb07a17PRHdnZrAEByMDQPAADAp0TUwIEDXbJowIABNmXKFDvrrLNs5cqV4QSTeLc9q1atcusWLVokVC4evbaG8Xlq1PizjTIrK8stqByvHgNZl2VsUpnb7MdbyopYkvkaka8VEMnYhwK9f6Yh6pP6DLqsAH3nSUQBAACk2EsvvWQjRowIX9WuXbt29tlnn9n999/vekmJFyiGQqGov/VuRyaNylMunuHDh7vt8OTl5dmQIUOsQ4cOxZ4PidNno8823ufjt8atc0t9XFdfrMzfJ0vDljlmSazKBi1ywuuCzUUWFGV9HtVt/0xH1Cf1mS77aBaJKAAAgMzz/fffR93+448/7Pnnn7eLL77YBYj6Ubh69Wr3WJMmTaLKNm7c2K29x8tbLp7Ro0fbmDFjwreVtOratavNnTvXtm3jqmGV5QX7s2fPDtwP/bVt8kt9XNtcmb9Piv/rpbR2SX7SklE5df5M3G5YUWBrF/vwHiv4eVS3/TMdUZ/UZ7rso/PmzbPmzZtXvx5RJ5xwgt17773F7leL21NPPRV132677Wa33nqr7bHHHrZu3TrXQqigqKioqELlkB50stu6rZCTHgAA/2fLli2WnZ3tkkFKAi1atMgNt+vSpUtUHSlRpPhn+vTp7nZ5y8WTn5/vFk/NmjXD52l+mFYNry4DV59lbE6Z2+vX2wlFLMlQZFZYUOTWvr3HOJK1/wR2/0xT1Cf1GXShgHzfk5KI0nwDtWvXtp122inq/k2bNkXd3m677ez999+3d9991w488EBX/umnn7amTZvatddem3A5pI8fVy+yVs+UfslqAACqIyWaNPQtsodDvXr1bOjQofbll19G9UR67bXX7Pjjj7eRI0e6RJWcdtppNmnSpPAV8hIpB6B0K+ZssQcHz6CaACBd54hSz6XSXHrppVZYWGiXXXaZW6tFT72e1JvqX//6VzhwKm85AACAdOga/8ILL9gvv/xiP/30k9WvX9/1JleMc/nll0eVvf32261///42YcIEe+ONN+yAAw6wXXfd1U1yXpFyAAAAfit59soU0BViPv30Uxd4eT788EPLycmxgw46KOFySB+7NGplkwYNd2sAADKJejztu+++9vLLL1udOnVcDyZNX7Dnnnvar7/+WuzKd3379rXnnnvO9RDXhOa9e/eucDkApWvStpadfH9HtwYApFmPKA3P++GHH6xu3bqu6/mTTz7pAq5IGmL3zjvvRN2n3k66goy6rCdariKXJA7SJQyTJSuJ157Vc2dV4DXqZOfa7s3aunUyty+IYve1TNgHk4n6o/78xj4YrPpLl2Op5md477333FIWXclu7NixVVYOQMmyc7OsZac6bg0ASKNElFr2brvtNnv77bfdvFBHH320Pfzww66l75prrgmXU5Jq8+bNxf5e96mbeqLlKnJJ4ky4zGZ2w+TNiK8kUtv6ukpPloUSmNGxTb3G4fXGgj/nssgUhTGX382EfTCZqD/qz2/sg8Gqv3RJRAEAAGSqpCSiXn311ajbuiywLimsxNDdd9/tuo97CavIHkseTXQemXgqb7mKXJI4Ey6zmbN+ZdKe+8/eTCGbs35VQomo+jm13Xph3lqbk8TtC6S/9S9Wh9kNm9kf6zu6Oiy49AnfNi0dZcJ3OJmoP+qwuu2DuupbixYtqmDLAAAAkHaTlUeaMmWKCw533HHHcCJq/vz51qZNm6hyLVu2dEPq/vjjj/B95S1X0UsSV/fLbCaSIKrY8//5Gom9jlc20b+rniLrsLruh8lU3b/DyUb9UYfVaR/kOAAAABBsKZusfLfddnPrJUuWhO/TRJoHHnhgVLl+/fpZUVGReyzRckgf8zassjMnPunWAAAAQBCsX5Zv7478w60BAGnUI+rf//63vfLKK/a///3PJYsOP/xwu/rqq92QvchE1AMPPGCnnnqqm8fpjjvucL2err/+eve3CxYsSLhcJst54DxLJ+vyN9ub86b5vRkAAABA2NaNRTbr8/XUCACkW48oXR3v2muvtXnz5tnSpUvt9ttvd/M1nX/++VHlZs2aZUOHDnUTiK9cudIlrr744gu79NJLK1QO6aNF7QZ2SdeD3BoAAAAIgrqNa9oexzRzawBAciSlR9RXX31lgwYNchOQaoJwb2LweCZNmmS9e/d2k5FrPqeS5nYobzmkh9b1Gtntex9jny+dZSu2bPB7cwAAABBhZL9vMrI+6jXLsQPP394W/phnm9aW/BsGABDQycqVLCotCRVp69atVVoOAAAAAAAAGTpZOQAAAAAAADIbiSgAAAAAAACk/9A8oLSr5k344ye3BgAAQNXL1HmeKiM/r8jmfL3erQEAyUEiCr6Yt2GVnfzxE9Q+AAAAAmPd0nx7+5Y//N4MAKjWGJoHX2Rn1bBmteq5NQAAABAENWqa1WlY060BAMlBFgC+6Nq0tc0+ZaRbAwAAAEHQrH1tu+Cl3dwaAJAcJKIAAAAAAACQEiSiAAAAAAAAkBJMVg4AAACkIa6KBwBIRySiAAAAACCNk47XTdonZdsCAJVFIgq++Gn1Imv73NWWV5jPJxAj54HzSqyTgmFPUF8AAABJsnLuFnv4uBlWsLWIOgaAJCERBV8UhUK2oWArtQ8AAIDACBWZ5W8mCQUAycRk5fDFTg1b2GsDL3JrAAAAIAgat861Ibfu6NYAgOSgRxR80SCnlh2yw25uDQAAgOKYjDz1curUsB33amA5dZb58OoAkBnoEQUAAAAAAICUoEcUAAAAAGSo2/t9bRYq+XGuyAegqpGIAqrJFfWEq+oBAAAAAIKMRFQ1SUCkm4Ub19jwr8a5NQAAABAEG1cU2MSHFrs1ACA5SETBF6u25tkTv3xO7QMAACAwNq/fZj++s9qq08T2DK0DEDRMVg5fNM6tayfs1MutAQAAgCCoVb+mde7fyK0BAMlBIgq+2LFBU3us3+luDQAAAARBw1Y5dthVbd0aAJAcJKIAAAAAAACQEiSiAAAAAAAAkBJMVg4AAAAEcJJpAACqIxJR8EVeQb5NWT7XrVF1ch44r9THC4Y9QXUDAACUFCttKbIlMze5dbVPdmaZNW6da2sXE48DSC0SUfDFrPXLbeC7/6b2AQAAEBhrF+XbK1fO8XszAKBaIxGVJj1ZAAAAAAAA0h2TlcMXuzdrY2vPvs+tAQAAgCBo0bG2Xf5eN7cGACQHiSgAAAAAAACkBIkoAAAAAAAApASJKAAAAAAAAKQEk5UDGaSsSfELhj2Rsm0BACAT/H3vcba2Tb5ZyO8tASpmZL9vSnzsukn7UK0J1llZqFNkAhJR8MUva5faHq/eaos3reUTSJNEFUkqAABQ3a3+Y6s9de5vtnFlgd+bUi0SLmUlVSr79wDSU1olonr06GE9e/a09evX28cff2wbNmzwe5NQQVu3FdrcDSupPwAAqlDfvn2tY8eOtmTJEps4caIVFPBjOtlK/SGdlfSXRxXbVhCydUvyqdcM6FlETy/AP2mTiBo9erSdcsop9s4771j79u3t3nvvtWOOOcamTZvm96ahAnas39Su2/NIG/n9uzZ/42rqEACASqhVq5a9+uqrtssuu9hHH31ke++9t7v/yCOPtOXLl2dE3fKjElWhYasc2+/0VvbVs8ts/TISuX4mkpB4ndIDDekiLRJRgwYNsgsvvND69etn33//vbvv2WeftbFjx1qvXr0sFAql/dw8maZxrbp2Ysde9tD0iSSi0kQy92GG/QFA5Vx11VWu57jiohUrVrjE1OTJk23UqFF25plnUr1l4McyPLXq17RdD25s349faUYiKmMxZBBIrrRIRJ1++un21VdfhZNQ8tBDD4Vb/L75hkw7kKlJsCyNe/j3xJRuDwAEMVYaN26cS0LJ1q1bXYPdnXfeaQ0bNnTTGgBAJsnEBHMmvmekp7RIRO2555722muvRd3nDcnTYySigMzubZV94/GWs36lheJckojeVgCqu5YtW1qbNm2KTVcwdepUy83Nte7du9sXX3xhmYwfZwCSfkzJMmvcOrfSV8n083gV1Dm56KFW/aRFIqpFixa2cmX0xNabN2+2vLw891hJFHypa7qnRo0abl2zZk3Lyvpz9kitdX92dnalh/hljzqj5AcLiqw6Um+UrPxCq1lQFDcJUKL8be7z01p/m8kqXIcoV/3VvPectKypwqueqfjxphx/76nKY2B5lLXdZSnv+0qlVNdhdVPV9eed6zMtESWxsdKqVavcurKxUlW6Yf+PLVkKbIsFUX5omxUYcw2lS33mF4VcjJpftNkKbKtVd+yf1GdV+We/SRU+RisGKC0+KOv4Hu/vYSXWqc7xfstOlwqLF5zqvtICzuHDh9uIESPCt9VdXROea/6EWM2bN6/8ho77xTJVk4T/4hcb8ujHlqtebUnZokyoQ1Tr+vu/iYYrfLwp6++TcQxMxXEywfeVSimrw2qqqutPQda2bdssE3gJo9hYybtdVbFSVfig4B+Wceb7vQHVTLLr8zez54dY5mD/pD4DwLvARknxQVnnjtL+HiXHXH7GSmmRiFqzZo01aRL9MzMnJ8fq1q1rq1evLvVKe2PGjIm6TxWteRM89evXt99//9123nln27hxYxK2vnqj/qhDv7EPUn9+Yx8MXv0psMrPz5zLr3uxUGys1Lhx46jHKxoroeI4PlQt6pP6DDL2T+oznfbRzZs3+xorpUUi6qeffrIuXbpE3afbauH7+eefS/w7VWxZlVtUVGT16tVz60xpOa1K1B916Df2QerPb+yDwau/TDufL1q0yA3Li42Vunbt6up1+vTplYqVUHEcH6oW9Ul9Bhn7J/WZTvtovs/n/rSYSEFXgenXr5+1a9cu6uowS5YscZcmBgAAyGS6qMvxxx9vtWvXDt932mmn2aRJk8JX0gMAAAiCtOgR9eyzz9oxxxxj7733nj355JPWoUMHO/nkk+3UU0+1ggImfwQAAJnt9ttvt/79+9uECRPsjTfesAMOOMB23XVXGzhwoN+bBgAAkH6JKHWxVyLquOOOsz322MMWLFhg++67rxvfWFmaA0HBG3MhUH9+YR+k/vzE/kcd+o19sGroCnl9+/a1k046yTp16mSfffaZ/fWvf7Xly5dX0SugIti/qxb1SX0GGfsn9Rl0WwOU+8iqW7cu15oGAAAAAABA0qXFHFEAAAAAAABIfySiAAAAAAAAkBIkogAAAAAAAJASGZuI2n///d1VZX766Sd3hZmjjz7aqqvdd9/dfvvtt2LLDTfcUKxss2bN7L777rPvv//evvnmG7vpppuiLgXtd7lUaNCggZ111ln23//+19WTrjxUknPOOcc+/fRT+/HHH+2FF16w3XbbLS3LVbV+/frZE088Yb/88ouNGjUqbpmLL7447n45YMCAuPvwyy+/7N7Hxx9/7C5JHo9f5apSdna2uyqoLsU+depUe//9911d6f5Y9erVcxMOfvvtt/a///3P1XWjRo3SrlxV00UtHnroIfv666/tiy++cMeWHXbYIe4VWePtg3Xq1ClWdujQofbhhx+6fUGfTe/eveO+tl/lqtLw4cPDdfHzzz+7c+S5555rNWvWLFZ2p512sqeeesp++OEHmzx5sl1yySWWlZWVduWQ2RRvaJL3d9991+33ukBOSTLpWFBRbdu2dcf+iRMnuuP/M888447L8eh96P3ofen96X0GqVwQRMZL06dPD8cFOTk5cete8de0adPc+e+KK66wGjVqBKZcEL344ouubo8//vhij9WvX99Gjhzp9uPvvvvO7r77bmvYsGFgygWFfrvFxlKffPJJsXI6/1566aXufKzzss7P7du3D0y5IGnYsKHdfPPN9uWXX9qUKVPslltusbp16xYrpxyG4jTlNJTbUI4jHr/KlSY9jhBVTCeft99+231pBg8ebK+++qr7QTJo0CCrjnJzc92PsFNPPdUOOuig8HL//fdHldMP3Xfeecc6d+7sEjF/+9vfXDA2duzYQJRLlXHjxlmvXr1c4kb1VlJCTCdZBVr33nuvu6Lj6tWrXTCjk3E6latqOtBfc801LnGzZcsWa9q0aYkJv4KCgqh9UotOEpF23nln++CDD+yPP/5w+8Wjjz7q3tN5550XiHJVTScaBRzvvfeenXDCCfbII4/YVVdd5QL5WNpHDz30UHdlLCUKdGwbP358sR/aQS9XlXr06GGff/65FRUV2QUXXGCXXXaZCzZ0Io9NRjVv3txdWSx2H9y8eXNUuVNOOcUee+wx9xloX9APAX0+3bt3D0S5qqZ93asLnRefe+45dyy58847o8q1aNHCJexDoZDbV1VG3/0bb7wxrcoB//nPf9yxSj9OdJxQEj2eTDsWVJSSET179nQNnmeccYYtW7bMNYodfPDBUeW0/Xofej96X3p/jz/+uHu/QSgXFPqN4h2TjzrqKHvyySftuuuuc40skdTQo2Oe9l81aOlYN2zYMLvrrrsCUS6ILrroIhc36Hsf70e+GiO13yrxd/7559t+++3nEphBKRcU2223nUtERsZS2hdi3XrrrXbllVfabbfd5s7Lige176hDQhDKBUWTJk1cIk/HUf2eU0PJihUr3G/kSMpj6PigXIb+rdyGchz6HRuEcmXSVfMybfn4449Dn376adR9zzzzTOjXX3/1fduSsfTr1y8ku+66a6nlzj///FBBQUFo5513Dt93xBFHuL/t27ev7+VStdSvX9+t9913X7cNgwcPLlamefPmofXr14duvPHGqL+bO3du6JFHHkmbcsmsPy3Tp08Pvfjii3HL3XzzzaFZs2aV+XwvvPCCe57I+0aNGhVasWJFqGHDhr6Xq+rlH//4R6hbt25R91100UVuX+zatWux78gBBxwQvq9nz57u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",
      "text/plain": [
       "<Figure size 1200x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 2, figsize=(12, 4))\n",
    "ax[0].hist(df['earn_5yr'].dropna(), bins=60, color=GREEN, alpha=0.85)\n",
    "ax[0].axvline(df['earn_5yr'].median(), color='white', ls='--', lw=1)\n",
    "ax[0].set_title(f\"5-yr earnings (median ${df['earn_5yr'].median():,.0f})\"); ax[0].set_xlabel('$')\n",
    "ax[1].hist(df['debt'].dropna(), bins=60, color=PURPLE, alpha=0.85)\n",
    "ax[1].axvline(df['debt'].median(), color='white', ls='--', lw=1)\n",
    "ax[1].set_title(f\"Median debt (median ${df['debt'].median():,.0f})\"); ax[1].set_xlabel('$')\n",
    "plt.tight_layout(); plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bf06ccec",
   "metadata": {},
   "source": [
    "## The payoff metric\n",
    "\n",
    "`years_to_payoff` is a deliberately **transparent simplification**: it assumes a borrower puts **10% of earnings** toward debt each year.\n",
    "\n",
    "$$\\text{years to pay off} = \\frac{\\text{median debt}}{0.10 \\times \\text{median 5-yr earnings}}$$\n",
    "\n",
    "It ignores interest, taxes and living costs, so it *understates* real payoff time — it is a comparative lens, not a personal forecast. We recompute it to confirm it matches the published value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1203f816",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T18:49:44.539220Z",
     "iopub.status.busy": "2026-06-19T18:49:44.539220Z",
     "iopub.status.idle": "2026-06-19T18:49:44.553171Z",
     "shell.execute_reply": "2026-06-19T18:49:44.553171Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "recomputed payoff matches published for 100.0% of programs\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>major</th>\n",
       "      <th>school</th>\n",
       "      <th>earn_5yr</th>\n",
       "      <th>debt</th>\n",
       "      <th>payoff_yrs</th>\n",
       "      <th>recomputed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>California Polytechnic State University-San Lu...</td>\n",
       "      <td>68350</td>\n",
       "      <td>21903.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>California State University-Chico</td>\n",
       "      <td>64138</td>\n",
       "      <td>14750.0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>2.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>Delaware State University</td>\n",
       "      <td>47478</td>\n",
       "      <td>21500.0</td>\n",
       "      <td>4.5</td>\n",
       "      <td>4.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>Florida Agricultural and Mechanical University</td>\n",
       "      <td>42263</td>\n",
       "      <td>14000.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>3.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Agriculture, General</td>\n",
       "      <td>Illinois State University</td>\n",
       "      <td>64041</td>\n",
       "      <td>15750.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>2.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  major                                             school  \\\n",
       "0  Agriculture, General  California Polytechnic State University-San Lu...   \n",
       "1  Agriculture, General                  California State University-Chico   \n",
       "2  Agriculture, General                          Delaware State University   \n",
       "3  Agriculture, General     Florida Agricultural and Mechanical University   \n",
       "4  Agriculture, General                          Illinois State University   \n",
       "\n",
       "   earn_5yr     debt  payoff_yrs  recomputed  \n",
       "0     68350  21903.0         3.2         3.2  \n",
       "1     64138  14750.0         2.3         2.3  \n",
       "2     47478  21500.0         4.5         4.5  \n",
       "3     42263  14000.0         3.3         3.3  \n",
       "4     64041  15750.0         2.5         2.5  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chk = df.dropna(subset=['debt','payoff_yrs']).copy()\n",
    "chk['recomputed'] = (chk['debt'] / (0.10 * chk['earn_5yr'])).round(1)\n",
    "match = (chk['recomputed'] == chk['payoff_yrs']).mean()\n",
    "print(f'recomputed payoff matches published for {match:.1%} of programs')\n",
    "chk[['major','school','earn_5yr','debt','payoff_yrs','recomputed']].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7df814c4",
   "metadata": {},
   "source": [
    "## Suppression is never faked\n",
    "\n",
    "The Scorecard withholds (`PrivacySuppressed`) any cell built on too few students. We keep those as missing — never 0, never imputed. The counts:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "dc06975b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T18:49:44.554191Z",
     "iopub.status.busy": "2026-06-19T18:49:44.554191Z",
     "iopub.status.idle": "2026-06-19T18:49:44.558976Z",
     "shell.execute_reply": "2026-06-19T18:49:44.558976Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total field-of-study rows: 227,980\n",
      "Kept (observed earnings):   62,406\n",
      "Earnings-suppressed rows:   169,448\n",
      "Dropped (no UNITID / closed schools): 1211\n"
     ]
    }
   ],
   "source": [
    "q = load('quality.json')['programs']\n",
    "print('Total field-of-study rows:', f\"{q['fos_total_rows']:,}\")\n",
    "print('Kept (observed earnings):  ', f\"{q['programs_kept']:,}\")\n",
    "print('Earnings-suppressed rows:  ', f\"{q['earnings_suppressed_rows']:,}\")\n",
    "print('Dropped (no UNITID / closed schools):', q.get('dropped_no_unitid'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba6f705c",
   "metadata": {},
   "source": [
    "**Takeaway.** A clean, program-level ROI picture built only from observed federal data. Next: [notebook 2](02_jobs_ai_premium.ipynb) — where each degree leads, and how exposed those jobs are to AI."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
