Repository navigation
UK facts for chronicle#395: Northern Ireland domestic rates, Welsh bus journeys, the Childcare Offer for Wales, VED by payer and CPI gas weights - #396
Conversation
Northern Ireland's domestic rates (LPS rates paid by council; ONS's regional and district rows), DfT BUS01's journeys for Wales, the Childcare Offer for Wales report's 2023-24 take-up, ONS's vehicle duty paid by households and by businesses, and ONS's CPI weights and indices for gas. The OBR's vehicle excise duties line joins the March 2026 receipts package, and the October package carries it under the same line id and concept. The delimited-text parser reads '£' amounts as numbers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review of f343b52 (draft, so a comment rather than a formal review). First round; no earlier comments or threads. The numbers are right. Every fact I re-read from the pinned bytes matches, and every pinned file I could fetch matches the publisher's current file. No musts. Three shoulds and three nits, mostly about what the docs tell Microcosm. Findings1. should: published relief figures exist for two domestic reliefs.
Both reliefs are domestic only, so the "revenue isn't split by property type" reason doesn't apply to them. They are small and end at 2023-24, and rate rebate is still missing, so they don't give the whole bill net of reliefs. But #395 asks for reliefs "as separate facts where the source gives them". Please port them, or name them in the docs and on #395 with the reason for leaving them out. 2. should: say how the LPS and ONS figures relate. A data point for #1095: #395 names two OBR lines, £494m (expenditure 4.1, 3. should: Wales's bus journeys are now in Chronicle twice, one year apart. 4. nit: record that the eligible population comes from APS 2023. 5. nit: give the PUSF split's basis. 6. nit: VerdictSound and carefully sourced. The two "no published source" statements are honest for Wales fares, and nothing is derived. For NI reliefs, item 1 qualifies that statement. Items 1 to 3 are worth doing before this leaves draft, and the bundle job needs to go green. What I ranFresh clone at f343b52, fresh venv, deleted afterwards. Hashes. Fetched from the publishers today, all byte-identical to the pins:
Facts re-read independently. I read the source files myself (csv, openpyxl, pandas, pypdf) and compared them with
OBR VED.
Pins. From the built facts: households +227 (144 + 52 + 8 + 9 + 14), people +67, firms +8, Labels and parser.
Overlaps. No existing package carries CPI weights, the two class indices, CRPSF, PUSF vehicle duty or LPS rates paid. The only overlap is item 3. Commands.
Not verified
🤖 Generated with Claude Code |
Of two vintages' numbers for one line and year, Chronicle keeps the later. The October 2026 package publishes vehicle excise duties from 2025-26, so the March 2026 package carries only the 2024-25 outturn that October lacks (OBR_OUTTURN_ONLY_LINES). The two vintages now share no VED key; the other March lines' overlap is chronicle#397. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vahid's review of f343b52: - LPS's Lone Pensioner Allowance and Disabled Person's Allowance statistics to year end 2024: awards and net amounts by council and for Northern Ireland, and LPA's Northern Ireland amounts by tenure (780 facts). - The ONS and LPS domestic-rates figures are different measures: the ONS workbook states no basis, and LPS's states cash paid. - DfT's fiscal_year 2025 for Wales is the Welsh Government package's 2024. - The eligible population rests on APS 2023; the PUSF split states no basis. - build_uk_395_packages.py gains --check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, Vahid. All six are addressed in 2f4c387 and ec9a9e9, and the body is updated.
One more change. María's rule is that of two vintages' numbers for one line and year Chronicle keeps the later. So the March package now carries only VED's 2024-25 outturn, October carries 2025-26 on, and the two share no VED key: semantic duplicates are back at 2,687. The older March lines' overlap is #397. The pins moved to match: +1,076 facts against main. 🤖 Generated with Claude Code |
|
Review of ec9a9e9, round 2 Thanks, María. All six round-1 items are done, and the 780 new relief facts match LPS's files exactly. One small nit below, no musts or shoulds. Round 1
The relief packages
The VED vintage change
New findings
VerdictReady from my side once CI's bundle job is green. The nit is optional. What I ranFresh clone at ec9a9e9 and a fresh venv, both deleted afterwards.
Not verified
🤖 Generated with Claude Code |
This PR carries the facts chronicle#395 asks for, for the rows of PolicyEngine/microcosm#1095's next policyengine-uk bump. Closes #395. Its two asks for later editions, the next Childcare Offer for Wales report and the 2027 CPI weights, are #398. One ask has no published source (Wales's bus fare receipts), and the PR says so below rather than deriving anything.
What it adds
Thirteen new packages (1,075 facts) and one line in the March 2026 EFO receipts package (1 fact).
scripts/build_uk_395_packages.pywrites the new packages from the pinned bytes;--checkcompares instead of writing.Item 1, Northern Ireland domestic rates. No published table gives the amount levied on domestic property. This item carries the two that give domestic receipts, and the two domestic reliefs that have statistics of their own.
lps-domestic-rates-paid-2026(144): LPS's domestic rates paid against the year's accounts by 31 March, and the domestic occupancies that made a payment, for the 11 councils and Northern Ireland, rating years 2020-21 to 2025-26. 2024-25: GBP 889,543,160, the figure Give both OBR placements of Northern Ireland domestic rates in the fiscal partition policyengine-uk#2663 cites.ons-crpsf-ni-domestic-rates-fye2025(52): ONS country and regional public sector finances, Northern Ireland's regional and district domestic rates, 1999-00 to 2024-25 (2024-25: GBP 498m and GBP 441m). Each is its own concept; no total is derived.lps-lone-pensioner-allowance-ye-2024(420):lpa_tenure.lps-disabled-persons-allowance-ye-2024(360): properties with a current award and the net amount awarded over each financial year, by council and for Northern Ireland, 2009-10 to 2023-24 (GBP 4,687,743 in 2023-24).Item 2, Wales.
dft-bus01-wales-journeys-2025(57): BUS01a passenger journeys and BUS01c concessionary journeys for Wales, read from the workbookdft-bus01-passenger-journeys-2025already pins (that package leaves the devolved columns out of its scope). Year ending March 2025: 71.7m journeys, 32.3m of them concessionary.welshgov-bus-statistics-2024-25, stamped by opening year. This package'sfiscal_year2025 is that package'sfiscal_year2024, and the header and docs say to join on the coverage dates.Item 3,
welshgov-childcare-offer-report-2023-24(3). The report's Table 4 for September 2023 to August 2024:No later report is published yet.
VED (comment of 29 October).
obr.vehicle_excise_duties, for its 2024-25 outturn only (GBP 8.205bn).obr.cash_receipts.vehicle_excise_duties); its build now carries it under the March line id and concept, with the same cells, values and assertions.ons-pusf-vehicle-duty-{households,businesses}-october-2026(16). The series state no accounting basis, so use them for shares, not as levels against the OBR's cash line.Bottled gas (comment of 29 October).
Licences
A parser change
LPS prints amounts as text such as '£51,877,954'.
_delimited_scalar(inchronicle/sources/rows.pyandcells.py) already strips '$', and now strips '£' too. No artifact that reaches that function held a '£' followed by a digit before. DWP's Stat-Xplore band labels such as '£200' are parsed by their own parser and are unchanged.Pins
These are measured from partial bundles of the new packages, both OBR receipts packages, and the packages that share their dimensions (the DfT, Scottish and LPS packages). Those bundles are valid, with no warning beyond the bundle's standing duplicate-key one.
fact_count/row_count1,661,755 → 1,662,831 (+1,076).country:K0200000140,878 → 40,918.Role and paths
ledger-source-ingestor. Paths outside the role's list, as #391, #392 and #394 declared:
db/data/**;chronicle/source_package.pyandchronicle/bundle.py(registration);docs/**andchangelog.d/**;scripts/build_uk_395_packages.py(new), and VED inscripts/build_uk_excise_packages.pyandscripts/build_obr_efo_october_2026.py.The parser change sits in
chronicle/sources/**, which is inside the role.Checks run
validate-package, the consumer contract,build-suiteand agent acceptance on all thirteen new packages and the two changed OBR packages: valid, with no warnings, no issues and no duplicate key within any package.publish-rawuploaded the twelve new artifacts, andverify-rawconfirms each object's sha256.tests/test_source_uk_395_facts.py: 35 passed. It covers:tests/test_issue_381_uk_excise_facts.pyandtests/test_source_obr_efo_october_2026.pypass, including the October generator's byte-for-byte check and March-line parity.tests/test_chronicle_bundle.pywithout the merged build: 464 passed.ruff checkon every edited Python file.Review
Vahid's first round (comment of 30 October) is addressed: the relief statistics (1), the LPS and ONS bases (2), the Wales stamps (3), APS 2023 (4), the PUSF basis (5) and
--check(6).🤖 Generated with Claude Code