Repository: PolicyEngine/policyengine-us

Issue:
Apply itemized deduction limitations (TCJA pauses this)
https://www.law.cornell.edu/uscode/text/26/68 specifies the itemized deduction limitations, which TCJA pauses from 2018 to 2025.

Some states also reference this, e.g. Oregon https://www.oregonlegislature.gov/bills_laws/ors/ors316.html

Discussion:

Solution patch:
diff --git a/changelog_entry.yaml b/changelog_entry.yaml
index e69de29bb2..3f3238c2ba 100644
--- a/changelog_entry.yaml
+++ b/changelog_entry.yaml
@@ -0,0 +1,4 @@
+- bump: minor
+  changes:
+    added:
+    - Apply itemized deduction limitations.
diff --git a/policyengine_us/parameters/gov/irs/deductions/itemized/limitation/applicable_amount.yaml b/policyengine_us/parameters/gov/irs/deductions/itemized/limitation/applicable_amount.yaml
index eab3496145..03981df7dd 100644
--- a/policyengine_us/parameters/gov/irs/deductions/itemized/limitation/applicable_amount.yaml
+++ b/policyengine_us/parameters/gov/irs/deductions/itemized/limitation/applicable_amount.yaml
@@ -1,94 +1,129 @@
 description: The US limits the itemized deductions to filers with adjusted gross income over this amount, based on filing status.
 JOINT:
-  2013-01-01: 300_000
-  2014-01-01: 305_050
-  2015-01-01: 309_900
-  2016-01-01: 311_300
-  2017-01-01: 313_800
-  2018-01-01: .inf
-  # CBO forecast.
-  2026-01-01: 407_850
-  2027-01-01: 416_450
-  2028-01-01: 424_900
-  2029-01-01: 433_300
-  2030-01-01: 441_850
-  2031-01-01: 450_600
-  2032-01-01: 459_500
-  2033-01-01: 468_600
-  2034-01-01: 477_900
-  2035-01-01: 487_400
+  values: 
+    2013-01-01: 300_000
+    2014-01-01: 305_050
+    2015-01-01: 309_900
+    2016-01-01: 311_300
+    2017-01-01: 313_800
+    2018-01-01: .inf
+    # CBO forecast.
+    2026-01-01: 407_850
+    2027-01-01: 416_450
+    2028-01-01: 424_900
+    2029-01-01: 433_300
+    2030-01-01: 441_850
+    2031-01-01: 450_600
+    2032-01-01: 459_500
+    2033-01-01: 468_600
+    2034-01-01: 477_900
+    2035-01-01: 487_400
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
 SINGLE:
-  2013-01-01: 250_000
-  2014-01-01: 254_200
-  2015-01-01: 258_250
-  2016-01-01: 259_400
-  2017-01-01: 261_500
-  2018-01-01: .inf
-  # CBO forecast.
-  2026-01-01: 339_850
-  2027-01-01: 347_050
-  2028-01-01: 354_050
-  2029-01-01: 361_050
-  2030-01-01: 368_200
-  2031-01-01: 375_500
-  2032-01-01: 382_900
-  2033-01-01: 390_500
-  2034-01-01: 398_250
-  2035-01-01: 406_200
+  values:
+    2013-01-01: 250_000
+    2014-01-01: 254_200
+    2015-01-01: 258_250
+    2016-01-01: 259_400
+    2017-01-01: 261_500
+    2018-01-01: .inf
+    # CBO forecast.
+    2026-01-01: 339_850
+    2027-01-01: 347_050
+    2028-01-01: 354_050
+    2029-01-01: 361_050
+    2030-01-01: 368_200
+    2031-01-01: 375_500
+    2032-01-01: 382_900
+    2033-01-01: 390_500
+    2034-01-01: 398_250
+    2035-01-01: 406_200
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
 SEPARATE:
