Dashboard, Report & Signal Guide

The master reference for this platform. Part 1 explains how to read the dashboard — regime, score, alerts, the leading/lagging view, and signal alignment. Part 2 is a per-signal reference: every indicator, its thresholds, the correlation pair ladder, report sections, data sources, and the pulse-check workflow.

Part 1 Reading the Dashboard

The regime, score, alerts, and interpretive text — what they mean and how to use them.

How to Read the Dashboard

Every signal on the dashboard is evaluated against a five-level scale shown as a colored dot next to the value. The dot tells you the signal's condition at a glance without needing to memorize thresholds.

The Signal Health score (0–100) combines all signals into a single number. The Market Regime classifies the overall environment. These two can disagree — a high score with a cautious regime means underlying conditions are strong but specific risks are present. A bridge text explains the disagreement when it occurs.

Leading indicators (DIX, GEX, HY OAS, Breadth, Energy regime) tend to move before price. Lagging indicators (VIX, Sentiment, Cross-asset correlations) confirm what's already happened. Weight leading signals more heavily for forward-looking decisions.

Market Regime

Classifies current conditions into one of five regimes based on dark pool activity, credit spreads, volatility, breadth, and positioning. Updated every 15 minutes during market hours.

RISK-ON

Triggers: DIX strong, GEX positive, HY OAS tight, breadth broad, VIX low

Structural supports intact with broad participation. The floor is solid.

Favor long positions, full sizing. Conditions support risk-taking.

CAUTIOUS

Triggers: Most supports intact but one or two lagging — typically breadth < 50% or credit widening

Mostly there but mixed signals warrant caution. Not all sectors participating.

Be selective. Favor quality, slightly smaller sizes. Watch the lagging signal.

TRANSITIONAL

Triggers: Signals actively disagree — some improving while others deteriorate

Between regimes. Direction is unclear. Often seen at turning points.

Reduce exposure or wait for clarity. Don't force trades when signals conflict.

RISK-OFF

Triggers: Multiple structural supports weakening — rising HY OAS, falling breadth, weak DIX, negative GEX

Environment deteriorating. Institutional buyers stepping back.

Favor defensive sectors, reduce longs, consider hedges. Cash is a position.

PANIC

Triggers: Acute stress across all dimensions — extreme VIX, wide credit, collapsed breadth, heavy put buying

Systemic stress. Capital preservation mode.

Hedge everything. No new longs. Wait for stabilization.

Evaluation order: PANIC (most restrictive) → RISK-OFF → RISK-ON → CAUTIOUS → TRANSITIONAL (default).

Signal Health Score

Composite 0-100 measure of structural market health — not direction. A high score means the plumbing is intact (liquidity flowing, credit calm, institutions buying). Normal markets score 55-60.

Score Components (18, sum to 100)

DIX Institutional dark pool buying activity
10 pts
GEX Options dealer gamma exposure
10 pts
HY OAS High-yield credit spreads
8 pts
Breadth % of S&P 500 above 50-day SMA
7 pts
Vol Term VIX term structure (contango/backwardation)
5 pts
Liquidity Fed net liquidity direction
7 pts
SPY/ZGL Price vs zero gamma level
5 pts
BTC Bitcoin as liquidity proxy
3 pts
0DTE PCR Same-day options put/call ratio
5 pts
Energy Energy regime (WTI, crack spread, XLE)
10 pts
Stagflation Weighted breakevens (5Y 40%, 10Y 20%, 5Y5Y 20%, 5Y-10Y inversion 20%)
8 pts
Sectors Sector breadth favorability
5 pts
Correlations Weighted per-pair health (SPY/VIX, SPY/Oil, SPY/DXY, SPY/TNX)
5 pts
SKEW/VIX Tail-risk hedging activity
3 pts
Real Yield 10Y TIPS real yield level
3 pts
Copper/Gold Growth expectation proxy ratio
2 pts
USD/JPY Carry trade unwind risk
2 pts
HYG Credit ETF selling pressure confirmation
2 pts

Component maxes rebalance during certain regimes. When the energy regime is SHOCK or CRISIS, Correlations doubles to 10 (cross-asset transmission is the dominant signal), BTC drops to 0, and Sectors scales to 3 — total stays at 100. Overrides are declared in score_weights.json → regime_overrides.

