Repository: PolicyEngine/policyengine-us (language: python)

Issue:
Louisiana replaces personal and dependent exemption with higher standard deduction in 2025

![la standard deduction](https://github.com/user-attachments/assets/db957928-d018-4f42-bd31-02e409e63bb6)

[Bill text](https://legis.la.gov/legis/ViewDocument.aspx?d=1391418)

https://github.com/PolicyEngine/policyengine-us/blob/dafb02160b03c69ede9f61cbb864738ccb2574c6/policyengine_us/parameters/gov/states/la/tax/income/exemptions/personal.yaml#L1-L26



Discussion / hints:
I believe this eliminates all the other $1,000 exemptions (blind, aged, and widow) as well.

Fix patch:
diff --git a/changelog_entry.yaml b/changelog_entry.yaml
index e69de29bb2d..193b850f83f 100644
--- a/changelog_entry.yaml
+++ b/changelog_entry.yaml
@@ -0,0 +1,4 @@
+- bump: minor
+  changes:
+    added:
+    - Louisiana 2025 standard deduction structure.
diff --git a/policyengine_us/parameters/gov/states/la/tax/income/deductions/standard/amount.yaml b/policyengine_us/parameters/gov/states/la/tax/income/deductions/standard/amount.yaml
new file mode 100644
index 00000000000..27e06edd3cf
--- /dev/null
+++ b/policyengine_us/parameters/gov/states/la/tax/income/deductions/standard/amount.yaml
@@ -0,0 +1,27 @@
+description: Louisiana provides the following standard deduction amount, based on filing status.
+metadata:
+  period: year
+  unit: currency-USD
+  label: Louisiana standard deduction amount
+  uprating: gov.bls.cpi.cpi_u
+  propagate_metadata_to_children: true
+  breakdown:
+    - filing_status
+  reference:
+    # The legal code does not represent the changes by the House Bill 10,
+    # the state legislature passed in November 2024, source: https://legis.la.gov/legis/BillInfo.aspx?i=247853
+    - title: Louisiana 2024 Third Extraordinary Session, House Bill 10, §294
+      href: https://legis.la.gov/legis/ViewDocument.aspx?d=1391418
+
+SINGLE:
+  2025-01-01: 12_500
+SURVIVING_SPOUSE:
+  2025-01-01: 25_000
+SEPARATE:
+  2025-01-01: 12_500
+# The legal code defines the HoH and Joint amounts as 200% of the 
+# Single amount.
+HEAD_OF_HOUSEHOLD:
+  2025-01-01: 25_000
+JOINT:
+  2025-01-01: 25_000
diff --git a/policyengine_us/parameters/gov/states/la/tax/income/deductions/standard/applies.yaml b/policyengine_us/parameters/gov/states/la/tax/income/deductions/standard/applies.yaml
new file mode 100644
index 00000000000..0e3334086e3
--- /dev/null
+++ b/policyengine_us/parameters/gov/states/la/tax/income/deductions/standard/applies.yaml
@@ -0,0 +1,11 @@
+description: Louisiana applies a standard deduction and repeals personal exemptions, if this is true.
+values:
+  2020-01-01: false
+  2025-01-01: true
+metadata:
+  unit: bool
+  period: year
+  label: Lousiana standard deduction applies
+  reference:
+    - title: Louisiana 2024 Third Extraordinary Session, House Bill 10, §294
+      href: https://legis.la.gov/legis/ViewDocument.aspx?d=1391418
diff --git a/policyengine_us/variables/gov/states/la/tax/income/deductions/la_standard_deduction.py b/policyengine_us/variables/gov/states/la/tax/income/deductions/la_standard_deduction.py
new file mode 100644
index 00000000000..d0ccbd2a40b
--- /dev/null
+++ b/policyengine_us/variables/gov/states/la/tax/income/deductions/la_standard_deduction.py
@@ -0,0 +1,15 @@
+from policyengine_us.model_api import *
+
+
+class la_standard_deduction(Variable):
+    value_type = float
+    entity = TaxUnit
+    label = "Louisiana standard deduction"
+    unit = USD
+    definition_period = YEAR
+    defined_for = StateCode.LA
+
+    def formula(tax_unit, period, parameters):
+        p = parameters(period).gov.states.la.tax.income.deductions.standard
+        filing_status = tax_unit("filing_status", period)
+        return p.amount[filing_status]
diff --git a/policyengine_us/variables/gov/states/la/tax/income/la_taxable_income.py b/policyengine_us/variables/gov/states/la/tax/income/la_taxable_income.py
index 5f1f98635a9..4b5ab0fd6bd 100644
--- a/policyengine_us/variables/gov/states/la/tax/income/la_taxable_income.py
+++ b/policyengine_us/variables/gov/states/la/tax/income/la_taxable_income.py
@@ -11,13 +11,14 @@ class la_taxable_income(Variable):
 
     def formula(tax_unit, period, parameters):
         itemizes = tax_unit("tax_unit_itemizes", period)
-        # Louisana does not provide a standard deduction
         itemized_deductions = tax_unit("la_itemized_deductions", period)
         claimed_itemized_deductions = itemizes * itemized_deductions
         fed_tax_deduction = tax_unit("la_federal_tax_deduction", period)
-        return max_(
-            tax_unit("la_agi", period)
-            - claimed_itemized_deductions
-            - fed_tax_deduction,
-            0,
-        )
+        agi = tax_unit("la_agi", period)
+        total_deductions = claimed_itemized_deductions + fed_tax_deduction
+        p = parameters(period).gov.states.la.tax.income.deductions.standard
+        if p.applies:
+            standard_deduction = tax_unit("la_standard_deduction", period)
+            total_deductions += standard_deduction
+
+        return max_(agi - total_deductions, 0)


Test patch:
diff --git a/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_standard_deduction.yaml b/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_standard_deduction.yaml
new file mode 100644
index 00000000000..814dfbdc8c9
--- /dev/null
+++ b/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_standard_deduction.yaml
@@ -0,0 +1,24 @@
+- name: Single filer
+  period: 2025
+  input:
+    state_code: LA
+    filing_status: SINGLE
+  output:
+    la_standard_deduction: 12_500
+
+- name: Head of Household filer
+  period: 2025
+  input:
+    state_code: LA
+    filing_status: HEAD_OF_HOUSEHOLD
+  output:
+    la_standard_deduction: 25_000
+
+- name: Head of Household filer - 2026 uprated
+  period: 2026
+  absolute_error_margin: 1
+  input:
+    state_code: LA
+    filing_status: HEAD_OF_HOUSEHOLD
+  output:
+    la_standard_deduction: 25_650
diff --git a/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml
index 9f60497fc6f..17544ffadb5 100644
--- a/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml
+++ b/policyengine_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml
@@ -41,3 +41,27 @@
     la_federal_tax_deduction: 400
   output:
     la_taxable_income: 2_600 
+
+- name: Tax unit does not itemize but takes federal tax deduction
+  period: 2020
+  input:
+    state_code: LA
+    la_agi: 3_000
+    tax_unit_itemizes: false
+    la_itemized_deductions: 1_000
+    la_federal_tax_deduction: 400
+    la_standard_deduction: 1_000
+  output:
+    la_taxable_income: 2_600 
+
+- name: In 2025 the standard deduction applies
+  period: 2025
+  input:
+    state_code: LA
+    la_agi: 3_000
+    tax_unit_itemizes: false
+    la_itemized_deductions: 1_000
+    la_federal_tax_deduction: 400
+    la_standard_deduction: 1_000
+  output:
+    la_taxable_income: 1_600