Methodology

How we find, validate, and deploy composite signals. No cherry-picking. No curve-fitting. Published p-values.

Standing note — how we read “macro”

The macro line on the EHIQ morning brief is the macro composite — Fed policy, CPI, gold, oil and mortgage rates — scored 0–100, where 30 and below is favorable and 50 and above is hostile.

It is not the Structural Risk Index. The SRI is a sensor composite that also runs 0–100, and the two frequently disagree: on 2026-08-05 the SRI read 22 while the macro composite read 68. Both are reported and they answer different questions.

What was wrong, and when

Before 2026-08-05 the brief's macro verdict was computed from the SRI, which is calibrated on a different scale. The verdict shown was therefore favorable on days when the macro composite was hostile. It now uses the macro composite, and the EMJ dashboard has always used it, so the two agree.

The number was also printed under the wrong name, and for longer. Until 2026-08-06 the POSITION paragraph rendered the macro composite as “Structural Risk Index (SRI)”. Correcting the value on 2026-08-05 fixed which number was used; it did not fix what that number was called. So a brief that read “Structural Risk Index (SRI) 60/100 (RISING)” was showing you the macro composite, on a morning when the SRI itself was 22 and the EMJ dashboard reported both correctly under their own names. If you compared the two surfaces in that window, they could not be reconciled, and the fault was ours.

That line now reads “Macro Risk 60/100 (RISING)”, the name the EMJ dashboard already uses for the same quantity. The SRI keeps its own name and its own value. Nothing about the sizing changed with the rename: the position call has used the macro composite since 2026-08-05.

When the macro composite has insufficient coverage, the brief states MACRO UNAVAILABLE and gives no macro verdict. It does not substitute a neutral default — the underlying function returns 50 both with full data and with none, so a default would be indistinguishable from a reading.

Standing note, published 2026-08-06. It stays on this page rather than scrolling away in a channel. A separate note on the BTC timer's published sizing follows by 2026-08-19.

Standing note — how the timer's position sizing is published

The BTC Combined Timer maps its signal to a position size. That map is fixed in code and pre-committed, so the trigger is checkable rather than discretionary.

Where the page and the code disagreed

Until 2026-08-01 the published table showed SELL = 0% while the code sized SELL at 10%. Where they differed, the code is what fired: the sizing map is the operative rule and the page was a description of it. That is fixed. The page now imports the sizing from the same contract the code reads, so the two cannot drift apart again. A contract the published surface does not import is not a contract; it is a second copy with better documentation.

The STRESS branch is non-monotonic, and this is not an error

Under STRESS, a macro score at or above 60 routes to SELL (10%), while below 60 routes to EMERGENCY (0%). A worse macro reading can therefore produce a larger position. Verified by sweeping the macro range: 59 gives EMERGENCY and 0%, 60 gives SELL and 10%.

This is stated because it is surprising, not because it is a fault. It is the behavior of the rule as written and as run, and you should know the shape of a rule you are sized by.

The STRESS leg does not predict direction. Measured 2023–2026, n=1285 days: BTC was down 21 days later 42.7% of the time under STRESS, against 46.7% unconditionally. What it does is fatten the left tail — the worst 5% of 21-day outcomes average −23.8% under STRESS against −19.2% unconditionally. The sizing buys tail protection, not a forecast, and the cost is stated on every brief that carries it.

Standing note, published 2026-08-06 ahead of its 2026-08-19 date. It stays on this page.

Research Foundation

EHIQ's sensor architecture is informed by 20 years of peer-reviewed research on what predicts corporate performance — and what predicts failure.

Early Warning Systems separate survivors from implosions

Ivey Business Journal, 2005

Our 211+ sensors are the Early Warning System — monitoring structural conditions before sentiment shifts.

Director equity stakes 5x higher at Star companies — and preceded performance divergence

California Management Review, 2000

The Insider Conviction Sentry tracks 276K+ insider transactions for skin-in-the-game signals.

Certification prestige has diminishing returns; substantive involvement has linear value

Journal of Business Venturing, 2009

The SEC Filing sensor scores management quality on substantive metrics, not decorative credentials.

Industry social capital is the strongest predictor of IPO and post-IPO success

Columbia University dissertation, 2002

Management team capital scoring uses domain-specific experience, not "blue-chip" name recognition.

Published in California Management Review, Journal of Business Venturing, and Ivey Business Journal. Research conducted at Columbia University under Donald C. Hambrick, co-founder of Upper Echelons Theory.

1. Exhaustive Combination Search

We do not hand-pick signal combinations. Our Monte Carlo scanner tests every possible pair and triple from a universe of 211+ sensors across 6 categories:

Core39 signals

VIX, funding, fear/greed, TVL, dominance

Macro7 signals

NFP, lending, housing, HY spread, gold

Rate of Change8 signals

VIX acceleration, funding velocity

Z-Score11 signals

Rolling 63d z-scores for anomaly detection

Cross-Timeframe11 signals

3d vs 21d momentum sequencing

Cross-Asset10 signals

Copper/gold ratio, USDJPY carry proxy

Total combinations tested: 450,000+ across pairs and triples. Each evaluated at 5 horizons (3d, 7d, 14d, 21d, 30d) over 1,159 days of data (January 2023 – March 2026).

