feat(gold): central-bank reserves via IMF IFS (PR C) (#3038)

* feat(gold): central-bank gold reserves via IMF IFS (PR C)

* fix(gold): prefer ounces indicator over USD in IMF IFS candidate list

* fix(gold): align seed-health interval with monthly IMF cadence + drop ALG dup

Review findings on PR #3038:
- api/seed-health.js: intervalMin was 1440 (1 day), which flags stale at
  2880min (48h) — contradicted health.js maxStaleMin=44640 (~31 days) and
  would false-alarm within 2 days on a monthly data source. Bumped to
  22320 so both endpoints agree at ~31 days.
- seed-gold-cb-reserves ISO3_NAMES: dropped duplicate ALG entry (World Bank
  variant); DZA is canonical ISO 3166-1 alpha-3 and stays.
This commit is contained in:
Elie Habib
2026-04-13 08:19:53 +04:00
committed by GitHub
parent 8cc8781b19
commit 0cdfddc885
12 changed files with 520 additions and 2 deletions

View File

@@ -53,6 +53,27 @@ message GoldDriver {
double correlation_30d = 5;
}
message GoldCbHolder {
string iso3 = 1;
string name = 2;
double tonnes = 3;
double pct_of_reserves = 4;
}
message GoldCbMover {
string iso3 = 1;
string name = 2;
double delta_tonnes_12m = 3;
}
message GoldCbReserves {
string as_of_month = 1;
double total_tonnes = 2;
repeated GoldCbHolder top_holders = 3;
repeated GoldCbMover top_buyers_12m = 4;
repeated GoldCbMover top_sellers_12m = 5;
}
message GoldEtfFlows {
string as_of_date = 1;
double tonnes = 2;
@@ -87,4 +108,5 @@ message GetGoldIntelligenceResponse {
GoldRange52w range_52w = 15;
repeated GoldDriver drivers = 16;
GoldEtfFlows etf_flows = 17;
GoldCbReserves cb_reserves = 18;
}