Repository navigation
Add NZ QES weekly earnings levels and PREFU 2026 earnings assumptions (G8-d3) - #382
Merged
Merged
Conversation
G8-d3: ingest 26 Stats NZ Table 7 all-sector FTE earnings levels (ordinary
QEMQ.SBSZ9A and total QEMQ.SBSZ9Z), Jun 2023–Jun 2026, plus seven Treasury
PREFU Table 4.1 C17:I17 annual ordinary-time earnings percentage changes.
Publisher qualification: PREFU D6 is Forecast4, but C22:D22 footnote 4 says
all measures except real/nominal GDP are actuals. Preserve Forecast4 verbatim;
2025 and 2026 earnings are observations, 2027–2031 source_projection. This
source-backed qualification supersedes the task's preliminary 2026 forecast
classification. All seven economic assumptions use Treasury's model_output
measurement-basis precedent; no survey instrument is invented.
Invariants and checks:
- Publisher bytes unchanged: SHA-256, exact byte length, source URL and
fetched_at checked against staged receipts in the independent audit and
pinned by each package's artifact tests.
Three manifests carry source licence/attribution and canonical raw/nz keys
generated by this worktree's chronicle.artifacts.build_r2_key. Remote R2
upload and verification are explicitly pending hub; no upload claimed.
- Every fact is one literal publisher cell: independent tests pin all 26 QES
and all 7 PREFU exact cells/values; selectors have scale 1, no divisor,
rounding or ranges. No computed growth rates, averages, factors, aging,
reconciliation, imputation, target activation or model bindings.
- Each QES quarter/series appears once: 2025 vintage rows13–16 own Jun2023–
Mar2024; 2026 rows13–21 own Jun2024–Jun2026. Tests separately compare the
ten overlapping publisher cells for exact agreement and reject a duplicate
Jun2024 from the older vintage. Full 16-sheet QES used ranges preserved;
other sectors/overtime/change blocks/worksheets emit no facts.
- QES periods use existing quarter:YYYY-Qn convention and calendar quarter
coverage; pay-week definition is recorded only in notes and attributed to
the hub-supplied methodology. Treasury periods use existing opening-year
fiscal_year:2024–2030, with original years-ending-June2025–2031 labels.
Off-year tests prove no build-year restamping for either publisher.
- Every record set visibly declares provenance_class. QES survey_aggregate
names Quarterly Employment Survey (QES); Treasury model_output follows
merged Treasury/OBR economic-publication convention. Both publishers keep
explicit assertion values. Dedicated repository-wide provenance surface
node passed (1 test); final result is in .hub-report.txt.
- Every dimension/value has a label, retaining series, component, FTE,
all-sector/actual adjustment scope and Treasury column status/footnotes3,4.
Explicit canonical equality constraints match source filters; consumer
contract/raw-facts validators and suite agent acceptance check this.
- Guard regressions independently pin all 42 QES guard coordinates and all 22
Treasury metadata/year/status/footnote coordinates plus 7 numeric guards.
Expected-red scratch probes: QES 45 failures (42 guard mutations,2 P→R
column shifts,1 duplicate-vintage YAML); Treasury 28 guard failures plus
one B17 row-label failure and7 row-shift exact-cell failures. No publisher
workbook bytes were mutated; mutants used copied YAML/in-memory cells.
- Independent ledger-source-fidelity PASS and ledger-boundary PASS reviews
read all 33 cells, periods, receipt/storage fields and final constraint maps.
- validate-package CLI passes for each package at year2023; three separate
single-source build_bundle calls run build-suite and pass all 12 acceptance
checks with lineage 1.0. Source-cell counts 17427, 17298, 872. Optional external
Axiom validation is skipped (one standard suite acceptance warning each);
bundle warnings and duplicate keys are zero. Single-source output trees
deleted immediately; full bundle/full suite never run. Targeted pytest,
lint and surface-node results are recorded with counts in .hub-report.txt.
Final verification: 111 distinct targeted cases pass: QES 64 (57 + 7
corrected test-only guard-normalization reruns), PREFU 43 (42 + 1 corrected
test-only validator-call rerun), NZ roster/CLI 3 and provenance surface 1.
The required node is
tests/test_chronicle_source_package.py::test_every_source_package_record_set_declares_provenance_class
Every pytest invocation used -p no:cacheprovider --basetemp=.hub-scratch/pytest
-o tmp_path_retention_policy=failed, with basetemp deleted after completion.
Ruff check and changed-test format checks pass; git diff --check passes.
Detailed commands, expected-red evidence and final counts are in the report
and .hub-scratch/{qes-test-results.txt,treasury/test-results.txt}.
Exact measured bundle delta from base aa288c3,
at build year2023 (separate single-source builds; no whole bundle):
- stats-nz-qes-average-weekly-earnings-june-2025:8 facts,1 package,1 table,
publisher stats_nz, country:NZ8, person8, four quarter periods2 each.
- stats-nz-qes-average-weekly-earnings-june-2026:18 facts,1 package,1 table,
publisher stats_nz, country:NZ18, person18, nine quarter periods2 each.
- treasury-prefu26-economic-assumptions:7 facts,1 package,1 table,
publisher treasury, country:NZ7, government7, seven fiscal periods1 each.
- Combined:+33 facts,+3 packages,+3 tables; +0 publisher/geography/period/
entity keys,+0 warnings,+0 aggregate/semantic duplicates,+0 skipped sources.
by_source:stats_nz+26,treasury+7; by_entity:person+26,government+7;
by_geography:country:NZ+33 (the sole key; already present).
- by_period exact increments (all keys already exist):
quarter:2023-Q2: +2
quarter:2023-Q3: +2
quarter:2023-Q4: +2
quarter:2024-Q1: +2
quarter:2024-Q2: +2
quarter:2024-Q3: +2
quarter:2024-Q4: +2
quarter:2025-Q1: +2
quarter:2025-Q2: +2
quarter:2025-Q3: +2
quarter:2025-Q4: +2
quarter:2026-Q1: +2
quarter:2026-Q2: +2
fiscal_year:2024: +1
fiscal_year:2025: +1
fiscal_year:2026: +1
fiscal_year:2027: +1
fiscal_year:2028: +1
fiscal_year:2029: +1
fiscal_year:2030: +1
- New table keys/counts:
stats_nz:Quarterly Employment Survey June 2025 quarter, Table 7: Average weekly earnings for FTEs, by sector =8
stats_nz:Quarterly Employment Survey June 2026 quarter, Table 7: Average weekly earnings for FTEs, by sector =18
treasury:PREFU 2026 Table 4.1 - Key economic assumptions for fiscal forecasts =7
- Default pins are base plus this delta only: facts1579296,packages408,
publishers56,tables350,geographies102613,periods523,entities12,warnings122;
stats_nz2041,treasury146,person521345,government3569,country:NZ6164.
Full structured evidence: .hub-scratch/bundle-delta.json. Hub can re-pin
additively if parallel NZ packages land first. No commit/push/GitHub action
performed in this lane; this file supplies the proposed commit message.
Rebased by the NZ hub onto chronicle main acbedb5 (which includes #379, G8-d4).
The bundle pins are main's values plus this package's measured delta:
fact_count 1,579,313; source packages 408; stats_nz 2,058; treasury 146;
country:NZ 6,165; person 521,362.
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The hub published the three G8-d3 workbooks to their raw/nz keys and verified each by SHA-256 read-back (2026-10-23). The evidence notes and the NZ source checklist now say so, tick the checklist's raw/nz column, and cite the manifest-recorded fetch receipts instead of the lane's untracked .hub-sources/receipts.jsonl (chronicle#382 review, non-blocking finding). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The NZ suite gains three packages (two QES vintages and PREFU 2026), so the alias-drift tests now expect 70 NZ sources and packages on disk (was 67), and the canonical raw-key check expects five Treasury artifacts (was four). These pins sit outside the files the build lane ran; CI's surface job caught them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Merge audit (NZ hub): head 860212a. Independent reviews, GPT-6.1 Sol via Subfleet:
The R2 raw objects were published and verified by SHA-256 read-back on 2026-10-23. CI: gh pr checks exit 0 (bundle, checks, surface). Merging with a merge commit, as #379. |
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.
G8-d3: ingest 26 Stats NZ Table 7 all-sector FTE earnings levels (ordinary
QEMQ.SBSZ9A and total QEMQ.SBSZ9Z), Jun 2023–Jun 2026, plus seven Treasury
PREFU Table 4.1 C17:I17 annual ordinary-time earnings percentage changes.
Publisher qualification: PREFU D6 is Forecast4, but C22:D22 footnote 4 says
all measures except real/nominal GDP are actuals. Preserve Forecast4 verbatim;
2025 and 2026 earnings are observations, 2027–2031 source_projection. This
source-backed qualification supersedes the task's preliminary 2026 forecast
classification. All seven economic assumptions use Treasury's model_output
measurement-basis precedent; no survey instrument is invented.
Invariants and checks:
fetched_at checked against staged receipts in the independent audit and
pinned by each package's artifact tests.
Three manifests carry source licence/attribution and canonical raw/nz keys
generated by this worktree's chronicle.artifacts.build_r2_key. Remote R2
upload and verification are explicitly pending hub; no upload claimed.
and all 7 PREFU exact cells/values; selectors have scale 1, no divisor,
rounding or ranges. No computed growth rates, averages, factors, aging,
reconciliation, imputation, target activation or model bindings.
Mar2024; 2026 rows13–21 own Jun2024–Jun2026. Tests separately compare the
ten overlapping publisher cells for exact agreement and reject a duplicate
Jun2024 from the older vintage. Full 16-sheet QES used ranges preserved;
other sectors/overtime/change blocks/worksheets emit no facts.
coverage; pay-week definition is recorded only in notes and attributed to
the hub-supplied methodology. Treasury periods use existing opening-year
fiscal_year:2024–2030, with original years-ending-June2025–2031 labels.
Off-year tests prove no build-year restamping for either publisher.
names Quarterly Employment Survey (QES); Treasury model_output follows
merged Treasury/OBR economic-publication convention. Both publishers keep
explicit assertion values. Dedicated repository-wide provenance surface
node passed (1 test); final result is in .hub-report.txt.
all-sector/actual adjustment scope and Treasury column status/footnotes3,4.
Explicit canonical equality constraints match source filters; consumer
contract/raw-facts validators and suite agent acceptance check this.
Treasury metadata/year/status/footnote coordinates plus 7 numeric guards.
Expected-red scratch probes: QES 45 failures (42 guard mutations,2 P→R
column shifts,1 duplicate-vintage YAML); Treasury 28 guard failures plus
one B17 row-label failure and7 row-shift exact-cell failures. No publisher
workbook bytes were mutated; mutants used copied YAML/in-memory cells.
read all 33 cells, periods, receipt/storage fields and final constraint maps.
single-source build_bundle calls run build-suite and pass all 12 acceptance
checks with lineage 1.0. Source-cell counts 17427, 17298, 872. Optional external
Axiom validation is skipped (one standard suite acceptance warning each);
bundle warnings and duplicate keys are zero. Single-source output trees
deleted immediately; full bundle/full suite never run. Targeted pytest,
lint and surface-node results are recorded with counts in .hub-report.txt.
Final verification: 111 distinct targeted cases pass: QES 64 (57 + 7
corrected test-only guard-normalization reruns), PREFU 43 (42 + 1 corrected
test-only validator-call rerun), NZ roster/CLI 3 and provenance surface 1.
The required node is
tests/test_chronicle_source_package.py::test_every_source_package_record_set_declares_provenance_class
Every pytest invocation used -p no:cacheprovider --basetemp=.hub-scratch/pytest
-o tmp_path_retention_policy=failed, with basetemp deleted after completion.
Ruff check and changed-test format checks pass; git diff --check passes.
Detailed commands, expected-red evidence and final counts are in the report
and .hub-scratch/{qes-test-results.txt,treasury/test-results.txt}.
Exact measured bundle delta from base aa288c3,
at build year2023 (separate single-source builds; no whole bundle):
publisher stats_nz, country:NZ8, person8, four quarter periods2 each.
publisher stats_nz, country:NZ18, person18, nine quarter periods2 each.
publisher treasury, country:NZ7, government7, seven fiscal periods1 each.
entity keys,+0 warnings,+0 aggregate/semantic duplicates,+0 skipped sources.
by_source:stats_nz+26,treasury+7; by_entity:person+26,government+7;
by_geography:country:NZ+33 (the sole key; already present).
quarter:2023-Q2: +2
quarter:2023-Q3: +2
quarter:2023-Q4: +2
quarter:2024-Q1: +2
quarter:2024-Q2: +2
quarter:2024-Q3: +2
quarter:2024-Q4: +2
quarter:2025-Q1: +2
quarter:2025-Q2: +2
quarter:2025-Q3: +2
quarter:2025-Q4: +2
quarter:2026-Q1: +2
quarter:2026-Q2: +2
fiscal_year:2024: +1
fiscal_year:2025: +1
fiscal_year:2026: +1
fiscal_year:2027: +1
fiscal_year:2028: +1
fiscal_year:2029: +1
fiscal_year:2030: +1
stats_nz:Quarterly Employment Survey June 2025 quarter, Table 7: Average weekly earnings for FTEs, by sector =8
stats_nz:Quarterly Employment Survey June 2026 quarter, Table 7: Average weekly earnings for FTEs, by sector =18
treasury:PREFU 2026 Table 4.1 - Key economic assumptions for fiscal forecasts =7
publishers56,tables350,geographies102613,periods523,entities12,warnings122;
stats_nz2041,treasury146,person521345,government3569,country:NZ6164.
Full structured evidence: .hub-scratch/bundle-delta.json. Hub can re-pin
additively if parallel NZ packages land first. No commit/push/GitHub action
performed in this lane; this file supplies the proposed commit message.
Rebased by the NZ hub onto chronicle main acbedb5 (which includes #379, G8-d4).
The bundle pins are main's values plus this package's measured delta:
fact_count 1,579,313; source packages 408; stats_nz 2,058; treasury 146;
country:NZ 6,165; person 521,362.
Hub landing record
Raw objects on R2: the hub published all three workbooks with this worktree's Chronicle code and streamed each back; SHA-256 matches the manifest:
raw/nz/stats_nz/qes_average_weekly_earnings_june_2025/2025/25053dcb…/quarterly-employment-survey-june-2025-quarter.xlsxraw/nz/stats_nz/qes_average_weekly_earnings_june_2026/2026/1af2e7e3…/quarterly-employment-survey-june-2026-quarter.xlsxraw/nz/treasury/treasury-prefu26-economic-assumptions/2026/e2486375…/prefu26-charts-data.xlsxThe committed manifests are unchanged by the publish.
Rebase: the build ran on aa288c3. The hub rebased onto main acbedb5, which carries Stats NZ regional resident population at 30 June 2023 (NZ, G8-d4) #379 (G8-d4), and set the bundle pins to main's values plus this package's measured delta.
Re-runs on the rebased branch:
test_chronicle_nz_qes_earnings.py64 passed;test_chronicle_nz_prefu_earnings.py43 passed; the NZ curated-sources bundle node passed. CI runs the full-bundle node.Why: these facts are evidence for the NZ hub's declared earnings-ageing factors (Max d1599). Chronicle stores the facts only; Microcosm computes the factors (G8-r2).
Facts-only source packages; no published number. Needs Max: no.
🤖 Generated with Claude Code