policyengine-uk 2.50.0__py3-none-any.whl → 2.52.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of policyengine-uk might be problematic. Click here for more details.

@@ -3,8 +3,8 @@ metadata:
3
3
  economy: false
4
4
  propagate_metadata_to_children: true
5
5
  reference:
6
- - href: https://obr.uk/forecasts-in-depth/tax-by-tax-spend-by-spend/vat/
7
- title: OBR
6
+ - href: https://obr.uk/forecasts-in-depth/tax-by-tax-spend-by-spend/vat/
7
+ title: OBR
8
8
  unit: /1
9
9
  values:
10
- 2000-01-01: 0.03
10
+ 2000-01-01: 0.025
@@ -12,11 +12,11 @@ reforms:
12
12
  parameters:
13
13
  gov.hmrc.income_tax.allowances.personal_allowance.amount: 13000
14
14
  - name: Raise child benefit by 25GBP/week per additional child
15
- expected_impact: -1.4
15
+ expected_impact: -1.5
16
16
  parameters:
17
17
  gov.hmrc.child_benefit.amount.additional: 25
18
18
  - name: Reduce Universal Credit taper rate to 20%
19
- expected_impact: -36.0
19
+ expected_impact: -36.5
20
20
  parameters:
21
21
  gov.dwp.universal_credit.means_test.reduction_rate: 0.2
22
22
  - name: Raise Class 1 main employee NICs rate to 10%
@@ -28,6 +28,6 @@ reforms:
28
28
  parameters:
29
29
  gov.hmrc.vat.standard_rate: 0.22
30
30
  - name: Raise additional rate by 3pp
31
- expected_impact: 5.3
31
+ expected_impact: 5.4
32
32
  parameters:
33
33
  gov.hmrc.income_tax.rates.uk[2].rate: 0.48
@@ -6,18 +6,65 @@ class is_benefit_cap_exempt(Variable):
6
6
  entity = BenUnit
7
7
  label = "Whether exempt from the benefits cap"
8
8
  definition_period = YEAR
9
+ reference = "https://www.gov.uk/benefit-cap/when-youre-not-affected"
9
10
 
10
11
  def formula(benunit, period, parameters):
12
+ # Check if anyone in benefit unit is over state pension age
13
+ person = benunit.members
14
+ over_pension_age = person("is_SP_age", period)
15
+ has_pensioner = benunit.any(over_pension_age)
16
+
17
+ # UC-specific exemptions
18
+ # Limited capability for work and work-related activity
19
+ has_lcwra = benunit.any(
20
+ person("uc_limited_capability_for_WRA", period)
21
+ )
22
+
23
+ # Carer element in UC indicates caring for someone with disability
24
+ gets_uc_carer_element = benunit("uc_carer_element", period) > 0
25
+
26
+ # Earnings exemption for UC (£846/month = £10,152/year)
27
+ # Note: Only check earned income, not UC amount itself to avoid circular dependency
28
+ uc_earned = benunit("uc_earned_income", period)
29
+ earnings_threshold = 10_152
30
+ meets_earnings_test = uc_earned >= earnings_threshold
31
+
32
+ # Disability and carer benefits that exempt from cap
11
33
  QUAL_PERSONAL_BENEFITS = [
34
+ "attendance_allowance",
12
35
  "carers_allowance",
13
- "dla",
14
- "esa_contrib",
36
+ "dla", # Disability Living Allowance (includes components)
37
+ "pip_dl", # PIP daily living component
38
+ "pip_m", # PIP mobility component
39
+ "iidb", # Industrial injuries disability benefit
40
+ ]
41
+
42
+ # ESA and Working Tax Credit
43
+ QUAL_BENUNIT_BENEFITS = [
44
+ "esa_income", # Income-based ESA
45
+ "working_tax_credit", # If getting WTC, likely working enough
15
46
  ]
16
- QUAL_BENUNIT_BENEFITS = ["working_tax_credit", "esa_income"]
47
+
48
+ qualifying_personal_benefits = add(
49
+ benunit, period, QUAL_PERSONAL_BENEFITS
50
+ )
17
51
  qualifying_benunit_benefits = add(
18
52
  benunit, period, QUAL_BENUNIT_BENEFITS
19
53
  )
