SPB Git

spb/anomaly-atlas Public License

Systematic discovery & rigorous validation of statistical anomalies in open HF market data (hfmarketdata.io) — pre-registered, artifact-null-driven, fully reproducible. Live atlas: www.anomaly-atlas.io

Python 61.4% JavaScript 28.7% CSS 8.6% Shell 0.7% Makefile 0.5%

# project: anomaly-atlas document: expB_artifact_baselines/analysis author: Simon-Pierre Boucher contact: contact@spboucher.ai data_source: hfmarketdata.io created: 2026-08-12 modified: 2026-08-12 status: reviewed

# Analysis — expB_artifact_baselines

Run: results/expB_artifact_baselines/20260812T055602Z/results.json (hardware manifest embedded; 47 network requests, 795 185 rows, protocol pre-specified in hypothesis.md; detectors passed the §8.1 synthetic gate — 11 tests — before touching this data).

# The measured artifact nulls (Q1 2024, RTH 1min, 31 tickers)

Staleness tercile median staleness median AC1 Roll rel. spread VR(30) SPY leads +1min
fresh 0.000 −0.009 1.4 bp 0.972 +0.005
mid 0.107 −0.051 3.8 bp 0.901 +0.047
stale 0.691 −0.232 17.0 bp 0.547 +0.021
  • Bounce/staleness dominate naive reversion metrics. With zero planted economics, illiquid names show VR(30) = 0.55 and AC1 = −0.23 (extreme: RITM.B, 90 % stale minutes, VR30 = 0.35). Any reversion scan that does not clear these levels for its liquidity bucket is measuring market plumbing.
  • Mega-caps show no measurable bounce at 1min: AAPL/SPY/NVDA AC1 CIs cover 0 and the Roll estimator is undefined (positive lag-1 autocov) — the bounce null is liquidity-dependent, not universal.
  • The stale-price lead-lag artifact is real and monotone: SPY spuriously "leads" tickers by +1 min in proportion to their staleness (Spearman = +0.43). It peaks in the mid tercile (+0.047): the stalest names trade so rarely that even LOCF correlation collapses — the artifact is worst where it is least obvious.
  • SPX-vs-SPY: contemporaneous corr 0.965, and a +0.065 cross-correlation with SPY leading by 1 minute. An "ETF price discovery leads the index" finding is manufactured by index print staleness — measured here so Q2 hypotheses must beat it.

# Limitations

Level 0 by construction (descriptive nulls; single quarter; one venue's bar convention). 11/42 tickers dropped for insufficient data — the null for ultra-illiquid names is therefore understated. Q1-2024-specific levels; expC should re-measure per period rather than reuse these constants blindly.

# Verdict

Complete — nulls established and usable. Both pre-specified falsification criteria failed to trigger. Numbers are recorded in research/artifact_taxonomy.md; expC (reversion scan) must report every effect net of the bucket-matched bounce null, and expD must run the synchronized-vs-raw timestamp comparison this experiment quantified.