KEYNUM.AI
Energy & infrastructure intelligence
Explainability layer

Methods, without the black box.

Every warning family has a visible score, a train-only threshold, a downstream target, and held-out evidence. The equations below are rendered from LaTeX and the source can be inspected directly.

Primary downstream target

Future upside-tail event · empirical upper-tail VaR

Rt,Hcum=i=1H(1+rt+iroll)1R_{t,H}^{\mathrm{cum}}=\prod_{i=1}^{H}\left(1+r_{t+i}^{\mathrm{roll}}\right)-1
View LaTeX$$R_{t,H}^{\mathrm{cum}}=\prod_{i=1}^{H}\left(1+r_{t+i}^{\mathrm{roll}}\right)-1$$
Yt,H,αup=1 ⁣{Rt,HcumF^train,H1(1α)}Y_{t,H,\alpha}^{\mathrm{up}}=\mathbf{1}\!\left\{R_{t,H}^{\mathrm{cum}}\ge \widehat{F}_{\mathrm{train},H}^{-1}(1-\alpha)\right\}
View LaTeX$$Y_{t,H,\alpha}^{\mathrm{up}}=\mathbf{1}\!\left\{R_{t,H}^{\mathrm{cum}}\ge \widehat{F}_{\mathrm{train},H}^{-1}(1-\alpha)\right\}$$

For the primary study, α = 0.10 and H ∈ {7, 14, 30}. The label asks whether the future cumulative French rolling-front return enters the training-fold upper tail.

Leakage controls

Walk-forward, train-only, and purged

  • Availability: anomaly inputs are restricted to information available by the decision cutoff.
  • Target timing: the target uses t+1 through t+H, never day t.
  • Thresholds: anomaly q90 and target VaR are estimated inside the training fold only.
  • Purging: training rows whose future label window crosses the test boundary are removed.
  • Evaluation: all headline metrics come from held-out test rows across 22 walk-forward folds.

Price Spike

Absolute front-contract log-return

Supporting
Why this family is tested

Large prompt-contract moves can be the market's first visible repricing of scarcity, supply disruption, or geopolitical risk.

Question

Can an unusually large French front-month move precede a future stress-driven upward repricing episode?

Stprice=fr_log_return_meantS_t^{\mathrm{price}}=\left|\mathrm{fr\_log\_return\_mean}_t\right|
View LaTeX$$S_t^{\mathrm{price}}=\left|\mathrm{fr\_log\_return\_mean}_t\right|$$
Xtprice=1 ⁣{Stpriceq0.90train ⁣(Sprice)}X_t^{\mathrm{price}}=\mathbf{1}\!\left\{S_t^{\mathrm{price}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{price}}\right)\right\}
View LaTeX$$X_t^{\mathrm{price}}=\mathbf{1}\!\left\{S_t^{\mathrm{price}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{price}}\right)\right\}$$
Interpretation and caveat

Positive across all horizons, but moderate as a standalone right-tail warning rule. The strongest relative warning value appears at h7.

Caveat: A price spike may already reflect partial market absorption of the underlying shock, so it is not always a genuinely early signal.

Volatility Jump

Front-contract realized volatility

Supporting / secondary
Why this family is tested

Realized volatility captures disagreement and unstable price formation, which can indicate a fragile market state before a later tail event.

Question

Can an unusually unstable front-month state precede a future stress-driven upward repricing episode?

Stvol=fr_realized_volt=j=1mt(rt,jlog)2S_t^{\mathrm{vol}}=\mathrm{fr\_realized\_vol}_t=\sqrt{\sum_{j=1}^{m_t}\left(r_{t,j}^{\log}\right)^2}
View LaTeX$$S_t^{\mathrm{vol}}=\mathrm{fr\_realized\_vol}_t=\sqrt{\sum_{j=1}^{m_t}\left(r_{t,j}^{\log}\right)^2}$$
Xtvol=1 ⁣{Stvolq0.90train ⁣(Svol)}X_t^{\mathrm{vol}}=\mathbf{1}\!\left\{S_t^{\mathrm{vol}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{vol}}\right)\right\}
View LaTeX$$X_t^{\mathrm{vol}}=\mathbf{1}\!\left\{S_t^{\mathrm{vol}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{vol}}\right)\right\}$$
Interpretation and caveat

Directionally positive, but it behaves more like a current-state warning than a powerful standalone leading indicator for upward tail events.

Caveat: Because volatility is persistent, part of the signal can reflect an already-unstable regime rather than a new upstream warning mechanism.

Spread / Contract Alignment

Main h14 proxy: M1-M3 absolute price gap

Primary
Why this family is tested

Nearby delivery contracts encode different scarcity expectations. Their relative dislocation can reveal market-structure stress before it is fully visible in the outright front price.

Question

Can unusual misalignment between nearby power contracts precede a future stress-driven upward repricing episode?

Stspread=fr_m1_m3_spreadtS_t^{\mathrm{spread}}=\left|\mathrm{fr\_m1\_m3\_spread}_t\right|
View LaTeX$$S_t^{\mathrm{spread}}=\left|\mathrm{fr\_m1\_m3\_spread}_t\right|$$
Xtspread=1 ⁣{Stspreadq0.90train ⁣(Sspread)}X_t^{\mathrm{spread}}=\mathbf{1}\!\left\{S_t^{\mathrm{spread}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{spread}}\right)\right\}
View LaTeX$$X_t^{\mathrm{spread}}=\mathbf{1}\!\left\{S_t^{\mathrm{spread}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{spread}}\right)\right\}$$
Interpretation and caveat

The strongest main-horizon standalone family. At h14 it captures more future tail events than the other thresholded families, although the best variant changes by horizon.

