Repository navigation
Add Ostbelgien Kindergeld 2025 source package - #389
Merged
Merged
Conversation
Contributor
Author
|
Independent review at 82487a9 (GPT-6.1 Sol, Subfleet run 20261024-011223-chronicle389-review-r2): APPROVE. ledger-source-fidelity: PASS. ledger-boundary: PASS. The three findings from the b658e93 review are resolved:
Still to do before merge: the |
Preserve all 565 commune rates printed in FPS Finance's assessment-year 2026 PDF, with exact page, column-block and text-line locators and a bijective mapping to Statbel's NIS 2025 communes (558 exact, 7 orthographic). Key the facts as tax_year 2025, the income year these rates tax, with income_year == 2025 and assessment_year == 2026 constraints evidenced by source-row columns and the legal vintage income_year_2025_assessment_year_2026, as in statbel/fiscal_income_distribution_2023. The printed assessment-year label is kept verbatim. The CSV and PDF are in R2 ledger-raw, verified by SHA-256 readback. Co-Authored-By: GPT-6.1 Sol <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Address the review of 875dea6: - Each fact's geography name is now the commune name SPF prints, as the harness requires of every publisher (chronicle#266). Nine differ from Statbel's (Bruxelles/Brussels, Waimes/Weismes and seven spelling or punctuation variants); the mapping audit keeps Statbel's name beside each, and the bundle reports them as cross-package name warnings. - Drop the per-row publisher_commune filter and constraint and its dimension label. The NIS code identifies the commune, so a spelling no longer changes aggregate or semantic fact keys. The printed label stays in the CSV, the source-row id and a guard cell. The regenerated CSV is in R2 ledger-raw under its new hash, verified by SHA-256 readback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
For all 565 facts, respell the commune wherever the fact carries it (geography name, filter and constraint values) as Statbel's name and casefolded, uppercased and accent- and punctuation-stripped forms; both aggregate and semantic keys must not change. Moving a fact to another NIS code must change both. The respelling fails on the 875dea6 shape, where the printed name was a filter and constraint. Hypothesis is not a Chronicle dependency, and adding one is a shared dependency change, so the property is checked exhaustively over the package's facts and a fixed set of respellings instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The package adds 565 government facts at tax_year:2025, one per existing commune key, so geography_count is unchanged and commune:11002 goes from 9 to 10. It adds one source, one source table and one built package. SPF spells nine communes unlike Statbel, and the package keeps SPF's wording, so nine commune geography-name warnings are added (123 -> 132). The deltas were measured with Chronicle's own bundle functions. A replay of the full bundle test against #385's CI bundle, with #386's seven skipped county packages and this package added, passes, and main's unchanged test fails against it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rsz-employment-daily-wage-class-2023-2026 (34,629 facts): RSZ quarterly labour market analysis, T17 (daily-wage class x age x sex, 2023Q1-2026Q1; 2023 from the 2023-2024 workbook, 2024 onward from the 2024-2026 workbook) and T7 (status x sex x NACE 2025 x daily-wage class, 2024Q1-2026Q1). Jobs and deduplicated workers are quarter-end stocks; FTE covers the whole quarter. Values are recorded at the publisher's displayed precision; SUBTOTAL formula rows are excluded and tested against the details. rsz-annual-wages-key-figures-2020-2025 (252 facts): the Kerncijfers sheet of the October 2026 pre-publication workbook, in the published thousands of EUR and hours, including its 36 typed total cells. Both are CC BY 4.0 with captured licence and methodology pages. All raw files are in R2 ledger-raw, verified by SHA-256 readback. Co-Authored-By: GPT-6.1 Sol <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntract The per-fact annual test passed consumer_fact_rows() dicts to validate_consumer_fact_contract(), which takes AggregateFact objects, so it raised AttributeError before any per-fact assertion ran. Validate the facts and check the exported rows' lineage and R2 keys separately. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
T7 prints Man-homme/Vrouw-femme through 2025Q3 and Man-Homme/Vrouw-Femme from 2025Q4; T17 always prints the capitalized forms. Keeping both as values split every T7 series at 2025Q4, so a consumer selecting Man-Homme silently lost 2024-2025Q3. Map each to one value, as the package already does for Onbekend-Inconnu; the printed form stays in every source locator, and any other sex label stops the build. Tests check both printed cases occur and that each sex is a single value. The regenerated CSV is in R2 ledger-raw under its new hash, verified by SHA-256 readback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ages The two packages add 34,881 person facts at country:BE: 34,629 quarterly daily-wage-class cells from 2023 Q1 to 2026 Q1, and 252 annual key figures for 2020-2025. They add two sources, two source tables and two built packages. They add no new geography, period or entity key and no warning. This stacks on #387's pins. The deltas were measured with Chronicle's own bundle functions and confirmed against #388's CI bundle on the old base. A replay of the full bundle test against #385's CI bundle, with #386's skipped packages, #387's package and these two packages added, passes, and #387's test fails against it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Record 35 figures from the German-speaking Community's "Kindergeld in Ostbelgien" article (update of 31.03.2026): December 2025 child and payee stocks, the four published protected/new-amount shares, the age table, supplement counts, 2025 birth and adoption premium payments, and the 2025 family-benefit expenditure table. Each fact carries a sentence or table-cell locator into a sanitized browser capture of the article; tests parse that capture independently of the generator. The scope is the nine-commune German-speaking Community, named as the article prints it. Co-Authored-By: GPT-6.1 Sol <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of b658e93 found three gaps. Dates. "im Dezember 2025" is a month, so December facts now cover 2025-12-01..12-31 rather than 31 December. The supplements keep 31 December ("zum Stand Ende Dezember 2025"). Premiums and expenditure keep the full year ("im Jahr 2025"). The age table is labelled only "2025", so its coverage now carries that label and no dates, with the ambiguity in its notes. Each coverage note quotes the phrase it rests on. Evidence. Table locators were built strings, not quotations. A new source_evidence column holds the capture verbatim: the sentence, or the row's own <tr> HTML. The generator requires exactly one matching row, and the field is guarded in the package YAML. Tests check that every fragment occurs in the capture and that its cells are exactly the row label and the printed value. Publisher. Uses the tables' own "Quelle: Ministerium der Deutschsprachigen Gemeinschaft" in place of an unsupported department name. A test pins that line in the capture. The README now cites the passenger-journey precedent (scotgov/bus_coach_statistics_2024_25) for counting premium payments under the receiving unit. The regenerated CSV is in R2 ledger-raw under its new hash, verified by SHA-256 readback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The package adds 35 calendar-2025 facts: 19 person, 2 benefit_unit premium payments and 14 government expenditure. It adds one statistical_scope geography, the German-speaking Community, plus one source, one source table and one built package. It adds no warning. This stacks on #388's pins. The deltas were measured with Chronicle's own bundle functions and confirmed against #389's CI bundle on the old base. A replay of the full bundle test against #385's CI bundle, with #386's skipped packages and #387's, #388's and this package added, passes, and #388's test fails against it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
force-pushed
the
be/b2e-ostbelgien-kindergeld
branch
from
October 24, 2026 08:21
82487a9 to
8bd0af5
Compare
This was referenced Oct 24, 2026
MaxGhenis
marked this pull request as ready for review
October 24, 2026 08:31
Contributor
Author
|
Delta review at 8bd0af5 (GPT-6.1 Sol, Subfleet run 20261024-042211-chronicle389-review-r3): APPROVE, no findings. ledger-source-fidelity: PASS. ledger-boundary: PASS.
This merges as a merge commit after #387 and #388, at 8bd0af5, once CI passes. |
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.
Stacked on #388 (itself on #387); merge after both. Adds
packages/ostbelgien/kindergeld_2025, part of the Belgian transport port (ruling d048, B2e).What it adds
35 facts from the article Kindergeld in Ostbelgien (update of 31.03.2026). The article's tables attribute them to the Ministerium der Deutschsprachigen Gemeinschaft ("Quelle: Ministerium der Deutschsprachigen Gemeinschaft").
db/data/ostbelgien/kindergeld_2025/kindergeld-in-ostbelgien.article.html:source_locator: the sentence, or the table, row and column.source_evidence: a verbatim quote from the capture. That is the sentence, or the table row's own<tr>HTML, which occurs exactly once.ostbelgien:deutschsprachige_gemeinschaft(statistical_scope,nis_2025). It is named as the article prints it and defined by its nine NIS 2025 communes.chronicle/source_package.py.Choices for review
calendar_year:2025.period_coveragegives start and end dates only where the article states the span, and its notes quote that phrase.person/benefit_recipient.benefit_unit/premium_payment. That records the activity under the receiving unit, asscotgov/bus_coach_statistics_2024_25counts passenger journeys underperson/bus_passenger.government/payer.dwp/hbai_summary_fye2025. None is recomputed.db/data/kff/marketplace_effectuated_enrollment. Attribution is in the README and manifest.ledger-rawunder their manifest keys and were verified by SHA-256 readback on 2026-10-24: the CSV, regenerated at 82487a9 with a new hash, and the capture.Review history
Stacking and rebase
Rebased from 200bf6d onto #388's head 099a4c1.
git range-diffshows the two package commits unchanged apart from alias-registry context. Every file is byte-identical to 82487a9 except the registry, which differs by exactly this PR's alias line. #387, #388 and this PR merge as merge commits, in that order, each at its tested head. Until they merge, this PR's diff on GitHub also shows their commits.Verification (at 82487a9)
tests/test_source_ostbelgien_kindergeld_2025.pypass, run directly as functions in one process. A host reservation is holding back pytest on this machine.build_package.pyreproduces every committed output byte for byte.validate-package ostbelgien-kindergeld-2025 --year 2025: 0 errors, 0 warnings.build-suite: valid, 35 facts.ostbelgien:deutschsprachige_gemeinschaft),calendar_year:2025+35, entitiesbenefit_unit2,government14 andperson19, one source, one source table and one built package, and no warning. Measured with Chronicle's bundle functions and confirmed against this PR's CI bundle on the old base. The full bundle test, replayed against Add Belgian exchange-rate and pension sources for Microcosm-BE transport #385's CI bundle plus Add ACS 2020–2024 county income source packages #386's skipped packages and Add SPF Finances municipal PIT surcharge rates, income year 2025 #387's, Add RSZ/ONSS employment by daily-wage class and annual wage key figures #388's and this package, passes; Add RSZ/ONSS employment by daily-wage class and annual wage key figures #388's test fails against it. CI runs the full bundle test on this head.🤖 Generated with Claude Code