Conversation
…ncil targets (#1090) ONS's Price Index of Private Rents publishes Scottish rents for 18 Broad Rental Market Areas, not the 32 council areas, so the Scottish ons.rent.private_rent cells are signed deferred. This adds the measured overlap (Census 2022 private-rented and all households in 63 BRMA x council cells, rebuilt from five sha-pinned official originals) and uses it to answer whether a rule can turn BRMA rents into council targets. It cannot: 18 councils span more than one BRMA, 29 councils and 17 BRMAs form one connected block, and a household-weighted mean of BRMA rents gives each council inside a BRMA that BRMA's average, up to 30.9% from the council's own mean in Rent Service Scotland's 2020-21 market evidence. The cells stay deferred and the parity concern stays routed, now to #1090 (bind the rents at BRMA grain). No target value changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9 of 27 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Records the decision in #1090 and ships the table it rests on. #1090 stays open for the two routes below.
The question
ONS's Price Index of Private Rents (PIPR) publishes Scottish rents for the 18 Broad Rental Market Areas, not the 32 council areas, so all 32 Scottish
ons.rent.private_rentcells are signed deferred. The parity concerncross_grain_private_rent_scotland_brmasaid to keep them deferred "until a source-backed BRMA-to-LA bridge with an explicit aggregation rule exists". A census crosswalk now exists (policyengine-uk-data#516, #1087). Can a rule such as "household-weighted mean of BRMA rents per council" lift the deferral?No. The table shows why, and the cells stay deferred.
What changes
uk/scotland_brma_la_overlap.json: households in each of the 63 BRMA × council intersections.private_rented_householdscomes from Census 2022 tenure by ward (the finest level with this split), with a ward that crosses a BRMA boundary split by its share of output-area households. 36 of 355 wards are split; they hold 22,821 of the 322,995 private-rented households.all_householdssums output-area household counts directly, with no within-ward assumption.tools/build_uk_scotland_brma_la_overlap.pyrebuilds the resource byte for byte from five sha-pinned official originals. It needs geopandas, so it runs underuvx, not the workspace.uk_runtime/scotland_brma_la_overlap.pyloads and validates the table and answers the structural questions: shares on each side, connected blocks, coincident councils.routed, now to Scottish private-rent targets: PIPR is BRMA-grain, so council cells cannot bind by translation #1090. No target value changes; the 32 cells were deferred before and are deferred after.docs/uk-scotland-private-rent-brma-1090.mdis the decision note.Why the weighted mean is not a translation
CrossGrainBridgecannot carry it. It equates additive totals over a partition of legs. A BRMA rent is a mean, BRMA is not a grain ofUK_CROSS_GRAIN_RULE, andleg_of_areagives each council one leg.What would lift the deferral (#1090)
Invariants
Stated in
test_uk_scotland_brma_la_overlap.py:The cells are pinned by digest. A rebuild test runs wherever the originals are staged (
UK_SCOTLAND_BRMA_LA_CACHE). A tripwire test fails if a BRMA grain, area type or rent bridge is added, so the concern is revisited then.Limits
local_target_reference_membership.jsonwas edited in place, because the licensed Chronicle feed was not staged to rerun the generator. A test asserts the committed text equals the generator's, and only that text differs.Commands run
uvx --with geopandas --with pandas --with openpyxl --with pyogrio python tools/build_uk_scotland_brma_la_overlap.py --cache <originals> --check: current. The cells also match an earlier, separately written build of the same sources (all-household cells identical, private-rented within rounding).pytestonengine_free/uk/test_uk_scotland_brma_la_overlap.py(withUK_SCOTLAND_BRMA_LA_CACHEset, so the rebuild test ran),test_uk_pipr_deferrals.py,test_uk_data_target_parity.py, andengine_free/shared/test_country_spec.py,test_spec_engine_country_bundles.py,test_spec_engine_identity_contracts.py: all passed. The one skip is the existing uk-data tree re-hash test.tools/census_uk_data_target_parity.py --check: current.ruff check .: clean.python3 tools/ci_test_plan.py verify: ok.🤖 Generated with Claude Code