diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..42e1f291a 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - British Columbia family benefit temporary enhanced monthly benefit. diff --git a/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/amount.yaml b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/amount.yaml new file mode 100644 index 000000000..826b16088 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/amount.yaml @@ -0,0 +1,13 @@ +description: British Columbia provides this max temporary enhanced benefit to to eligible family. +values: +# only for the period January 2023 to March 2023 + 2023-01-01: 58.33 # up to $58.33 monthly per child + 2023-04-01: 0 +metadata: + unit: currency-CAD + period: month + label: British Columbia max family benefit temporary enhancement amount + reference: + # this temporary enhancement is not mentioned in the B.C. Income Tax Act + - title: B.C. family benefit + href: https://www2.gov.bc.ca/gov/content/family-social-supports/affordability/family-benefit diff --git a/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/cap_month.yaml b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/cap_month.yaml new file mode 100644 index 000000000..ba1ca3bc3 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/cap_month.yaml @@ -0,0 +1,12 @@ +description: British Columbia caps months for temporary enhancement. +values: +# only for the period January 2023 to March 2023 + 2023-01-01: 3 +metadata: + unit: month + period: year + label: British Columbia caps months + reference: + # this temporary enhancement is not mentioned in the B.C. Income Tax Act + - title: B.C. family benefit + href: https://www2.gov.bc.ca/gov/content/family-social-supports/affordability/family-benefit diff --git a/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/income_threshold/income_threshold.yaml b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/income_threshold/income_threshold.yaml new file mode 100644 index 000000000..d235260d9 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/income_threshold/income_threshold.yaml @@ -0,0 +1,13 @@ +description: British Columbia provides this minimum temporary enhanced benefit to to eligible family, based on family net income. +values: +# only for the period January 2023 to March 2023 + 2023-01-01: 50 # up to $50 monthly per child + 2023-04-01: 0 +metadata: + unit: currency-CAD + period: month + label: British Columbia minimum family benefit temporary enhancement amount for middle range of family net income + reference: + # this temporary enhancement is not mentioned in the B.C. Income Tax Act + - title: B.C. family benefit + href: https://www2.gov.bc.ca/gov/content/family-social-supports/affordability/family-benefit diff --git a/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/phase_out/high.yaml b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/phase_out/high.yaml new file mode 100644 index 000000000..6404964c1 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/phase_out/high.yaml @@ -0,0 +1,21 @@ +description: British Columbia phases family benefit temporary enhancement amount out at this rate, based on high family net income. +brackets: + - threshold: + 2021-07-01: 0 + rate: + 2021-07-01: 0 + - threshold: + 2021-07-01: 82_578 + rate: + 2021-07-01: 0.0033 + +metadata: + type: marginal_rate + threshold_unit: currency-CAD + rate_unit: /1 + label: British Columbia phase out rate of high family net income # above $82_578 + reference: + # this temporary enhancement is not mentioned in the B.C. Income Tax Act + - title: B.C. family benefit + href: https://www2.gov.bc.ca/gov/content/family-social-supports/affordability/family-benefit + diff --git a/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/phase_out/middle.yaml b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/phase_out/middle.yaml new file mode 100644 index 000000000..ac5d9460a --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/bc/benefits/bcfb/temporary_enhancement/phase_out/middle.yaml @@ -0,0 +1,26 @@ +description: British Columbia phases family benefit temporary enhancement amount out at this rate, based on middle range of previous year family net income. +brackets: + - threshold: + 2021-07-01: 0 + rate: + 2021-07-01: 0 + - threshold: + 2021-07-01: 25_806 + rate: + 2021-07-01: 0.0033 + - threshold: + 2021-07-01: 82_578 + rate: + 2021-07-01: 0 + + +metadata: + type: marginal_rate + threshold_unit: currency-CAD + rate_unit: /1 + label: British Columbia phase out rate of middel range of family net income # from $25_806 to $82_578 + reference: + # this temporary enhancement is not mentioned in the B.C. Income Tax Act + - title: B.C. family benefit + href: https://www2.gov.bc.ca/gov/content/family-social-supports/affordability/family-benefit + diff --git a/policyengine_canada/tests/gov/provinces/bc/benefits/bcfb/temporary_enhancement/bc_family_benefit_temporary_enhancement.yaml b/policyengine_canada/tests/gov/provinces/bc/benefits/bcfb/temporary_enhancement/bc_family_benefit_temporary_enhancement.yaml new file mode 100644 index 000000000..803284417 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/bc/benefits/bcfb/temporary_enhancement/bc_family_benefit_temporary_enhancement.yaml @@ -0,0 +1,59 @@ +- name: Case 1, Temporary Enhancement with 1 Child and Low Family Net Income + period: 2023 + absolute_error_margin: 0.01 + input: + province_code: BC + bc_family_benefit_eligible_children: 1 + adjusted_family_net_income: 25_000 + output: + bc_family_benefit_temporary_enhancement: 174.99 + +- name: Case 2, Temporary Enhancement with 2 Children and Low Family Net Income + period: 2023 + input: + province_code: BC + bc_family_benefit_eligible_children: 2 + adjusted_family_net_income: 25_000 + output: + bc_family_benefit_temporary_enhancement: 349.98 + +- name: Case 3, Temporary Enhancement with 3 Children and Middle Family Net Income - Deductible + period: 2023 + absolute_error_margin: 0.01 + input: + province_code: BC + bc_family_benefit_eligible_children: 3 + adjusted_family_net_income: 30_000 + output: + bc_family_benefit_temporary_enhancement: 483.45 + + +- name: Case 4, Temporary Enhancement with 3 Children and Middle Family Net Income - Minimum Benefit + period: 2023 + absolute_error_margin: 0.01 + input: + province_code: BC + bc_family_benefit_eligible_children: 3 + adjusted_family_net_income: 82_000 + output: + bc_family_benefit_temporary_enhancement: 450 + +- name: Case 5, Temporary Enhancement with 4 Children and High Family Net Income - Deductible + period: 2023 + absolute_error_margin: 0.01 + input: + province_code: BC + bc_family_benefit_eligible_children: 4 + adjusted_family_net_income: 90_000 + output: + bc_family_benefit_temporary_enhancement: 502.03 + +- name: Case 6, Temporary Enhancement with 4 Children and High Family Net Income - Zero + period: 2023 + absolute_error_margin: 0.01 + input: + province_code: BC + bc_family_benefit_eligible_children: 4 + adjusted_family_net_income: 200_000 + output: + bc_family_benefit_temporary_enhancement: 0 diff --git a/policyengine_canada/variables/gov/provinces/bc/benefits/bcfb/temporary_enhancement/bc_family_benefit_temporary_enhancement.py b/policyengine_canada/variables/gov/provinces/bc/benefits/bcfb/temporary_enhancement/bc_family_benefit_temporary_enhancement.py new file mode 100644 index 000000000..ad3e1ddfb --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/bc/benefits/bcfb/temporary_enhancement/bc_family_benefit_temporary_enhancement.py @@ -0,0 +1,58 @@ +from policyengine_canada.model_api import * + + +class bc_family_benefit_temporary_enhancement(Variable): + value_type = float + entity = Household + label = "British Columbia family benefit temporary enhancement" + unit = CAD + definition_period = YEAR + defined_for = ProvinceCode.BC + reference = "https://www2.gov.bc.ca/gov/content/family-social-supports/affordability/family-benefit" + + def formula(household, period, parameters): + children = household("bc_family_benefit_eligible_children", period) + family_net_income = household("adjusted_family_net_income", period) + p = parameters( + period + ).gov.provinces.bc.benefits.bcfb.temporary_enhancement + months = min_(p.cap_month, MONTHS_IN_YEAR) + low_family_income = ( + family_net_income < p.phase_out.middle.thresholds[1] + ) + middle_family_income = ( + p.phase_out.middle.thresholds[1] + < family_net_income + < p.phase_out.middle.thresholds[2] + ) + high_family_income = ( + family_net_income > p.phase_out.middle.thresholds[2] + ) + phase_out_amount_middle_income = p.phase_out.middle.calc( + family_net_income + ) + phase_out_amount_high_income = p.phase_out.high.calc(family_net_income) + temporary_enhancement_low_family_income = p.amount * children * months + temporary_enhancement_middle_family_income = ( + max_( + p.amount * months - phase_out_amount_middle_income, + p.income_threshold.income_threshold * months, + ) + * children + ) + temporary_enhancement_high_family_income = ( + max_( + p.income_threshold.income_threshold * months + - phase_out_amount_high_income, + 0, + ) + * children + ) + return select( + [low_family_income, middle_family_income, high_family_income], + [ + temporary_enhancement_low_family_income, + temporary_enhancement_middle_family_income, + temporary_enhancement_high_family_income, + ], + )