Skip to content
Open
Show file tree
Hide file tree
Changes from all 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_normal_tax: 2_000
pr_gradual_adjustment_amount: 0
output:
pr_regular_tax_before_credits: 1_840

- name: Upper bracket
period: 2024
input:
state_code: PR
pr_gross_income: 100_001
pr_normal_tax: 1_000
pr_gradual_adjustment_amount: 500
output:
pr_regular_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
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from policyengine_us.model_api import *


class pr_normal_tax(Variable):
value_type = float
entity = TaxUnit
label = "Puerto Rico normal 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_regular_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_normal_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