Skip to main content

Methodology

How MarketSchema Indices Are Built

Pick any index and watch the deterministic pipeline build the signal from raw inputs.

TransformAggregateNormalizeSignal

Choose an Index to X-Ray

Loading…

MarketSchema Methodology

Complete technical documentation for how MarketSchema indices are constructed, aggregated, and used to generate risk signals.

At a glance

MarketSchema computes 54 indices across 9 risk families from 7 live data sources. Each asset gets a single Schema Score (0–100) that blends 35% macro signal, 45% entry value, 20% narrative alignment. Every formula is published. Every source is linked. Every update is timestamped.

Scroll down for full construction details, or jump to: Conditions System · Z-Score Method

How Schema Score is built

Schema Score is not just a macro rank. It is a blended opportunity score designed to answer three questions at once: is the backdrop supportive, is the price attractive relative to that backdrop, and are current narratives reinforcing or fighting the setup.

35% macro signal

Structural support

The structural layer comes from MarketSchema's index system. It measures how supportive the current macro environment is for an asset before price or narrative gets involved.

45% entry value

Price versus thesis

Entry value measures whether price is stretched or attractive relative to structural support. A strong thesis that has pulled back can score better than an equally strong thesis that is already extended.

20% narrative alignment

Story confirmation

Narratives act as an overlay, not the backbone. They can strengthen or weaken a setup, but they are intentionally sized smaller so headlines do not overpower structure and price.

Why the current weights look like this

The current V2c blend is 35% macro signal, 45% entry value, 20% narrative alignment. Earlier versions leaned too heavily on macro and compressed too many names into the same middle band. The rebalance shifted more weight to entry value so price dislocation can matter, kept macro as the structural anchor, and left narrative as a smaller confirming layer.

In plain English: macro tells you what deserves attention, entry value tells you whether the timing is attractive, and narrative helps explain whether the tape is reinforcing or undermining that setup.

Section 1: Conditions System (Risk Score × Stress Level)

The 8 Pillars

Each pillar is a weighted composite of constituent indices. Pillar scores are normalized to 0–100 and combined into the Risk Score.

Liquidity12% weight

LFSI (Liquidity & Financial Stress Index),RMSI (RE Market Stress Index),CVXI (Crypto Volatility Crossover Index)

Credit15% weight

CRSI (Credit Spread Intensity Index),CCSI (Consumer Credit Stress Index),SCMI (Small Biz Credit Momentum Index),BCAI (Bank Credit Availability Index),RFPI (Refinancing Pressure Index)

Rates15% weight

DRSI (Duration Regime Stress Index),YCSI (Yield Curve Shape Index),SDBI (Sovereign Debt Burden Index)

Growth15% weight

MSPM (Macro Surprise Pulse Index),RSKP (Risk Posture Composite),VOLR (Volatility Regime Composite),RQRI (Risk-Quality Rotation Index),SMDI (Sector Momentum Dispersion Index)

Dollar10% weight

DXMI (Dollar Momentum Index),LIQI (Liquidity Impulse Index)

Energy12% weight

ENPI (Energy Price Impulse Index),GSRI (Gold-to-Stocks Ratio Index),CEMI (Commodity-Equity Momentum Index),CRMI (Critical Minerals & Rare Earth Index)

Risk12% weight

CMAI (Crypto Market Activity Index),CVXI (Crypto Volatility Crossover Index),CDDI (Dominance Divergence Index),BTLI (BTC Leverage Index),BTCM (BTC Macro Beta Context)

Infrastructure9% weight

ACSI (AI Compute Capex Index),PWGI (Power & Grid Constraint Index),DCAI (Data Center Buildout Index),NURI (Nuclear & Uranium Index),ASPI (AI Buildout Bottleneck Index)

How the Risk Score Works

The Risk Score measures the overall level of market conditions on a scale from 0–100.

Step 1: Pillar Score Calculation

pillar_score = avg(z-score of member indices)

Step 2: Normalize to 0–100

normalized = 50 + (σ × 15)

Where σ is the pillar's z-score. This maps standard deviations to the 0–100 scale.

Step 3: Weighted Sum

Risk Score = Σ(pillar_score × weight)

Weights: Liquidity 12%, Credit 15%, Rates 15%, Growth 15%, Dollar 10%, Energy 12%, Risk 12%, Infra 9%

Score Bands

Strong Bullish≥ 81
Bullish61–80
Neutral41–60
Bearish21–40
Strong Bearish≤ 20

How Strain Works

Strain measures market stress and fragmentation. It's calculated from 4 equally weighted components, each contributing up to 25 points (0–100 total).

1. Stress Magnitude (0–25 points)

avg(|σ| of stress-sensitive indices)

Captures the average absolute deviation from normal for indices that tend to spike during crises.

