Working prototype · live data · JUL 02, 2026

Every metric, scored bywhat it predicts.

For every asset we have market data on (crypto, stocks, and sports next), score every social metric by how well it leads price. A ranked panel on the asset page, and a correlation line right on the chart. All math below runs live in your browser.

0assets loaded
0metrics scored
0lag tests / asset
0server calls
B
BitcoinBTCCRYPTO
Correlation line
Window

The panel that goes on the page

Every metric ranked by in-sample predictive power in the window you're looking at. Positive means the metric rising leads price up; negative means it leads price down (a contrarian signal is still a signal).

Correlations

in-sample · daily changes vs forward return · best lead 1-7d

Lead-time map

correlation at each lead time: today's metric change vs price return k days ahead. Column 0 = same-day. Each cell is a single test at a 5% bar, so expect ~5 of 96 to outline by chance.

One engine, every asset class

Same math, no per-asset tuning. Click a row to load it above. Signals differ by asset, and that's the point: the panel tells you what to watch for this asset.

Each row picks the best of ~84 metric-lag combinations, so it is held to a selection-adjusted significance bar (3.2/√n). At a raw 5% bar, noise alone would light up 9 of 10 assets. Grey "n.s." rows are the honest answer for those assets today.

Sports is the same engine

A game's moneyline is a price. The moment we carry odds time-series next to team/player social metrics, this exact code scores "does a surge in Chiefs mentions move the line before the market does?" Zero new math, just a new asset type.

How it ships

This demo computes everything client-side to prove the math is cheap. In production it's one nightly pass per asset.

1
PIPELINE

Nightly precompute

For each asset: pull daily series, transform to changes, score 12 metrics × 8 leads + rolling windows. ~5ms per asset; the whole universe is minutes.

2
API

/correlations/v1

Ranked metrics with lead time, strength, significance, and the rolling series. Also a sellable endpoint on its own (x402 / enterprise API).

3
ASSET PAGE

Correlation panel

The ranked module from this page drops in next to the metric chips. Chips get a small lead badge: the "why should I care" for every metric.

4
CHART

Line on the chart

Rolling correlation as a chart overlay pane, same as this demo. When the line regime-shifts, that's a story users screenshot. (Brief band-exits happen by chance; sustained multi-window shifts are the story.)

Why the math is built this way

Three decisions that keep this honest: the difference between a signal and a chart crime.

Changes, not levels

Two series that both trend up always "correlate." We correlate daily changes against forward returns, so a high score means the metric's moves lead price moves, not that both went up this year. (The "Levels" toggle above shows the naive version for comparison.)

Outlier-proofed

Social data spikes 50× on viral days. Changes are log-scaled and winsorized at the 1st/99th percentile so one Doge meme doesn't fabricate a year of "signal." AltRank is inverted so improving rank reads positive. Clip bounds are fit on the full year in this demo; production would fit them on trailing data only.

Significance-gated

Heatmap cells are single tests at |r| > 1.96/√n. Every "best lead" badge is held to a stricter selection-adjusted bar (2.69/√n over the 7 lags searched; 3.2/√n for the cross-asset pick, calibrated on a correlated-test null) so cherry-picking the max can't manufacture signal. The bar stays valid at multi-day leads because the metric-change series are serially near-uncorrelated (worst-case empirical false-positive rate ~5%, checked). Grey means "not distinguishable from noise" and the UI says so. In-sample correlation is still not tradeable alpha: the next step is walk-forward testing, and this panel is designed to survive that conversation.