20
- qualifying_personal_benefits = add(
21
- benunit, period, QUAL_PERSONAL_BENEFITS
54
+
55
+ # Check for Armed Forces Compensation Scheme payments
56
+ afcs = benunit("afcs", period) > 0
57
+
58
+ # ESA contribution-based with support component
59
+ esa_support_component = benunit("esa_contrib", period) > 0
60
+
61
+ return (
62
+ has_pensioner
63
+ | has_lcwra
64
+ | gets_uc_carer_element
65
+ | meets_earnings_test
66
+ | (qualifying_personal_benefits > 0)
67
+ | (qualifying_benunit_benefits > 0)
68
+ | afcs
69
+ | esa_support_component
22
70
  )
23
- return (qualifying_personal_benefits + qualifying_benunit_benefits) > 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-uk
3
- Version: 2.50.0
3
+ Version: 2.52.0
4
4
  Summary: PolicyEngine tax and benefit system for the UK.
5
5
  Project-URL: Homepage, https://github.com/PolicyEngine/policyengine-uk
6
6
  Project-URL: Repository, https://github.com/PolicyEngine/policyengine-uk
@@ -436,7 +436,7 @@ policyengine_uk/parameters/gov/hmrc/tax_free_childcare/contribution/standard_chi
436
436
  policyengine_uk/parameters/gov/hmrc/tax_free_childcare/income/countable_sources.yaml,sha256=fOo_hApXeT8_1InW6QTHKMFZzO-ABfMgHyE0g35ii6U,433
437
437
  policyengine_uk/parameters/gov/hmrc/tax_free_childcare/income/income_limit.yaml,sha256=Dp8lJkOH8rc_eq8V7T-Mz2ADv1nQwBbkHgATCZoqM4w,639
438
438
  policyengine_uk/parameters/gov/hmrc/vat/reduced_rate.yaml,sha256=I2PKuZFND7N26yiv3Rr5wWLFeyIP90DPSn1TBMnY6gc,343
439
- policyengine_uk/parameters/gov/hmrc/vat/reduced_rate_share.yaml,sha256=JmBvkZ60TGUye1tJnHIjGcc_RZBU2ByKe1fg7uEoJ5A,283
439
+ policyengine_uk/parameters/gov/hmrc/vat/reduced_rate_share.yaml,sha256=DAhFxE2aP5S2Z36_teksCYJk9pyLu8-6wKH18RqoDKk,288
440
440
  policyengine_uk/parameters/gov/hmrc/vat/standard_rate.yaml,sha256=nwb_ZtC0w6nCtS1kjarOW7SvplhiG7CCIo_1Rva8cmk,399
441
441
  policyengine_uk/parameters/gov/indices/private_rent_index.yaml,sha256=FEYJW0FRD0OvQnx2HURKQ4wzKwIk0COLCZGZeU3aGYo,2562
442
442
  policyengine_uk/parameters/gov/local_authorities/README.md,sha256=XVumqnA1PuLF98hZ3hTQkhU6j2ehCIQHLkkC8Ha16Q8,20
@@ -545,7 +545,7 @@ policyengine_uk/tests/test_parameter_metadata.py,sha256=_2w2dSokAf5Jskye_KIL8eh8
545
545
  policyengine_uk/tests/behavioral_responses/test_labor_supply_responses.yaml,sha256=xR8cy0XjcG8xTL_ufgEl1BHNWhXefVnA2va7X3v6FBk,5783
546
546
  policyengine_uk/tests/code_health/test_variables.py,sha256=9Y-KpmzhyRGy9eEqocK9z91NXHX5QIF3mDMNGvegb7Q,1398
547
547
  policyengine_uk/tests/microsimulation/README.md,sha256=1toB1Z06ynlUielTrsAaeo9Vb-c3ZrB3tbbR4E1xUGk,3924
548
- policyengine_uk/tests/microsimulation/reforms_config.yaml,sha256=vJF-BeiaR9W1BiJjr8TIxKDEcks28LSTDcTryXuoSTs,1086
548
+ policyengine_uk/tests/microsimulation/reforms_config.yaml,sha256=M4A8PIdTfxGxGF7iSk8lKqriqR9HrV6VtyPGzS2BkrM,1086
549
549
  policyengine_uk/tests/microsimulation/test_reform_impacts.py,sha256=xM3M2pclEhA9JIFpnuiPMy1fEBFOKcSzroRPk73FPls,2635
550
550
  policyengine_uk/tests/microsimulation/test_validity.py,sha256=_mHgrNu-hKzVd9V2GSg_yPQgJctxRzdQM7lM2bUvqNY,636
551
551
  policyengine_uk/tests/microsimulation/update_reform_impacts.py,sha256=4m5EpPu4SXTE3qOPkx3eIZnlaOzprfm6GmMCXETZuLk,6890
@@ -846,7 +846,7 @@ policyengine_uk/variables/gov/dwp/is_CTC_child_limit_exempt.py,sha256=_kSBwtMuTL
846
846
  policyengine_uk/variables/gov/dwp/is_CTC_eligible.py,sha256=eDWw_fj_dAvE8zZ4XStvxUd06D_D9goDMqvnL1ILTvo,565
847
847
  policyengine_uk/variables/gov/dwp/is_SP_age.py,sha256=yiDWUA5FicwN4PSXVQ9CDXwONj96LFtlsGoT22kYH8s,364
848
848
  policyengine_uk/variables/gov/dwp/is_WTC_eligible.py,sha256=Oc0ZyQYK09U4PQv00HZtVhXMxh5MQGs3s4M-VjJvv_g,2020
849
- policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt.py,sha256=JbXVGLI3bUpG525xjuamudRB3rPMBnYEeRf_gcbGrVc,733
849
+ policyengine_uk/variables/gov/dwp/is_benefit_cap_exempt.py,sha256=jtaAEjRjhesm6UpauO6Th1FteO-Dkt5g7u7qlrdf1hs,2548
850
850
  policyengine_uk/variables/gov/dwp/is_child_for_CTC.py,sha256=p1vdgGohyqRWy-0nppBa5McUr3alDPIwWZl9vC_NDWk,336
851
851
  policyengine_uk/variables/gov/dwp/jsa.py,sha256=2m9V-fwcawZzpOLC6TyWEl-Odze9E6vLH5E2h26kBQA,254
852
852
  policyengine_uk/variables/gov/dwp/jsa_contrib.py,sha256=6rdONNAAl2OYAmGfLxx2RNo2g0OyMzCn5Fd-S7GHizQ,234
@@ -1387,7 +1387,7 @@ policyengine_uk/variables/misc/spi_imputed.py,sha256=iPVlBF_TisM0rtKvO-3-PQ2UYCe
1387
1387
  policyengine_uk/variables/misc/uc_migrated.py,sha256=zFNcUJaO8gwmbL1iY9GKgUt3G6J9yrCraqBV_5dCvlM,306
1388
1388
  policyengine_uk/variables/misc/categories/lower_middle_or_higher.py,sha256=C54tHYz2DmOyvQYCC1bF8RJwRZinhAq_e3aYC-9F5fM,157
1389
1389
  policyengine_uk/variables/misc/categories/lower_or_higher.py,sha256=81NIbLLabRr9NwjpUZDuV8IV8_mqmp5NM-CZvt55TwE,129
1390
- policyengine_uk-2.50.0.dist-info/METADATA,sha256=JOij1Pjkmwox1BueOpJh3t37F2GVvrH-_08qRI8s2P8,3995
1391
- policyengine_uk-2.50.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1392
- policyengine_uk-2.50.0.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
1393
- policyengine_uk-2.50.0.dist-info/RECORD,,
1390
+ policyengine_uk-2.52.0.dist-info/METADATA,sha256=GEBD8IHDt-zrOS-i0rsvnEA3xXYbNJAUOgZlM0OF20Q,3995
1391
+ policyengine_uk-2.52.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1392
+ policyengine_uk-2.52.0.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
1393
+ policyengine_uk-2.52.0.dist-info/RECORD,,