Skip to content

Commit e1ae2b3

Browse files
committed
Use mortgage-specific JCT MID target
1 parent 14fb1f0 commit e1ae2b3

6 files changed

Lines changed: 24 additions & 4 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Use a mortgage-specific deduction variable for the JCT mortgage tax expenditure target instead of broad interest deductions.

policyengine_us_data/db/etl_national_targets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def extract_national_targets(dataset: str = DEFAULT_DATASET):
8787
"year": HARDCODED_YEAR,
8888
},
8989
{
90-
"variable": "interest_deduction",
90+
"variable": "deductible_mortgage_interest",
9191
"value": 24.8e9,
9292
"source": "Joint Committee on Taxation",
9393
"notes": "Mortgage interest deduction tax expenditure",

policyengine_us_data/tests/test_database_build.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,25 @@ def test_national_targets_loaded(built_db):
125125
)
126126

127127

128+
def test_jct_mortgage_tax_expenditure_uses_mortgage_specific_variable(built_db):
129+
"""The mortgage JCT target should point at a mortgage-specific variable."""
130+
conn = sqlite3.connect(str(built_db))
131+
rows = conn.execute("""
132+
SELECT DISTINCT t.variable, t.source, t.notes
133+
FROM targets t
134+
WHERE t.variable = 'deductible_mortgage_interest'
135+
""").fetchall()
136+
conn.close()
137+
138+
assert rows == [
139+
(
140+
"deductible_mortgage_interest",
141+
"PolicyEngine",
142+
"Mortgage interest deduction tax expenditure | Modeled as repeal-based income tax expenditure target | Source: Joint Committee on Taxation",
143+
)
144+
]
145+
146+
128147
def test_state_income_tax_targets(built_db):
129148
"""State income tax targets should cover all income-tax states."""
130149
conn = sqlite3.connect(str(built_db))

policyengine_us_data/tests/test_datasets/test_enhanced_cps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def deprecated_test_ecps_replicates_jct_tax_expenditures_full():
6464
"salt_deduction": 21.247e9,
6565
"medical_expense_deduction": 11.4e9,
6666
"charitable_deduction": 65.301e9,
67-
"interest_deduction": 24.8e9,
67+
"deductible_mortgage_interest": 24.8e9,
6868
}
6969

7070
baseline = Microsimulation(dataset=EnhancedCPS_2024)

policyengine_us_data/tests/test_datasets/test_sparse_enhanced_cps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def deprecated_test_sparse_ecps_replicates_jct_tax_expenditures_full(sim):
129129
"salt_deduction": 21.247e9,
130130
"medical_expense_deduction": 11.4e9,
131131
"charitable_deduction": 65.301e9,
132-
"interest_deduction": 24.8e9,
132+
"deductible_mortgage_interest": 24.8e9,
133133
}
134134

135135
baseline = sim

policyengine_us_data/utils/loss.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ def _add_tax_expenditure_targets(
684684
"salt_deduction": 21.247e9,
685685
"medical_expense_deduction": 11.4e9,
686686
"charitable_deduction": 65.301e9,
687-
"interest_deduction": 24.8e9,
687+
"deductible_mortgage_interest": 24.8e9,
688688
"qualified_business_income_deduction": 63.1e9,
689689
}
690690

0 commit comments

Comments
 (0)