Skip to content

Commit e34412b

Browse files
juaristi22claude
andcommitted
Bind the SPI net property-income amounts unscaled (#1106)
HMRC's Property Rental Income Statistics are receipts before allowable expenses; SPI Table 3.7 net income from property is landlords' profit after allowable expenses and before residential finance costs, the concept property_income holds (policyengine-uk#2172 now documents it so). The incumbent's x1.9 scaling (uk-data#311) set the first against the second, so the 13 amount rows were signed out pending a ruling. María ruled on 2026-10-05 to bind each concept on its own variable. - The signed exclusion property_income_undercount_adjustment_missing is retired, the hmrc_spi family outcome becomes active_strict_band_pins with a rationale for the net concept, and the contract note replaces the x1.9 sentence. The uprating index stays obr.per_capita.gdp. - Regenerated from feed 825406f: 1,244 active references on #1121's base (13 added, none changed), 15 signed out; membership candidates 1,253 -> 1,265. - Both national compile-parity receipts gain the 13 rows. A property- specific reason precedes the generic SPI drift reason, which blamed the fixture's one-year projection: the 2025 values are £31.78bn against the fixture's £55.78bn (1.9 x £29.36bn). - Tests: the reference counts, the inverted property test (13 rows on the per-capita GDP hold, no value operation), the membership outcome and signed-rationale lists; the income-anchors note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent a469ebe commit e34412b

13 files changed

Lines changed: 928 additions & 189 deletions
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
The 13 SPI Table 3.7 net property-income amounts by total-income band are bound (microcosm#1106, María's ruling of 2026-10-05). They had been signed out over the incumbent's x1.9 scaling (uk-data#311), which set HMRC Property Rental Income Statistics receipts against the SPI's net concept; HMRC confirmed those statistics are before allowable expenses. The facts now bind unscaled on `property_income`, landlords' profit after allowable expenses and before residential finance costs, uprated from 2023-24 to 2025 by the pinned per-capita GDP index (factor 1.0826): £31.78bn in all against the incumbent fixture's £55.78bn (1.9 × £29.36bn), for example £5.85bn against £10.26bn in the £50,000 to £70,000 band and £2.76bn against £4.85bn in the £100,000 to £150,000 band. Active national references go from 1,231 to 1,244. Both national compile-parity receipts gain the 13 rows (the 2025 incumbent receipt as calibration drift, with the retired scaling as the reason); the local surface is unchanged. The 13 new specs move the compiled register, so uk-candidate-eval's frozen scoring register needs a re-freeze before the next national solve.

‎docs/uk-income-anchors-280.md‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -360,11 +360,14 @@ after the reorder were still falling 0.11 to 0.75 points).
360360

361361
## Not done here
362362

363-
- The property-income amount rows stay signed out: the spine's
364-
`property_income` is FRS rent from other property (before tax, after the
365-
expenses on show card K6, which include mortgage payments and loan
366-
interest) plus sub-letting rent as reported, which SUBALLOW records as
367-
before or after expenses, while the SPI concept is landlords' profit after
368-
allowable expenses and before residential finance costs.
363+
- The property-income amount rows are bound since microcosm#1106: the 13 SPI
364+
Table 3.7 net amounts bind unscaled on `property_income`, landlords' profit
365+
after allowable expenses and before residential finance costs, and the
366+
incumbent's x1.9 scaling is retired (María's ruling of 2026-10-05). The FRS
367+
side is not done: the spine's FRS landlords hold rent from other property
368+
(before tax, after the expenses on show card K6, which include mortgage
369+
payments and loan interest) plus sub-letting rent as reported, which
370+
SUBALLOW records as before or after expenses, so they sit below the SPI
371+
concept and the binding leans on the SPI records and the weights.
369372
- The ESA rows' migration residual and the SPI support channel's benefit fill
370373
(microcosm#840, #867, #869) are spine items.

‎packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_incumbent_2025_signed_differences.json‎

Lines changed: 107 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"compiled_count": 1231,
2+
"compiled_count": 1244,
33
"counts_by_kind": {
4-
"calibration_drift": 553,
5-
"fixture_only": 55,
4+
"calibration_drift": 566,
5+
"fixture_only": 42,
66
"ledger_only": 649
77
},
88
"difference_count": 1257,
@@ -63,97 +63,6 @@
6363
"period": 2025,
6464
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
6565
},
66-
{
67-
"fixture_value": 4845000000.0,
68-
"kind": "fixture_only",
69-
"name": "hmrc/property_income_income_band_100_000_to_150_000",
70-
"period": 2025,
71-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
72-
},
73-
{
74-
"fixture_value": 1273000000.0,
75-
"kind": "fixture_only",
76-
"name": "hmrc/property_income_income_band_12_570_to_15_000",
77-
"period": 2025,
78-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
79-
},
80-
{
81-
"fixture_value": 2185000000.0,
82-
"kind": "fixture_only",
83-
"name": "hmrc/property_income_income_band_150_000_to_200_000",
84-
"period": 2025,
85-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
86-
},
87-
{
88-
"fixture_value": 3211000000.0,
89-
"kind": "fixture_only",
90-
"name": "hmrc/property_income_income_band_15_000_to_20_000",
91-
"period": 2025,
92-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
93-
},
94-
{
95-
"fixture_value": 834100000.0,
96-
"kind": "fixture_only",
97-
"name": "hmrc/property_income_income_band_1_000_000_to_inf",
98-
"period": 2025,
99-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
100-
},
101-
{
102-
"fixture_value": 1995000000.0,
103-
"kind": "fixture_only",
104-
"name": "hmrc/property_income_income_band_200_000_to_300_000",
105-
"period": 2025,
106-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
107-
},
108-
{
109-
"fixture_value": 7258000000.0,
110-
"kind": "fixture_only",
111-
"name": "hmrc/property_income_income_band_20_000_to_30_000",
112-
"period": 2025,
113-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
114-
},
115-
{
116-
"fixture_value": 1453500000.0,
117-
"kind": "fixture_only",
118-
"name": "hmrc/property_income_income_band_300_000_to_500_000",
119-
"period": 2025,
120-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
121-
},
122-
{
123-
"fixture_value": 7220000000.0,
124-
"kind": "fixture_only",
125-
"name": "hmrc/property_income_income_band_30_000_to_40_000",
126-
"period": 2025,
127-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
128-
},
129-
{
130-
"fixture_value": 7182000000.0,
131-
"kind": "fixture_only",
132-
"name": "hmrc/property_income_income_band_40_000_to_50_000",
133-
"period": 2025,
134-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
135-
},
136-
{
137-
"fixture_value": 900600000.0,
138-
"kind": "fixture_only",
139-
"name": "hmrc/property_income_income_band_500_000_to_1_000_000",
140-
"period": 2025,
141-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
142-
},
143-
{
144-
"fixture_value": 10260000000.0,
145-
"kind": "fixture_only",
146-
"name": "hmrc/property_income_income_band_50_000_to_70_000",
147-
"period": 2025,
148-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
149-
},
150-
{
151-
"fixture_value": 7163000000.0,
152-
"kind": "fixture_only",
153-
"name": "hmrc/property_income_income_band_70_000_to_100_000",
154-
"period": 2025,
155-
"reason": "Fixture row has no Ledger-compiled counterpart at this comparison period."
156-
},
15766
{
15867
"fixture_value": 24720000000.0,
15968
"kind": "fixture_only",
@@ -6767,6 +6676,110 @@
67676676
"period": 2025,
67686677
"reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios."
67696678
},
6679+
{
6680+
"fixture_value": 4845000000.0,
6681+
"kind": "calibration_drift",
6682+
"ledger_value": 2760698221.4869194,
6683+
"name": "hmrc/property_income_income_band_100_000_to_150_000",
6684+
"period": 2025,
6685+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6686+
},
6687+
{
6688+
"fixture_value": 1273000000.0,
6689+
"kind": "calibration_drift",
6690+
"ledger_value": 725359924.861269,
6691+
"name": "hmrc/property_income_income_band_12_570_to_15_000",
6692+
"period": 2025,
6693+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6694+
},
6695+
{
6696+
"fixture_value": 2185000000.0,
6697+
"kind": "calibration_drift",
6698+
"ledger_value": 1245020766.5529244,
6699+
"name": "hmrc/property_income_income_band_150_000_to_200_000",
6700+
"period": 2025,
6701+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6702+
},
6703+
{
6704+
"fixture_value": 3211000000.0,
6705+
"kind": "calibration_drift",
6706+
"ledger_value": 1829639213.4560368,
6707+
"name": "hmrc/property_income_income_band_15_000_to_20_000",
6708+
"period": 2025,
6709+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6710+
},
6711+
{
6712+
"fixture_value": 834100000.0,
6713+
"kind": "calibration_drift",
6714+
"ledger_value": 475273144.79715985,
6715+
"name": "hmrc/property_income_income_band_1_000_000_to_inf",
6716+
"period": 2025,
6717+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6718+
},
6719+
{
6720+
"fixture_value": 1995000000.0,
6721+
"kind": "calibration_drift",
6722+
"ledger_value": 1136758091.2004962,
6723+
"name": "hmrc/property_income_income_band_200_000_to_300_000",
6724+
"period": 2025,
6725+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6726+
},
6727+
{
6728+
"fixture_value": 7258000000.0,
6729+
"kind": "calibration_drift",
6730+
"ledger_value": 4135634198.462758,
6731+
"name": "hmrc/property_income_income_band_20_000_to_30_000",
6732+
"period": 2025,
6733+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6734+
},
6735+
{
6736+
"fixture_value": 1453500000.0,
6737+
"kind": "calibration_drift",
6738+
"ledger_value": 828209466.4460759,
6739+
"name": "hmrc/property_income_income_band_300_000_to_500_000",
6740+
"period": 2025,
6741+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6742+
},
6743+
{
6744+
"fixture_value": 7220000000.0,
6745+
"kind": "calibration_drift",
6746+
"ledger_value": 4113981663.3922725,
6747+
"name": "hmrc/property_income_income_band_30_000_to_40_000",
6748+
"period": 2025,
6749+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6750+
},
6751+
{
6752+
"fixture_value": 7182000000.0,
6753+
"kind": "calibration_drift",
6754+
"ledger_value": 4092329128.3217864,
6755+
"name": "hmrc/property_income_income_band_40_000_to_50_000",
6756+
"period": 2025,
6757+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6758+
},
6759+
{
6760+
"fixture_value": 900600000.0,
6761+
"kind": "calibration_drift",
6762+
"ledger_value": 513165081.17050976,
6763+
"name": "hmrc/property_income_income_band_500_000_to_1_000_000",
6764+
"period": 2025,
6765+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6766+
},
6767+
{
6768+
"fixture_value": 10260000000.0,
6769+
"kind": "calibration_drift",
6770+
"ledger_value": 5846184469.031124,
6771+
"name": "hmrc/property_income_income_band_50_000_to_70_000",
6772+
"period": 2025,
6773+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6774+
},
6775+
{
6776+
"fixture_value": 7163000000.0,
6777+
"kind": "calibration_drift",
6778+
"ledger_value": 4081502860.786544,
6779+
"name": "hmrc/property_income_income_band_70_000_to_100_000",
6780+
"period": 2025,
6781+
"reason": "The x1.9 adjustment is retired (microcosm#1106, María's ruling of 2026-10-05): ours binds the SPI 2023-24 Table 3.7 net income from property, landlords' profit after allowable expenses and before residential finance costs, moved to the 2025 calibration year by the pinned engine's per-capita GDP index; the frozen incumbent fixture holds 1.9 times the SPI amounts (uk-data#311), a factor that set HMRC Property Rental Income Statistics receipts, which are before expenses, against this net concept."
6782+
},
67706783
{
67716784
"fixture_value": 85000.0,
67726785
"kind": "calibration_drift",

‎packages/microcosm-build/src/microcosm/build/uk/ledger_compile_parity_production_2023_signed_differences.json‎

Lines changed: 94 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"compiled_count": 919,
2+
"compiled_count": 932,
33
"counts_by_kind": {
44
"calibration_drift": 120,
55
"fixture_only": 17,
6-
"ledger_only": 787
6+
"ledger_only": 800
77
},
8-
"difference_count": 924,
8+
"difference_count": 937,
99
"differences": [
1010
{
1111
"fixture_value": 82000.0,
@@ -4256,6 +4256,97 @@
42564256
"period": 2023,
42574257
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
42584258
},
4259+
{
4260+
"kind": "ledger_only",
4261+
"ledger_value": 2550000000.0,
4262+
"name": "hmrc/property_income_income_band_100_000_to_150_000",
4263+
"period": 2023,
4264+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4265+
},
4266+
{
4267+
"kind": "ledger_only",
4268+
"ledger_value": 670000000.0,
4269+
"name": "hmrc/property_income_income_band_12_570_to_15_000",
4270+
"period": 2023,
4271+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4272+
},
4273+
{
4274+
"kind": "ledger_only",
4275+
"ledger_value": 1150000000.0,
4276+
"name": "hmrc/property_income_income_band_150_000_to_200_000",
4277+
"period": 2023,
4278+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4279+
},
4280+
{
4281+
"kind": "ledger_only",
4282+
"ledger_value": 1690000000.0,
4283+
"name": "hmrc/property_income_income_band_15_000_to_20_000",
4284+
"period": 2023,
4285+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4286+
},
4287+
{
4288+
"kind": "ledger_only",
4289+
"ledger_value": 439000000.0,
4290+
"name": "hmrc/property_income_income_band_1_000_000_to_inf",
4291+
"period": 2023,
4292+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4293+
},
4294+
{
4295+
"kind": "ledger_only",
4296+
"ledger_value": 1050000000.0,
4297+
"name": "hmrc/property_income_income_band_200_000_to_300_000",
4298+
"period": 2023,
4299+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4300+
},
4301+
{
4302+
"kind": "ledger_only",
4303+
"ledger_value": 3820000000.0,
4304+
"name": "hmrc/property_income_income_band_20_000_to_30_000",
4305+
"period": 2023,
4306+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4307+
},
4308+
{
4309+
"kind": "ledger_only",
4310+
"ledger_value": 765000000.0,
4311+
"name": "hmrc/property_income_income_band_300_000_to_500_000",
4312+
"period": 2023,
4313+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4314+
},
4315+
{
4316+
"kind": "ledger_only",
4317+
"ledger_value": 3800000000.0,
4318+
"name": "hmrc/property_income_income_band_30_000_to_40_000",
4319+
"period": 2023,
4320+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4321+
},
4322+
{
4323+
"kind": "ledger_only",
4324+
"ledger_value": 3780000000.0,
4325+
"name": "hmrc/property_income_income_band_40_000_to_50_000",
4326+
"period": 2023,
4327+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4328+
},
4329+
{
4330+
"kind": "ledger_only",
4331+
"ledger_value": 474000000.0,
4332+
"name": "hmrc/property_income_income_band_500_000_to_1_000_000",
4333+
"period": 2023,
4334+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4335+
},
4336+
{
4337+
"kind": "ledger_only",
4338+
"ledger_value": 5400000000.0,
4339+
"name": "hmrc/property_income_income_band_50_000_to_70_000",
4340+
"period": 2023,
4341+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4342+
},
4343+
{
4344+
"kind": "ledger_only",
4345+
"ledger_value": 3770000000.0,
4346+
"name": "hmrc/property_income_income_band_70_000_to_100_000",
4347+
"period": 2023,
4348+
"reason": "Ledger-compiled row has no fixture counterpart at this comparison period."
4349+
},
42594350
{
42604351
"kind": "ledger_only",
42614352
"ledger_value": 85000.0,

0 commit comments

Comments
 (0)