2. Divergence Count (0–25 points)

count(pairs breaking expected correlation) / total pairs

When normal relationships between indices break down, markets are fragmented and stressed.

3. Signal Dispersion (0–25 points)

fraction of indices with |σ| > 0.18

Measures how many indices are simultaneously pushing away from normal levels.

4. Cross-Asset Spread (0–25 points)

max(σ) − min(σ) across all indices

When some assets rally while others crash, the spread widens, indicating stress.

Strain Bands

Calm≤ 25
Watch26–50
Strained51–75
Stressed≥ 76

Macro Regime Matrix

The combination of momentum band (Strong Bearish, Bearish, Neutral, Bullish, Strong Bullish) and Strain band (Calm, Watch, Strained, Stressed) produces a 5×4 grid of 20 macro regime states. Each state describes market conditions from “Peak Expansion” (Strong Bullish + Calm) through neutral states to “Crisis” (Strong Bearish + Stressed).

Examples: Strong Bullish + Calm = Peak Expansion; Strong Bullish + Stressed = Froth; Strong Bearish + Stressed = Crisis.

Gate Mechanism

The Gate regulates exposure based on risk state and stress:

ONRisk-On state OR Favorable conditions
CAUTIONCautious state OR elevated Strain
OFFRisk-Off state OR severe stress

Anti-Flap System

State transitions use z-score threshold crossings with hysteresis stabilization. Entry into a new state requires crossing the boundary plus a hysteresis band; exit requires dropping below the boundary minus the band. A minimum dwell time prevents premature transitions from transient spikes. This applies at both the conditions-state level and the four-state regime level.

Computational Framework

All MarketSchema indices use the same computational framework: weighted-mean aggregation with z-score normalization. Indices share standard z-score thresholds and differ primarily in component selection, weights, and polarity — not in computational method or threshold design. This design choice favors consistency and auditability over bespoke modeling per index.

Because the framework is shared, indices with overlapping input components (e.g., credit spreads appearing in both CRSI and CDDI) will exhibit correlated behavior. Factor overlap is documented on each index detail page where applicable.

Section 2: Z-Score Methodology

Z-scores standardize index values across different scales and distributions, allowing for meaningful comparison and aggregation.

Formula

σ = (x − μ) / σ_std

Where x is the current value, μ is the mean, and σ_std is the standard deviation over the lookback window.

Default Lookback

252 trading days (1 year)

Configurable per index via component specifications.

Minimum Observations

30% of window (76 days for 252-day window)

Ensures reliable statistics even during backtest or sparse data periods.

Outlier Rejection

Clamped at ±10σ

Extreme deviations are capped to prevent single events from dominating the signal.

Division by Zero Handling

Returns 0.0

When an index has near-zero standard deviation (all values very similar), the z-score is set to 0 (neutral).

Section 3: Contagion Map

The Contagion Map identifies how stress in one market can propagate to others via correlation breakdown and tail co-movement.

Copula Model

Dependence structure is modeled using a Student-t copula, which captures fat tails and tail dependence better than Gaussian approaches.

Fit Methodology

Kendall's τ Calibration

Rank correlation is computed between all pairs of indices to capture monotonic dependence.

Profile MLE for ν (degrees of freedom)

The Student-t degrees of freedom parameter is estimated via maximum likelihood, controlling tail weight.

Tail Dependence

Asymptotic λ (Asymptotic Tail Dependence)

Closed-form formula from Student-t theory

Measures the probability of joint extreme events as distributions approach their tails.

Finite Co-Exceedance (200K Monte Carlo)

Simulates 200,000 draws from the fitted copula to compute the probability that multiple indices exceed a stress threshold simultaneously.

Stress Polarity

Each index has a stress direction (up or down) that indicates which direction represents stress:

+Stress = index rising (e.g., VIX, spreads)
Stress = index falling (e.g., equity indices, flows)

Contagion Risk Score

Combines 4 weighted components to produce a single contagion risk metric:

1. Tail Dependence Strength

How likely are joint extreme moves?

2. Co-Exceedance Probability

What fraction of stress scenarios involve multiple markets in crisis simultaneously?

3. Current Stress Level

How close are indices to their stress thresholds right now?

4. Volatility Regime

Is volatility elevated, amplifying contagion speed?

View Market Structure: /compare

Explore Further

Terminology Guide

MarketSchema uses a 3-layer model. Each layer has distinct vocabulary to avoid ambiguity.

Layer 1: Global Conditions

8 pillar categories → Risk Score → Risk State → Action Bias. Always global scope. Labels: “Conditions”, “Risk State”, “Action Bias”, “Risk Score”, “Stress Level”.

Layer 2: Drivers (Indices)

Individual macro indices with per-asset exposure weights. Each has value, z-score, signal, and freshness. Asset-specific impact computed via the exposure catalog.