Score Ranges

70+
Favorable Conditions support risk-taking
50
Mixed Some supports intact, others not
30
Cautionary Multiple supports weakening
<30
Adverse Structural supports broken

Score-Regime Reconciliation

When the score and regime disagree, bridge text (italicized line below regime name) explains the divergence.

70+ RISK-ON Favorable Score and regime agree — full green light
70+ Not RISK-ON Favorable, with caution Score is high but a lagging signal holds the regime back
50–70 Any Mixed Some supports intact, others not — be selective
50–70 RISK-OFF/PANIC Mixed, deteriorating Mid-range score but conditions worsening
30–50 Any Cautionary Multiple supports weakening — reduce risk
Below 30 PANIC/RISK-OFF Adverse Structural supports broken — defensive only
Below 30 Other Adverse, holding Score very low but regime hasn't caught up yet

Alerts

Threshold-based alerts fire when signal thresholds are crossed. They appear in the Alert Feed on the dashboard and in the alert history. The full catalog of all 59 alert definitions — triggers, severity, category, and cross-detection rules — is documented on the alert reference page.

Critical

Structural supports are breaking. Requires immediate attention.

Warning

Conditions deteriorating or a notable threshold crossed.

Info

Informational — often bullish confirmations or position reclaims.

Active

Condition is present. Displayed in the alert feed until resolved.

Resolved

The underlying condition cleared automatically. Visible for 30 days.

A few examples

Full catalog (59) →
critical
CRASH_SETUP

Deeply negative GEX + credit stress + breadth collapse. All structural supports breaking.

critical
STAGFLATION_ELEVATED

Stagflation score above 75 — breakeven rates signaling entrenched inflation expectations.

warning
GEX_FLIP_NEG

GEX flipped negative — dealer hedging now amplifies moves instead of dampening them.

warning
CORRELATION_BREAK

A SPY-paired correlation moved into warning or severe — the normal cross-asset relationship is breaking.

info
BULL_ALIGNMENT

DIX strong + GEX positive + credit tight + breadth broad. Full support.

The Five-Level Signal Scale

Every signal is evaluated against this universal scale. The colored dots next to signal values map to these levels.

Favorable

Conditions are constructive. Supports risk-taking.

Leaning

Slightly positive — tilting constructive.

Neutral

No strong signal either way.

Cautionary

Deteriorating. Risk management warranted.

Adverse

Danger zone. Immediate attention.

Leading vs Lagging Indicators

The dashboard's leading/lagging paragraph tells you: are predictive signals confirming or diverging from confirmatory ones?

Leading — move before price

DIX direction

Institutional dark pool buying shifts before price moves

GEX sign

Gamma exposure flip changes the vol regime before VIX reacts

HY OAS direction

Credit spreads widen before equity selloffs

Breadth trend

Participation narrows before indices roll over

Energy regime

SHOCK/CRISIS acts as a leading macro headwind — margin compression follows

Coincident — move with price

SPY vs ZGL

Price vs zero gamma level shows real-time dealer dynamics

0DTE PCR

Same-day options flow reflects current session sentiment

VIX level

Implied volatility responds to current conditions

Lagging — confirm after

Sentiment score

News sentiment aggregation lags by hours to days

VIX level

Implied vol reacts to price moves that have already happened

Cross-asset correlations

Confirm or deny transmission after the structural signals move

When leading indicators deteriorate while lagging indicators still look fine, the leading indicators are usually right.

Signal Alignment

Compares SPY's 5-day price direction against the equity implications of eleven signal categories. The Signal Alignment card is the first card on the dashboard — if most signals agree with price, conviction is high; if they disagree, something's about to resolve.

Transmission order

The card's eleven dots are split into a leading cluster (6 dots on the left) and a lagging cluster (5 dots on the right). The ordering is regime-conditional — profiles live in ui/src/data/signal-transmission-order.json, one per regime plus an energy_shock override that applies whenever energy_regime is SHOCK or CRISIS. Example: RISK-OFF is credit-led (credit → breadth → gamma → dark pool → energy → growth); energy_shock is oil-led (energy → credit → growth → breadth → dark pool → gamma). Correlations sits in the lagging cluster across all profiles — it confirms or denies cross-asset transmission after the structural signals move. Hover the midpoint divider to see the rationale for the current profile.

