stats: core-7 economy page with CPI index levels, rebase and categories
All checks were successful
Deploy production / deploy (push) Successful in 1m13s

- /stats/economy defaults multi-country charts to CAN KOR CHN JPN USA NLD CUW,
  with add-a-country chips and an EU 27 comparison line
- CPI index levels rebased to a chosen base year, index/YoY toggle,
  categories (food, energy, housing, core) where the source has them
- new no-key collectors: oecd (CPI categories, 10y yields), statcan (CPI);
  bis WS_LONG_CPI, FRED US CPI categories, Eurostat prc_hicp_minr, WB FP.CPI.TOTL
- Canada added as a region; CBS Curacao fallbacks for growth/unemployment
- timers stats-oecd and stats-statcan
This commit is contained in:
2026-10-26 00:34:27 +00:00
parent 28140bd425
commit 45841d6f6c
18 changed files with 926 additions and 122 deletions

View File

@@ -24,6 +24,7 @@ const hostGapMs: Record<string, number> = {
'fred.stlouisfed.org': 1000,
'ec.europa.eu': 500,
'stats.bis.org': 1000,
'www150.statcan.gc.ca': 1000,
'api.worldbank.org': 1000,
'www.imf.org': 1500,
'ourworldindata.org': 2000,
@@ -150,11 +151,28 @@ export const SOURCES = [
},
{
source_id: 'bis',
name: 'BIS central bank policy rates',
base_url: 'https://stats.bis.org/api/v2/data/dataflow/BIS/WS_CBPOL/1.0',
name: 'BIS (central bank policy rates, long consumer price series)',
base_url: 'https://stats.bis.org/api/v2/data/dataflow/BIS',
licence: 'Free reuse with attribution',
key_required: false,
attribution: 'Source: BIS, central bank policy rates (WS_CBPOL)'
attribution:
'Source: BIS, central bank policy rates (WS_CBPOL) and consumer prices (WS_LONG_CPI)'
},
{
source_id: 'oecd',
name: 'OECD Data Explorer (SDMX)',
base_url: 'https://sdmx.oecd.org/public/rest/data',
licence: 'CC BY 4.0',
key_required: false,
attribution: 'Source: OECD Data Explorer (prices; financial market statistics), CC BY 4.0'
},
{
source_id: 'statcan',
name: 'Statistics Canada (Web Data Service)',
base_url: 'https://www150.statcan.gc.ca/t1/wds/rest',
licence: 'Statistics Canada Open Licence',
key_required: false,
attribution: 'Source: Statistics Canada, table 18-10-0004-01 (Statistics Canada Open Licence)'
},
{
source_id: 'worldbank',
@@ -395,6 +413,7 @@ export const REGIONS: { region_code: string; name: string; kind: string; parent:
{ region_code: 'AUT', name: 'Austria', kind: 'country', parent: 'EU27' },
{ region_code: 'GBR', name: 'United Kingdom', kind: 'country', parent: 'WLD' },
{ region_code: 'JPN', name: 'Japan', kind: 'country', parent: 'WLD' },
{ region_code: 'CAN', name: 'Canada', kind: 'country', parent: 'WLD' },
{ region_code: 'IND', name: 'India', kind: 'country', parent: 'WLD' },
{ region_code: 'BRA', name: 'Brazil', kind: 'country', parent: 'WLD' },
{ region_code: 'RUS', name: 'Russia', kind: 'country', parent: 'WLD' },
@@ -415,6 +434,7 @@ export const COMPARE_ISO3 = [
'KOR',
'CHN',
'CUW',
'CAN',
'DEU',
'FRA',
'BEL',