Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Puerto Rico regular tax before credits and gradual adjustment.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Puerto Rico provides the following basis amount for the gradual adjustment limit.
values:
2024-01-01: 8_895
metadata:
unit: currency-USD
period: year
label: Puerto Rico gradual adjustment limit basis
reference:
- title: Gov. of Puerto Rico Form 482.0 2024
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
- title: P.R. Laws tit. 13, § 30061 (b)(5)(e)
href: https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2-ingles/1-2011.pdf#page=32
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Puerto Rico provides the following rate to reduce the total exemptions when calculating the gradual adjustment limit.
values:
2024-01-01: 0.33
metadata:
unit: /1
period: year
label: Puerto Rico gradual adjustment rate for exemptions
# discrepancy between legal form and tax form for the exemptions rate
reference:
- title: Gov. of Puerto Rico Form 482.0 2024
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
- title: P.R. Laws tit. 13, § 30061 (b)(5)(c)
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Puerto Rico provides the following rate to reduce the taxable net income when calculating gradual adjustment.
values:
2024-01-01: 0.05
metadata:
unit: /1
period: year
label: Puerto Rico gradual adjustment rate for taxable net income
reference:
- title: Gov. of Puerto Rico Form 482.0 2024
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
- title: P.R. Laws tit. 13, § 30061 (b)(1)-(4)
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Puerto Rico provides the following income amount as a threshold for the gradual adjustment amount.
values:
2024-01-01: 500_000
metadata:
unit: currency-USD
period: year
label: Puerto Rico gradual adjustment amount income threshold
# discrepancy between legal form and tax form for the income threshold
reference:
- title: Gov. of Puerto Rico Form 482.0 2024
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
- title: P.R. Laws tit. 13, § 30061 (b)(4))
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
description: Puerto Rico taxes this percentage of total normal taxes, based on gross income.
brackets:
- threshold:
2024-01-01: 0
amount:
2024-01-01: 0.92
- threshold:
2024-01-01: 100_001
amount:
2024-01-01: 0.95
metadata:
amount_unit: /1
threshold_unit: currency-USD
type: single_amount
label: Puerto Rico regular tax percentage
period: year
reference:
- title: Gov. of Puerto Rico Form 482.0 2024
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3
- title: P.R. Laws tit. 13, § 30061 (c)
href: https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2-ingles/1-2011.pdf#page=33
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
- name: Not eligible, income below threshold
period: 2024
input:
pr_gradual_adjustment_eligibility: False
pr_net_taxable_income: 70_000
pr_exemptions: 4_000
state_code: PR
output:
pr_gradual_adjustment_amount: 0

- name: Amount lower than limit
period: 2024
input:
pr_gradual_adjustment_eligibility: True
pr_net_taxable_income: 501_000
pr_exemptions: 1_300
state_code: PR
output:
pr_gradual_adjustment_amount: 50

- name: Limit lower than amount
period: 2024
input:
pr_gradual_adjustment_eligibility: True
pr_net_taxable_income: 700_000
pr_exemptions: 1_000
state_code: PR
output:
pr_gradual_adjustment_amount: 9_225
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- name: Not eligible
period: 2024
input:
pr_net_taxable_income: 500_000
state_code: PR
output:
pr_gradual_adjustment_eligibility: False

- name: Eligible
period: 2024
input:
pr_net_taxable_income: 500_001
state_code: PR
output:
pr_gradual_adjustment_eligibility: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
- name: Lower bracket
period: 2024
input:
state_code: PR
pr_gross_income: 100_000
pr_tax: 2_000
pr_gradual_adjustment_amount: 0
output:
pr_tax_before_credits: 1_840

- name: Upper bracket
period: 2024
input:
state_code: PR
pr_gross_income: 100_001
pr_tax: 1_000
pr_gradual_adjustment_amount: 500
output:
pr_tax_before_credits: 1_425
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from policyengine_us.model_api import *


class pr_gradual_adjustment_amount(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico gradual adjustment amount"
documentation = (
"An additional amount added to tax amount for high income filers."
)
unit = USD
definition_period = YEAR
defined_for = "pr_gradual_adjustment_eligibility"
reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"

def formula(tax_unit, period, parameters):
p = parameters(period).gov.territories.pr.tax.income.gradual_adjustment
net_taxable_income = tax_unit("pr_net_taxable_income", period)
amount = (net_taxable_income - p.threshold) * p.rate
exemptions = tax_unit("pr_exemptions", period)
limit = p.adjustment_limit_basis + p.exemption_rate * exemptions

return min_(amount, limit)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from policyengine_us.model_api import *


class pr_gradual_adjustment_eligibility(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico gradual adjustment eligibility"
unit = USD
definition_period = YEAR
defined_for = StateCode.PR
reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"

def formula(tax_unit, period, parameters):
p = parameters(period).gov.territories.pr.tax.income.gradual_adjustment
net_taxable_income = tax_unit("pr_net_taxable_income", period)

return net_taxable_income > p.threshold
11 changes: 11 additions & 0 deletions policyengine_us/variables/gov/territories/pr/tax/income/pr_tax.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from policyengine_us.model_api import *


class pr_tax(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico tax"
unit = USD
definition_period = YEAR
defined_for = StateCode.PR
reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/"
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from policyengine_us.model_api import *


class pr_tax_before_credits(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico regular tax before credits"
unit = USD
definition_period = YEAR
defined_for = StateCode.PR
reference = "https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=19"

def formula(tax_unit, period, parameters):
p = parameters(period).gov.territories.pr.tax.income.regular_tax
gross_income = tax_unit("pr_gross_income", period)
total_normal_tax = add(
tax_unit, period, ["pr_tax", "pr_gradual_adjustment_amount"]
)

return total_normal_tax * p.percentage.calc(gross_income)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from policyengine_us.model_api import *


class pr_exemptions(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico exemptions"
definition_period = YEAR
unit = USD
reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/"

adds = "gov.territories.pr.tax.income.taxable_income.exemptions.sources"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from policyengine_us.model_api import *


class pr_net_taxable_income(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico net taxable income"
reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2"
unit = USD
definition_period = YEAR