From 6f94274a89763db14018c25af3e66d3af14d0efc Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Thu, 12 Oct 2023 22:22:53 +0000 Subject: [PATCH 01/12] Add para, var, test, and changelog. Test passed. --- changelog_entry.yaml | 4 +++ .../eligible_cal_percent.yaml | 9 +++++ .../other_than_eligible_cal_percent.yaml | 9 +++++ .../credits/sk_dividend_tax_credit.yaml | 8 +++++ .../sk_dividend_tax_credit.py | 34 +++++++++++++++++++ ...k_other_than_eligible_taxable_dividends.py | 11 ++++++ .../sk_total_taxable_dividends.py | 11 ++++++ 7 files changed, 86 insertions(+) create mode 100644 policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml create mode 100644 policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml create mode 100644 policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml create mode 100644 policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py create mode 100644 policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py create mode 100644 policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..a3ca50f3a 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Saskatchewan Dividend Tax Credit. diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml new file mode 100644 index 000000000..978af7336 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml @@ -0,0 +1,9 @@ +description: Saskatchewan applies this weight percentage on the eligible taxable amount of dividends in calculating the total dividend tax credit. +values: + 2022-01-01: 0.01695 +metadata: + unit: /1 + label: Saskatchewan eligible taxable amount of dividends' weight percentage + reference: + - title: 5008-D Worksheet SK428 - Saskatchewan 2022 + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf #page=3 diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml new file mode 100644 index 000000000..be1a250e0 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml @@ -0,0 +1,9 @@ +description: Saskatchewan applies this weight percentage on the other than eligible taxable amount of dividends in calculating the total dividend tax credit. +values: + 2022-01-01: 0.11 +metadata: + unit: /1 + label: Saskatchewan other than eligible taxable amount of dividends' weight percentage + reference: + - title: 5008-D Worksheet SK428 - Saskatchewan 2022 + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf #page=3 diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml new file mode 100644 index 000000000..6b29bd6f8 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -0,0 +1,8 @@ +- name: 2022 Saskatchewan Dividend Tax Credit + period: 2022 + input: + province_code: SK + sk_total_taxable_dividends: 15_000 + sk_other_than_eligible_taxable_dividends: 1_000 + output: + sk_dividend_tax_credit: 347.3 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py new file mode 100644 index 000000000..597cafb01 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -0,0 +1,34 @@ +from policyengine_canada.model_api import * + + +class sk_dividend_tax_credit(Variable): + value_type = float + entity = Person + label = "Saskatchewan Dividend Tax Credit" + unit = CAD + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" + defined_for = ProvinceCode.SK + + def formula(person, period, parameters): + p = parameters( + period + ).gov.provinces.sk.tax.income.credits.dividend_tax_credit + + taxable_dividends = person("sk_total_taxable_dividends", period) + other_than_eligible_taxable_dividends = person( + "sk_other_than_eligible_taxable_dividends", period + ) + + eligible_taxable_dividends_weight_percent = p.eligible_cal_percent + other_than_eligible_taxable_dividends_weight_percent = ( + p.other_than_eligible_cal_percent + ) + + return ( + (taxable_dividends - other_than_eligible_taxable_dividends) + * eligible_taxable_dividends_weight_percent + ) + ( + other_than_eligible_taxable_dividends + * other_than_eligible_taxable_dividends_weight_percent + ) diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py new file mode 100644 index 000000000..3e07cccc9 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py @@ -0,0 +1,11 @@ +from policyengine_canada.model_api import * + + +class sk_other_than_eligible_taxable_dividends(Variable): + value_type = float + entity = Person + label = "Saskatchewan Taxable Dividends (Other Than Eligible)" + unit = CAD + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" + defined_for = ProvinceCode.SK diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py new file mode 100644 index 000000000..78faa448d --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py @@ -0,0 +1,11 @@ +from policyengine_canada.model_api import * + + +class sk_total_taxable_dividends(Variable): + value_type = float + entity = Person + label = "Saskatchewan Taxable Dividends (eligible and other than eligible)" + unit = CAD + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" + defined_for = ProvinceCode.SK From d22afd081def905ef05678bf372a22016d9f1b7d Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Tue, 14 Nov 2023 23:37:33 +0000 Subject: [PATCH 02/12] Improve codes --- changelog_entry.yaml | 2 +- .../eligible_cal_percent.yaml | 3 +++ .../other_than_eligible_cal_percent.yaml | 3 +++ .../credits/sk_dividend_tax_credit.yaml | 24 ++++++++++++++++--- ..._than_eligible_taxable_dividend_income.py} | 4 ++-- .../sk_dividend_tax_credit.py | 15 ++++++------ ...ividends.py => taxable_dividend_income.py} | 4 ++-- 7 files changed, 39 insertions(+), 16 deletions(-) rename policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/{sk_total_taxable_dividends.py => other_than_eligible_taxable_dividend_income.py} (68%) rename policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/{sk_other_than_eligible_taxable_dividends.py => taxable_dividend_income.py} (69%) diff --git a/changelog_entry.yaml b/changelog_entry.yaml index a3ca50f3a..34420a3ea 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -1,4 +1,4 @@ - bump: minor changes: added: - - Saskatchewan Dividend Tax Credit. + - Saskatchewan dividend tax credit. diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml index 978af7336..8cc544510 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml @@ -3,7 +3,10 @@ values: 2022-01-01: 0.01695 metadata: unit: /1 + period: year label: Saskatchewan eligible taxable amount of dividends' weight percentage reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf #page=3 + - title: Sasktachewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. + href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf #page=31 diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml index be1a250e0..7d605de90 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml @@ -3,7 +3,10 @@ values: 2022-01-01: 0.11 metadata: unit: /1 + period: year label: Saskatchewan other than eligible taxable amount of dividends' weight percentage reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf #page=3 + - title: Sasktachewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. + href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf #page=31 diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml index 6b29bd6f8..afa0ba17f 100644 --- a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -1,8 +1,26 @@ -- name: 2022 Saskatchewan Dividend Tax Credit +- name: 2022 Saskatchewan Dividend Tax Credit Test 1 period: 2022 input: province_code: SK - sk_total_taxable_dividends: 15_000 - sk_other_than_eligible_taxable_dividends: 1_000 + taxable_dividend_income: 15_000 + other_than_eligible_taxable_dividend_income: 1_000 output: sk_dividend_tax_credit: 347.3 + +- name: 2022 Saskatchewan Dividend Tax Credit Test 2 + period: 2022 + input: + province_code: SK + taxable_dividend_income: 20_000 + other_than_eligible_taxable_dividend_income: 2_000 + output: + sk_dividend_tax_credit: 525.1 + +- name: 2022 Saskatchewan Dividend Tax Credit Test 3 + period: 2022 + input: + province_code: SK + taxable_dividend_income: 28_000 + other_than_eligible_taxable_dividend_income: 2_800 + output: + sk_dividend_tax_credit: 735.14 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/other_than_eligible_taxable_dividend_income.py similarity index 68% rename from policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py rename to policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/other_than_eligible_taxable_dividend_income.py index 78faa448d..bd41f4046 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_total_taxable_dividends.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/other_than_eligible_taxable_dividend_income.py @@ -1,10 +1,10 @@ from policyengine_canada.model_api import * -class sk_total_taxable_dividends(Variable): +class other_than_eligible_taxable_dividend_income(Variable): value_type = float entity = Person - label = "Saskatchewan Taxable Dividends (eligible and other than eligible)" + label = "Taxable Dividends (Other Than Eligible)" unit = CAD definition_period = YEAR reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index 597cafb01..35c50411c 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -15,9 +15,9 @@ def formula(person, period, parameters): period ).gov.provinces.sk.tax.income.credits.dividend_tax_credit - taxable_dividends = person("sk_total_taxable_dividends", period) + taxable_dividends = person("taxable_dividend_income", period) other_than_eligible_taxable_dividends = person( - "sk_other_than_eligible_taxable_dividends", period + "other_than_eligible_taxable_dividend_income", period ) eligible_taxable_dividends_weight_percent = p.eligible_cal_percent @@ -25,10 +25,9 @@ def formula(person, period, parameters): p.other_than_eligible_cal_percent ) + credits_on_eligible_taxable_dividends = (taxable_dividends - other_than_eligible_taxable_dividends) * eligible_taxable_dividends_weight_percent + credits_on_other_than_eligible_taxable_dividends = other_than_eligible_taxable_dividends * other_than_eligible_taxable_dividends_weight_percent + return ( - (taxable_dividends - other_than_eligible_taxable_dividends) - * eligible_taxable_dividends_weight_percent - ) + ( - other_than_eligible_taxable_dividends - * other_than_eligible_taxable_dividends_weight_percent - ) + credits_on_eligible_taxable_dividends + credits_on_other_than_eligible_taxable_dividends + ) \ No newline at end of file diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/taxable_dividend_income.py similarity index 69% rename from policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py rename to policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/taxable_dividend_income.py index 3e07cccc9..d3b35882f 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_other_than_eligible_taxable_dividends.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/taxable_dividend_income.py @@ -1,10 +1,10 @@ from policyengine_canada.model_api import * -class sk_other_than_eligible_taxable_dividends(Variable): +class taxable_dividend_income(Variable): value_type = float entity = Person - label = "Saskatchewan Taxable Dividends (Other Than Eligible)" + label = "Taxable Dividends (eligible and other than eligible)" unit = CAD definition_period = YEAR reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" From 8a64ce168f343453859109ac7ff7389703caa01c Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:45:51 +0000 Subject: [PATCH 03/12] Fix codes --- .../credits/dividend_tax_credit/eligible_cal_percent.yaml | 4 ++-- .../dividend_tax_credit/other_than_eligible_cal_percent.yaml | 4 ++-- .../credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py | 4 +++- .../other_than_eligible_taxable_dividend_income.py | 1 - .../income/individual}/taxable_dividend_income.py | 5 ++--- 5 files changed, 9 insertions(+), 9 deletions(-) rename policyengine_canada/variables/{gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit => household/income/individual}/other_than_eligible_taxable_dividend_income.py (91%) rename policyengine_canada/variables/{gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit => household/income/individual}/taxable_dividend_income.py (62%) diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml index 8cc544510..6cf172c10 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml @@ -7,6 +7,6 @@ metadata: label: Saskatchewan eligible taxable amount of dividends' weight percentage reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 - href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf #page=3 + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 - title: Sasktachewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. - href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf #page=31 + href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31 diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml index 7d605de90..96e9bb152 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml @@ -7,6 +7,6 @@ metadata: label: Saskatchewan other than eligible taxable amount of dividends' weight percentage reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 - href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf #page=3 + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 - title: Sasktachewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. - href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf #page=31 + href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index 35c50411c..6dbfcffe9 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -25,7 +25,9 @@ def formula(person, period, parameters): p.other_than_eligible_cal_percent ) - credits_on_eligible_taxable_dividends = (taxable_dividends - other_than_eligible_taxable_dividends) * eligible_taxable_dividends_weight_percent + reduced_taxable_dividends = max_(taxable_dividends - other_than_eligible_taxable_dividends, 0) + credits_on_eligible_taxable_dividends = reduced_taxable_dividends * eligible_taxable_dividends_weight_percent + credits_on_other_than_eligible_taxable_dividends = other_than_eligible_taxable_dividends * other_than_eligible_taxable_dividends_weight_percent return ( diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/other_than_eligible_taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/other_than_eligible_taxable_dividend_income.py similarity index 91% rename from policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/other_than_eligible_taxable_dividend_income.py rename to policyengine_canada/variables/household/income/individual/other_than_eligible_taxable_dividend_income.py index bd41f4046..31e02417c 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/other_than_eligible_taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/other_than_eligible_taxable_dividend_income.py @@ -8,4 +8,3 @@ class other_than_eligible_taxable_dividend_income(Variable): unit = CAD definition_period = YEAR reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" - defined_for = ProvinceCode.SK diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py similarity index 62% rename from policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/taxable_dividend_income.py rename to policyengine_canada/variables/household/income/individual/taxable_dividend_income.py index d3b35882f..bd372e24a 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py @@ -4,8 +4,7 @@ class taxable_dividend_income(Variable): value_type = float entity = Person - label = "Taxable Dividends (eligible and other than eligible)" + label = "Total taxable dividends (eligible and other than eligible)" unit = CAD definition_period = YEAR - reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" - defined_for = ProvinceCode.SK + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" \ No newline at end of file From e73a0792eaa7abccd47e658599c3be6e2b1737fa Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:48:15 +0000 Subject: [PATCH 04/12] make format --- .../sk_dividend_tax_credit.py | 21 +++++++++++++------ .../individual/taxable_dividend_income.py | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index 6dbfcffe9..b34382447 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -25,11 +25,20 @@ def formula(person, period, parameters): p.other_than_eligible_cal_percent ) - reduced_taxable_dividends = max_(taxable_dividends - other_than_eligible_taxable_dividends, 0) - credits_on_eligible_taxable_dividends = reduced_taxable_dividends * eligible_taxable_dividends_weight_percent - - credits_on_other_than_eligible_taxable_dividends = other_than_eligible_taxable_dividends * other_than_eligible_taxable_dividends_weight_percent + reduced_taxable_dividends = max_( + taxable_dividends - other_than_eligible_taxable_dividends, 0 + ) + credits_on_eligible_taxable_dividends = ( + reduced_taxable_dividends + * eligible_taxable_dividends_weight_percent + ) + + credits_on_other_than_eligible_taxable_dividends = ( + other_than_eligible_taxable_dividends + * other_than_eligible_taxable_dividends_weight_percent + ) return ( - credits_on_eligible_taxable_dividends + credits_on_other_than_eligible_taxable_dividends - ) \ No newline at end of file + credits_on_eligible_taxable_dividends + + credits_on_other_than_eligible_taxable_dividends + ) diff --git a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py index bd372e24a..16c2118c6 100644 --- a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py @@ -7,4 +7,4 @@ class taxable_dividend_income(Variable): label = "Total taxable dividends (eligible and other than eligible)" unit = CAD definition_period = YEAR - reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" \ No newline at end of file + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" From 6eafe647ccaeb875718862e47377da2b80443f8d Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Mon, 20 Nov 2023 20:47:33 +0000 Subject: [PATCH 05/12] Add test scenarios --- .../sk/tax/income/credits/sk_dividend_tax_credit.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml index afa0ba17f..0e84398d4 100644 --- a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -24,3 +24,12 @@ other_than_eligible_taxable_dividend_income: 2_800 output: sk_dividend_tax_credit: 735.14 + +- name: 2022 Saskatchewan Dividend Tax Credit Test 4 + period: 2022 + input: + province_code: SK + taxable_dividend_income: 30_000 + other_than_eligible_taxable_dividend_income: 3_800 + output: + sk_dividend_tax_credit: 862.09 From 2c00838400f9bffb136e42921214964d875db4da Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Wed, 22 Nov 2023 01:19:24 +0000 Subject: [PATCH 06/12] fix errors --- .../credits/dividend_tax_credit/eligible_cal_percent.yaml | 2 +- .../dividend_tax_credit/other_than_eligible_cal_percent.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml index 6cf172c10..f0918fd70 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml @@ -8,5 +8,5 @@ metadata: reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 - - title: Sasktachewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. + - title: Saskatchewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31 diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml index 96e9bb152..0ba6571dd 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml @@ -8,5 +8,5 @@ metadata: reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 - - title: Sasktachewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. + - title: Saskatchewan The Income Tax Act, 2000, Dividend credit, c25, s.13; 2020, c3-29*, s.3; 2022, c46, s.3. href: https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31 From a3e2102d63ff48f2dc3bbfe5252dbf60b722a62a Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Thu, 23 Nov 2023 22:38:27 +0000 Subject: [PATCH 07/12] Fix errors --- .../credits/dividend_tax_credit/eligible_cal_percent.yaml | 2 +- .../other_than_eligible_cal_percent.yaml | 2 +- .../sk/tax/income/credits/sk_dividend_tax_credit.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml index f0918fd70..dedbf2fda 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml @@ -1,6 +1,6 @@ description: Saskatchewan applies this weight percentage on the eligible taxable amount of dividends in calculating the total dividend tax credit. values: - 2022-01-01: 0.01695 + 2022-01-01: 0.11 metadata: unit: /1 period: year diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml index 0ba6571dd..3f305631b 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml @@ -1,6 +1,6 @@ description: Saskatchewan applies this weight percentage on the other than eligible taxable amount of dividends in calculating the total dividend tax credit. values: - 2022-01-01: 0.11 + 2022-01-01: 0.01695 metadata: unit: /1 period: year diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml index 0e84398d4..5f5f7d511 100644 --- a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -5,7 +5,7 @@ taxable_dividend_income: 15_000 other_than_eligible_taxable_dividend_income: 1_000 output: - sk_dividend_tax_credit: 347.3 + sk_dividend_tax_credit: 1556.95 - name: 2022 Saskatchewan Dividend Tax Credit Test 2 period: 2022 @@ -14,7 +14,7 @@ taxable_dividend_income: 20_000 other_than_eligible_taxable_dividend_income: 2_000 output: - sk_dividend_tax_credit: 525.1 + sk_dividend_tax_credit: 2013.9 - name: 2022 Saskatchewan Dividend Tax Credit Test 3 period: 2022 @@ -23,7 +23,7 @@ taxable_dividend_income: 28_000 other_than_eligible_taxable_dividend_income: 2_800 output: - sk_dividend_tax_credit: 735.14 + sk_dividend_tax_credit: 2819.46 - name: 2022 Saskatchewan Dividend Tax Credit Test 4 period: 2022 @@ -32,4 +32,4 @@ taxable_dividend_income: 30_000 other_than_eligible_taxable_dividend_income: 3_800 output: - sk_dividend_tax_credit: 862.09 + sk_dividend_tax_credit: 2946.41 From d6f2e1b43367648f66a482a3e26d2cf940aca721 Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Tue, 28 Nov 2023 01:28:34 +0000 Subject: [PATCH 08/12] Improve codes --- .../eligible.yaml} | 4 ++-- .../other_than_eligible.yaml} | 4 ++-- .../sk_dividend_tax_credit.py | 13 +++---------- 3 files changed, 7 insertions(+), 14 deletions(-) rename policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/{eligible_cal_percent.yaml => fraction/eligible.yaml} (65%) rename policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/{other_than_eligible_cal_percent.yaml => fraction/other_than_eligible.yaml} (63%) diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml similarity index 65% rename from policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml rename to policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml index dedbf2fda..5d7d6087a 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml @@ -1,10 +1,10 @@ -description: Saskatchewan applies this weight percentage on the eligible taxable amount of dividends in calculating the total dividend tax credit. +description: Saskatchewan multiplies the eligible taxable amount of dividends under the total dividend tax credit by this amount. values: 2022-01-01: 0.11 metadata: unit: /1 period: year - label: Saskatchewan eligible taxable amount of dividends' weight percentage + label: Saskatchewan dividend tax credit eligible dividends fraction reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/other_than_eligible.yaml similarity index 63% rename from policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml rename to policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/other_than_eligible.yaml index 3f305631b..25b209db3 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/other_than_eligible_cal_percent.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/other_than_eligible.yaml @@ -1,10 +1,10 @@ -description: Saskatchewan applies this weight percentage on the other than eligible taxable amount of dividends in calculating the total dividend tax credit. +description: Saskatchewan multiplies the other than eligible taxable amount of dividends under the total dividend tax credit by this amount. values: 2022-01-01: 0.01695 metadata: unit: /1 period: year - label: Saskatchewan other than eligible taxable amount of dividends' weight percentage + label: Saskatchewan dividend tax credit other than eligible dividends fraction reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index b34382447..e5887d550 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -13,29 +13,22 @@ class sk_dividend_tax_credit(Variable): def formula(person, period, parameters): p = parameters( period - ).gov.provinces.sk.tax.income.credits.dividend_tax_credit + ).gov.provinces.sk.tax.income.credits.dividend_tax_credit.fraction taxable_dividends = person("taxable_dividend_income", period) other_than_eligible_taxable_dividends = person( "other_than_eligible_taxable_dividend_income", period ) - eligible_taxable_dividends_weight_percent = p.eligible_cal_percent - other_than_eligible_taxable_dividends_weight_percent = ( - p.other_than_eligible_cal_percent - ) - reduced_taxable_dividends = max_( taxable_dividends - other_than_eligible_taxable_dividends, 0 ) credits_on_eligible_taxable_dividends = ( - reduced_taxable_dividends - * eligible_taxable_dividends_weight_percent + reduced_taxable_dividends * p.eligible ) credits_on_other_than_eligible_taxable_dividends = ( - other_than_eligible_taxable_dividends - * other_than_eligible_taxable_dividends_weight_percent + other_than_eligible_taxable_dividends * p.other_than_eligible ) return ( From 4e4d2554972b7b8a474e2b95ca36cd68d35bd0ec Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Fri, 8 Dec 2023 05:58:17 +0000 Subject: [PATCH 09/12] Saskatchewan Dividend Tax Credit Fixes #456 --- .../sk/tax/income/credits/sk_dividend_tax_credit.yaml | 8 ++++---- .../sk_dividend_tax_credit/sk_dividend_tax_credit.py | 2 +- ...e_dividend_income.py => tax_exempt_dividend_income.py} | 4 ++-- .../income/individual/taxable_dividend_income.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename policyengine_canada/variables/household/income/individual/{other_than_eligible_taxable_dividend_income.py => tax_exempt_dividend_income.py} (53%) diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml index 5f5f7d511..31dd9ece1 100644 --- a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -3,7 +3,7 @@ input: province_code: SK taxable_dividend_income: 15_000 - other_than_eligible_taxable_dividend_income: 1_000 + tax_exempt_dividend_income: 1_000 output: sk_dividend_tax_credit: 1556.95 @@ -12,7 +12,7 @@ input: province_code: SK taxable_dividend_income: 20_000 - other_than_eligible_taxable_dividend_income: 2_000 + tax_exempt_dividend_income: 2_000 output: sk_dividend_tax_credit: 2013.9 @@ -21,7 +21,7 @@ input: province_code: SK taxable_dividend_income: 28_000 - other_than_eligible_taxable_dividend_income: 2_800 + tax_exempt_dividend_income: 2_800 output: sk_dividend_tax_credit: 2819.46 @@ -30,6 +30,6 @@ input: province_code: SK taxable_dividend_income: 30_000 - other_than_eligible_taxable_dividend_income: 3_800 + tax_exempt_dividend_income: 3_800 output: sk_dividend_tax_credit: 2946.41 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index e5887d550..77121f507 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -17,7 +17,7 @@ def formula(person, period, parameters): taxable_dividends = person("taxable_dividend_income", period) other_than_eligible_taxable_dividends = person( - "other_than_eligible_taxable_dividend_income", period + "tax_exempt_dividend_income", period ) reduced_taxable_dividends = max_( diff --git a/policyengine_canada/variables/household/income/individual/other_than_eligible_taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py similarity index 53% rename from policyengine_canada/variables/household/income/individual/other_than_eligible_taxable_dividend_income.py rename to policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py index 31e02417c..fd9bc3320 100644 --- a/policyengine_canada/variables/household/income/individual/other_than_eligible_taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py @@ -1,10 +1,10 @@ from policyengine_canada.model_api import * -class other_than_eligible_taxable_dividend_income(Variable): +class tax_exempt_dividend_income(Variable): value_type = float entity = Person label = "Taxable Dividends (Other Than Eligible)" unit = CAD definition_period = YEAR - reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" + reference = "https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31" diff --git a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py index 16c2118c6..78e7e8709 100644 --- a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py @@ -7,4 +7,4 @@ class taxable_dividend_income(Variable): label = "Total taxable dividends (eligible and other than eligible)" unit = CAD definition_period = YEAR - reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3" + reference = "https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31" From cbe404681efbe47b8d72688f61045f8b139d5e26 Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Thu, 14 Dec 2023 21:43:54 +0000 Subject: [PATCH 10/12] Change reference source --- .../household/income/individual/tax_exempt_dividend_income.py | 2 +- .../household/income/individual/taxable_dividend_income.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py b/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py index fd9bc3320..6c362c69c 100644 --- a/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py @@ -7,4 +7,4 @@ class tax_exempt_dividend_income(Variable): label = "Taxable Dividends (Other Than Eligible)" unit = CAD definition_period = YEAR - reference = "https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31" + reference = "https://www.canada.ca/en/revenue-agency/services/tax/individuals/topics/about-your-tax-return/tax-return/completing-a-tax-return/deductions-credits-expenses/line-40425-federal-dividend-tax-credit.html" diff --git a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py index 78e7e8709..571cc405b 100644 --- a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py @@ -7,4 +7,4 @@ class taxable_dividend_income(Variable): label = "Total taxable dividends (eligible and other than eligible)" unit = CAD definition_period = YEAR - reference = "https://pubsaskdev.blob.core.windows.net/pubsask-prod/806/I2-01.pdf#page=31" + reference = "https://www.canada.ca/en/revenue-agency/services/tax/individuals/topics/about-your-tax-return/tax-return/completing-a-tax-return/deductions-credits-expenses/line-40425-federal-dividend-tax-credit.html" From 727b0023971d8647fc36a808babe122f0a4d22e3 Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Thu, 21 Dec 2023 23:04:47 +0000 Subject: [PATCH 11/12] improve --- .../dividend_tax_credit/fraction/eligible.yaml | 2 +- .../income/credits/sk_dividend_tax_credit.yaml | 16 ++++++++-------- .../sk_dividend_tax_credit.py | 18 +++++++++--------- ...d_income.py => eligible_dividend_income.py} | 2 +- ... => other_than_eligible_dividend_income.py} | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) rename policyengine_canada/variables/household/income/individual/{taxable_dividend_income.py => eligible_dividend_income.py} (91%) rename policyengine_canada/variables/household/income/individual/{tax_exempt_dividend_income.py => other_than_eligible_dividend_income.py} (88%) diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml index 5d7d6087a..f974cccca 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/eligible.yaml @@ -1,4 +1,4 @@ -description: Saskatchewan multiplies the eligible taxable amount of dividends under the total dividend tax credit by this amount. +description: Saskatchewan multiplies the eligible dividend amount under the total dividend tax credit by this amount. values: 2022-01-01: 0.11 metadata: diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml index 31dd9ece1..1c6b5359f 100644 --- a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -2,8 +2,8 @@ period: 2022 input: province_code: SK - taxable_dividend_income: 15_000 - tax_exempt_dividend_income: 1_000 + eligible_dividend_income: 15_000 + other_than_eligible_dividend_income: 1_000 output: sk_dividend_tax_credit: 1556.95 @@ -11,8 +11,8 @@ period: 2022 input: province_code: SK - taxable_dividend_income: 20_000 - tax_exempt_dividend_income: 2_000 + eligible_dividend_income: 20_000 + other_than_eligible_dividend_income: 2_000 output: sk_dividend_tax_credit: 2013.9 @@ -20,8 +20,8 @@ period: 2022 input: province_code: SK - taxable_dividend_income: 28_000 - tax_exempt_dividend_income: 2_800 + eligible_dividend_income: 28_000 + other_than_eligible_dividend_income: 2_800 output: sk_dividend_tax_credit: 2819.46 @@ -29,7 +29,7 @@ period: 2022 input: province_code: SK - taxable_dividend_income: 30_000 - tax_exempt_dividend_income: 3_800 + eligible_dividend_income: 30_000 + other_than_eligible_dividend_income: 3_800 output: sk_dividend_tax_credit: 2946.41 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index 77121f507..6916eaed8 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -15,23 +15,23 @@ def formula(person, period, parameters): period ).gov.provinces.sk.tax.income.credits.dividend_tax_credit.fraction - taxable_dividends = person("taxable_dividend_income", period) + eligible_dividend_income = person("eligible_dividend_income", period) other_than_eligible_taxable_dividends = person( - "tax_exempt_dividend_income", period + "other_than_eligible_dividend_income", period ) - reduced_taxable_dividends = max_( - taxable_dividends - other_than_eligible_taxable_dividends, 0 + reduced_eligible_dividend_income = max_( + eligible_dividend_income - other_than_eligible_taxable_dividends, 0 ) - credits_on_eligible_taxable_dividends = ( - reduced_taxable_dividends * p.eligible + credits_on_eligible_dividend_income = ( + reduced_eligible_dividend_income * p.eligible ) - credits_on_other_than_eligible_taxable_dividends = ( + credits_on_other_than_eligible_dividend_income = ( other_than_eligible_taxable_dividends * p.other_than_eligible ) return ( - credits_on_eligible_taxable_dividends - + credits_on_other_than_eligible_taxable_dividends + credits_on_eligible_dividend_income + + credits_on_other_than_eligible_dividend_income ) diff --git a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py b/policyengine_canada/variables/household/income/individual/eligible_dividend_income.py similarity index 91% rename from policyengine_canada/variables/household/income/individual/taxable_dividend_income.py rename to policyengine_canada/variables/household/income/individual/eligible_dividend_income.py index 571cc405b..049ce5840 100644 --- a/policyengine_canada/variables/household/income/individual/taxable_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/eligible_dividend_income.py @@ -1,7 +1,7 @@ from policyengine_canada.model_api import * -class taxable_dividend_income(Variable): +class eligible_dividend_income(Variable): value_type = float entity = Person label = "Total taxable dividends (eligible and other than eligible)" diff --git a/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py b/policyengine_canada/variables/household/income/individual/other_than_eligible_dividend_income.py similarity index 88% rename from policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py rename to policyengine_canada/variables/household/income/individual/other_than_eligible_dividend_income.py index 6c362c69c..b7751fe8f 100644 --- a/policyengine_canada/variables/household/income/individual/tax_exempt_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/other_than_eligible_dividend_income.py @@ -1,7 +1,7 @@ from policyengine_canada.model_api import * -class tax_exempt_dividend_income(Variable): +class other_than_eligible_dividend_income(Variable): value_type = float entity = Person label = "Taxable Dividends (Other Than Eligible)" From 8063c20e3446c40e3bd9a7220b53acd4419a25bf Mon Sep 17 00:00:00 2001 From: Yaohhhh <128541260+Yaohhhh@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:31:19 +0000 Subject: [PATCH 12/12] Improve --- .../{other_than_eligible.yaml => non_eligible.yaml} | 4 ++-- .../tax/income/credits/sk_dividend_tax_credit.yaml | 8 ++++---- .../sk_dividend_tax_credit/sk_dividend_tax_credit.py | 12 ++++++------ ...end_income.py => non_eligible_dividend_income.py} | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) rename policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/{other_than_eligible.yaml => non_eligible.yaml} (65%) rename policyengine_canada/variables/household/income/individual/{other_than_eligible_dividend_income.py => non_eligible_dividend_income.py} (76%) diff --git a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/other_than_eligible.yaml b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/non_eligible.yaml similarity index 65% rename from policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/other_than_eligible.yaml rename to policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/non_eligible.yaml index 25b209db3..a72573a21 100644 --- a/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/other_than_eligible.yaml +++ b/policyengine_canada/parameters/gov/provinces/sk/tax/income/credits/dividend_tax_credit/fraction/non_eligible.yaml @@ -1,10 +1,10 @@ -description: Saskatchewan multiplies the other than eligible taxable amount of dividends under the total dividend tax credit by this amount. +description: Saskatchewan multiplies the non-eligible taxable amount of dividends under the total dividend tax credit by this amount. values: 2022-01-01: 0.01695 metadata: unit: /1 period: year - label: Saskatchewan dividend tax credit other than eligible dividends fraction + label: Saskatchewan dividend tax credit non-eligible dividends fraction reference: - title: 5008-D Worksheet SK428 - Saskatchewan 2022 href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5008-d/5008-d-22e.pdf#page=3 diff --git a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml index 1c6b5359f..bee3906a9 100644 --- a/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml +++ b/policyengine_canada/tests/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit.yaml @@ -3,7 +3,7 @@ input: province_code: SK eligible_dividend_income: 15_000 - other_than_eligible_dividend_income: 1_000 + non_eligible_dividend_income: 1_000 output: sk_dividend_tax_credit: 1556.95 @@ -12,7 +12,7 @@ input: province_code: SK eligible_dividend_income: 20_000 - other_than_eligible_dividend_income: 2_000 + non_eligible_dividend_income: 2_000 output: sk_dividend_tax_credit: 2013.9 @@ -21,7 +21,7 @@ input: province_code: SK eligible_dividend_income: 28_000 - other_than_eligible_dividend_income: 2_800 + non_eligible_dividend_income: 2_800 output: sk_dividend_tax_credit: 2819.46 @@ -30,6 +30,6 @@ input: province_code: SK eligible_dividend_income: 30_000 - other_than_eligible_dividend_income: 3_800 + non_eligible_dividend_income: 3_800 output: sk_dividend_tax_credit: 2946.41 diff --git a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py index 6916eaed8..027995dc2 100644 --- a/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py +++ b/policyengine_canada/variables/gov/provinces/sk/tax/income/credits/sk_dividend_tax_credit/sk_dividend_tax_credit.py @@ -16,22 +16,22 @@ def formula(person, period, parameters): ).gov.provinces.sk.tax.income.credits.dividend_tax_credit.fraction eligible_dividend_income = person("eligible_dividend_income", period) - other_than_eligible_taxable_dividends = person( - "other_than_eligible_dividend_income", period + non_eligible_taxable_dividends = person( + "non_eligible_dividend_income", period ) reduced_eligible_dividend_income = max_( - eligible_dividend_income - other_than_eligible_taxable_dividends, 0 + eligible_dividend_income - non_eligible_taxable_dividends, 0 ) credits_on_eligible_dividend_income = ( reduced_eligible_dividend_income * p.eligible ) - credits_on_other_than_eligible_dividend_income = ( - other_than_eligible_taxable_dividends * p.other_than_eligible + credits_on_non_eligible_dividend_income = ( + non_eligible_taxable_dividends * p.non_eligible ) return ( credits_on_eligible_dividend_income - + credits_on_other_than_eligible_dividend_income + + credits_on_non_eligible_dividend_income ) diff --git a/policyengine_canada/variables/household/income/individual/other_than_eligible_dividend_income.py b/policyengine_canada/variables/household/income/individual/non_eligible_dividend_income.py similarity index 76% rename from policyengine_canada/variables/household/income/individual/other_than_eligible_dividend_income.py rename to policyengine_canada/variables/household/income/individual/non_eligible_dividend_income.py index b7751fe8f..187b13e92 100644 --- a/policyengine_canada/variables/household/income/individual/other_than_eligible_dividend_income.py +++ b/policyengine_canada/variables/household/income/individual/non_eligible_dividend_income.py @@ -1,10 +1,10 @@ from policyengine_canada.model_api import * -class other_than_eligible_dividend_income(Variable): +class non_eligible_dividend_income(Variable): value_type = float entity = Person - label = "Taxable Dividends (Other Than Eligible)" + label = "Taxable Dividends (Non-Eligible)" unit = CAD definition_period = YEAR reference = "https://www.canada.ca/en/revenue-agency/services/tax/individuals/topics/about-your-tax-return/tax-return/completing-a-tax-return/deductions-credits-expenses/line-40425-federal-dividend-tax-credit.html"