You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
UK CGT top-tail age and geography joints inherit from incidence and look off — benchmark against HMRC marginals #725
Health check of the joints the CGT imputation does not condition on, prompted by Nikhil's question in #microcosm-uk. The stage conditions on taxable income only (rank-preserving within the Table 3 bands; the 76 band facts are fenced from calibration per #552, and nothing else is targeted), so age, region, wealth, and income-composition joints inherit from FRS/WAS incidence plus rank ordering. These are weighted aggregates from the signed 2026-08-17 staging artifact (main 1131576b, seed 42).
Age
age
taxpayers
£2m+ gainers
<25
4,300
0
25–34
37,200
160
35–44
66,600
1,330
45–54
71,300
1,750
55–64
91,900
1,280
65–74
46,200
30
75+
40,400
70
total
357,900
4,630
The all-taxpayer profile looks sane (peak 55–64; 24% of taxpayers 65+). The top tail does not: 65+ holds 24% of taxpayers but 2% of £2m+ gainers. Mechanism: retirees report pension-sized taxable income, so the proxy files them in low income columns where Table 3 puts small gains, and rank preservation hands the biggest amounts to working-age high earners. If HMRC's age/sex table in the same statistics collection shows top gains skewing older (I expect it does), this is the first candidate for the #552 fence's promotion path as a reviewed target.
Region (£2m+ group)
region
people
gains £bn
London
700
6.50
East of England
430
4.00
South East
370
3.83
South West
660
3.62
Yorkshire
750
3.54
West Midlands
1,090
2.75
North West
350
1.47
Wales
140
1.20
East Midlands
70
0.18
Scotland
50
0.37
Northern Ireland
30
0.15
Treat this joint as weakly identified: 4,630 weighted people at household weights up to ~9,300 means the smaller cells hold one or two clone households, and West Midlands out-crowding London on counts reads as incidence noise. HMRC's geography table gives the benchmark; second promotion-path candidate.
Income composition
£2m+ group vs all taxpayers: dividends 24% vs 11%; self-employment 30% vs 10%; property 12% vs 7%. Direction sensible (top gainers more business-linked). Whether 24% dividend-receiving runs high enough for a group that should be heavy with share disposals is untestable internally — the FRS records the year's flows, and a founder in their exit year may report zero dividends.
Suggested work
Pin HMRC's age/sex and geography CGT tables (same collection as Table 3) as fingerprinted source artifacts and compute the comparison.
Reproduction: ~/microcosm-gated-builds/uk-cgt-676/gains_interactions.json locally; the script loads the staged H5 via load_uk_national_frame and needs only the artifact.
Refs: #552 (fence + promotion path), #704 (calibration sequencing), #710 (the weight fix behind the signed artifact).
Refresh the evidence for the chosen candidate and fiscal period: distinguish 16–24 from 25–34, raw support from calibrated mass, and published age/geography marginals from joints they do not identify. Preserve source lineage and the CGT gains/count/liability checks through any assignment experiment. The older artifact tables remain historical evidence, rather than acceptance results for the next build.
Activity
juaristi22 commentedon Sep 10, 2026
Consolidating the remaining current-dataset CGT follow-up here after the issue audit:
Refresh the evidence for the chosen candidate and fiscal period: distinguish 16–24 from 25–34, raw support from calibrated mass, and published age/geography marginals from joints they do not identify. Preserve source lineage and the CGT gains/count/liability checks through any assignment experiment. The older artifact tables remain historical evidence, rather than acceptance results for the next build.
Check the asset-type enum at the transferred boundary and re-pin the …
Net the CGT cell-walk rounding and realise the residential flag by we…
Round the CGT cell walks systematically and name the UC element exclu…
Draw each CGT plan's amounts on stratified quantiles, the open band o…
Measure the CGT distribution on twin spines and calibrations (#725)
Split the 16-24 rake group and hold Table 6 gains by age with an expo…
Carry each CGT cell walk's rounding error into the next cell (#725)
Draw each CGT plan's amounts on weight-proportional quantile strata (#…
Measure the split-plus-tilt rounds and correct the liability reading (#…
Filter-aware gated provider and constraint-derived band edges (#725, #…
Add the scaled_by_ratio value operation for ratio-translated cells (#725
Row-level signed exclusions and exact-suffix CGT band naming for fan-…
Vendor the HMRC CGT 2024-25 conditioning facts from the pinned Chroni…
Condition the UK CGT amounts redraw on age and region on the 2024-25 …
7 remaining items
Measure the CGT distribution on twin spines and calibrations (#725)
Split the 16-24 rake group and hold Table 6 gains by age with an expo…
Carry each CGT cell walk's rounding error into the next cell (#725)
Draw each CGT plan's amounts on weight-proportional quantile strata (#…
Measure the split-plus-tilt rounds and correct the liability reading (#…
Regenerate the derived surfaces on the c5e5bf8 feed after rebasing over
Drop the unused math import from the CGT asset-type stage (#725)
Address Vahid's review round 1 on #939 (#725)
Close the two pre-merge residuals from Vahid's approval (#725)
Merge pull request #939 from PolicyEngine/uk-cgt-distribution-725
Regenerate the derived surfaces on the 7846605 feed after rebasing over
Regenerate the derived surfaces on the 7846605 feed after rebasing over
Regenerate the derived surfaces on the 7846605 feed after rebasing over
Regenerate the derived surfaces on the 7846605 feed after rebasing over
Regenerate the derived surfaces on the 7846605 feed after rebasing over