diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..4850f491c 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,5 @@ +- bump: minor + changes: + added: + - Renaming variables to lowercase. + - Extending the use of "p" for "parameter" in variable formulas. \ No newline at end of file diff --git a/policyengine_uk/parameters/gov/dwp/ESA/README.md b/policyengine_uk/parameters/gov/dwp/esa/README.md similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/README.md rename to policyengine_uk/parameters/gov/dwp/esa/README.md diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/README.md b/policyengine_uk/parameters/gov/dwp/esa/income/README.md similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/README.md rename to policyengine_uk/parameters/gov/dwp/esa/income/README.md diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/amount_18_24.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/amount_18_24.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/amount_18_24.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/amount_18_24.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/amount_over_25.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/amount_over_25.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/amount_over_25.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/amount_over_25.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/couple.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/couple.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/couple.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/couple.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/earn_disregard.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/earn_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/earn_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/earn_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/income_disregard_couple.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/income_disregard_couple.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/income_disregard_couple.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/income_disregard_couple.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/income_disregard_lone_parent.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/income_disregard_lone_parent.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/income_disregard_lone_parent.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/income_disregard_lone_parent.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/income_disregard_single.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/income_disregard_single.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/income_disregard_single.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/income_disregard_single.yaml diff --git a/policyengine_uk/parameters/gov/dwp/ESA/income/pension_disregard.yaml b/policyengine_uk/parameters/gov/dwp/esa/income/pension_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/ESA/income/pension_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/esa/income/pension_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/IIDB/README.md b/policyengine_uk/parameters/gov/dwp/iidb/README.md similarity index 100% rename from policyengine_uk/parameters/gov/dwp/IIDB/README.md rename to policyengine_uk/parameters/gov/dwp/iidb/README.md diff --git a/policyengine_uk/parameters/gov/dwp/IIDB/maximum.yaml b/policyengine_uk/parameters/gov/dwp/iidb/maximum.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/IIDB/maximum.yaml rename to policyengine_uk/parameters/gov/dwp/iidb/maximum.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/README.md b/policyengine_uk/parameters/gov/dwp/jsa/README.md similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/README.md rename to policyengine_uk/parameters/gov/dwp/jsa/README.md diff --git a/policyengine_uk/parameters/gov/dwp/JSA/contrib/amount_18_24.yaml b/policyengine_uk/parameters/gov/dwp/jsa/contrib/amount_18_24.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/contrib/amount_18_24.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/contrib/amount_18_24.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/contrib/amount_over_25.yaml b/policyengine_uk/parameters/gov/dwp/jsa/contrib/amount_over_25.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/contrib/amount_over_25.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/contrib/amount_over_25.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/contrib/earn_disregard.yaml b/policyengine_uk/parameters/gov/dwp/jsa/contrib/earn_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/contrib/earn_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/contrib/earn_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/contrib/pension_disregard.yaml b/policyengine_uk/parameters/gov/dwp/jsa/contrib/pension_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/contrib/pension_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/contrib/pension_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/hours/couple.yaml b/policyengine_uk/parameters/gov/dwp/jsa/hours/couple.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/hours/couple.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/hours/couple.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/hours/single.yaml b/policyengine_uk/parameters/gov/dwp/jsa/hours/single.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/hours/single.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/hours/single.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/amount_18_24.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/amount_18_24.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/amount_18_24.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/amount_18_24.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/amount_over_25.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/amount_over_25.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/amount_over_25.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/amount_over_25.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/couple.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/couple.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/couple.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/couple.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/income_disregard_couple.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/income_disregard_couple.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/income_disregard_couple.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/income_disregard_couple.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/income_disregard_lone_parent.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/income_disregard_lone_parent.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/income_disregard_lone_parent.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/income_disregard_lone_parent.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/income_disregard_single.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/income_disregard_single.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/income_disregard_single.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/income_disregard_single.yaml diff --git a/policyengine_uk/parameters/gov/dwp/JSA/income/takeup.yaml b/policyengine_uk/parameters/gov/dwp/jsa/income/takeup.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/JSA/income/takeup.yaml rename to policyengine_uk/parameters/gov/dwp/jsa/income/takeup.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/README.md b/policyengine_uk/parameters/gov/dwp/lha/README.md similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/README.md rename to policyengine_uk/parameters/gov/dwp/lha/README.md diff --git a/policyengine_uk/parameters/gov/dwp/LHA/__init__.py b/policyengine_uk/parameters/gov/dwp/lha/__init__.py similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/__init__.py rename to policyengine_uk/parameters/gov/dwp/lha/__init__.py diff --git a/policyengine_uk/parameters/gov/dwp/LHA/freeze.yaml b/policyengine_uk/parameters/gov/dwp/lha/freeze.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/freeze.yaml rename to policyengine_uk/parameters/gov/dwp/lha/freeze.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/lha_list_of_rents.csv.gz b/policyengine_uk/parameters/gov/dwp/lha/lha_list_of_rents.csv.gz similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/lha_list_of_rents.csv.gz rename to policyengine_uk/parameters/gov/dwp/lha/lha_list_of_rents.csv.gz diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/earn_disregard.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/earn_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/earn_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/earn_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_couple.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_couple.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_couple.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_couple.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_lone.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_lone.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_lone.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_lone.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_lone_parent.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_lone_parent.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_lone_parent.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_lone_parent.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_single.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_single.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/income_disregard_single.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/income_disregard_single.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/pension_disregard.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/pension_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/pension_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/pension_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/withdrawal_rate.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/withdrawal_rate.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/withdrawal_rate.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/withdrawal_rate.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/worker_hours.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/worker_hours.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/worker_hours.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/worker_hours.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/means_test/worker_income_disregard.yaml b/policyengine_uk/parameters/gov/dwp/lha/means_test/worker_income_disregard.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/means_test/worker_income_disregard.yaml rename to policyengine_uk/parameters/gov/dwp/lha/means_test/worker_income_disregard.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/percentile.yaml b/policyengine_uk/parameters/gov/dwp/lha/percentile.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/percentile.yaml rename to policyengine_uk/parameters/gov/dwp/lha/percentile.yaml diff --git a/policyengine_uk/parameters/gov/dwp/LHA/shared_accommodation_age_threshold.yaml b/policyengine_uk/parameters/gov/dwp/lha/shared_accommodation_age_threshold.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/LHA/shared_accommodation_age_threshold.yaml rename to policyengine_uk/parameters/gov/dwp/lha/shared_accommodation_age_threshold.yaml diff --git a/policyengine_uk/parameters/gov/dwp/tax_credits/means_test/income_threshold_CTC_only.yaml b/policyengine_uk/parameters/gov/dwp/tax_credits/means_test/income_threshold_ctc_only.yaml similarity index 100% rename from policyengine_uk/parameters/gov/dwp/tax_credits/means_test/income_threshold_CTC_only.yaml rename to policyengine_uk/parameters/gov/dwp/tax_credits/means_test/income_threshold_ctc_only.yaml diff --git a/policyengine_uk/parameters/gov/hmrc/income_tax/allowances/personal_allowance/maximum_ANI.yaml b/policyengine_uk/parameters/gov/hmrc/income_tax/allowances/personal_allowance/maximum_ani.yaml similarity index 100% rename from policyengine_uk/parameters/gov/hmrc/income_tax/allowances/personal_allowance/maximum_ANI.yaml rename to policyengine_uk/parameters/gov/hmrc/income_tax/allowances/personal_allowance/maximum_ani.yaml diff --git a/policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/README.md b/policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/README.md similarity index 100% rename from policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/README.md rename to policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/README.md diff --git a/policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/phase_out_end.yaml b/policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/phase_out_end.yaml similarity index 90% rename from policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/phase_out_end.yaml rename to policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/phase_out_end.yaml index 2dd48ce62..a3bcc85cf 100644 --- a/policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/phase_out_end.yaml +++ b/policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/phase_out_end.yaml @@ -4,7 +4,7 @@ values: 2024-01-01: 80_000 metadata: period: year - name: CB_HITC_reduction_threshold + name: cb_hitc_reduction_threshold label: Child Benefit Tax Charge phase-out end unit: currency-GBP reference: diff --git a/policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/phase_out_start.yaml b/policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/phase_out_start.yaml similarity index 90% rename from policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/phase_out_start.yaml rename to policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/phase_out_start.yaml index 67e7c5bc1..23742c729 100644 --- a/policyengine_uk/parameters/gov/hmrc/income_tax/charges/CB_HITC/phase_out_start.yaml +++ b/policyengine_uk/parameters/gov/hmrc/income_tax/charges/cb_hitc/phase_out_start.yaml @@ -4,7 +4,7 @@ values: 2024-01-01: 60_000 metadata: period: year - name: CB_HITC_reduction_threshold + name: cb_hitc_reduction_threshold label: Child Benefit Tax Charge phase-out threshold unit: currency-GBP reference: diff --git a/policyengine_uk/parameters/gov/hmrc/income_tax/income_tax_additions.yaml b/policyengine_uk/parameters/gov/hmrc/income_tax/income_tax_additions.yaml index 7590afae6..28bd5576d 100644 --- a/policyengine_uk/parameters/gov/hmrc/income_tax/income_tax_additions.yaml +++ b/policyengine_uk/parameters/gov/hmrc/income_tax/income_tax_additions.yaml @@ -8,5 +8,5 @@ values: - savings_income_tax - dividend_income_tax - property_income_tax - - CB_HITC + - cb_hitc - personal_pension_contributions_tax diff --git a/policyengine_uk/reforms/conservatives/household_based_hitc.py b/policyengine_uk/reforms/conservatives/household_based_hitc.py index 861c04d3d..1a80abb8d 100644 --- a/policyengine_uk/reforms/conservatives/household_based_hitc.py +++ b/policyengine_uk/reforms/conservatives/household_based_hitc.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class CB_HITC(Variable): +class cb_hitc(Variable): value_type = float entity = Person label = "Child Benefit High-Income Tax Charge" @@ -12,7 +12,7 @@ class CB_HITC(Variable): def formula(person, period, parameters): CB_received = person.benunit("child_benefit", period) - hitc = parameters(period).gov.hmrc.income_tax.charges.CB_HITC + hitc = parameters(period).gov.hmrc.income_tax.charges.cb_hitc personal_income = person("adjusted_net_income", period) income = person.benunit.sum(personal_income) percentage = max_(income - hitc.phase_out_start, 0) / ( @@ -23,7 +23,7 @@ def formula(person, period, parameters): class make_cb_hitc_household_based(Variable): def apply(self): - self.update_variable(CB_HITC) + self.update_variable(cb_hitc) def create_household_based_hitc_reform(parameters, period): diff --git a/policyengine_uk/scenarios/uc_reform.py b/policyengine_uk/scenarios/uc_reform.py index 1b91c0d1c..246111dfd 100644 --- a/policyengine_uk/scenarios/uc_reform.py +++ b/policyengine_uk/scenarios/uc_reform.py @@ -23,7 +23,7 @@ def add_universal_credit_reform(sim: Microsimulation): if not rebalancing.active(year): continue is_post_25_claimant = uc_seed < p_uc_post_2026_status[year] - current_health_element = sim.calculate("uc_LCWRA_element", year) + current_health_element = sim.calculate("uc_lcwra_element", year) # Set new claimants to £217.26/month from April 2026 (pre-2026 claimaints keep inflation-linked increases) # https://bills.parliament.uk/publications/62123/documents/6889#page=16 current_health_element[ @@ -31,7 +31,7 @@ def add_universal_credit_reform(sim: Microsimulation): ] = ( new_claimant_health_element(year) * 12 ) # Monthly amount * 12 - sim.set_input("uc_LCWRA_element", year, current_health_element) + sim.set_input("uc_lcwra_element", year, current_health_element) # https://bills.parliament.uk/publications/62123/documents/6889#page=14 diff --git a/policyengine_uk/simulation.py b/policyengine_uk/simulation.py index 301219595..d53851acc 100644 --- a/policyengine_uk/simulation.py +++ b/policyengine_uk/simulation.py @@ -164,8 +164,10 @@ def apply_parameter_changes(self, changes: dict): self.tax_benefit_system.reset_parameters() for parameter in changes: + # Convert parameter name to lowercase for backwards compatibility + parameter_lowercase = parameter.lower() p: Parameter = self.tax_benefit_system.parameters.get_child( - parameter + parameter_lowercase ) if isinstance(changes[parameter], dict): # Time-period specific changes @@ -479,6 +481,10 @@ def calculate( ): if variable_name is None: return self.calculate_all() + + # Convert variable name to lowercase for backwards compatibility + variable_name = variable_name.lower() + tracer: SimpleTracer = self.tracer if len(tracer.stack) == 0: # Only decode enums to string values when we're not within diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/entitlement/housing_benefit_entitlement.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/entitlement/housing_benefit_entitlement.yaml index 36ff0f887..691178dd5 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/entitlement/housing_benefit_entitlement.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/entitlement/housing_benefit_entitlement.yaml @@ -2,10 +2,10 @@ period: 2025 input: benunit_rent: 8_000 - LHA_eligible: false + lha_eligible: false housing_benefit_applicable_amount: 1_000 housing_benefit_applicable_income: 11_000 - LHA_cap: 1_000 + lha_cap: 1_000 housing_benefit_non_dep_deductions: 0 output: housing_benefit_entitlement: 1_500 @@ -14,10 +14,10 @@ period: 2025 input: benunit_rent: 8_000 - LHA_eligible: true + lha_eligible: true housing_benefit_applicable_amount: 1_000 housing_benefit_applicable_income: 11_000 - LHA_cap: 1_000 + lha_cap: 1_000 housing_benefit_non_dep_deductions: 0 output: housing_benefit_entitlement: 1_000 @@ -26,10 +26,10 @@ period: 2025 input: benunit_rent: 8_000 - LHA_eligible: false + lha_eligible: false housing_benefit_applicable_amount: 1_000 housing_benefit_applicable_income: 11_000 - LHA_cap: 1_000 + lha_cap: 1_000 housing_benefit_non_dep_deductions: 2_000 output: housing_benefit_entitlement: 0 @@ -38,10 +38,10 @@ period: 2025 input: benunit_rent: 6_000 - LHA_eligible: false + lha_eligible: false housing_benefit_applicable_amount: 1_000 housing_benefit_applicable_income: 11_000 - LHA_cap: 1_000 + lha_cap: 1_000 housing_benefit_non_dep_deductions: 0 output: housing_benefit_entitlement: 0 diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_applicable_amount.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_applicable_amount.yaml index b1b03bc4b..bee31fa38 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_applicable_amount.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_applicable_amount.yaml @@ -4,13 +4,13 @@ input: people: person1: - is_SP_age: false + is_sp_age: false person2: - is_SP_age: false + is_sp_age: false person3: - is_SP_age: false + is_sp_age: false person4: - is_SP_age: false + is_sp_age: false benunits: benunit: members: [person1, person2, person3, person4] @@ -29,13 +29,13 @@ input: people: person1: - is_SP_age: false + is_sp_age: false person2: - is_SP_age: false + is_sp_age: false person3: - is_SP_age: false + is_sp_age: false person4: - is_SP_age: false + is_sp_age: false benunits: benunit: members: [person1, person2, person3, person4] @@ -54,13 +54,13 @@ input: people: person1: - is_SP_age: false + is_sp_age: false person2: - is_SP_age: false + is_sp_age: false person3: - is_SP_age: false + is_sp_age: false person4: - is_SP_age: false + is_sp_age: false benunits: benunit: members: [person1, person2, person3, person4] @@ -79,13 +79,13 @@ input: people: person1: - is_SP_age: false + is_sp_age: false person2: - is_SP_age: false + is_sp_age: false person3: - is_SP_age: false + is_sp_age: false person4: - is_SP_age: false + is_sp_age: false benunits: benunit: members: [person1, person2, person3, person4] @@ -104,13 +104,13 @@ input: people: person1: - is_SP_age: false + is_sp_age: false person2: - is_SP_age: false + is_sp_age: false person3: - is_SP_age: false + is_sp_age: false person4: - is_SP_age: false + is_sp_age: false benunits: benunit: members: [person1, person2, person3, person4] @@ -129,13 +129,13 @@ input: people: person1: - is_SP_age: false + is_sp_age: false person2: - is_SP_age: false + is_sp_age: false person3: - is_SP_age: false + is_sp_age: false person4: - is_SP_age: false + is_sp_age: false benunits: benunit: members: [person1, person2, person3, person4] diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_eligible.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_eligible.yaml index b00f14f60..6f337cf9f 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_eligible.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_eligible.yaml @@ -4,7 +4,7 @@ input: in_social_housing: true housing_benefit_reported: 1 - LHA_eligible: false + lha_eligible: false output: housing_benefit_eligible: true @@ -14,7 +14,7 @@ input: in_social_housing: false housing_benefit_reported: 1 - LHA_eligible: true + lha_eligible: true output: housing_benefit_eligible: true @@ -24,7 +24,7 @@ input: in_social_housing: false housing_benefit_reported: 0 - LHA_eligible: true + lha_eligible: true output: housing_benefit_eligible: false @@ -34,6 +34,6 @@ input: in_social_housing: false housing_benefit_reported: 1 - LHA_eligible: false + lha_eligible: false output: housing_benefit_eligible: false diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/LHA.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/lha.yaml similarity index 76% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/LHA.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/lha.yaml index e3141fde0..33f3fd4bf 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/LHA.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/lha.yaml @@ -3,10 +3,10 @@ absolute_error_margin: 20 input: age: 18 - LHA_category: C + lha_category: C output: brma: MAIDSTONE - BRMA_LHA_rate: 9_771 + brma_lha_rate: 9_771 - name: BRMA inputs period: 2020 absolute_error_margin: 0 @@ -19,8 +19,8 @@ absolute_error_margin: 20 input: brma: GUILDFORD - LHA_category: C + lha_category: C output: brma: GUILDFORD - LHA_category: C - BRMA_LHA_rate: 13_164 + lha_category: C + brma_lha_rate: 13_164 diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/tax_credits.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/tax_credits.yaml index 01946903a..8d60c038a 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/tax_credits.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/tax_credits.yaml @@ -11,14 +11,14 @@ input: age: 14 output: - is_CTC_child_limit_exempt: true + is_ctc_child_limit_exempt: true - name: CTC two-child limit non-exemption period: 2020 absolute_error_margin: 0 input: age: 0 output: - is_CTC_child_limit_exempt: false + is_ctc_child_limit_exempt: false - name: CTC children period: 2020 absolute_error_margin: 0 @@ -31,7 +31,7 @@ child3: age: 1 output: - is_child_for_CTC: [true, true, true] + is_child_for_ctc: [true, true, true] - name: WTC eligibility for worker period: 2020 absolute_error_margin: 0 @@ -41,8 +41,8 @@ working_tax_credit_reported: true child_tax_credit_reported: true output: - is_WTC_eligible: true - is_CTC_eligible: false + is_wtc_eligible: true + is_ctc_eligible: false - name: WTC eligibility for worker under hours requirement period: 2020 absolute_error_margin: 0 @@ -52,8 +52,8 @@ working_tax_credit_reported: true child_tax_credit_reported: true output: - is_WTC_eligible: false - is_CTC_eligible: false + is_wtc_eligible: false + is_ctc_eligible: false - name: 60-year-old only needs to meet the lower hours requirement (16) period: 2020 absolute_error_margin: 0 @@ -62,7 +62,7 @@ weekly_hours: 16 working_tax_credit_reported: true output: - is_WTC_eligible: true + is_wtc_eligible: true - name: 59-year-old needs to meet the default hours requirement (30) period: 2020 absolute_error_margin: 0 @@ -70,25 +70,25 @@ age: 59 weekly_hours: 16 output: - is_WTC_eligible: false + is_wtc_eligible: false - name: 29 hours does not qualify someone for worker element period: 2022 absolute_error_margin: 0 input: - is_WTC_eligible: true + is_wtc_eligible: true working_tax_credit_reported: true weekly_hours: 29 output: - WTC_worker_element: 0 + wtc_worker_element: 0 - name: 30 hours qualifies someone for worker element period: 2022 absolute_error_margin: 100 input: - is_WTC_eligible: true + is_wtc_eligible: true working_tax_credit_reported: true weekly_hours: 30 output: - WTC_worker_element: 870 + wtc_worker_element: 870 - name: Tax credits under £26.00 are not paid period: 2022 absolute_error_margin: 0 diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/limited_work_ability/uc_LCWRA_element.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/limited_work_ability/uc_lcwra_element.yaml similarity index 69% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/limited_work_ability/uc_LCWRA_element.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/limited_work_ability/uc_lcwra_element.yaml index c77cb2f56..7022c142f 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/limited_work_ability/uc_LCWRA_element.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/limited_work_ability/uc_lcwra_element.yaml @@ -4,9 +4,9 @@ input: people: person: - uc_limited_capability_for_WRA: false + uc_limited_capability_for_wra: false benunits: benunit: members: person output: - uc_LCWRA_element: 0 + uc_lcwra_element: 0 diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/uc_disability_elements.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/uc_disability_elements.yaml index 305db5c7c..7c34a9666 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/uc_disability_elements.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/child_element/disability/uc_disability_elements.yaml @@ -9,6 +9,6 @@ benunits: benunit: members: person - uc_LCWRA_element: 1 + uc_lcwra_element: 1 output: uc_disability_elements: 3 diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/housing_costs_element/uc_housing_costs_element.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/housing_costs_element/uc_housing_costs_element.yaml index 42b0943b2..3d4e4448a 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/housing_costs_element/uc_housing_costs_element.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/housing_costs_element/uc_housing_costs_element.yaml @@ -58,7 +58,7 @@ benunits: benunit: benunit_rent: 5_000 - LHA_cap: 6_000 + lha_cap: 6_000 members: person households: household: @@ -76,7 +76,7 @@ benunits: benunit: benunit_rent: 6_000 - LHA_cap: 5_000 + lha_cap: 5_000 members: person households: household: @@ -95,7 +95,7 @@ benunit: benunit_rent: 6_000 uc_non_dep_deductions: 10 * 52 - LHA_cap: 5_000 + lha_cap: 5_000 members: person households: household: diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_MIF_applies.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_mif_applies.yaml similarity index 100% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_MIF_applies.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_mif_applies.yaml diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_MIF_applies copy.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_mif_applies_copy.yaml similarity index 100% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_MIF_applies copy.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/income_floor/uc_mif_applies_copy.yaml diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/is_UC_eligible.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/is_uc_eligible.yaml similarity index 100% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/is_UC_eligible.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/is_uc_eligible.yaml diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/limited_capability_for_WRA.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/limited_capability_for_wra.yaml similarity index 74% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/limited_capability_for_WRA.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/limited_capability_for_wra.yaml index 2490435a9..7149d2ea2 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/limited_capability_for_WRA.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/limited_capability_for_wra.yaml @@ -4,7 +4,7 @@ input: is_disabled_for_benefits: false output: - uc_limited_capability_for_WRA: false + uc_limited_capability_for_wra: false - name: Disabled period: 2020 @@ -12,4 +12,4 @@ input: is_disabled_for_benefits: true output: - uc_limited_capability_for_WRA: true + uc_limited_capability_for_wra: true diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/UC_maximum_amount.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/uc_maximum_amount.yaml similarity index 100% rename from policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/UC_maximum_amount.yaml rename to policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/uc_maximum_amount.yaml diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/is_uc_work_allowance_eligible.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/is_uc_work_allowance_eligible.yaml index 04e7e4337..4d8c8eb7a 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/is_uc_work_allowance_eligible.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/is_uc_work_allowance_eligible.yaml @@ -3,10 +3,10 @@ input: people: person1: - uc_limited_capability_for_WRA: false + uc_limited_capability_for_wra: false is_child: false person2: - uc_limited_capability_for_WRA: false + uc_limited_capability_for_wra: false is_child: true benunits: benunit: @@ -19,10 +19,10 @@ input: people: person1: - uc_limited_capability_for_WRA: false + uc_limited_capability_for_wra: false is_child: false person2: - uc_limited_capability_for_WRA: false + uc_limited_capability_for_wra: false is_child: false benunits: benunit: diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/uc_work_allowance.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/uc_work_allowance.yaml index 6d1c8f1f2..4dc606d72 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/uc_work_allowance.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/work_allowance/uc_work_allowance.yaml @@ -3,6 +3,6 @@ absolute_error_margin: 100 input: uc_housing_costs_element: 1 - uc_limited_capability_for_WRA: true + uc_limited_capability_for_wra: true output: uc_work_allowance: 4_924 diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/general.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/general.yaml index 68ead6bdb..f1c628f6e 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/general.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/general.yaml @@ -4,7 +4,7 @@ input: age: 14 output: - is_child_or_QYP: true + is_child_or_qyp: true - name: Child or QYP for student in FE period: 2020 absolute_error_margin: 0 @@ -12,7 +12,7 @@ age: 17 current_education: POST_SECONDARY output: - is_child_or_QYP: true + is_child_or_qyp: true - name: Benefits premiums summed period: 2020 absolute_error_margin: 0 diff --git a/policyengine_uk/tests/policy/baseline/gov/dwp/pension_credit/is_pension_credit_eligible.yaml b/policyengine_uk/tests/policy/baseline/gov/dwp/pension_credit/is_pension_credit_eligible.yaml index ba1e93fe6..fe41066ef 100644 --- a/policyengine_uk/tests/policy/baseline/gov/dwp/pension_credit/is_pension_credit_eligible.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/dwp/pension_credit/is_pension_credit_eligible.yaml @@ -3,7 +3,7 @@ input: people: person: - is_SP_age: false + is_sp_age: false output: is_pension_credit_eligible: false @@ -12,9 +12,9 @@ input: people: person: - is_SP_age: false + is_sp_age: false spouse: - is_SP_age: true + is_sp_age: true benunits: benunit: members: [person, spouse] diff --git a/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/allowances/is_allowance_eligible.yaml b/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/allowances/is_allowance_eligible.yaml index 921706fe0..ca5e77f8a 100644 --- a/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/allowances/is_allowance_eligible.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/allowances/is_allowance_eligible.yaml @@ -23,7 +23,7 @@ input: married_couples_allowance_deduction: 800.0 income_tax_pre_charges: 500.0 - CB_HITC: 200.0 + cb_hitc: 200.0 output: capped_mcad: 700.0 diff --git a/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/charges/child_benefit_hitc.yaml b/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/charges/child_benefit_hitc.yaml index 72696eb37..1e0c7f1d8 100644 --- a/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/charges/child_benefit_hitc.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/hmrc/income_tax/charges/child_benefit_hitc.yaml @@ -3,14 +3,14 @@ input: child_benefit: 0 output: - CB_HITC: 0 + cb_hitc: 0 - name: Child Benefit, under income threshold period: 2021 input: child_benefit: 1_000 output: - CB_HITC: 0 + cb_hitc: 0 - name: Child Benefit, halfway through phase-out period: 2021 @@ -18,7 +18,7 @@ child_benefit: 1_000 employment_income: 55_000 output: - CB_HITC: 500 + cb_hitc: 500 - name: Child Benefit, all the way through phase-out period: 2021 @@ -26,4 +26,4 @@ child_benefit: 1_000 employment_income: 60_000 output: - CB_HITC: 1_000 + cb_hitc: 1_000 diff --git a/policyengine_uk/tests/policy/reforms/parametric/two_child_limit/ctc_age_exemption.yaml b/policyengine_uk/tests/policy/reforms/parametric/two_child_limit/ctc_age_exemption.yaml index a2c470489..2857b9e07 100644 --- a/policyengine_uk/tests/policy/reforms/parametric/two_child_limit/ctc_age_exemption.yaml +++ b/policyengine_uk/tests/policy/reforms/parametric/two_child_limit/ctc_age_exemption.yaml @@ -23,7 +23,7 @@ members: [parent, child_1, child_2, child_3, child_4] claims_all_entitled_benefits: true output: - CTC_child_element: 6470 # CTC for only the first 2 children + ctc_child_element: 6470 # CTC for only the first 2 children - name: With age exemption, all children get CTC when any child is below threshold period: 2023 @@ -51,7 +51,7 @@ members: [parent, child_1, child_2, child_3, child_4] claims_all_entitled_benefits: true output: - CTC_child_element: 12940 # CTC for all children + ctc_child_element: 12940 # CTC for all children - name: No exemption when all children above age threshold period: 2023 @@ -79,7 +79,7 @@ members: [parent, child_1, child_2, child_3, child_4] claims_all_entitled_benefits: true output: - CTC_child_element: 6470 # CTC for only first 2 children + ctc_child_element: 6470 # CTC for only first 2 children - name: Shows baseline CTC for a family with children under age 3 period: 2023 @@ -106,7 +106,7 @@ members: [parent, child_1, child_2, child_3, child_4] claims_all_entitled_benefits: true output: - CTC_child_element: 6470 # CTC for only first 2 children + ctc_child_element: 6470 # CTC for only first 2 children - name: Shows increased CTC after applying age exemption reform period: 2023 @@ -134,4 +134,4 @@ members: [parent, child_1, child_2, child_3, child_4] claims_all_entitled_benefits: true output: - CTC_child_element: 12940 # CTC for all children due to exemption \ No newline at end of file + ctc_child_element: 12940 # CTC for all children due to exemption \ No newline at end of file diff --git a/policyengine_uk/variables/contrib/cec/non_primary_residence_wealth_tax.py b/policyengine_uk/variables/contrib/cec/non_primary_residence_wealth_tax.py index 1744b13f2..427e186ed 100644 --- a/policyengine_uk/variables/contrib/cec/non_primary_residence_wealth_tax.py +++ b/policyengine_uk/variables/contrib/cec/non_primary_residence_wealth_tax.py @@ -14,7 +14,5 @@ class non_primary_residence_wealth_tax(Variable): def formula(household, period, parameters): wealth = household("total_wealth", period) primary_residence = household("main_residence_value", period) - tax = parameters( - period - ).gov.contrib.cec.non_primary_residence_wealth_tax - return tax.calc(max_(0, wealth - primary_residence)) + p = parameters(period).gov.contrib.cec.non_primary_residence_wealth_tax + return p.calc(max_(0, wealth - primary_residence)) diff --git a/policyengine_uk/variables/contrib/labour/attends_private_school.py b/policyengine_uk/variables/contrib/labour/attends_private_school.py index 88971d517..30f2cff84 100644 --- a/policyengine_uk/variables/contrib/labour/attends_private_school.py +++ b/policyengine_uk/variables/contrib/labour/attends_private_school.py @@ -26,12 +26,10 @@ def formula(person, period, parameters): # To ensure that our model matches # total number of students actually enrolled - ps_vat_params = parameters(period).gov.simulation.private_school_vat - private_school_attendance_rate = ( - ps_vat_params.private_school_attendance_rate - ) + p = parameters(period).gov.simulation.private_school_vat + private_school_attendance_rate = p.private_school_attendance_rate - population_adjustment_factor = ps_vat_params.private_school_factor + population_adjustment_factor = p.private_school_factor person = household.members diff --git a/policyengine_uk/variables/contrib/labour/private_school_vat.py b/policyengine_uk/variables/contrib/labour/private_school_vat.py index 33b641d45..24c9fbfdc 100644 --- a/policyengine_uk/variables/contrib/labour/private_school_vat.py +++ b/policyengine_uk/variables/contrib/labour/private_school_vat.py @@ -11,9 +11,9 @@ class private_school_vat(Variable): def formula(household, period, parameters): num_children = add(household, period, ["attends_private_school"]) - ps_vat_params = parameters(period).gov.simulation.private_school_vat - private_school_vat_basis = ps_vat_params.private_school_vat_basis - avg_yearly_private_school_cost = ps_vat_params.private_school_fees + p = parameters(period).gov.simulation.private_school_vat + private_school_vat_basis = p.private_school_vat_basis + avg_yearly_private_school_cost = p.private_school_fees private_school_vat_rate = parameters( period diff --git a/policyengine_uk/variables/contrib/policyengine/employer_ni/adjusted_employer_cost.py b/policyengine_uk/variables/contrib/policyengine/employer_ni/adjusted_employer_cost.py index e776990f3..d9e31309d 100644 --- a/policyengine_uk/variables/contrib/policyengine/employer_ni/adjusted_employer_cost.py +++ b/policyengine_uk/variables/contrib/policyengine/employer_ni/adjusted_employer_cost.py @@ -27,12 +27,12 @@ def formula(person, period, parameters): ) # Calculate employer cost - parameters = parameters(period) - class_1 = parameters.gov.hmrc.national_insurance.class_1 + p = parameters(period) + class_1 = p.gov.hmrc.national_insurance.class_1 r_r = class_1.rates.employer t_r = class_1.thresholds.secondary_threshold * WEEKS_IN_YEAR p_r = ( - parameters.gov.contrib.policyengine.employer_ni.exempt_employer_pension_contributions + p.gov.contrib.policyengine.employer_ni.exempt_employer_pension_contributions ) pen_con_subtracted_r = employer_pension_contributions if p_r: diff --git a/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_capital_incidence.py b/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_capital_incidence.py index 31f284869..e74ad0068 100644 --- a/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_capital_incidence.py +++ b/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_capital_incidence.py @@ -9,8 +9,8 @@ class employer_ni_response_capital_incidence(Variable): unit = GBP def formula(person, period, parameters): - emp_ni = parameters(period).gov.contrib.policyengine.employer_ni - if emp_ni.capital_incidence == 0 or emp_ni.employee_incidence == 1: + p = parameters(period).gov.contrib.policyengine.employer_ni + if p.capital_incidence == 0 or p.employee_incidence == 1: # If capital incidence is zero, or if the employee incidence is 100%, then there is no capital incidence.: return 0 @@ -36,7 +36,7 @@ def formula(person, period, parameters): value = ( amount_paid_by_employers * share_of_total_wealth - * emp_ni.capital_incidence + * p.capital_incidence ) if total_wealth == 0: diff --git a/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_consumer_incidence.py b/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_consumer_incidence.py index 1e48f626f..254e0ac38 100644 --- a/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_consumer_incidence.py +++ b/policyengine_uk/variables/contrib/policyengine/employer_ni/employer_ni_response_consumer_incidence.py @@ -9,8 +9,8 @@ class employer_ni_response_consumer_incidence(Variable): unit = GBP def formula(person, period, parameters): - emp_ni = parameters(period).gov.contrib.policyengine.employer_ni - if emp_ni.consumer_incidence == 0 or emp_ni.employee_incidence == 1: + p = parameters(period).gov.contrib.policyengine.employer_ni + if p.consumer_incidence == 0 or p.employee_incidence == 1: # If consumer incidence is zero, or if the employee incidence is 100%, then there is no capital incidence.: return 0 @@ -36,7 +36,7 @@ def formula(person, period, parameters): value = ( amount_paid_by_employers * share_of_total_consumption - * emp_ni.consumer_incidence + * p.consumer_incidence ) if total_consumption == 0: diff --git a/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py b/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py index 56f03f58e..84547e4da 100644 --- a/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py +++ b/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py @@ -41,10 +41,10 @@ class pre_budget_change_household_benefits(Variable): ] def formula(household, period, parameters): - contrib = parameters(period).gov.contrib - uprating = contrib.benefit_uprating + p = parameters(period).gov.contrib + uprating = p.benefit_uprating benefits = pre_budget_change_household_benefits.adds - if contrib.abolish_council_tax: + if p.abolish_council_tax: benefits = [ benefit for benefit in benefits diff --git a/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_tax.py b/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_tax.py index 76195ace1..2c8435a97 100644 --- a/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_tax.py +++ b/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_tax.py @@ -22,7 +22,7 @@ class pre_budget_change_household_tax(Variable): "non_primary_residence_wealth_tax", "income_tax", "national_insurance", - "LVT", + "lvt", "carbon_tax", "vat_change", "capital_gains_tax", diff --git a/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_household_phaseout.py b/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_household_phaseout.py index b6df7e5ba..d70978b0c 100644 --- a/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_household_phaseout.py +++ b/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_household_phaseout.py @@ -16,19 +16,17 @@ def formula(person, period, parameters): income = person("total_income", period) household = person.household household_income = household.sum(income) - bi = parameters(period).gov.contrib.ubi_center.basic_income + p = parameters(period).gov.contrib.ubi_center.basic_income remaining_bi = person("bi_maximum", period) - person( "bi_individual_phaseout", period ) # Basic income remaining after individual-level phaseouts household_bi = household.sum(remaining_bi) income_over_threshold = max_( - household_income - bi.phase_out.household.threshold, + household_income - p.phase_out.household.threshold, 0, ) - uncapped_deduction = ( - bi.phase_out.household.rate * income_over_threshold - ) + uncapped_deduction = p.phase_out.household.rate * income_over_threshold capped_deduction = min_(household_bi, uncapped_deduction) warnings.filterwarnings("ignore") diff --git a/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_individual_phaseout.py b/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_individual_phaseout.py index 2e974dbf5..f63f07a1b 100644 --- a/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_individual_phaseout.py +++ b/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_individual_phaseout.py @@ -14,12 +14,12 @@ class bi_individual_phaseout(Variable): def formula(person, period, parameters): income = person("total_income", period) - bi = parameters(period).gov.contrib.ubi_center.basic_income + p = parameters(period).gov.contrib.ubi_center.basic_income max_bi = person("bi_maximum", period) income_over_threshold = max_( - income - bi.phase_out.individual.threshold, 0 + income - p.phase_out.individual.threshold, 0 ) uncapped_deduction = ( - bi.phase_out.individual.rate * income_over_threshold + p.phase_out.individual.rate * income_over_threshold ) return min_(max_bi, uncapped_deduction) diff --git a/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_maximum.py b/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_maximum.py index 95e77f402..a68154eaf 100644 --- a/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_maximum.py +++ b/policyengine_uk/variables/contrib/ubi_center/basic_income/bi_maximum.py @@ -9,20 +9,20 @@ class bi_maximum(Variable): unit = GBP def formula(person, period, parameters): - bi = parameters(period).gov.contrib.ubi_center.basic_income - weekly_flat_amount = bi.amount.flat - is_senior_for_bi = person("is_SP_age", period) + p = parameters(period).gov.contrib.ubi_center.basic_income + weekly_flat_amount = p.amount.flat + is_senior_for_bi = person("is_sp_age", period) age = person("age", period) - is_child_for_bi = (age < bi.amount.adult_age) * ( - age >= bi.amount.child_min_age + is_child_for_bi = (age < p.amount.adult_age) * ( + age >= p.amount.child_min_age ) - is_adult_for_bi = (age >= bi.amount.adult_age) * ~is_senior_for_bi + is_adult_for_bi = (age >= p.amount.adult_age) * ~is_senior_for_bi weekly_amount_by_age = select( [is_child_for_bi, is_senior_for_bi, is_adult_for_bi], [ - bi.amount.by_age.child, - bi.amount.by_age.senior, - bi.amount.by_age.working_age, + p.amount.by_age.child, + p.amount.by_age.senior, + p.amount.by_age.working_age, ], ) return (weekly_flat_amount + weekly_amount_by_age) * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/contrib/ubi_center/carbon_tax.py b/policyengine_uk/variables/contrib/ubi_center/carbon_tax.py index 01cca8d19..96cd09f4b 100644 --- a/policyengine_uk/variables/contrib/ubi_center/carbon_tax.py +++ b/policyengine_uk/variables/contrib/ubi_center/carbon_tax.py @@ -9,19 +9,16 @@ class carbon_tax(Variable): unit = GBP def formula(household, period, parameters): - carbon_tax = parameters(period).gov.contrib.ubi_center.carbon_tax - rate = carbon_tax.rate + p = parameters(period).gov.contrib.ubi_center.carbon_tax + rate = p.rate emissions = household("carbon_consumption", period) # Household's share of total stocks and other corporate tax exposure. shareholding = household("shareholding", period) total_emissions = ( emissions * household("household_weight", period) ).sum() - consumer_incidence = carbon_tax.consumer_incidence * rate * emissions + consumer_incidence = p.consumer_incidence * rate * emissions corporate_incidence = ( - (1 - carbon_tax.consumer_incidence) - * rate - * total_emissions - * shareholding + (1 - p.consumer_incidence) * rate * total_emissions * shareholding ) return consumer_incidence + corporate_incidence diff --git a/policyengine_uk/variables/contrib/ubi_center/land_value_tax.py b/policyengine_uk/variables/contrib/ubi_center/land_value_tax.py index c29bdb0d1..31dd5e78a 100644 --- a/policyengine_uk/variables/contrib/ubi_center/land_value_tax.py +++ b/policyengine_uk/variables/contrib/ubi_center/land_value_tax.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class LVT(Variable): +class lvt(Variable): entity = Household label = "Land value tax" definition_period = YEAR @@ -9,12 +9,12 @@ class LVT(Variable): unit = GBP def formula(household, period, parameters): - lvt = parameters(period).gov.contrib.ubi_center.land_value_tax - full_lvt = lvt.rate * household("land_value", period) - household_lvt = lvt.household_rate * household( + p = parameters(period).gov.contrib.ubi_center.land_value_tax + full_lvt = p.rate * household("land_value", period) + household_lvt = p.household_rate * household( "household_land_value", period ) - corporate_lvt = lvt.corporate_rate * household( + corporate_lvt = p.corporate_rate * household( "corporate_land_value", period ) return full_lvt + household_lvt + corporate_lvt diff --git a/policyengine_uk/variables/contrib/ubi_center/wealth_tax.py b/policyengine_uk/variables/contrib/ubi_center/wealth_tax.py index 32c8090e2..def9d6231 100644 --- a/policyengine_uk/variables/contrib/ubi_center/wealth_tax.py +++ b/policyengine_uk/variables/contrib/ubi_center/wealth_tax.py @@ -11,5 +11,5 @@ class wealth_tax(Variable): def formula(household, period, parameters): wealth = household("total_wealth", period) - tax = parameters(period).gov.contrib.ubi_center.wealth_tax - return tax.calc(wealth) + p = parameters(period).gov.contrib.ubi_center.wealth_tax + return p.calc(wealth) diff --git a/policyengine_uk/variables/gov/dcms/bbc/tv_licence/tv_licence_discount.py b/policyengine_uk/variables/gov/dcms/bbc/tv_licence/tv_licence_discount.py index b30f50a3d..25fd5f8f4 100644 --- a/policyengine_uk/variables/gov/dcms/bbc/tv_licence/tv_licence_discount.py +++ b/policyengine_uk/variables/gov/dcms/bbc/tv_licence/tv_licence_discount.py @@ -14,23 +14,19 @@ class tv_licence_discount(Variable): def formula(household, period, parameters): person = household.members - tv_licence = parameters(period).gov.dcms.bbc.tv_licence + p = parameters(period).gov.dcms.bbc.tv_licence # Aged discount - aged = person("age", period) >= tv_licence.discount.aged.min_age + aged = person("age", period) >= p.discount.aged.min_age has_aged = household.any(aged) claims_pc = add(household, period, ["pension_credit"]) > 0 - meets_pc_requirement = ( - not_(tv_licence.discount.aged.must_claim_pc) | claims_pc - ) + meets_pc_requirement = not_(p.discount.aged.must_claim_pc) | claims_pc eligible_for_aged_discount = has_aged & meets_pc_requirement - aged_discount = ( - eligible_for_aged_discount * tv_licence.discount.aged.discount - ) + aged_discount = eligible_for_aged_discount * p.discount.aged.discount # Blind discount is_blind = person("is_blind", period) has_blind = household.any(is_blind) - blind_discount = has_blind * tv_licence.discount.blind.discount + blind_discount = has_blind * p.discount.blind.discount return max_(aged_discount, blind_discount) diff --git a/policyengine_uk/variables/gov/dwp/WTC_maximum_rate.py b/policyengine_uk/variables/gov/dwp/WTC_maximum_rate.py deleted file mode 100644 index d89a15a57..000000000 --- a/policyengine_uk/variables/gov/dwp/WTC_maximum_rate.py +++ /dev/null @@ -1,20 +0,0 @@ -from policyengine_uk.model_api import * - - -class WTC_maximum_rate(Variable): - value_type = float - entity = BenUnit - label = "Working Tax Credit maximum rate" - definition_period = YEAR - reference = "Tax Credits Act 2002 s. 11" - unit = GBP - - adds = [ - "WTC_basic_element", - "WTC_couple_element", - "WTC_lone_parent_element", - "WTC_disabled_element", - "WTC_severely_disabled_element", - "WTC_worker_element", - "WTC_childcare_element", - ] diff --git a/policyengine_uk/variables/gov/dwp/aa_category.py b/policyengine_uk/variables/gov/dwp/aa_category.py index 65b4c82e5..3e7268296 100644 --- a/policyengine_uk/variables/gov/dwp/aa_category.py +++ b/policyengine_uk/variables/gov/dwp/aa_category.py @@ -13,15 +13,15 @@ class aa_category(Variable): default_value = LowerOrHigher.NONE def formula(person, period, parameters): - aa = parameters(period).baseline.gov.dwp.attendance_allowance + p = parameters(period).baseline.gov.dwp.attendance_allowance SAFETY_MARGIN = 0.1 # Survey reported values could be slightly below eligible values when they should be above due to data manipulation reported_weekly_aa = ( person("attendance_allowance_reported", period) / WEEKS_IN_YEAR ) return select( [ - reported_weekly_aa >= aa.higher * (1 - SAFETY_MARGIN), - reported_weekly_aa >= aa.lower * (1 - SAFETY_MARGIN), + reported_weekly_aa >= p.higher * (1 - SAFETY_MARGIN), + reported_weekly_aa >= p.lower * (1 - SAFETY_MARGIN), ], [LowerOrHigher.HIGHER, LowerOrHigher.LOWER], default=LowerOrHigher.NONE, diff --git a/policyengine_uk/variables/gov/dwp/attendance_allowance.py b/policyengine_uk/variables/gov/dwp/attendance_allowance.py index 599811d7b..2a0f0e10e 100644 --- a/policyengine_uk/variables/gov/dwp/attendance_allowance.py +++ b/policyengine_uk/variables/gov/dwp/attendance_allowance.py @@ -9,7 +9,7 @@ class attendance_allowance(Variable): unit = GBP def formula(person, period, parameters): - aa = parameters(period).gov.dwp.attendance_allowance + p = parameters(period).gov.dwp.attendance_allowance category = person("aa_category", period) categories = category.possible_values return ( @@ -18,7 +18,7 @@ def formula(person, period, parameters): category == categories.HIGHER, category == categories.LOWER, ], - [aa.higher, aa.lower], + [p.higher, p.lower], default=0, ) * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/benefit_cap.py b/policyengine_uk/variables/gov/dwp/benefit_cap.py index 2f5375103..93c8743c7 100644 --- a/policyengine_uk/variables/gov/dwp/benefit_cap.py +++ b/policyengine_uk/variables/gov/dwp/benefit_cap.py @@ -16,7 +16,7 @@ def formula(benunit, period, parameters): region = benunit.value_from_first_person(household_region) regions = household_region.possible_values in_london = region == regions.LONDON - cap = parameters(period).gov.dwp.benefit_cap + p = parameters(period).gov.dwp.benefit_cap rate = select( [ single_claimant & in_london, @@ -25,10 +25,10 @@ def formula(benunit, period, parameters): ~single_claimant & ~in_london, ], [ - cap.single.in_london, - cap.single.outside_london, - cap.non_single.in_london, - cap.non_single.outside_london, + p.single.in_london, + p.single.outside_london, + p.non_single.in_london, + p.non_single.outside_london, ], ) exempt = benunit("is_benefit_cap_exempt", period) diff --git a/policyengine_uk/variables/gov/dwp/BRMA_LHA_rate.py b/policyengine_uk/variables/gov/dwp/brma_lha_rate.py similarity index 82% rename from policyengine_uk/variables/gov/dwp/BRMA_LHA_rate.py rename to policyengine_uk/variables/gov/dwp/brma_lha_rate.py index 4b4d9222c..cc09564af 100644 --- a/policyengine_uk/variables/gov/dwp/BRMA_LHA_rate.py +++ b/policyengine_uk/variables/gov/dwp/brma_lha_rate.py @@ -2,7 +2,7 @@ import pandas as pd import warnings from policyengine_core.model_api import * -from policyengine_uk.variables.gov.dwp.LHA_category import ( +from policyengine_uk.variables.gov.dwp.lha_category import ( find_freeze_start, time_shift_dataset, ) @@ -10,7 +10,7 @@ warnings.filterwarnings("ignore") -class BRMA_LHA_rate(Variable): +class brma_lha_rate(Variable): value_type = float entity = BenUnit label = "LHA rate" @@ -22,12 +22,12 @@ def formula(benunit, period, parameters): brma = benunit.value_from_first_person( benunit.members.household("brma", period).decode_to_str() ) - category = benunit("LHA_category", period).decode_to_str() + category = benunit("lha_category", period).decode_to_str() - from policyengine_uk.parameters.gov.dwp.LHA import lha_list_of_rents + from policyengine_uk.parameters.gov.dwp.lha import lha_list_of_rents - parameters = benunit.simulation.tax_benefit_system.parameters - lha = parameters.gov.dwp.LHA + p = benunit.simulation.tax_benefit_system.parameters + lha = p.gov.dwp.lha # We first need to know what time period to collect rents from. If LHA is frozen, we need to look earlier # than the current time period. @@ -40,7 +40,7 @@ def formula(benunit, period, parameters): else: lha_period = int(period.start.year) - private_rent_index = parameters.gov.indices.private_rent_index + private_rent_index = p.gov.indices.private_rent_index lha_list_of_rents = time_shift_dataset( lha_list_of_rents.copy(), lha_period, private_rent_index ) diff --git a/policyengine_uk/variables/gov/dwp/carers_allowance.py b/policyengine_uk/variables/gov/dwp/carers_allowance.py index e14067709..c620e7a70 100644 --- a/policyengine_uk/variables/gov/dwp/carers_allowance.py +++ b/policyengine_uk/variables/gov/dwp/carers_allowance.py @@ -10,7 +10,7 @@ class carers_allowance(Variable): def formula(person, period, parameters): receives_ca = person("carers_allowance_reported", period) > 0 - ca = parameters(period).gov.dwp.carers_allowance + p = parameters(period).gov.dwp.carers_allowance weekly_care_hours = person("care_hours", period) - meets_work_condition = weekly_care_hours >= ca.min_hours - return (meets_work_condition | receives_ca) * ca.rate * WEEKS_IN_YEAR + meets_work_condition = weekly_care_hours >= p.min_hours + return (meets_work_condition | receives_ca) * p.rate * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/child_tax_credit.py b/policyengine_uk/variables/gov/dwp/child_tax_credit.py index 988c6e886..fee949643 100644 --- a/policyengine_uk/variables/gov/dwp/child_tax_credit.py +++ b/policyengine_uk/variables/gov/dwp/child_tax_credit.py @@ -7,5 +7,5 @@ class child_tax_credit(Variable): label = "Child Tax Credit" definition_period = YEAR unit = GBP - defined_for = "would_claim_CTC" + defined_for = "would_claim_ctc" adds = ["ctc_entitlement"] diff --git a/policyengine_uk/variables/gov/dwp/child_tax_credit_pre_minimum.py b/policyengine_uk/variables/gov/dwp/child_tax_credit_pre_minimum.py index c85a8f9e7..71b59e5c4 100644 --- a/policyengine_uk/variables/gov/dwp/child_tax_credit_pre_minimum.py +++ b/policyengine_uk/variables/gov/dwp/child_tax_credit_pre_minimum.py @@ -8,7 +8,7 @@ class child_tax_credit_pre_minimum(Variable): documentation = ( "Child Tax Credit amount before the minimum tax credit is applied" ) - defined_for = "would_claim_CTC" + defined_for = "would_claim_ctc" definition_period = YEAR unit = GBP @@ -16,9 +16,9 @@ def formula(benunit, period, parameters): reduction_left = max_( 0, benunit("tax_credits_reduction", period) - - benunit("WTC_maximum_rate", period), + - benunit("wtc_maximum_rate", period), ) return max_( 0, - benunit("CTC_maximum_rate", period) - reduction_left, + benunit("ctc_maximum_rate", period) - reduction_left, ) diff --git a/policyengine_uk/variables/gov/dwp/CTC_child_element.py b/policyengine_uk/variables/gov/dwp/ctc_child_element.py similarity index 54% rename from policyengine_uk/variables/gov/dwp/CTC_child_element.py rename to policyengine_uk/variables/gov/dwp/ctc_child_element.py index ff8c12db2..fa305e022 100644 --- a/policyengine_uk/variables/gov/dwp/CTC_child_element.py +++ b/policyengine_uk/variables/gov/dwp/ctc_child_element.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class CTC_child_element(Variable): +class ctc_child_element(Variable): value_type = float entity = BenUnit label = "Child Tax Credit child element" @@ -11,15 +11,15 @@ class CTC_child_element(Variable): def formula(benunit, period, parameters): person = benunit.members - CTC = parameters(period).gov.dwp.tax_credits.child_tax_credit - is_child_for_CTC = person("is_child_for_CTC", period) - is_CTC_child_limit_exempt = person("is_CTC_child_limit_exempt", period) - exempt_child = is_child_for_CTC & is_CTC_child_limit_exempt + p = parameters(period).gov.dwp.tax_credits.child_tax_credit + is_child_for_ctc = person("is_child_for_ctc", period) + is_ctc_child_limit_exempt = person("is_ctc_child_limit_exempt", period) + exempt_child = is_child_for_ctc & is_ctc_child_limit_exempt exempt_children = benunit.sum(exempt_child) - child_limit = CTC.limit.child_count + child_limit = p.limit.child_count spaces_left = max_(0, child_limit - exempt_children) non_exempt_children = min_( - spaces_left, benunit.sum(is_child_for_CTC) - exempt_children + spaces_left, benunit.sum(is_child_for_ctc) - exempt_children ) children = exempt_children + non_exempt_children - return CTC.elements.child_element * children + return p.elements.child_element * children diff --git a/policyengine_uk/variables/gov/dwp/ctc_child_limit_affected.py b/policyengine_uk/variables/gov/dwp/ctc_child_limit_affected.py index 4c1ff5961..9132a9107 100644 --- a/policyengine_uk/variables/gov/dwp/ctc_child_limit_affected.py +++ b/policyengine_uk/variables/gov/dwp/ctc_child_limit_affected.py @@ -9,17 +9,17 @@ class ctc_child_limit_affected(Variable): def formula(benunit, period, parameters): person = benunit.members - CTC = parameters(period).gov.dwp.tax_credits.child_tax_credit - is_child_for_CTC = person("is_child_for_CTC", period) - is_CTC_child_limit_exempt = person("is_CTC_child_limit_exempt", period) - exempt_child = is_child_for_CTC & is_CTC_child_limit_exempt + p = parameters(period).gov.dwp.tax_credits.child_tax_credit + is_child_for_ctc = person("is_child_for_ctc", period) + is_ctc_child_limit_exempt = person("is_ctc_child_limit_exempt", period) + exempt_child = is_child_for_ctc & is_ctc_child_limit_exempt exempt_children = benunit.sum(exempt_child) - child_limit = CTC.limit.child_count + child_limit = p.limit.child_count spaces_left = max_(0, child_limit - exempt_children) non_exempt_children = min_( - spaces_left, benunit.sum(is_child_for_CTC) - exempt_children + spaces_left, benunit.sum(is_child_for_ctc) - exempt_children ) return ( exempt_children + non_exempt_children - < benunit.sum(is_child_for_CTC) + < benunit.sum(is_child_for_ctc) ) & (benunit("child_tax_credit", period) > 0) diff --git a/policyengine_uk/variables/gov/dwp/CTC_disabled_child_element.py b/policyengine_uk/variables/gov/dwp/ctc_disabled_child_element.py similarity index 55% rename from policyengine_uk/variables/gov/dwp/CTC_disabled_child_element.py rename to policyengine_uk/variables/gov/dwp/ctc_disabled_child_element.py index 835aff2e3..55f354fa2 100644 --- a/policyengine_uk/variables/gov/dwp/CTC_disabled_child_element.py +++ b/policyengine_uk/variables/gov/dwp/ctc_disabled_child_element.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class CTC_disabled_child_element(Variable): +class ctc_disabled_child_element(Variable): value_type = float entity = BenUnit label = "CTC entitlement from disabled child elements" @@ -11,10 +11,10 @@ class CTC_disabled_child_element(Variable): def formula(benunit, period, parameters): person = benunit.members - is_child_for_CTC = person("is_child_for_CTC", period) + is_child_for_ctc = person("is_child_for_ctc", period) is_disabled_for_benefits = person("is_disabled_for_benefits", period) - is_disabled_child = is_child_for_CTC & is_disabled_for_benefits + is_disabled_child = is_child_for_ctc & is_disabled_for_benefits disabled_children = benunit.sum(is_disabled_child) - CTC = parameters(period).gov.dwp.tax_credits.child_tax_credit - amount = CTC.elements.dis_child_element * disabled_children - return benunit("is_CTC_eligible", period) * amount + p = parameters(period).gov.dwp.tax_credits.child_tax_credit + amount = p.elements.dis_child_element * disabled_children + return benunit("is_ctc_eligible", period) * amount diff --git a/policyengine_uk/variables/gov/dwp/ctc_entitlement.py b/policyengine_uk/variables/gov/dwp/ctc_entitlement.py index d2f375f2d..50ff30d62 100644 --- a/policyengine_uk/variables/gov/dwp/ctc_entitlement.py +++ b/policyengine_uk/variables/gov/dwp/ctc_entitlement.py @@ -13,4 +13,4 @@ def formula(benunit, period, parameters): benunit("tax_credits", period) > 0, benunit("child_tax_credit_pre_minimum", period), 0, - ) * (benunit("is_CTC_eligible", period)) + ) * (benunit("is_ctc_eligible", period)) diff --git a/policyengine_uk/variables/gov/dwp/CTC_family_element.py b/policyengine_uk/variables/gov/dwp/ctc_family_element.py similarity index 84% rename from policyengine_uk/variables/gov/dwp/CTC_family_element.py rename to policyengine_uk/variables/gov/dwp/ctc_family_element.py index 6d4b74d0a..2c20f8af2 100644 --- a/policyengine_uk/variables/gov/dwp/CTC_family_element.py +++ b/policyengine_uk/variables/gov/dwp/ctc_family_element.py @@ -1,14 +1,14 @@ from policyengine_uk.model_api import * -class CTC_family_element(Variable): +class ctc_family_element(Variable): value_type = float entity = BenUnit label = "CTC entitlement in the Family Element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 9" unit = GBP - defined_for = "is_CTC_eligible" + defined_for = "is_ctc_eligible" def formula(benunit, period, parameters): return parameters( diff --git a/policyengine_uk/variables/gov/dwp/CTC_maximum_rate.py b/policyengine_uk/variables/gov/dwp/ctc_maximum_rate.py similarity index 56% rename from policyengine_uk/variables/gov/dwp/CTC_maximum_rate.py rename to policyengine_uk/variables/gov/dwp/ctc_maximum_rate.py index e6e954727..788dafc37 100644 --- a/policyengine_uk/variables/gov/dwp/CTC_maximum_rate.py +++ b/policyengine_uk/variables/gov/dwp/ctc_maximum_rate.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class CTC_maximum_rate(Variable): +class ctc_maximum_rate(Variable): value_type = float entity = BenUnit label = "Maximum Child Tax Credit" @@ -10,8 +10,8 @@ class CTC_maximum_rate(Variable): unit = GBP adds = [ - "CTC_family_element", - "CTC_child_element", - "CTC_disabled_child_element", - "CTC_severely_disabled_child_element", + "ctc_family_element", + "ctc_child_element", + "ctc_disabled_child_element", + "ctc_severely_disabled_child_element", ] diff --git a/policyengine_uk/variables/gov/dwp/CTC_severely_disabled_child_element.py b/policyengine_uk/variables/gov/dwp/ctc_severely_disabled_child_element.py similarity index 59% rename from policyengine_uk/variables/gov/dwp/CTC_severely_disabled_child_element.py rename to policyengine_uk/variables/gov/dwp/ctc_severely_disabled_child_element.py index 865b9779e..40c80d864 100644 --- a/policyengine_uk/variables/gov/dwp/CTC_severely_disabled_child_element.py +++ b/policyengine_uk/variables/gov/dwp/ctc_severely_disabled_child_element.py @@ -1,26 +1,24 @@ from policyengine_uk.model_api import * -class CTC_severely_disabled_child_element(Variable): +class ctc_severely_disabled_child_element(Variable): value_type = float entity = BenUnit label = "CTC entitlement from severely disabled child elements" definition_period = YEAR reference = "Tax Credits Act 2002 s. 9" unit = GBP - defined_for = "is_CTC_eligible" + defined_for = "is_ctc_eligible" def formula(benunit, period, parameters): person = benunit.members - is_child_for_CTC = person("is_child_for_CTC", period) + is_child_for_ctc = person("is_child_for_ctc", period) is_severely_disabled_for_benefits = person( "is_severely_disabled_for_benefits", period ) is_severely_disabled_child = ( - is_child_for_CTC & is_severely_disabled_for_benefits + is_child_for_ctc & is_severely_disabled_for_benefits ) severely_disabled_children = benunit.sum(is_severely_disabled_child) - CTC = parameters(period).gov.dwp.tax_credits.child_tax_credit - return ( - CTC.elements.severe_dis_child_element * severely_disabled_children - ) + p = parameters(period).gov.dwp.tax_credits.child_tax_credit + return p.elements.severe_dis_child_element * severely_disabled_children diff --git a/policyengine_uk/variables/gov/dwp/dla/dla_m.py b/policyengine_uk/variables/gov/dwp/dla/dla_m.py index 742d4ea8b..6a4b97bb9 100644 --- a/policyengine_uk/variables/gov/dwp/dla/dla_m.py +++ b/policyengine_uk/variables/gov/dwp/dla/dla_m.py @@ -9,7 +9,7 @@ class dla_m(Variable): unit = GBP def formula(person, period, parameters): - dla_m = parameters(period).gov.dwp.dla.mobility + p = parameters(period).gov.dwp.dla.mobility category = person("dla_m_category", period) categories = category.possible_values return ( @@ -20,8 +20,8 @@ def formula(person, period, parameters): category == categories.NONE, ], [ - dla_m.higher, - dla_m.lower, + p.higher, + p.lower, 0, ], ) diff --git a/policyengine_uk/variables/gov/dwp/dla/dla_sc.py b/policyengine_uk/variables/gov/dwp/dla/dla_sc.py index f8d7be2e9..70a660fca 100644 --- a/policyengine_uk/variables/gov/dwp/dla/dla_sc.py +++ b/policyengine_uk/variables/gov/dwp/dla/dla_sc.py @@ -9,7 +9,7 @@ class dla_sc(Variable): unit = GBP def formula(person, period, parameters): - dla_sc = parameters(period).gov.dwp.dla.self_care + p = parameters(period).gov.dwp.dla.self_care category = person("dla_sc_category", period) categories = category.possible_values return ( @@ -21,9 +21,9 @@ def formula(person, period, parameters): category == categories.NONE, ], [ - dla_sc.higher, - dla_sc.middle, - dla_sc.lower, + p.higher, + p.middle, + p.lower, 0, ], ) diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income.py b/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income.py index fad9620ff..3e3929b92 100644 --- a/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income.py +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income.py @@ -31,7 +31,7 @@ def formula(benunit, period, parameters): "property_income", "private_pension_income", ] - bi = parameters(period).gov.contrib.ubi_center.basic_income + p = parameters(period).gov.contrib.ubi_center.basic_income # Add personal benefits, credits and total benefits to income benefits = add(benunit, period, BENUNIT_MEANS_TESTED_BENEFITS) income = add(benunit, period, INCOME_COMPONENTS) @@ -39,7 +39,7 @@ def formula(benunit, period, parameters): credits = add(benunit, period, ["tax_credits"]) increased_income = income + personal_benefits + credits + benefits - if not bi.interactions.include_in_means_tests: + if not p.interactions.include_in_means_tests: # Basic income is already in personal benefits, deduct if needed increased_income -= add(benunit, period, ["basic_income"]) # Reduce increased income by pension contributions and tax diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income_disregard.py b/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income_disregard.py index 62972c050..9d3e34cb8 100644 --- a/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income_disregard.py +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/applicable_income/housing_benefit_applicable_income_disregard.py @@ -9,7 +9,7 @@ class housing_benefit_applicable_income_disregard(Variable): unit = GBP def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + wtc = parameters(period).gov.dwp.tax_credits.working_tax_credit p = parameters( period ).gov.dwp.housing_benefit.means_test.income_disregard @@ -22,7 +22,7 @@ def formula(benunit, period, parameters): lone_parent = benunit("is_lone_parent", period) lone_parent_disregard = lone_parent * p.lone_parent hour_requirement = where( - lone_parent, WTC.min_hours.lower, p.worker_hours + lone_parent, wtc.min_hours.lower, p.worker_hours ) worker = hours > hour_requirement worker_disregard = worker * p.worker diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/entitlement/housing_benefit_entitlement.py b/policyengine_uk/variables/gov/dwp/housing_benefit/entitlement/housing_benefit_entitlement.py index f61a736ca..19b4a1fef 100644 --- a/policyengine_uk/variables/gov/dwp/housing_benefit/entitlement/housing_benefit_entitlement.py +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/entitlement/housing_benefit_entitlement.py @@ -19,8 +19,8 @@ def formula(benunit, period, parameters): ).gov.dwp.housing_benefit.means_test.withdrawal_rate reduced_income = max_(0, income - applicable_amount) final_amount = max_(0, rent - reduced_income * withdrawal_rate) - capped_final_amount = min_(final_amount, benunit("LHA_cap", period)) - lha_eligible = benunit("LHA_eligible", period.this_year) + capped_final_amount = min_(final_amount, benunit("lha_cap", period)) + lha_eligible = benunit("lha_eligible", period.this_year) amount = where(lha_eligible, capped_final_amount, final_amount) return max_( 0, amount - benunit("housing_benefit_non_dep_deductions", period) diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py index 50c086675..913584459 100644 --- a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py @@ -11,31 +11,31 @@ class housing_benefit_applicable_amount(Variable): def formula(benunit, period, parameters): p = parameters(period).gov.dwp.housing_benefit.allowances - any_over_SP_age = benunit.any(benunit.members("is_SP_age", period)) + any_over_sp_age = benunit.any(benunit.members("is_sp_age", period)) eldest_age = benunit("eldest_adult_age", period) older_age_threshold = p.age_threshold.older younger_age_threshold = p.age_threshold.younger u_18 = eldest_age < younger_age_threshold u_25 = eldest_age < older_age_threshold - o_25 = (eldest_age >= older_age_threshold) & ~any_over_SP_age - o_18 = (eldest_age >= younger_age_threshold) * ~any_over_SP_age + o_25 = (eldest_age >= older_age_threshold) & ~any_over_sp_age + o_18 = (eldest_age >= younger_age_threshold) * ~any_over_sp_age single = benunit("is_single_person", period) couple = benunit("is_couple", period) lone_parent = benunit("is_lone_parent", period) single_personal_allowance = ( u_25 * p.single.younger + o_25 * p.single.older - + any_over_SP_age * p.single.aged + + any_over_sp_age * p.single.aged ) couple_personal_allowance = ( u_18 * p.couple.younger + o_18 * p.couple.older - + any_over_SP_age * p.couple.aged + + any_over_sp_age * p.couple.aged ) lone_parent_personal_allowance = ( u_18 * p.lone_parent.younger + o_18 * p.lone_parent.older - + any_over_SP_age * p.lone_parent.aged + + any_over_sp_age * p.lone_parent.aged ) personal_allowance = ( single * single_personal_allowance diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_eligible.py b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_eligible.py index f1b67e33f..7ea5acb4a 100644 --- a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_eligible.py +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_eligible.py @@ -13,5 +13,5 @@ def formula(benunit, period, parameters): add(benunit, period, ["housing_benefit_reported"]) > 0 ) claiming_uc = benunit("would_claim_uc", period) - lha_eligible = benunit("LHA_eligible", period) + lha_eligible = benunit("lha_eligible", period) return already_claiming & (social | lha_eligible) & ~claiming_uc diff --git a/policyengine_uk/variables/gov/dwp/income_support.py b/policyengine_uk/variables/gov/dwp/income_support.py index 6ec0effd4..ad0f8bd5a 100644 --- a/policyengine_uk/variables/gov/dwp/income_support.py +++ b/policyengine_uk/variables/gov/dwp/income_support.py @@ -7,5 +7,5 @@ class income_support(Variable): label = "Income Support" definition_period = YEAR unit = GBP - defined_for = "would_claim_IS" + defined_for = "would_claim_is" adds = ["income_support_entitlement"] diff --git a/policyengine_uk/variables/gov/dwp/income_support_applicable_amount.py b/policyengine_uk/variables/gov/dwp/income_support_applicable_amount.py index 9c8733abf..8fc3a599f 100644 --- a/policyengine_uk/variables/gov/dwp/income_support_applicable_amount.py +++ b/policyengine_uk/variables/gov/dwp/income_support_applicable_amount.py @@ -9,8 +9,7 @@ class income_support_applicable_amount(Variable): unit = GBP def formula(benunit, period, parameters): - IS = parameters(period).gov.dwp.income_support - amounts = IS.amounts + p = parameters(period).gov.dwp.income_support.amounts younger_age = benunit("youngest_adult_age", period) older_age = benunit("eldest_adult_age", period) younger_under_18 = younger_age < 18 @@ -36,13 +35,13 @@ def formula(benunit, period, parameters): couple_old, ], [ - amounts.amount_16_24, - amounts.amount_over_25, - amounts.amount_lone_16_17, - amounts.amount_lone_over_18, - amounts.amount_couples_16_17, - amounts.amount_couples_age_gap, - amounts.amount_couples_over_18, + p.amount_16_24, + p.amount_over_25, + p.amount_lone_16_17, + p.amount_lone_over_18, + p.amount_couples_16_17, + p.amount_couples_age_gap, + p.amount_couples_over_18, ], ) personal_allowance = personal_allowance_weekly * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/income_support_applicable_income.py b/policyengine_uk/variables/gov/dwp/income_support_applicable_income.py index a3652c601..f3967b857 100644 --- a/policyengine_uk/variables/gov/dwp/income_support_applicable_income.py +++ b/policyengine_uk/variables/gov/dwp/income_support_applicable_income.py @@ -9,15 +9,15 @@ class income_support_applicable_income(Variable): unit = GBP def formula(benunit, period, parameters): - IS = parameters(period).gov.dwp.income_support + p = parameters(period).gov.dwp.income_support INCOME_COMPONENTS = [ "employment_income", "self_employment_income", "property_income", "private_pension_income", ] - bi = parameters(period).gov.contrib.ubi_center.basic_income - if bi.interactions.include_in_means_tests: + p2 = parameters(period).gov.contrib.ubi_center.basic_income + if p2.interactions.include_in_means_tests: INCOME_COMPONENTS.append("basic_income") income = add(benunit, period, INCOME_COMPONENTS) tax = add( @@ -31,7 +31,7 @@ def formula(benunit, period, parameters): family_type = benunit("family_type", period) families = family_type.possible_values # Calculate income disregards for each family type. - mt = IS.means_test + mt = p.means_test single = family_type == families.SINGLE income_disregard_single = single * mt.income_disregard_single single = family_type == families.SINGLE diff --git a/policyengine_uk/variables/gov/dwp/income_support_eligible.py b/policyengine_uk/variables/gov/dwp/income_support_eligible.py index 53fa76932..fc1ab4d01 100644 --- a/policyengine_uk/variables/gov/dwp/income_support_eligible.py +++ b/policyengine_uk/variables/gov/dwp/income_support_eligible.py @@ -12,14 +12,14 @@ def formula(benunit, period, parameters): lone_parent = benunit("is_lone_parent", period) lone_parent_with_young_child = lone_parent & youngest_child_5_or_under has_carers = add(benunit, period, ["is_carer_for_benefits"]) > 0 - none_SP_age = ~benunit.any(benunit.members("is_SP_age", period)) + none_sp_age = ~benunit.any(benunit.members("is_sp_age", period)) has_esa_income = benunit("esa_income", period) > 0 already_claiming = ( add(benunit, period, ["income_support_reported"]) > 0 ) return ( (has_carers | lone_parent_with_young_child) - & none_SP_age + & none_sp_age & ~has_esa_income & already_claiming ) diff --git a/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_earnings.py b/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_earnings.py index 9b67e54d6..ebc0fa281 100644 --- a/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_earnings.py +++ b/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_earnings.py @@ -11,13 +11,13 @@ class is_benefit_cap_exempt_earnings(Variable): def formula(benunit, period, parameters): # Check if anyone in benefit unit is over state pension age person = benunit.members - over_pension_age = person("is_SP_age", period) + over_pension_age = person("is_sp_age", period) has_pensioner = benunit.any(over_pension_age) # UC-specific exemptions # Limited capability for work and work-related activity has_lcwra = benunit.any( - person("uc_limited_capability_for_WRA", period) + person("uc_limited_capability_for_wra", period) ) # Carer element in UC indicates caring for someone with disability diff --git a/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_health_disability.py b/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_health_disability.py index e9b45275f..0379f8e66 100644 --- a/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_health_disability.py +++ b/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_health_disability.py @@ -13,13 +13,13 @@ class is_benefit_cap_exempt_health_disability(Variable): def formula(benunit, period, parameters): # Check if anyone in benefit unit is over state pension age person = benunit.members - over_pension_age = person("is_SP_age", period) + over_pension_age = person("is_sp_age", period) has_pensioner = benunit.any(over_pension_age) # UC-specific exemptions # Limited capability for work and work-related activity has_lcwra = benunit.any( - person("uc_limited_capability_for_WRA", period) + person("uc_limited_capability_for_wra", period) ) # Carer element in UC indicates caring for someone with disability diff --git a/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_other.py b/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_other.py index 2f485d5b1..7463a7ce7 100644 --- a/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_other.py +++ b/policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt_other.py @@ -11,13 +11,13 @@ class is_benefit_cap_exempt_other(Variable): def formula(benunit, period, parameters): # Check if anyone in benefit unit is over state pension age person = benunit.members - over_pension_age = person("is_SP_age", period) + over_pension_age = person("is_sp_age", period) has_pensioner = benunit.any(over_pension_age) # UC-specific exemptions # Limited capability for work and work-related activity has_lcwra = benunit.any( - person("uc_limited_capability_for_WRA", period) + person("uc_limited_capability_for_wra", period) ) # Carer element in UC indicates caring for someone with disability diff --git a/policyengine_uk/variables/gov/dwp/is_child_for_CTC.py b/policyengine_uk/variables/gov/dwp/is_child_for_ctc.py similarity index 75% rename from policyengine_uk/variables/gov/dwp/is_child_for_CTC.py rename to policyengine_uk/variables/gov/dwp/is_child_for_ctc.py index 9efe552ca..75a3086c3 100644 --- a/policyengine_uk/variables/gov/dwp/is_child_for_CTC.py +++ b/policyengine_uk/variables/gov/dwp/is_child_for_ctc.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class is_child_for_CTC(Variable): +class is_child_for_ctc(Variable): value_type = bool entity = Person label = "Child eligible for Child Tax Credit" @@ -9,4 +9,4 @@ class is_child_for_CTC(Variable): reference = "Tax Credits Act 2002 s. 8" def formula(person, period, parameters): - return person("is_child_or_QYP", period) + return person("is_child_or_qyp", period) diff --git a/policyengine_uk/variables/gov/dwp/is_CTC_child_limit_exempt.py b/policyengine_uk/variables/gov/dwp/is_ctc_child_limit_exempt.py similarity index 95% rename from policyengine_uk/variables/gov/dwp/is_CTC_child_limit_exempt.py rename to policyengine_uk/variables/gov/dwp/is_ctc_child_limit_exempt.py index d6b9e3dc8..d642cfe24 100644 --- a/policyengine_uk/variables/gov/dwp/is_CTC_child_limit_exempt.py +++ b/policyengine_uk/variables/gov/dwp/is_ctc_child_limit_exempt.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class is_CTC_child_limit_exempt(Variable): +class is_ctc_child_limit_exempt(Variable): value_type = bool entity = Person label = "Exemption from Child Tax Credit child limit" diff --git a/policyengine_uk/variables/gov/dwp/is_CTC_eligible.py b/policyengine_uk/variables/gov/dwp/is_ctc_eligible.py similarity index 82% rename from policyengine_uk/variables/gov/dwp/is_CTC_eligible.py rename to policyengine_uk/variables/gov/dwp/is_ctc_eligible.py index 3b6cafeb6..0aaa1003f 100644 --- a/policyengine_uk/variables/gov/dwp/is_CTC_eligible.py +++ b/policyengine_uk/variables/gov/dwp/is_ctc_eligible.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class is_CTC_eligible(Variable): +class is_ctc_eligible(Variable): value_type = bool entity = BenUnit label = "Child Tax Credit eligibility" @@ -13,6 +13,6 @@ def formula(benunit, period, parameters): add(benunit, period, ["child_tax_credit_reported"]) > 0 ) & (~add(benunit, period, ["would_claim_uc"]) > 0) return ( - benunit.any(benunit.members("is_child_for_CTC", period)) + benunit.any(benunit.members("is_child_for_ctc", period)) & already_claiming ) diff --git a/policyengine_uk/variables/gov/dwp/is_SP_age.py b/policyengine_uk/variables/gov/dwp/is_sp_age.py similarity index 92% rename from policyengine_uk/variables/gov/dwp/is_SP_age.py rename to policyengine_uk/variables/gov/dwp/is_sp_age.py index e7226290d..f0cc23815 100644 --- a/policyengine_uk/variables/gov/dwp/is_SP_age.py +++ b/policyengine_uk/variables/gov/dwp/is_sp_age.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class is_SP_age(Variable): +class is_sp_age(Variable): value_type = bool entity = Person label = "Whether the person is State Pension Age" diff --git a/policyengine_uk/variables/gov/dwp/is_WTC_eligible.py b/policyengine_uk/variables/gov/dwp/is_wtc_eligible.py similarity index 78% rename from policyengine_uk/variables/gov/dwp/is_WTC_eligible.py rename to policyengine_uk/variables/gov/dwp/is_wtc_eligible.py index 6ab0ed507..7c6d8e916 100644 --- a/policyengine_uk/variables/gov/dwp/is_WTC_eligible.py +++ b/policyengine_uk/variables/gov/dwp/is_wtc_eligible.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class is_WTC_eligible(Variable): +class is_wtc_eligible(Variable): value_type = bool entity = BenUnit label = "Working Tax Credit eligibility" @@ -9,7 +9,7 @@ class is_WTC_eligible(Variable): reference = "Tax Credits Act 2002 s. 10" def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit person = benunit.members person_hours = person("weekly_hours", period) total_hours = benunit.sum(person_hours) @@ -17,7 +17,7 @@ def formula(benunit, period, parameters): has_disabled_adults = benunit("num_disabled_adults", period) > 0 family_type = benunit("family_type", period) families = family_type.possible_values - old = person("age", period.this_year) >= WTC.min_hours.old_age + old = person("age", period.this_year) >= p.min_hours.old_age has_old = benunit.any(old) lone_parent = family_type == families.LONE_PARENT couple_with_children = family_type == families.COUPLE_WITH_CHILDREN @@ -28,13 +28,13 @@ def formula(benunit, period, parameters): medium_req = couple_with_children & ~lower_req higher_req = eldest_25_plus & youngest_under_60 # Calculate eligibility for each WTC group. - meets_lower = total_hours >= WTC.min_hours.lower + meets_lower = total_hours >= p.min_hours.lower meets_medium_total_hours = ( - total_hours >= WTC.min_hours.couple_with_children + total_hours >= p.min_hours.couple_with_children ) - meets_medium_person_hours = max_person_hours >= WTC.min_hours.lower + meets_medium_person_hours = max_person_hours >= p.min_hours.lower meets_medium = meets_medium_total_hours & meets_medium_person_hours - meets_higher = total_hours >= WTC.min_hours.default + meets_higher = total_hours >= p.min_hours.default already_claiming = ( add(benunit, period, ["working_tax_credit_reported"]) > 0 ) diff --git a/policyengine_uk/variables/gov/dwp/LHA_allowed_bedrooms.py b/policyengine_uk/variables/gov/dwp/lha_allowed_bedrooms.py similarity index 98% rename from policyengine_uk/variables/gov/dwp/LHA_allowed_bedrooms.py rename to policyengine_uk/variables/gov/dwp/lha_allowed_bedrooms.py index 85ccc664d..e250653ea 100644 --- a/policyengine_uk/variables/gov/dwp/LHA_allowed_bedrooms.py +++ b/policyengine_uk/variables/gov/dwp/lha_allowed_bedrooms.py @@ -6,7 +6,7 @@ warnings.filterwarnings("ignore") -class LHA_allowed_bedrooms(Variable): +class lha_allowed_bedrooms(Variable): value_type = float entity = BenUnit label = "The number of bedrooms covered by LHA for the benefit unit" diff --git a/policyengine_uk/variables/gov/dwp/LHA_cap.py b/policyengine_uk/variables/gov/dwp/lha_cap.py similarity index 86% rename from policyengine_uk/variables/gov/dwp/LHA_cap.py rename to policyengine_uk/variables/gov/dwp/lha_cap.py index d7139422c..bf8e601ce 100644 --- a/policyengine_uk/variables/gov/dwp/LHA_cap.py +++ b/policyengine_uk/variables/gov/dwp/lha_cap.py @@ -6,7 +6,7 @@ warnings.filterwarnings("ignore") -class LHA_cap(Variable): +class lha_cap(Variable): value_type = float entity = BenUnit label = "Applicable amount for LHA" @@ -16,5 +16,5 @@ class LHA_cap(Variable): def formula(benunit, period, parameters): rent = benunit("benunit_rent", period) - cap = benunit("BRMA_LHA_rate", period) + cap = benunit("brma_lha_rate", period) return min_(rent, cap) diff --git a/policyengine_uk/variables/gov/dwp/LHA_category.py b/policyengine_uk/variables/gov/dwp/lha_category.py similarity index 88% rename from policyengine_uk/variables/gov/dwp/LHA_category.py rename to policyengine_uk/variables/gov/dwp/lha_category.py index 4369497d3..27541d78e 100644 --- a/policyengine_uk/variables/gov/dwp/LHA_category.py +++ b/policyengine_uk/variables/gov/dwp/lha_category.py @@ -6,7 +6,7 @@ warnings.filterwarnings("ignore") -class LHACategory(Enum): +class lha_category_enum(Enum): A = "Shared accommodation" B = "One bedroom" C = "Two bedrooms" @@ -14,16 +14,16 @@ class LHACategory(Enum): E = "Four or more bedrooms" -class LHA_category(Variable): +class lha_category(Variable): value_type = Enum entity = BenUnit label = "LHA category for the benefit unit, taking into account LHA rules on the number of LHA-covered bedrooms" definition_period = YEAR - possible_values = LHACategory - default_value = LHACategory.C + possible_values = lha_category_enum + default_value = lha_category_enum.C def formula(benunit, period, parameters): - num_rooms = benunit("LHA_allowed_bedrooms", period.this_year) + num_rooms = benunit("lha_allowed_bedrooms", period.this_year) person = benunit.members household = person.household is_shared = benunit.any( @@ -39,7 +39,7 @@ def formula(benunit, period, parameters): # Households with only one adult, if under age threshold, can only # claim shared if without children: # https://www.legislation.gov.uk/uksi/2013/376/schedule/4/paragraph/28 - p = parameters(period).gov.dwp.LHA + p = parameters(period).gov.dwp.lha can_only_claim_shared = ( (num_adults_in_hh == 1) & (eldest_adult_age_in_hh < p.shared_accommodation_age_threshold) @@ -54,11 +54,11 @@ def formula(benunit, period, parameters): num_rooms > 3, ], [ - LHACategory.A, - LHACategory.B, - LHACategory.C, - LHACategory.D, - LHACategory.E, + lha_category_enum.A, + lha_category_enum.B, + lha_category_enum.C, + lha_category_enum.D, + lha_category_enum.E, ], ) diff --git a/policyengine_uk/variables/gov/dwp/LHA_eligible.py b/policyengine_uk/variables/gov/dwp/lha_eligible.py similarity index 95% rename from policyengine_uk/variables/gov/dwp/LHA_eligible.py rename to policyengine_uk/variables/gov/dwp/lha_eligible.py index 2a7d31bdb..ab705dd0a 100644 --- a/policyengine_uk/variables/gov/dwp/LHA_eligible.py +++ b/policyengine_uk/variables/gov/dwp/lha_eligible.py @@ -6,7 +6,7 @@ warnings.filterwarnings("ignore") -class LHA_eligible(Variable): +class lha_eligible(Variable): value_type = bool entity = BenUnit label = "Eligibility for Local Housing Allowance" diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/carer_minimum_guarantee_addition.py b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/carer_minimum_guarantee_addition.py index 0938e3676..8bb5b945d 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/carer_minimum_guarantee_addition.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/carer_minimum_guarantee_addition.py @@ -14,7 +14,7 @@ class carer_minimum_guarantee_addition(Variable): def formula(benunit, period, parameters): carers_allowance = benunit.members("carers_allowance", period) num_receiving_carers_allowance = benunit.sum(carers_allowance > 0) - gc = parameters(period).gov.dwp.pension_credit.guarantee_credit + p = parameters(period).gov.dwp.pension_credit.guarantee_credit return ( - num_receiving_carers_allowance * gc.carer.addition * WEEKS_IN_YEAR + num_receiving_carers_allowance * p.carer.addition * WEEKS_IN_YEAR ) diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/child_minimum_guarantee_addition.py b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/child_minimum_guarantee_addition.py index 4add530a6..1447e930c 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/child_minimum_guarantee_addition.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/child_minimum_guarantee_addition.py @@ -11,10 +11,10 @@ class child_minimum_guarantee_addition(Variable): def formula(benunit, period, parameters): person = benunit.members - is_child = person("is_child_or_QYP", period) - gc = parameters(period).gov.dwp.pension_credit.guarantee_credit - standard_disability_benefits = gc.child.disability.eligibility - severe_disability_benefits = gc.child.disability.severe.eligibility + is_child = person("is_child_or_qyp", period) + p = parameters(period).gov.dwp.pension_credit.guarantee_credit + standard_disability_benefits = p.child.disability.eligibility + severe_disability_benefits = p.child.disability.severe.eligibility is_disabled = add(person, period, standard_disability_benefits) > 0 is_severely_disabled = ( add(person, period, severe_disability_benefits) > 0 @@ -29,9 +29,9 @@ def formula(benunit, period, parameters): is_child & is_severely_disabled, ], [ - gc.child.addition, - gc.child.addition + gc.child.disability.addition, - gc.child.addition + gc.child.disability.severe.addition, + p.child.addition, + p.child.addition + p.child.disability.addition, + p.child.addition + p.child.disability.severe.addition, ], ) * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/severe_disability_minimum_guarantee_addition.py b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/severe_disability_minimum_guarantee_addition.py index 9593aecf8..98d3c355a 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/severe_disability_minimum_guarantee_addition.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/additional/severe_disability_minimum_guarantee_addition.py @@ -15,10 +15,10 @@ def formula(benunit, period, parameters): # 1. At least one adult receives a qualifying benefit # 2. No children (except children receiving qualifying benefits) # 3. Nobody receives Carer's Allowance (technically 'for one of the claimants', but we assume this is true) - severe_disability = parameters( + p = parameters( period ).gov.dwp.pension_credit.guarantee_credit.severe_disability - relevant_benefits = severe_disability.relevant_benefits + relevant_benefits = p.relevant_benefits person = benunit.members person_receives_qualifying_benefits = ( add(person, period, relevant_benefits) > 0 @@ -34,9 +34,4 @@ def formula(benunit, period, parameters): add(benunit, period, ["carers_allowance"]) > 0 ) eligible = ~any_children_without_benefits & ~carers_allowance_received - return ( - eligible - * count_eligible_adults - * severe_disability.addition - * WEEKS_IN_YEAR - ) + return eligible * count_eligible_adults * p.addition * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/standard_minimum_guarantee.py b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/standard_minimum_guarantee.py index 3c52220b5..902e93085 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/standard_minimum_guarantee.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/guarantee_credit/minimum_guarantee/standard_minimum_guarantee.py @@ -11,6 +11,6 @@ class standard_minimum_guarantee(Variable): def formula(benunit, period, parameters): relation_type = benunit("relation_type", period) - pc = parameters(period).gov.dwp.pension_credit - weekly_rate = pc.guarantee_credit.minimum_guarantee[relation_type] + p = parameters(period).gov.dwp.pension_credit + weekly_rate = p.guarantee_credit.minimum_guarantee[relation_type] return weekly_rate * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/is_pension_credit_eligible.py b/policyengine_uk/variables/gov/dwp/pension_credit/is_pension_credit_eligible.py index 4761c9c2c..1a680e488 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/is_pension_credit_eligible.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/is_pension_credit_eligible.py @@ -10,7 +10,7 @@ class is_pension_credit_eligible(Variable): reference = "https://www.legislation.gov.uk/ukpga/2002/16/section/1" def formula(benunit, period, parameters): - has_sp_age_member = benunit.any(benunit.members("is_SP_age", period)) + has_sp_age_member = benunit.any(benunit.members("is_sp_age", period)) is_gc_eligible = benunit("is_guarantee_credit_eligible", period) is_sc_eligible = benunit("is_savings_credit_eligible", period) return has_sp_age_member & (is_gc_eligible | is_sc_eligible) diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/pension_credit_income.py b/policyengine_uk/variables/gov/dwp/pension_credit/pension_credit_income.py index df44d712f..d0703b7ff 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/pension_credit_income.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/pension_credit_income.py @@ -10,14 +10,14 @@ class pension_credit_income(Variable): reference = "https://www.legislation.gov.uk/ukpga/2002/16/section/15" def formula(benunit, period, parameters): - pc = parameters(period).gov.dwp.pension_credit - sources = pc.guarantee_credit.income + p = parameters(period).gov.dwp.pension_credit + sources = p.guarantee_credit.income total = add(benunit, period, sources) - bi = parameters(period).gov.contrib.ubi_center.basic_income - if bi.interactions.include_in_means_tests: + p2 = parameters(period).gov.contrib.ubi_center.basic_income + if p2.interactions.include_in_means_tests: total += add(benunit, period, ["basic_income"]) pension_contributions = add(benunit, period, ["pension_contributions"]) tax = add(benunit, period, ["income_tax", "national_insurance"]) - pen_con_deduction_rate = pc.income.pension_contributions_deduction + pen_con_deduction_rate = p.income.pension_contributions_deduction deductions = tax + pension_contributions * pen_con_deduction_rate return max_(0, total - deductions) diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/is_savings_credit_eligible.py b/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/is_savings_credit_eligible.py index c57ecbdcf..6f557ed75 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/is_savings_credit_eligible.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/is_savings_credit_eligible.py @@ -15,8 +15,8 @@ def formula(benunit, period, parameters): benunit.members("meets_savings_credit_age_requirement", period) ) income = benunit("savings_credit_income", period) - sc = parameters(period).gov.dwp.pension_credit.savings_credit + p = parameters(period).gov.dwp.pension_credit.savings_credit relation_type = benunit("relation_type", period) - threshold = sc.threshold[relation_type] + threshold = p.threshold[relation_type] meets_income_threshold = income >= threshold return has_pre_cutoff_spa_member & meets_income_threshold diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit.py b/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit.py index ed6f120ee..68f7d12de 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit.py @@ -11,18 +11,18 @@ class savings_credit(Variable): def formula(benunit, period, parameters): income = benunit("savings_credit_income", period) - sc = parameters(period).gov.dwp.pension_credit.savings_credit + p = parameters(period).gov.dwp.pension_credit.savings_credit relation_type = benunit("relation_type", period) - threshold = sc.threshold[relation_type] * WEEKS_IN_YEAR + threshold = p.threshold[relation_type] * WEEKS_IN_YEAR minimum_guarantee = benunit("minimum_guarantee", period) income_over_threshold = max_(income - threshold, 0) income_over_mg = max_(income - minimum_guarantee, 0) - maximum_savings_credit = sc.rate.phase_in * ( + maximum_savings_credit = p.rate.phase_in * ( minimum_guarantee - threshold ) phased_in_sc = min_( - maximum_savings_credit, sc.rate.phase_in * income_over_threshold + maximum_savings_credit, p.rate.phase_in * income_over_threshold ) - sc_reduction = sc.rate.phase_out * income_over_mg + sc_reduction = p.rate.phase_out * income_over_mg eligible = benunit("is_savings_credit_eligible", period) return max_(0, phased_in_sc - sc_reduction) * eligible diff --git a/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit_income.py b/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit_income.py index fe3e40e4f..337b019b6 100644 --- a/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit_income.py +++ b/policyengine_uk/variables/gov/dwp/pension_credit/savings_credit/savings_credit_income.py @@ -12,8 +12,8 @@ class savings_credit_income(Variable): def formula(benunit, period, parameters): guarantee_credit_income = benunit("pension_credit_income", period) - pc = parameters(period).gov.dwp.pension_credit + p = parameters(period).gov.dwp.pension_credit excluded_income = add( - benunit, period, pc.savings_credit.excluded_income + benunit, period, p.savings_credit.excluded_income ) return max_(0, guarantee_credit_income - excluded_income) diff --git a/policyengine_uk/variables/gov/dwp/pip/pip_dl.py b/policyengine_uk/variables/gov/dwp/pip/pip_dl.py index 3ed4371cf..eabbed79a 100644 --- a/policyengine_uk/variables/gov/dwp/pip/pip_dl.py +++ b/policyengine_uk/variables/gov/dwp/pip/pip_dl.py @@ -10,7 +10,7 @@ class pip_dl(Variable): unit = GBP def formula(person, period, parameters): - pip_dl = parameters(period).gov.dwp.pip.daily_living + p = parameters(period).gov.dwp.pip.daily_living category = person("pip_dl_category", period) return ( select( @@ -20,8 +20,8 @@ def formula(person, period, parameters): category == PIPCategory.NONE, ], [ - pip_dl.enhanced, - pip_dl.standard, + p.enhanced, + p.standard, 0, ], ) diff --git a/policyengine_uk/variables/gov/dwp/state_pension_age.py b/policyengine_uk/variables/gov/dwp/state_pension_age.py index 641e07e80..534183017 100644 --- a/policyengine_uk/variables/gov/dwp/state_pension_age.py +++ b/policyengine_uk/variables/gov/dwp/state_pension_age.py @@ -9,5 +9,5 @@ class state_pension_age(Variable): unit = "year" def formula(person, period, parameters): - SP = parameters(period).gov.dwp.state_pension - return where(person("is_male", period), SP.age.male, SP.age.female) + p = parameters(period).gov.dwp.state_pension + return where(person("is_male", period), p.age.male, p.age.female) diff --git a/policyengine_uk/variables/gov/dwp/state_pension_type.py b/policyengine_uk/variables/gov/dwp/state_pension_type.py index 1340ecfdf..e6214ce41 100644 --- a/policyengine_uk/variables/gov/dwp/state_pension_type.py +++ b/policyengine_uk/variables/gov/dwp/state_pension_type.py @@ -16,10 +16,10 @@ class state_pension_type(Variable): default_value = StatePensionType.BASIC def formula(person, period, parameters): - sp = parameters.gov.dwp.state_pension + p = parameters.gov.dwp.state_pension male = person("is_male", period) - last_entry = sp.new_state_pension.active.values_list[0] - is_sp_age = person("is_SP_age", period) + last_entry = p.new_state_pension.active.values_list[0] + is_sp_age = person("is_sp_age", period) if not last_entry: values_if_sp_age = where( is_sp_age, StatePensionType.BASIC, StatePensionType.NONE @@ -27,8 +27,8 @@ def formula(person, period, parameters): else: instant = last_entry.instant_str years_since_instant = period.start.year - int(instant[:4]) - male_age = sp.age.male(instant) + years_since_instant - female_age = sp.age.female(instant) + years_since_instant + male_age = p.age.male(instant) + years_since_instant + female_age = p.age.female(instant) + years_since_instant age = person("age", period) over_age = where(male, age >= male_age, age >= female_age) values_if_sp_age = where( diff --git a/policyengine_uk/variables/gov/dwp/tax_credits_applicable_income.py b/policyengine_uk/variables/gov/dwp/tax_credits_applicable_income.py index 50b88a619..8320359c5 100644 --- a/policyengine_uk/variables/gov/dwp/tax_credits_applicable_income.py +++ b/policyengine_uk/variables/gov/dwp/tax_credits_applicable_income.py @@ -10,7 +10,7 @@ class tax_credits_applicable_income(Variable): reference = "The Tax Credits (Definition and Calculation of Income) Regulations 2002 s. 3" def formula(benunit, period, parameters): - TC = parameters(period).gov.dwp.tax_credits + p = parameters(period).gov.dwp.tax_credits STEP_1_COMPONENTS = [ "private_pension_income", "savings_interest_income", @@ -18,15 +18,15 @@ def formula(benunit, period, parameters): "property_income", ] income = add(benunit, period, STEP_1_COMPONENTS) - income = max_(income - TC.means_test.non_earned_disregard, 0) + income = max_(income - p.means_test.non_earned_disregard, 0) STEP_2_COMPONENTS = [ "employment_income", "self_employment_income", "social_security_income", "miscellaneous_income", ] - bi = parameters(period).gov.contrib.ubi_center.basic_income - if bi.interactions.include_in_means_tests: + p2 = parameters(period).gov.contrib.ubi_center.basic_income + if p2.interactions.include_in_means_tests: STEP_2_COMPONENTS.append("basic_income") income += add(benunit, period, STEP_2_COMPONENTS) EXEMPT_BENEFITS = ["income_support", "esa_income", "jsa_income"] diff --git a/policyengine_uk/variables/gov/dwp/tax_credits_reduction.py b/policyengine_uk/variables/gov/dwp/tax_credits_reduction.py index e503196b2..07f7527f9 100644 --- a/policyengine_uk/variables/gov/dwp/tax_credits_reduction.py +++ b/policyengine_uk/variables/gov/dwp/tax_credits_reduction.py @@ -10,12 +10,12 @@ class tax_credits_reduction(Variable): def formula(benunit, period, parameters): means_test = parameters(period).gov.dwp.tax_credits.means_test - CTC_amount = benunit("CTC_maximum_rate", period) - WTC_amount = benunit("WTC_maximum_rate", period) - CTC_only = (CTC_amount > 0) & (WTC_amount == 0) + ctc_amount = benunit("ctc_maximum_rate", period) + wtc_amount = benunit("wtc_maximum_rate", period) + ctc_only = (ctc_amount > 0) & (wtc_amount == 0) threshold = where( - CTC_only, - means_test.income_threshold_CTC_only, + ctc_only, + means_test.income_threshold_ctc_only, means_test.income_threshold, ) income = benunit("tax_credits_applicable_income", period) diff --git a/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_LCWRA_element.py b/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_lcwra_element.py similarity index 85% rename from policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_LCWRA_element.py rename to policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_lcwra_element.py index b966c3c56..9f2c1e7e6 100644 --- a/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_LCWRA_element.py +++ b/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_lcwra_element.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class uc_LCWRA_element(Variable): +class uc_lcwra_element(Variable): value_type = float entity = BenUnit label = ( @@ -13,7 +13,7 @@ class uc_LCWRA_element(Variable): def formula(benunit, period, parameters): p = parameters(period).gov.dwp.universal_credit.elements.disabled limited_capability = benunit.members( - "uc_limited_capability_for_WRA", period + "uc_limited_capability_for_wra", period ) person_amounts = limited_capability * p.amount return benunit.sum(person_amounts) * MONTHS_IN_YEAR diff --git a/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_limited_capability_for_WRA.py b/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_limited_capability_for_wra.py similarity index 90% rename from policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_limited_capability_for_WRA.py rename to policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_limited_capability_for_wra.py index 964b1780a..e655d25d8 100644 --- a/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_limited_capability_for_WRA.py +++ b/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/limited_work_ability/uc_limited_capability_for_wra.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class uc_limited_capability_for_WRA(Variable): +class uc_limited_capability_for_wra(Variable): value_type = bool entity = Person label = "Assessed to have limited capability for work-related activity" diff --git a/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/uc_disability_elements.py b/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/uc_disability_elements.py index b8b455284..f3e9f547d 100644 --- a/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/uc_disability_elements.py +++ b/policyengine_uk/variables/gov/dwp/universal_credit/disability_element/uc_disability_elements.py @@ -11,5 +11,5 @@ class uc_disability_elements(Variable): adds = [ "uc_individual_disabled_child_element", "uc_individual_severely_disabled_child_element", - "uc_LCWRA_element", + "uc_lcwra_element", ] diff --git a/policyengine_uk/variables/gov/dwp/universal_credit/housing_costs_element/uc_housing_costs_element.py b/policyengine_uk/variables/gov/dwp/universal_credit/housing_costs_element/uc_housing_costs_element.py index 1bba4ddef..faccad372 100644 --- a/policyengine_uk/variables/gov/dwp/universal_credit/housing_costs_element/uc_housing_costs_element.py +++ b/policyengine_uk/variables/gov/dwp/universal_credit/housing_costs_element/uc_housing_costs_element.py @@ -14,7 +14,7 @@ def formula(benunit, period, parameters): ) tenure_types = tenure_type.possible_values rent = benunit("benunit_rent", period) - rent_cap = benunit("LHA_cap", period) + rent_cap = benunit("lha_cap", period) capped_rent_amount = min_(rent_cap, rent) max_housing_costs = select( [ diff --git a/policyengine_uk/variables/gov/dwp/universal_credit/is_uc_eligible.py b/policyengine_uk/variables/gov/dwp/universal_credit/is_uc_eligible.py index 3fc3fedd5..dab6596fe 100644 --- a/policyengine_uk/variables/gov/dwp/universal_credit/is_uc_eligible.py +++ b/policyengine_uk/variables/gov/dwp/universal_credit/is_uc_eligible.py @@ -9,4 +9,4 @@ class is_uc_eligible(Variable): definition_period = YEAR def formula(benunit, period, parameters): - return benunit.any(benunit.members("is_WA_adult", period)) + return benunit.any(benunit.members("is_wa_adult", period)) diff --git a/policyengine_uk/variables/gov/dwp/universal_credit/work_allowance/is_uc_work_allowance_eligible.py b/policyengine_uk/variables/gov/dwp/universal_credit/work_allowance/is_uc_work_allowance_eligible.py index bd86c0bb6..b6a0f9bac 100644 --- a/policyengine_uk/variables/gov/dwp/universal_credit/work_allowance/is_uc_work_allowance_eligible.py +++ b/policyengine_uk/variables/gov/dwp/universal_credit/work_allowance/is_uc_work_allowance_eligible.py @@ -9,8 +9,8 @@ class is_uc_work_allowance_eligible(Variable): def formula(benunit, period, parameters): person = benunit.members - has_LCWRA = benunit.any( - person("uc_limited_capability_for_WRA", period) + has_lcwra = benunit.any( + person("uc_limited_capability_for_wra", period) ) has_children = benunit.any(person("is_child", period)) - return has_LCWRA | has_children + return has_lcwra | has_children diff --git a/policyengine_uk/variables/gov/dwp/winter_fuel_allowance.py b/policyengine_uk/variables/gov/dwp/winter_fuel_allowance.py index 0c23d68e7..3897b3d5d 100644 --- a/policyengine_uk/variables/gov/dwp/winter_fuel_allowance.py +++ b/policyengine_uk/variables/gov/dwp/winter_fuel_allowance.py @@ -13,8 +13,8 @@ def formula(household, period, parameters): household("country", period).decode_to_str() == "SCOTLAND" ) age = household.members("age", period) - is_SP_age = household.members("is_SP_age", period) - wfp = parameters(period).gov.dwp.winter_fuel_payment + is_sp_age = household.members("is_sp_age", period) + p = parameters(period).gov.dwp.winter_fuel_payment on_mtb = ( add( household, @@ -29,31 +29,30 @@ def formula(household, period, parameters): > 0 ) taxable_income = household.members("total_income", period) - is_SP_age = household.members("is_SP_age", period) + is_sp_age = household.members("is_sp_age", period) country = household("country", period).decode_to_str() in_england_or_wales = (country == "ENGLAND") | (country == "WALES") meets_income_passport = ( household.any( - is_SP_age + is_sp_age & ( taxable_income - < wfp.eligibility.taxable_income_test.maximum_taxable_income + < p.eligibility.taxable_income_test.maximum_taxable_income ) ) & in_england_or_wales - & wfp.eligibility.taxable_income_test.use_maximum_taxable_income + & p.eligibility.taxable_income_test.use_maximum_taxable_income ) meets_mtb_requirement = ( - on_mtb - | (not wfp.eligibility.require_benefits) - | meets_income_passport + on_mtb | ~p.eligibility.require_benefits | meets_income_passport ) - meets_spa_requirement = household.any(is_SP_age) | ( - not wfp.eligibility.state_pension_age_requirement + meets_spa_requirement = ( + household.any(is_sp_age) + | ~p.eligibility.state_pension_age_requirement ) meets_higher_age_requirement = household.any( - age >= wfp.eligibility.higher_age_requirement + age >= p.eligibility.higher_age_requirement ) qualifies_for_higher = ( meets_mtb_requirement @@ -67,6 +66,6 @@ def formula(household, period, parameters): ) return ~in_scotland * ( - wfp.amount.higher * qualifies_for_higher - + wfp.amount.lower * qualifies_for_lower + p.amount.higher * qualifies_for_higher + + p.amount.lower * qualifies_for_lower ) diff --git a/policyengine_uk/variables/gov/dwp/working_tax_credit.py b/policyengine_uk/variables/gov/dwp/working_tax_credit.py index 6611fcd8a..5ebb041d3 100644 --- a/policyengine_uk/variables/gov/dwp/working_tax_credit.py +++ b/policyengine_uk/variables/gov/dwp/working_tax_credit.py @@ -7,5 +7,5 @@ class working_tax_credit(Variable): label = "Working Tax Credit" definition_period = YEAR unit = GBP - defined_for = "would_claim_WTC" + defined_for = "would_claim_wtc" adds = ["wtc_entitlement"] diff --git a/policyengine_uk/variables/gov/dwp/working_tax_credit_pre_minimum.py b/policyengine_uk/variables/gov/dwp/working_tax_credit_pre_minimum.py index fdea721f5..eec264c24 100644 --- a/policyengine_uk/variables/gov/dwp/working_tax_credit_pre_minimum.py +++ b/policyengine_uk/variables/gov/dwp/working_tax_credit_pre_minimum.py @@ -8,13 +8,13 @@ class working_tax_credit_pre_minimum(Variable): documentation = ( "Working Tax Credit amount before the minimum tax credit is applied" ) - defined_for = "would_claim_WTC" + defined_for = "would_claim_wtc" definition_period = YEAR unit = GBP def formula(benunit, period, parameters): return max_( 0, - benunit("WTC_maximum_rate", period) + benunit("wtc_maximum_rate", period) - benunit("tax_credits_reduction", period), ) diff --git a/policyengine_uk/variables/gov/dwp/would_claim_CTC.py b/policyengine_uk/variables/gov/dwp/would_claim_ctc.py similarity index 94% rename from policyengine_uk/variables/gov/dwp/would_claim_CTC.py rename to policyengine_uk/variables/gov/dwp/would_claim_ctc.py index fea0e73e8..4101d3015 100644 --- a/policyengine_uk/variables/gov/dwp/would_claim_CTC.py +++ b/policyengine_uk/variables/gov/dwp/would_claim_ctc.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class would_claim_CTC(Variable): +class would_claim_ctc(Variable): value_type = bool entity = BenUnit label = "Would claim Child Tax Credit" diff --git a/policyengine_uk/variables/gov/dwp/would_claim_IS.py b/policyengine_uk/variables/gov/dwp/would_claim_is.py similarity index 94% rename from policyengine_uk/variables/gov/dwp/would_claim_IS.py rename to policyengine_uk/variables/gov/dwp/would_claim_is.py index 50c04c601..901ef9a5c 100644 --- a/policyengine_uk/variables/gov/dwp/would_claim_IS.py +++ b/policyengine_uk/variables/gov/dwp/would_claim_is.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class would_claim_IS(Variable): +class would_claim_is(Variable): value_type = bool entity = BenUnit label = "Would claim Income Support" diff --git a/policyengine_uk/variables/gov/dwp/would_claim_WTC.py b/policyengine_uk/variables/gov/dwp/would_claim_wtc.py similarity index 94% rename from policyengine_uk/variables/gov/dwp/would_claim_WTC.py rename to policyengine_uk/variables/gov/dwp/would_claim_wtc.py index f86f58654..cfc4528df 100644 --- a/policyengine_uk/variables/gov/dwp/would_claim_WTC.py +++ b/policyengine_uk/variables/gov/dwp/would_claim_wtc.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class would_claim_WTC(Variable): +class would_claim_wtc(Variable): value_type = bool entity = BenUnit label = "Would claim Working Tax Credit" diff --git a/policyengine_uk/variables/gov/dwp/WTC_basic_element.py b/policyengine_uk/variables/gov/dwp/wtc_basic_element.py similarity index 84% rename from policyengine_uk/variables/gov/dwp/WTC_basic_element.py rename to policyengine_uk/variables/gov/dwp/wtc_basic_element.py index 6d914b550..f53c8d2cc 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_basic_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_basic_element.py @@ -1,14 +1,14 @@ from policyengine_uk.model_api import * -class WTC_basic_element(Variable): +class wtc_basic_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit basic element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 11" unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): return parameters( diff --git a/policyengine_uk/variables/gov/dwp/WTC_childcare_element.py b/policyengine_uk/variables/gov/dwp/wtc_childcare_element.py similarity index 60% rename from policyengine_uk/variables/gov/dwp/WTC_childcare_element.py rename to policyengine_uk/variables/gov/dwp/wtc_childcare_element.py index 9bff28701..d342716b1 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_childcare_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_childcare_element.py @@ -1,21 +1,21 @@ from policyengine_uk.model_api import * -class WTC_childcare_element(Variable): +class wtc_childcare_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit childcare element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 11" unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit num_children = benunit("num_children", period) - childcare_1 = (num_children == 1) * WTC.elements.childcare_1 - childcare_2 = (num_children > 1) * WTC.elements.childcare_2 + childcare_1 = (num_children == 1) * p.elements.childcare_1 + childcare_2 = (num_children > 1) * p.elements.childcare_2 max_childcare_amount = (childcare_1 + childcare_2) * WEEKS_IN_YEAR expenses = add(benunit, period, ["childcare_expenses"]) eligible_expenses = min_(max_childcare_amount, expenses) - return WTC.elements.childcare_coverage * eligible_expenses + return p.elements.childcare_coverage * eligible_expenses diff --git a/policyengine_uk/variables/gov/dwp/WTC_couple_element.py b/policyengine_uk/variables/gov/dwp/wtc_couple_element.py similarity index 63% rename from policyengine_uk/variables/gov/dwp/WTC_couple_element.py rename to policyengine_uk/variables/gov/dwp/wtc_couple_element.py index 08350266d..82773d18d 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_couple_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_couple_element.py @@ -1,17 +1,17 @@ from policyengine_uk.model_api import * -class WTC_couple_element(Variable): +class wtc_couple_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit couple element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 11" unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit relation_type = benunit("relation_type", period) relations = relation_type.possible_values - return (relation_type == relations.COUPLE) * WTC.elements.couple + return (relation_type == relations.COUPLE) * p.elements.couple diff --git a/policyengine_uk/variables/gov/dwp/WTC_disabled_element.py b/policyengine_uk/variables/gov/dwp/wtc_disabled_element.py similarity index 68% rename from policyengine_uk/variables/gov/dwp/WTC_disabled_element.py rename to policyengine_uk/variables/gov/dwp/wtc_disabled_element.py index 48ff30c18..fb14e68fe 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_disabled_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_disabled_element.py @@ -1,20 +1,20 @@ from policyengine_uk.model_api import * -class WTC_disabled_element(Variable): +class wtc_disabled_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit disabled element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 11" unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit person = benunit.members person_meets_hours = ( - person("weekly_hours", period) >= WTC.min_hours.lower + person("weekly_hours", period) >= p.min_hours.lower ) person_qualifies = ( person_meets_hours @@ -22,4 +22,4 @@ def formula(benunit, period, parameters): & person("is_adult", period) ) qualifies = benunit.any(person_qualifies) - return qualifies * WTC.elements.disabled + return qualifies * p.elements.disabled diff --git a/policyengine_uk/variables/gov/dwp/wtc_entitlement.py b/policyengine_uk/variables/gov/dwp/wtc_entitlement.py index ff4eeabdc..7ded93946 100644 --- a/policyengine_uk/variables/gov/dwp/wtc_entitlement.py +++ b/policyengine_uk/variables/gov/dwp/wtc_entitlement.py @@ -7,7 +7,7 @@ class wtc_entitlement(Variable): definition_period = YEAR value_type = float unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): return where( diff --git a/policyengine_uk/variables/gov/dwp/WTC_lone_parent_element.py b/policyengine_uk/variables/gov/dwp/wtc_lone_parent_element.py similarity index 68% rename from policyengine_uk/variables/gov/dwp/WTC_lone_parent_element.py rename to policyengine_uk/variables/gov/dwp/wtc_lone_parent_element.py index 8500415a7..7ed38a040 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_lone_parent_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_lone_parent_element.py @@ -1,18 +1,18 @@ from policyengine_uk.model_api import * -class WTC_lone_parent_element(Variable): +class wtc_lone_parent_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit lone parent element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 11" unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit family_type = benunit("family_type", period) families = family_type.possible_values lone_parent = family_type == families.LONE_PARENT - return lone_parent * WTC.elements.lone_parent + return lone_parent * p.elements.lone_parent diff --git a/policyengine_uk/variables/gov/dwp/wtc_maximum_rate.py b/policyengine_uk/variables/gov/dwp/wtc_maximum_rate.py new file mode 100644 index 000000000..67b81a8b7 --- /dev/null +++ b/policyengine_uk/variables/gov/dwp/wtc_maximum_rate.py @@ -0,0 +1,20 @@ +from policyengine_uk.model_api import * + + +class wtc_maximum_rate(Variable): + value_type = float + entity = BenUnit + label = "Working Tax Credit maximum rate" + definition_period = YEAR + reference = "Tax Credits Act 2002 s. 11" + unit = GBP + + adds = [ + "wtc_basic_element", + "wtc_couple_element", + "wtc_lone_parent_element", + "wtc_disabled_element", + "wtc_severely_disabled_element", + "wtc_worker_element", + "wtc_childcare_element", + ] diff --git a/policyengine_uk/variables/gov/dwp/WTC_severely_disabled_element.py b/policyengine_uk/variables/gov/dwp/wtc_severely_disabled_element.py similarity index 62% rename from policyengine_uk/variables/gov/dwp/WTC_severely_disabled_element.py rename to policyengine_uk/variables/gov/dwp/wtc_severely_disabled_element.py index d1bc2cfe3..65139f5ec 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_severely_disabled_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_severely_disabled_element.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class WTC_severely_disabled_element(Variable): +class wtc_severely_disabled_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit severely disabled element" @@ -10,9 +10,9 @@ class WTC_severely_disabled_element(Variable): unit = GBP def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit amount = ( benunit("num_severely_disabled_adults", period) - * WTC.elements.severely_disabled + * p.elements.severely_disabled ) - return benunit("is_WTC_eligible", period) * amount + return benunit("is_wtc_eligible", period) * amount diff --git a/policyengine_uk/variables/gov/dwp/WTC_worker_element.py b/policyengine_uk/variables/gov/dwp/wtc_worker_element.py similarity index 54% rename from policyengine_uk/variables/gov/dwp/WTC_worker_element.py rename to policyengine_uk/variables/gov/dwp/wtc_worker_element.py index 65d231662..89ea6e160 100644 --- a/policyengine_uk/variables/gov/dwp/WTC_worker_element.py +++ b/policyengine_uk/variables/gov/dwp/wtc_worker_element.py @@ -1,17 +1,17 @@ from policyengine_uk.model_api import * -class WTC_worker_element(Variable): +class wtc_worker_element(Variable): value_type = float entity = BenUnit label = "Working Tax Credit worker element" definition_period = YEAR reference = "Tax Credits Act 2002 s. 11" unit = GBP - defined_for = "is_WTC_eligible" + defined_for = "is_wtc_eligible" def formula(benunit, period, parameters): - WTC = parameters(period).gov.dwp.tax_credits.working_tax_credit + p = parameters(period).gov.dwp.tax_credits.working_tax_credit hours = add(benunit, period, ["weekly_hours"]) - meets_hours_requirement = hours >= WTC.min_hours.default - return meets_hours_requirement * WTC.elements.worker + meets_hours_requirement = hours >= p.min_hours.default + return meets_hours_requirement * p.elements.worker diff --git a/policyengine_uk/variables/gov/gov_tax.py b/policyengine_uk/variables/gov/gov_tax.py index 131cf8ef7..a6501109e 100644 --- a/policyengine_uk/variables/gov/gov_tax.py +++ b/policyengine_uk/variables/gov/gov_tax.py @@ -24,7 +24,7 @@ class gov_tax(Variable): "non_primary_residence_wealth_tax", "income_tax", "national_insurance", - "LVT", + "lvt", "carbon_tax", "capital_gains_tax", "private_school_vat", diff --git a/policyengine_uk/variables/gov/hmrc/baseline_business_rates.py b/policyengine_uk/variables/gov/hmrc/baseline_business_rates.py index b426300c2..31593d4f3 100644 --- a/policyengine_uk/variables/gov/hmrc/baseline_business_rates.py +++ b/policyengine_uk/variables/gov/hmrc/baseline_business_rates.py @@ -12,11 +12,11 @@ class baseline_business_rates(Variable): unit = GBP def formula(household, period, parameters): - br = parameters(period).gov.hmrc.business_rates.statistics.revenue + p = parameters(period).gov.hmrc.business_rates.statistics.revenue total_revenue = ( - br.ENGLAND # HMRC - + br.SCOTLAND # Revenue Scotland - + br.WALES # Welsh Revenue Authority - + br.NORTHERN_IRELAND # HMRC + p.ENGLAND # HMRC + + p.SCOTLAND # Revenue Scotland + + p.WALES # Welsh Revenue Authority + + p.NORTHERN_IRELAND # HMRC ) return household("shareholding", period) * total_revenue diff --git a/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_elasticity.py b/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_elasticity.py index 95b98b9d3..55d5b1824 100644 --- a/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_elasticity.py +++ b/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_elasticity.py @@ -10,5 +10,5 @@ class capital_gains_elasticity(Variable): definition_period = YEAR def formula(person, period, parameters): - gov = parameters(period).gov - return gov.simulation.capital_gains_responses.elasticity + p = parameters(period).gov + return p.simulation.capital_gains_responses.elasticity diff --git a/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_tax.py b/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_tax.py index dedcb6d9b..da8e4977c 100644 --- a/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_tax.py +++ b/policyengine_uk/variables/gov/hmrc/capital_gains_tax/capital_gains_tax.py @@ -10,9 +10,9 @@ class capital_gains_tax(Variable): unit = GBP def formula(person, period, parameters): - hmrc = parameters(period).gov.hmrc - cgt = hmrc.cgt - it = hmrc.income_tax + p = parameters(period).gov.hmrc + cgt = p.cgt + it = p.income_tax ani = person("adjusted_net_income", period) gains = max_(0, person("capital_gains", period)) diff --git a/policyengine_uk/variables/gov/hmrc/child_benefit_less_tax_charge.py b/policyengine_uk/variables/gov/hmrc/child_benefit_less_tax_charge.py index 491f0adfd..1d94d3e02 100644 --- a/policyengine_uk/variables/gov/hmrc/child_benefit_less_tax_charge.py +++ b/policyengine_uk/variables/gov/hmrc/child_benefit_less_tax_charge.py @@ -12,4 +12,4 @@ class child_benefit_less_tax_charge(Variable): unit = GBP adds = ["child_benefit"] - subtracts = ["CB_HITC"] + subtracts = ["cb_hitc"] diff --git a/policyengine_uk/variables/gov/hmrc/child_benefit_opts_out.py b/policyengine_uk/variables/gov/hmrc/child_benefit_opts_out.py index a7526c47b..bfc058cab 100644 --- a/policyengine_uk/variables/gov/hmrc/child_benefit_opts_out.py +++ b/policyengine_uk/variables/gov/hmrc/child_benefit_opts_out.py @@ -13,9 +13,9 @@ class child_benefit_opts_out(Variable): def formula(benunit, period, parameters): if benunit.simulation.dataset is not None: ani = benunit.members("adjusted_net_income", period) - hmrc = parameters(period).gov.hmrc - cb_hitc = hmrc.income_tax.charges.CB_HITC - cb = hmrc.child_benefit + p = parameters(period).gov.hmrc + cb_hitc = p.income_tax.charges.cb_hitc + cb = p.child_benefit in_phase_out = ani > cb_hitc.phase_out_end return where( benunit.any(in_phase_out), diff --git a/policyengine_uk/variables/gov/hmrc/child_benefit_respective_amount.py b/policyengine_uk/variables/gov/hmrc/child_benefit_respective_amount.py index 810cd3b0e..65e752c5c 100644 --- a/policyengine_uk/variables/gov/hmrc/child_benefit_respective_amount.py +++ b/policyengine_uk/variables/gov/hmrc/child_benefit_respective_amount.py @@ -12,7 +12,7 @@ class child_benefit_respective_amount(Variable): "https://www.legislation.gov.uk/ukpga/1992/4/part/IX", "https://www.legislation.gov.uk/uksi/2006/965/regulation/2", ) - defined_for = "is_child_or_QYP" + defined_for = "is_child_or_qyp" def formula(person, period, parameters): eligible = True @@ -24,8 +24,6 @@ def formula(person, period, parameters): == 0 ) is_eldest = person("is_eldest_child", period.this_year) - child_benefit = parameters(period).gov.hmrc.child_benefit.amount - amount = where( - is_eldest, child_benefit.eldest, child_benefit.additional - ) + p = parameters(period).gov.hmrc.child_benefit.amount + amount = where(is_eldest, p.eldest, p.additional) return eligible * amount * WEEKS_IN_YEAR / MONTHS_IN_YEAR diff --git a/policyengine_uk/variables/gov/hmrc/corporate_sdlt.py b/policyengine_uk/variables/gov/hmrc/corporate_sdlt.py index 93e3a121f..31fb06281 100644 --- a/policyengine_uk/variables/gov/hmrc/corporate_sdlt.py +++ b/policyengine_uk/variables/gov/hmrc/corporate_sdlt.py @@ -12,8 +12,8 @@ class corporate_sdlt(Variable): unit = GBP def formula(household, period, parameters): - sd = parameters(period).gov.hmrc.stamp_duty.statistics + p = parameters(period).gov.hmrc.stamp_duty.statistics return household("shareholding", period) * ( - sd.residential.corporate.revenue - + sd.non_residential.corporate.revenue + p.residential.corporate.revenue + + p.non_residential.corporate.revenue ) diff --git a/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py b/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py index 3169b8db6..10de1580e 100644 --- a/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py +++ b/policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py @@ -13,7 +13,7 @@ class fuel_duty(Variable): unit = GBP def formula(household, period, parameters): - fd = parameters(period).gov.hmrc.fuel_duty + p = parameters(period).gov.hmrc.fuel_duty petrol_litres = ( household("petrol_litres", period.this_year) / MONTHS_IN_YEAR ) @@ -21,7 +21,7 @@ def formula(household, period, parameters): household("diesel_litres", period.this_year) / MONTHS_IN_YEAR ) return ( - fd.petrol_and_diesel + p.petrol_and_diesel * (petrol_litres + diesel_litres) / STATUTORY_CONSUMER_INCIDENCE * ECONOMIC_CONSUMER_INCIDENCE diff --git a/policyengine_uk/variables/gov/hmrc/household_tax.py b/policyengine_uk/variables/gov/hmrc/household_tax.py index 5655b2477..022c8a63f 100644 --- a/policyengine_uk/variables/gov/hmrc/household_tax.py +++ b/policyengine_uk/variables/gov/hmrc/household_tax.py @@ -22,7 +22,7 @@ class household_tax(Variable): "non_primary_residence_wealth_tax", "income_tax", "national_insurance", - "LVT", + "lvt", "carbon_tax", "vat_change", "capital_gains_tax", diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/capped_mcad.py b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/capped_mcad.py index 6df277172..8eeabc0ca 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/capped_mcad.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/capped_mcad.py @@ -10,7 +10,7 @@ class capped_mcad(Variable): def formula(person, period, parameters): capping_value = add( - person, period, ["income_tax_pre_charges", "CB_HITC"] + person, period, ["income_tax_pre_charges", "cb_hitc"] ) return min_( person("married_couples_allowance_deduction", period), diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/marriage_allowance.py b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/marriage_allowance.py index 642bc7fa6..e5d7d4f25 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/marriage_allowance.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/marriage_allowance.py @@ -18,13 +18,13 @@ def formula(person, period, parameters): transferable_amount = person( "partners_unused_personal_allowance", period ) - allowances = parameters(period).gov.hmrc.income_tax.allowances - takeup_rate = allowances.marriage_allowance.takeup_rate - capped_percentage = allowances.marriage_allowance.max - max_amount = allowances.personal_allowance.amount * capped_percentage + p = parameters(period).gov.hmrc.income_tax.allowances + takeup_rate = p.marriage_allowance.takeup_rate + capped_percentage = p.marriage_allowance.max + max_amount = p.personal_allowance.amount * capped_percentage amount_if_eligible_pre_rounding = min_(transferable_amount, max_amount) # Round up. - rounding_increment = allowances.marriage_allowance.rounding_increment + rounding_increment = p.marriage_allowance.rounding_increment amount_if_eligible = ( np.ceil(amount_if_eligible_pre_rounding / rounding_increment) * rounding_increment diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/pension_annual_allowance.py b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/pension_annual_allowance.py index 0c877005d..0da7f67d0 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/pension_annual_allowance.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/pension_annual_allowance.py @@ -12,6 +12,6 @@ def formula(person, period, parameters): allowance = parameters( period ).gov.hmrc.income_tax.allowances.annual_allowance - ANI = person("adjusted_net_income", period) - reduction = max_(0, ANI - allowance.taper) * allowance.reduction_rate + ani = person("adjusted_net_income", period) + reduction = max_(0, ani - allowance.taper) * allowance.reduction_rate return max_(allowance.minimum, allowance.default - reduction) diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/personal_allowance.py b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/personal_allowance.py index 32447ec38..00d619a37 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/personal_allowance.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/personal_allowance.py @@ -13,14 +13,15 @@ class personal_allowance(Variable): ) def formula(person, period, parameters): - params = parameters(period) - PA = params.gov.hmrc.income_tax.allowances.personal_allowance - personal_allowance = PA.amount - ANI = person("adjusted_net_income", period) + p = parameters( + period + ).gov.hmrc.income_tax.allowances.personal_allowance + personal_allowance = p.amount + ani = person("adjusted_net_income", period) # Per ITA 2007 s.58, deduct grossed-up Gift Aid from ANI # when calculating Personal Allowance taper gift_aid_grossed_up = person("gift_aid_grossed_up", period) - ANI_for_taper = ANI - gift_aid_grossed_up - excess = max_(0, ANI_for_taper - PA.maximum_ANI) - reduction = excess * PA.reduction_rate + ani_for_taper = ani - gift_aid_grossed_up + excess = max_(0, ani_for_taper - p.maximum_ani) + reduction = excess * p.reduction_rate return max_(0, personal_allowance - reduction) diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/savings_allowance.py b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/savings_allowance.py index 6c046ff0c..d14c0bae0 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/allowances/savings_allowance.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/allowances/savings_allowance.py @@ -12,7 +12,7 @@ class savings_allowance(Variable): def formula(person, period, parameters): tax_band = person("tax_band", period) tax_bands = tax_band.possible_values - amounts = parameters( + p = parameters( period ).gov.hmrc.income_tax.allowances.personal_savings_allowance return select( @@ -26,5 +26,5 @@ def formula(person, period, parameters): ), tax_band == tax_bands.NONE, ], - [amounts.additional, amounts.higher, amounts.basic, amounts.basic], + [p.additional, p.higher, p.basic, p.basic], ) diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/bases/savings_income/ISA_interest_income.py b/policyengine_uk/variables/gov/hmrc/income_tax/bases/savings_income/isa_interest_income.py similarity index 100% rename from policyengine_uk/variables/gov/hmrc/income_tax/bases/savings_income/ISA_interest_income.py rename to policyengine_uk/variables/gov/hmrc/income_tax/bases/savings_income/isa_interest_income.py diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/tax_band.py b/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/tax_band.py index 1ab44af1c..0afc1272c 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/tax_band.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/tax_band.py @@ -25,10 +25,10 @@ class tax_band(Variable): def formula(person, period, parameters): allowances = person("allowances", period) ani = person("adjusted_net_income", period) - rates = parameters(period).gov.hmrc.income_tax.rates - basic = allowances + rates.uk.thresholds[0] - higher = allowances + rates.uk.thresholds[-2] - add = allowances + rates.uk.thresholds[-1] + p = parameters(period).gov.hmrc.income_tax.rates + basic = allowances + p.uk.thresholds[0] + higher = allowances + p.uk.thresholds[-2] + add = allowances + p.uk.thresholds[-1] return select( [ani >= add, ani >= higher, ani > basic], [TaxBand.ADDITIONAL, TaxBand.HIGHER, TaxBand.BASIC], @@ -38,18 +38,18 @@ def formula(person, period, parameters): def formula_2017_04_06(person, period, parameters): allowances = person("allowances", period) ani = person("adjusted_net_income", period) - rates = parameters(period).gov.hmrc.income_tax.rates + p = parameters(period).gov.hmrc.income_tax.rates scot = person("pays_scottish_income_tax", period) income = ani - allowances uk_band = select( - [income < threshold for threshold in rates.uk.thresholds[:3]], + [income < threshold for threshold in p.uk.thresholds[:3]], [TaxBand.NONE, TaxBand.BASIC, TaxBand.HIGHER], default=TaxBand.ADDITIONAL, ) scottish_band = select( [ income < threshold - for threshold in rates.scotland.rates.thresholds[:3] + for threshold in p.scotland.rates.thresholds[:3] ], [TaxBand.NONE, TaxBand.BASIC, TaxBand.HIGHER], default=TaxBand.ADDITIONAL, @@ -59,18 +59,18 @@ def formula_2017_04_06(person, period, parameters): def formula_2018_06_01(person, period, parameters): allowances = person("allowances", period) ani = person("adjusted_net_income", period) - rates = parameters(period).gov.hmrc.income_tax.rates + p = parameters(period).gov.hmrc.income_tax.rates scot = person("pays_scottish_income_tax", period) income = ani - allowances uk_band = select( - [income < threshold for threshold in rates.uk.thresholds[:3]], + [income < threshold for threshold in p.uk.thresholds[:3]], [TaxBand.NONE, TaxBand.BASIC, TaxBand.HIGHER], default=TaxBand.ADDITIONAL, ) scottish_band = select( [ income < threshold - for threshold in rates.scotland.rates.thresholds[:5] + for threshold in p.scotland.rates.thresholds[:5] ], [ TaxBand.NONE, diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/charges/child_benefit_hitc.py b/policyengine_uk/variables/gov/hmrc/income_tax/charges/child_benefit_hitc.py index ab4ea09a5..dc52ebafd 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/charges/child_benefit_hitc.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/charges/child_benefit_hitc.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class CB_HITC(Variable): +class cb_hitc(Variable): value_type = float entity = Person label = "Child Benefit High-Income Tax Charge" @@ -12,9 +12,9 @@ class CB_HITC(Variable): def formula(person, period, parameters): CB_received = person.benunit("child_benefit", period) - hitc = parameters(period).gov.hmrc.income_tax.charges.CB_HITC + p = parameters(period).gov.hmrc.income_tax.charges.cb_hitc income = person("adjusted_net_income", period) - percentage = max_(income - hitc.phase_out_start, 0) / ( - hitc.phase_out_end - hitc.phase_out_start + percentage = max_(income - p.phase_out_start, 0) / ( + p.phase_out_end - p.phase_out_start ) return min_(percentage, 1) * CB_received diff --git a/policyengine_uk/variables/gov/hmrc/income_tax/liability/dividend_income_tax.py b/policyengine_uk/variables/gov/hmrc/income_tax/liability/dividend_income_tax.py index 2fdc3d060..b46b8faab 100644 --- a/policyengine_uk/variables/gov/hmrc/income_tax/liability/dividend_income_tax.py +++ b/policyengine_uk/variables/gov/hmrc/income_tax/liability/dividend_income_tax.py @@ -13,13 +13,11 @@ class dividend_income_tax(Variable): unit = GBP def formula(person, period, parameters): - rates = parameters(period).gov.hmrc.income_tax.rates + p = parameters(period).gov.hmrc.income_tax.rates other_income = person("earned_taxable_income", period) + person( "taxed_savings_income", period ) taxable_dividends = person("taxed_dividend_income", period) - tax_with_dividends = rates.dividends.calc( - other_income + taxable_dividends - ) - tax_without_dividends = rates.dividends.calc(other_income) + tax_with_dividends = p.dividends.calc(other_income + taxable_dividends) + tax_without_dividends = p.dividends.calc(other_income) return max_(0, tax_with_dividends - tax_without_dividends) diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_additional.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_additional.py index eb23397d3..dbc485ea0 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_additional.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_additional.py @@ -11,13 +11,9 @@ class ni_class_1_employee_additional(Variable): def formula(person, period, parameters): income = person("ni_class_1_income", period) - parameters = parameters(period).gov.hmrc.national_insurance.class_1 + p = parameters(period).gov.hmrc.national_insurance.class_1 upper_earnings_limit = ( - parameters.thresholds.upper_earnings_limit - * WEEKS_IN_YEAR - / MONTHS_IN_YEAR + p.thresholds.upper_earnings_limit * WEEKS_IN_YEAR / MONTHS_IN_YEAR ) upper_earnings_limit_income = max_(income - upper_earnings_limit, 0) - return ( - parameters.rates.employee.additional * upper_earnings_limit_income - ) + return p.rates.employee.additional * upper_earnings_limit_income diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_primary.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_primary.py index e54c987e1..7588acb1f 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_primary.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_primary.py @@ -11,18 +11,14 @@ class ni_class_1_employee_primary(Variable): def formula(person, period, parameters): income = person("ni_class_1_income", period) - parameters = parameters(period).gov.hmrc.national_insurance.class_1 + p = parameters(period).gov.hmrc.national_insurance.class_1 # Thresholds are weekly, so multiply by weeks in year and divide by months in year primary_threshold = ( - parameters.thresholds.primary_threshold - * WEEKS_IN_YEAR - / MONTHS_IN_YEAR + p.thresholds.primary_threshold * WEEKS_IN_YEAR / MONTHS_IN_YEAR ) upper_earnings_limit = ( - parameters.thresholds.upper_earnings_limit - * WEEKS_IN_YEAR - / MONTHS_IN_YEAR + p.thresholds.upper_earnings_limit * WEEKS_IN_YEAR / MONTHS_IN_YEAR ) upper_earnings_limit_income = max_(income - upper_earnings_limit, 0) @@ -30,4 +26,4 @@ def formula(person, period, parameters): max_(income - primary_threshold, 0) - upper_earnings_limit_income ) - return parameters.rates.employee.main * primary_threshold_income + return p.rates.employee.main * primary_threshold_income diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employer.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employer.py index 0e74bc5dd..113115c10 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employer.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employer.py @@ -11,7 +11,7 @@ class ni_class_1_employer(Variable): reference = "https://www.legislation.gov.uk/ukpga/1992/4/section/9" def formula(person, period, parameters): - class_1 = parameters(period).gov.hmrc.national_insurance.class_1 + p = parameters(period).gov.hmrc.national_insurance.class_1 earnings = person("ni_class_1_income", period) if not parameters( period @@ -22,11 +22,9 @@ def formula(person, period, parameters): taxed_earnings = earnings + added_pension_contributions else: taxed_earnings = earnings - secondary_threshold = ( - class_1.thresholds.secondary_threshold * WEEKS_IN_YEAR - ) + secondary_threshold = p.thresholds.secondary_threshold * WEEKS_IN_YEAR main_earnings = max_( taxed_earnings - secondary_threshold, 0, ) - return class_1.rates.employer * main_earnings + return p.rates.employer * main_earnings diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_liable.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_liable.py index 656ba8ca1..6b29019c2 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_liable.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_liable.py @@ -11,4 +11,4 @@ class ni_liable(Variable): value_type = bool def formula(person, period, parameters): - return person("over_16", period) & ~person("is_SP_age", period) + return person("over_16", period) & ~person("is_sp_age", period) diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_2/ni_class_2.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_2/ni_class_2.py index a36358bb4..758ed6c11 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_2/ni_class_2.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_2/ni_class_2.py @@ -12,7 +12,7 @@ class ni_class_2(Variable): reference = "https://www.legislation.gov.uk/ukpga/1992/4/section/11" def formula(person, period, parameters): - class_2 = parameters(period).gov.hmrc.national_insurance.class_2 + p = parameters(period).gov.hmrc.national_insurance.class_2 profits = person("self_employment_income", period) - over_threshold = profits >= class_2.small_profits_threshold - return over_threshold * class_2.flat_rate * WEEKS_IN_YEAR + over_threshold = profits >= p.small_profits_threshold + return over_threshold * p.flat_rate * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4.py index 90b0282ee..945e090db 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4.py @@ -10,24 +10,24 @@ class ni_class_4(Variable): defined_for = "ni_liable" def formula(person, period, parameters): - class_4 = parameters(period).gov.hmrc.national_insurance.class_4 + p = parameters(period).gov.hmrc.national_insurance.class_4 self_employment_income = person("self_employment_income", period) - employee_NI = person("ni_class_1_employee", period) - profits = self_employment_income - employee_NI + employee_ni = person("ni_class_1_employee", period) + profits = self_employment_income - employee_ni add_rate_income = max_( - profits - class_4.thresholds.upper_profits_limit, + profits - p.thresholds.upper_profits_limit, 0, ) main_rate_income = ( max_( - profits - class_4.thresholds.lower_profits_limit, + profits - p.thresholds.lower_profits_limit, 0, ) - add_rate_income ) pre_maximum_amount = ( - main_rate_income * class_4.rates.main - + add_rate_income * class_4.rates.additional + main_rate_income * p.rates.main + + add_rate_income * p.rates.additional ) maximum_amount = person("ni_class_4_maximum", period) return max_( diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_main.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_main.py index 3b1fbac5f..b272ba198 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_main.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_main.py @@ -11,19 +11,19 @@ class ni_class_4_main(Variable): reference = "https://www.legislation.gov.uk/ukpga/1992/4/section/15" def formula(person, period, parameters): - class_4 = parameters(period).gov.hmrc.national_insurance.class_4 + p = parameters(period).gov.hmrc.national_insurance.class_4 self_employment_income = person("self_employment_income", period) - employee_NI = person("ni_class_1_employee", period) - profits = self_employment_income - employee_NI + employee_ni = person("ni_class_1_employee", period) + profits = self_employment_income - employee_ni add_rate_income = max_( - profits - class_4.thresholds.upper_profits_limit, + profits - p.thresholds.upper_profits_limit, 0, ) main_rate_income = ( max_( - profits - class_4.thresholds.lower_profits_limit, + profits - p.thresholds.lower_profits_limit, 0, ) - add_rate_income ) - return main_rate_income * class_4.rates.main + return main_rate_income * p.rates.main diff --git a/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_maximum.py b/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_maximum.py index 426126a99..e76e0f0f1 100644 --- a/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_maximum.py +++ b/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_maximum.py @@ -10,14 +10,14 @@ class ni_class_4_maximum(Variable): reference = "https://www.legislation.gov.uk/uksi/2001/1004/regulation/100" def formula(person, period, parameters): - ni = parameters(period).gov.hmrc.national_insurance - upl = ni.class_4.thresholds.upper_profits_limit - lpl = ni.class_4.thresholds.lower_profits_limit + p = parameters(period).gov.hmrc.national_insurance + upl = p.class_4.thresholds.upper_profits_limit + lpl = p.class_4.thresholds.lower_profits_limit step_1 = upl - lpl - main_rate = ni.class_4.rates.main - add_rate = ni.class_4.rates.additional + main_rate = p.class_4.rates.main + add_rate = p.class_4.rates.additional step_2 = step_1 * main_rate - step_3 = step_2 + 53 * ni.class_2.flat_rate + step_3 = step_2 + 53 * p.class_2.flat_rate class_2_contributions = person("ni_class_2", period) primary_class_1_contributions = person( "ni_class_1_employee_primary", period diff --git a/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_rent.py b/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_rent.py index bd1dc3ee2..a3e3698c2 100644 --- a/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_rent.py +++ b/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_rent.py @@ -11,9 +11,9 @@ class sdlt_on_non_residential_property_rent(Variable): reference = "https://www.legislation.gov.uk/ukpga/2003/14/schedule/5" def formula(household, period, parameters): - stamp_duty = parameters(period).gov.hmrc.stamp_duty + p = parameters(period).gov.hmrc.stamp_duty cumulative_rent = household("cumulative_non_residential_rent", period) rent = household("non_residential_rent", period) - return stamp_duty.non_residential.rent.calc( + return p.non_residential.rent.calc( cumulative_rent + rent - ) - stamp_duty.non_residential.rent.calc(cumulative_rent) + ) - p.non_residential.rent.calc(cumulative_rent) diff --git a/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_transactions.py b/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_transactions.py index 6f2fd883d..02d20c9f1 100644 --- a/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_transactions.py +++ b/policyengine_uk/variables/gov/hmrc/sdlt_on_non_residential_property_transactions.py @@ -11,6 +11,6 @@ class sdlt_on_non_residential_property_transactions(Variable): reference = "https://www.legislation.gov.uk/ukpga/2003/14/section/55" def formula(household, period, parameters): - stamp_duty = parameters(period).gov.hmrc.stamp_duty + p = parameters(period).gov.hmrc.stamp_duty price = household("non_residential_property_purchased", period) - return stamp_duty.non_residential.purchase.calc(price) + return p.non_residential.purchase.calc(price) diff --git a/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_rent.py b/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_rent.py index 80101151f..ee841c37a 100644 --- a/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_rent.py +++ b/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_rent.py @@ -11,9 +11,9 @@ class sdlt_on_residential_property_rent(Variable): reference = "https://www.legislation.gov.uk/ukpga/2003/14/schedule/5" def formula(household, period, parameters): - stamp_duty = parameters(period).gov.hmrc.stamp_duty + p = parameters(period).gov.hmrc.stamp_duty cumulative_rent = household("cumulative_residential_rent", period) rent = household("rent", period) - return stamp_duty.residential.rent.calc( + return p.residential.rent.calc( cumulative_rent + rent - ) - stamp_duty.residential.rent.calc(cumulative_rent) + ) - p.residential.rent.calc(cumulative_rent) diff --git a/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_transactions.py b/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_transactions.py index 8ebe7f560..a927e08b2 100644 --- a/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_transactions.py +++ b/policyengine_uk/variables/gov/hmrc/sdlt_on_residential_property_transactions.py @@ -11,29 +11,29 @@ class sdlt_on_residential_property_transactions(Variable): reference = "https://www.legislation.gov.uk/ukpga/2003/14/section/55" def formula(household, period, parameters): - stamp_duty = parameters(period).gov.hmrc.stamp_duty + p = parameters(period).gov.hmrc.stamp_duty # Tax on main-home purchases - price_limit = stamp_duty.residential.purchase.main.first.max + price_limit = p.residential.purchase.main.first.max price = household("main_residential_property_purchased", period) residential_purchase_qualifies_as_first_buy = household( "main_residential_property_purchased_is_first_home", period ) & (price < price_limit) main_residential_purchase_tax = where( residential_purchase_qualifies_as_first_buy, - stamp_duty.residential.purchase.main.first.rate.calc(price), - stamp_duty.residential.purchase.main.subsequent.calc(price), + p.residential.purchase.main.first.rate.calc(price), + p.residential.purchase.main.subsequent.calc(price), ) # Tax on second-home purchases second_home_price = household( "additional_residential_property_purchased", period ) price = where( - second_home_price < stamp_duty.residential.purchase.additional.min, + second_home_price < p.residential.purchase.additional.min, 0, second_home_price, ) additional_residential_purchase_tax = ( - stamp_duty.residential.purchase.additional.rate.calc(price) + p.residential.purchase.additional.rate.calc(price) ) return ( main_residential_purchase_tax + additional_residential_purchase_tax diff --git a/policyengine_uk/variables/gov/hmrc/tax_free_childcare/conditions/tax_free_childcare_work_condition.py b/policyengine_uk/variables/gov/hmrc/tax_free_childcare/conditions/tax_free_childcare_work_condition.py index bc5a31c79..95696947a 100644 --- a/policyengine_uk/variables/gov/hmrc/tax_free_childcare/conditions/tax_free_childcare_work_condition.py +++ b/policyengine_uk/variables/gov/hmrc/tax_free_childcare/conditions/tax_free_childcare_work_condition.py @@ -15,15 +15,14 @@ def formula(person, period, parameters): in_work = person("in_work", period) # Get disability parameters and check eligibility - p_gc_disability = parameters( + p = parameters( period ).gov.dwp.pension_credit.guarantee_credit.child.disability receives_disability_programs = ( add( person, period, - p_gc_disability.eligibility - + p_gc_disability.severe.eligibility, + p.eligibility + p.severe.eligibility, ) > 0 ) diff --git a/policyengine_uk/variables/gov/hmrc/would_claim_child_benefit.py b/policyengine_uk/variables/gov/hmrc/would_claim_child_benefit.py index 08403d7bd..2d3e5815b 100644 --- a/policyengine_uk/variables/gov/hmrc/would_claim_child_benefit.py +++ b/policyengine_uk/variables/gov/hmrc/would_claim_child_benefit.py @@ -14,8 +14,8 @@ def formula(benunit, period, parameters): claims_all_entitled_benefits = benunit( "claims_all_entitled_benefits", period ) - takeup_rate = parameters(period).gov.hmrc.child_benefit.takeup - overall_p = takeup_rate.overall + p = parameters(period).gov.hmrc.child_benefit.takeup + overall_p = p.overall random_takeup = (random(benunit) < overall_p) & ~benunit( "child_benefit_opts_out", period ) diff --git a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_rent.py b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_rent.py index 985ceeaa7..088022642 100644 --- a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_rent.py +++ b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_rent.py @@ -12,9 +12,9 @@ class lbtt_on_non_residential_property_rent(Variable): unit = GBP def formula(household, period, parameters): - lbtt = parameters(period).gov.revenue_scotland.lbtt + p = parameters(period).gov.revenue_scotland.lbtt cumulative_rent = household("cumulative_non_residential_rent", period) rent = household("non_residential_rent", period) - lbtt_cumulative_rent = lbtt.rent.calc(cumulative_rent) - lbtt_total_rent = lbtt.rent.calc(cumulative_rent + rent) + lbtt_cumulative_rent = p.rent.calc(cumulative_rent) + lbtt_total_rent = p.rent.calc(cumulative_rent + rent) return lbtt_total_rent - lbtt_cumulative_rent diff --git a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_transactions.py b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_transactions.py index f140413f5..7da880cb5 100644 --- a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_transactions.py +++ b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_non_residential_property_transactions.py @@ -10,6 +10,6 @@ class lbtt_on_non_residential_property_transactions(Variable): unit = GBP def formula(household, period, parameters): - lbtt = parameters(period).gov.revenue_scotland.lbtt + p = parameters(period).gov.revenue_scotland.lbtt price = household("non_residential_property_purchased", period) - return lbtt.non_residential.calc(price) + return p.non_residential.calc(price) diff --git a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_rent.py b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_rent.py index 8c6720f0e..c53a08c22 100644 --- a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_rent.py +++ b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_rent.py @@ -10,9 +10,9 @@ class lbtt_on_residential_property_rent(Variable): unit = GBP def formula(household, period, parameters): - lbtt = parameters(period).gov.revenue_scotland.lbtt + p = parameters(period).gov.revenue_scotland.lbtt cumulative_rent = household("cumulative_residential_rent", period) rent = household("rent", period) - lbtt_cumulative_rent = lbtt.rent.calc(cumulative_rent) - lbtt_total_rent = lbtt.rent.calc(cumulative_rent + rent) + lbtt_cumulative_rent = p.rent.calc(cumulative_rent) + lbtt_total_rent = p.rent.calc(cumulative_rent + rent) return lbtt_total_rent - lbtt_cumulative_rent diff --git a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_transactions.py b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_transactions.py index 2948eb9d3..b27aa0e0d 100644 --- a/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_transactions.py +++ b/policyengine_uk/variables/gov/revenue_scotland/lbtt_on_residential_property_transactions.py @@ -10,7 +10,7 @@ class lbtt_on_residential_property_transactions(Variable): unit = GBP def formula(household, period, parameters): - lbtt = parameters(period).gov.revenue_scotland.lbtt + p = parameters(period).gov.revenue_scotland.lbtt # Tax on main-home purchases price = household("main_residential_property_purchased", period) residential_purchase_qualifies_as_first_buy = household( @@ -18,16 +18,16 @@ def formula(household, period, parameters): ) main_residential_purchase_tax = where( residential_purchase_qualifies_as_first_buy, - lbtt.residential.first_time_buyer_rate.calc(price), - lbtt.residential.rate.calc(price), + p.residential.first_time_buyer_rate.calc(price), + p.residential.rate.calc(price), ) # Tax on second-home purchases second_home_price = household( "additional_residential_property_purchased", period ) - lbtt2 = lbtt.residential.rate.calc(second_home_price) + lbtt2 = p.residential.rate.calc(second_home_price) surcharge = ( - lbtt.residential.additional_residence_surcharge * second_home_price + p.residential.additional_residence_surcharge * second_home_price ) additional_residential_purchase_tax = lbtt2 + surcharge return ( diff --git a/policyengine_uk/variables/gov/simulation/labor_supply_response/employment_income_behavioral_response.py b/policyengine_uk/variables/gov/simulation/labor_supply_response/employment_income_behavioral_response.py index bc6d03939..514bd64f1 100644 --- a/policyengine_uk/variables/gov/simulation/labor_supply_response/employment_income_behavioral_response.py +++ b/policyengine_uk/variables/gov/simulation/labor_supply_response/employment_income_behavioral_response.py @@ -9,11 +9,11 @@ class employment_income_behavioral_response(Variable): definition_period = YEAR def formula(person, period, parameters): - lsr = parameters(period).gov.simulation.labor_supply_responses + p = parameters(period).gov.simulation.labor_supply_responses simulation = person.simulation if simulation.baseline is None: return 0 # No reform, no impact - if lsr.income_elasticity == 0 and lsr.substitution_elasticity == 0: + if p.income_elasticity == 0 and p.substitution_elasticity == 0: return 0 measurement_branch = simulation.get_branch( diff --git a/policyengine_uk/variables/gov/simulation/labor_supply_response/income_elasticity_lsr.py b/policyengine_uk/variables/gov/simulation/labor_supply_response/income_elasticity_lsr.py index f7d985bf5..5793c3df7 100644 --- a/policyengine_uk/variables/gov/simulation/labor_supply_response/income_elasticity_lsr.py +++ b/policyengine_uk/variables/gov/simulation/labor_supply_response/income_elasticity_lsr.py @@ -10,8 +10,8 @@ class income_elasticity_lsr(Variable): requires_computation_after = "employment_income_behavioral_response" def formula(person, period, parameters): - lsr = parameters(period).gov.simulation.labor_supply_responses + p = parameters(period).gov.simulation.labor_supply_responses employment_income = person("employment_income_before_lsr", period) income_change = person("relative_income_change", period) - return employment_income * income_change * lsr.income_elasticity + return employment_income * income_change * p.income_elasticity diff --git a/policyengine_uk/variables/gov/simulation/labor_supply_response/substitution_elasticity_lsr.py b/policyengine_uk/variables/gov/simulation/labor_supply_response/substitution_elasticity_lsr.py index c95ed925d..5345c36d1 100644 --- a/policyengine_uk/variables/gov/simulation/labor_supply_response/substitution_elasticity_lsr.py +++ b/policyengine_uk/variables/gov/simulation/labor_supply_response/substitution_elasticity_lsr.py @@ -10,8 +10,8 @@ class substitution_elasticity_lsr(Variable): requires_computation_after = "employment_income_behavioral_response" def formula(person, period, parameters): - lsr = parameters(period).gov.simulation.labor_supply_responses + p = parameters(period).gov.simulation.labor_supply_responses employment_income = person("employment_income_before_lsr", period) wage_change = person("relative_wage_change", period) - return employment_income * wage_change * lsr.substitution_elasticity + return employment_income * wage_change * p.substitution_elasticity diff --git a/policyengine_uk/variables/gov/social_security_scotland/pawhp.py b/policyengine_uk/variables/gov/social_security_scotland/pawhp.py index bfb34aae8..3df8cab52 100644 --- a/policyengine_uk/variables/gov/social_security_scotland/pawhp.py +++ b/policyengine_uk/variables/gov/social_security_scotland/pawhp.py @@ -13,8 +13,8 @@ def formula(household, period, parameters): household("country", period).decode_to_str() == "SCOTLAND" ) age = household.members("age", period) - is_SP_age = household.members("is_SP_age", period) - wfp = parameters(period).gov.social_security_scotland.pawhp + is_sp_age = household.members("is_sp_age", period) + p = parameters(period).gov.social_security_scotland.pawhp on_mtb = ( add( household, @@ -28,13 +28,13 @@ def formula(household, period, parameters): ) > 0 ) - meets_mtb_requirement = on_mtb | ~wfp.eligibility.require_benefits + meets_mtb_requirement = on_mtb | ~p.eligibility.require_benefits meets_spa_requirement = ( - household.any(is_SP_age) - | ~wfp.eligibility.state_pension_age_requirement + household.any(is_sp_age) + | ~p.eligibility.state_pension_age_requirement ) meets_higher_age_requirement = household.any( - age >= wfp.eligibility.higher_age_requirement + age >= p.eligibility.higher_age_requirement ) qualifies_for_higher = ( meets_mtb_requirement @@ -50,7 +50,7 @@ def formula(household, period, parameters): qualifies_for_base = ~meets_mtb_requirement & meets_spa_requirement return in_scotland * ( - wfp.amount.higher * qualifies_for_higher - + wfp.amount.lower * qualifies_for_lower - + wfp.amount.base * qualifies_for_base + p.amount.higher * qualifies_for_higher + + p.amount.lower * qualifies_for_lower + + p.amount.base * qualifies_for_base ) diff --git a/policyengine_uk/variables/gov/treasury/cost_of_living_support/cost_of_living_support_payment.py b/policyengine_uk/variables/gov/treasury/cost_of_living_support/cost_of_living_support_payment.py index fd99f0365..eb5d05d2c 100644 --- a/policyengine_uk/variables/gov/treasury/cost_of_living_support/cost_of_living_support_payment.py +++ b/policyengine_uk/variables/gov/treasury/cost_of_living_support/cost_of_living_support_payment.py @@ -9,27 +9,27 @@ class cost_of_living_support_payment(Variable): unit = GBP def formula(household, period, parameters): - col = parameters(period).gov.treasury.cost_of_living_support + p = parameters(period).gov.treasury.cost_of_living_support on_means_tested_benefits = ( add( household, period, - col.means_tested_households.qualifying_benefits, + p.means_tested_households.qualifying_benefits, ) > 0 ) means_test_bonus = ( - col.means_tested_households.amount * on_means_tested_benefits + p.means_tested_households.amount * on_means_tested_benefits ) on_pensioner_benefits = ( - add(household, period, col.pensioners.qualifying_benefits) > 0 + add(household, period, p.pensioners.qualifying_benefits) > 0 ) - pensioner_bonus = col.pensioners.amount * on_pensioner_benefits + pensioner_bonus = p.pensioners.amount * on_pensioner_benefits on_disability_benefits = ( - add(household, period, col.disabled.qualifying_benefits) > 0 + add(household, period, p.disabled.qualifying_benefits) > 0 ) - disabled_bonus = col.disabled.amount * on_disability_benefits + disabled_bonus = p.disabled.amount * on_disability_benefits return means_test_bonus + pensioner_bonus + disabled_bonus diff --git a/policyengine_uk/variables/gov/treasury/energy_bills_rebate/council_tax_rebate.py b/policyengine_uk/variables/gov/treasury/energy_bills_rebate/council_tax_rebate.py index f80c4c1c3..66de5e7ab 100644 --- a/policyengine_uk/variables/gov/treasury/energy_bills_rebate/council_tax_rebate.py +++ b/policyengine_uk/variables/gov/treasury/energy_bills_rebate/council_tax_rebate.py @@ -10,18 +10,15 @@ class ebr_council_tax_rebate(Variable): unit = GBP def formula(household, period, parameters): - ctr = parameters( + p = parameters( period ).gov.treasury.energy_bills_rebate.council_tax_rebate ct_band = household("council_tax_band", period) ct_band_values = ct_band.possible_values eligible = np.any( np.array( - [ - ct_band == getattr(ct_band_values, band) - for band in ctr.bands - ] + [ct_band == getattr(ct_band_values, band) for band in p.bands] ), axis=0, ) - return eligible * ctr.amount + return eligible * p.amount diff --git a/policyengine_uk/variables/gov/treasury/energy_bills_rebate/energy_bills_credit.py b/policyengine_uk/variables/gov/treasury/energy_bills_rebate/energy_bills_credit.py index 2fc182032..ee09e8c76 100644 --- a/policyengine_uk/variables/gov/treasury/energy_bills_rebate/energy_bills_credit.py +++ b/policyengine_uk/variables/gov/treasury/energy_bills_rebate/energy_bills_credit.py @@ -10,5 +10,5 @@ class ebr_energy_bills_credit(Variable): unit = GBP def formula(household, period, parameters): - ebr = parameters(period).gov.treasury.energy_bills_rebate - return ebr.energy_bills_credit + p = parameters(period).gov.treasury.energy_bills_rebate + return p.energy_bills_credit diff --git a/policyengine_uk/variables/gov/treasury/price_cap_subsidy/monthly_epg_consumption_level.py b/policyengine_uk/variables/gov/treasury/price_cap_subsidy/monthly_epg_consumption_level.py index e196a1536..db865cc4f 100644 --- a/policyengine_uk/variables/gov/treasury/price_cap_subsidy/monthly_epg_consumption_level.py +++ b/policyengine_uk/variables/gov/treasury/price_cap_subsidy/monthly_epg_consumption_level.py @@ -12,7 +12,7 @@ def formula(household, period, parameters): energy_consumption = household( "monthly_domestic_energy_consumption", period ) - ofgem = parameters.gov.ofgem - price_cap = ofgem.energy_price_cap(period) - price_guarantee = ofgem.energy_price_guarantee(period) + p = parameters.gov.ofgem + price_cap = p.energy_price_cap(period) + price_guarantee = p.energy_price_guarantee(period) return energy_consumption * price_guarantee / price_cap diff --git a/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_rent.py b/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_rent.py index 0ca0c0e16..46fe3a5ea 100644 --- a/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_rent.py +++ b/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_rent.py @@ -10,9 +10,9 @@ class ltt_on_non_residential_property_rent(Variable): unit = GBP def formula(household, period, parameters): - ltt = parameters(period).gov.wra.land_transaction_tax + p = parameters(period).gov.wra.land_transaction_tax cumulative_rent = household("cumulative_non_residential_rent", period) rent = household("non_residential_rent", period) - ltt_on_cumulative_rent = ltt.rent.calc(cumulative_rent) - ltt_on_total_rent = ltt.rent.calc(cumulative_rent + rent) + ltt_on_cumulative_rent = p.rent.calc(cumulative_rent) + ltt_on_total_rent = p.rent.calc(cumulative_rent + rent) return ltt_on_total_rent - ltt_on_cumulative_rent diff --git a/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_transactions.py b/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_transactions.py index d6e476a39..39c6fc864 100644 --- a/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_transactions.py +++ b/policyengine_uk/variables/gov/wra/ltt_on_non_residential_property_transactions.py @@ -12,7 +12,7 @@ class ltt_on_non_residential_property_transactions(Variable): unit = GBP def formula(household, period, parameters): - ltt = parameters(period).gov.wra.land_transaction_tax + p = parameters(period).gov.wra.land_transaction_tax price = household("non_residential_property_purchased", period) - non_residential_purchase_tax = ltt.non_residential.calc(price) + non_residential_purchase_tax = p.non_residential.calc(price) return household("ltt_liable", period) * non_residential_purchase_tax diff --git a/policyengine_uk/variables/gov/wra/ltt_on_residential_property_rent.py b/policyengine_uk/variables/gov/wra/ltt_on_residential_property_rent.py index aa1a52981..94cb3ffc9 100644 --- a/policyengine_uk/variables/gov/wra/ltt_on_residential_property_rent.py +++ b/policyengine_uk/variables/gov/wra/ltt_on_residential_property_rent.py @@ -12,9 +12,9 @@ class ltt_on_residential_property_rent(Variable): unit = GBP def formula(household, period, parameters): - ltt = parameters(period).gov.wra.land_transaction_tax + p = parameters(period).gov.wra.land_transaction_tax cumulative_rent = household("cumulative_residential_rent", period) rent = household("rent", period) - ltt_on_cumulative_rent = ltt.rent.calc(cumulative_rent) - ltt_on_total_rent = ltt.rent.calc(cumulative_rent + rent) + ltt_on_cumulative_rent = p.rent.calc(cumulative_rent) + ltt_on_total_rent = p.rent.calc(cumulative_rent + rent) return ltt_on_total_rent - ltt_on_cumulative_rent diff --git a/policyengine_uk/variables/gov/wra/ltt_on_residential_property_transactions.py b/policyengine_uk/variables/gov/wra/ltt_on_residential_property_transactions.py index a4bd16bff..aa49df7de 100644 --- a/policyengine_uk/variables/gov/wra/ltt_on_residential_property_transactions.py +++ b/policyengine_uk/variables/gov/wra/ltt_on_residential_property_transactions.py @@ -12,17 +12,17 @@ class ltt_on_residential_property_transactions(Variable): unit = GBP def formula(household, period, parameters): - ltt = parameters(period).gov.wra.land_transaction_tax + p = parameters(period).gov.wra.land_transaction_tax main_home_price = household( "main_residential_property_purchased", period ) - primary_residential_purchase_tax = ltt.residential.primary.calc( + primary_residential_purchase_tax = p.residential.primary.calc( main_home_price ) second_home_price = household( "additional_residential_property_purchased", period ) - additional_residential_purchase_tax = ltt.residential.higher_rate.calc( + additional_residential_purchase_tax = p.residential.higher_rate.calc( second_home_price ) return ( diff --git a/policyengine_uk/variables/household/BRMA.py b/policyengine_uk/variables/household/brma.py similarity index 100% rename from policyengine_uk/variables/household/BRMA.py rename to policyengine_uk/variables/household/brma.py diff --git a/policyengine_uk/variables/household/consumption/carbon.py b/policyengine_uk/variables/household/consumption/carbon.py index 3b2973c11..6dc9158f8 100644 --- a/policyengine_uk/variables/household/consumption/carbon.py +++ b/policyengine_uk/variables/household/consumption/carbon.py @@ -24,12 +24,11 @@ def formula(household, period, parameters): "restaurants_and_hotels_consumption", "miscellaneous_consumption", ] - consumption = parameters(period).household.consumption + p = parameters(period).household.consumption aggregate_spending_by_sector = [ - consumption.total_by_category[category] - for category in CONSUMPTION_VARIABLES + p.total_by_category[category] for category in CONSUMPTION_VARIABLES ] - carbon = consumption.carbon + carbon = p.carbon aggregate_emissions_by_sector = [ carbon.emissions[category.replace("_consumption", "")] for category in CONSUMPTION_VARIABLES diff --git a/policyengine_uk/variables/household/consumption/main_residential_property_purchased_is_first_home.py b/policyengine_uk/variables/household/consumption/main_residential_property_purchased_is_first_home.py index b49c5b4fe..598122844 100644 --- a/policyengine_uk/variables/household/consumption/main_residential_property_purchased_is_first_home.py +++ b/policyengine_uk/variables/household/consumption/main_residential_property_purchased_is_first_home.py @@ -10,15 +10,14 @@ class main_residential_property_purchased_is_first_home(Variable): unit = GBP def formula(household, period, parameters): - residential_sd = parameters( + p = parameters( period ).gov.hmrc.stamp_duty.statistics.residential.household age = household.sum( household.members("is_household_head", period) * household.members("age", period) ) - percentage_claiming_ftbr = ( - residential_sd.first_time_buyers_relief.calc(age) - / residential_sd.transactions_by_age.calc(age) - ) + percentage_claiming_ftbr = p.first_time_buyers_relief.calc( + age + ) / p.transactions_by_age.calc(age) return random(household) < percentage_claiming_ftbr diff --git a/policyengine_uk/variables/household/consumption/reduced_rate_vat_consumption.py b/policyengine_uk/variables/household/consumption/reduced_rate_vat_consumption.py index a4e7b6b95..9332c2fb4 100644 --- a/policyengine_uk/variables/household/consumption/reduced_rate_vat_consumption.py +++ b/policyengine_uk/variables/household/consumption/reduced_rate_vat_consumption.py @@ -9,6 +9,6 @@ class reduced_rate_vat_consumption(Variable): unit = "currency-GBP" def formula(household, period, parameters): - vat = parameters(period).gov.hmrc.vat + p = parameters(period).gov.hmrc.vat consumption = household("consumption", period) - return consumption * vat.reduced_rate_share + return consumption * p.reduced_rate_share diff --git a/policyengine_uk/variables/household/demographic/carer_premium.py b/policyengine_uk/variables/household/demographic/carer_premium.py index 81191362b..8964c1535 100644 --- a/policyengine_uk/variables/household/demographic/carer_premium.py +++ b/policyengine_uk/variables/household/demographic/carer_premium.py @@ -13,9 +13,9 @@ class carer_premium(Variable): def formula(benunit, period, parameters): carers = benunit("num_carers", period.this_year) - CP = parameters(period).gov.dwp.carer_premium + p = parameters(period).gov.dwp.carer_premium weekly_premium = select( [carers == 0, carers == 1, carers == 2], - [0, CP.single, CP.couple], + [0, p.single, p.couple], ) return weekly_premium * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/household/demographic/child_or_qyp.py b/policyengine_uk/variables/household/demographic/child_or_qyp.py index e2c4d7c0b..dc211c92a 100644 --- a/policyengine_uk/variables/household/demographic/child_or_qyp.py +++ b/policyengine_uk/variables/household/demographic/child_or_qyp.py @@ -10,4 +10,4 @@ class count_children_and_qyp(Variable): unit = GBP def formula(benunit, period, parameters): - return add(benunit, period, ["is_child_or_QYP"]) + return add(benunit, period, ["is_child_or_qyp"]) diff --git a/policyengine_uk/variables/household/demographic/disability_premium.py b/policyengine_uk/variables/household/demographic/disability_premium.py index c819bf1ea..81a14146b 100644 --- a/policyengine_uk/variables/household/demographic/disability_premium.py +++ b/policyengine_uk/variables/household/demographic/disability_premium.py @@ -10,11 +10,11 @@ class disability_premium(Variable): unit = GBP def formula(benunit, period, parameters): - dis = parameters(period).gov.dwp.disability_premia + p = parameters(period).gov.dwp.disability_premia single = benunit("is_single", period.this_year) couple = benunit("is_couple", period.this_year) - single_premium = single * dis.disability_single - couple_premium = couple * dis.disability_couple + single_premium = single * p.disability_single + couple_premium = couple * p.disability_couple has_disabled_adults = ( benunit("num_disabled_adults", period.this_year) > 0 ) diff --git a/policyengine_uk/variables/household/demographic/enhanced_disability_premium.py b/policyengine_uk/variables/household/demographic/enhanced_disability_premium.py index 184a75188..6572856af 100644 --- a/policyengine_uk/variables/household/demographic/enhanced_disability_premium.py +++ b/policyengine_uk/variables/household/demographic/enhanced_disability_premium.py @@ -10,11 +10,11 @@ class enhanced_disability_premium(Variable): unit = GBP def formula(benunit, period, parameters): - dis = parameters(period).gov.dwp.disability_premia + p = parameters(period).gov.dwp.disability_premia single = benunit("is_single", period.this_year) couple = benunit("is_couple", period.this_year) - single_premium = single * dis.enhanced_single - couple_premium = couple * dis.enhanced_couple + single_premium = single * p.enhanced_single + couple_premium = couple * p.enhanced_couple has_enhanced_disabled_adults = ( benunit("num_enhanced_disabled_adults", period.this_year) > 0 ) diff --git a/policyengine_uk/variables/household/demographic/in_FE.py b/policyengine_uk/variables/household/demographic/in_fe.py similarity index 91% rename from policyengine_uk/variables/household/demographic/in_FE.py rename to policyengine_uk/variables/household/demographic/in_fe.py index 54bae4671..ffb92bcf6 100644 --- a/policyengine_uk/variables/household/demographic/in_FE.py +++ b/policyengine_uk/variables/household/demographic/in_fe.py @@ -2,7 +2,7 @@ import pandas as pd -class in_FE(Variable): +class in_fe(Variable): value_type = bool entity = Person label = "Whether this person is in Further Education" diff --git a/policyengine_uk/variables/household/demographic/in_HE.py b/policyengine_uk/variables/household/demographic/in_he.py similarity index 92% rename from policyengine_uk/variables/household/demographic/in_HE.py rename to policyengine_uk/variables/household/demographic/in_he.py index 47240bb29..7b3f24a64 100644 --- a/policyengine_uk/variables/household/demographic/in_HE.py +++ b/policyengine_uk/variables/household/demographic/in_he.py @@ -2,7 +2,7 @@ import pandas as pd -class in_HE(Variable): +class in_he(Variable): value_type = bool entity = Person label = "In higher education" diff --git a/policyengine_uk/variables/household/demographic/is_enhanced_disabled_for_benefits.py b/policyengine_uk/variables/household/demographic/is_enhanced_disabled_for_benefits.py index 7782b4ca9..06df05238 100644 --- a/policyengine_uk/variables/household/demographic/is_enhanced_disabled_for_benefits.py +++ b/policyengine_uk/variables/household/demographic/is_enhanced_disabled_for_benefits.py @@ -8,7 +8,7 @@ class is_enhanced_disabled_for_benefits(Variable): definition_period = YEAR def formula(person, period, parameters): - DLA_requirement = ( + dla_requirement = ( parameters(period).gov.dwp.dla.self_care.higher * WEEKS_IN_YEAR ) - return person("dla_sc", period) >= DLA_requirement + return person("dla_sc", period) >= dla_requirement diff --git a/policyengine_uk/variables/household/demographic/is_severely_disabled_for_benefits.py b/policyengine_uk/variables/household/demographic/is_severely_disabled_for_benefits.py index 16dc1b6aa..42661d724 100644 --- a/policyengine_uk/variables/household/demographic/is_severely_disabled_for_benefits.py +++ b/policyengine_uk/variables/household/demographic/is_severely_disabled_for_benefits.py @@ -12,16 +12,15 @@ class is_severely_disabled_for_benefits(Variable): reference = "Child Tax Credit Regulations 2002 s. 8" def formula(person, period, parameters): - benefit = parameters(period).gov.dwp + p = parameters(period).gov.dwp THRESHOLD_SAFETY_GAP = 10 * WEEKS_IN_YEAR paragraph_3 = ( person("dla_sc", period) - >= benefit.dla.self_care.higher * WEEKS_IN_YEAR - - THRESHOLD_SAFETY_GAP + >= p.dla.self_care.higher * WEEKS_IN_YEAR - THRESHOLD_SAFETY_GAP ) paragraph_4 = ( person("pip_dl", period) - >= benefit.pip.daily_living.enhanced * WEEKS_IN_YEAR + >= p.pip.daily_living.enhanced * WEEKS_IN_YEAR - THRESHOLD_SAFETY_GAP ) paragraph_5 = person("afcs", period) > 0 diff --git a/policyengine_uk/variables/household/demographic/is_WA_adult.py b/policyengine_uk/variables/household/demographic/is_wa_adult.py similarity index 71% rename from policyengine_uk/variables/household/demographic/is_WA_adult.py rename to policyengine_uk/variables/household/demographic/is_wa_adult.py index 8db33a6db..58fa13239 100644 --- a/policyengine_uk/variables/household/demographic/is_WA_adult.py +++ b/policyengine_uk/variables/household/demographic/is_wa_adult.py @@ -2,11 +2,11 @@ import pandas as pd -class is_WA_adult(Variable): +class is_wa_adult(Variable): value_type = bool entity = Person label = "Whether is a working-age adult" definition_period = YEAR def formula(person, period, parameters): - return person("is_adult", period) & ~person("is_SP_age", period) + return person("is_adult", period) & ~person("is_sp_age", period) diff --git a/policyengine_uk/variables/household/demographic/num_disabled_children.py b/policyengine_uk/variables/household/demographic/num_disabled_children.py index 8626c12fd..ca1c52446 100644 --- a/policyengine_uk/variables/household/demographic/num_disabled_children.py +++ b/policyengine_uk/variables/household/demographic/num_disabled_children.py @@ -8,6 +8,6 @@ class num_disabled_children(Variable): definition_period = YEAR def formula(benunit, period, parameters): - child = benunit.members("is_child_or_QYP", period) + child = benunit.members("is_child_or_qyp", period) disabled = benunit.members("is_disabled_for_benefits", period) return benunit.sum(child & disabled) diff --git a/policyengine_uk/variables/household/demographic/num_enhanced_disabled_children.py b/policyengine_uk/variables/household/demographic/num_enhanced_disabled_children.py index 04bd60b77..bccfb213d 100644 --- a/policyengine_uk/variables/household/demographic/num_enhanced_disabled_children.py +++ b/policyengine_uk/variables/household/demographic/num_enhanced_disabled_children.py @@ -8,7 +8,7 @@ class num_enhanced_disabled_children(Variable): definition_period = YEAR def formula(benunit, period, parameters): - child = benunit.members("is_child_or_QYP", period) + child = benunit.members("is_child_or_qyp", period) enhanced_disabled = benunit.members( "is_enhanced_disabled_for_benefits", period ) diff --git a/policyengine_uk/variables/household/demographic/num_severely_disabled_children.py b/policyengine_uk/variables/household/demographic/num_severely_disabled_children.py index 2b2c8d594..4f4d17288 100644 --- a/policyengine_uk/variables/household/demographic/num_severely_disabled_children.py +++ b/policyengine_uk/variables/household/demographic/num_severely_disabled_children.py @@ -8,7 +8,7 @@ class num_severely_disabled_children(Variable): definition_period = YEAR def formula(benunit, period, parameters): - child = benunit.members("is_child_or_QYP", period) + child = benunit.members("is_child_or_qyp", period) severely_disabled = benunit.members( "is_severely_disabled_for_benefits", period ) diff --git a/policyengine_uk/variables/household/demographic/severe_disability_premium.py b/policyengine_uk/variables/household/demographic/severe_disability_premium.py index 727c57c76..3627467c5 100644 --- a/policyengine_uk/variables/household/demographic/severe_disability_premium.py +++ b/policyengine_uk/variables/household/demographic/severe_disability_premium.py @@ -10,11 +10,11 @@ class severe_disability_premium(Variable): unit = GBP def formula(benunit, period, parameters): - dis = parameters(period).gov.dwp.disability_premia + p = parameters(period).gov.dwp.disability_premia single = benunit("is_single", period.this_year) couple = benunit("is_couple", period.this_year) - single_premium = single * dis.severe_single - couple_premium = couple * dis.severe_couple + single_premium = single * p.severe_single + couple_premium = couple * p.severe_couple has_severely_disabled_adults = ( benunit("num_severely_disabled_adults", period.this_year) > 0 ) diff --git a/policyengine_uk/variables/household/income/household_benefits.py b/policyengine_uk/variables/household/income/household_benefits.py index 1523f1a7b..7bf5186ce 100644 --- a/policyengine_uk/variables/household/income/household_benefits.py +++ b/policyengine_uk/variables/household/income/household_benefits.py @@ -52,10 +52,10 @@ class household_benefits(Variable): ] def formula(household, period, parameters): - contrib = parameters(period).gov.contrib - uprating = contrib.benefit_uprating + p = parameters(period).gov.contrib + uprating = p.benefit_uprating benefits = household_benefits.adds - if contrib.abolish_council_tax: + if p.abolish_council_tax: benefits = [ benefit for benefit in benefits diff --git a/policyengine_uk/variables/household/income/is_child_or_QYP.py b/policyengine_uk/variables/household/income/is_child_or_qyp.py similarity index 72% rename from policyengine_uk/variables/household/income/is_child_or_QYP.py rename to policyengine_uk/variables/household/income/is_child_or_qyp.py index ef43be15a..fa1436eb8 100644 --- a/policyengine_uk/variables/household/income/is_child_or_QYP.py +++ b/policyengine_uk/variables/household/income/is_child_or_qyp.py @@ -1,11 +1,11 @@ from policyengine_uk.model_api import * -class is_child_or_QYP(Variable): +class is_child_or_qyp(Variable): value_type = bool entity = Person label = "Whether this person is a child or qualifying young person for most benefits" definition_period = YEAR def formula(person, period, parameters): - return (person("age", period) < 16) | person("is_QYP", period) + return (person("age", period) < 16) | person("is_qyp", period) diff --git a/policyengine_uk/variables/household/income/is_QYP.py b/policyengine_uk/variables/household/income/is_qyp.py similarity index 95% rename from policyengine_uk/variables/household/income/is_QYP.py rename to policyengine_uk/variables/household/income/is_qyp.py index 90cbe847b..dd0dc33a9 100644 --- a/policyengine_uk/variables/household/income/is_QYP.py +++ b/policyengine_uk/variables/household/income/is_qyp.py @@ -1,7 +1,7 @@ from policyengine_uk.model_api import * -class is_QYP(Variable): +class is_qyp(Variable): value_type = bool entity = Person label = "Whether this person is a qualifying young person for benefits purposes" diff --git a/policyengine_uk/variables/household/income/minimum_wage.py b/policyengine_uk/variables/household/income/minimum_wage.py index bf54d87bc..6bc71c4b3 100644 --- a/policyengine_uk/variables/household/income/minimum_wage.py +++ b/policyengine_uk/variables/household/income/minimum_wage.py @@ -11,5 +11,5 @@ class minimum_wage(Variable): unit = GBP def formula(person, period, parameters): - MW = parameters(period).gov.hmrc.minimum_wage - return MW[person("minimum_wage_category", period)] + p = parameters(period).gov.hmrc.minimum_wage + return p[person("minimum_wage_category", period)] diff --git a/policyengine_uk/variables/household/wealth/corporate_land_value.py b/policyengine_uk/variables/household/wealth/corporate_land_value.py index 3dfcd9cb3..591333866 100644 --- a/policyengine_uk/variables/household/wealth/corporate_land_value.py +++ b/policyengine_uk/variables/household/wealth/corporate_land_value.py @@ -11,10 +11,9 @@ class corporate_land_value(Variable): quantity_type = STOCK def formula(household, period, parameters): - wealth = parameters(period).household.wealth + p = parameters(period).household.wealth corporate_wealth = household("corporate_wealth", period) corporate_wealth_intensity = ( - wealth.land.value.aggregate_corporate_land_value - / wealth.corporate_wealth + p.land.value.aggregate_corporate_land_value / p.corporate_wealth ) return corporate_wealth * corporate_wealth_intensity diff --git a/policyengine_uk/variables/household/wealth/household_land_value.py b/policyengine_uk/variables/household/wealth/household_land_value.py index b57874561..968cd5e1f 100644 --- a/policyengine_uk/variables/household/wealth/household_land_value.py +++ b/policyengine_uk/variables/household/wealth/household_land_value.py @@ -13,10 +13,9 @@ class household_land_value(Variable): quantity_type = STOCK def formula(household, period, parameters): - wealth = parameters(period).household.wealth + p = parameters(period).household.wealth property_wealth_intensity = ( - wealth.land.value.aggregate_household_land_value - / wealth.property_wealth + p.land.value.aggregate_household_land_value / p.property_wealth ) property_wealth = household("property_wealth", period) owned_land = household("owned_land", period) diff --git a/policyengine_uk/variables/household/wealth/shareholding.py b/policyengine_uk/variables/household/wealth/shareholding.py index 68a283eea..8f0362ce2 100644 --- a/policyengine_uk/variables/household/wealth/shareholding.py +++ b/policyengine_uk/variables/household/wealth/shareholding.py @@ -17,8 +17,8 @@ def formula(household, period, parameters): ): weight = household("household_weight", period) return wealth / (wealth * weight).sum() - wealth = parameters(period).household.wealth - nbs = wealth.national_balance_sheet + p = parameters(period).household.wealth + nbs = p.national_balance_sheet wealth = household("corporate_wealth", period) total_wealth = nbs.household.financial_net_worth return wealth / total_wealth diff --git a/policyengine_uk/variables/input/dla_m_category.py b/policyengine_uk/variables/input/dla_m_category.py index 84b4b7737..42d7cbf13 100644 --- a/policyengine_uk/variables/input/dla_m_category.py +++ b/policyengine_uk/variables/input/dla_m_category.py @@ -14,15 +14,15 @@ class dla_m_category(Variable): default_value = LowerOrHigher.NONE def formula(person, period, parameters): - dla_m = parameters(period).baseline.gov.dwp.dla.mobility + p = parameters(period).baseline.gov.dwp.dla.mobility SAFETY_MARGIN = 0.1 # Survey reported values could be slightly below eligible values when they should be above due to data manipulation reported_weekly_dla_m = ( person("dla_m_reported", period) / WEEKS_IN_YEAR ) return select( [ - reported_weekly_dla_m >= dla_m.higher * (1 - SAFETY_MARGIN), - reported_weekly_dla_m >= dla_m.lower * (1 - SAFETY_MARGIN), + reported_weekly_dla_m >= p.higher * (1 - SAFETY_MARGIN), + reported_weekly_dla_m >= p.lower * (1 - SAFETY_MARGIN), True, ], [ diff --git a/policyengine_uk/variables/input/dla_sc_category.py b/policyengine_uk/variables/input/dla_sc_category.py index 817d8f401..149917ea6 100644 --- a/policyengine_uk/variables/input/dla_sc_category.py +++ b/policyengine_uk/variables/input/dla_sc_category.py @@ -14,16 +14,16 @@ class dla_sc_category(Variable): default_value = LowerMiddleOrHigher.NONE def formula(person, period, parameters): - dla_sc = parameters(period).baseline.gov.dwp.dla.self_care + p = parameters(period).baseline.gov.dwp.dla.self_care SAFETY_MARGIN = 0.1 # Survey reported values could be slightly below eligible values when they should be above due to data manipulation reported_weekly_dla_sc = ( person("dla_sc_reported", period) / WEEKS_IN_YEAR ) return select( [ - reported_weekly_dla_sc >= dla_sc.higher * (1 - SAFETY_MARGIN), - reported_weekly_dla_sc >= dla_sc.middle * (1 - SAFETY_MARGIN), - reported_weekly_dla_sc >= dla_sc.lower * (1 - SAFETY_MARGIN), + reported_weekly_dla_sc >= p.higher * (1 - SAFETY_MARGIN), + reported_weekly_dla_sc >= p.middle * (1 - SAFETY_MARGIN), + reported_weekly_dla_sc >= p.lower * (1 - SAFETY_MARGIN), True, ], [ diff --git a/policyengine_uk/variables/input/pip_dl_category.py b/policyengine_uk/variables/input/pip_dl_category.py index fe1c561be..f2c8f139c 100644 --- a/policyengine_uk/variables/input/pip_dl_category.py +++ b/policyengine_uk/variables/input/pip_dl_category.py @@ -12,17 +12,15 @@ class pip_dl_category(Variable): default_value = PIPCategory.NONE def formula(person, period, parameters): - pip_dl = parameters(period).baseline.gov.dwp.pip.daily_living + p = parameters(period).baseline.gov.dwp.pip.daily_living SAFETY_MARGIN = 0.1 # Survey reported values could be slightly below eligible values when they should be above due to data manipulation reported_weekly_pip_dl = ( person("pip_dl_reported", period) / WEEKS_IN_YEAR ) return select( [ - reported_weekly_pip_dl - >= pip_dl.enhanced * (1 - SAFETY_MARGIN), - reported_weekly_pip_dl - >= pip_dl.standard * (1 - SAFETY_MARGIN), + reported_weekly_pip_dl >= p.enhanced * (1 - SAFETY_MARGIN), + reported_weekly_pip_dl >= p.standard * (1 - SAFETY_MARGIN), True, ], [ diff --git a/policyengine_uk/variables/input/pip_m_category.py b/policyengine_uk/variables/input/pip_m_category.py index b4082ef1a..c8525253c 100644 --- a/policyengine_uk/variables/input/pip_m_category.py +++ b/policyengine_uk/variables/input/pip_m_category.py @@ -12,15 +12,15 @@ class pip_m_category(Variable): default_value = PIPCategory.NONE def formula(person, period, parameters): - pip_m = parameters(period).baseline.gov.dwp.pip.mobility + p = parameters(period).baseline.gov.dwp.pip.mobility SAFETY_MARGIN = 0.1 # Survey reported values could be slightly below eligible values when they should be above due to data manipulation reported_weekly_pip_m = ( person("pip_m_reported", period) / WEEKS_IN_YEAR ) return select( [ - reported_weekly_pip_m >= pip_m.enhanced * (1 - SAFETY_MARGIN), - reported_weekly_pip_m >= pip_m.standard * (1 - SAFETY_MARGIN), + reported_weekly_pip_m >= p.enhanced * (1 - SAFETY_MARGIN), + reported_weekly_pip_m >= p.standard * (1 - SAFETY_MARGIN), True, ], [ diff --git a/policyengine_uk/variables/input/rent.py b/policyengine_uk/variables/input/rent.py index 2babbba07..e71e7c74a 100644 --- a/policyengine_uk/variables/input/rent.py +++ b/policyengine_uk/variables/input/rent.py @@ -11,3 +11,53 @@ class rent(Variable): value_type = float unit = GBP quantity_type = FLOW + + def formula(household, period, parameters): + # Only apply uprating for microsimulation datasets + if household.simulation.dataset is None: + return 0 + + data_year = int(household.simulation.dataset.time_period) + + # Don't apply formula for years at or before data year + # The data itself contains the rent values for those years + if period.start.year <= data_year: + return 0 + + if period.start.year < 2023: + # We don't have growth rates for rent before this. + return 0 + + # For future years after the data year, uprate from data year + # Get rent directly from holder to avoid recursion + holder = household.get_holder("rent") + original_rent = holder.get_array(data_year) + if original_rent is None: + return 0 + tenure_type = household("tenure_type", period).decode_to_str() + + is_social_rent = (tenure_type == "RENT_FROM_COUNCIL") | ( + tenure_type == "RENT_FROM_HA" + ) + + is_private_rent = tenure_type == "RENT_PRIVATELY" + + p = parameters.gov.economic_assumptions.indices.obr + + private_rent_uprating = p.lagged_average_earnings( + period + ) / p.lagged_average_earnings(data_year) + social_rent_uprating = p.social_rent(period) / p.social_rent(data_year) + + return select( + [ + is_social_rent, + is_private_rent, + True, + ], + [ + original_rent * social_rent_uprating, + original_rent * private_rent_uprating, + original_rent, + ], + ) diff --git a/policyengine_uk/variables/input/state_pension.py b/policyengine_uk/variables/input/state_pension.py index b7ce20085..1d9d3898f 100644 --- a/policyengine_uk/variables/input/state_pension.py +++ b/policyengine_uk/variables/input/state_pension.py @@ -12,14 +12,14 @@ class state_pension(Variable): uprating = "gov.economic_assumptions.indices.obr.consumer_price_index" def formula(person, period, parameters): - gov = parameters(period).gov - if gov.contrib.abolish_state_pension: + p = parameters(period).gov + if p.contrib.abolish_state_pension: return 0 - relative_increase = gov.contrib.cec.state_pension_increase + relative_increase = p.contrib.cec.state_pension_increase uprating = 1 + relative_increase - sp = gov.dwp.state_pension + sp = p.dwp.state_pension gender = person("gender", period).decode_to_str() - is_sp_age = person("is_SP_age", period) + is_sp_age = person("is_sp_age", period) return add( person, period,