Layer 3: Narratives

Cross-asset macro themes scored 0–100 with per-asset orientation (tailwind or headwind). “Tailwind” and “headwind” are only used in this asset-specific context, never for global conditions.

Full semantics contract: Risk State Explanation →

Authority Tier & Calibration Status

MarketSchema scores are classified by authority tier: Experimental (no evidence of ranking signal), Indicative (weak signal detected), or Validated (multi-horizon signal confirmed with baseline beating). Each tier honestly reflects the evidence available — not a marketing tier.

A ranking validation framework measures multi-horizon Rank IC, spread returns, and baseline comparisons daily. However, no outcome calibration has been performed to optimize thresholds or claim predictive accuracy. The system measures current macro context and relative alignment — not future performance. Users should treat scores as one input among many, not as standalone decision criteria.

Confidence displayed on scores is a data-availability metric (coverage + freshness + agreement), not a forecast accuracy metric. High confidence means "most indices are fresh and mostly agree" — not "this score is more likely to be right."

Informational only — not financial advice. Data may be delayed or incomplete. Always do your own research.
View index pipeline details
Transform

Raw source values are standardized into comparable signals. Each component declares its transform chain and parameters.

Aggregate

Transformed components are combined with fixed, published weights. Weight-sum checks are surfaced on every run.

Normalize

The composite output is normalized against an index-defined baseline so values are comparable across units.

Signal

The normalized value maps to semantic regime labels using index-defined threshold bands.

Deterministic

No LLM in compute pipeline

Transparent

All components and transforms disclosed

Versioned

Version tags on every index

Auditable

Coverage + publish mode on each run

Data Providers

Derived from 86 index specifications — not hardcoded.

ProviderOriginatorCoversCadenceExample seriesIndices
FREDFederal Reserve / BLS / BEARates, macro, credit, labor, CPIDaily to quarterlyBAMLC0A4CBBB, BAMLH0A0HYM2, BOPGSTB, BUSLOANS27
Polygon.ioExchanges (NYSE, NASDAQ, CBOE)Equities, ETFs, options, volatilityReal-time / EODABNB, AG, ANET, APP20
CoinGeckoCrypto exchangesCrypto prices and market structureIntradaybitcoin, cardano, ethereum, solana4
CBOE (via Polygon)CBOEVolatility indices (VIX family)Real-time / EODVIX1

Available Transforms

TransformWhat it doesExample indices
diffFirst difference transform.
excess_retReturn relative to benchmark.
invertPolarity inversion before aggregation.
levelLevel-based transform without differencing.
maMoving average transform.
macro_impulseRelease impulse with exponential decay memory.
momMonth-over-month change.
pct_changePercent change between observations.
price_retLog return of price series.
vol_changeChange in volatility level.
yield_changeChange in rate level, typically in bps.
yoyYear-over-year change.
zscoreStandardizes to sigma units.
Macro Impulse Deep Dive

Macro impulse transforms encode release surprise and then decay that surprise through a deterministic memory state. Parameters are read from index transform configs.

u(t) = (x(t) − x(t−1)) / rolling_std(Δx, W)
m(t) = φ × m(t−1) + u(t)
output(t) = m(t) − m(t−1)
φ = exp(−ln(2) / half_life)

No macro_impulse component is currently active for the selected index.

Track Record

Does MarketSchema’s scoring actually predict forward returns?

Warming Up

Building track record — 13 of 30 days collected.

Full performance statistics available after 30 days of evaluation data. Every score, setup packet, and regime call is being recorded and will be scored against realized outcomes.

43%
Score Performance

Do higher-scored assets outperform lower-scored ones?

17d until data
/v1/eval/score-performance
Setup Hit Rate

How often do setup packets call the right direction?

17d until data
/v1/eval/setup-hit-rate
Regime Accuracy

Does the regime engine correctly identify market states?

17d until data
/v1/eval/regime-accuracy

MarketSchema records every score computation and setup packet. After 30 days, we have enough forward return data to compute meaningful hit rates and decile performance. This is a deliberate choice: we would rather show real numbers than premature statistics.

Score Decile Performance

Average 30-day forward returns grouped by Schema Score decile. Higher-scored assets should outperform lower-scored assets.

Warming Up
0–10
10–20
20–30
30–40
40–50
50–60
60–70
70–80
80–90
90–100
← Lowest scoresSchema Score DecileHighest scores →

Score decile analysis requires 30 days of forward return data. Currently at 13 days (43%).

When live, this chart will show the average 30-day forward return for each score decile. A well-calibrated scoring system produces a monotonically increasing bar chart — assets scored 90–100 should meaningfully outperform assets scored 0–10.

Full track record →|Endpoint: /api/v1/eval/score-performance
Methodology — How Indices Are Built | MarketSchema