Caveat: The family is horizon-dependent: the cross-country spread maximum wins at h7 and h30, while M1-M3 is the defensible main h14 proxy.

Liquidity Deterioration

Parkinson volatility-over-volume spread proxy

Secondary
Why this family is tested

A market with high range-based volatility relative to traded volume may be less resilient to the next shock, even before outright prices move dramatically.

Question

Can unusually fragile front-contract trading conditions precede a future stress-driven upward repricing episode?

σtP=8πlog ⁣(HtLt),Stliq=((σtP)2Vtfront)1/3\sigma_t^{P}=\sqrt{\frac{8}{\pi}}\log\!\left(\frac{H_t}{L_t}\right),\qquad S_t^{\mathrm{liq}}=\left(\frac{\left(\sigma_t^{P}\right)^2}{V_t^{\mathrm{front}}}\right)^{1/3}
View LaTeX$$\sigma_t^{P}=\sqrt{\frac{8}{\pi}}\log\!\left(\frac{H_t}{L_t}\right),\qquad S_t^{\mathrm{liq}}=\left(\frac{\left(\sigma_t^{P}\right)^2}{V_t^{\mathrm{front}}}\right)^{1/3}$$
Xtliq=1 ⁣{Stliqq0.90train ⁣(Sliq)}X_t^{\mathrm{liq}}=\mathbf{1}\!\left\{S_t^{\mathrm{liq}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{liq}}\right)\right\}
View LaTeX$$X_t^{\mathrm{liq}}=\mathbf{1}\!\left\{S_t^{\mathrm{liq}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{liq}}\right)\right\}$$
Interpretation and caveat

A modest fragility signal rather than a decisive warning rule. Results are positive but sparse and unstable across real-bar and all-bar variants.

Caveat: The preferred real-bar proxy is available on 574 of 839 panel rows, so this family has a thinner effective sample than the others.

Market-Implied Coupling Pulse

Train-scaled coupling maximum

Supporting / secondary
Why this family is tested

Relative-price breaks can reveal stress in physical-financial and cross-market linkage before the French front-month contract reprices outright.

Question

Can abrupt Italian spot-futures and Italy-France futures dislocations precede a future French upward tail event?

Stcoupling=max ⁣(ΔBtIT,spotfutq0.90train,ΔBtITFRq0.90train)S_t^{\mathrm{coupling}}=\max\!\left(\frac{|\Delta B_t^{IT,\,spot-fut}|}{q_{0.90}^{\mathrm{train}}},\frac{|\Delta B_t^{IT-FR}|}{q_{0.90}^{\mathrm{train}}}\right)
View LaTeX$$S_t^{\mathrm{coupling}}=\max\!\left(\frac{|\Delta B_t^{IT,\,spot-fut}|}{q_{0.90}^{\mathrm{train}}},\frac{|\Delta B_t^{IT-FR}|}{q_{0.90}^{\mathrm{train}}}\right)$$
Xtcoupling=1 ⁣{Stcouplingq0.90train ⁣(Scoupling)}X_t^{\mathrm{coupling}}=\mathbf{1}\!\left\{S_t^{\mathrm{coupling}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{coupling}}\right)\right\}
View LaTeX$$X_t^{\mathrm{coupling}}=\mathbf{1}\!\left\{S_t^{\mathrm{coupling}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{coupling}}\right)\right\}$$
Interpretation and caveat

Cleaner than the retired heuristic transmission blend and directionally positive, but still only weak-to-moderate as a standalone warning family.

Caveat: The strongest h30 comparator is the Italian spot-futures basis snap, so longer-horizon evidence remains variant-sensitive.

GDELT Narrative Pressure

Main family proxy: log-scaled count-weighted tone

Primary at h7
Why this family is tested

Narrative pressure can carry geopolitical and supply-risk information before it is fully absorbed into market prices; coverage and tone are combined so neither attention nor negativity acts alone.

Question

Can unusually heavy and negative news pressure precede a future stress-driven upward repricing episode?

Stgdelt=log(1+Dt)max ⁣(0,τt)S_t^{\mathrm{gdelt}}=\log(1+D_t)\max\!\left(0,-\tau_t\right)
View LaTeX$$S_t^{\mathrm{gdelt}}=\log(1+D_t)\max\!\left(0,-\tau_t\right)$$
Xtgdelt=1 ⁣{Stgdeltq0.90train ⁣(Sgdelt)}X_t^{\mathrm{gdelt}}=\mathbf{1}\!\left\{S_t^{\mathrm{gdelt}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{gdelt}}\right)\right\}
View LaTeX$$X_t^{\mathrm{gdelt}}=\mathbf{1}\!\left\{S_t^{\mathrm{gdelt}}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{\mathrm{gdelt}}\right)\right\}$$
Interpretation and caveat

The clearest short-horizon external signal. Raw count-weighted tone leads at h7, but the family weakens materially at h14 and falls below base-rate ranking quality at h30.

Caveat: News pressure is absorbed quickly; the h7 winner uses raw count-weighted tone, while the log-scaled formula remains the more stable family-level specification.

How to interpret the rule

The same decision structure is shared across all six families.

Xt(k)=1 ⁣{St(k)q0.90train ⁣(S(k))}X_t^{(k)}=\mathbf{1}\!\left\{S_t^{(k)}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{(k)}\right)\right\}
View LaTeX$$X_t^{(k)}=\mathbf{1}\!\left\{S_t^{(k)}\ge q_{0.90}^{\mathrm{train}}\!\left(S^{(k)}\right)\right\}$$

A family fires when its current score is in the most extreme 10% of its training-fold history. The q90 choice is a pre-specified signal budget, not a claim that the literature identifies 10% as universally optimal. Alpha = 0.05 and alternative anomaly thresholds belong in robustness analysis.