Severity intensity

Each dot renders at one of three intensities from a category's distance-from-threshold plus a regime-critical override: soft (near threshold), medium (moderately removed), or hard (well past threshold or regime-critical — energy SHOCK/CRISIS, VIX backwardation, HY OAS > 5, VIX > 40, breadth < 20 or > 85). Hard dots render with a red outer ring. A diverging DIX at 0.43 (just off-threshold) looks different from an HY OAS at 5.2% (deep critical), even though both are "diverging".

Alignment velocity

5-day change in alignment %, labeled improving (≥+2pp), deteriorating (≤-2pp), or flat. Lets you see whether a 60%-aligned reading is drifting up or down — often matters more than the absolute level.

Alignment baseline (per regime)

90-day trailing average of alignment % bucketed by regime. A 70% reading is below average in RISK-ON but unusually high in RISK-OFF — the baseline tells you which. Delta labels: strong for regime (≥+8pp), healthy for regime (≥+3pp), typical for regime, soft for regime (≤-3pp), weak for regime (≤-8pp). A building flag shows when fewer than 30 samples are available for the active regime.

Delta badges

A dot that just flipped state (bullish → bearish or vice versa) in the last 24 hours renders a pulsing ▲/▼/◆ badge. Computed by recomputing each category's implication across 30 days of history to find the last flip. The state_changed_at timestamp is shown in the drill-down popover.

Drill-down popover

Click any dot to see the raw value (e.g. "HY OAS 3.21%"), the implication reason, the health-score points it contributes, and when it last changed state. ESC or tap-outside to dismiss.

Overall severity badge

STRONG_ALIGNMENT — 5+ aligned
MIXED — default
MODERATE_DIVERGENCE — 3+ divergent
STRONG_DIVERGENCE — 5+ divergent

Alignment is deliberately separate from the Health Score. Score measures "is the plumbing working?"; alignment measures "does the plumbing agree with price?".

Part 2 Signal Reference

