diff --git a/debug_filing_status.ipynb b/debug_filing_status.ipynb new file mode 100644 index 0000000..3bd35dc --- /dev/null +++ b/debug_filing_status.ipynb @@ -0,0 +1,1633 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 38, + "id": "2e25e958", + "metadata": {}, + "outputs": [], + "source": [ + "from policyengine_us import Microsimulation\n", + "import pandas as pd\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "dfeec15d", + "metadata": {}, + "outputs": [], + "source": [ + "baseline = Microsimulation(dataset=\"hf://policyengine/policyengine-us-data/enhanced_cps_2024.h5\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "c54a6179", + "metadata": {}, + "outputs": [], + "source": [ + "variables = [\"household_id\", \"household_size\", \"age\", \"age_head\", \"age_spouse\", \"is_married\", \"tax_unit_dependents\", \"filing_status\", \"is_tax_unit_spouse\", \"tax_unit_married\", \"is_tax_unit_head\", \"household_weight\", \"person_household_id\", \"person_tax_unit_id\", \"tax_unit_weight\", \"tax_unit_id\", \"tax_unit_household_id\"]\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "6e20ad7e", + "metadata": {}, + "outputs": [], + "source": [ + "hh_variables = [\"household_id\", \"household_size\", \"age\", \"age_head\", \"age_spouse\", \"is_married\", \"tax_unit_dependents\", \"is_tax_unit_spouse\", \"tax_unit_married\", \"is_tax_unit_head\", \"household_weight\", \"person_household_id\", \"person_tax_unit_id\", \"tax_unit_weight\", \"tax_unit_id\", \"tax_unit_household_id\"]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "f4b3b6d5", + "metadata": {}, + "outputs": [], + "source": [ + "person_df = baseline.calculate_dataframe(variables, map_to=\"person\", period=2026)\n", + "person_df = person_df.sort_values('household_id')\n", + "tax_unit_df = baseline.calculate_dataframe(variables, map_to=\"tax_unit\", period=2026)\n", + "tax_unit_df = tax_unit_df.sort_values('household_id')\n", + "spm_unit_df = baseline.calculate_dataframe(hh_variables, map_to=\"spm_unit\", period=2026)\n", + "spm_unit_df = tax_unit_df.sort_values('household_id')\n", + "household_df = baseline.calculate_dataframe(hh_variables, map_to=\"household\", period=2026)\n", + "household_df = household_df.sort_values('household_id')\n", + "family_df = baseline.calculate_dataframe(hh_variables, map_to=\"family\", period=2026)\n", + "family_df = family_df.sort_values('household_id')\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "7434dfdd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsfiling_statusis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
12312261.06361True0JOINTTrueTrueFalse9000.3691411212019000.369141120112.0
12412263.06361True0JOINTFalseTrueTrue9000.3691411212019000.369141120112.0
021357.05757True0JOINTFalseTrueTrue982.614807212101982.614807210121.0
121357.05757True0JOINTTrueTrueFalse982.614807212101982.614807210121.0
221323.0230True0SINGLEFalseFalseTrue982.614807212103982.614807210321.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "123 12 2 61.0 63 61 True \n", + "124 12 2 63.0 63 61 True \n", + "0 21 3 57.0 57 57 True \n", + "1 21 3 57.0 57 57 True \n", + "2 21 3 23.0 23 0 True \n", + "\n", + " tax_unit_dependents filing_status is_tax_unit_spouse tax_unit_married \\\n", + "123 0 JOINT True True \n", + "124 0 JOINT False True \n", + "0 0 JOINT False True \n", + "1 0 JOINT True True \n", + "2 0 SINGLE False False \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "123 False 9000.369141 12 \n", + "124 True 9000.369141 12 \n", + "0 True 982.614807 21 \n", + "1 False 982.614807 21 \n", + "2 True 982.614807 21 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "123 1201 9000.369141 1201 12.0 \n", + "124 1201 9000.369141 1201 12.0 \n", + "0 2101 982.614807 2101 21.0 \n", + "1 2101 982.614807 2101 21.0 \n", + "2 2103 982.614807 2103 21.0 " + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "person_df.head()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "c74945db", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsfiling_statusis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
27.01.023.02300.3333330SINGLE0.0False1.0327.53826921.02103.0982.614807210321.0
311.01.072.07200.0000000SINGLE0.0False1.03801.03051822.02201.07602.061035220122.0
411.01.056.05600.0000000SINGLE0.0False1.03801.03051822.02202.07602.061035220222.0
1211.01.029.02900.0000000SINGLE0.0False1.04572.39697344.04402.018289.587891440244.0
1311.01.026.02600.0000000SINGLE0.0False1.04572.39697344.04403.018289.587891440344.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "2 7.0 1.0 23.0 23 0 0.333333 \n", + "3 11.0 1.0 72.0 72 0 0.000000 \n", + "4 11.0 1.0 56.0 56 0 0.000000 \n", + "12 11.0 1.0 29.0 29 0 0.000000 \n", + "13 11.0 1.0 26.0 26 0 0.000000 \n", + "\n", + " tax_unit_dependents filing_status is_tax_unit_spouse tax_unit_married \\\n", + "2 0 SINGLE 0.0 False \n", + "3 0 SINGLE 0.0 False \n", + "4 0 SINGLE 0.0 False \n", + "12 0 SINGLE 0.0 False \n", + "13 0 SINGLE 0.0 False \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "2 1.0 327.538269 21.0 \n", + "3 1.0 3801.030518 22.0 \n", + "4 1.0 3801.030518 22.0 \n", + "12 1.0 4572.396973 44.0 \n", + "13 1.0 4572.396973 44.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "2 2103.0 982.614807 2103 21.0 \n", + "3 2201.0 7602.061035 2201 22.0 \n", + "4 2202.0 7602.061035 2202 22.0 \n", + "12 4402.0 18289.587891 4402 44.0 \n", + "13 4403.0 18289.587891 4403 44.0 " + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tax_unit_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "82f42bf5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
0122124.063.061.01.00.01.01.01.09000.36914124.02402.09000.3691411201.012.0
1213137.080.057.01.00.01.01.02.0982.61480763.06305.01965.2296144204.042.0
2222128.0128.00.00.00.00.00.02.07602.06103544.04403.015204.1220704403.044.0
3302139.0139.00.00.00.00.00.02.05251.43066460.06003.010502.8613286003.060.0
4363151.0151.00.00.00.00.00.03.03196.937012108.010806.09590.81103510806.0108.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "0 12 2 124.0 63.0 61.0 1.0 \n", + "1 21 3 137.0 80.0 57.0 1.0 \n", + "2 22 2 128.0 128.0 0.0 0.0 \n", + "3 30 2 139.0 139.0 0.0 0.0 \n", + "4 36 3 151.0 151.0 0.0 0.0 \n", + "\n", + " tax_unit_dependents is_tax_unit_spouse tax_unit_married \\\n", + "0 0.0 1.0 1.0 \n", + "1 0.0 1.0 1.0 \n", + "2 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "0 1.0 9000.369141 24.0 \n", + "1 2.0 982.614807 63.0 \n", + "2 2.0 7602.061035 44.0 \n", + "3 2.0 5251.430664 60.0 \n", + "4 3.0 3196.937012 108.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "0 2402.0 9000.369141 1201.0 12.0 \n", + "1 6305.0 1965.229614 4204.0 42.0 \n", + "2 4403.0 15204.122070 4403.0 44.0 \n", + "3 6003.0 10502.861328 6003.0 60.0 \n", + "4 10806.0 9590.811035 10806.0 108.0 " + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "household_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "ee1e8d67", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsfiling_statusis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
27.01.023.02300.3333330SINGLE0.0False1.0327.53826921.02103.0982.614807210321.0
311.01.072.07200.0000000SINGLE0.0False1.03801.03051822.02201.07602.061035220122.0
411.01.056.05600.0000000SINGLE0.0False1.03801.03051822.02202.07602.061035220222.0
1211.01.029.02900.0000000SINGLE0.0False1.04572.39697344.04402.018289.587891440244.0
1311.01.026.02600.0000000SINGLE0.0False1.04572.39697344.04403.018289.587891440344.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "2 7.0 1.0 23.0 23 0 0.333333 \n", + "3 11.0 1.0 72.0 72 0 0.000000 \n", + "4 11.0 1.0 56.0 56 0 0.000000 \n", + "12 11.0 1.0 29.0 29 0 0.000000 \n", + "13 11.0 1.0 26.0 26 0 0.000000 \n", + "\n", + " tax_unit_dependents filing_status is_tax_unit_spouse tax_unit_married \\\n", + "2 0 SINGLE 0.0 False \n", + "3 0 SINGLE 0.0 False \n", + "4 0 SINGLE 0.0 False \n", + "12 0 SINGLE 0.0 False \n", + "13 0 SINGLE 0.0 False \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "2 1.0 327.538269 21.0 \n", + "3 1.0 3801.030518 22.0 \n", + "4 1.0 3801.030518 22.0 \n", + "12 1.0 4572.396973 44.0 \n", + "13 1.0 4572.396973 44.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "2 2103.0 982.614807 2103 21.0 \n", + "3 2201.0 7602.061035 2201 22.0 \n", + "4 2202.0 7602.061035 2202 22.0 \n", + "12 4402.0 18289.587891 4402 44.0 \n", + "13 4403.0 18289.587891 4403 44.0 " + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spm_unit_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "1cba4dff", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
211.01.072.072.00.0False0.00.00.01.03801.03051822.02201.07602.0610352201.022.0
311.01.056.056.00.0False0.00.00.01.03801.03051822.02202.07602.0610352202.022.0
811.01.026.026.00.0False0.00.00.01.04572.39697344.04403.018289.5878914403.044.0
911.01.05.027.00.0False0.50.00.00.04572.39697344.04401.09144.7939452200.522.0
012.02.0124.063.061.0True0.01.01.01.09000.36914124.02402.09000.3691411201.012.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "2 11.0 1.0 72.0 72.0 0.0 False \n", + "3 11.0 1.0 56.0 56.0 0.0 False \n", + "8 11.0 1.0 26.0 26.0 0.0 False \n", + "9 11.0 1.0 5.0 27.0 0.0 False \n", + "0 12.0 2.0 124.0 63.0 61.0 True \n", + "\n", + " tax_unit_dependents is_tax_unit_spouse tax_unit_married \\\n", + "2 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 \n", + "8 0.0 0.0 0.0 \n", + "9 0.5 0.0 0.0 \n", + "0 0.0 1.0 1.0 \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "2 1.0 3801.030518 22.0 \n", + "3 1.0 3801.030518 22.0 \n", + "8 1.0 4572.396973 44.0 \n", + "9 0.0 4572.396973 44.0 \n", + "0 1.0 9000.369141 24.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "2 2201.0 7602.061035 2201.0 22.0 \n", + "3 2202.0 7602.061035 2202.0 22.0 \n", + "8 4403.0 18289.587891 4403.0 44.0 \n", + "9 4401.0 9144.793945 2200.5 22.0 \n", + "0 2402.0 9000.369141 1201.0 12.0 " + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family_df.head()" + ] + }, + { + "cell_type": "markdown", + "id": "fb996d8c", + "metadata": {}, + "source": [ + "# Looking into specific households " + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "id": "3a287fe2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idtax_unit_idageis_dependentis_headis_spouseis_marriedssn_card_type
12312120161.0FalseFalseTrueTrueCITIZEN
12412120163.0FalseTrueFalseTrueCITIZEN
\n", + "
" + ], + "text/plain": [ + " household_id tax_unit_id age is_dependent is_head is_spouse \\\n", + "123 12 1201 61.0 False False True \n", + "124 12 1201 63.0 False True False \n", + "\n", + " is_married ssn_card_type \n", + "123 True CITIZEN \n", + "124 True CITIZEN " + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "person_df[person_df['household_id'] == 12]" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "3101feb6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsfiling_statusis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
012.02.0124.063611.00JOINT1.0True1.09000.36914124.02402.09000.369141120112.0
712.01.085.08500.00SINGLE0.0False1.01065.64567136.03601.03196.937012360136.0
812.01.024.02400.00SINGLE0.0False1.01065.64567136.03602.03196.937012360236.0
912.01.042.04200.00SINGLE0.0False1.01065.64567136.03603.03196.937012360336.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "0 12.0 2.0 124.0 63 61 1.0 \n", + "7 12.0 1.0 85.0 85 0 0.0 \n", + "8 12.0 1.0 24.0 24 0 0.0 \n", + "9 12.0 1.0 42.0 42 0 0.0 \n", + "\n", + " tax_unit_dependents filing_status is_tax_unit_spouse tax_unit_married \\\n", + "0 0 JOINT 1.0 True \n", + "7 0 SINGLE 0.0 False \n", + "8 0 SINGLE 0.0 False \n", + "9 0 SINGLE 0.0 False \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "0 1.0 9000.369141 24.0 \n", + "7 1.0 1065.645671 36.0 \n", + "8 1.0 1065.645671 36.0 \n", + "9 1.0 1065.645671 36.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "0 2402.0 9000.369141 1201 12.0 \n", + "7 3601.0 3196.937012 3601 36.0 \n", + "8 3602.0 3196.937012 3602 36.0 \n", + "9 3603.0 3196.937012 3603 36.0 " + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tax_unit_df[tax_unit_df['household_id'] == 12]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "2553a99b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
0122124.063.061.01.00.01.01.01.09000.36914124.02402.09000.3691411201.012.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "0 12 2 124.0 63.0 61.0 1.0 \n", + "\n", + " tax_unit_dependents is_tax_unit_spouse tax_unit_married \\\n", + "0 0.0 1.0 1.0 \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "0 1.0 9000.369141 24.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "0 2402.0 9000.369141 1201.0 12.0 " + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "household_df[household_df['household_id'] == 12]" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "9acfc129", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsfiling_statusis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
012.02.0124.063611.00JOINT1.0True1.09000.36914124.02402.09000.369141120112.0
712.01.085.08500.00SINGLE0.0False1.01065.64567136.03601.03196.937012360136.0
812.01.024.02400.00SINGLE0.0False1.01065.64567136.03602.03196.937012360236.0
912.01.042.04200.00SINGLE0.0False1.01065.64567136.03603.03196.937012360336.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "0 12.0 2.0 124.0 63 61 1.0 \n", + "7 12.0 1.0 85.0 85 0 0.0 \n", + "8 12.0 1.0 24.0 24 0 0.0 \n", + "9 12.0 1.0 42.0 42 0 0.0 \n", + "\n", + " tax_unit_dependents filing_status is_tax_unit_spouse tax_unit_married \\\n", + "0 0 JOINT 1.0 True \n", + "7 0 SINGLE 0.0 False \n", + "8 0 SINGLE 0.0 False \n", + "9 0 SINGLE 0.0 False \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "0 1.0 9000.369141 24.0 \n", + "7 1.0 1065.645671 36.0 \n", + "8 1.0 1065.645671 36.0 \n", + "9 1.0 1065.645671 36.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "0 2402.0 9000.369141 1201 12.0 \n", + "7 3601.0 3196.937012 3601 36.0 \n", + "8 3602.0 3196.937012 3602 36.0 \n", + "9 3603.0 3196.937012 3603 36.0 " + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spm_unit_df[spm_unit_df['household_id'] == 12]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "e486384a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
household_idhousehold_sizeageage_headage_spouseis_marriedtax_unit_dependentsis_tax_unit_spousetax_unit_marriedis_tax_unit_headhousehold_weightperson_household_idperson_tax_unit_idtax_unit_weighttax_unit_idtax_unit_household_id
012.02.0124.063.061.0True0.01.01.01.09000.36914124.02402.09000.3691411201.012.0
\n", + "
" + ], + "text/plain": [ + " household_id household_size age age_head age_spouse is_married \\\n", + "0 12.0 2.0 124.0 63.0 61.0 True \n", + "\n", + " tax_unit_dependents is_tax_unit_spouse tax_unit_married \\\n", + "0 0.0 1.0 1.0 \n", + "\n", + " is_tax_unit_head household_weight person_household_id \\\n", + "0 1.0 9000.369141 24.0 \n", + "\n", + " person_tax_unit_id tax_unit_weight tax_unit_id tax_unit_household_id \n", + "0 2402.0 9000.369141 1201.0 12.0 " + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "family_df[family_df['household_id'] == 12]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pe", + "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.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/us/reconciliation/senate_bill/social_security_analysis.ipynb b/us/reconciliation/senate_bill/social_security_analysis.ipynb new file mode 100644 index 0000000..1a4e325 --- /dev/null +++ b/us/reconciliation/senate_bill/social_security_analysis.ipynb @@ -0,0 +1,1522 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "c33646e0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/pavelmakarchuk/anaconda3/envs/pe/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from policyengine_us import Microsimulation\n", + "from policyengine_core.reforms import Reform\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "511f6dee", + "metadata": {}, + "outputs": [], + "source": [ + "baseline_branching_reform = Reform.from_dict(\n", + " {\n", + " \"gov.simulation.branch_to_determine_itemization\": {\n", + " \"2026-01-01.2100-12-31\": True\n", + " },\n", + " },\n", + " country_id=\"us\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "65b511cc", + "metadata": {}, + "outputs": [], + "source": [ + "senate_bill = Reform.from_dict({\n", + " \"gov.irs.credits.estate.base\": {\n", + " \"2026-01-01.2026-12-31\": 15000000,\n", + " \"2027-01-01.2027-12-31\": 15600000,\n", + " \"2028-01-01.2028-12-31\": 15930000,\n", + " \"2029-01-01.2029-12-31\": 16250000,\n", + " \"2030-01-01.2030-12-31\": 16570000,\n", + " \"2031-01-01.2031-12-31\": 16900000,\n", + " \"2032-01-01.2032-12-31\": 17230000,\n", + " \"2033-01-01.2033-12-31\": 17570000,\n", + " \"2034-01-01.2034-12-31\": 17920000,\n", + " \"2035-01-01.2100-12-31\": 18270000\n", + " },\n", + " \"gov.irs.income.bracket.rates.2\": {\n", + " \"2026-01-01.2100-12-31\": 0.12\n", + " },\n", + " \"gov.irs.income.bracket.rates.3\": {\n", + " \"2026-01-01.2100-12-31\": 0.22\n", + " },\n", + " \"gov.irs.income.bracket.rates.4\": {\n", + " \"2026-01-01.2100-12-31\": 0.24\n", + " },\n", + " \"gov.irs.income.bracket.rates.5\": {\n", + " \"2026-01-01.2100-12-31\": 0.32\n", + " },\n", + " \"gov.irs.income.bracket.rates.7\": {\n", + " \"2026-01-01.2100-12-31\": 0.37\n", + " },\n", + " \"gov.contrib.salt_phase_out.rate\": {\n", + " \"2025-01-01.2100-12-31\": 0.3\n", + " },\n", + " \"gov.irs.deductions.qbi.max.rate\": {\n", + " \"2026-01-01.2100-12-31\": 0.2\n", + " },\n", + " \"gov.irs.income.exemption.amount\": {\n", + " \"2026-01-01.2100-12-31\": 0\n", + " },\n", + " \"gov.irs.credits.cdcc.phase_out.max\": {\n", + " \"2026-01-01.2100-12-31\": 0.5\n", + " },\n", + " \"gov.irs.credits.cdcc.phase_out.min\": {\n", + " \"2026-01-01.2100-12-31\": 0.35\n", + " },\n", + " \"gov.contrib.salt_phase_out.in_effect\": {\n", + " \"2025-01-01.2029-12-31\": True\n", + " },\n", + " \"gov.contrib.reconciliation.ctc.in_effect\": {\n", + " \"2025-01-01.2100-12-31\": True\n", + " },\n", + " \"gov.contrib.salt_phase_out.floor.applies\": {\n", + " \"2025-01-01.2029-12-31\": True\n", + " },\n", + " \"gov.irs.deductions.itemized.misc.applies\": {\n", + " \"2026-01-01.2100-12-31\": False\n", + " },\n", + " \"gov.irs.deductions.qbi.max.w2_wages.rate\": {\n", + " \"2026-01-01.2100-12-31\": 0.5\n", + " },\n", + " \"gov.irs.deductions.standard.amount.JOINT\": {\n", + " \"2025-01-01.2025-12-31\": 31500,\n", + " \"2026-01-01.2026-12-31\": 32600,\n", + " \"2027-01-01.2027-12-31\": 33400,\n", + " \"2028-01-01.2028-12-31\": 34100,\n", + " \"2029-01-01.2029-12-31\": 34800,\n", + " \"2030-01-01.2030-12-31\": 35500,\n", + " \"2031-01-01.2031-12-31\": 36200,\n", + " \"2032-01-01.2032-12-31\": 36900,\n", + " \"2033-01-01.2033-12-31\": 37700,\n", + " \"2034-01-01.2034-12-31\": 38400,\n", + " \"2035-01-01.2100-12-31\": 39200\n", + " },\n", + " \"gov.contrib.reconciliation.cdcc.in_effect\": {\n", + " \"2026-01-01.2100-12-31\": True\n", + " },\n", + " \"gov.irs.credits.ctc.amount.base[0].amount\": {\n", + " \"2025-01-01.2026-12-31\": 2200,\n", + " \"2027-01-01.2028-12-31\": 2300,\n", + " \"2029-01-01.2030-12-31\": 2400,\n", + " \"2031-01-01.2032-12-31\": 2500,\n", + " \"2033-01-01.2034-12-31\": 2600,\n", + " \"2035-01-01.2100-12-31\": 2700\n", + " },\n", + " \"gov.irs.deductions.standard.amount.SINGLE\": {\n", + " \"2025-01-01.2025-12-31\": 15750,\n", + " \"2026-01-01.2026-12-31\": 16300,\n", + " \"2027-01-01.2027-12-31\": 16700,\n", + " \"2028-01-01.2028-12-31\": 17050,\n", + " \"2029-01-01.2029-12-31\": 17400,\n", + " \"2030-01-01.2030-12-31\": 17750,\n", + " \"2031-01-01.2031-12-31\": 18100,\n", + " \"2032-01-01.2032-12-31\": 18450,\n", + " \"2033-01-01.2033-12-31\": 18850,\n", + " \"2034-01-01.2034-12-31\": 19200,\n", + " \"2035-01-01.2100-12-31\": 19600\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 139000,\n", + " \"2027-01-01.2027-12-31\": 142500,\n", + " \"2028-01-01.2028-12-31\": 145500,\n", + " \"2029-01-01.2029-12-31\": 148400,\n", + " \"2030-01-01.2030-12-31\": 151300,\n", + " \"2031-01-01.2031-12-31\": 154300,\n", + " \"2032-01-01.2032-12-31\": 157400,\n", + " \"2033-01-01.2033-12-31\": 160500,\n", + " \"2034-01-01.2034-12-31\": 163700,\n", + " \"2035-01-01.2100-12-31\": 166900\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.1.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 23850\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.2.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 96950\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 208300,\n", + " \"2027-01-01.2027-12-31\": 213400,\n", + " \"2028-01-01.2028-12-31\": 217850,\n", + " \"2029-01-01.2029-12-31\": 222200,\n", + " \"2030-01-01.2030-12-31\": 226650,\n", + " \"2031-01-01.2031-12-31\": 231100,\n", + " \"2032-01-01.2032-12-31\": 235650,\n", + " \"2033-01-01.2033-12-31\": 240300,\n", + " \"2034-01-01.2034-12-31\": 245100,\n", + " \"2035-01-01.2036-12-31\": 249950\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 397650,\n", + " \"2027-01-01.2027-12-31\": 407450,\n", + " \"2028-01-01.2028-12-31\": 415900,\n", + " \"2029-01-01.2029-12-31\": 424250,\n", + " \"2030-01-01.2030-12-31\": 432700,\n", + " \"2031-01-01.2031-12-31\": 441250,\n", + " \"2032-01-01.2032-12-31\": 449900,\n", + " \"2033-01-01.2033-12-31\": 458800,\n", + " \"2034-01-01.2034-12-31\": 467950,\n", + " \"2035-01-01.2036-12-31\": 477150\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 512950,\n", + " \"2027-01-01.2027-12-31\": 525600,\n", + " \"2028-01-01.2028-12-31\": 536500,\n", + " \"2029-01-01.2029-12-31\": 547200,\n", + " \"2030-01-01.2030-12-31\": 558100,\n", + " \"2031-01-01.2031-12-31\": 569150,\n", + " \"2032-01-01.2032-12-31\": 580350,\n", + " \"2033-01-01.2033-12-31\": 591800,\n", + " \"2034-01-01.2034-12-31\": 603550,\n", + " \"2035-01-01.2037-12-31\": 615500\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 772750,\n", + " \"2027-01-01.2027-12-31\": 791800,\n", + " \"2028-01-01.2028-12-31\": 808200,\n", + " \"2029-01-01.2029-12-31\": 824400,\n", + " \"2030-01-01.2030-12-31\": 840800,\n", + " \"2031-01-01.2031-12-31\": 857400,\n", + " \"2032-01-01.2032-12-31\": 874250,\n", + " \"2033-01-01.2033-12-31\": 891550,\n", + " \"2034-01-01.2034-12-31\": 909300,\n", + " \"2035-01-01.2036-12-31\": 927250\n", + " },\n", + " \"gov.contrib.reconciliation.pease.in_effect\": {\n", + " \"2026-01-01.2100-12-31\": True\n", + " },\n", + " \"gov.contrib.salt_phase_out.threshold.JOINT\": {\n", + " \"2025-01-01.2025-12-31\": 500000,\n", + " \"2026-01-01.2026-12-31\": 505000,\n", + " \"2027-01-01.2027-12-31\": 510050,\n", + " \"2028-01-01.2028-12-31\": 515151,\n", + " \"2029-01-01.2029-12-31\": 520302,\n", + " \"2030-01-01.2030-12-31\": 525505,\n", + " \"2031-01-01.2031-12-31\": 530760,\n", + " \"2032-01-01.2032-12-31\": 536069,\n", + " \"2033-01-01.2100-12-31\": 541428\n", + " },\n", + " \"gov.irs.credits.ctc.amount.adult_dependent\": {\n", + " \"2026-01-01.2100-12-31\": 500\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 89400,\n", + " \"2027-01-01.2027-12-31\": 91700,\n", + " \"2028-01-01.2028-12-31\": 93500,\n", + " \"2029-01-01.2029-12-31\": 95400,\n", + " \"2030-01-01.2030-12-31\": 97300,\n", + " \"2031-01-01.2031-12-31\": 99200,\n", + " \"2032-01-01.2032-12-31\": 101200,\n", + " \"2033-01-01.2033-12-31\": 103200,\n", + " \"2034-01-01.2034-12-31\": 105300,\n", + " \"2035-01-01.2100-12-31\": 107300\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.1.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 11925\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.2.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 48475\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 104900,\n", + " \"2027-01-01.2027-12-31\": 107500,\n", + " \"2028-01-01.2028-12-31\": 109700,\n", + " \"2029-01-01.2029-12-31\": 111900,\n", + " \"2030-01-01.2030-12-31\": 114150,\n", + " \"2031-01-01.2031-12-31\": 116400,\n", + " \"2032-01-01.2032-12-31\": 118700,\n", + " \"2033-01-01.2033-12-31\": 121050,\n", + " \"2034-01-01.2034-12-31\": 123450,\n", + " \"2035-01-01.2036-12-31\": 125900\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 198800,\n", + " \"2027-01-01.2027-12-31\": 203700,\n", + " \"2028-01-01.2028-12-31\": 207950,\n", + " \"2029-01-01.2029-12-31\": 212100,\n", + " \"2030-01-01.2030-12-31\": 216350,\n", + " \"2031-01-01.2031-12-31\": 220600,\n", + " \"2032-01-01.2032-12-31\": 224950,\n", + " \"2033-01-01.2033-12-31\": 229400,\n", + " \"2034-01-01.2034-12-31\": 233950,\n", + " \"2035-01-01.2036-12-31\": 238550\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 256450,\n", + " \"2027-01-01.2027-12-31\": 262800,\n", + " \"2028-01-01.2028-12-31\": 268250,\n", + " \"2029-01-01.2029-12-31\": 273600,\n", + " \"2030-01-01.2030-12-31\": 279050,\n", + " \"2031-01-01.2031-12-31\": 284550,\n", + " \"2032-01-01.2032-12-31\": 290150,\n", + " \"2033-01-01.2033-12-31\": 295900,\n", + " \"2034-01-01.2034-12-31\": 301750,\n", + " \"2035-01-01.2100-12-31\": 307750\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 643950,\n", + " \"2027-01-01.2027-12-31\": 659800,\n", + " \"2028-01-01.2028-12-31\": 673500,\n", + " \"2029-01-01.2029-12-31\": 687000,\n", + " \"2030-01-01.2030-12-31\": 700650,\n", + " \"2031-01-01.2031-12-31\": 714500,\n", + " \"2032-01-01.2032-12-31\": 728550,\n", + " \"2033-01-01.2033-12-31\": 742950,\n", + " \"2034-01-01.2034-12-31\": 757750,\n", + " \"2035-01-01.2036-12-31\": 772700\n", + " },\n", + " \"gov.contrib.salt_phase_out.threshold.SINGLE\": {\n", + " \"2025-01-01.2025-12-31\": 500000,\n", + " \"2026-01-01.2026-12-31\": 505000,\n", + " \"2027-01-01.2027-12-31\": 510050,\n", + " \"2028-01-01.2028-12-31\": 515151,\n", + " \"2029-01-01.2029-12-31\": 520302,\n", + " \"2030-01-01.2030-12-31\": 525505,\n", + " \"2031-01-01.2031-12-31\": 530760,\n", + " \"2032-01-01.2032-12-31\": 536068,\n", + " \"2033-01-01.2100-12-31\": 541428\n", + " },\n", + " \"gov.irs.deductions.itemized.casualty.active\": {\n", + " \"2026-01-01.2100-12-31\": False\n", + " },\n", + " \"gov.irs.deductions.standard.amount.SEPARATE\": {\n", + " \"2025-01-01.2025-12-31\": 15750,\n", + " \"2026-01-01.2026-12-31\": 16300,\n", + " \"2027-01-01.2027-12-31\": 16700,\n", + " \"2028-01-01.2028-12-31\": 17050,\n", + " \"2029-01-01.2029-12-31\": 17400,\n", + " \"2030-01-01.2030-12-31\": 17750,\n", + " \"2031-01-01.2031-12-31\": 18100,\n", + " \"2032-01-01.2032-12-31\": 18450,\n", + " \"2033-01-01.2033-12-31\": 18850,\n", + " \"2034-01-01.2034-12-31\": 19200,\n", + " \"2035-01-01.2100-12-31\": 19600\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.rate\": {\n", + " \"2026-01-01.2100-12-31\": 0.5\n", + " },\n", + " \"gov.irs.income.amt.exemption.separate_limit\": {\n", + " \"2026-01-01.2026-12-31\": 639200,\n", + " \"2027-01-01.2027-12-31\": 662750,\n", + " \"2028-01-01.2028-12-31\": 676350,\n", + " \"2029-01-01.2029-12-31\": 689950,\n", + " \"2030-01-01.2030-12-31\": 703750,\n", + " \"2031-01-01.2031-12-31\": 717650,\n", + " \"2032-01-01.2032-12-31\": 731700,\n", + " \"2033-01-01.2033-12-31\": 746100,\n", + " \"2034-01-01.2034-12-31\": 760950,\n", + " \"2035-01-01.2100-12-31\": 776150\n", + " },\n", + " \"gov.irs.deductions.qbi.max.w2_wages.alt_rate\": {\n", + " \"2026-01-01.2100-12-31\": 0.25\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 400600,\n", + " \"2027-01-01.2027-12-31\": 413900,\n", + " \"2028-01-01.2028-12-31\": 422400,\n", + " \"2029-01-01.2029-12-31\": 430900,\n", + " \"2030-01-01.2030-12-31\": 439500,\n", + " \"2031-01-01.2031-12-31\": 448200,\n", + " \"2032-01-01.2032-12-31\": 457000,\n", + " \"2033-01-01.2033-12-31\": 466000,\n", + " \"2034-01-01.2034-12-31\": 475300,\n", + " \"2035-01-01.2100-12-31\": 484700\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 69600,\n", + " \"2027-01-01.2027-12-31\": 71300,\n", + " \"2028-01-01.2028-12-31\": 72700,\n", + " \"2029-01-01.2029-12-31\": 74200,\n", + " \"2030-01-01.2030-12-31\": 75700,\n", + " \"2031-01-01.2031-12-31\": 77200,\n", + " \"2032-01-01.2032-12-31\": 78700,\n", + " \"2033-01-01.2033-12-31\": 80200,\n", + " \"2034-01-01.2034-12-31\": 81800,\n", + " \"2035-01-01.2100-12-31\": 83500\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.1.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 11925\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.2.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 48475\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 104900,\n", + " \"2027-01-01.2027-12-31\": 107500,\n", + " \"2028-01-01.2028-12-31\": 109700,\n", + " \"2029-01-01.2029-12-31\": 111900,\n", + " \"2030-01-01.2030-12-31\": 114150,\n", + " \"2031-01-01.2031-12-31\": 116400,\n", + " \"2032-01-01.2032-12-31\": 118700,\n", + " \"2033-01-01.2033-12-31\": 121050,\n", + " \"2034-01-01.2034-12-31\": 123450,\n", + " \"2035-01-01.2036-12-31\": 125900\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 198800,\n", + " \"2027-01-01.2027-12-31\": 203700,\n", + " \"2028-01-01.2028-12-31\": 207950,\n", + " \"2029-01-01.2029-12-31\": 212100,\n", + " \"2030-01-01.2030-12-31\": 216350,\n", + " \"2031-01-01.2031-12-31\": 220600,\n", + " \"2032-01-01.2032-12-31\": 224950,\n", + " \"2033-01-01.2033-12-31\": 229400,\n", + " \"2034-01-01.2034-12-31\": 233950,\n", + " \"2035-01-01.2036-12-31\": 238550\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 256450,\n", + " \"2027-01-01.2027-12-31\": 262800,\n", + " \"2028-01-01.2028-12-31\": 268250,\n", + " \"2029-01-01.2029-12-31\": 273600,\n", + " \"2030-01-01.2030-12-31\": 279050,\n", + " \"2031-01-01.2031-12-31\": 284550,\n", + " \"2032-01-01.2032-12-31\": 290150,\n", + " \"2033-01-01.2033-12-31\": 295900,\n", + " \"2034-01-01.2034-12-31\": 301750,\n", + " \"2035-01-01.2100-12-31\": 307750\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 386350,\n", + " \"2027-01-01.2027-12-31\": 395900,\n", + " \"2028-01-01.2028-12-31\": 404100,\n", + " \"2029-01-01.2029-12-31\": 412200,\n", + " \"2030-01-01.2030-12-31\": 420400,\n", + " \"2031-01-01.2031-12-31\": 428700,\n", + " \"2032-01-01.2032-12-31\": 437100,\n", + " \"2033-01-01.2033-12-31\": 445750,\n", + " \"2034-01-01.2034-12-31\": 454650,\n", + " \"2035-01-01.2036-12-31\": 463600\n", + " },\n", + " \"gov.contrib.salt_phase_out.threshold.SEPARATE\": {\n", + " \"2025-01-01.2025-12-31\": 250000,\n", + " \"2026-01-01.2026-12-31\": 252500,\n", + " \"2027-01-01.2027-12-31\": 255025,\n", + " \"2028-01-01.2028-12-31\": 257575,\n", + " \"2029-01-01.2029-12-31\": 260151,\n", + " \"2030-01-01.2030-12-31\": 262753,\n", + " \"2031-01-01.2031-12-31\": 265380,\n", + " \"2032-01-01.2032-12-31\": 268034,\n", + " \"2033-01-01.2100-12-31\": 270714\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 400000\n", + " },\n", + " \"gov.irs.credits.ctc.refundable.individual_max\": {\n", + " \"2026-01-01.2026-12-31\": 1700,\n", + " \"2027-01-01.2028-12-31\": 1800,\n", + " \"2029-01-01.2031-12-31\": 1900,\n", + " \"2032-01-01.2033-12-31\": 2000,\n", + " \"2034-01-01.2100-12-31\": 2100\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 150000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 200300,\n", + " \"2027-01-01.2027-12-31\": 206950,\n", + " \"2028-01-01.2028-12-31\": 211200,\n", + " \"2029-01-01.2029-12-31\": 215450,\n", + " \"2030-01-01.2030-12-31\": 219750,\n", + " \"2031-01-01.2031-12-31\": 224100,\n", + " \"2032-01-01.2032-12-31\": 228500,\n", + " \"2033-01-01.2033-12-31\": 233000,\n", + " \"2034-01-01.2034-12-31\": 237650,\n", + " \"2035-01-01.2100-12-31\": 242350\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 200000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 75000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 200300,\n", + " \"2027-01-01.2027-12-31\": 206950,\n", + " \"2028-01-01.2028-12-31\": 211200,\n", + " \"2029-01-01.2029-12-31\": 215450,\n", + " \"2030-01-01.2030-12-31\": 219750,\n", + " \"2031-01-01.2031-12-31\": 224100,\n", + " \"2032-01-01.2032-12-31\": 228500,\n", + " \"2033-01-01.2033-12-31\": 233000,\n", + " \"2034-01-01.2034-12-31\": 237650,\n", + " \"2035-01-01.2100-12-31\": 242350\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 200000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 75000\n", + " },\n", + " \"gov.contrib.reconciliation.ctc.one_person_ssn_req\": {\n", + " \"2025-01-01.2100-12-31\": True\n", + " },\n", + " \"gov.irs.credits.ctc.refundable.phase_in.threshold\": {\n", + " \"2026-01-01.2100-12-31\": 2500\n", + " },\n", + " \"gov.irs.deductions.qbi.max.business_property.rate\": {\n", + " \"2026-01-01.2100-12-31\": 0.025\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 1000000,\n", + " \"2027-01-01.2027-12-31\": 1040300,\n", + " \"2028-01-01.2028-12-31\": 1061900,\n", + " \"2029-01-01.2029-12-31\": 1083100,\n", + " \"2030-01-01.2030-12-31\": 1104700,\n", + " \"2031-01-01.2031-12-31\": 1126500,\n", + " \"2032-01-01.2032-12-31\": 1148600,\n", + " \"2033-01-01.2033-12-31\": 1171400,\n", + " \"2034-01-01.2034-12-31\": 1194700,\n", + " \"2035-01-01.2100-12-31\": 1218300\n", + " },\n", + " \"gov.irs.deductions.standard.amount.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2025-12-31\": 31500,\n", + " \"2026-01-01.2026-12-31\": 32600,\n", + " \"2027-01-01.2027-12-31\": 33400,\n", + " \"2028-01-01.2028-12-31\": 34100,\n", + " \"2029-01-01.2029-12-31\": 34800,\n", + " \"2030-01-01.2030-12-31\": 35500,\n", + " \"2031-01-01.2031-12-31\": 36200,\n", + " \"2032-01-01.2032-12-31\": 36900,\n", + " \"2033-01-01.2033-12-31\": 37700,\n", + " \"2034-01-01.2034-12-31\": 38400,\n", + " \"2035-01-01.2100-12-31\": 39200\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 500000,\n", + " \"2027-01-01.2027-12-31\": 520150,\n", + " \"2028-01-01.2028-12-31\": 530950,\n", + " \"2029-01-01.2029-12-31\": 541550,\n", + " \"2030-01-01.2030-12-31\": 552350,\n", + " \"2031-01-01.2031-12-31\": 563250,\n", + " \"2032-01-01.2032-12-31\": 574300,\n", + " \"2033-01-01.2033-12-31\": 585700,\n", + " \"2034-01-01.2034-12-31\": 597350,\n", + " \"2035-01-01.2100-12-31\": 609150\n", + " },\n", + " \"gov.irs.deductions.standard.amount.HEAD_OF_HOUSEHOLD\": {\n", + " \"2025-01-01.2025-12-31\": 23625,\n", + " \"2026-01-01.2026-12-31\": 24500,\n", + " \"2027-01-01.2027-12-31\": 25100,\n", + " \"2028-01-01.2028-12-31\": 25600,\n", + " \"2029-01-01.2029-12-31\": 26150,\n", + " \"2030-01-01.2030-12-31\": 26650,\n", + " \"2031-01-01.2031-12-31\": 27200,\n", + " \"2032-01-01.2032-12-31\": 27700,\n", + " \"2033-01-01.2033-12-31\": 28250,\n", + " \"2034-01-01.2034-12-31\": 28800,\n", + " \"2035-01-01.2100-12-31\": 29400\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 139100,\n", + " \"2027-01-01.2027-12-31\": 142500,\n", + " \"2028-01-01.2028-12-31\": 145500,\n", + " \"2029-01-01.2029-12-31\": 148400,\n", + " \"2030-01-01.2030-12-31\": 151300,\n", + " \"2031-01-01.2031-12-31\": 154300,\n", + " \"2032-01-01.2032-12-31\": 157400,\n", + " \"2033-01-01.2033-12-31\": 160500,\n", + " \"2034-01-01.2034-12-31\": 163700,\n", + " \"2035-01-01.2100-12-31\": 166900\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.1.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 23850\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.2.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 96950\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 208300,\n", + " \"2027-01-01.2027-12-31\": 213400,\n", + " \"2028-01-01.2028-12-31\": 217850,\n", + " \"2029-01-01.2029-12-31\": 222200,\n", + " \"2030-01-01.2030-12-31\": 226650,\n", + " \"2031-01-01.2031-12-31\": 231100,\n", + " \"2032-01-01.2032-12-31\": 235650,\n", + " \"2033-01-01.2033-12-31\": 240300,\n", + " \"2034-01-01.2034-12-31\": 245100,\n", + " \"2035-01-01.2036-12-31\": 249950\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 397650,\n", + " \"2027-01-01.2027-12-31\": 407450,\n", + " \"2028-01-01.2028-12-31\": 415900,\n", + " \"2029-01-01.2029-12-31\": 424250,\n", + " \"2030-01-01.2030-12-31\": 432700,\n", + " \"2031-01-01.2031-12-31\": 441250,\n", + " \"2032-01-01.2032-12-31\": 449900,\n", + " \"2033-01-01.2033-12-31\": 458800,\n", + " \"2034-01-01.2034-12-31\": 467950,\n", + " \"2035-01-01.2036-12-31\": 477150\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 512950,\n", + " \"2027-01-01.2027-12-31\": 525600,\n", + " \"2028-01-01.2028-12-31\": 536500,\n", + " \"2029-01-01.2029-12-31\": 547200,\n", + " \"2030-01-01.2030-12-31\": 558100,\n", + " \"2031-01-01.2031-12-31\": 569150,\n", + " \"2032-01-01.2032-12-31\": 580350,\n", + " \"2033-01-01.2033-12-31\": 591800,\n", + " \"2034-01-01.2034-12-31\": 603550,\n", + " \"2035-01-01.2037-12-31\": 615500\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 772750,\n", + " \"2027-01-01.2027-12-31\": 791800,\n", + " \"2028-01-01.2028-12-31\": 808200,\n", + " \"2029-01-01.2029-12-31\": 824400,\n", + " \"2030-01-01.2030-12-31\": 840800,\n", + " \"2031-01-01.2031-12-31\": 857400,\n", + " \"2032-01-01.2032-12-31\": 874250,\n", + " \"2033-01-01.2033-12-31\": 891550,\n", + " \"2034-01-01.2034-12-31\": 909300,\n", + " \"2035-01-01.2036-12-31\": 927300\n", + " },\n", + " \"gov.contrib.salt_phase_out.threshold.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2025-12-31\": 500000,\n", + " \"2026-01-01.2026-12-31\": 505000,\n", + " \"2027-01-01.2027-12-31\": 510050,\n", + " \"2028-01-01.2028-12-31\": 515151,\n", + " \"2029-01-01.2029-12-31\": 520302,\n", + " \"2030-01-01.2030-12-31\": 525505,\n", + " \"2031-01-01.2031-12-31\": 530760,\n", + " \"2032-01-01.2032-12-31\": 536068,\n", + " \"2033-01-01.2100-12-31\": 541428\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 89400,\n", + " \"2027-01-01.2027-12-31\": 91700,\n", + " \"2028-01-01.2028-12-31\": 93600,\n", + " \"2029-01-01.2029-12-31\": 95400,\n", + " \"2030-01-01.2030-12-31\": 97300,\n", + " \"2031-01-01.2031-12-31\": 99200,\n", + " \"2032-01-01.2032-12-31\": 101200,\n", + " \"2033-01-01.2033-12-31\": 103200,\n", + " \"2034-01-01.2034-12-31\": 105300,\n", + " \"2035-01-01.2100-12-31\": 107300\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 500000,\n", + " \"2027-01-01.2027-12-31\": 520150,\n", + " \"2028-01-01.2028-12-31\": 530950,\n", + " \"2029-01-01.2029-12-31\": 541550,\n", + " \"2030-01-01.2030-12-31\": 552350,\n", + " \"2031-01-01.2031-12-31\": 563250,\n", + " \"2032-01-01.2032-12-31\": 574300,\n", + " \"2033-01-01.2033-12-31\": 585700,\n", + " \"2034-01-01.2034-12-31\": 597350,\n", + " \"2035-01-01.2100-12-31\": 609150\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.1.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 17000\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.2.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 64850\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 104900,\n", + " \"2027-01-01.2027-12-31\": 107500,\n", + " \"2028-01-01.2028-12-31\": 109700,\n", + " \"2029-01-01.2029-12-31\": 111900,\n", + " \"2030-01-01.2030-12-31\": 114150,\n", + " \"2031-01-01.2031-12-31\": 116400,\n", + " \"2032-01-01.2032-12-31\": 118700,\n", + " \"2033-01-01.2033-12-31\": 121050,\n", + " \"2034-01-01.2034-12-31\": 123450,\n", + " \"2035-01-01.2036-12-31\": 125900\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 198800,\n", + " \"2027-01-01.2027-12-31\": 203700,\n", + " \"2028-01-01.2028-12-31\": 207950,\n", + " \"2029-01-01.2029-12-31\": 212100,\n", + " \"2030-01-01.2030-12-31\": 216350,\n", + " \"2031-01-01.2031-12-31\": 220600,\n", + " \"2032-01-01.2032-12-31\": 224950,\n", + " \"2033-01-01.2033-12-31\": 229400,\n", + " \"2034-01-01.2034-12-31\": 233950,\n", + " \"2035-01-01.2036-12-31\": 238550\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 256486,\n", + " \"2027-01-01.2027-12-31\": 262806,\n", + " \"2028-01-01.2028-12-31\": 268250,\n", + " \"2029-01-01.2029-12-31\": 273621,\n", + " \"2030-01-01.2030-12-31\": 279065,\n", + " \"2031-01-01.2031-12-31\": 284584,\n", + " \"2032-01-01.2032-12-31\": 290175,\n", + " \"2033-01-01.2033-12-31\": 295914,\n", + " \"2034-01-01.2034-12-31\": 301800,\n", + " \"2035-01-01.2036-12-31\": 307759\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 643950,\n", + " \"2027-01-01.2027-12-31\": 659800,\n", + " \"2028-01-01.2028-12-31\": 673500,\n", + " \"2029-01-01.2029-12-31\": 687000,\n", + " \"2030-01-01.2030-12-31\": 700650,\n", + " \"2031-01-01.2031-12-31\": 714500,\n", + " \"2032-01-01.2032-12-31\": 728550,\n", + " \"2033-01-01.2033-12-31\": 742950,\n", + " \"2034-01-01.2034-12-31\": 757750,\n", + " \"2035-01-01.2036-12-31\": 772700\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.cap.JOINT\": {\n", + " \"2025-01-01.2100-12-31\": 25000\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.in_effect\": {\n", + " \"2025-01-01.2028-12-31\": True\n", + " },\n", + " \"gov.contrib.salt_phase_out.threshold.HEAD_OF_HOUSEHOLD\": {\n", + " \"2025-01-01.2025-12-31\": 500000,\n", + " \"2026-01-01.2026-12-31\": 505000,\n", + " \"2027-01-01.2027-12-31\": 510050,\n", + " \"2028-01-01.2028-12-31\": 515151,\n", + " \"2029-01-01.2029-12-31\": 520302,\n", + " \"2030-01-01.2030-12-31\": 525505,\n", + " \"2031-01-01.2031-12-31\": 530760,\n", + " \"2032-01-01.2032-12-31\": 536068,\n", + " \"2033-01-01.2100-12-31\": 541428\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.cap.SINGLE\": {\n", + " \"2025-01-01.2100-12-31\": 25000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 400600,\n", + " \"2027-01-01.2027-12-31\": 413900,\n", + " \"2028-01-01.2028-12-31\": 422400,\n", + " \"2029-01-01.2029-12-31\": 430900,\n", + " \"2030-01-01.2030-12-31\": 439500,\n", + " \"2031-01-01.2031-12-31\": 448200,\n", + " \"2032-01-01.2032-12-31\": 457000,\n", + " \"2033-01-01.2033-12-31\": 466000,\n", + " \"2034-01-01.2034-12-31\": 475300,\n", + " \"2035-01-01.2100-12-31\": 484700\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 400000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 150000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 200300,\n", + " \"2027-01-01.2027-12-31\": 206950,\n", + " \"2028-01-01.2028-12-31\": 211200,\n", + " \"2029-01-01.2029-12-31\": 215450,\n", + " \"2030-01-01.2030-12-31\": 219750,\n", + " \"2031-01-01.2031-12-31\": 224100,\n", + " \"2032-01-01.2032-12-31\": 228500,\n", + " \"2033-01-01.2033-12-31\": 233000,\n", + " \"2034-01-01.2034-12-31\": 237650,\n", + " \"2035-01-01.2100-12-31\": 242350\n", + " },\n", + " \"gov.contrib.reconciliation.qbid.deduction_floor.in_effect\": {\n", + " \"2026-01-01.2100-12-31\": True\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.cap.SEPARATE\": {\n", + " \"2025-01-01.2100-12-31\": 25000\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 200000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 75000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 375000\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.JOINT\": {\n", + " \"2025-01-01.2025-12-31\": 40000,\n", + " \"2026-01-01.2026-12-31\": 40400,\n", + " \"2027-01-01.2027-12-31\": 40804,\n", + " \"2028-01-01.2028-12-31\": 41212,\n", + " \"2029-01-01.2029-12-31\": 41624,\n", + " \"2030-01-01.2100-12-31\": 10000\n", + " },\n", + " \"gov.contrib.reconciliation.auto_loan_interest_ald.in_effect\": {\n", + " \"2025-01-01.2028-12-31\": True\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.cap.JOINT\": {\n", + " \"2025-01-01.2100-12-31\": 25000\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.in_effect\": {\n", + " \"2025-01-01.2028-12-31\": True\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.SINGLE\": {\n", + " \"2025-01-01.2025-12-31\": 40000,\n", + " \"2026-01-01.2026-12-31\": 40400,\n", + " \"2027-01-01.2027-12-31\": 40804,\n", + " \"2028-01-01.2028-12-31\": 41212,\n", + " \"2029-01-01.2029-12-31\": 41624,\n", + " \"2030-01-01.2100-12-31\": 10000\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.cap.SINGLE\": {\n", + " \"2025-01-01.2100-12-31\": 12500\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.SEPARATE\": {\n", + " \"2025-01-01.2025-12-31\": 20000,\n", + " \"2026-01-01.2026-12-31\": 20200,\n", + " \"2027-01-01.2027-12-31\": 20402,\n", + " \"2028-01-01.2028-12-31\": 20606,\n", + " \"2029-01-01.2029-12-31\": 20812,\n", + " \"2030-01-01.2100-12-31\": 5000\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 1000000,\n", + " \"2027-01-01.2027-12-31\": 1040300,\n", + " \"2028-01-01.2028-12-31\": 1061900,\n", + " \"2029-01-01.2029-12-31\": 1083100,\n", + " \"2030-01-01.2030-12-31\": 1104700,\n", + " \"2031-01-01.2031-12-31\": 1126500,\n", + " \"2032-01-01.2032-12-31\": 1148600,\n", + " \"2033-01-01.2033-12-31\": 1171400,\n", + " \"2034-01-01.2034-12-31\": 1194700,\n", + " \"2035-01-01.2100-12-31\": 1218300\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.cap.SEPARATE\": {\n", + " \"2025-01-01.2100-12-31\": 12500\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.phase_out.applies\": {\n", + " \"2025-01-01.2028-12-31\": True\n", + " },\n", + " \"gov.irs.deductions.itemized.charity.non_itemizers_amount.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 2000\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 500000,\n", + " \"2027-01-01.2027-12-31\": 520150,\n", + " \"2028-01-01.2028-12-31\": 530950,\n", + " \"2029-01-01.2029-12-31\": 541550,\n", + " \"2030-01-01.2030-12-31\": 552350,\n", + " \"2031-01-01.2031-12-31\": 563250,\n", + " \"2032-01-01.2032-12-31\": 574300,\n", + " \"2033-01-01.2033-12-31\": 585700,\n", + " \"2034-01-01.2034-12-31\": 597350,\n", + " \"2035-01-01.2100-12-31\": 609150\n", + " },\n", + " \"gov.irs.deductions.itemized.charity.non_itemizers_amount.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 1000\n", + " },\n", + " \"gov.contrib.reconciliation.qbid.deduction_floor.amount[1].amount\": {\n", + " \"2027-01-01.2027-12-31\": 415,\n", + " \"2028-01-01.2028-12-31\": 425,\n", + " \"2029-01-01.2029-12-31\": 435,\n", + " \"2030-01-01.2030-12-31\": 440,\n", + " \"2031-01-01.2031-12-31\": 450,\n", + " \"2032-01-01.2032-12-31\": 460,\n", + " \"2033-01-01.2033-12-31\": 470,\n", + " \"2034-01-01.2034-12-31\": 480,\n", + " \"2035-01-01.2100-12-31\": 485\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.cap.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 25000\n", + " },\n", + " \"gov.irs.deductions.itemized.charity.non_itemizers_amount.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 1000\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.cap.HEAD_OF_HOUSEHOLD\": {\n", + " \"2025-01-01.2100-12-31\": 25000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.phase_out.applies\": {\n", + " \"2025-01-01.2028-12-31\": True\n", + " },\n", + " \"gov.contrib.reconciliation.qbid.deduction_floor.amount[1].threshold\": {\n", + " \"2027-01-01.2027-12-31\": 1040,\n", + " \"2028-01-01.2028-12-31\": 1060,\n", + " \"2029-01-01.2029-12-31\": 1085,\n", + " \"2030-01-01.2030-12-31\": 1105,\n", + " \"2031-01-01.2031-12-31\": 1125,\n", + " \"2032-01-01.2032-12-31\": 1150,\n", + " \"2033-01-01.2033-12-31\": 1170,\n", + " \"2034-01-01.2034-12-31\": 1195,\n", + " \"2035-01-01.2100-12-31\": 1220\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2025-12-31\": 40000,\n", + " \"2026-01-01.2026-12-31\": 40400,\n", + " \"2027-01-01.2027-12-31\": 40804,\n", + " \"2028-01-01.2028-12-31\": 41212,\n", + " \"2029-01-01.2029-12-31\": 41624,\n", + " \"2030-01-01.2100-12-31\": 10000\n", + " },\n", + " \"gov.contrib.reconciliation.additional_senior_standard_deduction.amount\": {\n", + " \"2025-01-01.2100-12-31\": 6000\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.cap.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 12500\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.HEAD_OF_HOUSEHOLD\": {\n", + " \"2025-01-01.2025-12-31\": 40000,\n", + " \"2026-01-01.2026-12-31\": 40400,\n", + " \"2027-01-01.2027-12-31\": 40804,\n", + " \"2028-01-01.2028-12-31\": 41212,\n", + " \"2029-01-01.2029-12-31\": 41624,\n", + " \"2030-01-01.2100-12-31\": 10000\n", + " },\n", + " \"gov.contrib.reconciliation.cdcc.phase_out.second_start.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 75000\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.cap.HEAD_OF_HOUSEHOLD\": {\n", + " \"2025-01-01.2100-12-31\": 12500\n", + " },\n", + " \"gov.contrib.reconciliation.additional_senior_standard_deduction.in_effect\": {\n", + " \"2025-01-01.2028-12-31\": True\n", + " },\n", + " \"gov.irs.deductions.itemized.charity.non_itemizers_amount.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 1000\n", + " },\n", + " \"gov.irs.deductions.itemized.charity.non_itemizers_amount.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 1000\n", + " },\n", + " \"gov.contrib.reconciliation.cdcc.phase_out.second_increment.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 2000\n", + " },\n", + " \"gov.contrib.reconciliation.tip_income_exempt.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 150000\n", + " },\n", + " \"gov.contrib.reconciliation.additional_senior_standard_deduction.rate.joint[1].rate\": {\n", + " \"2025-01-01.2100-12-31\": 0.06\n", + " },\n", + " \"gov.contrib.reconciliation.additional_senior_standard_deduction.rate.other[1].rate\": {\n", + " \"2025-01-01.2100-12-31\": 0.06\n", + " },\n", + " \"gov.contrib.reconciliation.auto_loan_interest_ald.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 100000\n", + " },\n", + " \"gov.contrib.reconciliation.overtime_income_exempt.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2025-01-01.2100-12-31\": 150000\n", + " },\n", + " \"gov.simulation.branch_to_determine_itemization\": {\n", + " \"2026-01-01.2100-12-31\": True\n", + " },\n", + "}, country_id=\"us\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "cd00e024", + "metadata": {}, + "outputs": [], + "source": [ + "tcja_extension = Reform.from_dict(\n", + " {\n", + " \"gov.irs.income.bracket.rates.2\": {\"2026-01-01.2100-12-31\": 0.12},\n", + " \"gov.irs.income.bracket.rates.3\": {\"2026-01-01.2100-12-31\": 0.22},\n", + " \"gov.irs.income.bracket.rates.4\": {\"2026-01-01.2100-12-31\": 0.24},\n", + " \"gov.irs.income.bracket.rates.5\": {\"2026-01-01.2100-12-31\": 0.32},\n", + " \"gov.irs.income.bracket.rates.7\": {\"2026-01-01.2100-12-31\": 0.37},\n", + " \"gov.irs.deductions.qbi.max.rate\": {\"2026-01-01.2100-12-31\": 0.2},\n", + " \"gov.irs.income.exemption.amount\": {\"2026-01-01.2100-12-31\": 0},\n", + " \"gov.irs.deductions.qbi.max.w2_wages.rate\": {\"2026-01-01.2100-12-31\": 0.5},\n", + " \"gov.irs.deductions.standard.amount.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 30300,\n", + " },\n", + " \"gov.irs.credits.ctc.amount.base[0].amount\": {\"2026-01-01.2100-12-31\": 2000},\n", + " \"gov.irs.deductions.standard.amount.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 15150,\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 139100,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 208300,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 397650,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 512950,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 769450,\n", + " },\n", + " \"gov.irs.credits.ctc.amount.adult_dependent\": {\"2026-01-01.2100-12-31\": 500},\n", + " \"gov.irs.income.amt.exemption.amount.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 89400,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 104900,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 198800,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 256450,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 641200,\n", + " },\n", + " \"gov.irs.deductions.itemized.casualty.active\": {\"2026-01-01.2100-12-31\": False},\n", + " \"gov.irs.deductions.standard.amount.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 15150,\n", + " },\n", + " \"gov.irs.deductions.qbi.max.w2_wages.alt_rate\": {\"2026-01-01.2100-12-31\": 0.25},\n", + " \"gov.irs.deductions.qbi.phase_out.start.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 409800,\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 69500,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 104900,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 198800,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 256450,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 384700,\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 400000\n", + " },\n", + " \"gov.irs.credits.ctc.refundable.individual_max\": {\n", + " \"2026-01-01.2026-12-31\": 1800,\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 100000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 204900,\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 200000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 50000\n", + " },\n", + " \"gov.irs.deductions.itemized.charity.ceiling.all\": {\n", + " \"2026-01-01.2100-12-31\": 0.6\n", + " },\n", + " \"gov.irs.deductions.itemized.limitation.agi_rate\": {\n", + " \"2026-01-01.2100-12-31\": np.inf\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 204900,\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 200000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 50000\n", + " },\n", + " \"gov.irs.credits.ctc.refundable.phase_in.threshold\": {\n", + " \"2026-01-01.2100-12-31\": 2500\n", + " },\n", + " \"gov.irs.deductions.qbi.max.business_property.rate\": {\n", + " \"2026-01-01.2100-12-31\": 0.025\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.JOINT\": {\n", + " \"2026-01-01.2026-12-31\": 1271900,\n", + " },\n", + " \"gov.irs.deductions.standard.amount.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 30300,\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.SINGLE\": {\n", + " \"2026-01-01.2026-12-31\": 635900,\n", + " },\n", + " \"gov.irs.deductions.standard.amount.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 22700,\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 139100,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 208300,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 397650,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 512950,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 769450,\n", + " },\n", + " \"gov.irs.income.amt.exemption.amount.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 89400,\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.SEPARATE\": {\n", + " \"2026-01-01.2026-12-31\": 635900,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.3.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 104900,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.4.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 198800,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.5.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 256486,\n", + " },\n", + " \"gov.irs.income.bracket.thresholds.6.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 641200,\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 409800,\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 400000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 100000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.start.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 204900,\n", + " },\n", + " \"gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 200000\n", + " },\n", + " \"gov.irs.deductions.qbi.phase_out.length.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 50000\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 10000\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 10000\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 5000\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2026-12-31\": 1271900,\n", + " },\n", + " \"gov.irs.deductions.itemized.reduction.applies\": {\n", + " \"2026-01-01.2100-12-31\": False\n", + " },\n", + " \"gov.irs.deductions.itemized.reduction.agi_threshold.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 0\n", + " },\n", + " \"gov.irs.income.amt.exemption.phase_out.start.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2026-12-31\": 635900,\n", + " },\n", + " \"gov.irs.deductions.itemized.reduction.agi_threshold.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 0\n", + " },\n", + " \"gov.irs.deductions.itemized.reduction.agi_threshold.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 0\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 10_000\n", + " },\n", + " \"gov.irs.deductions.itemized.salt_and_real_estate.cap.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 10_000\n", + " },\n", + " \"gov.irs.deductions.itemized.reduction.agi_threshold.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 0\n", + " },\n", + " \"gov.irs.deductions.itemized.reduction.agi_threshold.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 0\n", + " },\n", + " \"gov.irs.credits.estate.base\": {\n", + " \"2026-01-01.2026-12-31\": 14200000,\n", + " },\n", + " \"gov.irs.income.amt.exemption.separate_limit\": {\n", + " \"2026-01-01.2026-12-31\": 913900,\n", + " },\n", + " \"gov.irs.deductions.itemized.misc.applies\": {\n", + " \"2026-01-01.2100-12-31\": False\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.JOINT\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.SINGLE\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.SEPARATE\": {\n", + " \"2026-01-01.2100-12-31\": 375000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.SURVIVING_SPOUSE\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.irs.deductions.itemized.interest.mortgage.cap.HEAD_OF_HOUSEHOLD\": {\n", + " \"2026-01-01.2100-12-31\": 750000\n", + " },\n", + " \"gov.simulation.branch_to_determine_itemization\": {\n", + " \"2026-01-01.2100-12-31\": True\n", + " },\n", + " },\n", + " country_id=\"us\",\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "dce96072", + "metadata": {}, + "outputs": [], + "source": [ + "baseline = Microsimulation(dataset=\"hf://policyengine/policyengine-us-data/enhanced_cps_2024.h5\")\n", + "reformed = Microsimulation(reform=senate_bill, dataset=\"hf://policyengine/policyengine-us-data/enhanced_cps_2024.h5\")\n", + "tcja_extension = Microsimulation(reform=tcja_extension, dataset=\"hf://policyengine/policyengine-us-data/enhanced_cps_2024.h5\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "6ff1ec42", + "metadata": {}, + "outputs": [], + "source": [ + "social_security = baseline.calculate(\"social_security\", map_to=\"person\", period=2026)\n", + "age = baseline.calculate(\"age\", map_to=\"person\", period=2026)\n", + "weight = baseline.calculate(\"household_weight\", map_to=\"person\", period=2026)\n", + "is_senior = (age >= 65)\n", + "senior_received_social_security = ((social_security > 0) * is_senior) " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8e8c9657", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "18.920846760929585" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "itemizes = baseline.calculate(\"tax_unit_itemizes\", map_to=\"person\", period=2026)\n", + "itemizes[senior_received_social_security].sum() / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "72bca63c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "54.87423033602494" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "senior_received_social_security.sum() / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "d4929e13", + "metadata": {}, + "outputs": [], + "source": [ + "deductions = baseline.calculate(\"taxable_income_deductions\", map_to=\"person\", period=2026)\n", + "exemptions = baseline.calculate(\"exemptions\", map_to=\"person\", period=2026)\n", + "total_exemptions_deductions = exemptions + deductions" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "800caaa9", + "metadata": {}, + "outputs": [], + "source": [ + "taxable_social_security = baseline.calculate(\"taxable_social_security\", map_to=\"person\", period=2026)\n", + "deductions_exceed_ss = (total_exemptions_deductions > taxable_social_security) * senior_received_social_security" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3aa30815", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "48.542799120267986" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(deductions_exceed_ss).sum() / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "17f8ffe3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "88.46192251447332" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(((deductions_exceed_ss).sum() / 1e6) / (senior_received_social_security.sum() / 1e6)) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2f395952", + "metadata": {}, + "outputs": [], + "source": [ + "reformed_social_security = reformed.calculate(\"social_security\", map_to=\"person\", period=2026)\n", + "reformed_senior_received_social_security = (reformed_social_security > 0) * is_senior" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "42b91458", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "54.87423033602494" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reformed_senior_received_social_security.sum() / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9cc0f5f7", + "metadata": {}, + "outputs": [], + "source": [ + "reformed_deductions = reformed.calculate(\"taxable_income_deductions\", map_to=\"person\", period=2026)\n", + "reformed_exemptions = reformed.calculate(\"exemptions\", map_to=\"person\", period=2026)\n", + "reformed_total_exemptions_deductions = reformed_exemptions + reformed_deductions" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "7eb0c295", + "metadata": {}, + "outputs": [], + "source": [ + "reformed_taxable_social_security = reformed.calculate(\"taxable_social_security\", map_to=\"person\", period=2026)\n", + "reformed_deductions_exceed_ss = (reformed_total_exemptions_deductions > reformed_taxable_social_security)* reformed_senior_received_social_security" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "f20f6381", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "52.449298341421965" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reformed_deductions_exceed_ss.sum() / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "756e0885", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "95.58092755059381" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "((reformed_deductions_exceed_ss.sum() / 1e6) / (reformed_senior_received_social_security.sum() / 1e6)) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "7cd26510", + "metadata": {}, + "outputs": [], + "source": [ + "tcja_social_security = tcja_extension.calculate(\"social_security\", map_to=\"person\", period=2026)\n", + "tcja_senior_received_ss = (tcja_social_security > 0)* is_senior\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "14844a11", + "metadata": {}, + "outputs": [], + "source": [ + "tcja_deductions = tcja_extension.calculate(\"taxable_income_deductions\", map_to=\"person\", period=2026)\n", + "tcja_exemptions = tcja_extension.calculate(\"exemptions\", map_to=\"person\", period=2026)\n", + "tcja_total_exemptions_deductions = tcja_exemptions + tcja_deductions\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "ab3717a5", + "metadata": {}, + "outputs": [], + "source": [ + "tcja_taxable_social_security = tcja_extension.calculate(\"taxable_social_security\", map_to=\"person\", period=2026)\n", + "tcja_deductions_exceed_ss = (tcja_total_exemptions_deductions > tcja_taxable_social_security) * tcja_senior_received_ss" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "ddbe60ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "48.7600570592413" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(tcja_deductions_exceed_ss.sum()) / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "e1517c56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "88.85784230713905" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "((tcja_deductions_exceed_ss.sum() / 1e6) / (tcja_senior_received_ss.sum() / 1e6)) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7ceb486", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pe", + "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.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}