-  2013-01-01: 150_000
-  2014-01-01: 152_525
-  2015-01-01: 154_950
-  2016-01-01: 155_650
-  2017-01-01: 156_900
-  2018-01-01: .inf
-  # CBO forecast.
-  2026-01-01: 203_900
-  2027-01-01: 208_200
-  2028-01-01: 212_450
-  2029-01-01: 216_650
-  2030-01-01: 220_900
-  2031-01-01: 225_300
-  2032-01-01: 229_750
-  2033-01-01: 234_300
-  2034-01-01: 238_950
-  2035-01-01: 243_700
+  values:
+    2013-01-01: 150_000
+    2014-01-01: 152_525
+    2015-01-01: 154_950
+    2016-01-01: 155_650
+    2017-01-01: 156_900
+    2018-01-01: .inf
+    # CBO forecast.
+    2026-01-01: 203_900
+    2027-01-01: 208_200
+    2028-01-01: 212_450
+    2029-01-01: 216_650
+    2030-01-01: 220_900
+    2031-01-01: 225_300
+    2032-01-01: 229_750
+    2033-01-01: 234_300
+    2034-01-01: 238_950
+    2035-01-01: 243_700
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
 HEAD_OF_HOUSEHOLD:
-  2013-01-01: 275_000
-  2014-01-01: 279_650
-  2015-01-01: 284_050
-  2016-01-01: 285_350
-  2017-01-01: 287_650
-  2018-01-01: .inf
-  # CBO forecast.
-  2026-01-01: 373_850
-  2027-01-01: 381_750
-  2028-01-01: 389_500
-  2029-01-01: 397_200
-  2030-01-01: 405_000
-  2031-01-01: 413_050
-  2032-01-01: 421_200
-  2033-01-01: 429_550
-  2034-01-01: 438_100
-  2035-01-01: 446_800
+  values:
+    2013-01-01: 275_000
+    2014-01-01: 279_650
+    2015-01-01: 284_050
+    2016-01-01: 285_350
+    2017-01-01: 287_650
+    2018-01-01: .inf
+    # CBO forecast.
+    2026-01-01: 373_850
+    2027-01-01: 381_750
+    2028-01-01: 389_500
+    2029-01-01: 397_200
+    2030-01-01: 405_000
+    2031-01-01: 413_050
+    2032-01-01: 421_200
+    2033-01-01: 429_550
+    2034-01-01: 438_100
+    2035-01-01: 446_800
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
 SURVIVING_SPOUSE: # Same as joint  
-  2013-01-01: 300_000
-  2014-01-01: 305_050
-  2015-01-01: 309_900
-  2016-01-01: 311_300
-  2017-01-01: 313_800
-  2018-01-01: .inf
-  # CBO forecast.
-  2026-01-01: 407_850
-  2027-01-01: 416_450
-  2028-01-01: 424_900
-  2029-01-01: 433_300
-  2030-01-01: 441_850
-  2031-01-01: 450_600
-  2032-01-01: 459_500
-  2033-01-01: 468_600
-  2034-01-01: 477_900
-  2035-01-01: 487_400
+  values:
+    2013-01-01: 300_000
+    2014-01-01: 305_050
+    2015-01-01: 309_900
+    2016-01-01: 311_300
+    2017-01-01: 313_800
+    2018-01-01: .inf
+    # CBO forecast.
+    2026-01-01: 407_850
+    2027-01-01: 416_450
+    2028-01-01: 424_900
+    2029-01-01: 433_300
+    2030-01-01: 441_850
+    2031-01-01: 450_600
+    2032-01-01: 459_500
+    2033-01-01: 468_600
+    2034-01-01: 477_900
+    2035-01-01: 487_400
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
 metadata:
   label: Itemized deductions applicable amount
   period: year
@@ -115,4 +150,3 @@ metadata:
     - title: CBO Tax Parameters and Effective Marginal Tax Rates | Jan 2025
       # 1. Tax Parameters.
       href: https://www.cbo.gov/system/files/2025-01/53724-2025-01-Tax-Parameters.xlsx
