Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions FETCH-MANIFEST-EUROSTAT.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,18 @@
"destination": "db/data/eurostat/spr_exp_func/spr_exp_func.json",
"sha256": "24ad3c0115efef790ff8cb2ff8fb269d4ceb7de70ac3fad673ebd1340e4f650f"
},
{
"dataset_id": "gov_10a_taxag",
"source_url": "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/gov_10a_taxag?format=JSON&lang=en&freq=A&unit=MIO_EUR&sector=S13&na_item=D51&na_item=D51A_C1&na_item=D51B_C2&na_item=D5&na_item=D61&na_item=D2&geo=BE&time=2022&time=2023&time=2024&time=2025",
"destination": "db/data/eurostat/gov_10a_taxag/gov_10a_taxag_2022_2025.json",
"sha256": "da84f990bbf077162e4f43f64b94a28e376859075d831efdbadbe6aef3eda3ea"
},
{
"dataset_id": "spr_exp_func",
"source_url": "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/spr_exp_func?format=JSON&lang=en&freq=A&spdeps=SPR&spfunc=TOTAL&spfunc=SICK&spfunc=DIS&spfunc=OLD&spfunc=SRV&spfunc=FAM&spfunc=UNE&spfunc=HOU&spfunc=EXCL&unit=MIO_EUR&geo=BE&time=2023&time=2024",
"destination": "db/data/eurostat/spr_exp_func/spr_exp_func_2023_2024.json",
"sha256": "91ea617950583ca0704863125f6bbb4292b0f12da95bffae422c5d406bd3d81d"
},
{
"dataset_id": "nasa_10_nf_tr",
"source_url": "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/nasa_10_nf_tr?format=JSON&lang=en&freq=A&unit=CP_MEUR&sector=S14_S15&na_item=B2G&na_item=B3G&na_item=B3N&na_item=B6G&na_item=D1&na_item=D11&na_item=D12&na_item=D4&na_item=D41&na_item=D42&na_item=D44&na_item=D45&na_item=D5&na_item=D61&na_item=D62&direct=RECV&direct=PAID&geo=BE&time=2022&time=2023&time=2024",
Expand Down
361 changes: 361 additions & 0 deletions LANE_C5_REPORT.md

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions PROGRESS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Lane C5 progress

## State

- Branch: `be-2025-vintages` from `origin/main` at `5c15bfd`.
- Worktree inputs are staged under `.lane-raw/` and must remain uncommitted.
- Lane C5 is complete, validated, independently reviewed, and ready for handoff.
- The requested staged C2 report is absent, but root `LANE_C2_REPORT.md` is byte-identical
to the sibling lane's staged copy (SHA-256 `4590e0dc...50f06e7`) and is the pattern used.

## Done

- Read the repository Chronicle boundary rules in `AGENTS.md`.
- Read `.lane-raw/SOURCES.md` and confirmed all five named publisher artifacts are present.
- Confirmed the worktree is otherwise clean apart from `.lane-raw/` and the shared `.venv` link.
- Verified all five staged artifact SHA-256 pins exactly.
- Mapped FPB workbook cells: 990 facts across T01/T06/T07/T11/T17/T24, with
2022–2025 observations and 2026–2031 `source_projection` facts.
- Confirmed PDF boundary evidence: printed page 19 calls 2026 the first projection year;
annex table units appear on printed pages 45, 48, 49, 53, 58, and 65.
- Chosen Eurostat layout: two vintage-specific source-package aliases share new manifest
entries, preserving the prior package YAMLs, raw bytes, and fact outputs unchanged.
- Reproduced the Statbel curator logic: 18 NUTS1 × sex × age-band cells totaling 11,825,551.
- Added the hash-pinned FPB workbook and publication PDF plus the
`fpb-economic-outlook-2026-2031-june-2026` package alias.
- Built 990 line-specific publisher facts (99 per year): 396 observations for
2022–2025 and 594 `source_projection` facts for 2026–2031.
- Passed FPB `validate-package` and `build-suite`: 990 facts, full cell lineage,
zero acceptance errors, and pinned 2025 cells 320578 / 77771 / 5602 million euro.
- Re-ran the Statbel 2026 curator logic on the 2025 ZIP and added the hash-pinned
raw capture plus its deterministic 18-row curated CSV.
- Passed Statbel 2025 `validate-package` and `build-suite`: 18 facts totaling
11,825,551, 66 constraints, full lineage, and zero acceptance errors.
- Added the Eurostat `gov_10a_taxag` 2025 and `spr_exp_func` 2024 manifest
entries plus vintage-specific package aliases, without modifying either
prior artifact or prior package specification.
- Passed both new Eurostat package validations and suite builds: 12 tax facts
and 9 ESSPROS facts, full lineage, and zero acceptance errors.
- Extended Belgium and Eurostat regressions for FPB table counts/cells and
assertion boundary, vintage non-overlap, prior-output digests, Statbel pins,
and the declared 0.25% Statbel/FPB population comparison tolerance.
- Passed 43 focused tests and the full merged-bundle regression: 157,177 facts,
148 packages, zero aggregate-key duplicates, and expected goldens throughout.
- Recorded pins, counts, boundary evidence, curator commands, validation tails,
and consumer fact families in `LANE_C5_REPORT.md`.
- Passed independent `ledger-source-fidelity` and `ledger-boundary` reviews with
no required corrections.

## Next

- None; ready for handoff. No push was performed.
6 changes: 6 additions & 0 deletions chronicle/source_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
"mhclg-ehs-weekly-housing-costs-2023-24": Path(
"mhclg/ehs_weekly_housing_costs_2023_24"
),
"statbel-population-structure-2025": Path("statbel/population_structure_2025"),
"statbel-population-structure-2026": Path("statbel/population_structure_2026"),
"statbel-fiscal-income-2023-nis-2025": Path("statbel/fiscal_income_2023_nis_2025"),
"statbel-fiscal-income-distribution-2023": Path(
Expand All @@ -124,6 +125,9 @@
"sfpd-legal-pension-caseload-2025": Path("sfpd/legal_pension_caseload_2025"),
"opgroeien-groeipakket-caseload-2025": Path("opgroeien/groeipakket_caseload_2025"),
"bfp-economic-outlook-2026-06": Path("bfp/economic_outlook_2026_06"),
"fpb-economic-outlook-2026-2031-june-2026": Path(
"fpb/economic_outlook_2026_2031_june_2026"
),
"dft-nts-vehicle-ownership-2024": Path("dft/nts_vehicle_ownership_2024"),
"dwp-benefit-cap-november-2025": Path("dwp/benefit_cap_november_2025"),
"dwp-benefit-statistics-february-2026": Path(
Expand Down Expand Up @@ -274,7 +278,9 @@
"hmrc/vat_firm_sector_targets_2024_25"
),
"eurostat-gov-10a-taxag": Path("eurostat/gov_10a_taxag"),
"eurostat-gov-10a-taxag-2025": Path("eurostat/gov_10a_taxag_2025"),
"eurostat-spr-exp-func": Path("eurostat/spr_exp_func"),
"eurostat-spr-exp-func-2024": Path("eurostat/spr_exp_func_2024"),
"eurostat-nasa-10-nf-tr": Path("eurostat/nasa_10_nf_tr"),
"eurostat-ilc-li02": Path("eurostat/ilc_li02"),
"eurostat-ilc-di01": Path("eurostat/ilc_di01"),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":"2.0","class":"dataset","label":"Main national accounts tax aggregates","source":"ESTAT","updated":"2026-07-21T11:00:00+0200","value":{"0":69262.8,"1":72825.5,"2":73248.5,"3":75518.7,"4":91332.8,"5":96585.0,"6":104740.8,"7":106046.8,"8":88867.0,"9":94031.3,"10":101965.9,"11":103324.3,"12":65901.3,"13":69524.9,"14":73712.5,"15":75791.1,"16":21681.5,"17":23264.1,"18":27026.8,"19":26308.0,"20":83522.3,"21":90443.5,"22":94416.8,"23":97512.6},"status":{"3":"p","7":"p","11":"p","15":"p","19":"p","23":"p"},"id":["freq","unit","sector","na_item","geo","time"],"size":[1,1,1,6,1,4],"dimension":{"freq":{"label":"Time frequency","category":{"index":{"A":0},"label":{"A":"Annual"}}},"unit":{"label":"Unit of measure","category":{"index":{"MIO_EUR":0},"label":{"MIO_EUR":"Million euro"}}},"sector":{"label":"Sector","category":{"index":{"S13":0},"label":{"S13":"General government"}}},"na_item":{"label":"National accounts indicator (ESA 2010)","category":{"index":{"D2":0,"D5":1,"D51":2,"D51A_C1":3,"D51B_C2":4,"D61":5},"label":{"D2":"Taxes on production and imports","D5":"Current taxes on income, wealth, etc.","D51":"Taxes on income","D51A_C1":"Taxes on individual or household income including holding gains","D51B_C2":"Taxes on the income or profits of corporations including holding gains","D61":"Net social contributions"}}},"geo":{"label":"Geopolitical entity (reporting)","category":{"index":{"BE":0},"label":{"BE":"Belgium"}}},"time":{"label":"Time","category":{"index":{"2022":0,"2023":1,"2024":2,"2025":3},"label":{"2022":"2022","2023":"2023","2024":"2024","2025":"2025"}}}},"extension":{"lang":"EN","id":"GOV_10A_TAXAG","agencyId":"ESTAT","version":"1.0","datastructure":{"id":"GOV_10A_TAXAG","agencyId":"ESTAT","version":"68.0"},"annotation":[{"type":"CREATED","date":"2015-02-18T14:28:42+0100"},{"type":"DISSEMINATION_DOI_XML","title":"<adms:identifier xmlns:adms=\"http://www.w3.org/ns/adms#\" xmlns:skos=\"http://www.w3.org/2004/02/skos/core.html\" xmlns:dct=\"http://purl.org/dc/terms/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><adms:Identifier rdf:about=\"https://doi.org/10.2908/GOV_10A_TAXAG\"><skos:notation rdf:datatype=\"http://purl.org/spar/datacite/doi\">10.2908/GOV_10A_TAXAG</skos:notation><dct:creator rdf:resource=\"http://publications.europa.eu/resource/authority/corporate-body/ESTAT\"/><dct:issued rdf:datatype=\"http://www.w3.org/2001/XMLSchema#date\">2023-01-19</dct:issued></adms:Identifier></adms:identifier>"},{"type":"DISSEMINATION_OBJECT_TYPE","title":"DATASET"},{"type":"DISSEMINATION_TIMESTAMP_DATA","date":"2026-07-21T11:00:00+0200"},{"type":"DISSEMINATION_TIMESTAMP_GLOBAL","date":"2026-07-21T11:00:00+0200"},{"type":"DISSEMINATION_TIMESTAMP_PLANNED","date":"2026-07-21T11:00:00+0200"},{"type":"ESMS_HTML","title":"Explanatory texts (metadata)","href":"https://ec.europa.eu/eurostat/cache/metadata/en/gov_10a_taxag_esms.htm"},{"type":"ESMS_SDMX","title":"Explanatory texts (metadata)","href":"https://ec.europa.eu/eurostat/api/dissemination/files?file=metadata/gov_10a_taxag_esms.sdmx.zip"},{"type":"OBS_COUNT","title":"1470597"},{"type":"OBS_PERIOD_OVERALL_LATEST","title":"2025"},{"type":"OBS_PERIOD_OVERALL_OLDEST","title":"1995"},{"type":"SOURCE_INSTITUTIONS","text":"Eurostat"},{"type":"UPDATE_DATA","date":"2026-07-21T11:00:00+0200"},{"type":"UPDATE_STRUCTURE","date":"2026-04-22T11:00:00+0200"}],"status":{"label":{"p":"provisional"}},"positions-with-no-data":{"freq":[],"unit":[],"sector":[],"na_item":[],"geo":[],"time":[]}}}
21 changes: 21 additions & 0 deletions db/data/eurostat/gov_10a_taxag/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,24 @@ files:
Real Eurostat dissemination API bytes for the filtered request in
source_url; hash-pinned and content-addressed. Different bytes at
the mutable API endpoint are a new vintage, never a pin update.
2025:
filename: gov_10a_taxag_2022_2025.json
source_url: https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/gov_10a_taxag?format=JSON&lang=en&freq=A&unit=MIO_EUR&sector=S13&na_item=D51&na_item=D51A_C1&na_item=D51B_C2&na_item=D5&na_item=D61&na_item=D2&geo=BE&time=2022&time=2023&time=2024&time=2025
source_table: Eurostat gov_10a_taxag Main national accounts tax aggregates for Belgium
sha256: da84f990bbf077162e4f43f64b94a28e376859075d831efdbadbe6aef3eda3ea
size_bytes: 3502
storage:
r2:
provider: r2
bucket: ledger-raw
key: raw/eurostat/eurostat-gov-10a-taxag/2025/da84f990bbf077162e4f43f64b94a28e376859075d831efdbadbe6aef3eda3ea/gov_10a_taxag_2022_2025.json
uri: r2://ledger-raw/raw/eurostat/eurostat-gov-10a-taxag/2025/da84f990bbf077162e4f43f64b94a28e376859075d831efdbadbe6aef3eda3ea/gov_10a_taxag_2022_2025.json
source_urls:
- https://ec.europa.eu/eurostat/databrowser/view/gov_10a_taxag/default/table?lang=en
- https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/gov_10a_taxag?format=JSON&lang=en&freq=A&unit=MIO_EUR&sector=S13&na_item=D51&na_item=D51A_C1&na_item=D51B_C2&na_item=D5&na_item=D61&na_item=D2&geo=BE&time=2022&time=2023&time=2024&time=2025
notes: >-
Real Eurostat dissemination API bytes for the filtered request in
source_url; hash-pinned and content-addressed. This 2025 vintage adds
the D51A_C1 and D51B_C2 taxpayer split and extends the cube through 2025.
Different bytes at the mutable API endpoint are a new vintage, never a
pin update.
20 changes: 20 additions & 0 deletions db/data/eurostat/spr_exp_func/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,23 @@ files:
Real Eurostat dissemination API bytes for the filtered request in
source_url; hash-pinned and content-addressed. Different bytes at
the mutable API endpoint are a new vintage, never a pin update.
2024:
filename: spr_exp_func_2023_2024.json
source_url: https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/spr_exp_func?format=JSON&lang=en&freq=A&spdeps=SPR&spfunc=TOTAL&spfunc=SICK&spfunc=DIS&spfunc=OLD&spfunc=SRV&spfunc=FAM&spfunc=UNE&spfunc=HOU&spfunc=EXCL&unit=MIO_EUR&geo=BE&time=2023&time=2024
source_table: Eurostat spr_exp_func Expenditure on social benefits by function for Belgium
sha256: 91ea617950583ca0704863125f6bbb4292b0f12da95bffae422c5d406bd3d81d
size_bytes: 3892
storage:
r2:
provider: r2
bucket: ledger-raw
key: raw/eurostat/eurostat-spr-exp-func/2024/91ea617950583ca0704863125f6bbb4292b0f12da95bffae422c5d406bd3d81d/spr_exp_func_2023_2024.json
uri: r2://ledger-raw/raw/eurostat/eurostat-spr-exp-func/2024/91ea617950583ca0704863125f6bbb4292b0f12da95bffae422c5d406bd3d81d/spr_exp_func_2023_2024.json
source_urls:
- https://ec.europa.eu/eurostat/databrowser/view/spr_exp_func/default/table?lang=en
- https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/spr_exp_func?format=JSON&lang=en&freq=A&spdeps=SPR&spfunc=TOTAL&spfunc=SICK&spfunc=DIS&spfunc=OLD&spfunc=SRV&spfunc=FAM&spfunc=UNE&spfunc=HOU&spfunc=EXCL&unit=MIO_EUR&geo=BE&time=2023&time=2024
notes: >-
Real Eurostat dissemination API bytes for the filtered request in
source_url; hash-pinned and content-addressed. This 2024 vintage extends
the Belgium cube through 2024. Different bytes at the mutable API
endpoint are a new vintage, never a pin update.
1 change: 1 addition & 0 deletions db/data/eurostat/spr_exp_func/spr_exp_func_2023_2024.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":"2.0","class":"dataset","label":"Expenditure on social benefits by function","source":"ESTAT","updated":"2026-08-19T23:00:00+0200","value":{"4":16448.06,"5":17863.64,"16":5395.12,"17":5551.71,"10":12232.62,"11":13162.1,"14":1262.27,"15":1306.85,"6":69583.94,"7":74545.99,"2":46448.89,"3":50457.08,"8":8914.51,"9":9262.13,"0":165806.45,"1":177883.87,"12":5521.04,"13":5734.36},"status":{"5":"e","17":"e","11":"e","15":"e","7":"e","3":"e","9":"e","1":"e","13":"e"},"id":["freq","spdeps","spfunc","unit","geo","time"],"size":[1,1,9,1,1,2],"dimension":{"freq":{"label":"Time frequency","category":{"index":{"A":0},"label":{"A":"Annual"}}},"spdeps":{"label":"Main expenditure type","category":{"index":{"SPR":0},"label":{"SPR":"Social protection benefits"}}},"spfunc":{"label":"Social protection function","category":{"index":{"TOTAL":0,"SICK":1,"DIS":2,"OLD":3,"SRV":4,"FAM":5,"UNE":6,"HOU":7,"EXCL":8},"label":{"TOTAL":"Total","SICK":"Sickness/health care","DIS":"Disability","OLD":"Old age","SRV":"Survivors","FAM":"Family/children","UNE":"Unemployment","HOU":"Housing","EXCL":"Social exclusion, n.e.c."}}},"unit":{"label":"Unit of measure","category":{"index":{"MIO_EUR":0},"label":{"MIO_EUR":"Million euro"}}},"geo":{"label":"Geopolitical entity (reporting)","category":{"index":{"BE":0},"label":{"BE":"Belgium"}}},"time":{"label":"Time","category":{"index":{"2023":0,"2024":1},"label":{"2023":"2023","2024":"2024"}}}},"extension":{"lang":"EN","id":"SPR_EXP_FUNC","agencyId":"ESTAT","version":"1.0","datastructure":{"id":"SPR_EXP_FUNC","agencyId":"ESTAT","version":"23.0"},"annotation":[{"type":"CREATED","date":"2024-11-07T14:26:55+0100"},{"type":"DISSEMINATION_DOI_XML","title":"<adms:identifier xmlns:adms=\"http://www.w3.org/ns/adms#\" xmlns:skos=\"http://www.w3.org/2004/02/skos/core.html\" xmlns:dct=\"http://purl.org/dc/terms/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><adms:Identifier rdf:about=\"https://doi.org/10.2908/SPR_EXP_FUNC\"><skos:notation rdf:datatype=\"http://purl.org/spar/datacite/doi\">10.2908/SPR_EXP_FUNC</skos:notation><dct:creator rdf:resource=\"http://publications.europa.eu/resource/authority/corporate-body/ESTAT\"/><dct:issued rdf:datatype=\"http://www.w3.org/2001/XMLSchema#date\">2025-03-31</dct:issued></adms:Identifier></adms:identifier>"},{"type":"DISSEMINATION_EXPLANATORY_LINK","title":"text-category","href":"https://ec.europa.eu/eurostat/databrowser-backend/api/public/explanatory-notes/get/Info_note_SPR_20241119.pdf","text":"Information note"},{"type":"DISSEMINATION_EXPLANATORY_LINK","title":"text-category","href":"https://ec.europa.eu/eurostat/databrowser-backend/api/public/explanatory-notes/get/Info_note_SPR_20241119.pdf"},{"type":"DISSEMINATION_EXPLANATORY_LINK","title":"text-category","href":"https://ec.europa.eu/eurostat/databrowser-backend/api/public/explanatory-notes/get/Info_note_SPR_20241119.pdf"},{"type":"DISSEMINATION_OBJECT_TYPE","title":"DATASET"},{"type":"DISSEMINATION_TIMESTAMP_DATA","date":"2026-08-19T23:00:00+0200"},{"type":"DISSEMINATION_TIMESTAMP_GLOBAL","date":"2026-08-19T23:00:00+0200"},{"type":"DISSEMINATION_TIMESTAMP_PLANNED","date":"2026-08-19T23:00:00+0200"},{"type":"ESMS_HTML","title":"Explanatory texts (metadata)","href":"https://ec.europa.eu/eurostat/cache/metadata/en/spr_esms.htm"},{"type":"ESMS_SDMX","title":"Explanatory texts (metadata)","href":"https://ec.europa.eu/eurostat/api/dissemination/files?file=metadata/spr_esms.sdmx.zip"},{"type":"OBS_COUNT","title":"163448"},{"type":"OBS_PERIOD_OVERALL_LATEST","title":"2024"},{"type":"OBS_PERIOD_OVERALL_OLDEST","title":"1990"},{"type":"SOURCE_INSTITUTIONS","text":"Eurostat"},{"type":"UPDATE_DATA","date":"2026-08-19T23:00:00+0200"},{"type":"UPDATE_STRUCTURE","date":"2026-05-22T23:00:00+0200"}],"status":{"label":{"e":"estimated"}},"positions-with-no-data":{"freq":[],"spdeps":[],"spfunc":[],"unit":[],"geo":[],"time":[]}}}
Binary file not shown.
Binary file not shown.
39 changes: 39 additions & 0 deletions db/data/fpb/economic_outlook_2026_2031_june_2026/manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
source_id: fpb
package_id: fpb-economic-outlook-2026-2031-june-2026
source_name: Federal Planning Bureau economic outlook
publisher: Federal Planning Bureau / Bureau fédéral du Plan
source_page: https://www.plan.be/en/data/economic-outlook-2026-2031-june-2026-statistical
files:
2026:
filename: DATA_FOR_MLT_FR.xlsx
source_url: https://www.plan.be/sites/default/files/documents/DATA_FOR_MLT_FR.xlsx
source_table: Economic Outlook 2026-2031, June 2026 statistical annex
sha256: b51b41fbe6a3bd797a2fc9de648af66ec318e872b4d90200e2e8edbe9d26e56e
size_bytes: 238644
fetched_at: '2026-08-23'
storage:
r2:
provider: r2
bucket: ledger-raw
key: raw/fpb/fpb-economic-outlook-2026-2031-june-2026/2026/b51b41fbe6a3bd797a2fc9de648af66ec318e872b4d90200e2e8edbe9d26e56e/DATA_FOR_MLT_FR.xlsx
uri: r2://ledger-raw/raw/fpb/fpb-economic-outlook-2026-2031-june-2026/2026/b51b41fbe6a3bd797a2fc9de648af66ec318e872b4d90200e2e8edbe9d26e56e/DATA_FOR_MLT_FR.xlsx
notes: >-
Hash-pinned publisher workbook. Chronicle parses only the requested cells
in T01, T06, T07, T11, T17, and T24 and preserves every value as printed.
publication_pdf:
filename: FOR_MIDTERM_2631_13322_FR.pdf
source_url: https://www.plan.be/sites/default/files/documents/FOR_MIDTERM_2631_13322_FR.pdf
source_table: Perspectives économiques 2026-2031, juin 2026
sha256: 3e4af4a5e6de8e24beab59a4e9d1c564bed8e429c887c45ca6fce99397754587
size_bytes: 4363762
fetched_at: '2026-08-23'
storage:
r2:
provider: r2
bucket: ledger-raw
key: raw/fpb/fpb-economic-outlook-2026-2031-june-2026/publication_pdf/3e4af4a5e6de8e24beab59a4e9d1c564bed8e429c887c45ca6fce99397754587/FOR_MIDTERM_2631_13322_FR.pdf
uri: r2://ledger-raw/raw/fpb/fpb-economic-outlook-2026-2031-june-2026/publication_pdf/3e4af4a5e6de8e24beab59a4e9d1c564bed8e429c887c45ca6fce99397754587/FOR_MIDTERM_2631_13322_FR.pdf
notes: >-
Hash-pinned publication used only to establish the publisher's
observation/projection boundary and the annex units. Fact values come
exclusively from the XLSX entry.
Binary file not shown.
Loading
Loading