Every signal, its thresholds, and how to read it. Each card has a stable anchor (e.g. /humans#gex) for deep links from tooltips, Slack, or external docs.

All Signals

DIX — Dark Pool Index (Buy Ratio)

Higher = more buying

#

Measures institutional buying in dark pools. When large players accumulate, DIX rises. Leading indicator — moves before price.

≥ 0.48 Favorable, 0.45–0.48 Leaning, 0.42–0.45 Neutral, 0.40–0.42 Cautionary, < 0.40 Adverse

GEX — Gamma Exposure (billions)

Positive = vol suppression

#

Measures dealer gamma positioning. Positive GEX means dealers buy dips and sell rallies, dampening volatility. Negative GEX amplifies moves.

≥ 2.0B Favorable, 0–2.0B Leaning, < 0 Cautionary, < −2.0B Adverse

Gamma Walls — GEX Call/Put Wall Levels (SPY)

Price magnet/barrier

#

Computed from options dealer gamma exposure across strikes. The call wall is where dealer hedging creates maximum resistance; the put wall creates maximum support. Price tends to pin between walls.

SPY between walls = range-bound. Near call wall = resistance. Near put wall = support. Breach = accelerated move.

ZGL — Zero Gamma Level

Above = stable, below = trending

#

Below ZGL, dealer hedging flips from mean-reverting to trend-following — moves accelerate rather than mean-revert.

SPY above ZGL → vol dampened. SPY below ZGL → vol amplified (trending).

HY OAS — High Yield Option-Adjusted Spread

Lower = less stress

#

Credit spread between high-yield bonds and Treasuries. Widening means investors demand more compensation for risk — a leading stress signal.

< 2.5% Favorable, 2.5–3.0% Leaning, 3.0–3.5% Neutral, 3.5–4.5% Cautionary, > 4.5% Adverse

NFCI — Chicago Fed National Financial Conditions Index

Lower = looser conditions

#

Composite of 105 financial variables — credit spreads, leverage, volatility, repo, money markets. Merged with HY OAS into the Credit alignment dot (see _DOT_MERGES in app/signals/routes.py). Picks up tightening that hasn't yet shown up in HY spreads; when the two disagree, NFCI usually moves first in the early-stress phase while HY OAS confirms as dealers actually reprice risk.

< -0.5 Favorable, -0.5 to 0 Neutral, 0 to +0.5 Cautionary, > +0.5 Adverse

BBB Spread — Investment-Grade Corporate Spread

Lower = less stress

#

Spread for BBB-rated (lowest investment-grade) corporates. Widening here signals downgrade risk near the investment-grade cliff.

< 1.0% Favorable, 1.0–1.5% Leaning, 1.5–2.0% Neutral, 2.0–2.5% Cautionary, > 2.5% Adverse

Breadth (50d) — % of S&P 500 Above 50-Day SMA

Higher = broader participation

#

Measures how many stocks are in uptrends. Narrow breadth (few stocks driving gains) is fragile. Broad participation confirms strength.

≥ 60% Favorable, 50–60% Leaning, 40–50% Neutral, 30–40% Cautionary, < 30% Adverse

Sector Breadth — Per-Sector % Above 50-Day SMA

Higher = broader strength

#

Breaks aggregate breadth into 11 GICS sectors. Reveals whether a rally is broad or driven by a few sectors. Wide divergence flags rotation risk or narrow leadership.

All sectors > 70% = broad rally. All < 30% = broad sell-off. > 60pp divergence between sectors = rotation risk.

VIX — CBOE Volatility Index

Lower = less fear

#

Implied volatility of S&P 500 options. High VIX = market expects large moves (fear). Lagging — confirms what price is already showing.

< 15 Favorable, 15–20 Leaning, 20–25 Neutral, 25–35 Cautionary, > 35 Adverse

VIX Regime — VIX Term Structure

Contango = normal

#

VIX futures curve shape. Contango (front < back) is normal. Backwardation (front > back) means near-term fear exceeds long-term — rare and serious.

Contango → Favorable, Backwardation → Adverse

Correlations — Rolling 20-Day Asset Correlations

Four-level scale: normal/elevated/warning/severe

#

Tracks whether normal market relationships are intact. SPY/VIX weakening = complacency. SPY/DXY both falling = crisis pattern. SPY/Oil strongly negative = oil shock transmitting into equities. Each pair classifies on a four-level scale (normal → elevated → warning → severe); the CORRELATION_BREAK alert fires on warning or severe.

SPY/VIX normal −0.95 to −0.70 (warning > −0.50, severe > −0.30). SPY/DXY normal −0.40 to +0.10 (warning > +0.30 or < −0.60, severe > +0.55 or < −0.80). SPY/TNX normal −0.20 to +0.40 (warning > +0.60 or < −0.50, severe > +0.85 or < −0.80). SPY/Oil normal −0.30 to +0.20 (warning < −0.50, severe < −0.80).

Energy Regime — Energy Market Regime Classification

STABLE = best

#

Classifies energy market conditions from WTI, Brent, crack spread, and XLE. Energy shocks act as leading macro headwinds — high crude prices compress margins and slow growth.

STABLE → Favorable (10 pts), ELEVATED → Leaning (7 pts), SHOCK → Cautionary (2 pts), CRISIS → Adverse (0 pts)

Stagflation — Stagflation Risk Score (0-100)

Lower = less risk

#

Composite of 5Y, 10Y, and 5Y5Y breakeven inflation rates. High breakevens signal entrenched inflation expectations, raising the probability of a stagflationary environment.

≤ 25 Favorable (8 pts), 25–50 Leaning (5 pts), 50–75 Cautionary (2 pts), > 75 Adverse (0 pts)

2s10s — Treasury Yield Curve (10Y minus 2Y)

Positive = healthy slope

#

The slope of the yield curve. Inversion (negative) has preceded every recession since 1970, though with variable lead time.

> 0.5% Favorable, 0.1–0.5% Leaning, −0.1–0.1% Neutral, −0.5 to −0.1% Cautionary, < −0.5% Adverse

Liquidity — Fed Net Liquidity Signal

Expanding = bullish

#

Net liquidity = WALCL minus TGA minus RRP. Rising means more cash in the financial system, which flows into risk assets.

Expanding → Favorable, Flat → Neutral, Contracting → Adverse

Fed Watch — Fed Funds Rate & Rate Cut Probabilities

Lower rates = bullish

#

Shows the current fed funds target rate, next FOMC meeting date, and market-implied probabilities for hold vs cut. Rate expectations drive bond yields and equity multiples.

Rate cuts are bullish for equities and bonds. Rising hold probability = hawkish. Rising cut probability = dovish.

BTC — Bitcoin Price

Higher = risk-on

#

Bitcoin tracks global liquidity and risk appetite. Acts as a real-time proxy for the liquidity cycle.

> $80K Favorable, $50K–$80K Neutral, < $50K Adverse

0DTE PCR — Zero-DTE Put/Call Ratio

Balanced ≈ 0.7–1.3

#

Ratio of put to call volume in same-day expiry options. Extreme put buying = hedging/panic. Very low = complacency.

0.7–1.3 Favorable, < 0.7 Leaning (complacent), 1.3–1.5 Cautionary, > 1.5 Adverse

Sentiment — News Sentiment Score

Higher = more bullish

#

Aggregate sentiment from financial news. Lagging — reflects the narrative, not what comes next.

> 0.20 Favorable, 0.05–0.20 Neutral, −0.10–0.05 Cautionary, < −0.10 Adverse

Credit Stress — Credit Stress Composite

Lower = benign

#

Composite label from HY OAS and spread behavior. Summarizes the credit picture in one word.

Low → Favorable, Normal → Leaning, Elevated → Cautionary, High → Adverse

SKEW — CBOE SKEW Index

Higher = more tail fear

#

Demand for out-of-the-money S&P put hedges. Rising SKEW while VIX stays calm flags institutional tail-risk hedging.

> 160 Adverse (professional hedging), < 120 Favorable (complacent).

Real Yield — 10-Year TIPS Yield

Falling = risk-supportive

#

Real yields are the key discount-rate input for long-duration equities, and a primary driver of gold.

Falling → supportive for equities/gold. Rising → headwind.

Copper/Gold — Copper-to-Gold 20-day Rate-of-Change

Rising = reflation

#

Copper (growth) divided by gold (safety) captures early macro-positioning shifts before they hit equities.

> +3% Favorable, −3% to +3% Neutral, < −3% Adverse

USD/JPY — USD/JPY Currency Pair

Stable = benign

#

USD/JPY is the global liquidity release valve — a sharp drop has historically coincided with carry-trade unwinds and broad risk-off.

Stable → benign. Rapid JPY strength → carry-unwind risk (global risk-off).

HYG Volume — HYG ETF Volume Ratio vs 20D Average

>2× = stress confirmation

#

High-yield credit ETF volume spikes often confirm a credit-market regime shift the spread itself hasn't fully priced.

> 2× normal volume = credit-stress confirmation

Correlation Pair Thresholds

The Correlations component tracks 20-day rolling correlations for four asset pairs. Each pair is classified into one of four levels based on whether its current correlation falls within the historically normal range or has drifted into stress territory.

Pair Normal Elevated Warning Severe
SPY / VIX -0.95 to -0.70 > -0.70 or < -0.95 > -0.50 or < -0.99 > -0.30
SPY / DXY -0.40 to +0.10 > +0.10 or < -0.40 > +0.30 or < -0.60 > +0.55 or < -0.80
SPY / TNX -0.20 to +0.40 > +0.40 or < -0.20 > +0.60 or < -0.50 > +0.85 or < -0.80
SPY / Oil -0.30 to +0.20 > +0.20 or < -0.30 > +0.50 or < -0.50 > +0.75 or < -0.80

Quality scoring

Each pair's classification maps to a quality factor: Normal = 1.0, Elevated = 0.7, Warning = 0.3, Severe = 0.0. A pair at Normal contributes its full share of points; a pair at Severe contributes nothing.

Pair weights

SPY/VIX and SPY/Oil are weighted 1.0 (full weight). SPY/DXY and SPY/TNX are weighted 0.5 (half weight). This reflects the stronger signal value of the volatility and energy relationships relative to currency and rate correlations.

Scoring formula

The Correlations component has a max of 5 points (doubles to 10 under energy_shock). The score is computed as: weighted average of pair qualities × max points. For example, if SPY/VIX is Normal (1.0), SPY/Oil is Elevated (0.7), SPY/DXY is Normal (1.0), and SPY/TNX is Warning (0.3): weighted average = (1.0×1.0 + 0.7×1.0 + 1.0×0.5 + 0.3×0.5) / (1.0 + 1.0 + 0.5 + 0.5) = 2.35 / 3.0 = 0.783, giving 0.783 × 5 ≈ 3.9 pts.

Report Sections

Each report contains these data sections, updated on a market-aware schedule.

Equity & Derivatives Board

SPY, QQQ, IWM technicals: Price, RSI(14), IVR, ZGL, GEX Sentiment, PCR.

ZGL, GEX, PCR require Schwab API. Falls back to yfinance when unavailable.

Macro Board

VIX, TNX (10Y yield), GLD, DXY, SLV — same technical framework as equities.

Macro Fundamentals

10Y Yield and Dollar Index — the two macro fundamentals that feed the Correlations dot. Yield Curve (10Y-3M), Growth/Value (QQQ/SPY), and Risk Appetite (XLY/XLP) were retired in P10; they didn't map to any alignment dot and the signal they carried is now reflected in Correlations and the regime classifier.

Volatility & Options

MOVE index, VIX/MOVE ratio, 0DTE options volume and put/call ratio, vol regime.

Credit Conditions

HY OAS, BBB Spread, 2s10s Spread, and the Chicago Fed NFCI — the bond market's and the Fed's real-time read on credit stress. NFCI and HY OAS are merged into a single Credit dot on the Signal Alignment card (the dot-merge is declared in app/signals/routes.py → _DOT_MERGES).

Market Breadth

% above 50-day and 200-day SMA for all ~503 S&P 500 stocks. Breadth signal label.

Dark Pool Activity

DIX (institutional buying), GEX (dealer gamma) from SqueezMetrics. Daily updates.

Fed & Global Liquidity

Net Liquidity (WALCL - TGA - RRP), ECB + BOJ assets, BTC as liquidity proxy.

Seasonality — retired P10

20-year monthly SPY return patterns. Computed but no longer surfaced on the dashboard — self-described as a "weak but persistent signal" and didn't feed any alignment dot, so it added noise without adding signal. The field still exists in the report payload for historical record.

EPS Revisions

30-day analyst estimate changes for 10 mega-caps. Revision direction = forward indicator.

Sector Breadth

Per-GICS-sector breakdown of stocks above 50-day SMA. Displayed as a heatmap. Wide divergence between sectors indicates rotation risk.

Gamma Profile

Call and put wall levels from SPY option chain gamma exposure. Price between walls = range-bound; breach = accelerated move.

Fed Watch

Current fed funds rate, next FOMC meeting, and market-implied hold/cut probabilities.

Correlations

Rolling 20-day Pearson correlations classified on a four-level per-pair scale (normal / elevated / warning / severe) from PAIR_CONFIG in app/signals/correlations.py. Score component rewards structurally-normal readings (SPY/VIX deep-negative, SPY/Oil near-zero) and penalizes decorrelation or regime breaks; per-pair weights and level-to-quality map live in app/signals/config/correlation_scoring.json.

Report Lifecycle — What Happens Every 15 Minutes

End-to-end pipeline from external fetch to persisted API payload. Each cycle is bounded by _report_lock so the startup invocation and the hourly loop cannot overlap.

1

Fetch

Backend fetches from 10 external data sources in parallel (yfinance, Schwab, FRED, SqueezMetrics, Alpha Vantage, FXStreet, CME, Iran International, Hormuz Strait Monitor, CoinGecko).

2

Generate

Aggregated data is compiled into a structured Markdown report with 20+ sections covering equities, macro, volatility, credit, breadth, gamma, liquidity, energy, inflation, and news.

3

Capture

Signals engine extracts key metrics into the daily_signals database — regime classification, health score (18 components), sector breadth, correlations, alignment.

4

Evaluate

Alert conditions are checked against thresholds. New alerts fire, existing alerts resolve. Critical/warning/info severity assigned automatically.

5

Persist

Reports, signals, and alerts are persisted to SQLite (WAL mode). The JSON API and dashboard serve fresh data immediately.

Data Sources & Schedule

Ten external feeds drive every report. Schwab failures silently fall back to yfinance; any single source failure logs but never kills report generation.

Source Data Provided Refresh Rate Required
yfinance Prices, RSI, IVR, breadth, EPS, MOVE, BTC, energy (WTI, Brent, USO, XLE), seasonality Every 15 min Yes (core fallback)
Schwab API GEX, ZGL, PCR, live quotes, option chains, 0DTE Every 15 min Optional
FRED API Fed liquidity, HY OAS, 2s10s, breakevens, yields Every 15 min Yes
SqueezMetrics Dark pool DIX and GEX Daily CSV Yes
Alpha Vantage News sentiment Every 15 min Optional
FXStreet Financial news headlines RSS poll Yes
CME FedWatch Rate cut probabilities Every 15 min Optional
Iran International Geopolitical news Liveblog poll Yes
Hormuz Strait Monitor Tanker traffic (oil supply risk) API poll Yes
CoinGecko BTC price (backup) On demand No

Report Schedule (Eastern)

Pre-market
8:30, 9:00, 9:15

Prices, news, FRED, credit, vol

Market open
9:31

All sources incl. breadth, sentiment, dark pool

Market hours
Every 15 min (9:45–15:30)

Prices, options, 0DTE, news, BTC

Midday
12:00

All sources

Close
15:45, 16:01

All sources

After hours
16:30, 17:00, 18:00

Prices, news, credit, FRED

Overnight
Every 2h (20:00–8:00)

News, BTC only

Change Markers

Value increased from previous report
Value decreased from previous report
Classification changed (e.g., Bullish → Bearish)

Source Health & Freshness

Every source fetch records success or failure. Aggregate health is exposed as a single system-wide reading that drives the dashboard status dot.

Source Run Tracking

Every per-source fetch appends an outcome row (source, ok, error, run_at) to the source_runs table. A raised exception counts as a failure; an empty dict counts as success. Rows are pruned after 30 days.

System Health Endpoint

GET /api/v1/status returns sources_healthy_pct_7d, total_source_runs_7d, and a per-source failure breakdown over the trailing 7 days. See the API reference for the full response shape.

Health Thresholds

> 95% healthy 80–95% (yellow warning) < 80% (red issue)

The API escalates its top-level status based on these bands — below 95% returns a yellow warning, below 80% a red issue.

Dashboard Indicator

The StatusDot in the dashboard header polls /api/v1/status and reflects the same green/yellow/red bands. Hover the dot for the most recent 7-day source-health percentage.

Putting It Together

Sections appear in pulse-check order: alignment first, then market status, then energy, then alerts, then what changed.

1

Start with Signal Alignment

Does SPY's 5-day direction agree with the 9 signal categories? Strong divergence is the loudest "something is wrong here" tell on the page.

2

Read Market Status

Regime, score, bridge text, and the leading/lagging paragraph give the 5-second read once alignment has set the frame.

3

Scan Energy & Commodities

Energy regime is a top-of-funnel macro signal that shifts before equities — it sits high on the page so transitions don't get buried.

4

Check Active Alerts

Any CRITICAL or WARNING alerts require immediate attention.

5

Read What Changed

Every meaningful delta vs the previous daily snapshot — regime flips, ≥5pt health-score moves, threshold crossings, label flips. Quiet here = quiet day.

6

Check Key Levels

Where are the support/resistance levels for today's session?

7

Scan raw data sections

Colored dots make this fast — glance for any that stand out.

8

Check the economic calendar

Upcoming catalysts can override all technical signals.

When signals align (bearish breadth + widening credit + negative GEX + falling DIX), conviction is high. When they diverge, watch which resolves first.

API Documentation · Alert Reference · Alert History · Dashboard