-
diff --git a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/agi_threshold.yaml b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/agi_threshold.yaml
index e7631fde9d..b70e862965 100644
--- a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/agi_threshold.yaml
+++ b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/agi_threshold.yaml
@@ -1,56 +1,164 @@
 description: IRS deducts the total itemized deductions amount for filers with adjusted gross income below this amount, based on filing status.
+
 SINGLE:
-  2009-01-01: 166_800
-  2013-01-01: 150_000
-  2014-01-01: 152_525
-  2015-01-01: 154_950
-  2016-01-01: 155_650
-  2017-01-01: 156_900
+  values:
+    2009-01-01: 166_800
+    2010-01-01: 0
+    2013-01-01: 250_000
+    2014-01-01: 254_200
+    2015-01-01: 258_250
+    2016-01-01: 259_400
+    2017-01-01: 261_500
+    2018-01-01: 0
+    # CBO forecast.
+    2026-01-01: 339_850
+    2027-01-01: 347_050
+    2028-01-01: 354_050
+    2029-01-01: 361_050
+    2030-01-01: 368_200
+    2031-01-01: 375_500
+    2032-01-01: 382_900
+    2033-01-01: 390_500
+    2034-01-01: 398_250
+    2035-01-01: 406_200
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
 JOINT:
-  2009-01-01: 166_800
-  2013-01-01: 150_000
-  2014-01-01: 152_525
-  2015-01-01: 154_950
-  2016-01-01: 155_650
-  2017-01-01: 156_900
+  values:
+    2009-01-01: 250_200
+    2010-01-01: 0
+    2013-01-01: 300_000
+    2014-01-01: 305_050
+    2015-01-01: 309_900
+    2016-01-01: 311_300
+    2017-01-01: 313_800
+    2018-01-01: 0
+    2026-01-01: 407_850
+    2027-01-01: 416_450
+    2028-01-01: 424_900
+    2029-01-01: 433_300
+    2030-01-01: 441_850
+    2031-01-01: 450_600
+    2032-01-01: 459_500
+    2033-01-01: 468_600
+    2034-01-01: 477_900
+    2035-01-01: 487_400
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
+
 SEPARATE:
-  2009-01-01: 83_400
-  2013-01-01: 75_000
-  2014-01-01: 76_262.5
-  2015-01-01: 77_475
-  2016-01-01: 77_825
-  2017-01-01: 78_450
+  values:
+    2009-01-01: 125_100
+    2010-01-01: 0
+    2013-01-01: 150_000
+    2014-01-01: 152_525
+    2015-01-01: 154_950
+    2016-01-01: 155_650
+    2017-01-01: 156_900
+    2018-01-01: 0
+    # CBO forecast.
+    2026-01-01: 203_900
+    2027-01-01: 208_200
+    2028-01-01: 212_450
+    2029-01-01: 216_650
+    2030-01-01: 220_900
+    2031-01-01: 225_300
+    2032-01-01: 229_750
+    2033-01-01: 234_300
+    2034-01-01: 238_950
+    2035-01-01: 243_700
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
+
 HEAD_OF_HOUSEHOLD:
-  2009-01-01: 166_800
-  2013-01-01: 150_000
-  2014-01-01: 152_525
-  2015-01-01: 154_950
-  2016-01-01: 155_650
-  2017-01-01: 156_900
+  values: 
+    2009-01-01: 208_500
+    2010-01-01: 0
+    2013-01-01: 275_000
+    2014-01-01: 279_650
+    2015-01-01: 284_050
+    2016-01-01: 285_350
+    2017-01-01: 287_650
+    2018-01-01: 0
+    # CBO forecast.
+    2026-01-01: 373_850
+    2027-01-01: 381_750
+    2028-01-01: 389_500
+    2029-01-01: 397_200
+    2030-01-01: 405_000
+    2031-01-01: 413_050
+    2032-01-01: 421_200
+    2033-01-01: 429_550
+    2034-01-01: 438_100
+    2035-01-01: 446_800
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
+
 SURVIVING_SPOUSE:
-  2009-01-01: 166_800
-  2013-01-01: 150_000
-  2014-01-01: 152_525
-  2015-01-01: 154_950
-  2016-01-01: 155_650
-  2017-01-01: 156_900
+  values:
+    2010-01-01: 0
+    2013-01-01: 300_000
+    2014-01-01: 305_050
+    2015-01-01: 309_900
+    2016-01-01: 311_300
+    2017-01-01: 313_800
+    2018-01-01: 0
+    # CBO forecast.
+    2026-01-01: 407_850
+    2027-01-01: 416_450
+    2028-01-01: 424_900
+    2029-01-01: 433_300
+    2030-01-01: 441_850
+    2031-01-01: 450_600
+    2032-01-01: 459_500
+    2033-01-01: 468_600
+    2034-01-01: 477_900
+    2035-01-01: 487_400
+  metadata:
+    uprating:
+      parameter: gov.irs.uprating
+      rounding:
+        type: downwards
+        interval: 50
+
 metadata:
-  breakdown: filing_status
+  breakdown:
+    - filing_status
   unit: currency-USD
   period: year
-  label: IRS itemized deductions adjusted gross income threshold
+  label: IRS itemized deductions reduction threshold
   reference:
-    - title: 2009 Publication 526
-      href: https://www.irs.gov/pub/irs-prior/p526--2009.pdf#page=13
+    - title: 2009 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2009.pdf#page=6
     - title: 26 U.S. Code § 68 - Overall limitation on itemized deductions, (b)
-      href: https://www.law.cornell.edu/uscode/text/26/68
-    - title: 2013 Schedule A
-      href: https://www.irs.gov/pub/irs-prior/f1040sa--2013.pdf#page=2
-    - title: 2014 Schedule A
-      href: https://www.irs.gov/pub/irs-prior/f1040sa--2014.pdf#page=1
-    - title: 2015 Schedule A
-      href: https://www.irs.gov/pub/irs-prior/f1040sa--2015.pdf
-    - title: 2016 Schedule A
-      href: https://www.irs.gov/pub/irs-prior/f1040sa--2016.pdf
-    - title: 2017 Schedule A
-      href: https://www.irs.gov/pub/irs-prior/f1040sa--2010.pdf#page=1
+      href: https://www.law.cornell.edu/uscode/text/26/68#b
+    # The pease limitation was repealed from 2010 to 2012 as well as from 2017 to 2025
+    - title: 2010 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2010.pdf#page=6
+    - title: 2011 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2011.pdf#page=6
+    - title: 2012 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2012.pdf#page=6
+    - title: 2013 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2013.pdf#page=6
+    - title: 2014 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2014.pdf#page=6
+    - title: 2015 Form 1040 - Limit on Itemized Deductions
+      href: https://www.irs.gov/pub/irs-prior/i1040gi--2015.pdf#page=6
+  
diff --git a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/applies.yaml b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/applies.yaml
new file mode 100644
index 0000000000..3bef62a2ef
--- /dev/null
+++ b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/applies.yaml
@@ -0,0 +1,16 @@
+description: The itemized deductions reduction applies if this is true.
+
+values:
+  2009-01-01: true
+  2010-01-01: false
+  2013-01-01: true
+  2018-01-01: false
+  2026-01-01: true
+
+metadata:
+  unit: bool
+  period: year
+  label: Itemized deductions reduction applies
+  reference:
+    - title: 26 U.S. Code § 68 - Overall limitation on itemized deductions, (a)(2) 
+      href: https://www.law.cornell.edu/uscode/text/26/68
diff --git a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/base.yaml b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/base.yaml
index e91ddbb09f..4d2e546c66 100644
--- a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/base.yaml
+++ b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/base.yaml
@@ -1,9 +1,9 @@
 description: IRS multiplies the excess of the total and reduced itemized deductions by this rate.
 values:
   2017-01-01: 0.8
