Purpose
The Physical Precious-Metals Divergence Index measures stress between Shanghai Gold Exchange physical benchmark prices and the related COMEX futures snapshots. It is a market-structure indicator, not trading advice. The method uses the daily gold and silver premiums fromGET /api/market/v1/get-physical-premiums. The public derived response is available from GET /api/market/v1/get-physical-divergence-index and MCP get_market_data.
History
The daily seeder stores one list for each metal:market:physical-premium-history:v1:goldmarket:physical-premium-history:v1:silver
methodologyVersion: physical-divergence-v2.
Robust normalization
For the current premiumx, the robust z-score is:
0 if the current value equals the median. Otherwise, the score is unavailable. This rule prevents division by zero and does not invent scale.
The percentile rank is the share of window values less than or equal to the current premium. It is reported on a 0 to 100 scale.
Hybrid regimes
The classifier assigns one absolute regime and one relative regime. The higher regime wins. Relative thresholds apply only once the premium clears a magnitude floor of half the metal’selevated floor — 0.5% for gold, 2.5% for silver. A sign test is not enough: the current print is part of its own trailing window and the percentile is inclusive, so any new window high scores 100 regardless of size. Without the magnitude floor a trivially small positive premium reads as extreme purely for topping a calm window. The floor is set below the elevated threshold rather than at it so that the 80th-percentile rung stays reachable. Gating at the full elevated floor would not disable relative escalation altogether — the 95th and 99th rungs could still lift an absolutely elevated premium to stressed or extreme — but it would make the 80th rung unreachable, because any premium clearing that gate is already elevated on absolute size alone. Half is the chosen point in that range, not the only one that satisfies the constraint.
For example, a gold premium of 3% is at least
stressed even when the trailing window also contains higher observations.
The per-metal stress index is on a 0 to 100 scale. Absolute magnitude interpolates across compressed band tops of 45 (elevated), 70 (stressed), and just under 90 (approaching extreme; the stressed span stops short of 90 so two-decimal rounding cannot reach the extreme floor). Clearing the absolute extreme premium floor (gold 5%, silver 20%) publishes 100.
When the relative ladder outruns absolute magnitude, index still means stress magnitude with a regime-ordered floor, not a second copy of the percentile:
index = max(absoluteStressIndex, regimeFloor). A relative-only extreme therefore floors at 90 rather than saturating at 100. That reserves the top of the scale for absolute extreme premiums and keeps the index monotonic in regime rank: no stressed reading can report a higher index than any extreme reading. regime still carries the hybrid classification (absolute or relative, whichever is higher). Percentile remains a separate published field.
This follows the ECB CISS lesson that a single-indicator percentile must not pin the published index at its maximum. Option chosen over dropping the floors entirely (which would let regime: extreme ship with a low magnitude index) and over widening the proto with a second index field.
The composite is 70% gold + 30% silver. It is published only when both metals are in the ok state. The gold weight reflects its larger and more liquid benchmark role. The response always includes both weights so consumers can reproduce the result.
Trends
The 5-day and 20-day changes are the current premium minus the premium 5 or 20 observations earlier.- A change greater than
0.01percentage points iswidening. - A change below
-0.01percentage points isnarrowing. - Other changes are
stable.
Explicit data states
Every per-metal result has one state. The checks run in this order:missing_input: no current physical-premium input exists.stale_input: the physical print date is more than 12 calendar days old, the daily COMEX cohort is more than 36 hours old, or the FX snapshot is more than 60 hours old. The physical threshold tolerates long scheduled Chinese market closures. The paper threshold matches the daily 08:00 UTC publisher with deployment and schedule jitter, while the FX threshold matches its source-health budget.insufficient_history: fewer than 60 valid history points exist.ok: the input is current enough and history is sufficient.
ok results omit the numerical index. The composite also fails closed when either metal is not ok.
Transition signals
The cross-source signal stream emits a physical-premium regime transition only when:- the previous and current states are both
ok; - the regime changed; and
- the same metal has not emitted a transition in the last 48 hours.
Provenance and operations
The response carries the physical benchmark source, symbol, physical print date, COMEX snapshot time, FX snapshot time, history key, sample count, window size, and methodology version./api/health monitors the derived snapshot under market:physical-divergence:v1 with its own seed metadata and activation marker.
