PolicyEngine / PolicyEngine/policyengine-uk

Household-impact tests return 0 for expected-positive tax/benefit values on 2.88.0

Open
#1,628 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
50
Forks
33
Avg merge
20h 58m
Merged PRs (30d)
14

Description

Summary

In policyengine.py's [uk] / [dev] extras bumped to policyengine-uk==2.88.0, two household-impact integration tests assert positive tax / child-benefit values that now come back as 0.0:

  • TestUKHouseholdImpact.test_single_adult_with_employment_incomeassert 0.0 > 0 on expected positive tax
  • TestUKHouseholdImpact.test_family_with_childrenassert 0.0 > 0 on expected positive child benefit

Under the old policyengine-uk==2.74.0 pin, both passed.

Reproducer: https://github.com/PolicyEngine/policyengine.py/pull/280Test (3.13) / Test (3.14) jobs.

Hypothesis

Either:

  • uk 2.74 → 2.88 legitimately changed the 2024 household calculation semantics (e.g. different policy year defaults, tax threshold shifts) — then the pypkg test expectations need updating, or
  • There's a regression in uk 2.88.0 for these specific household compositions.

I don't know the uk tax-benefit details well enough to diagnose.

Not blocking

Doesn't block the 3.9-support work that's already merged — uk main CI passes on 2.88.0 because uk's own YAML tests don't exercise this specific pypkg household path.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the [uk] and [dev] extras in policyengine.py and the two named TestUKHouseholdImpact tests. Reproduce the failures in the Test (3.13) and Test (3.14) jobs, then compare behavior between policyengine-uk 2.74.0 and 2.88.0 for both household compositions. Done means identifying whether the dependency change is intentional or a regression and restoring correct passing tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.