-  2018-01-01: 0
 metadata:
   unit: /1
+  period: year
   label: IRS reduced itemized deductions base rate
   reference:
     - title: 26 U.S. Code § 68 - Overall limitation on itemized deductions, (a)(2) 
diff --git a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/excess_agi.yaml b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/excess_agi.yaml
index acfd891841..3d1ff44cd7 100644
--- a/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/excess_agi.yaml
+++ b/policyengine_us/parameters/gov/irs/deductions/itemized/reduction/rate/excess_agi.yaml
@@ -1,9 +1,9 @@
 description: IRS multiplies the excess of adjusted gross income over the applicable amount by this rate.
 values:
   2017-01-01: 0.03
-  2018-01-01: 0
 metadata:
   unit: /1
+  period: year
   label: IRS itemized deductions reduced adjusted gross income rate
   reference:
     - title: 26 U.S. Code § 68 - Overall limitation on itemized deductions, (a)(1) 
diff --git a/policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml b/policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml
index 488de0722e..fadfc997d1 100644
--- a/policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml
+++ b/policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml
@@ -154,4 +154,4 @@ SURVIVING_SPOUSE:
     2032-01-01: 123_700
     2033-01-01: 126_200
     2034-01-01: 128_700
-    2035-01-01: 131_200
\ No newline at end of file
+    2035-01-01: 131_200
diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.py b/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.py
index 15f476397f..d95664290b 100644
--- a/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.py
+++ b/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.py
@@ -8,4 +8,11 @@ class itemized_taxable_income_deductions(Variable):
     unit = USD
     definition_period = YEAR
 
-    adds = "gov.irs.deductions.itemized_deductions"
+    def formula(tax_unit, period, parameters):
+        total_deductions = tax_unit(
+            "total_itemized_taxable_income_deductions", period
+        )
+        reduction = tax_unit(
+            "itemized_taxable_income_deductions_reduction", period
+        )
+        return max_(0, total_deductions - reduction)
diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.py b/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.py
new file mode 100644
index 0000000000..904233ecac
--- /dev/null
+++ b/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.py
@@ -0,0 +1,25 @@
+from policyengine_us.model_api import *
+
+
+class itemized_taxable_income_deductions_reduction(Variable):
+    value_type = float
+    entity = TaxUnit
+    label = "Itemized taxable income deductions reduction"
+    unit = USD
+    definition_period = YEAR
+
+    def formula(tax_unit, period, parameters):
+        p = parameters(period).gov.irs.deductions.itemized.reduction
+        if p.applies:
+            agi = tax_unit("adjusted_gross_income", period)
+
+            filing_status = tax_unit("filing_status", period)
+            agi_threshold = p.agi_threshold[filing_status]
+            agi_excess = max_(0, agi - agi_threshold)
+            agi_excess_reduction = agi_excess * p.rate.excess_agi
+            maximum_deductions = tax_unit(
+                "total_itemized_taxable_income_deductions", period
+            )
+            maximum_deductions_reduction = maximum_deductions * p.rate.base
+            return min_(agi_excess_reduction, maximum_deductions_reduction)
+        return 0
diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/total_itemized_taxable_income_deductions.py b/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/total_itemized_taxable_income_deductions.py
new file mode 100644
index 0000000000..6eb5f37dbe
--- /dev/null
+++ b/policyengine_us/variables/gov/irs/income/taxable_income/deductions/itemizing/total_itemized_taxable_income_deductions.py
@@ -0,0 +1,11 @@
+from policyengine_us.model_api import *
+
+
+class total_itemized_taxable_income_deductions(Variable):
+    value_type = float
+    entity = TaxUnit
+    label = "Total values of itemized taxable income deductions"
+    unit = USD
+    definition_period = YEAR
+
+    adds = "gov.irs.deductions.itemized_deductions"
diff --git a/policyengine_us/variables/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.py b/policyengine_us/variables/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.py
index d7d439eaf2..3e82d4e75b 100644
--- a/policyengine_us/variables/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.py
+++ b/policyengine_us/variables/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.py
@@ -25,7 +25,6 @@ class hi_itemized_deductions(Variable):
         total_itemized_deduction_eligibility = (
             hi_agi < p.agi_threshold[filing_status]
         )
