{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "fc5537b6",
   "metadata": {},
   "source": [
    "# Build a U.S. Housing Affordability Index in Python\n",
    "\n",
    "## Complete reproducible analysis for the U.S. regional competitor article\n",
    "\n",
    "This notebook reproduces the article analysis with a frozen data snapshot checked on **August 20, 2026**. It includes national affordability trends, state rankings, Census region comparisons, mortgage rate sensitivity, and interactive Plotly charts.\n",
    "\n",
    "### Core model assumptions\n",
    "\n",
    "* 20 percent down payment\n",
    "* 30 year fixed mortgage\n",
    "* Principal and interest only\n",
    "* Housing payment limit equals 25 percent of annual household income\n",
    "* A score of 100 means median household income equals the model's qualifying income\n",
    "* A score above 100 is more affordable under the model\n",
    "* A score below 100 is less affordable under the model\n",
    "\n",
    "### Data concepts\n",
    "\n",
    "The national analysis uses **FRED MSPUS** for the median sales price of new houses sold, **FRED MORTGAGE30US** for the 30 year fixed mortgage rate, and **FRED MEHOINUSA646N** for median household income.\n",
    "\n",
    "The state analysis uses **2024 Census ACS 1 year** variables **B19013_001E** for median household income and **B25077_001E** for median value of owner occupied housing units.\n",
    "\n",
    "The national price series and state home value series are different concepts. They are analyzed separately and should not be treated as identical measures."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5288c5a8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:50.676199Z",
     "iopub.status.busy": "2026-08-20T15:50:50.676051Z",
     "iopub.status.idle": "2026-08-20T15:50:51.723885Z",
     "shell.execute_reply": "2026-08-20T15:50:51.722170Z"
    }
   },
   "outputs": [],
   "source": [
    "from io import StringIO\n",
    "from pathlib import Path\n",
    "import math\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import plotly.express as px\n",
    "import plotly.graph_objects as go\n",
    "\n",
    "pd.set_option(\"display.max_rows\", 100)\n",
    "pd.set_option(\"display.max_columns\", 30)\n",
    "pd.set_option(\"display.float_format\", lambda x: f\"{x:,.2f}\")\n",
    "\n",
    "OUTPUT_DIR = Path(\"housing_affordability_outputs\")\n",
    "OUTPUT_DIR.mkdir(exist_ok=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7f6b4c2",
   "metadata": {},
   "source": [
    "## 1. Load the frozen article snapshot\n",
    "\n",
    "The embedded tables make the notebook fully portable. You can run the core analysis without an internet connection or API key."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1ceca02e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:51.726541Z",
     "iopub.status.busy": "2026-08-20T15:50:51.726128Z",
     "iopub.status.idle": "2026-08-20T15:50:51.742829Z",
     "shell.execute_reply": "2026-08-20T15:50:51.742221Z"
    }
   },
   "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>Year</th>\n",
       "      <th>Median new home price</th>\n",
       "      <th>Median household income</th>\n",
       "      <th>Mortgage rate</th>\n",
       "      <th>Monthly principal and interest</th>\n",
       "      <th>Affordability index</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020</td>\n",
       "      <td>328150</td>\n",
       "      <td>68010</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1122</td>\n",
       "      <td>126.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2021</td>\n",
       "      <td>383000</td>\n",
       "      <td>70780</td>\n",
       "      <td>2.96</td>\n",
       "      <td>1285</td>\n",
       "      <td>114.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2022</td>\n",
       "      <td>432950</td>\n",
       "      <td>74580</td>\n",
       "      <td>5.34</td>\n",
       "      <td>1932</td>\n",
       "      <td>80.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2023</td>\n",
       "      <td>426525</td>\n",
       "      <td>80610</td>\n",
       "      <td>6.81</td>\n",
       "      <td>2227</td>\n",
       "      <td>75.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2024</td>\n",
       "      <td>418975</td>\n",
       "      <td>83730</td>\n",
       "      <td>6.72</td>\n",
       "      <td>2167</td>\n",
       "      <td>80.50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Year  Median new home price  Median household income  Mortgage rate  \\\n",
       "0  2020                 328150                    68010           3.11   \n",
       "1  2021                 383000                    70780           2.96   \n",
       "2  2022                 432950                    74580           5.34   \n",
       "3  2023                 426525                    80610           6.81   \n",
       "4  2024                 418975                    83730           6.72   \n",
       "\n",
       "   Monthly principal and interest  Affordability index  \n",
       "0                            1122               126.20  \n",
       "1                            1285               114.70  \n",
       "2                            1932                80.40  \n",
       "3                            2227                75.40  \n",
       "4                            2167                80.50  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "NATIONAL_CSV = r\"\"\"Year,Median new home price,Median household income,Mortgage rate,Monthly principal and interest,Affordability index\n",
    "2020,328150,68010,3.11,1122,126.2\n",
    "2021,383000,70780,2.96,1285,114.7\n",
    "2022,432950,74580,5.34,1932,80.4\n",
    "2023,426525,80610,6.81,2227,75.4\n",
    "2024,418975,83730,6.72,2167,80.5\n",
    "\"\"\"\n",
    "STATE_CSV = r\"\"\"Rank,State,Region,Median household income,Median home value,Estimated monthly payment,Affordability index\n",
    "1,West Virginia,South,60798,170800,884,143.4\n",
    "2,Iowa,Midwest,75501,227300,1176,133.8\n",
    "3,Mississippi,South,59127,186500,965,127.7\n",
    "4,Kansas,Midwest,75514,238700,1235,127.4\n",
    "5,Ohio,Midwest,72212,239800,1240,121.3\n",
    "6,Oklahoma,South,66148,222100,1149,119.9\n",
    "7,Illinois,Midwest,83211,280700,1452,119.4\n",
    "8,Indiana,Midwest,71959,243500,1260,119.0\n",
    "9,North Dakota,Midwest,77871,266100,1376,117.9\n",
    "10,Nebraska,Midwest,76376,263100,1361,116.9\n",
    "11,Arkansas,South,62106,215600,1115,116.0\n",
    "12,Alabama,South,66659,233300,1207,115.1\n",
    "13,Kentucky,South,64526,226000,1169,115.0\n",
    "14,Michigan,Midwest,72389,254200,1315,114.7\n",
    "15,Missouri,Midwest,71589,254400,1316,113.3\n",
    "16,Pennsylvania,Northeast,77545,277600,1436,112.5\n",
    "17,Louisiana,South,60986,223200,1155,110.0\n",
    "18,South Dakota,Midwest,76881,289600,1498,106.9\n",
    "19,Wisconsin,Midwest,77488,294700,1524,105.9\n",
    "20,Texas,South,79721,313200,1620,102.5\n",
    "21,Alaska,West,95665,376500,1948,102.3\n",
    "22,Minnesota,Midwest,87117,344600,1783,101.8\n",
    "23,New Mexico,West,67816,279900,1448,97.6\n",
    "24,Connecticut,Northeast,96049,396900,2053,97.5\n",
    "25,South Carolina,South,72350,299500,1549,97.3\n",
    "26,Maryland,South,102905,436300,2257,95.0\n",
    "27,Delaware,South,87534,371600,1922,94.9\n",
    "28,Vermont,Northeast,82730,352800,1825,94.4\n",
    "29,Georgia,South,79991,343300,1776,93.8\n",
    "30,Virginia,South,92090,403500,2087,91.9\n",
    "31,Maine,Northeast,76442,341900,1769,90.0\n",
    "32,Wyoming,West,75532,339500,1756,89.6\n",
    "33,North Carolina,South,73958,333000,1723,89.4\n",
    "34,New Hampshire,Northeast,99782,458800,2373,87.6\n",
    "35,Tennessee,South,71997,332600,1720,87.2\n",
    "36,New Jersey,Northeast,104294,496000,2566,84.7\n",
    "37,Florida,South,77735,396900,2053,78.9\n",
    "38,Arizona,West,81486,426000,2204,77.0\n",
    "39,New York,Northeast,85820,449800,2327,76.8\n",
    "40,Rhode Island,Northeast,83504,455700,2357,73.8\n",
    "41,Idaho,West,81166,446400,2309,73.2\n",
    "42,Nevada,West,81134,455500,2356,71.7\n",
    "43,Utah,West,96658,545200,2820,71.4\n",
    "44,Montana,West,75340,425400,2201,71.3\n",
    "45,Massachusetts,Northeast,104828,607400,3142,69.5\n",
    "46,Oregon,West,85220,497500,2573,69.0\n",
    "47,Colorado,West,97113,574600,2972,68.1\n",
    "48,Washington,West,99389,602200,3115,66.5\n",
    "49,District of Columbia,South,109707,733400,3794,60.2\n",
    "50,California,West,100149,759500,3929,53.1\n",
    "51,Hawaii,West,100745,875900,4531,46.3\n",
    "\"\"\"\n",
    "REGIONAL_CSV = r\"\"\"Region,Median state score,Scores at or above 100,Jurisdictions\n",
    "Midwest,117.4,12,12\n",
    "Northeast,87.6,1,9\n",
    "South,97.3,8,17\n",
    "West,71.4,1,13\n",
    "\"\"\"\n",
    "SENSITIVITY_CSV = r\"\"\"Mortgage rate,Monthly payment,Affordability index\n",
    "3,1413,123.4\n",
    "4,1600,109.0\n",
    "5,1799,96.9\n",
    "6,2010,86.8\n",
    "7,2230,78.2\n",
    "8,2459,70.9\n",
    "\"\"\"\n",
    "\n",
    "national_snapshot = pd.read_csv(StringIO(NATIONAL_CSV))\n",
    "states_snapshot = pd.read_csv(StringIO(STATE_CSV))\n",
    "regional_snapshot = pd.read_csv(StringIO(REGIONAL_CSV))\n",
    "sensitivity_snapshot = pd.read_csv(StringIO(SENSITIVITY_CSV))\n",
    "\n",
    "national_snapshot"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed04e81f",
   "metadata": {},
   "source": [
    "## 2. Define the mortgage payment and affordability formulas\n",
    "\n",
    "The loan amount equals 80 percent of home price under the 20 percent down payment assumption. Monthly principal and interest uses the standard fixed rate mortgage formula. Qualifying income equals annual principal and interest divided by the allowed payment share."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b7ed9653",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:51.744381Z",
     "iopub.status.busy": "2026-08-20T15:50:51.744244Z",
     "iopub.status.idle": "2026-08-20T15:50:51.752316Z",
     "shell.execute_reply": "2026-08-20T15:50:51.751076Z"
    }
   },
   "outputs": [],
   "source": [
    "def monthly_payment(home_price, annual_rate, down_payment=0.20, years=30):\n",
    "    \"\"\"Return monthly principal and interest payment.\"\"\"\n",
    "    loan = np.asarray(home_price, dtype=float) * (1 - down_payment)\n",
    "    monthly_rate = np.asarray(annual_rate, dtype=float) / 100 / 12\n",
    "    months = years * 12\n",
    "\n",
    "    # Handle a zero rate safely.\n",
    "    zero_rate_payment = loan / months\n",
    "    regular_payment = loan * monthly_rate * (1 + monthly_rate) ** months / ((1 + monthly_rate) ** months - 1)\n",
    "    return np.where(monthly_rate == 0, zero_rate_payment, regular_payment)\n",
    "\n",
    "\n",
    "def qualifying_income(home_price, annual_rate, down_payment=0.20, years=30, payment_share=0.25):\n",
    "    payment = monthly_payment(home_price, annual_rate, down_payment, years)\n",
    "    return payment * 12 / payment_share\n",
    "\n",
    "\n",
    "def affordability_score(home_price, income, annual_rate, down_payment=0.20, years=30, payment_share=0.25):\n",
    "    needed = qualifying_income(home_price, annual_rate, down_payment, years, payment_share)\n",
    "    return np.asarray(income, dtype=float) / needed * 100"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8229da7",
   "metadata": {},
   "source": [
    "## 3. Recalculate the national index\n",
    "\n",
    "This is a validation step. The recalculated values should closely match the rounded figures shown in the article."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6bc22a33",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:51.765063Z",
     "iopub.status.busy": "2026-08-20T15:50:51.764875Z",
     "iopub.status.idle": "2026-08-20T15:50:51.774992Z",
     "shell.execute_reply": "2026-08-20T15:50:51.774424Z"
    }
   },
   "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>year</th>\n",
       "      <th>home_price</th>\n",
       "      <th>income</th>\n",
       "      <th>mortgage_rate</th>\n",
       "      <th>article_payment</th>\n",
       "      <th>article_index</th>\n",
       "      <th>calculated_payment</th>\n",
       "      <th>calculated_index</th>\n",
       "      <th>payment_rounding_gap</th>\n",
       "      <th>index_rounding_gap</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020</td>\n",
       "      <td>328150</td>\n",
       "      <td>68010</td>\n",
       "      <td>3.11</td>\n",
       "      <td>1122</td>\n",
       "      <td>126.20</td>\n",
       "      <td>1,122.43</td>\n",
       "      <td>126.23</td>\n",
       "      <td>0.43</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2021</td>\n",
       "      <td>383000</td>\n",
       "      <td>70780</td>\n",
       "      <td>2.96</td>\n",
       "      <td>1285</td>\n",
       "      <td>114.70</td>\n",
       "      <td>1,285.19</td>\n",
       "      <td>114.74</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2022</td>\n",
       "      <td>432950</td>\n",
       "      <td>74580</td>\n",
       "      <td>5.34</td>\n",
       "      <td>1932</td>\n",
       "      <td>80.40</td>\n",
       "      <td>1,931.97</td>\n",
       "      <td>80.42</td>\n",
       "      <td>-0.03</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2023</td>\n",
       "      <td>426525</td>\n",
       "      <td>80610</td>\n",
       "      <td>6.81</td>\n",
       "      <td>2227</td>\n",
       "      <td>75.40</td>\n",
       "      <td>2,226.77</td>\n",
       "      <td>75.42</td>\n",
       "      <td>-0.23</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2024</td>\n",
       "      <td>418975</td>\n",
       "      <td>83730</td>\n",
       "      <td>6.72</td>\n",
       "      <td>2167</td>\n",
       "      <td>80.50</td>\n",
       "      <td>2,167.29</td>\n",
       "      <td>80.49</td>\n",
       "      <td>0.29</td>\n",
       "      <td>-0.01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year  home_price  income  mortgage_rate  article_payment  article_index  \\\n",
       "0  2020      328150   68010           3.11             1122         126.20   \n",
       "1  2021      383000   70780           2.96             1285         114.70   \n",
       "2  2022      432950   74580           5.34             1932          80.40   \n",
       "3  2023      426525   80610           6.81             2227          75.40   \n",
       "4  2024      418975   83730           6.72             2167          80.50   \n",
       "\n",
       "   calculated_payment  calculated_index  payment_rounding_gap  \\\n",
       "0            1,122.43            126.23                  0.43   \n",
       "1            1,285.19            114.74                  0.19   \n",
       "2            1,931.97             80.42                 -0.03   \n",
       "3            2,226.77             75.42                 -0.23   \n",
       "4            2,167.29             80.49                  0.29   \n",
       "\n",
       "   index_rounding_gap  \n",
       "0                0.03  \n",
       "1                0.04  \n",
       "2                0.02  \n",
       "3                0.02  \n",
       "4               -0.01  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "national = national_snapshot.rename(columns={\n",
    "    \"Year\":\"year\",\n",
    "    \"Median new home price\":\"home_price\",\n",
    "    \"Median household income\":\"income\",\n",
    "    \"Mortgage rate\":\"mortgage_rate\",\n",
    "    \"Monthly principal and interest\":\"article_payment\",\n",
    "    \"Affordability index\":\"article_index\",\n",
    "}).copy()\n",
    "\n",
    "national[\"calculated_payment\"] = monthly_payment(national[\"home_price\"], national[\"mortgage_rate\"])\n",
    "national[\"calculated_index\"] = affordability_score(national[\"home_price\"], national[\"income\"], national[\"mortgage_rate\"])\n",
    "national[\"payment_rounding_gap\"] = national[\"calculated_payment\"] - national[\"article_payment\"]\n",
    "national[\"index_rounding_gap\"] = national[\"calculated_index\"] - national[\"article_index\"]\n",
    "\n",
    "national.round({\"calculated_payment\":2, \"calculated_index\":2, \"payment_rounding_gap\":2, \"index_rounding_gap\":2})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d772e44e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:51.776198Z",
     "iopub.status.busy": "2026-08-20T15:50:51.776071Z",
     "iopub.status.idle": "2026-08-20T15:50:51.781154Z",
     "shell.execute_reply": "2026-08-20T15:50:51.780509Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation passed. The formula reproduces the published national table within rounding tolerance.\n"
     ]
    }
   ],
   "source": [
    "assert national[\"index_rounding_gap\"].abs().max() < 0.15\n",
    "assert national[\"payment_rounding_gap\"].abs().max() < 1.0\n",
    "print(\"Validation passed. The formula reproduces the published national table within rounding tolerance.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1becf5a1",
   "metadata": {},
   "source": [
    "## 4. National affordability trend\n",
    "\n",
    "The score falls from 126.2 in 2020 to 75.4 in 2023, then improves to 80.5 in 2024. The main pressure comes from the combined rise in home prices and mortgage rates. Income rises too, but not enough to offset the payment shock."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "97092426",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:51.785354Z",
     "iopub.status.busy": "2026-08-20T15:50:51.785194Z",
     "iopub.status.idle": "2026-08-20T15:50:52.037687Z",
     "shell.execute_reply": "2026-08-20T15:50:52.037086Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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TqcTn3zyifD39xfW1tYiJCREhIeHi6effrrCFOPGTH8uhBCXLl0Sjz32mHBychI2NjaiU6dOIjw83GBM+We4bt26SuvbsGGDaNWqlbC2thatW7cWGzdurLS2FStWiGbNmum3t5UrV1Y6RX15rT/++KN+fEhIiNi1a5fBuPud/ry0tFS8/vrrwt3dXUiSVOlU6K+++qoAIH7++edK33Nl7jT9+e3T6pf389b3o9VqxezZs4W3t7ewtbUVvXv3FqdOnap028/JyRHvvPOOaNq0qbCyshJubm6iW7du4vPPPxfFxcUiMTFRqNVqMXTo0Ao1jhw5Utjb24vLly9X+X0RUf0mCcHj2EREZF6ioqIQEhKCH3/8EU888YTc5dAt3nzzTaxYsQIpKSmws7OTuxwiItnwGikiIpJVZbMkLly4EAqFAg8//LAMFdGdFBYW4scff8To0aMZooio3uM1UkREJKv58+fjxIkT6NOnDywsLLBlyxZs2bIFL774YoXZE0keaWlp+Oeff7B+/XrcuHEDb7zxhtwlERHJjkGKiIhk1a1bN2zfvh0fffQRcnNz4efnhw8++ADvvvuu3KXRTWfOnMETTzwBDw8PLF68WD9zIxFRfcZrpIiIiIiIiIzEa6SIiIiIiIiMxCBFRERERERkJF4jBUCn0yEpKQmOjo73vPkjERERERHVXUII5OTkwMfH5643YGeQApCUlMSZoYiIiIiISC8xMRENGza84+MMUgAcHR0BlDVLpVLJWosQAhqNBmq1mkfHTID9NS3217TYX9Nif02L/TUt9te02F/TM6ceZ2dnw9fXV58R7oRBCtB/WCqVyiyClBACKpVK9o2oLmJ/TYv9NS3217TYX9Nif02L/TUt9tf0zLHH96qDk00QEREREREZiUGKiIiIiIjISAxSRERERERERmKQIiIiIiIiMhKDFBERERERkZEYpIiIiIiIiIzEIEVERERERGQkBikiIiIiIiIjMUgREREREREZiUGKiIiIiIjISAxSRERERERERrKQuwD6l1YncDTuBuJTM9HIsxSdAlyhVEhyl0VERERERLdhkDITW08lY/YfZ5CsKdQv81bbYNbQ1hgQ6C1jZUREREREdDue2mcGtp5Kxis/RhiEKABI0RTilR8jsPVUskyVERERERFRZRikZKbVCcz+4wxEJY+VL5v9xxlodZWN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",
      "text/plain": [
       "<Figure size 1000x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(10, 5.5))\n",
    "ax.plot(national[\"year\"], national[\"calculated_index\"], marker=\"o\")\n",
    "ax.axhline(100, linestyle=\":\")\n",
    "ax.set_title(\"U.S. housing affordability index\")\n",
    "ax.set_xlabel(\"Year\")\n",
    "ax.set_ylabel(\"Affordability index\")\n",
    "ax.grid(alpha=0.2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "49040970",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:52.039113Z",
     "iopub.status.busy": "2026-08-20T15:50:52.038972Z",
     "iopub.status.idle": "2026-08-20T15:50:54.948119Z",
     "shell.execute_reply": "2026-08-20T15:50:54.947356Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "customdata": {
          "bdata": "AAAAAFgHFEEAAAAAoJrwQOF6FK5H4QhAI5BtIbiJkUAAAAAAYGAXQQAAAADAR/FArkfhehSuB0B9l6jbxhSUQAAAAADYbBpBAAAAAEA18kBcj8L1KFwVQEq2P+vcL55AAAAAAHQIGkEAAAAAIK7zQD0K16NwPRtA/2+JhotloUAAAAAAfJIZQQAAAAAgcfRA4XoUrkfhGkD+MGsgle6gQA==",
          "dtype": "f8",
          "shape": "5, 4"
         },
         "hovertemplate": "Year %{x}<br>Index %{y:.1f}<br>Home price $%{customdata[0]:,.0f}<br>Income $%{customdata[1]:,.0f}<br>Mortgage rate %{customdata[2]:.2f}%<br>Monthly P&I $%{customdata[3]:,.0f}<extra></extra>",
         "mode": "lines+markers",
         "name": "Affordability index",
         "type": "scatter",
         "x": {
          "bdata": "5AflB+YH5wfoBw==",
          "dtype": "i2"
         },
         "y": {
          "bdata": "J/GYzeaOX0AksWlYHq9cQKh2xtUWG1RAdca8d7faUkB4bptkIR9UQA==",
          "dtype": "f8"
         }
        }
       ],
       "layout": {
        "annotations": [
         {
          "showarrow": false,
          "text": "Score of 100",
          "x": 1,
          "xanchor": "right",
          "xref": "x domain",
          "y": 100,
          "yanchor": "bottom",
          "yref": "y"
         }
        ],
        "shapes": [
         {
          "line": {
           "dash": "dot"
          },
          "type": "line",
          "x0": 0,
          "x1": 1,
          "xref": "x domain",
          "y0": 100,
          "y1": 100,
          "yref": "y"
         }
        ],
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "white",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "white",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "#C8D4E3",
             "linecolor": "#C8D4E3",
             "minorgridcolor": "#C8D4E3",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "#C8D4E3",
             "linecolor": "#C8D4E3",
             "minorgridcolor": "#C8D4E3",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermap": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermap"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0.0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1.0,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0.0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1.0,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "white",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "#C8D4E3"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "white",
          "polar": {
           "angularaxis": {
            "gridcolor": "#EBF0F8",
            "linecolor": "#EBF0F8",
            "ticks": ""
           },
           "bgcolor": "white",
           "radialaxis": {
            "gridcolor": "#EBF0F8",
            "linecolor": "#EBF0F8",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           },
           "yaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           },
           "zaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           },
           "bgcolor": "white",
           "caxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "#EBF0F8",
           "linecolor": "#EBF0F8",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#EBF0F8",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "#EBF0F8",
           "linecolor": "#EBF0F8",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#EBF0F8",
           "zerolinewidth": 2
          }
         }
        },
        "title": {
         "text": "U.S. housing affordability index, 2020 to 2024"
        },
        "xaxis": {
         "title": {
          "text": "Year"
         }
        },
        "yaxis": {
         "title": {
          "text": "Index"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = go.Figure()\n",
    "fig.add_trace(go.Scatter(\n",
    "    x=national[\"year\"],\n",
    "    y=national[\"calculated_index\"],\n",
    "    mode=\"lines+markers\",\n",
    "    name=\"Affordability index\",\n",
    "    customdata=np.column_stack([\n",
    "        national[\"home_price\"],\n",
    "        national[\"income\"],\n",
    "        national[\"mortgage_rate\"],\n",
    "        national[\"calculated_payment\"],\n",
    "    ]),\n",
    "    hovertemplate=(\n",
    "        \"Year %{x}<br>\"\n",
    "        \"Index %{y:.1f}<br>\"\n",
    "        \"Home price $%{customdata[0]:,.0f}<br>\"\n",
    "        \"Income $%{customdata[1]:,.0f}<br>\"\n",
    "        \"Mortgage rate %{customdata[2]:.2f}%<br>\"\n",
    "        \"Monthly P&I $%{customdata[3]:,.0f}<extra></extra>\"\n",
    "    ),\n",
    "))\n",
    "fig.add_hline(y=100, line_dash=\"dot\", annotation_text=\"Score of 100\")\n",
    "fig.update_layout(\n",
    "    title=\"U.S. housing affordability index, 2020 to 2024\",\n",
    "    xaxis_title=\"Year\",\n",
    "    yaxis_title=\"Index\",\n",
    "    template=\"plotly_white\",\n",
    ")\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6afbb89d",
   "metadata": {},
   "source": [
    "## 5. Animated view of the affordability drivers\n",
    "\n",
    "Each component is normalized to 100 in 2020. The animation makes the mortgage rate shock easy to compare with changes in home price, income, and the affordability score."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "45ca9a96",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:54.972324Z",
     "iopub.status.busy": "2026-08-20T15:50:54.972096Z",
     "iopub.status.idle": "2026-08-20T15:50:55.330139Z",
     "shell.execute_reply": "2026-08-20T15:50:55.260896Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "hovertemplate": "year=2020<br>=%{x}<br>2020 = 100=%{y}<extra></extra>",
         "legendgroup": "",
         "marker": {
          "color": "#636efa",
          "pattern": {
           "shape": ""
          }
         },
         "name": "",
         "orientation": "v",
         "showlegend": false,
         "textposition": "auto",
         "type": "bar",
         "x": [
          "Home price",
          "Household income",
          "Mortgage rate",
          "Affordability index"
         ],
         "xaxis": "x",
         "y": {
          "bdata": "AAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUA=",
          "dtype": "f8"
         },
         "yaxis": "y"
        }
       ],
       "frames": [
        {
         "data": [
          {
           "hovertemplate": "year=2020<br>=%{x}<br>2020 = 100=%{y}<extra></extra>",
           "legendgroup": "",
           "marker": {
            "color": "#636efa",
            "pattern": {
             "shape": ""
            }
           },
           "name": "",
           "orientation": "v",
           "showlegend": false,
           "textposition": "auto",
           "type": "bar",
           "x": [
            "Home price",
            "Household income",
            "Mortgage rate",
            "Affordability index"
           ],
           "xaxis": "x",
           "y": {
            "bdata": "AAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUA=",
            "dtype": "f8"
           },
           "yaxis": "y"
          }
         ],
         "name": "2020"
        },
        {
         "data": [
          {
           "hovertemplate": "year=2021<br>=%{x}<br>2020 = 100=%{y}<extra></extra>",
           "legendgroup": "",
           "marker": {
            "color": "#636efa",
            "pattern": {
             "shape": ""
            }
           },
           "name": "",
           "orientation": "v",
           "showlegend": false,
           "textposition": "auto",
           "type": "bar",
           "x": [
            "Home price",
            "Household income",
            "Mortgage rate",
            "Affordability index"
           ],
           "xaxis": "x",
           "y": {
            "bdata": "ZkAPM8EtXUB46nvkqgRaQOwu8X1Ry1dAdDEQUB+5VkA=",
            "dtype": "f8"
           },
           "yaxis": "y"
          }
         ],
         "name": "2021"
        },
        {
         "data": [
          {
           "hovertemplate": "year=2022<br>=%{x}<br>2020 = 100=%{y}<extra></extra>",
           "legendgroup": "",
           "marker": {
            "color": "#636efa",
            "pattern": {
             "shape": ""
            }
           },
           "name": "",
           "orientation": "v",
           "showlegend": false,
           "textposition": "auto",
           "type": "bar",
           "x": [
            "Home price",
            "Household income",
            "Mortgage rate",
            "Affordability index"
           ],
           "xaxis": "x",
           "y": {
            "bdata": "lf2pvvh9YEBPBcMTQ2pbQG5WoaSIdmVARbXUzOnaT0A=",
            "dtype": "f8"
           },
           "yaxis": "y"
          }
         ],
         "name": "2022"
        },
        {
         "data": [
          {
           "hovertemplate": "year=2023<br>=%{x}<br>2020 = 100=%{y}<extra></extra>",
           "legendgroup": "",
           "marker": {
            "color": "#636efa",
            "pattern": {
             "shape": ""
            }
           },
           "name": "",
           "orientation": "v",
           "showlegend": false,
           "textposition": "auto",
           "type": "bar",
           "x": [
            "Home price",
            "Household income",
            "Mortgage rate",
            "Affordability index"
           ],
           "xaxis": "x",
           "y": {
            "bdata": "a3AqQFE/YEBpgXI+taFdQFS9tu4SX2tA1LYAzVLfTUA=",
            "dtype": "f8"
           },
           "yaxis": "y"
          }
         ],
         "name": "2023"
        },
        {
         "data": [
          {
           "hovertemplate": "year=2024<br>=%{x}<br>2020 = 100=%{y}<extra></extra>",
           "legendgroup": "",
           "marker": {
            "color": "#636efa",
            "pattern": {
             "shape": ""
            }
           },
           "name": "",
           "orientation": "v",
           "showlegend": false,
           "textposition": "auto",
           "type": "bar",
           "x": [
            "Home price",
            "Household income",
            "Mortgage rate",
            "Affordability index"
           ],
           "xaxis": "x",
           "y": {
            "bdata": "MXbOkWLrX0AlmnHWT8deQM6xGC54AmtAwng27VDhT0A=",
            "dtype": "f8"
           },
           "yaxis": "y"
          }
         ],
         "name": "2024"
        }
       ],
       "layout": {
        "barmode": "relative",
        "legend": {
         "tracegroupgap": 0
        },
        "sliders": [
         {
          "active": 0,
          "currentvalue": {
           "prefix": "year="
          },
          "len": 0.9,
          "pad": {
           "b": 10,
           "t": 60
          },
          "steps": [
           {
            "args": [
             [
              "2020"
             ],
             {
              "frame": {
               "duration": 0,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 0,
               "easing": "linear"
              }
             }
            ],
            "label": "2020",
            "method": "animate"
           },
           {
            "args": [
             [
              "2021"
             ],
             {
              "frame": {
               "duration": 0,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 0,
               "easing": "linear"
              }
             }
            ],
            "label": "2021",
            "method": "animate"
           },
           {
            "args": [
             [
              "2022"
             ],
             {
              "frame": {
               "duration": 0,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 0,
               "easing": "linear"
              }
             }
            ],
            "label": "2022",
            "method": "animate"
           },
           {
            "args": [
             [
              "2023"
             ],
             {
              "frame": {
               "duration": 0,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 0,
               "easing": "linear"
              }
             }
            ],
            "label": "2023",
            "method": "animate"
           },
           {
            "args": [
             [
              "2024"
             ],
             {
              "frame": {
               "duration": 0,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 0,
               "easing": "linear"
              }
             }
            ],
            "label": "2024",
            "method": "animate"
           }
          ],
          "x": 0.1,
          "xanchor": "left",
          "y": 0,
          "yanchor": "top"
         }
        ],
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "white",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "white",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "#C8D4E3",
             "linecolor": "#C8D4E3",
             "minorgridcolor": "#C8D4E3",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "#C8D4E3",
             "linecolor": "#C8D4E3",
             "minorgridcolor": "#C8D4E3",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermap": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermap"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0.0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1.0,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0.0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1.0,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "white",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "#C8D4E3"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "white",
          "polar": {
           "angularaxis": {
            "gridcolor": "#EBF0F8",
            "linecolor": "#EBF0F8",
            "ticks": ""
           },
           "bgcolor": "white",
           "radialaxis": {
            "gridcolor": "#EBF0F8",
            "linecolor": "#EBF0F8",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           },
           "yaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           },
           "zaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           },
           "bgcolor": "white",
           "caxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "#EBF0F8",
           "linecolor": "#EBF0F8",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#EBF0F8",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "#EBF0F8",
           "linecolor": "#EBF0F8",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#EBF0F8",
           "zerolinewidth": 2
          }
         }
        },
        "title": {
         "text": "What changed since 2020? Each component starts at 100"
        },
        "updatemenus": [
         {
          "buttons": [
           {
            "args": [
             null,
             {
              "frame": {
               "duration": 500,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 500,
               "easing": "linear"
              }
             }
            ],
            "label": "&#9654;",
            "method": "animate"
           },
           {
            "args": [
             [
              null
             ],
             {
              "frame": {
               "duration": 0,
               "redraw": true
              },
              "fromcurrent": true,
              "mode": "immediate",
              "transition": {
               "duration": 0,
               "easing": "linear"
              }
             }
            ],
            "label": "&#9724;",
            "method": "animate"
           }
          ],
          "direction": "left",
          "pad": {
           "r": 10,
           "t": 70
          },
          "showactive": false,
          "type": "buttons",
          "x": 0.1,
          "xanchor": "right",
          "y": 0,
          "yanchor": "top"
         }
        ],
        "xaxis": {
         "anchor": "y",
         "domain": [
          0.0,
          1.0
         ],
         "title": {
          "text": ""
         }
        },
        "yaxis": {
         "anchor": "x",
         "domain": [
          0.0,
          1.0
         ],
         "range": [
          0,
          240.86816720257238
         ],
         "title": {
          "text": "2020 = 100"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "components = national[[\"year\", \"home_price\", \"income\", \"mortgage_rate\", \"calculated_index\"]].copy()\n",
    "components = components.rename(columns={\"calculated_index\":\"affordability_index\"})\n",
    "base = components.iloc[0]\n",
    "for col in [\"home_price\", \"income\", \"mortgage_rate\", \"affordability_index\"]:\n",
    "    components[col] = components[col] / base[col] * 100\n",
    "\n",
    "long = components.melt(id_vars=\"year\", var_name=\"component\", value_name=\"normalized_value\")\n",
    "long[\"component\"] = long[\"component\"].map({\n",
    "    \"home_price\":\"Home price\",\n",
    "    \"income\":\"Household income\",\n",
    "    \"mortgage_rate\":\"Mortgage rate\",\n",
    "    \"affordability_index\":\"Affordability index\",\n",
    "})\n",
    "\n",
    "anim = px.bar(\n",
    "    long,\n",
    "    x=\"component\",\n",
    "    y=\"normalized_value\",\n",
    "    animation_frame=\"year\",\n",
    "    range_y=[0, max(240, long[\"normalized_value\"].max() * 1.1)],\n",
    "    title=\"What changed since 2020? Each component starts at 100\",\n",
    "    labels={\"normalized_value\":\"2020 = 100\", \"component\":\"\"},\n",
    ")\n",
    "anim.update_layout(template=\"plotly_white\")\n",
    "anim.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f77405e8",
   "metadata": {},
   "source": [
    "## 6. Validate all 51 state and District of Columbia scores\n",
    "\n",
    "The state comparison applies the same 6.72 percent mortgage rate assumption to every jurisdiction. This isolates differences in median household income and median owner occupied home value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "6feb673f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:55.342702Z",
     "iopub.status.busy": "2026-08-20T15:50:55.341724Z",
     "iopub.status.idle": "2026-08-20T15:50:55.359562Z",
     "shell.execute_reply": "2026-08-20T15:50:55.358737Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation passed for all 51 jurisdictions.\n"
     ]
    }
   ],
   "source": [
    "states = states_snapshot.rename(columns={\n",
    "    \"Rank\":\"article_rank\",\n",
    "    \"State\":\"state\",\n",
    "    \"Region\":\"region\",\n",
    "    \"Median household income\":\"income\",\n",
    "    \"Median home value\":\"home_value\",\n",
    "    \"Estimated monthly payment\":\"article_payment\",\n",
    "    \"Affordability index\":\"article_index\",\n",
    "}).copy()\n",
    "\n",
    "ASSUMED_STATE_RATE = 6.72\n",
    "states[\"calculated_payment\"] = monthly_payment(states[\"home_value\"], ASSUMED_STATE_RATE)\n",
    "states[\"calculated_index\"] = affordability_score(states[\"home_value\"], states[\"income\"], ASSUMED_STATE_RATE)\n",
    "states[\"calculated_rank\"] = states[\"calculated_index\"].rank(method=\"min\", ascending=False).astype(int)\n",
    "states[\"index_gap\"] = states[\"calculated_index\"] - states[\"article_index\"]\n",
    "\n",
    "assert states[\"index_gap\"].abs().max() < 0.15\n",
    "assert (states[\"calculated_rank\"] == states[\"article_rank\"]).all()\n",
    "print(\"Validation passed for all\", len(states), \"jurisdictions.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "0918572e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:55.361547Z",
     "iopub.status.busy": "2026-08-20T15:50:55.361400Z",
     "iopub.status.idle": "2026-08-20T15:50:55.433010Z",
     "shell.execute_reply": "2026-08-20T15:50:55.431067Z"
    }
   },
   "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>calculated_rank</th>\n",
       "      <th>state</th>\n",
       "      <th>region</th>\n",
       "      <th>income</th>\n",
       "      <th>home_value</th>\n",
       "      <th>calculated_payment</th>\n",
       "      <th>calculated_index</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>West Virginia</td>\n",
       "      <td>South</td>\n",
       "      <td>60798</td>\n",
       "      <td>170800</td>\n",
       "      <td>884.00</td>\n",
       "      <td>143.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Iowa</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>75501</td>\n",
       "      <td>227300</td>\n",
       "      <td>1,176.00</td>\n",
       "      <td>133.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mississippi</td>\n",
       "      <td>South</td>\n",
       "      <td>59127</td>\n",
       "      <td>186500</td>\n",
       "      <td>965.00</td>\n",
       "      <td>127.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Kansas</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>75514</td>\n",
       "      <td>238700</td>\n",
       "      <td>1,235.00</td>\n",
       "      <td>127.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Ohio</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>72212</td>\n",
       "      <td>239800</td>\n",
       "      <td>1,240.00</td>\n",
       "      <td>121.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>Oklahoma</td>\n",
       "      <td>South</td>\n",
       "      <td>66148</td>\n",
       "      <td>222100</td>\n",
       "      <td>1,149.00</td>\n",
       "      <td>119.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>83211</td>\n",
       "      <td>280700</td>\n",
       "      <td>1,452.00</td>\n",
       "      <td>119.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>Indiana</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>71959</td>\n",
       "      <td>243500</td>\n",
       "      <td>1,260.00</td>\n",
       "      <td>119.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>North Dakota</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>77871</td>\n",
       "      <td>266100</td>\n",
       "      <td>1,376.00</td>\n",
       "      <td>117.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>Nebraska</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>76376</td>\n",
       "      <td>263100</td>\n",
       "      <td>1,361.00</td>\n",
       "      <td>116.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>11</td>\n",
       "      <td>Arkansas</td>\n",
       "      <td>South</td>\n",
       "      <td>62106</td>\n",
       "      <td>215600</td>\n",
       "      <td>1,115.00</td>\n",
       "      <td>116.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>12</td>\n",
       "      <td>Alabama</td>\n",
       "      <td>South</td>\n",
       "      <td>66659</td>\n",
       "      <td>233300</td>\n",
       "      <td>1,207.00</td>\n",
       "      <td>115.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>13</td>\n",
       "      <td>Kentucky</td>\n",
       "      <td>South</td>\n",
       "      <td>64526</td>\n",
       "      <td>226000</td>\n",
       "      <td>1,169.00</td>\n",
       "      <td>115.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>14</td>\n",
       "      <td>Michigan</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>72389</td>\n",
       "      <td>254200</td>\n",
       "      <td>1,315.00</td>\n",
       "      <td>114.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>15</td>\n",
       "      <td>Missouri</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>71589</td>\n",
       "      <td>254400</td>\n",
       "      <td>1,316.00</td>\n",
       "      <td>113.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16</td>\n",
       "      <td>Pennsylvania</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>77545</td>\n",
       "      <td>277600</td>\n",
       "      <td>1,436.00</td>\n",
       "      <td>112.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>17</td>\n",
       "      <td>Louisiana</td>\n",
       "      <td>South</td>\n",
       "      <td>60986</td>\n",
       "      <td>223200</td>\n",
       "      <td>1,155.00</td>\n",
       "      <td>110.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>18</td>\n",
       "      <td>South Dakota</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>76881</td>\n",
       "      <td>289600</td>\n",
       "      <td>1,498.00</td>\n",
       "      <td>106.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>19</td>\n",
       "      <td>Wisconsin</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>77488</td>\n",
       "      <td>294700</td>\n",
       "      <td>1,524.00</td>\n",
       "      <td>105.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20</td>\n",
       "      <td>Texas</td>\n",
       "      <td>South</td>\n",
       "      <td>79721</td>\n",
       "      <td>313200</td>\n",
       "      <td>1,620.00</td>\n",
       "      <td>102.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>21</td>\n",
       "      <td>Alaska</td>\n",
       "      <td>West</td>\n",
       "      <td>95665</td>\n",
       "      <td>376500</td>\n",
       "      <td>1,948.00</td>\n",
       "      <td>102.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>22</td>\n",
       "      <td>Minnesota</td>\n",
       "      <td>Midwest</td>\n",
       "      <td>87117</td>\n",
       "      <td>344600</td>\n",
       "      <td>1,783.00</td>\n",
       "      <td>101.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>23</td>\n",
       "      <td>New Mexico</td>\n",
       "      <td>West</td>\n",
       "      <td>67816</td>\n",
       "      <td>279900</td>\n",
       "      <td>1,448.00</td>\n",
       "      <td>97.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>24</td>\n",
       "      <td>Connecticut</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>96049</td>\n",
       "      <td>396900</td>\n",
       "      <td>2,053.00</td>\n",
       "      <td>97.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>25</td>\n",
       "      <td>South Carolina</td>\n",
       "      <td>South</td>\n",
       "      <td>72350</td>\n",
       "      <td>299500</td>\n",
       "      <td>1,549.00</td>\n",
       "      <td>97.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>26</td>\n",
       "      <td>Maryland</td>\n",
       "      <td>South</td>\n",
       "      <td>102905</td>\n",
       "      <td>436300</td>\n",
       "      <td>2,257.00</td>\n",
       "      <td>95.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>27</td>\n",
       "      <td>Delaware</td>\n",
       "      <td>South</td>\n",
       "      <td>87534</td>\n",
       "      <td>371600</td>\n",
       "      <td>1,922.00</td>\n",
       "      <td>94.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>28</td>\n",
       "      <td>Vermont</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>82730</td>\n",
       "      <td>352800</td>\n",
       "      <td>1,825.00</td>\n",
       "      <td>94.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>29</td>\n",
       "      <td>Georgia</td>\n",
       "      <td>South</td>\n",
       "      <td>79991</td>\n",
       "      <td>343300</td>\n",
       "      <td>1,776.00</td>\n",
       "      <td>93.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>30</td>\n",
       "      <td>Virginia</td>\n",
       "      <td>South</td>\n",
       "      <td>92090</td>\n",
       "      <td>403500</td>\n",
       "      <td>2,087.00</td>\n",
       "      <td>91.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>31</td>\n",
       "      <td>Maine</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>76442</td>\n",
       "      <td>341900</td>\n",
       "      <td>1,769.00</td>\n",
       "      <td>90.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>32</td>\n",
       "      <td>Wyoming</td>\n",
       "      <td>West</td>\n",
       "      <td>75532</td>\n",
       "      <td>339500</td>\n",
       "      <td>1,756.00</td>\n",
       "      <td>89.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>33</td>\n",
       "      <td>North Carolina</td>\n",
       "      <td>South</td>\n",
       "      <td>73958</td>\n",
       "      <td>333000</td>\n",
       "      <td>1,723.00</td>\n",
       "      <td>89.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>34</td>\n",
       "      <td>New Hampshire</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>99782</td>\n",
       "      <td>458800</td>\n",
       "      <td>2,373.00</td>\n",
       "      <td>87.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>35</td>\n",
       "      <td>Tennessee</td>\n",
       "      <td>South</td>\n",
       "      <td>71997</td>\n",
       "      <td>332600</td>\n",
       "      <td>1,720.00</td>\n",
       "      <td>87.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>36</td>\n",
       "      <td>New Jersey</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>104294</td>\n",
       "      <td>496000</td>\n",
       "      <td>2,566.00</td>\n",
       "      <td>84.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>37</td>\n",
       "      <td>Florida</td>\n",
       "      <td>South</td>\n",
       "      <td>77735</td>\n",
       "      <td>396900</td>\n",
       "      <td>2,053.00</td>\n",
       "      <td>78.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>38</td>\n",
       "      <td>Arizona</td>\n",
       "      <td>West</td>\n",
       "      <td>81486</td>\n",
       "      <td>426000</td>\n",
       "      <td>2,204.00</td>\n",
       "      <td>77.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>39</td>\n",
       "      <td>New York</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>85820</td>\n",
       "      <td>449800</td>\n",
       "      <td>2,327.00</td>\n",
       "      <td>76.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>40</td>\n",
       "      <td>Rhode Island</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>83504</td>\n",
       "      <td>455700</td>\n",
       "      <td>2,357.00</td>\n",
       "      <td>73.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>41</td>\n",
       "      <td>Idaho</td>\n",
       "      <td>West</td>\n",
       "      <td>81166</td>\n",
       "      <td>446400</td>\n",
       "      <td>2,309.00</td>\n",
       "      <td>73.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>42</td>\n",
       "      <td>Nevada</td>\n",
       "      <td>West</td>\n",
       "      <td>81134</td>\n",
       "      <td>455500</td>\n",
       "      <td>2,356.00</td>\n",
       "      <td>71.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>43</td>\n",
       "      <td>Utah</td>\n",
       "      <td>West</td>\n",
       "      <td>96658</td>\n",
       "      <td>545200</td>\n",
       "      <td>2,820.00</td>\n",
       "      <td>71.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>44</td>\n",
       "      <td>Montana</td>\n",
       "      <td>West</td>\n",
       "      <td>75340</td>\n",
       "      <td>425400</td>\n",
       "      <td>2,201.00</td>\n",
       "      <td>71.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>45</td>\n",
       "      <td>Massachusetts</td>\n",
       "      <td>Northeast</td>\n",
       "      <td>104828</td>\n",
       "      <td>607400</td>\n",
       "      <td>3,142.00</td>\n",
       "      <td>69.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>46</td>\n",
       "      <td>Oregon</td>\n",
       "      <td>West</td>\n",
       "      <td>85220</td>\n",
       "      <td>497500</td>\n",
       "      <td>2,573.00</td>\n",
       "      <td>69.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>47</td>\n",
       "      <td>Colorado</td>\n",
       "      <td>West</td>\n",
       "      <td>97113</td>\n",
       "      <td>574600</td>\n",
       "      <td>2,972.00</td>\n",
       "      <td>68.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>48</td>\n",
       "      <td>Washington</td>\n",
       "      <td>West</td>\n",
       "      <td>99389</td>\n",
       "      <td>602200</td>\n",
       "      <td>3,115.00</td>\n",
       "      <td>66.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>49</td>\n",
       "      <td>District of Columbia</td>\n",
       "      <td>South</td>\n",
       "      <td>109707</td>\n",
       "      <td>733400</td>\n",
       "      <td>3,794.00</td>\n",
       "      <td>60.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>50</td>\n",
       "      <td>California</td>\n",
       "      <td>West</td>\n",
       "      <td>100149</td>\n",
       "      <td>759500</td>\n",
       "      <td>3,929.00</td>\n",
       "      <td>53.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>51</td>\n",
       "      <td>Hawaii</td>\n",
       "      <td>West</td>\n",
       "      <td>100745</td>\n",
       "      <td>875900</td>\n",
       "      <td>4,531.00</td>\n",
       "      <td>46.30</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    calculated_rank                 state     region  income  home_value  \\\n",
       "0                 1         West Virginia      South   60798      170800   \n",
       "1                 2                  Iowa    Midwest   75501      227300   \n",
       "2                 3           Mississippi      South   59127      186500   \n",
       "3                 4                Kansas    Midwest   75514      238700   \n",
       "4                 5                  Ohio    Midwest   72212      239800   \n",
       "5                 6              Oklahoma      South   66148      222100   \n",
       "6                 7              Illinois    Midwest   83211      280700   \n",
       "7                 8               Indiana    Midwest   71959      243500   \n",
       "8                 9          North Dakota    Midwest   77871      266100   \n",
       "9                10              Nebraska    Midwest   76376      263100   \n",
       "10               11              Arkansas      South   62106      215600   \n",
       "11               12               Alabama      South   66659      233300   \n",
       "12               13              Kentucky      South   64526      226000   \n",
       "13               14              Michigan    Midwest   72389      254200   \n",
       "14               15              Missouri    Midwest   71589      254400   \n",
       "15               16          Pennsylvania  Northeast   77545      277600   \n",
       "16               17             Louisiana      South   60986      223200   \n",
       "17               18          South Dakota    Midwest   76881      289600   \n",
       "18               19             Wisconsin    Midwest   77488      294700   \n",
       "19               20                 Texas      South   79721      313200   \n",
       "20               21                Alaska       West   95665      376500   \n",
       "21               22             Minnesota    Midwest   87117      344600   \n",
       "22               23            New Mexico       West   67816      279900   \n",
       "23               24           Connecticut  Northeast   96049      396900   \n",
       "24               25        South Carolina      South   72350      299500   \n",
       "25               26              Maryland      South  102905      436300   \n",
       "26               27              Delaware      South   87534      371600   \n",
       "27               28               Vermont  Northeast   82730      352800   \n",
       "28               29               Georgia      South   79991      343300   \n",
       "29               30              Virginia      South   92090      403500   \n",
       "30               31                 Maine  Northeast   76442      341900   \n",
       "31               32               Wyoming       West   75532      339500   \n",
       "32               33        North Carolina      South   73958      333000   \n",
       "33               34         New Hampshire  Northeast   99782      458800   \n",
       "34               35             Tennessee      South   71997      332600   \n",
       "35               36            New Jersey  Northeast  104294      496000   \n",
       "36               37               Florida      South   77735      396900   \n",
       "37               38               Arizona       West   81486      426000   \n",
       "38               39              New York  Northeast   85820      449800   \n",
       "39               40          Rhode Island  Northeast   83504      455700   \n",
       "40               41                 Idaho       West   81166      446400   \n",
       "41               42                Nevada       West   81134      455500   \n",
       "42               43                  Utah       West   96658      545200   \n",
       "43               44               Montana       West   75340      425400   \n",
       "44               45         Massachusetts  Northeast  104828      607400   \n",
       "45               46                Oregon       West   85220      497500   \n",
       "46               47              Colorado       West   97113      574600   \n",
       "47               48            Washington       West   99389      602200   \n",
       "48               49  District of Columbia      South  109707      733400   \n",
       "49               50            California       West  100149      759500   \n",
       "50               51                Hawaii       West  100745      875900   \n",
       "\n",
       "    calculated_payment  calculated_index  \n",
       "0               884.00            143.40  \n",
       "1             1,176.00            133.80  \n",
       "2               965.00            127.70  \n",
       "3             1,235.00            127.40  \n",
       "4             1,240.00            121.30  \n",
       "5             1,149.00            119.90  \n",
       "6             1,452.00            119.40  \n",
       "7             1,260.00            119.00  \n",
       "8             1,376.00            117.90  \n",
       "9             1,361.00            116.90  \n",
       "10            1,115.00            116.00  \n",
       "11            1,207.00            115.10  \n",
       "12            1,169.00            115.00  \n",
       "13            1,315.00            114.70  \n",
       "14            1,316.00            113.30  \n",
       "15            1,436.00            112.50  \n",
       "16            1,155.00            110.00  \n",
       "17            1,498.00            106.90  \n",
       "18            1,524.00            105.90  \n",
       "19            1,620.00            102.50  \n",
       "20            1,948.00            102.30  \n",
       "21            1,783.00            101.80  \n",
       "22            1,448.00             97.60  \n",
       "23            2,053.00             97.50  \n",
       "24            1,549.00             97.30  \n",
       "25            2,257.00             95.00  \n",
       "26            1,922.00             94.90  \n",
       "27            1,825.00             94.40  \n",
       "28            1,776.00             93.80  \n",
       "29            2,087.00             91.90  \n",
       "30            1,769.00             90.00  \n",
       "31            1,756.00             89.60  \n",
       "32            1,723.00             89.40  \n",
       "33            2,373.00             87.60  \n",
       "34            1,720.00             87.20  \n",
       "35            2,566.00             84.70  \n",
       "36            2,053.00             78.90  \n",
       "37            2,204.00             77.00  \n",
       "38            2,327.00             76.80  \n",
       "39            2,357.00             73.80  \n",
       "40            2,309.00             73.20  \n",
       "41            2,356.00             71.70  \n",
       "42            2,820.00             71.40  \n",
       "43            2,201.00             71.30  \n",
       "44            3,142.00             69.50  \n",
       "45            2,573.00             69.00  \n",
       "46            2,972.00             68.10  \n",
       "47            3,115.00             66.50  \n",
       "48            3,794.00             60.20  \n",
       "49            3,929.00             53.10  \n",
       "50            4,531.00             46.30  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "states.sort_values(\"calculated_index\", ascending=False)[\n",
    "    [\"calculated_rank\", \"state\", \"region\", \"income\", \"home_value\", \"calculated_payment\", \"calculated_index\"]\n",
    "].round({\"calculated_payment\":0, \"calculated_index\":1})"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d051c604",
   "metadata": {},
   "source": [
    "## 7. Most and least affordable states under the model\n",
    "\n",
    "West Virginia, Iowa, Mississippi, and Kansas lead the ranking. Hawaii, California, the District of Columbia, Washington, and Colorado sit at the bottom under the common rate assumption."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "47e0aa50",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:55.434873Z",
     "iopub.status.busy": "2026-08-20T15:50:55.434727Z",
     "iopub.status.idle": "2026-08-20T15:50:55.834918Z",
     "shell.execute_reply": "2026-08-20T15:50:55.833455Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6ZVXXrE8Dsff318XL168ox634cOH64svvlC7du0sj8q5evWqvv/+e61cuVIJCQkqUaKEXnjhBV28eFHNmzdXmTJldOrUKc2YMcPy6A7p5gc7s9mst99+W4mJiXJ0dFTz5s1zHPLp7u5umZuYlpamRx55RJs2bdLJkyfv+P6EhISoa9eumj17thITE9WwYUNt3br1rnqk3333XbVp00YNGjRQnz59LI/D8fDw0NixY63qNm7cWG+99ZbOnDljlaA2adJEc+bMUUBAgNVjRdzd3fXBBx/o+eefV+3atfXss8/K29tbp0+f1ldffaVGjRpp5syZ+vnnn9WiRQt17txZVapUUZEiRbRmzRqdO3fO6kN4nTp19MEHH+g///mPKlasqJIlS6p58+Y5Xtd3332nHj16yMvLSy1atMj25UfDhg1Vvnx5SVL9+vX1zDPPKDIyUufPn1fFihW1cOFCJSQkWPVanjp1Sk888YRMJpOefvpprVixwqrNGjVqqEaNGnJxcVHHjh2zxbR27Vp99913Oe77q7u9H+3atdP48ePVq1cvNWzYUN9//70WL15sud4sFSpUkKenpz788EO5ubmpaNGiql+/vsqVK6ePPvpIbdq0UdWqVdWrVy898sgj+u2337Rt2za5u7vrv//9b67xt2vXTqtXr1anTp0UHh6ukydP6sMPP1SVKlVyTITz64033tCSJUvUpk0bDRo0SMWLF9fChQt18uRJrVq1KscvEf5u0qRJCg8P1+OPP67evXvr4sWLlmeD/jW28PBwTZ06Va1bt1a3bt10/vx5zZo1SxUrVtShQ4eytVutWjWFhYVZPQ5H0j0Zwpq16NOgQYMUFhaWLTkNDw+Xl5eXVqxYoTZt2uQ5BD3L+PHjtX37doWHh6ts2bI6f/68Zs+erTJlylgWv+rRo4c++eQTvfbaa/ruu+/UuHFjXb16VVu2bFH//v3VoUMHtW/fXs2aNdPIkSOVkJCgmjVratOmTfr88881ZMiQbPPxcxIVFaVt27apfv36evHFF1WlShVdvHhR+/fv15YtWyxJ9r/+9S/5+PioUaNGKlWqlI4cOaKZM2cqPDw82xxb4IFno9WMAeCBkPWohz179uS4PzQ09JaPwzEMwzhw4IDRuHFjw9HR0ShTpowxadIkY/r06YYk448//rA6NqfHaPz98RKGcfORGZGRkUbFihUNBwcHo0SJEkbDhg2NyZMnG6mpqYZhGMbKlSuNf/3rX0bJkiUNBwcHw9/f3+jXr59x9uxZq7bmzZtnlC9f3jCbzbd8NM6vv/5qdOrUyfD09DQ8PDyMZ555xvj999+zPbom63E4f380RU6Pz7h+/boxaNAgw8vLyyhatKjRvn1748yZM3f8OBzDMIwtW7YYjRo1MpydnQ13d3ejffv2xuHDh7Mdn5SUZJjNZsPNzc3qsUGffvqpIcl4/vnnczzvtm3bjLCwMMPDw8NwcnIyKlSoYERERFgeH/Lnn38aAwYMMCpXrmwULVrU8PDwMOrXr28sX77cqp0//vjDCA8PN9zc3AxJeT4a51aPZ/r7Pbh+/boxbNgww8fHx3B0dDQeffRRY8OGDdmuI682b3X/8/s4nLu9Hzdu3DCGDh1q+Pr6Gs7OzkajRo2MuLi4HP9tfP7550aVKlWMIkWKZLsvBw4cMJ588knDy8vLcHR0NMqWLWt07tzZ2Lp1a57xZ2ZmGhMnTjTKli1rODo6GrVq1TK+/PJLo2fPntkeOXM7j8MxDMM4ceKE8fTTTxuenp6Gk5OTUa9ePePLL7+0qpP1c1qxYkWO8a1atcoIDg42HB0djSpVqhirV6/OMbb58+cbgYGBhqOjo1G5cmVjwYIFln+rOcX66aefWurXqlUr29+GO30cTnp6uvHKK68Y3t7ehslkyvHROP379zckGZ999lmO1/x3W7duNTp06GCULl3acHBwMEqXLm107do122PDrl27ZowcOdIoV66cYW9vb/j4+BhPP/20ceLECUudK1euGK+++qpRunRpw97e3ggMDDTefffdbI/jye1nahiGce7cOWPAgAGGn5+f5TwtWrQw5s6da6kzZ84co0mTJpbfxwoVKhjDhw83EhMT83XNwIPEZBiFYPULAEA2Q4YM0Zw5c5ScnPyPLRoCAPerV199VfPnz9cff/whFxcXW4cD4B/GHFcAKAT+/szMCxcuaNGiRXr88cdJWgHgb27cuKFPP/1UTz31FEkr8JBgjisAFAINGjRQ06ZNFRwcrHPnzmn+/PlKSkrSqFGjbB0aABQa58+f15YtW7Ry5UpduHBBgwcPtnVIAAoIiSsAFAJt27bVypUrNXfuXJlMJtWuXVvz58+3eswKADzsDh8+rO7du6tkyZKaPn16rs/cBfDgYY4rAAAAAKBQY44rAAAAAKBQI3EFAAAAABRqzHFFgcvMzNTvv/8uNzc3mUwmW4cDAAAAwEYMw9CVK1dUunRp2dnl3q9K4ooC9/vvv8vPz8/WYQAAAAAoJM6cOaMyZcrkup/EFQXOzc1N0s1fTnd3dxtHAwAACtL11AyFT98uSfpqUBM5O/CsauBhlpSUJD8/P0uOkBsSVxS4rOHB7u7uJK4AADxkiqSm68/Umx9B3dzd5OLAx1EAuuUUQv5SAAAAoMA4FjHrq0GPW14DQH6QuAIAAKDAmO1Mqlraw9ZhALjP8DgcAAAAAEChRo8rAAAACkxaRqbWHvhNktSx1iOyN9OPAuDWSFwBAABQYNIyMjV85SFJUngNXxJXAPlC4goAAIACY2cyqVklb8trAMgPElcAAAAUGCd7sxb0qmfrMADcZxibAQAAAAAo1EhcAQAAAACFGokrAAAACsz11Aw1fXebmr67TddTM2wdDoD7BHNcAQAAUGAMGUq4cM3yGgDyg8QVAAAABcaxiFkrX2pgeQ0A+UHiCgAAgAJjtjOpbkBxW4cB4D7DHFcAAAAAQKFGjysAAAAKTHpGpjb+eE6SFFa1lIqY6UcBcGskrgAAACgwqRmZGvDZfknS4fFhJK4A8oXEFQAAAAXGzmRS/XLFLa8BID9IXAEAAFBgnOzNWtavga3DAHCfYWwGAAAAAKBQI3EFAAAAABRqJK4AAAAoMDfSMtRm2g61mbZDN9IybB0OgPsEc1wBAABQYDINQ0fOJlleA0B+kLgCAACgwDgWMWtRn3qW1wCQHySuAAAAKDBmO5MaB3rbOgwA9xnmuAIAAAAACjV6XGEz1cZslJ2ji63DAAAAAB4aCVHhtg7hjtDjCgAAAAAo1EhcAQAAAACFGokrAAAAAKBQI3EFAAAAABRqJK4AAAAAgEKNxPU+YTKZtHbt2rtup2nTphoyZEi+6yckJMhkMik+Pv6uzw0AAAAAd+KhSFw//PBDubm5KT093VKWnJwse3t7NW3a1KpuTEyMTCaTTpw4cVfnzE/Ct2/fPplMJn377bc57m/RooWefPJJSdLZs2fVpk2bu4pJklavXq0JEybku76fn5/Onj2ratWq3fW5AQAAAOBOPBSJa7NmzZScnKy9e/daynbs2CEfHx/t3r1bN27csJRv27ZN/v7+qlChwj8eV506dVSzZk19/PHH2fYlJCRo27Zt6tOnjyTJx8dHjo6OubaVlpaWr3MWL15cbm5u+Y7RbDbLx8dHRYrwyF8AAAAAtvFQJK6VKlWSr6+vYmJiLGUxMTHq0KGDypUrZ9XjGRMTo2bNmkmSMjMzNWnSJJUrV07Ozs6qWbOmVq5caal76dIlde/eXd7e3nJ2dlZgYKAWLFggSSpXrpwkqVatWjKZTNl6drP06dNHy5Yt07Vr16zKo6Oj5evrq9atW0uyHiqc1Zu7bNkyhYaGysnJSYsXL1Z6eroGDRokT09PeXl5acSIEerZs6c6duxoaffvQ4UDAgI0ceJE9e7dW25ubvL399fcuXMt+//ec5yRkaE+ffpY7kmlSpU0bdq0W/8QAAAAAOAOPRSJq3Sz13Xbtm2W99u2bVPTpk0VGhpqKb9+/bp2795tSVwnTZqkTz75RB9++KF+/PFHvfrqq3ruuef0zTffSJJGjRqlw4cPa/369Tpy5Ig++OADlShRQpL03XffSZK2bNmis2fPavXq1TnG1b17d6WkpFglxIZhaOHChYqIiJDZbM71mt544w0NHjxYR44cUVhYmN5++20tXrxYCxYsUGxsrJKSkvI1L3bKlCmqW7euDhw4oP79++vll1/W0aNHc6ybmZmpMmXKaMWKFTp8+LBGjx6tf//731q+fHmu7aekpCgpKclqAwAAAID8emjGfzZr1kxDhgxRenq6rl+/rgMHDig0NFRpaWn68MMPJUlxcXFKSUlRs2bNlJKSookTJ2rLli1q0KCBJKl8+fLauXOn5syZo9DQUJ0+fVq1atVS3bp1Jd3svczi7e0tSfLy8pKPj0+ucRUvXlydOnXSxx9/rB49eki6mVQnJCSoV69eeV7TkCFDLHNgJWnGjBmKjIxUp06dJEkzZ87UunXrbnlv2rZtq/79+0uSRowYoffee0/btm1TpUqVstW1t7fXuHHjLO/LlSunuLg4LV++XJ07d86x/UmTJlkdAwAAAAC346HpcW3atKmuXr2qPXv2aMeOHQoKCpK3t7dCQ0Mt81xjYmJUvnx5+fv76/jx47p27ZpatWolV1dXy/bJJ59YFm56+eWXtXTpUoWEhOj111/Xrl277ii23r17a/v27ZZ2P/74Y4WGhqpixYp5HpeVMEtSYmKizp07p3r16lnKzGaz6tSpc8vz16hRw/LaZDLJx8dH58+fz7X+rFmzVKdOHXl7e8vV1VVz587V6dOnc60fGRmpxMREy3bmzJlbxgQAAAAAWR6aHteKFSuqTJky2rZtmy5duqTQ0FBJUunSpeXn56ddu3Zp27Ztat68uaSbqw5L0ldffaVHHnnEqq2sRZLatGmjU6dOad26ddq8ebNatGihAQMGaPLkybcVW4sWLeTv76/o6GgNHz5cq1ev1pw5c255XNGiRW/rPLmxt7e3em8ymZSZmZlj3aVLl2rYsGGaMmWKGjRoIDc3N7377rvavXt3ru07OjrmubAUAAAAAOTloUlcpZvDhWNiYnTp0iUNHz7cUt6kSROtX79e3333nV5++WVJUpUqVeTo6KjTp09bktyceHt7q2fPnurZs6caN26s4cOHa/LkyXJwcJB0czGjW7Gzs1OvXr00f/58PfLII3JwcNDTTz99W9fm4eGhUqVKac+ePWrSpInl3Pv371dISMhttZWX2NhYNWzY0DK0WNJdPzoIAAAAAPLy0CWuAwYMUFpamlUyGhoaqoEDByo1NdWyMJObm5uGDRumV199VZmZmXr88ceVmJio2NhYubu7q2fPnho9erTq1KmjqlWrKiUlRV9++aWCg4MlSSVLlpSzs7M2bNigMmXKyMnJSR4eHrnG1qtXL40fP17//ve/1bVrVzk7O9/29b3yyiuaNGmSKlasqMqVK2vGjBm6dOmSTCbTbbeVm8DAQH3yySfauHGjypUrp0WLFmnPnj2WVZQBAAAA4F57aOa4SjcT1+vXr6tixYoqVaqUpTw0NFRXrlyxPDYny4QJEzRq1ChNmjRJwcHBat26tb766itLkubg4KDIyEjVqFFDTZo0kdls1tKlSyVJRYoU0fTp0zVnzhyVLl1aHTp0yDM2f39/tWzZUpcuXVLv3r3v6PpGjBihrl27qkePHmrQoIFcXV0VFhYmJyenO2ovJ/369dOTTz6pLl26qH79+rpw4YJV7ysAAAAA3GsmwzAMWweBf0ZmZqaCg4PVuXNnTZgwwdbhWCQlJcnDw0N+Q5bLztHF1uEAAAAAD42EqHBbh2AlKzdITEyUu7t7rvUeqqHCD7pTp05p06ZNCg0NVUpKimbOnKmTJ0+qW7dutg4NAAAAAO7YQzVU+EFnZ2en6OhoPfroo2rUqJG+//57bdmyxTLvFgAAAADuR/S4PkD8/PwUGxtr6zAAAAAA4J6ixxUAAAAAUKjR4wqb+WFcWJ4TsAEAwIMnI9PQD78lSpKqPeIhs929e2wfgAcXPa4AAAAoMCnpGeowK1YdZsUqJT3D1uEAuE/Q4woAAIACY5JJj3g6W14DQH6QuAIAAKDAODuYFftGc1uHAeA+w1BhAAAAAEChRuIKAAAAACjUGCoMm6k2ZqPsHF1sHQYAAABwSwlR4bYO4aFGjysAAAAAoFAjcQUAAAAAFGokrgAAAACAQo3EFQAAAABQqJG4AgAAAAAKNRJXAAAAAEChRuL6AIqIiFDHjh1tHQYAAAAA3BMkrgAAAACAQo3E9QGXkpKiQYMGqWTJknJyctLjjz+uPXv2WPbXrVtXkydPtrzv2LGj7O3tlZycLEn69ddfZTKZdPz4cUnSokWLVLduXbm5ucnHx0fdunXT+fPnC/aiAAAAADxUSFwfcK+//rpWrVqlhQsXav/+/apYsaLCwsJ08eJFSVJoaKhiYmIkSYZhaMeOHfL09NTOnTslSd98840eeeQRVaxYUZKUlpamCRMm6ODBg1q7dq0SEhIUERGRZwwpKSlKSkqy2gAAAAAgv0hcH2BXr17VBx98oHfffVdt2rRRlSpVNG/ePDk7O2v+/PmSpKZNm2rnzp3KyMjQoUOH5ODgoO7du1uS2ZiYGIWGhlra7N27t9q0aaPy5cvrscce0/Tp07V+/XpLD21OJk2aJA8PD8vm5+f3j143AAAAgAcLiesD7MSJE0pLS1OjRo0sZfb29qpXr56OHDkiSWrcuLGuXLmiAwcO6JtvvlFoaKiaNm1qSVy/+eYbNW3a1HL8vn371L59e/n7+8vNzc2S1J4+fTrXOCIjI5WYmGjZzpw5c+8vFgAAAMADi8T1Iefp6amaNWsqJibGkqQ2adJEBw4c0M8//6xjx45ZktOrV68qLCxM7u7uWrx4sfbs2aM1a9ZIklJTU3M9h6Ojo9zd3a02AAAAAMgvEtcHWIUKFeTg4KDY2FhLWVpamvbs2aMqVapYykJDQ7Vt2zZt375dTZs2VfHixRUcHKy33npLvr6+CgoKkiT99NNPunDhgqKiotS4cWNVrlyZhZkAAAAA/ONIXB9gRYsW1csvv6zhw4drw4YNOnz4sF588UVdu3ZNffr0sdRr2rSpNm7cqCJFiqhy5cqWssWLF1vNb/X395eDg4NmzJihX375RV988YUmTJhQ4NcFAAAA4OFC4vqAi4qK0lNPPaXnn39etWvX1vHjx7Vx40YVK1bMUqdx48bKzMy0SlKbNm2qjIwMq/mt3t7eio6O1ooVK1SlShVFRUVZPUoHAAAAAP4JJsMwDFsHgYdLUlLSzdWFhyyXnaOLrcMBAAAAbikhKtzWITyQsnKDxMTEPNfCoccVAAAAAFCokbgCAAAAAAo1ElcAAAAAQKFG4goAAAAAKNRIXAEAAAAAhVoRWweAh9cP48LyXDkMAAA8eK6lpqvK6I2SpMPjw+TiwMdRALfGXwoAAAAUmCJ2dhr2ryDLawDIDxJXAAAAFBiHInYa2DzQ1mEAuM/wNRcAAAAAoFCjxxUAAAAFxjAMXbyaKkkqXtRBJpPJxhEBuB+QuMJmqo3ZKDtHF1uHAQAAgPtEQlS4rUOAjTBUGAAAAABQqJG4AgAAAAAKNRJXAAAAAEChRuIKAAAAACjUSFwBAAAAAIUaiSsAAAAAoFAjcf0HNW3aVEOGDLnrdiIiItSxY8e7bmfs2LEKCQm563b+LiAgQO+///49bxcAAAAAJBLX2xYRESGTyaSXXnop274BAwbIZDIpIiJCkrR69WpNmDDhrs85bdo0RUdH33U7w4YN09atW++6nb/bs2eP+vbte8/bBQAAAACJxPWO+Pn5aenSpbp+/bql7MaNG/rss8/k7+9vKStevLjc3Nzu+nweHh7y9PS863ZcXV3l5eV11+38nbe3t1xcXO55uwAAAAAgkbjekdq1a8vPz0+rV6+2lK1evVr+/v6qVauWpezvQ4Vnz56twMBAOTk5qVSpUnr66act+1auXKnq1avL2dlZXl5eatmypa5evSop+1DhvOrGxMSoXr16Klq0qDw9PdWoUSOdOnVKUvahwlntjhs3Tt7e3nJ3d9dLL72k1NRUq2sYOHCgBg4cKA8PD5UoUUKjRo2SYRiWOgwVBgAAAPBPInG9Q71799aCBQss7z/++GP16tUr1/p79+7VoEGDNH78eB09elQbNmxQkyZNJElnz55V165d1bt3bx05ckQxMTF68sknrZLDLHnVTU9PV8eOHRUaGqpDhw4pLi5Offv2lclkyjWurVu3WtpZsmSJVq9erXHjxlnVWbhwoYoUKaLvvvtO06ZN09SpU/XRRx/l+16lpKQoKSnJagMAAACA/Cpi6wDuV88995wiIyMtvZmxsbFaunSpYmJicqx/+vRpFS1aVO3atZObm5vKli1r6Z09e/as0tPT9eSTT6ps2bKSpOrVq+fYTl51L168qMTERLVr104VKlSQJAUHB+d5HQ4ODvr444/l4uKiqlWravz48Ro+fLgmTJggO7ub32v4+fnpvffek8lkUqVKlfT999/rvffe04svvpivezVp0qRsyTAAAAAA5Bc9rnfI29tb4eHhio6O1oIFCxQeHq4SJUrkWr9Vq1YqW7asypcvr+eff16LFy/WtWvXJEk1a9ZUixYtVL16dT3zzDOaN2+eLl26lGM7edUtXry4IiIiFBYWpvbt22vatGk6e/ZsntdRs2ZNq/mpDRo0UHJyss6cOWMpe+yxx6x6bRs0aKBjx44pIyPj1jdKUmRkpBITEy3bX9sGAAAAgFshcb0LvXv3VnR0tBYuXKjevXvnWdfNzU379+/XkiVL5Ovrq9GjR6tmzZq6fPmyzGazNm/erPXr16tKlSqaMWOGKlWqpJMnT2Zr51Z1FyxYoLi4ODVs2FDLli1TUFCQvv3223/k+vPL0dFR7u7uVhsAAAAA5BeJ611o3bq1UlNTlZaWprCwsFvWL1KkiFq2bKl33nlHhw4dUkJCgr7++mtJkslkUqNGjTRu3DgdOHBADg4OWrNmTY7t3KpurVq1FBkZqV27dqlatWr67LPPco3p4MGDVqsjf/vtt3J1dZWfn5+lbPfu3VbHfPvttwoMDJTZbL7lNQMAAADA3WKO610wm806cuSI5XVevvzyS/3yyy9q0qSJihUrpnXr1ikzM1OVKlXS7t27tXXrVv3rX/9SyZIltXv3bv3vf//LcX5qXnVPnjypuXPn6oknnlDp0qV19OhRHTt2TD169Mg1rtTUVPXp00dvvvmmEhISNGbMGA0cONAyv1W6OT/3tddeU79+/bR//37NmDFDU6ZMucO7BgAAAAC3h8T1LuV32Kunp6dWr16tsWPH6saNGwoMDNSSJUtUtWpVHTlyRNu3b9f777+vpKQklS1bVlOmTFGbNm1yPF9udc+dO6effvpJCxcu1IULF+Tr66sBAwaoX79+ucbVokULBQYGqkmTJkpJSVHXrl01duxYqzo9evTQ9evXVa9ePZnNZg0ePFh9+/a9rfsEAAAAAHfKZOT0zBU8FCIiInT58mWtXbs21zpNmzZVSEjIPX1Oa1JSkjw8POQ3ZLnsHF1ufQAAAAAgKSEq3NYh4B7Lyg0SExPz7BRkjisAAAAAoFAjcQUAAAAAFGrMcX2IRUdH37JOTEzMPx4HAAAAAOSFHlcAAAAAQKFGjyts5odxYflelRkAADwYrqWmq8rojZKkw+PD5OLAx1EAt8ZfCgAAABQYZ3uz9r3Z0vIaAPKDxBUAAAAFxmQyycvV0dZhALjPMMcVAAAAAFCo0eMKAACAApOanqm5209Ikvo2qSCHIvSjALg1ElcAAAAUmPTMTE3e9LMkqffj5eTAAEAA+UDiCpupNmaj7BxdbB0GAACwkazVhYH8SIgKt3UIsCG+4gIAAAAAFGokrgAAAACAQo3EFQAAAABQqJG4AgAAAAAKNRJXAAAAAEChRuIKAAAAACjUSFwLmYiICHXs2NGqbOXKlXJyctKUKVNsExQAAAAA2BDPcS3kPvroIw0YMEAffvihevXqZetwAAAAAKDA0eNaiL3zzjt65ZVXtHTpUkvSOnXqVFWvXl1FixaVn5+f+vfvr+TkZMsx0dHR8vT01MaNGxUcHCxXV1e1bt1aZ8+etdSJiYlRvXr1VLRoUXl6eqpRo0Y6deqUJOnEiRPq0KGDSpUqJVdXVz366KPasmWLVVyzZ89WYGCgnJycVKpUKT399NMFcDcAAAAAPKxIXAupESNGaMKECfryyy/VqVMnS7mdnZ2mT5+uH3/8UQsXLtTXX3+t119/3erYa9euafLkyVq0aJG2b9+u06dPa9iwYZKk9PR0dezYUaGhoTp06JDi4uLUt29fmUwmSVJycrLatm2rrVu36sCBA2rdurXat2+v06dPS5L27t2rQYMGafz48Tp69Kg2bNigJk2a5HktKSkpSkpKstoAAAAAIL9MhmEYtg4C/yciIkJLlixRamqqtm7dqubNm+dZf+XKlXrppZf0559/SrrZ49qrVy8dP35cFSpUkHSzh3T8+PH6448/dPHiRXl5eSkmJkahoaH5iqlatWp66aWXNHDgQK1evVq9evXSr7/+Kjc3t3wdP3bsWI0bNy5bud+Q5bJzdMlXGwAAAHi4JUSF2zoE/AOSkpLk4eGhxMREubu751qPHtdCqEaNGgoICNCYMWOshgFL0pYtW9SiRQs98sgjcnNz0/PPP68LFy7o2rVrljouLi6WpFWSfH19df78eUlS8eLFFRERobCwMLVv317Tpk2zGkacnJysYcOGKTg4WJ6ennJ1ddWRI0csPa6tWrVS2bJlVb58eT3//PNavHix1blzEhkZqcTERMt25syZu75HAAAAAB4eJK6F0COPPKKYmBj99ttvat26ta5cuSJJSkhIULt27VSjRg2tWrVK+/bt06xZsyRJqampluPt7e2t2jOZTPprx/qCBQsUFxenhg0batmyZQoKCtK3334rSRo2bJjWrFmjiRMnaseOHYqPj1f16tUt7bu5uWn//v1asmSJfH19NXr0aNWsWVOXL1/O9XocHR3l7u5utQEAAABAfpG4FlJly5bVN998oz/++MOSvO7bt0+ZmZmaMmWKHnvsMQUFBen333+/o/Zr1aqlyMhI7dq1S9WqVdNnn30mSYqNjVVERIQ6deqk6tWry8fHRwkJCVbHFilSRC1bttQ777yjQ4cOKSEhQV9//fXdXjIAAAAA5IjEtRDz8/NTTEyMzp8/r7CwMFWsWFFpaWmaMWOGfvnlFy1atEgffvjhbbV58uRJRUZGKi4uTqdOndKmTZt07NgxBQcHS5ICAwO1evVqxcfH6+DBg+rWrZsyMzMtx3/55ZeaPn264uPjderUKX3yySfKzMxUpUqV7um1AwAAAEAWEtdCrkyZMoqJidGff/6pl156SWPHjtXbb7+tatWqafHixZo0adJttefi4qKffvpJTz31lIKCgtS3b18NGDBA/fr1k3TzcTvFihVTw4YN1b59e4WFhal27dqW4z09PbV69Wo1b95cwcHB+vDDD7VkyRJVrVr1nl43AAAAAGRhVWEUuKyVw1hVGAAAAPnFqsIPJlYVBgAAAAA8EEhcAQAAAACFGokrAAAAAKBQI3EFAAAAABRqRWwdAB5eP4wLy3MCNgAAePDcSMvQK0sOSJJmdK0lJ3uzjSMCcD8gcQUAAECBcbI3a16PurYOA8B9hqHCAAAAAIBCjcQVAAAAAFCokbgCAACgwFxPzVCjqK/VKOprXU/NsHU4AO4TzHEFAABAgTFk6LfL1y2vASA/SFxhM9XGbJSdo4utwwAAADZSZfRGW4eA25AQFW7rEPAQY6gwAAAAAKBQI3EFAAAAABRqJK4AAAAAgEKNxBUAAAAAUKiRuAIAAAAACjUS14dcQECA3n///Vz3JyQkyGQyKT4+vsBiAgAAAIC/InF9gJ05c0a9e/dW6dKl5eDgoLJly2rw4MG6cOFCvtvw8/PT2bNnVa1atX8wUgAAAADIHYnrA+qXX35R3bp1dezYMS1ZskTHjx/Xhx9+qK1bt6pBgwa6ePFivtoxm83y8fFRkSI88hcAAACAbZC4PqAGDBggBwcHbdq0SaGhofL391ebNm20ZcsW/fbbbxo5cqSl7rVr19S7d2+5ubnJ399fc+fOtezLaajwN998o3r16snR0VG+vr564403lJ6eXpCXBwAAAOAhQuL6ALp48aI2btyo/v37y9nZ2Wqfj4+PunfvrmXLlskwDEnSlClTVLduXR04cED9+/fXyy+/rKNHj+bY9m+//aa2bdvq0Ucf1cGDB/XBBx9o/vz5+s9//pNrPCkpKUpKSrLaAAAAACC/SFwfQMeOHZNhGAoODs5xf3BwsC5duqT//e9/kqS2bduqf//+qlixokaMGKESJUpo27ZtOR47e/Zs+fn5aebMmapcubI6duyocePGacqUKcrMzMzxmEmTJsnDw8Oy+fn53ZsLBQAAAPBQIHF9gGX1qN5KjRo1LK9NJpN8fHx0/vz5HOseOXJEDRo0kMlkspQ1atRIycnJ+vXXX3M8JjIyUomJiZbtzJkzt3EVAAAAAB52JK4PoIoVK8pkMunIkSM57j9y5IiKFSsmb29vSZK9vb3VfpPJlGvv6Z1wdHSUu7u71QYAAAAA+UXi+gDy8vJSq1atNHv2bF2/ft1q3x9//KHFixerS5cuVr2m+RUcHKy4uDir3tzY2Fi5ubmpTJkydx07AAAAAPwdiesDaubMmUpJSVFYWJi2b9+uM2fOaMOGDWrVqpUeeeQRvfXWW3fUbv/+/XXmzBm98sor+umnn/T5559rzJgxeu2112Rnx68TAAAAgHuPTOMBFRgYqL1796p8+fLq3LmzKlSooL59+6pZs2aKi4tT8eLF76jdRx55ROvWrdN3332nmjVr6qWXXlKfPn305ptv3uMrAAAAAICbTEZ+V/AB7pGkpKSbqwsPWS47RxdbhwMAAIB8SIgKt3UIeABl5QaJiYl5roVDjysAAAAAoFAjcQUAAAAAFGokrgAAAACAQo3EFQAAAABQqBWxdQB4eP0wLizPCdgAAODBk56Rqe3H/idJahLorSJm+lEA3BqJKwAAAApMEbOdmlcuZeswANxn+IoLAAAAAFCo0eMKAACAApORaWjXiT8lSQ0rlJDZzmTjiADcD0hcAQAAUGBS0jP0/PzvJEmHx4fJxYGPowBujb8UAAAAKDB2JpOCfd0trwEgP0hcYTPVxmyUnaOLrcMAAAA2UnnUBluHgL9JiAq3dQhAjlicCQAAAABQqJG4AgAAAAAKNRJXAAAAAEChRuIKAAAAACjUSFwBAAAAAIUaiSsAAAAAoFAjcS0AAQEBev/993Pd37RpUw0ZMiTf7cXExMhkMuny5ct3HRsAAAAAFHYkrnfpzJkz6t27t0qXLi0HBweVLVtWgwcP1oULF2wdGgAAAAA8EEhc78Ivv/yiunXr6tixY1qyZImOHz+uDz/8UFu3blWDBg108eJFW4cIAAAAAPc9Ete7MGDAADk4OGjTpk0KDQ2Vv7+/2rRpoy1btui3337TyJEjczzuo48+kqenp7Zu3Zrj/kWLFqlu3bpyc3OTj4+PunXrpvPnz2ert2/fPtWtW1cuLi5q2LChjh49arX/gw8+UIUKFeTg4KBKlSpp0aJFVvtNJpPmzJmjdu3aycXFRcHBwYqLi9Px48fVtGlTFS1aVA0bNtSJEycsx5w4cUIdOnRQqVKl5OrqqkcffVRbtmzJ8z6lpKQoKSnJagMAAACA/CJxvUMXL17Uxo0b1b9/fzk7O1vt8/HxUffu3bVs2TIZhmG175133tEbb7yhTZs2qUWLFjm2nZaWpgkTJujgwYNau3atEhISFBERka3eyJEjNWXKFO3du1dFihRR7969LfvWrFmjwYMHa+jQofrhhx/Ur18/9erVS9u2bbNqY8KECerRo4fi4+NVuXJldevWTf369VNkZKT27t0rwzA0cOBAS/3k5GS1bdtWW7du1YEDB9S6dWu1b99ep0+fzvVeTZo0SR4eHpbNz88v17oAAAAA8Hcm4++ZFfJl9+7deuyxx7RmzRp17Ngx2/733ntPr732ms6dO6d69eppyJAhOnv2rBYtWqTNmzeratWqlrpNmzZVSEhIrgs47d27V48++qiuXLkiV1dXxcTEqFmzZtqyZYsl+V23bp3Cw8N1/fp1OTk5qVGjRqpatarmzp1raadz5866evWqvvrqK0k3e1zffPNNTZgwQZL07bffqkGDBpo/f74lCV66dKl69eql69ev53ovqlWrppdeeskqwf2rlJQUpaSkWN4nJSXJz89PfkOWy87RJdd2AQAAULASosJtHQIeMklJSfLw8FBiYqLc3d1zrUeP613Kb94/ZcoUzZs3Tzt37rRKWnOyb98+tW/fXv7+/nJzc1NoaKgkZevVrFGjhuW1r6+vJFmGFB85ckSNGjWyqt+oUSMdOXIk1zZKlSolSapevbpV2Y0bNyzDe5OTkzVs2DAFBwfL09NTrq6uOnLkSJ49ro6OjnJ3d7faAAAAACC/SFzvUMWKFWUymbIlglmOHDmiYsWKydvbW5LUuHFjZWRkaPny5Xm2e/XqVYWFhcnd3V2LFy/Wnj17tGbNGklSamqqVV17e3vLa5PJJEnKzMy8revIqY282h02bJjWrFmjiRMnaseOHYqPj1f16tWzxQYAAAAA9wqJ6x3y8vJSq1atNHv27GzDaP/44w8tXrxYXbp0sSR+9erV0/r16zVx4kRNnjw513Z/+uknXbhwQVFRUWrcuLEqV66c48JMtxIcHKzY2FirstjYWFWpUuW22/p7GxEREerUqZOqV68uHx8fJSQk3FWbAAAAAJAXEte7MHPmTKWkpCgsLEzbt2/XmTNntGHDBrVq1UqPPPKI3nrrLav6DRs21Lp16zRu3Lhc57P6+/vLwcFBM2bM0C+//KIvvvjCMgf1dgwfPlzR0dH64IMPdOzYMU2dOlWrV6/WsGHD7uRSLQIDA7V69WrFx8fr4MGD6tat22338gIAAADA7SBxvQuBgYHau3evypcvr86dO6tChQrq27evmjVrpri4OBUvXjzbMY8//ri++uorvfnmm5oxY0a2/d7e3oqOjtaKFStUpUoVRUVF5dlDm5uOHTtq2rRpmjx5sqpWrao5c+ZowYIFatq06Z1cqsXUqVNVrFgxNWzYUO3bt1dYWJhq1659V20CAAAAQF5YVRgFLmvlMFYVBgAAKFxYVRgFjVWFAQAAAAAPBBJXAAAAAEChRuIKAAAAACjUSFwBAAAAAIVaEVsHgIfXD+PC8pyADQAAAAASPa4AAAAAgEKOxBUAAAAF5kZahvov3qf+i/fpRlqGrcMBcJ8gcQUAAECByTQMrfv+D637/g9lGoatwwFwn2COKwAAAAqMvdlO4ztUtbwGgPwgcYXNVBuzUXaOLrYOAwAA2Mjoz3+0dQiQlBAVbusQgFviay4AAAAAQKFG4goAAAAAKNRIXAEAAAAAhRqJKwAAAACgUCNxBQAAAAAUaiSuAAAAAIBCjcT1PtS0aVMNGTLE8j4gIEDvv/++5b3JZNLatWvv6Tn/fg4AAAAAKCg8x/U+ERERocuXL+crIT179qyKFSt2T8+/Z88eFS1a9J62CQAAAAD5QeL6APLx8bnnbXp7e9/zNgEAAAAgPxgq/AD661DhhIQEmUwmrV69Ws2aNZOLi4tq1qypuLg4q2NWrVqlqlWrytHRUQEBAZoyZYrV/r8OFTYMQ2PHjpW/v78cHR1VunRpDRo0qCAuDQAAAMBDiMT1ITFy5EgNGzZM8fHxCgoKUteuXZWeni5J2rdvnzp37qxnn31W33//vcaOHatRo0YpOjo6x7ZWrVql9957T3PmzNGxY8e0du1aVa9ePddzp6SkKCkpyWoDAAAAgPxiqPBDYtiwYQoPD5ckjRs3TlWrVtXx48dVuXJlTZ06VS1atNCoUaMkSUFBQTp8+LDeffddRUREZGvr9OnT8vHxUcuWLWVvby9/f3/Vq1cv13NPmjRJ48aN+0euCwAAAMCDjx7Xh0SNGjUsr319fSVJ58+flyQdOXJEjRo1sqrfqFEjHTt2TBkZGdnaeuaZZ3T9+nWVL19eL774otasWWPpvc1JZGSkEhMTLduZM2fuxSUBAAAAeEiQuD4k7O3tLa9NJpMkKTMz847a8vPz09GjRzV79mw5Ozurf//+atKkidLS0nKs7+joKHd3d6sNAAAAAPKLxBUKDg5WbGysVVlsbKyCgoJkNptzPMbZ2Vnt27fX9OnTFRMTo7i4OH3//fcFES4AAACAhwxzXKGhQ4fq0Ucf1YQJE9SlSxfFxcVp5syZmj17do71o6OjlZGRofr168vFxUWffvqpnJ2dVbZs2QKOHAAAAMDDgB5XqHbt2lq+fLmWLl2qatWqafTo0Ro/fnyOCzNJkqenp+bNm6dGjRqpRo0a2rJli/773//Ky8urYAMHAAAA8FAwGYZh2DoIPFySkpLk4eEhvyHLZefoYutwAAAAHmoJUeG2DgEPsazcIDExMc+1cOhxBQAAAAAUaiSuAAAAAIBCjcQVAAAAAFCokbgCAAAAAAo1HocDm/lhXFieE7ABAAAAQCJxBQAAQAEyDENJN9IlSe5ORWQymWwcEYD7AYkrAAAACsz1tAzVHLdJknR4fJhcHPg4CuDWmOMKAAAAACjU+IoLAAAABcbZ3qxjb7WRJBWxY5gwgPwhcQUAAECBMZlMsjeTsAK4PSSusJlqYzbKztHF1mEAAAA8lBKiwm0dApBvzHEFAAAAABRqJK4AAAAAgEKNxBUAAAAAUKiRuAIAAAAACjUSVwAAAABAoUbi+gAxmUxau3atJCkhIUEmk0nx8fE2jQkAAAAA7haPwykkIiIidPnyZUviebf8/Px09uxZlShR4p60BwAAAAC2QuL6gDKbzfLx8bF1GAAAAABw1xgqXAg1bdpUgwYN0uuvv67ixYvLx8dHY8eOtapz7NgxNWnSRE5OTqpSpYo2b95stf/vQ4UzMjLUp08flStXTs7OzqpUqZKmTZtmdUxERIQ6duyoyZMny9fXV15eXhowYIDS0tIsdRYtWqS6devKzc1NPj4+6tatm86fP/+P3AcAAAAAkOhxLbQWLlyo1157Tbt371ZcXJwiIiLUqFEjtWrVSpmZmXryySdVqlQp7d69W4mJiRoyZEie7WVmZqpMmTJasWKFvLy8tGvXLvXt21e+vr7q3Lmzpd62bdvk6+urbdu26fjx4+rSpYtCQkL04osvSpLS0tI0YcIEVapUSefPn9drr72miIgIrVu3Ltdzp6SkKCUlxfI+KSnp7m4OAAAAgIcKiWshVaNGDY0ZM0aSFBgYqJkzZ2rr1q1q1aqVtmzZop9++kkbN25U6dKlJUkTJ05UmzZtcm3P3t5e48aNs7wvV66c4uLitHz5cqvEtVixYpo5c6bMZrMqV66s8PBwbd261ZK49u7d21K3fPnymj59uh599FElJyfL1dU1x3NPmjTJ6twAAAAAcDsYKlxI1ahRw+q9r6+vZUjukSNH5OfnZ0laJalBgwa3bHPWrFmqU6eOvL295erqqrlz5+r06dNWdapWrSqz2ZzjeSVp3759at++vfz9/eXm5qbQ0FBJytbOX0VGRioxMdGynTlz5paxAgAAAEAWEtdCyt7e3uq9yWRSZmbmHbe3dOlSDRs2TH369NGmTZsUHx+vXr16KTU1Nd/nvXr1qsLCwuTu7q7Fixdrz549WrNmjSRla+evHB0d5e7ubrUBAAAAQH4xVPg+FBwcrDNnzujs2bPy9fWVJH377bd5HhMbG6uGDRuqf//+lrITJ07c1nl/+uknXbhwQVFRUfLz85Mk7d279zajBwAAAIDbQ4/rfahly5YKCgpSz549dfDgQe3YsUMjR47M85jAwEDt3btXGzdu1M8//6xRo0Zpz549t3Vef39/OTg4aMaMGfrll1/0xRdfaMKECXdzKQAAAABwSySu9yE7OzutWbNG169fV7169fTCCy/orbfeyvOYfv366cknn1SXLl1Uv359Xbhwwar3NT+8vb0VHR2tFStWqEqVKoqKitLkyZPv5lIAAAAA4JZMhmEYtg4CD5ekpCR5eHjIb8hy2Tm62DocAACAh1JCVLitQwAsuUFiYmKea+HQ4woAAAAAKNRIXAEAAAAAhRqJKwAAAACgUCNxBQAAAAAUajzHFTbzw7iwPCdgAwAAAIBE4goAAIAClJqeqQWxJyVJvRqVk0MRBgACuDUSVwAAABSY9MxMTVr/kyTp+QZl5cDMNQD5QOIKAACAAmO2M+mp2mUsrwEgP0hcAQAAUGAci5g1pXNNW4cB4D7D2AwAAAAAQKFGjytsptqYjbJzdLF1GAAAAA+8hKhwW4cA3BV6XAEAAAAAhRqJKwAAAACgUCNxBQAAAAAUaiSuAAAAAIBCjcQVAAAAAFCokbj+QyIiItSxY0ebnT8hIUEmk0nx8fE2iwEAAAAA7oUHPnGNiIiQyWRSVFSUVfnatWtlMpnuuv17mSBGR0fLZDLJZDLJbDarWLFiql+/vsaPH6/ExMS7bv92mUwmrV27tsDPCwAAAAB/9cAnrpLk5OSkt99+W5cuXbqn7aampt7T9iTJ3d1dZ8+e1a+//qpdu3apb9+++uSTTxQSEqLff//9np8PAAAAAAq7hyJxbdmypXx8fDRp0qQ8661atUpVq1aVo6OjAgICNGXKFKv9AQEBmjBhgnr06CF3d3f17dtX5cqVkyTVqlVLJpNJTZs2tTpm8uTJ8vX1lZeXlwYMGKC0tLQ8YzCZTPLx8ZGvr6+Cg4PVp08f7dq1S8nJyXr99dct9TZs2KDHH39cnp6e8vLyUrt27XTixIlc283IyFDv3r1VuXJlnT59WpL0wQcfqEKFCnJwcFClSpW0aNEiq2uVpE6dOslkMlnenzhxQh06dFCpUqXk6uqqRx99VFu2bMnzmgAAAADgbjwUiavZbNbEiRM1Y8YM/frrrznW2bdvnzp37qxnn31W33//vcaOHatRo0YpOjraqt7kyZNVs2ZNHThwQKNGjdJ3330nSdqyZYvOnj2r1atXW+pu27ZNJ06c0LZt27Rw4UJFR0dnay8/SpYsqe7du+uLL75QRkaGJOnq1at67bXXtHfvXm3dulV2dnbq1KmTMjMzsx2fkpKiZ555RvHx8dqxY4f8/f21Zs0aDR48WEOHDtUPP/ygfv36qVevXtq2bZskac+ePZKkBQsW6OzZs5b3ycnJatu2rbZu3aoDBw6odevWat++vSUZzklKSoqSkpKsNgAAAADIryK2DqCgdOrUSSEhIRozZozmz5+fbf/UqVPVokULjRo1SpIUFBSkw4cP691331VERISlXvPmzTV06FDLe7PZLEny8vKSj4+PVZvFihXTzJkzZTabVblyZYWHh2vr1q168cUXbzv+ypUr68qVK7pw4YJKliypp556ymr/xx9/LG9vbx0+fFjVqlWzlCcnJys8PFwpKSnatm2bPDw8JN1MwCMiItS/f39J0muvvaZvv/1WkydPVrNmzeTt7S1J8vT0tLqumjVrqmbNmpb3EyZM0Jo1a/TFF19o4MCBOcY+adIkjRs37ravGQAAAACkh6THNcvbb7+thQsX6siRI9n2HTlyRI0aNbIqa9SokY4dO2bp5ZSkunXr5vt8VatWtSS2kuTr66vz58/fQeSSYRiSZFlQ6tixY+ratavKly8vd3d3y1Dev/d8du3aVVevXtWmTZssSauU+/XmdG/+Kjk5WcOGDVNwcLA8PT3l6uqqI0eO5NnjGhkZqcTERMt25syZfF83AAAAADxUiWuTJk0UFhamyMjIO26jaNGi+a5rb29v9d5kMuU4lDc/jhw5Ind3d3l5eUmS2rdvr4sXL2revHnavXu3du/eLSn7glFt27bVoUOHFBcXd0fn/bthw4ZpzZo1mjhxonbs2KH4+HhVr149z4WqHB0d5e7ubrUBAAAAQH49NEOFs0RFRSkkJESVKlWyKg8ODlZsbKxVWWxsrIKCgqx6Tf/OwcFBkqx6Ze+18+fP67PPPlPHjh1lZ2enCxcu6OjRo5o3b54aN24sSdq5c2eOx7788suqVq2annjiCX311VcKDQ2V9H/X27NnT0vd2NhYValSxfLe3t4+23XFxsYqIiJCnTp1knSzBzYhIeFeXi4AAAAAWHnoEtfq1aure/fumj59ulX50KFD9eijj2rChAnq0qWL4uLiNHPmTM2ePTvP9kqWLClnZ2dt2LBBZcqUkZOTk9WQ3NtlGIb++OMPGYahy5cvKy4uThMnTpSHh4flWbTFihWTl5eX5s6dK19fX50+fVpvvPFGrm2+8sorysjIULt27bR+/Xo9/vjjGj58uDp37qxatWqpZcuW+u9//6vVq1dbrRAcEBCgrVu3qlGjRnJ0dFSxYsUUGBio1atXq3379jKZTBo1atQd9yIDAAAAQH48VEOFs4wfPz5bslW7dm0tX75cS5cuVbVq1TR69GiNHz/eamGmnBQpUkTTp0/XnDlzVLp0aXXo0OGuYktKSpKvr68eeeQRNWjQQHPmzFHPnj114MAB+fr6SpLs7Oy0dOlS7du3T9WqVdOrr76qd999N892hwwZonHjxqlt27batWuXOnbsqGnTpmny5MmqWrWq5syZowULFlg9zmfKlCnavHmz/Pz8VKtWLUk3F7EqVqyYGjZsqPbt2yssLEy1a9e+q2sGAAAAgLyYjKxVf4ACkpSUJA8PD/kNWS47RxdbhwMAAPDAS4gKt3UIQI6ycoPExMQ818J5KHtcAQAAAAD3DxJXAAAAAEChRuIKAAAAACjUSFwBAAAAAIUaiSsAAAAAoFB76J7jisLjh3Fhea4cBgAAHjzXUzPUZtp2SdL6wU3k7GC2cUQA7gckrgAAACgwhgwlXLhmeQ0A+UHiCgAAgALjWMSslS81sLwGgPwgcQUAAECBMduZVDeguK3DAHCfYXEmAAAAAEChRo8rbKbamI2yc3SxdRgAAAAPlISocFuHANxz9LgCAAAAAAo1ElcAAAAAQKFG4goAAAAAKNRIXAEAAAAAhRqJKwAAAACgUCNxBQAAAAAUaiSuhVRAQIDef//9Aj/v2LFjFRISUuDnBQAAAIDckLjeYxERETKZTIqKirIqX7t2rUwmk42iAgAAAID7F4nrP8DJyUlvv/22Ll26VKDnTUtLK9DzAQAAAEBBIHH9B7Rs2VI+Pj6aNGlSrnV27typxo0by9nZWX5+fho0aJCuXr1qVefKlSvq2rWrihYtqkceeUSzZs2y2m8ymfTBBx/oiSeeUNGiRfXWW28pIyNDffr0Ubly5eTs7KxKlSpp2rRpVsfFxMSoXr16Klq0qDw9PdWoUSOdOnUqxzhPnDih8uXLa+DAgTIMQ3v27FGrVq1UokQJeXh4KDQ0VPv377/DOwUAAAAAt0bi+g8wm82aOHGiZsyYoV9//TXb/hMnTqh169Z66qmndOjQIS1btkw7d+7UwIEDreq9++67qlmzpg4cOKA33nhDgwcP1ubNm63qjB07Vp06ddL333+v3r17KzMzU2XKlNGKFSt0+PBhjR49Wv/+97+1fPlySVJ6ero6duyo0NBQHTp0SHFxcerbt2+Ow5gPHTqkxx9/XN26ddPMmTNlMpl05coV9ezZUzt37tS3336rwMBAtW3bVleuXMn1fqSkpCgpKclqAwAAAID8MhmGYdg6iAdJRESELl++rLVr16pBgwaqUqWK5s+fr7Vr16pTp04yDEMvvPCCzGaz5syZYzlu586dCg0N1dWrV+Xk5KSAgAAFBwdr/fr1ljrPPvuskpKStG7dOkk3e1yHDBmi9957L8+YBg4cqD/++EMrV67UxYsX5eXlpZiYGIWGhmarO3bsWK1du1azZ89Wu3btNHLkSA0dOjTXtjMzM+Xp6anPPvtM7dq1y7HO2LFjNW7cuGzlfkOWy87RJc/YAQAAcHsSosJtHQKQb0lJSfLw8FBiYqLc3d1zrUeP6z/o7bff1sKFC3XkyBGr8oMHDyo6Olqurq6WLSwsTJmZmTp58qSlXoMGDayOa9CgQba26tatm+28s2bNUp06deTt7S1XV1fNnTtXp0+fliQVL15cERERCgsLU/v27TVt2jSdPXvW6vjTp0+rVatWGj16dLak9dy5c3rxxRcVGBgoDw8Pubu7Kzk52dJ+TiIjI5WYmGjZzpw5k8ddAwAAAABrJK7/oCZNmigsLEyRkZFW5cnJyerXr5/i4+Mt28GDB3Xs2DFVqFDhts5RtGhRq/dLly7VsGHD1KdPH23atEnx8fHq1auXUlNTLXUWLFiguLg4NWzYUMuWLVNQUJC+/fZby35vb2/Vq1dPS5YsyTast2fPnoqPj9e0adO0a9cuxcfHy8vLy6r9v3N0dJS7u7vVBgAAAAD5VcTWATzooqKiFBISokqVKlnKateurcOHD6tixYp5HvvXZDLrfXBwcJ7HxMbGqmHDhurfv7+l7MSJE9nq1apVS7Vq1VJkZKQaNGigzz77TI899pgkydnZWV9++aXatm2rsLAwbdq0SW5ubpb2Z8+erbZt20qSzpw5oz///DPPmAAAAADgbtDj+g+rXr26unfvrunTp1vKRowYoV27dmngwIGKj4/XsWPH9Pnnn2dbnCk2NlbvvPOOfv75Z82aNUsrVqzQ4MGD8zxfYGCg9u7dq40bN+rnn3/WqFGjtGfPHsv+kydPKjIyUnFxcTp16pQ2bdqkY8eOZUuIixYtqq+++kpFihRRmzZtlJycbGl/0aJFOnLkiHbv3q3u3bvL2dn5bm8TAAAAAOSKxLUAjB8/XpmZmZb3NWrU0DfffKOff/5ZjRs3Vq1atTR69GiVLl3a6rihQ4dq7969qlWrlv7zn/9o6tSpCgsLy/Nc/fr105NPPqkuXbqofv36unDhglXvq4uLi3766Sc99dRTCgoKUt++fTVgwAD169cvW1uurq5av369DMNQeHi4rl69qvnz5+vSpUuqXbu2nn/+eQ0aNEglS5a8yzsEAAAAALljVWEUuKyVw1hVGAAA4N5jVWHcT1hVGAAAAADwQCBxBQAAAAAUaiSuAAAAAIBCjcQVAAAAAFCo8RxX2MwP48LynIANAAAePNdS01Vl9EZJ0uHxYXJx4OMogFvjLwUAAAAKjEkmBZZ0tbwGgPwgcQUAAECBcXYwa/NrobYOA8B9hjmuAAAAAIBCjcQVAAAAAFCokbgCAACgwNxIy9BzH+3Wcx/t1o20DFuHA+A+wRxX2Ey1MRtl5+hi6zAAALcpISrc1iHgPpZpGNp5/E/LawDIDxJXAAAAFBgHs53e7xJieQ0A+UHiCgAAgAJTxGynjrUesXUYAO4zfM0FAAAAACjU6HEFAABAgcnINPTDb4mSpGqPeMhsZ7JxRADuB/S4AgAAoMCkpGeow6xYdZgVq5R0VhUGkD8krsiTyWTS2rVrbR0GAAB4QJhk0iOeznrE01km0dsKIH9IXG0sIiJCJpNJUVFRVuVr166VycQfcwAA8GBxdjAr9o3min2juZwdzLYOB8B9gsS1EHByctLbb7+tS5cu2ToUAAAAACh0SFwLgZYtW8rHx0eTJk3Ktc7OnTvVuHFjOTs7y8/PT4MGDdLVq1clSf/+979Vv379bMfUrFlT48ePlyTt2bNHrVq1UokSJeTh4aHQ0FDt37/fqv6xY8fUpEkTOTk5qUqVKtq8eXO2NkeMGKGgoCC5uLiofPnyGjVqlNLS0u7m8gEAAAAgTySuhYDZbNbEiRM1Y8YM/frrr9n2nzhxQq1bt9ZTTz2lQ4cOadmyZdq5c6cGDhwoSerevbu+++47nThxwnLMjz/+qEOHDqlbt26SpCtXrqhnz57auXOnvv32WwUGBqpt27a6cuWKJCkzM1NPPvmkHBwctHv3bn344YcaMWJEtljc3NwUHR2tw4cPa9q0aZo3b57ee++9PK8vJSVFSUlJVhsAAHg43UjL0Iuf7NWLn+zVjTQWZwKQPySuhUSnTp0UEhKiMWPGZNs3adIkde/eXUOGDFFgYKAaNmyo6dOn65NPPtGNGzdUtWpV1axZU5999pnlmMWLF6t+/fqqWLGiJKl58+Z67rnnVLlyZQUHB2vu3Lm6du2avvnmG0nSli1b9NNPP+mTTz5RzZo11aRJE02cODFbLG+++aYaNmyogIAAtW/fXsOGDdPy5cvzvLZJkybJw8PDsvn5+d3NrQIAAPexTMPQ5sPntPnwOWUahq3DAXCfIHEtRN5++20tXLhQR44csSo/ePCgoqOj5erqatnCwsKUmZmpkydPSrrZ65qVuBqGoSVLlqh79+6WNs6dO6cXX3xRgYGB8vDwkLu7u5KTk3X69GlJ0pEjR+Tn56fSpUtbjmnQoEG2GJctW6ZGjRrJx8dHrq6uevPNNy1t5CYyMlKJiYmW7cyZM3d2gwAAwH3P3mynSU9W16Qnq8vezEdRAPlTxNYB4P80adJEYWFhioyMVEREhKU8OTlZ/fr106BBg7Id4+/vL0nq2rWrRowYof379+v69es6c+aMunTpYqnXs2dPXbhwQdOmTVPZsmXl6OioBg0aKDU1Nd/xxcXFqXv37ho3bpzCwsLk4eGhpUuXasqUKXke5+joKEdHx3yfBwAAPLjszXbqWs/f1mEAuM+QuBYyUVFRCgkJUaVKlSxltWvX1uHDhy3DfnNSpkwZhYaGavHixbp+/bpatWqlkiVLWvbHxsZq9uzZatu2rSTpzJkz+vPPPy37g4ODdebMGZ09e1a+vr6SpG+//dbqHLt27VLZsmU1cuRIS9mpU6fu7oIBAAAA4BYYn1HIVK9eXd27d9f06dMtZSNGjNCuXbs0cOBAxcfH69ixY/r8888tizNl6d69u5YuXaoVK1ZYDROWpMDAQC1atEhHjhzR7t271b17dzk7O1v2t2zZUkFBQerZs6cOHjyoHTt2WCWoWW2cPn1aS5cu1YkTJzR9+nStWbPmH7gLAADgQZWZaejnc1f087krysxkjiuA/CFxLYTGjx+vzMxMy/saNWrom2++0c8//6zGjRurVq1aGj16tNV8VEl6+umndeHCBV27dk0dO3a02jd//nxdunRJtWvX1vPPP69BgwZZ9cja2dlpzZo1un79uurVq6cXXnhBb731llUbTzzxhF599VUNHDhQISEh2rVrl0aNGnXvbwAAAHhg3UjP0L/e265/vbddN9JZVRhA/pgMg+XcULCSkpJuri48ZLnsHF1sHQ4A4DYlRIXbOgTcx66lpuvxt7dJknaOaCYXB2auAQ+zrNwgMTFR7u7uudbjLwUAAAAKjItDEe0f1crWYQC4zzBUGAAAAABQqJG4AgAAAAAKNRJXAAAAFJgbaRkavPSABi89oBtpLM4EIH+Y4wqb+WFcWJ4TsAEAwIMn0zD0efzvkqRJT1a3cTQA7hckrgAAACgw9mY7jWpXxfIaAPKDxBUAAAAFxt5spz6Pl7N1GADuM3zNBQAAAAAo1OhxBQAAQIHJzDT02+XrkqRHPJ1lZ2eycUQA7gf0uAIAAKDA3EjPUON3tqnxO9t0I51VhQHkDz2usJlqYzbKztHF1mEAAPIpISrc1iHgAeFsb7Z1CADuMySuAAAAKDAuDkV0ZEJrW4cB4D7DUGEAAAAAQKFG4goAAAAAKNRIXAEAAFBgUtIz9MaqQ3pj1SGlsDgTgHwicQUAAECBycg0tHTPGS3dc0YZmYatwwFwnyBxRb6NHTtWISEhtg4DAADcx4rY2WnYv4I07F9BKmLHR1EA+cNfiwdM06ZNNWTIkGzl0dHR8vT0lCRFRESoY8eOBRoXAACAJDkUsdPA5oEa2DxQDkX4KAogf/hrAQAAAAAo1EhcHzJjx47VwoUL9fnnn8tkMslkMikmJkaSNGLECAUFBcnFxUXly5fXqFGjlJaWlq2NRYsWKSAgQB4eHnr22Wd15cqVAr4KAABwvzIMQxeSU3QhOUWGwRxXAPlTxNYBoGANGzZMR44cUVJSkhYsWCBJKl68uCTJzc1N0dHRKl26tL7//nu9+OKLcnNz0+uvv245/sSJE1q7dq2+/PJLXbp0SZ07d1ZUVJTeeuutXM+ZkpKilJQUy/ukpKR/6OoAAEBhdz0tQ3X+s0WSdHh8mFwc+DgK4NbocX3IuLq6ytnZWY6OjvLx8ZGPj48cHBwkSW+++aYaNmyogIAAtW/fXsOGDdPy5cutjs/MzFR0dLSqVaumxo0b6/nnn9fWrVvzPOekSZPk4eFh2fz8/P6x6wMAAADw4OErLlgsW7ZM06dP14kTJ5ScnKz09HS5u7tb1QkICJCbm5vlva+vr86fP59nu5GRkXrttdcs75OSkkheAQB4SLk4FFFCVLitwwBwn6HH9QHj7u6uxMTEbOWXL1+Wh4dHrsfFxcWpe/fuatu2rb788ksdOHBAI0eOVGpqqlU9e3t7q/cmk0mZmZl5xuTo6Ch3d3erDQAAAADyix7XB0ylSpW0adOmbOX79+9XUFCQJMnBwUEZGRlW+3ft2qWyZctq5MiRlrJTp079s8ECAAAAQD7Q4/qAefnll/Xzzz9r0KBBOnTokI4ePaqpU6dqyZIlGjp0qKSbw32z9v35559KS0tTYGCgTp8+raVLl+rEiROaPn261qxZY+OrAQAAD5qU9AyN+++PGvffH5WSnnHrAwBAJK4PnPLly2v79u366aef1LJlS9WvX1/Lly/XihUr1Lp1a0nSiy++qEqVKqlu3bry9vZWbGysnnjiCb366qsaOHCgQkJCtGvXLo0aNcrGVwMAAB40GZmGFsQmaEFsgjIyeRwOgPwxGTxACwUsKSnp5urCQ5bLztHF1uEAAPKJBXVwL6SmZ2ra1p8lSYNbBMmhCP0owMMsKzdITEzMcy0c5rgCAACgwDgUsdPwsMq2DgPAfYavuAAAAAAAhRo9rgAAACgwhmHoetrNRZmc7c0ymUw2jgjA/YAeVwAAABSY62kZqjJ6o6qM3mhJYAHgVuhxhc38MC4szwnYAAAAACCRuAIAAKAAOdubdXh8mOU1AOQHiSsAAAAKjMlkkosDH0EB3B7muAIAAAAACjW+7gIAAECBSU3P1LStP0uSBrcIkkMR+lEA3Bp/KQAAAFBg0jMzNWvbCc3adkLpmZm2DgfAfYIeV9hMtTEbZefoYuswAAD5lBAVbusQ8AAw25nUq1GA5TUA5AeJKwAAAAqMYxGzxrSvauswANxnGCoMAAAAACjUSFwBAAAAAIUaiSsAAAAKzLXUdAW88ZUC3vhK11LTbR0OgPsEiSsAAAAAoFBjcSYAAAAUGGd7s/a92dLyGgDyg8QVAAAABcZkMsnL1dHWYQC4zzBUuABERETIZDLppZdeyrZvwIABMplMioiIuGfnGzt2rEJCQu5ZewAAAABgSySuBcTPz09Lly7V9evXLWU3btzQZ599Jn9/fxtGBgAAUHBS0zM18+tjmvn1MaWmZ9o6HAD3CRLXAlK7dm35+flp9erVlrLVq1fL399ftWrVspSlpKRo0KBBKlmypJycnPT4449rz549lv0xMTEymUzaunWr6tatKxcXFzVs2FBHjx6VJEVHR2vcuHE6ePCgTCaTTCaToqOjJUlTp05V9erVVbRoUfn5+al///5KTk62tB0dHS1PT09t3LhRwcHBcnV1VevWrXX27FlLnT179qhVq1YqUaKEPDw8FBoaqv379+d57SkpKUpKSrLaAADAwyk9M1OTN/2syZt+VnomiSuA/CFxLUC9e/fWggULLO8//vhj9erVy6rO66+/rlWrVmnhwoXav3+/KlasqLCwMF28eNGq3siRIzVlyhTt3btXRYoUUe/evSVJXbp00dChQ1W1alWdPXtWZ8+eVZcuXSRJdnZ2mj59un788UctXLhQX3/9tV5//XWrdq9du6bJkydr0aJF2r59u06fPq1hw4ZZ9l+5ckU9e/bUzp079e233yowMFBt27bVlStXcr3uSZMmycPDw7L5+fnd2Q0EAAD3PbOdSc8+6qdnH/WT2c5k63AA3CdMhmEYtg7iQRcREaHLly9r3rx58vPzs/SOVq5cWWfOnNELL7wgT09PzZo1S8WKFVN0dLS6desmSUpLS1NAQICGDBmi4cOHKyYmRs2aNdOWLVvUokULSdK6desUHh6u69evy8nJSWPHjtXatWsVHx+fZ1wrV67USy+9pD///FPSzR7XXr166fjx46pQoYIkafbs2Ro/frz++OOPHNvIzMyUp6enPvvsM7Vr1y7HOikpKUpJSbG8T0pKkp+fn/yGLJedo0v+byQAwKYSosJtHQIA4AGTlJQkDw8PJSYmyt3dPdd6rCpcgLy9vRUeHq7o6GgZhqHw8HCVKFHCsv/EiRNKS0tTo0aNLGX29vaqV6+ejhw5YtVWjRo1LK99fX0lSefPn89zvuyWLVs0adIk/fTTT0pKSlJ6erpu3Liha9euycXlZgLp4uJiSVqz2j5//rzl/blz5/Tmm28qJiZG58+fV0ZGhq5du6bTp0/nel5HR0c5OrJ6IAAAAIA7Q+JawHr37q2BAwdKkmbNmnXH7djb21tem0w3h9lk5jFPJCEhQe3atdPLL7+st956S8WLF9fOnTvVp08fpaamWhLXv7ab1fZfO+V79uypCxcuaNq0aSpbtqwcHR3VoEEDpaam3vG1AAAAAEBemONawFq3bq3U1FSlpaUpLCzMal+FChXk4OCg2NhYS1laWpr2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DVfOj9dee00vvPCCWrZsqaioqFu2ERkZqcTERMv2155gAAAAALiVByJxlW72ekZHR2vhwoVWPaBZ2rdvr4sXL2revHnavXu3du/eLenm3FDp5lzZkydPasKECbp+/bo6d+6sp59+WtLNBaCOHj2q2bNny9nZWf3791eTJk2Ulpamq1evKiwsTO7u7lq8eLH27NmjNWvWWLWd1XOZl78ntSaTSZmZmVbvDcN6Hshf58DmFX9ycrJ8fX0VHx9vtR09elTDhw+/ZWx/N3bsWP34448KDw/X119/rSpVqliuOSeOjo5yd3e32gAAwMMpPSNTaw/8prUHflN6RuatDwAAPSBDhSWpdevWSk1NlclkUlhYmNW+Cxcu6OjRo5o3b54aN24s6ebw2b9zd3dXly5d1KVLFz399NNq3bq1Ll68qOLFi8vZ2Vnt27dX+/btNWDAAFWuXFnff/+9DMPQhQsXFBUVJT8/P0nKtlBRjRo1tHDhQqWlpeXZ65oXb29vnT171vL+2LFjunbtWr7ir127tv744w8VKVLE0tP8dw4ODsrIyL6yn729fY7lQUFBCgoK0quvvqquXbtqwYIF6tSp0x1dGwAAeHikZmRqyLJ4SdK/qpZSEfMD048C4B/0wCSuZrNZR44csbz+q2LFisnLy0tz586Vr6+vTp8+rTfeeMOqztSpU+Xr66tatWrJzs5OK1askI+Pj2Xl3oyMDNWvX18uLi769NNP5ezsrLJlyyozM1MODg6aMWOGXnrpJf3www+aMGGCVdsDBw7UjBkz9OyzzyoyMlIeHh769ttvVa9ePVWqVClf19e8eXPNnDlTDRo0UEZGhkaMGGGVBOcVf8uWLdWgQQN17NhR77zzjoKCgvT777/rq6++UqdOnVS3bl0FBATo5MmTio+PV5kyZeTm5iZHR0cFBARo69atatSokRwdHeXk5KThw4fr6aefVrly5fTrr79qz5492eYQAwAA5MTOZNLjFUtYXgNAfjxQX3HlNgzVzs5OS5cu1b59+1StWjW9+uqrevfdd63quLm56Z133lHdunX16KOPKiEhQevWrZOdnZ08PT01b948NWrUSDVq1NCWLVv03//+V15eXvL29lZ0dLRWrFihKlWqKCoqSpMnT7Zq28vLS19//bWSk5MVGhqqOnXqaN68ebfV+zplyhT5+fmpcePG6tatm4YN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M6fcNrZt26ZHHnlEjz76qL777jtNnDhREyZMsCXin376qZ566il17dpVeXl5V73PlJQU9ejRQx06dLiizMPDQ76+vpKkMWPGaOnSpVq0aJGys7PVtGlTJSQk6NSpU+W266ivv/5aP/30k9avX69Zs2bptdde04MPPqhatWopMzNTzzzzjJ5++mn98MMPdueNHj1aI0eO1Pbt29W1a1f16tVLJ0+eLPcahYWF6tSpkz7//HPt3r1bQ4YM0YABA7R169arxlVUVKSCggK7FwAAAAA4qsJWFW7RooV27dpVbtnRo0cVFRWlu+++WyaTSbfddputLCQkRJIUFBR0xZTU4uJiffjhh7Y6l9u/f79SU1OVlpamHj16SJIaN25sK780rbhu3boKCgq6auyzZs1S9+7dNWHCBElSs2bNtGfPHk2fPl2DBg1ScHCwfHx8rjtt9sCBA1cdjb3k/Pnzmj9/vpKTk23PAL///vtKS0vTggULNHr06Guefy3BwcGaO3euzGazmjdvrmnTpunChQt66aWXJEnjx49XUlKSNm7cqEcffdR23nPPPac+ffpIkubPn6/Vq1drwYIFGjNmzBXXqF+/vkaNGmXbf/7557VmzRqlpqaqS5cu5cY1depUTZo06abvCwAA3DouFJfqjjfWSpIyX+ouH09+5ALA9VXYqsKGYchkKv8B+0GDBmnHjh1q3ry5hg8fri+//NKhNm+77barJq2StGPHDrm5uSk2NvamYr4kJydHMTExdsdiYmJ04MABlZWVOdyOYRjXrXPo0CGVlJTYXc/Dw0NdunRRTk6O40GXo3Xr1jKb/69L69Wrp+joaNu+m5ubateurRMnTtid17VrV9u2u7u7OnfufNVYysrKNGXKFEVHRys4OFh+fn5as2aNjh49etW4xo8fr/z8fNvr2LFjN3uLAADgFnC2sFRnC0tdHQaAaqTC/sSVk5OjRo0alVvWsWNHHTlyRKtWrdJXX32lRx55RD169NA///nPa7Z5aWrt1Xh7e990vJWhWbNm2rt3b4W3azabr0iKy1uh2MPDw27/0urPlx+7fAXoGzF9+nTNmTNHs2fPVnR0tHx9fZWYmKji4uKrnmOxWGSxWG76mgAA4Nbh5e6m9FFxtm0AcESFjLh+/fXX+u6772zTTcsTEBCgvn376v3339eSJUu0dOlS2zOdHh4eNzSyeUl0dLSsVqvdYkK/5unpKUnXbbtly5batGmT3bFNmzapWbNmcnNz/AP1scce01dffaXt27dfUVZSUqLz58+rSZMm8vT0tLteSUmJsrKy1KpVq3LbDQkJ0fHjx+2S12v99uqN2rJli227tLRU27ZtU8uWLcutu2nTJvXu3VuPP/642rVrp8aNG2v//v0VFgsAALi1mc0mNarjq0Z1fGXm53AAOOiGE9eioiIdP35cP/74o7Kzs/XGG2+od+/eevDBB/XEE0+Ue86sWbP08ccfa+/evdq/f78++eQThYaG2p47jYyM1Nq1a3X8+HGdPn3a4VgiIyM1cOBAPfnkk1q2bJmOHDmijIwMpaamSvplqrHJZNLKlSv173//W+fOnSu3nZEjR2rt2rWaMmWK9u/fr0WLFumdd96xe5bTEYmJiYqJiVH37t01b9487dy5U4cPH1ZqaqruvPNOHThwQL6+vnr22Wc1evRorV69Wnv27NFTTz2lCxcuaPDgweW2GxcXp3//+9+aNm2aDh06pHnz5mnVqlU3FNu1zJs3T5999pn27t2rYcOG6fTp03ryySfLrRsVFaW0tDR98803ysnJ0dNPP62ff/65wmIBAAAAgMvdcOK6evVqhYWFKTIyUvfdd5/S09M1d+5cLV++/Kqjk/7+/po2bZo6d+6s22+/Xbm5ufriiy9sz2POnDlTaWlpioiIKHdF3muZP3++/uu//ktDhw5VixYt9NRTT+n8+fOSfllIaNKkSRo3bpzq1aun5557rtw2OnbsqNTUVC1evFht2rTRq6++qsmTJ1/z53PKY7FYlJaWpjFjxui9997TnXfeqdtvv11z587V8OHDbb8Bm5SUpD59+mjAgAHq2LGjDh48qDVr1qhWrVrlttuyZUv99a9/1bx589SuXTtt3br1hpPqa0lKSlJSUpLatWunjRs3asWKFapTp065dV955RV17NhRCQkJiouLU2hoqB566KEKiwUAANzaSsqs+nBzrj7cnKuSspt/fAlAzWIyHFlRCKhABQUFCgwMVERiqswWH1eHAwAVIjepp6tDAKqFC8WlavXqGknSnskJrCoM1HCXcoP8/HwFBARctR6fFAAAAHAas8mkB6JDbdsA4AgSVwAAADiNl4eb/tq/k6vDAFDNVNjvuAIAAAAAUBlIXAEAAAAAVRpTheEyuyclXPMBbAAA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wWXom6qLvqm66Juqi76puuibqou+qbpqet+YjOutOwwAAAAAgAsx4goAAAAAqNJIXAEAAAAAVRqJKwAAAACgSiNxBQAAAABUaSSucKp58+YpMjJSXl5euuOOO7R161ZXh1TjTJ06Vbfffrv8/f1Vt25dPfTQQ9q3b59dncLCQg0bNky1a9eWn5+f+vTpo59//tlFEddcSUlJMplMSkxMtB2jb1znxx9/1OOPP67atWvL29tb0dHR+vbbb23lhmHo1VdfVVhYmLy9vdWjRw8dOHDAhRHXDGVlZZowYYIaNWokb29vNWnSRFOmTNGv156kb5xj/fr16tWrl8LDw2UymbRs2TK7ckf64dSpU+rfv78CAgIUFBSkwYMH69y5c068i1vTtfqmpKREY8eOVXR0tHx9fRUeHq4nnnhCP/30k10b9E3luN6/m1975plnZDKZNHv2bLvjNaVvSFzhNEuWLNGLL76o1157TdnZ2WrXrp0SEhJ04sQJV4dWo6xbt07Dhg3Tli1blJaWppKSEv3+97/X+fPnbXVeeOEF/etf/9Inn3yidevW6aefftLDDz/swqhrnqysLL333ntq27at3XH6xjVOnz6tmJgYeXh4aNWqVdqzZ49mzpypWrVq2epMmzZNc+fO1bvvvqvMzEz5+voqISFBhYWFLoz81vfmm29q/vz5euedd5STk6M333xT06ZN09tvv22rQ984x/nz59WuXTvNmzev3HJH+qF///763//9X6WlpWnlypVav369hgwZ4qxbuGVdq28uXLig7OxsTZgwQdnZ2fr000+1b98+/eEPf7CrR99Ujuv9u7nks88+05YtWxQeHn5FWY3pGwNwki5duhjDhg2z7ZeVlRnh4eHG1KlTXRgVTpw4YUgy1q1bZxiGYZw5c8bw8PAwPvnkE1udnJwcQ5KxefNmV4VZo5w9e9aIiooy0tLSjNjYWGPEiBGGYdA3rjR27Fjj7rvvvmq51Wo1QkNDjenTp9uOnTlzxrBYLMbHH3/sjBBrrJ49expPPvmk3bGHH37Y6N+/v2EY9I2rSDI+++wz274j/bBnzx5DkpGVlWWrs2rVKsNkMhk//vij02K/1V3eN+XZunWrIcn4/vvvDcOgb5zlan3zww8/GPXr1zd2795t3HbbbcZbb71lK6tJfcOIK5yiuLhY27ZtU48ePWzHzGazevTooc2bN7swMuTn50uSgoODJUnbtm1TSUmJXV+1aNFCDRs2pK+cZNiwYerZs6ddH0j0jSutWLFCnTt31p/+9CfVrVtXHTp00Pvvv28rP3LkiI4fP27XN4GBgbrjjjvom0p21113ae3atdq/f78kaefOndq4caPuv/9+SfRNVeFIP2zevFlBQUHq3LmzrU6PHj1kNpuVmZnp9Jhrsvz8fJlMJgUFBUmib1zJarVqwIABGj16tFq3bn1FeU3qG3dXB4Ca4T//+Y/KyspUr149u+P16tXT3r17XRQVrFarEhMTFRMTozZt2kiSjh8/Lk9PT9v/rC6pV6+ejh8/7oIoa5bFixcrOztbWVlZV5TRN65z+PBhzZ8/Xy+++KJeeuklZWVlafjw4fL09NTAgQNt7395n3H0TeUaN26cCgoK1KJFC7m5uamsrEyvv/66+vfvL0n0TRXhSD8cP35cdevWtSt3d3dXcHAwfeVEhYWFGjt2rPr166eAgABJ9I0rvfnmm3J3d9fw4cPLLa9JfUPiCtRgw4YN0+7du7Vx40ZXhwJJx44d04gRI5SWliYvLy9Xh4NfsVqt6ty5s9544w1JUocOHbR79269++67GjhwoIujq9lSU1OVkpKif/zjH2rdurV27NihxMREhYeH0zfADSopKdEjjzwiwzA0f/58V4dT423btk1z5sxRdna2TCaTq8NxOaYKwynq1KkjNze3K1Y//fnnnxUaGuqiqGq25557TitXrlR6eroaNGhgOx4aGqri4mKdOXPGrj59Vfm2bdumEydOqGPHjnJ3d5e7u7vWrVunuXPnyt3dXfXq1aNvXCQsLEytWrWyO9ayZUsdPXpUkmzvP59xzjd69GiNGzdOjz76qKKjozVgwAC98MILmjp1qiT6pqpwpB9CQ0OvWLCxtLRUp06doq+c4FLS+v333ystLc022irRN66yYcMGnThxQg0bNrR9L/j+++81cuRIRUZGSqpZfUPiCqfw9PRUp06dtHbtWtsxq9WqtWvXqmvXri6MrOYxDEPPPfecPvvsM3399ddq1KiRXXmnTp3k4eFh11f79u3T0aNH6atK1r17d3333XfasWOH7dW5c2f179/ftk3fuEZMTMwVPxu1f/9+3XbbbZKkRo0aKTQ01K5vCgoKlJmZSd9UsgsXLshstv864+bmJqvVKom+qSoc6YeuXbvq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",
      "text/plain": [
       "<Figure size 1000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ranked = states.sort_values(\"calculated_index\", ascending=False)\n",
    "comparison = pd.concat([ranked.head(10), ranked.tail(10)]).copy()\n",
    "comparison = comparison.sort_values(\"calculated_index\")\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(10, 8))\n",
    "ax.barh(comparison[\"state\"], comparison[\"calculated_index\"])\n",
    "ax.axvline(100, linestyle=\":\")\n",
    "ax.set_title(\"Highest and lowest 2024 state affordability scores\")\n",
    "ax.set_xlabel(\"Affordability index\")\n",
    "ax.set_ylabel(\"\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf086378",
   "metadata": {},
   "source": [
    "## 8. Census region comparison\n",
    "\n",
    "The Midwest is the strongest region in the 2024 state snapshot. All 12 Midwest states score at or above 100. The West has the lowest regional median and only one state at or above 100."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a1ccba4c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:55.843154Z",
     "iopub.status.busy": "2026-08-20T15:50:55.842890Z",
     "iopub.status.idle": "2026-08-20T15:50:55.867390Z",
     "shell.execute_reply": "2026-08-20T15:50:55.866485Z"
    }
   },
   "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>region</th>\n",
       "      <th>median_state_score</th>\n",
       "      <th>scores_at_or_above_100</th>\n",
       "      <th>jurisdictions</th>\n",
       "      <th>mean_income</th>\n",
       "      <th>median_home_value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Midwest</td>\n",
       "      <td>117.40</td>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "      <td>76,509.00</td>\n",
       "      <td>258,750.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>South</td>\n",
       "      <td>97.30</td>\n",
       "      <td>8</td>\n",
       "      <td>17</td>\n",
       "      <td>75,785.00</td>\n",
       "      <td>313,200.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Northeast</td>\n",
       "      <td>87.60</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>90,110.00</td>\n",
       "      <td>449,800.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>West</td>\n",
       "      <td>71.40</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>87,493.00</td>\n",
       "      <td>455,500.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      region  median_state_score  scores_at_or_above_100  jurisdictions  \\\n",
       "0    Midwest              117.40                      12             12   \n",
       "2      South               97.30                       8             17   \n",
       "1  Northeast               87.60                       1              9   \n",
       "3       West               71.40                       1             13   \n",
       "\n",
       "   mean_income  median_home_value  \n",
       "0    76,509.00         258,750.00  \n",
       "2    75,785.00         313,200.00  \n",
       "1    90,110.00         449,800.00  \n",
       "3    87,493.00         455,500.00  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "region_summary = (\n",
    "    states.groupby(\"region\")\n",
    "    .agg(\n",
    "        median_state_score=(\"calculated_index\", \"median\"),\n",
    "        scores_at_or_above_100=(\"calculated_index\", lambda s: int((s >= 100).sum())),\n",
    "        jurisdictions=(\"state\", \"count\"),\n",
    "        mean_income=(\"income\", \"mean\"),\n",
    "        median_home_value=(\"home_value\", \"median\"),\n",
    "    )\n",
    "    .reset_index()\n",
    "    .sort_values(\"median_state_score\", ascending=False)\n",
    ")\n",
    "region_summary.round({\"median_state_score\":1, \"mean_income\":0, \"median_home_value\":0})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "6a6821f3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:55.869304Z",
     "iopub.status.busy": "2026-08-20T15:50:55.869161Z",
     "iopub.status.idle": "2026-08-20T15:50:55.984782Z",
     "shell.execute_reply": "2026-08-20T15:50:55.980661Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "alignmentgroup": "True",
         "boxpoints": "all",
         "hovertemplate": "<b>%{hovertext}</b><br><br>Region=%{x}<br>Affordability index=%{y}<extra></extra>",
         "hovertext": [
          "West Virginia",
          "Iowa",
          "Mississippi",
          "Kansas",
          "Ohio",
          "Oklahoma",
          "Illinois",
          "Indiana",
          "North Dakota",
          "Nebraska",
          "Arkansas",
          "Alabama",
          "Kentucky",
          "Michigan",
          "Missouri",
          "Pennsylvania",
          "Louisiana",
          "South Dakota",
          "Wisconsin",
          "Texas",
          "Alaska",
          "Minnesota",
          "New Mexico",
          "Connecticut",
          "South Carolina",
          "Maryland",
          "Delaware",
          "Vermont",
          "Georgia",
          "Virginia",
          "Maine",
          "Wyoming",
          "North Carolina",
          "New Hampshire",
          "Tennessee",
          "New Jersey",
          "Florida",
          "Arizona",
          "New York",
          "Rhode Island",
          "Idaho",
          "Nevada",
          "Utah",
          "Montana",
          "Massachusetts",
          "Oregon",
          "Colorado",
          "Washington",
          "District of Columbia",
          "California",
          "Hawaii"
         ],
         "legendgroup": "",
         "marker": {
          "color": "#636efa"
         },
         "name": "",
         "notched": false,
         "offsetgroup": "",
         "orientation": "v",
         "showlegend": false,
         "type": "box",
         "x": [
          "South",
          "Midwest",
          "South",
          "Midwest",
          "Midwest",
          "South",
          "Midwest",
          "Midwest",
          "Midwest",
          "Midwest",
          "South",
          "South",
          "South",
          "Midwest",
          "Midwest",
          "Northeast",
          "South",
          "Midwest",
          "Midwest",
          "South",
          "West",
          "Midwest",
          "West",
          "Northeast",
          "South",
          "South",
          "South",
          "Northeast",
          "South",
          "South",
          "Northeast",
          "West",
          "South",
          "Northeast",
          "South",
          "Northeast",
          "South",
          "West",
          "Northeast",
          "Northeast",
          "West",
          "West",
          "West",
          "West",
          "Northeast",
          "West",
          "West",
          "West",
          "South",
          "West",
          "West"
         ],
         "x0": " ",
         "xaxis": "x",
         "y": {
          "bdata": "0jbPTY3rYUDFMW+84LhgQOHIqTzH619AP1Kw4kLaX0BiUxtC7lFeQAUecXvB/F1A6AwunvXYXUDfB1PSNMFdQLPV/LTvdl1Aj9M0KHs6XUBg0tHa9gBdQPTVxvOsxFxAF5vvCUq/XEARW0eXLaxcQP5Pzx1aVVxA6eoLazAgXECMsxOBzYJbQOUY5Wm9ulpAY0RQc2l5WkDmyPFO26BZQHQ9TYVXlVlAYDNU8z10WUBPyJeKF2VYQMg/WYynXVhAjo15uppSWEAYLiDMZr9XQJ4Ay2G0t1dAyd+KrkWcV0BRioQf4nVXQJJW7m+5+lZAwZfIO+uCVkCuLaagkWZWQGnqkaKrXFZAKJKAUc/lVUBb4/stlctVQBMMBG7ZK1VAKgDJi0y4U0ALIWPCaEJTQLpadk3jNVNAYOTgUjdzUkCVlFgenk5SQH+HDWkt71FA2HL8hr3ZUUCWd3my99RRQAfTCQZ8YFFA+qWrDkc/UUA0KnLgVQRRQK7O8DIYnlBAnt7yU2UfTkC0KBLNpI1KQPelw6peKUdA",
          "dtype": "f8"
         },
         "y0": " ",
         "yaxis": "y"
        }
       ],
       "layout": {
        "annotations": [
         {
          "showarrow": false,
          "text": "Score of 100",
          "x": 1,
          "xanchor": "right",
          "xref": "x domain",
          "y": 100,
          "yanchor": "bottom",
          "yref": "y"
         }
        ],
        "boxmode": "group",
        "legend": {
         "tracegroupgap": 0
        },
        "shapes": [
         {
          "line": {
           "dash": "dot"
          },
          "type": "line",
          "x0": 0,
          "x1": 1,
          "xref": "x domain",
          "y0": 100,
          "y1": 100,
          "yref": "y"
         }
        ],
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#2a3f5f"
            },
            "error_y": {
             "color": "#2a3f5f"
            },
            "marker": {
             "line": {
              "color": "white",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "white",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "#C8D4E3",
             "linecolor": "#C8D4E3",
             "minorgridcolor": "#C8D4E3",
             "startlinecolor": "#2a3f5f"
            },
            "baxis": {
             "endlinecolor": "#2a3f5f",
             "gridcolor": "#C8D4E3",
             "linecolor": "#C8D4E3",
             "minorgridcolor": "#C8D4E3",
             "startlinecolor": "#2a3f5f"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermap": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermap"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0.0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1.0,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#EBF0F8"
             },
             "line": {
              "color": "white"
             }
            },
            "header": {
             "fill": {
              "color": "#C8D4E3"
             },
             "line": {
              "color": "white"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#2a3f5f",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0.0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1.0,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0.0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1.0,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#2a3f5f"
          },
          "geo": {
           "bgcolor": "white",
           "lakecolor": "white",
           "landcolor": "white",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "#C8D4E3"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "light"
          },
          "paper_bgcolor": "white",
          "plot_bgcolor": "white",
          "polar": {
           "angularaxis": {
            "gridcolor": "#EBF0F8",
            "linecolor": "#EBF0F8",
            "ticks": ""
           },
           "bgcolor": "white",
           "radialaxis": {
            "gridcolor": "#EBF0F8",
            "linecolor": "#EBF0F8",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           },
           "yaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           },
           "zaxis": {
            "backgroundcolor": "white",
            "gridcolor": "#DFE8F3",
            "gridwidth": 2,
            "linecolor": "#EBF0F8",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#EBF0F8"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#2a3f5f"
           }
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           },
           "bgcolor": "white",
           "caxis": {
            "gridcolor": "#DFE8F3",
            "linecolor": "#A2B1C6",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "#EBF0F8",
           "linecolor": "#EBF0F8",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#EBF0F8",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "#EBF0F8",
           "linecolor": "#EBF0F8",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#EBF0F8",
           "zerolinewidth": 2
          }
         }
        },
        "title": {
         "text": "Distribution of 2024 affordability scores by Census region"
        },
        "xaxis": {
         "anchor": "y",
         "domain": [
          0.0,
          1.0
         ],
         "title": {
          "text": "Region"
         }
        },
        "yaxis": {
         "anchor": "x",
         "domain": [
          0.0,
          1.0
         ],
         "title": {
          "text": "Affordability index"
         }
        }
       }
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = px.box(\n",
    "    states,\n",
    "    x=\"region\",\n",
    "    y=\"calculated_index\",\n",
    "    points=\"all\",\n",
    "    hover_name=\"state\",\n",
    "    title=\"Distribution of 2024 affordability scores by Census region\",\n",
    "    labels={\"calculated_index\":\"Affordability index\", \"region\":\"Region\"},\n",
    ")\n",
    "fig.add_hline(y=100, line_dash=\"dot\", annotation_text=\"Score of 100\")\n",
    "fig.update_layout(template=\"plotly_white\")\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "54c90511",
   "metadata": {},
   "source": [
    "## 9. Mortgage rate sensitivity\n",
    "\n",
    "This test holds the 2024 national home price and household income constant, then changes only the mortgage rate. It shows why a price to income ratio alone misses an important part of buyer affordability."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "5d28016f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:56.058667Z",
     "iopub.status.busy": "2026-08-20T15:50:56.057248Z",
     "iopub.status.idle": "2026-08-20T15:50:56.088586Z",
     "shell.execute_reply": "2026-08-20T15:50:56.084958Z"
    }
   },
   "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>mortgage_rate</th>\n",
       "      <th>monthly_payment</th>\n",
       "      <th>affordability_index</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.00</td>\n",
       "      <td>1,413.00</td>\n",
       "      <td>123.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4.00</td>\n",
       "      <td>1,600.00</td>\n",
       "      <td>109.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>5.00</td>\n",
       "      <td>1,799.00</td>\n",
       "      <td>96.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>6.00</td>\n",
       "      <td>2,010.00</td>\n",
       "      <td>86.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>7.00</td>\n",
       "      <td>2,230.00</td>\n",
       "      <td>78.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>8.00</td>\n",
       "      <td>2,459.00</td>\n",
       "      <td>70.90</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    mortgage_rate  monthly_payment  affordability_index\n",
       "0            3.00         1,413.00               123.40\n",
       "4            4.00         1,600.00               109.00\n",
       "8            5.00         1,799.00                96.90\n",
       "12           6.00         2,010.00                86.80\n",
       "16           7.00         2,230.00                78.20\n",
       "20           8.00         2,459.00                70.90"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "base_2024 = national.loc[national[\"year\"] == 2024].iloc[0]\n",
    "rates = np.arange(3.0, 8.01, 0.25)\n",
    "sensitivity = pd.DataFrame({\"mortgage_rate\": rates})\n",
    "sensitivity[\"monthly_payment\"] = monthly_payment(base_2024[\"home_price\"], sensitivity[\"mortgage_rate\"])\n",
    "sensitivity[\"affordability_index\"] = affordability_score(\n",
    "    base_2024[\"home_price\"],\n",
    "    base_2024[\"income\"],\n",
    "    sensitivity[\"mortgage_rate\"],\n",
    ")\n",
    "\n",
    "sensitivity.loc[sensitivity[\"mortgage_rate\"].isin([3,4,5,6,7,8])].round({\"monthly_payment\":0, \"affordability_index\":1})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "685cfc02",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:56.237157Z",
     "iopub.status.busy": "2026-08-20T15:50:56.235792Z",
     "iopub.status.idle": "2026-08-20T15:50:56.614469Z",
     "shell.execute_reply": "2026-08-20T15:50:56.586739Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6OrqKq5evTrfz0FSUpI4atQo0cLCQjQxMRG7d+8u3rt3TwQgzpo1S61vVFSUOGrUKNHBwUHU1dUVbW1txQ8++EBcvnx5wS9qIZ5vYWN902e2MLEtW7ZMbNGihVixYkVRX19fdHFxESdNmiQqlcq3xk/lkyCK7zEriIiItEJmZibs7e3RpUsXrFy5UupwyrV69erBwsIChw8fljqUMsnT0xNWVlY4ePBgkWzv2rVrqFevHtavX4/+/fsXyTaJSiPOKSAiorf6+++/8fz5c9XVaql4XLp0CdeuXePrXAgZGRnIzMxUazt27BiuX7+OVq1avdM287smzfz58yGTyQo1Z4SoLONIARERFej8+fO4ceMGpk+fDktLy3e+MBy92a1bt3D58mX8+uuviImJwePHj7n6y1uEhISgbdu2GDBgAOzt7REUFISlS5dCoVDg1q1bBc7NeZNp06bh8uXLaN26NXR0dLB3717s3btXNc+KqDzjRGMiIirQkiVLsH79enh6emLNmjVSh1Nubdu2DT/++CNq1qyJTZs2sSAohAoVKsDLywt//PEHnj9/DmNjY3Tu3BmzZs16p4IAAJo0aYKDBw9i+vTpSExMhKOjI6ZOnYrvv/++iKMnKn04UkBEREREpOU4p4CIiIiISMuxKCAiIiIi0nKcUwAgOzsb4eHhMDU11fhS90REREREpZEoikhISIC9vf1bL7DIogBAeHg4HBwcpA6DiIiIiKjIPX36FJUrV35jHxYFgOpy3k+fPoWZmVmJ7lsURSiVSigUCo5SaBnmXnsx99qLuddezL32kjL38fHxcHBwUH3XfRMWBYAqQWZmZpIUBaIowszMjAcJLcPcay/mXnsx99qLuddepSH3hdkvJxoTEREREWk5FgVERERERFqORQERERERkZZjUUBEREREpOVYFBARERERaTkWBUREREREWo5FARERERGRlmNRQERERESk5VgUEBERERFpORYFRERERERajkUBEREREZGWY1FARERERKTlWBQQEREREWk5FgUSi1Cm4GJoHCKUKVKHQkRERERaSkfqALTZlotPMDnwJrJFQCbcRoCvB/y8HaUOi4iIiIi0DEcKJBKhTFEVBACQLQLfBd7iiAERERERlTgWBRIJjklSFQS5skQRITHJ0gRERERERFqLRYFEnC2NIRPytsckppZ8MERERESk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",
      "text/plain": [
       "<Figure size 900x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(9, 5.5))\n",
    "ax.plot(sensitivity[\"mortgage_rate\"], sensitivity[\"affordability_index\"], marker=\"o\", markersize=3)\n",
    "ax.axhline(100, linestyle=\":\")\n",
    "ax.set_title(\"2024 national affordability sensitivity to mortgage rates\")\n",
    "ax.set_xlabel(\"Mortgage rate, percent\")\n",
    "ax.set_ylabel(\"Affordability index\")\n",
    "ax.grid(alpha=0.2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3adce5fc",
   "metadata": {},
   "source": [
    "## 10. Scenario analysis\n",
    "\n",
    "Use this helper to test a different down payment, payment share, or interest rate without rewriting the core formula."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "8ea5206d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:56.625783Z",
     "iopub.status.busy": "2026-08-20T15:50:56.625223Z",
     "iopub.status.idle": "2026-08-20T15:50:56.647558Z",
     "shell.execute_reply": "2026-08-20T15:50:56.646751Z"
    }
   },
   "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>down_payment_pct</th>\n",
       "      <th>payment_share_pct</th>\n",
       "      <th>mortgage_rate</th>\n",
       "      <th>monthly_payment</th>\n",
       "      <th>affordability_index</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>4</td>\n",
       "      <td>1,800.00</td>\n",
       "      <td>96.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>5</td>\n",
       "      <td>2,024.00</td>\n",
       "      <td>86.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>6</td>\n",
       "      <td>2,261.00</td>\n",
       "      <td>77.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>10.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>7</td>\n",
       "      <td>2,509.00</td>\n",
       "      <td>69.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>10.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>8</td>\n",
       "      <td>2,767.00</td>\n",
       "      <td>63.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>10.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>4</td>\n",
       "      <td>1,800.00</td>\n",
       "      <td>116.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>10.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>5</td>\n",
       "      <td>2,024.00</td>\n",
       "      <td>103.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>10.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>6</td>\n",
       "      <td>2,261.00</td>\n",
       "      <td>92.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>10.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>7</td>\n",
       "      <td>2,509.00</td>\n",
       "      <td>83.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>8</td>\n",
       "      <td>2,767.00</td>\n",
       "      <td>75.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>20.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>4</td>\n",
       "      <td>1,600.00</td>\n",
       "      <td>109.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>20.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>5</td>\n",
       "      <td>1,799.00</td>\n",
       "      <td>96.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>20.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>6</td>\n",
       "      <td>2,010.00</td>\n",
       "      <td>86.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>20.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>7</td>\n",
       "      <td>2,230.00</td>\n",
       "      <td>78.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>20.00</td>\n",
       "      <td>25.00</td>\n",
       "      <td>8</td>\n",
       "      <td>2,459.00</td>\n",
       "      <td>70.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>20.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>4</td>\n",
       "      <td>1,600.00</td>\n",
       "      <td>130.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>20.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>5</td>\n",
       "      <td>1,799.00</td>\n",
       "      <td>116.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>20.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>6</td>\n",
       "      <td>2,010.00</td>\n",
       "      <td>104.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>20.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>7</td>\n",
       "      <td>2,230.00</td>\n",
       "      <td>93.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20.00</td>\n",
       "      <td>30.00</td>\n",
       "      <td>8</td>\n",
       "      <td>2,459.00</td>\n",
       "      <td>85.10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    down_payment_pct  payment_share_pct  mortgage_rate  monthly_payment  \\\n",
       "0              10.00              25.00              4         1,800.00   \n",
       "1              10.00              25.00              5         2,024.00   \n",
       "2              10.00              25.00              6         2,261.00   \n",
       "3              10.00              25.00              7         2,509.00   \n",
       "4              10.00              25.00              8         2,767.00   \n",
       "5              10.00              30.00              4         1,800.00   \n",
       "6              10.00              30.00              5         2,024.00   \n",
       "7              10.00              30.00              6         2,261.00   \n",
       "8              10.00              30.00              7         2,509.00   \n",
       "9              10.00              30.00              8         2,767.00   \n",
       "10             20.00              25.00              4         1,600.00   \n",
       "11             20.00              25.00              5         1,799.00   \n",
       "12             20.00              25.00              6         2,010.00   \n",
       "13             20.00              25.00              7         2,230.00   \n",
       "14             20.00              25.00              8         2,459.00   \n",
       "15             20.00              30.00              4         1,600.00   \n",
       "16             20.00              30.00              5         1,799.00   \n",
       "17             20.00              30.00              6         2,010.00   \n",
       "18             20.00              30.00              7         2,230.00   \n",
       "19             20.00              30.00              8         2,459.00   \n",
       "\n",
       "    affordability_index  \n",
       "0                 96.90  \n",
       "1                 86.20  \n",
       "2                 77.20  \n",
       "3                 69.50  \n",
       "4                 63.00  \n",
       "5                116.30  \n",
       "6                103.40  \n",
       "7                 92.60  \n",
       "8                 83.40  \n",
       "9                 75.70  \n",
       "10               109.00  \n",
       "11                96.90  \n",
       "12                86.80  \n",
       "13                78.20  \n",
       "14                70.90  \n",
       "15               130.80  \n",
       "16               116.30  \n",
       "17               104.20  \n",
       "18                93.90  \n",
       "19                85.10  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def scenario_table(home_price, income, rates=(4,5,6,7,8), down_payments=(0.10,0.20), payment_shares=(0.25,0.30)):\n",
    "    rows = []\n",
    "    for down_payment in down_payments:\n",
    "        for payment_share in payment_shares:\n",
    "            for rate in rates:\n",
    "                payment = float(monthly_payment(home_price, rate, down_payment=down_payment))\n",
    "                score = float(affordability_score(\n",
    "                    home_price,\n",
    "                    income,\n",
    "                    rate,\n",
    "                    down_payment=down_payment,\n",
    "                    payment_share=payment_share,\n",
    "                ))\n",
    "                rows.append({\n",
    "                    \"down_payment_pct\": down_payment * 100,\n",
    "                    \"payment_share_pct\": payment_share * 100,\n",
    "                    \"mortgage_rate\": rate,\n",
    "                    \"monthly_payment\": payment,\n",
    "                    \"affordability_index\": score,\n",
    "                })\n",
    "    return pd.DataFrame(rows)\n",
    "\n",
    "scenario_table(base_2024[\"home_price\"], base_2024[\"income\"]).round({\"monthly_payment\":0, \"affordability_index\":1})"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55616581",
   "metadata": {},
   "source": [
    "## 11. Optional live refresh from FRED\n",
    "\n",
    "Run this cell only when you want to update the national inputs. It needs internet access. The article stopped at 2024 because that was the latest common complete year across the chosen price, rate, and income series when the article was checked."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "309b1245",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:56.656492Z",
     "iopub.status.busy": "2026-08-20T15:50:56.656297Z",
     "iopub.status.idle": "2026-08-20T15:50:56.679830Z",
     "shell.execute_reply": "2026-08-20T15:50:56.663470Z"
    }
   },
   "outputs": [],
   "source": [
    "def load_fred(series_id):\n",
    "    url = f\"https://fred.stlouisfed.org/graph/fredgraph.csv?id={series_id}\"\n",
    "    df = pd.read_csv(url)\n",
    "    df.columns = [\"date\", series_id]\n",
    "    df[\"date\"] = pd.to_datetime(df[\"date\"])\n",
    "    df[series_id] = pd.to_numeric(df[series_id], errors=\"coerce\")\n",
    "    return df.set_index(\"date\")\n",
    "\n",
    "# Example refresh workflow. Uncomment when internet access is available.\n",
    "# price = load_fred(\"MSPUS\")\n",
    "# rate = load_fred(\"MORTGAGE30US\")\n",
    "# income = load_fred(\"MEHOINUSA646N\")\n",
    "#\n",
    "# price_annual = price.resample(\"YE\").mean().rename(columns={\"MSPUS\":\"home_price\"})\n",
    "# rate_annual = rate.resample(\"YE\").mean().rename(columns={\"MORTGAGE30US\":\"mortgage_rate\"})\n",
    "# income_annual = income.resample(\"YE\").last().rename(columns={\"MEHOINUSA646N\":\"income\"})\n",
    "# refreshed = price_annual.join(rate_annual).join(income_annual).dropna()\n",
    "# refreshed[\"affordability_index\"] = affordability_score(\n",
    "#     refreshed[\"home_price\"], refreshed[\"income\"], refreshed[\"mortgage_rate\"]\n",
    "# )\n",
    "# refreshed.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65c5ed48",
   "metadata": {},
   "source": [
    "## 12. Optional live refresh from the Census ACS API\n",
    "\n",
    "The Census API call below requests 2024 ACS 1 year state data. Add your API key if needed. After loading the data, map each state to a Census region, then apply the same common mortgage rate assumption."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "99980b1c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:56.683739Z",
     "iopub.status.busy": "2026-08-20T15:50:56.683493Z",
     "iopub.status.idle": "2026-08-20T15:50:56.691326Z",
     "shell.execute_reply": "2026-08-20T15:50:56.690328Z"
    }
   },
   "outputs": [],
   "source": [
    "import requests\n",
    "\n",
    "CENSUS_KEY = \"YOUR_KEY\"\n",
    "\n",
    "# Uncomment when internet access is available and your API key is configured.\n",
    "# url = \"https://api.census.gov/data/2024/acs/acs1\"\n",
    "# params = {\n",
    "#     \"get\": \"NAME,B19013_001E,B25077_001E\",\n",
    "#     \"for\": \"state:*\",\n",
    "#     \"key\": CENSUS_KEY,\n",
    "# }\n",
    "# response = requests.get(url, params=params, timeout=30)\n",
    "# response.raise_for_status()\n",
    "# rows = response.json()\n",
    "# live_states = pd.DataFrame(rows[1:], columns=rows[0]).rename(columns={\n",
    "#     \"NAME\":\"state\",\n",
    "#     \"B19013_001E\":\"income\",\n",
    "#     \"B25077_001E\":\"home_value\",\n",
    "# })\n",
    "# for col in [\"income\", \"home_value\"]:\n",
    "#     live_states[col] = pd.to_numeric(live_states[col], errors=\"coerce\")\n",
    "# live_states.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc891479",
   "metadata": {},
   "source": [
    "## 13. Export analysis tables\n",
    "\n",
    "These exports are useful for charts, article updates, or competitor comparison work."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "fd1a1f3e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T15:50:56.693954Z",
     "iopub.status.busy": "2026-08-20T15:50:56.693773Z",
     "iopub.status.idle": "2026-08-20T15:50:56.737111Z",
     "shell.execute_reply": "2026-08-20T15:50:56.727674Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saved analysis tables to /housing_affordability_outputs\n"
     ]
    }
   ],
   "source": [
    "national_export = national[[\"year\", \"home_price\", \"income\", \"mortgage_rate\", \"calculated_payment\", \"calculated_index\"]].copy()\n",
    "state_export = states[[\"calculated_rank\", \"state\", \"region\", \"income\", \"home_value\", \"calculated_payment\", \"calculated_index\"]].copy()\n",
    "region_export = region_summary.copy()\n",
    "sensitivity_export = sensitivity.copy()\n",
    "\n",
    "national_export.to_csv(OUTPUT_DIR / \"national_affordability_2020_2024.csv\", index=False)\n",
    "state_export.to_csv(OUTPUT_DIR / \"state_affordability_2024.csv\", index=False)\n",
    "region_export.to_csv(OUTPUT_DIR / \"regional_affordability_2024.csv\", index=False)\n",
    "sensitivity_export.to_csv(OUTPUT_DIR / \"mortgage_rate_sensitivity_2024.csv\", index=False)\n",
    "\n",
    "print(\"Saved analysis tables to\", OUTPUT_DIR.resolve())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af46d1fe",
   "metadata": {},
   "source": [
    "## 14. Main findings reproduced by the notebook\n",
    "\n",
    "1. The national affordability score falls from about **126.2 in 2020** to **75.4 in 2023**, then rises to **80.5 in 2024**.\n",
    "2. In the 2024 state model, **West Virginia** has the highest score at about **143.4**, while **Hawaii** has the lowest at about **46.3**.\n",
    "3. The **Midwest** has the strongest regional median at about **117.4**. All 12 Midwest states score at or above 100.\n",
    "4. The **West** has the weakest regional median at about **71.4**. Only one Western state reaches 100 in this model.\n",
    "5. Holding 2024 price and income fixed, a mortgage rate increase from 3 percent to 8 percent moves the affordability score from about **123.4** to **70.9**.\n",
    "\n",
    "These results describe a custom research model. They are not an official government affordability index, underwriting guidance, or a claim that every household within a state faces the same conditions."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "693f6447",
   "metadata": {},
   "source": [
    "## 15. Source references\n",
    "\n",
    "* FRED MSPUS, Median Sales Price of Houses Sold for the United States\n",
    "* FRED MORTGAGE30US, 30 Year Fixed Rate Mortgage Average in the United States\n",
    "* FRED MEHOINUSA646N, Median Household Income in the United States\n",
    "* U.S. Census Bureau ACS 2024 1 year, B19013_001E, Median Household Income\n",
    "* U.S. Census Bureau ACS 2024 1 year, B25077_001E, Median Value of Owner Occupied Housing Units\n",
    "\n",
    "Use the live refresh cells for newer observations, then recheck year alignment and data concepts before publishing updated conclusions."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "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.13.5"
  },
  "title": "Build a U.S. Housing Affordability Index in Python | Complete Analysis"
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