2. Four-Stage Validation Pipeline

Stage 1Permutation Test
p-value < 0.05

1,000 circular shifts of return series. The composite must beat 95% of random shuffles to prove it is not a statistical artifact.

Circular shift preserves autocorrelation structure, preventing false rejection.

Stage 2Walk-Forward OOS
OOS Win Rate > 60%

Train on first 70% of data, validate on last 30%. A composite that only works in-sample is discarded.

Prevents overfitting to historical patterns that do not generalize.

Stage 3Bootstrap 95% CI
CI lower bound > 0

1,000 resamples with replacement to compute confidence intervals for mean return. Lower bound must be positive.

Ensures the signal is robust to sample variation, not driven by outliers.

Stage 4FDR Correction
Adjusted p < 0.10

Benjamini-Hochberg procedure across all tested combinations. Controls the expected proportion of false discoveries.

With 450K tests, raw p=0.05 would produce 22,500 false positives. BH correction prevents this.

450,000+ → 39

Only 39 composites survive all 4 stages. These are deployed as LIVE sensors.

3. Regime Conditioning

Markets behave differently in stress vs. normal conditions. We validate each composite separately under both regimes using a 2-state Hidden Markov Model (NORMAL / STRESS).

NORMAL Regime

Low volatility, stable credit, trending markets. Composites must show positive returns here independently.

STRESS Regime

VIX elevated, credit spreads wide, flight to safety. Short-side composites specifically validated here.

A composite that only works in one regime is flagged. The strongest signals work across both.

4. Multi-Horizon Consistency

A signal that works at 30 days but fails at 7 days may be noise. We score multi-horizon consistency: a composite earns points for each horizon (3d, 7d, 14d, 21d, 30d) where it shows positive returns.

3d
validated
7d
validated
14d
validated
21d
validated
30d
validated

Maximum consistency score: 125 (25 points per horizon × 5). Our top composites score 125/125.

5. Multiplicative Composite Design

All composites use multiplicative scoring: if any single component signal is absent (returns 0), the entire composite scores 0. This prevents false positives from partial conditions.

Score = Signal_A × Signal_B × Signal_C

If VIX is not spiking, the Buy the Dip composite stays at zero — regardless of what BTC does. All conditions must align simultaneously.

6. Lead-Time Precursor Analysis

We test whether sensor states at different lookback windows (1, 3, 5, 7, 14, 21, 30, 60, 90 days) predict future moves. This identified precursor patterns before major events including bank failures.

764
Lead-time signals tested
116
Precursor patterns found
78
Bank failure precursors

7. Orthogonality Filtering

New composites are measured against existing ones (Capital Dislocation, CFD, Gold-Credit Stress). Signal overlap is computed as the percentage of fire dates that coincide. Composites with >50% overlap are flagged — we only deploy signals that fire on different market conditions.

Limitations & Known Failure Modes

No system catches everything. Honest disclosure of what EHIQ does not do is essential to using it correctly.

High false positive rate by design

The 20-year macro backtest has a 73% false positive rate. This is intentional: the cost of a false alarm (unnecessary caution) is far lower than the cost of missing a real crisis (catastrophic loss). EHIQ is calibrated for sensitivity, not specificity.

Crypto-specific crashes without macro stress

Events like Luna/UST (May 2022) and FTX (Nov 2022) were triggered by fraud and protocol failure, not macro deterioration. EHIQ's macro sensors did not fire early warnings for these. On-chain and structural dislocation sensors partially caught the contagion, but not the root cause.

Small sample sizes

Most composites have 4-8 fires since January 2023. Statistical significance is established via permutation tests, not large N. Confidence intervals are wide. Future hit rates may differ from historical ones.

Backtest ≠ live performance

The 2005-2022 backtest applies formulas designed in 2024-2026 to historical data. It validates the methodology but is not out-of-sample in the traditional sense. Live tracking began February 2026.

Regime model uncertainty

The 2-state HMM (NORMAL/STRESS) is a simplification. Real markets have more than two regimes. Transition boundaries are estimated, not exact. The regime detector itself has estimation error.

No execution layer

EHIQ detects conditions. It does not tell you what to do about them. "ESCALATING" means stress is propagating — whether to sell, hedge, or hold depends on your portfolio, risk tolerance, and time horizon.

We publish these limitations because transparency builds trust. If a vendor doesn't tell you where their system fails, they either don't know or don't want you to.

What We Publish That Others Don't

+ Published p-values per composite
No statistical validation disclosed
+ Walk-forward OOS results
In-sample backtests only
+ Multiplicative composite design (0 = no signal)
Additive scores (always some signal)
+ Regime-conditioned validation
Single-regime backtests
+ Exhaustive search (450K+ combos)
Hand-picked indicators
+ Immutable timestamped ledger
Retroactive edits possible

See the methodology in action.

Need institutional-grade access?

AI-powered regime intelligence, portfolio risk mapping, and custom sensors.

Book a Demo →

Past performance is not indicative of future results. Statistical validation does not guarantee future signal accuracy. EHIQ is an intelligence layer providing diagnostic observations, not investment advice. Permutation tests, bootstrap confidence intervals, and walk-forward validation are standard statistical techniques; they reduce but do not eliminate the risk of false discovery.