-
         return where(
             total_itemized_deduction_eligibility,
             tax_unit("hi_total_itemized_deductions", period),


Test patch:
diff --git a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.yaml
new file mode 100644
index 0000000000..3ee6871a1a
--- /dev/null
+++ b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions.yaml
@@ -0,0 +1,15 @@
+- name: Reduction exceeds total deductions
+  period: 2024
+  input:
+    total_itemized_taxable_income_deductions: 1_000
+    itemized_taxable_income_deductions_reduction: 2_000
+  output: 
+    itemized_taxable_income_deductions: 0
+
+- name: Partial reduction
+  period: 2024
+  input:
+    total_itemized_taxable_income_deductions: 1_000
+    itemized_taxable_income_deductions_reduction: 400
+  output: 
+    itemized_taxable_income_deductions: 600
diff --git a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.yaml b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.yaml
new file mode 100644
index 0000000000..3af8bda285
--- /dev/null
+++ b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/itemizing/itemized_taxable_income_deductions_reduction.yaml
@@ -0,0 +1,27 @@
+- name: No reduction in 2024
+  period: 2024
+  input:
+    adjusted_gross_income: 500_000
+    filing_status: SINGLE
+    total_itemized_taxable_income_deductions: 200_000
+  output: 
+    itemized_taxable_income_deductions_reduction: 0
+
+- name: Reduction in 2026, due to AGI reduction
+  period: 2026
+  absolute_error_margin: 1
+  input:
+    adjusted_gross_income: 500_000
+    filing_status: SINGLE
+    total_itemized_taxable_income_deductions: 200_000
+  output: 
+    itemized_taxable_income_deductions_reduction: 4_805
+
+- name: Reduction in 2026, due to total deductions reduction
+  period: 2026
+  input:
+    adjusted_gross_income: 500_000
+    filing_status: SINGLE
+    total_itemized_taxable_income_deductions: 1_000
+  output: 
+    itemized_taxable_income_deductions_reduction: 800
diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.yaml
index 157e0e9e02..5a44ba7f69 100644
--- a/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.yaml
+++ b/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_itemized_deductions.yaml
@@ -21,11 +21,11 @@
   output:
     hi_itemized_deductions: 5_000
 
-- name: Separate, have reduced deduction
+- name: Separate, have reduced deductions
   period: 2022
   input:
     state_code: HI
-    filing_status: JOINT
+    filing_status: SEPARATE
     hi_agi: 166_880
     hi_total_itemized_deductions: 5_000
     hi_reduced_itemized_deductions: 4_500
diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_reduced_itemized_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_reduced_itemized_deductions.yaml
index 739e9b57f3..3b2a970df2 100644
--- a/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_reduced_itemized_deductions.yaml
+++ b/policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_reduced_itemized_deductions.yaml
@@ -1,4 +1,4 @@
-- name: base test
+- name: base test, separate filers
   period: 2022
   input:
     people:
@@ -8,7 +8,7 @@
         investment_interest_expense: 100
     tax_units:
       tax_unit:
-        filing_status: JOINT
+        filing_status: SEPARATE
         hi_medical_expense_deduction: 300
         hi_casualty_loss_deduction: 400
         hi_agi: 200_000
@@ -19,7 +19,7 @@
         members: [person1, person2]
         state_code: HI
   output:
-    hi_reduced_itemized_deductions: 9_004
+    hi_reduced_itemized_deductions: 7_753
 
 
 - name: AGI limit not met