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

Issue:
Alberta base personal credit
reference: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf


Discussion / hints:

Fix patch:
diff --git a/changelog_entry.yaml b/changelog_entry.yaml
index e69de29bb..84a1bcef2 100644
--- a/changelog_entry.yaml
+++ b/changelog_entry.yaml
@@ -0,0 +1,4 @@
+- bump: minor
+  changes:
+    added:
+    - Alberta basic personal amount.
diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/basic_personal_amount/amount.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/basic_personal_amount/amount.yaml
new file mode 100644
index 000000000..18dad74ef
--- /dev/null
+++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/basic_personal_amount/amount.yaml
@@ -0,0 +1,17 @@
+description: Alberta provides this basic personal amount. 
+values:
+  # Legal code defines $19,369.
+  # Section 44.2 defines indexing.
+  2022-01-01: 19_369
+  2023-01-01: 21_003
+metadata:
+  unit: currency-CAD
+  period: year
+  label: Alberta basic personal amount
+  reference:
+  - title: Alberta income tax personal credit (2022)
+    href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-22e.pdf#page=1
+  - title: Alberta income tax personal credit (2023)
+    href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1
+  - title: Alberta Personal Income Tax Act Division 3 Basic Personal Amount C
+    href: https://www.canlii.org/en/ab/laws/stat/rsa-2000-c-a-30/latest/rsa-2000-c-a-30.html
diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml
index 014aeef83..2583dbae4 100644
--- a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml
+++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml
@@ -5,6 +5,7 @@ values:
     - ab_disability_credit
     - ab_pension_credit
     - ab_spouse_and_common_law_partner_amount_credit
+    - ab_basic_personal_amount
 
 metadata:
   unit: list  
diff --git a/policyengine_canada/variables/gov/provinces/ab/tax/income/credits/basic_personal_amount/ab_basic_personal_amount.py b/policyengine_canada/variables/gov/provinces/ab/tax/income/credits/basic_personal_amount/ab_basic_personal_amount.py
new file mode 100644
index 000000000..ca188c763
--- /dev/null
+++ b/policyengine_canada/variables/gov/provinces/ab/tax/income/credits/basic_personal_amount/ab_basic_personal_amount.py
@@ -0,0 +1,16 @@
+from policyengine_canada.model_api import *
+
+
+class ab_basic_personal_amount(Variable):
+    value_type = float
+    entity = Person
+    label = "Alberta basic personal amount"
+    unit = CAD
+    definition_period = YEAR
+    reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf"
+    defined_for = ProvinceCode.AB
+
+    def formula(person, period, parameters):
+        return parameters(
+            period
+        ).gov.provinces.ab.tax.income.credits.basic_personal_amount.amount


Test patch:
diff --git a/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/basic_personal_amount/ab_basic_personal_amount.yaml b/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/basic_personal_amount/ab_basic_personal_amount.yaml
new file mode 100644
index 000000000..12f77b8a6
--- /dev/null
+++ b/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/basic_personal_amount/ab_basic_personal_amount.yaml
@@ -0,0 +1,13 @@
+- name: Alberta Basic Personal Amount (2022)
+  period: 2022
+  input:
+    province_code: AB
+  output:
+    ab_basic_personal_amount: 19_369
+  
+- name: Alberta Basic Personal Amount (2023)
+  period: 2023
+  input:
+    province_code: AB
+  output:
+    ab_basic_personal_amount: 21_003