Commit bf2cbcb
authored
Default property_purchased to False to stop phantom stamp duty (#1752)
property_purchased had default_value=True, introduced incidentally in
the 2025 one-variable-per-file refactor (#1139). Because
main_residential_property_purchased is computed as
main_residence_value * property_purchased, a True default charges every
household in a population dataset full SDLT/LBTT/LTT on its entire home
value (~£370bn of phantom stamp duty, 26x real receipts).
This inflated the first income decile's effective tax rate to 251% and
broke the policyengine-uk-data build (test_first_decile_tax_rate_
reasonable) for ~2 weeks, blocking all new UK data releases.
Flip the default to False (fail-safe: a household has not bought all its
property this year). The household calculator and YAML tests set
main_residential_property_purchased directly, so they are unaffected
(all 16 SDLT/LTT tests still pass). Population datasets explicitly set
property_purchased for the ~3.85% of genuine purchasers.
Adds a regression test: a household with main_residence_value but no
purchase now pays £0 stamp duty.1 parent 0dd45b7 commit bf2cbcb
3 files changed
Lines changed: 18 additions & 1 deletion
File tree
- changelog.d
- policyengine_uk
- tests/policy/baseline/gov/hmrc/stamp_duty
- variables/input/consumption/property
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
Lines changed: 9 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
0 commit comments