From 76750a779370bef1fca796d9c4fbffcd411f2b9c Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Fri, 14 Jul 2023 17:09:21 +0000 Subject: [PATCH 1/8] Quebec Basic Personal Amount Fixes #396 --- changelog_entry.yaml | 4 ++++ .../tax/income/credits/basic_personal_amount.yaml | 13 +++++++++++++ .../tax/income/credits/qc_basic_personal_amount.py | 13 +++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml create mode 100644 policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..ef7772c43 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Quebec basic personal amount. diff --git a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml new file mode 100644 index 000000000..dafcabd98 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml @@ -0,0 +1,13 @@ +description: Quebec provides the this Basic Personal Amount. +values: + 2022-01-01: 16_143 +metadata: + unit: currency-CAD + period: year + label: Quebec Basic Personal Amount + reference: + - title: Quebec 2022 Income Tax Return - Non-refundable tax credits + href: https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf + - title: Revenu Quebec – Basic Personal Amount (Line 350) + href: https://www.revenuquebec.ca/en/citizens/income-tax-return/completing-your-income-tax-return/how-to-complete-your-income-tax-return/line-by-line-help/350-to-398-1-non-refundable-tax-credits/line-350/ + diff --git a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py new file mode 100644 index 000000000..595cca250 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py @@ -0,0 +1,13 @@ +from policyengine_canada.model_api import * + + +class qc_basic_personal_amount(Variable): + value_type = float + entity = Person + label = "Quebec basic personal amount" + unit = CAD + definition_period = YEAR + defined_for = ProvinceCode.QC + reference = "https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf" + + adds = "gov.provinces.qc.tax.income.credits.basic_personal_amount" From 787b66ea7a3f0aa6e9601bc98f6f3f43cb52c513 Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Thu, 20 Jul 2023 21:39:44 +0000 Subject: [PATCH 2/8] return a parameter value --- .../qc/tax/income/credits/qc_basic_personal_amount.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py index 595cca250..9ea13e0c8 100644 --- a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py +++ b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py @@ -10,4 +10,7 @@ class qc_basic_personal_amount(Variable): defined_for = ProvinceCode.QC reference = "https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf" - adds = "gov.provinces.qc.tax.income.credits.basic_personal_amount" + def formula(household, period, parameters): + p = parameters(period).gov.provinces.qc.tax.income.credits + + return p.basic_personal_amount From 38a036618a59a2514684b1a981a8da8279c38a93 Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Mon, 31 Jul 2023 19:15:01 +0000 Subject: [PATCH 3/8] Quebec Basic Personal Amount Fixes #396 --- .../qc/tax/income/credits/qc_basic_personal_amount.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py index 9ea13e0c8..d4b9c1592 100644 --- a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py +++ b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py @@ -8,9 +8,11 @@ class qc_basic_personal_amount(Variable): unit = CAD definition_period = YEAR defined_for = ProvinceCode.QC - reference = "https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf" + reference = ( + "https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf", + "https://www.revenuquebec.ca/en/citizens/income-tax-return/completing-your-income-tax-return/how-to-complete-your-income-tax-return/line-by-line-help/350-to-398-1-non-refundable-tax-credits/line-350/", + ) def formula(household, period, parameters): p = parameters(period).gov.provinces.qc.tax.income.credits - return p.basic_personal_amount From 0e18986bdaa7e521ac763fcb73c68ba5876d362f Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Thu, 3 Aug 2023 20:09:19 +0000 Subject: [PATCH 4/8] check for household head --- .../income/credits/qc_basic_personal_amount.yaml | 15 +++++++++++++++ .../income/credits/qc_basic_personal_amount.py | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml diff --git a/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml b/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml new file mode 100644 index 000000000..aff97b83e --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml @@ -0,0 +1,15 @@ +- name: Quebec basic personal amount for household head + period: 2022 + input: + province_code: QC + is_head: True + output: + qc_basic_personal_amount: 16_143 + +- name: Quebec basic personal amount for non-head of household individuals + period: 2022 + input: + province_code: QC + is_head: False + output: + qc_basic_personal_amount: 0 diff --git a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py index d4b9c1592..a825caa69 100644 --- a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py +++ b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py @@ -13,6 +13,7 @@ class qc_basic_personal_amount(Variable): "https://www.revenuquebec.ca/en/citizens/income-tax-return/completing-your-income-tax-return/how-to-complete-your-income-tax-return/line-by-line-help/350-to-398-1-non-refundable-tax-credits/line-350/", ) - def formula(household, period, parameters): + def formula(person, period, parameters): p = parameters(period).gov.provinces.qc.tax.income.credits - return p.basic_personal_amount + head = person("is_head", period) + return head * p.basic_personal_amount From a29c341375b58000d9aa54a4491b8ab542171ed1 Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Fri, 4 Aug 2023 00:01:52 +0000 Subject: [PATCH 5/8] resolved conversation --- .../qc/tax/income/credits/basic_personal_amount.yaml | 2 +- .../qc/tax/income/credits/qc_basic_personal_amount.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml index dafcabd98..3ef0f46a9 100644 --- a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml +++ b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml @@ -1,4 +1,4 @@ -description: Quebec provides the this Basic Personal Amount. +description: Quebec provides this Basic Personal Amount. values: 2022-01-01: 16_143 metadata: diff --git a/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml b/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml index aff97b83e..c73ca8546 100644 --- a/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml +++ b/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml @@ -2,7 +2,7 @@ period: 2022 input: province_code: QC - is_head: True + is_head: true output: qc_basic_personal_amount: 16_143 @@ -10,6 +10,6 @@ period: 2022 input: province_code: QC - is_head: False + is_head: false output: qc_basic_personal_amount: 0 From 08a58e2c7c5fd9b5454a12ddadb93235ec766b09 Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Tue, 8 Aug 2023 15:46:45 +0000 Subject: [PATCH 6/8] remove is_head --- .../qc/tax/income/credits/basic_personal_amount.yaml | 4 ++-- .../tax/income/credits/qc_basic_personal_amount.yaml | 11 +---------- .../qc/tax/income/credits/qc_basic_personal_amount.py | 3 +-- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml index 3ef0f46a9..fe2391dd7 100644 --- a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml +++ b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml @@ -6,8 +6,8 @@ metadata: period: year label: Quebec Basic Personal Amount reference: - - title: Quebec 2022 Income Tax Return - Non-refundable tax credits - href: https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf + - title: Quebec 2022 Income Tax Return - Non-refundable tax credits - Line 350 + href: https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf#page=3 - title: Revenu Quebec – Basic Personal Amount (Line 350) href: https://www.revenuquebec.ca/en/citizens/income-tax-return/completing-your-income-tax-return/how-to-complete-your-income-tax-return/line-by-line-help/350-to-398-1-non-refundable-tax-credits/line-350/ diff --git a/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml b/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml index c73ca8546..695fa638a 100644 --- a/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml +++ b/policyengine_canada/tests/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.yaml @@ -1,15 +1,6 @@ -- name: Quebec basic personal amount for household head +- name: Quebec basic personal amount period: 2022 input: province_code: QC - is_head: true output: qc_basic_personal_amount: 16_143 - -- name: Quebec basic personal amount for non-head of household individuals - period: 2022 - input: - province_code: QC - is_head: false - output: - qc_basic_personal_amount: 0 diff --git a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py index a825caa69..ab9fa89f3 100644 --- a/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py +++ b/policyengine_canada/variables/gov/provinces/qc/tax/income/credits/qc_basic_personal_amount.py @@ -15,5 +15,4 @@ class qc_basic_personal_amount(Variable): def formula(person, period, parameters): p = parameters(period).gov.provinces.qc.tax.income.credits - head = person("is_head", period) - return head * p.basic_personal_amount + return p.basic_personal_amount From c919d6dfc8db2e0599b1e2dc0b4e097a9c7e25d1 Mon Sep 17 00:00:00 2001 From: Kingsley Yang <87620347+Shinuing@users.noreply.github.com> Date: Wed, 9 Aug 2023 15:00:51 +0000 Subject: [PATCH 7/8] add legal reference --- .../provinces/qc/tax/income/credits/basic_personal_amount.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml index fe2391dd7..bb5e7f080 100644 --- a/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml +++ b/policyengine_canada/parameters/gov/provinces/qc/tax/income/credits/basic_personal_amount.yaml @@ -10,4 +10,7 @@ metadata: href: https://www.revenuquebec.ca/documents/en/formulaires/tp/2022-12/TP-1.D-V%282022-12%29.pdf#page=3 - title: Revenu Quebec – Basic Personal Amount (Line 350) href: https://www.revenuquebec.ca/en/citizens/income-tax-return/completing-your-income-tax-return/how-to-complete-your-income-tax-return/line-by-line-help/350-to-398-1-non-refundable-tax-credits/line-350/ + - title: Taxation Act(CQLR c I-3), Part I, Book V, Title I, Chapter I.0.1, 752.0.0.1 + href: https://www.legisquebec.gouv.qc.ca/en/document/cs/I-3?langCont=fr#se:752_0_0_1 + # $14,890 in the legal reference, increased due to the inflation adjustments From 2f41c6e66d4739a686a2bebed0640b7757a2cc44 Mon Sep 17 00:00:00 2001 From: "Github Actions[bot]" Date: Thu, 10 Aug 2023 01:36:57 +0000 Subject: [PATCH 8/8] Update PolicyEngine Canada --- CHANGELOG.md | 7 +++++++ changelog.yaml | 5 +++++ changelog_entry.yaml | 4 ---- setup.py | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 683e690a5..8e8c4eba8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.75.0] - 2023-08-10 01:36:53 + +### Added + +- Quebec basic personal amount. + ## [0.74.0] - 2023-08-10 01:10:48 ### Added @@ -576,6 +582,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 +[0.75.0]: https://github.com/PolicyEngine/policyengine-canada/compare/0.74.0...0.75.0 [0.74.0]: https://github.com/PolicyEngine/policyengine-canada/compare/0.73.0...0.74.0 [0.73.0]: https://github.com/PolicyEngine/policyengine-canada/compare/0.72.0...0.73.0 [0.72.0]: https://github.com/PolicyEngine/policyengine-canada/compare/0.71.0...0.72.0 diff --git a/changelog.yaml b/changelog.yaml index e03f48d0b..a239a91b1 100644 --- a/changelog.yaml +++ b/changelog.yaml @@ -471,3 +471,8 @@ added: - Quebec family allowance tax credit. date: 2023-08-10 01:10:48 +- bump: minor + changes: + added: + - Quebec basic personal amount. + date: 2023-08-10 01:36:53 diff --git a/changelog_entry.yaml b/changelog_entry.yaml index ef7772c43..e69de29bb 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -1,4 +0,0 @@ -- bump: minor - changes: - added: - - Quebec basic personal amount. diff --git a/setup.py b/setup.py index 40386b258..48e697161 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,7 @@ setup( name="policyengine-canada", - version="0.74.0", + version="0.75.0", author="PolicyEngine", author_email="hello@policyengine.org", classifiers=[