Compare the lake, PIT project cards, simulator calibration, and cross-sectional research as recorded on 2026-09-27, with repository reproduction commands and the limits of each result.
Read Program overview for the program map and Real-data verdict before treating any synthetic or ranking result as evidence of a trading edge.
Evidence map
| Track | Local source | Evidence date | What the evidence supports |
|---|---|---|---|
| Raw data lake | /Users/mbp/dev/research/auto/lake/README.md | 2026-09-27 | A dated raw-source inventory, not complete signal inputs |
| Project cards / PIT ranking | /Users/mbp/dev/research/auto/project-cards/notes/01-pit-backtest.md | 2026-09-27 | Snapshot-derived ranking hypotheses, not verified project quality or a profitable strategy |
| Simulator calibration | /Users/mbp/dev/research/auto/market-signals/notes/05-calibration.md | 2026-09-27 | Closer selected stylized facts and a harder synthetic test, not independent real-market validation |
| Cross-sectional ranks | /Users/mbp/dev/research/auto/market-signals/xs/README.md | 2026-09-27 | A cost-dominated real-data experiment with universe-selection limitations |
- Sources are local research artifacts, not downloadable datasets hosted by this wiki. Counts and results are recorded snapshots, not live counters; separate track receipts need not describe an identical lake state.
- Commands below assume the sibling checkouts and recorded local data. Their paths and flags were checked against documentation and command declarations; research was not rerun for this consolidation. Fetch/build commands can change artifacts and are distinguished from read-only verification.
Raw data lake
Source: the lake README’s 2026-09-27 inventory. Snapshot total: 7,525 files / 744,913,111 bytes (0.74 GB, decimal).
| Raw source | Files | Bytes | Coverage / limitation |
|---|---|---|---|
| Binance Vision spot 1h | 233 | 9,361,715 | BTC/ETH/SOL; intended 2020-01 through 2026-08, subject to listing availability |
| Vision spot 1m | 96 | 192,854,231 | 2024-01 through 2026-08 |
| Vision USDⓈ-M futures 1h | 232 | 8,460,526 | Futures price/volume archives, not all symbols or all market history |
| Vision fundingRate | 232 | 207,312 | Monthly funding archives |
| Vision futures metrics | 5,661 | 65,268,362 | Daily archives; monthly metrics do not exist |
| Vision aggTrades | 1 | 357,661,918 | BTCUSDT 2026-08 sample only |
| DefiLlama | 4 | 332,997 | Ethereum/Solana/Bitcoin chain TVL histories plus chain registry |
| GitHub commits | 112 | 55,116,730 | Partial pages for bitcoin/bitcoin, ethereum/go-ethereum, anza-xyz/agave |
| CMC quarterly PIT | 954 | 55,649,320 | 51 quarter-starts, 2014Q1–2026Q3; capped tails |
- CMC correction: the 2,500-entry cap begins at 2020Q3, not 2019Q4. The lake README’s older boundary is obsolete;
project-cards/notes/01-pit-backtest.mdrecords the correction. Historical pages can still omit delisted assets, and capped tails can make an asset disappear from a snapshot without ceasing to trade. - Intended ranges are not complete per-symbol coverage: the receipt lists 935 known-missing archives (912 metrics and 23 SOL pre-listing months). Daily metrics begin BTC 2020-09-01 and ETH/SOL 2021-12-01. Missing observations must not be invented.
- GitHub ingestion is quota-limited and resumable, not complete 2020–2026 history; a repository’s activity is not ecosystem-wide development. DefiLlama TVL is chain-level daily data, and one aggTrades month is not a general trade-history feed.
- Raw downloads are not a completed 24-column
Barsdataset. This lake does not supply the historical whale, exchange-netflow, active-address, SOPR/MVRV, liquidation, or other missing on-chain/alternative inputs needed to validate the synthetic sleeves. Public accessibility is not unrestricted redistribution permission; provider terms still apply.
Reproduce or extend from the lake repository
Check existing files against the manifest, without fetching data:
cd /Users/mbp/dev/research/auto/lake
python3 tools/lake.py verifyverify checks hashes/sizes, missing/changed files, and untracked files across the lake. It does not recalculate the aggregate byte census above or establish source completeness/licensing; its accepted --only flag does not actually filter verification, so the command deliberately omits it.
Acquisition/resumption is a separate, networked operation that updates files and manifest/run history:
python3 tools/lake.py fetch
python3 tools/lake.py fetch --only github_commitsBare fetch uses the full configured range, including metrics from 2020-09; the README’s --metrics-from 2026-08 example is a narrowing option, not that default. The second command resumes only GitHub collection. Do not call a full fetch a guaranteed zero-network rerun while those cursors remain incomplete.
Project cards and point-in-time ranking
Source: project-cards/notes/01-pit-backtest.md, recorded 2026-09-27; its horizon, split, and metric contract supersede the older method note.
| Recorded result | Value | Interpretation |
|---|---|---|
| PIT panel | 91,807 rows / 51 quarters | (as_of, cmc_id) observations from 2014-01-01 through 2026-07-01, not 91,807 distinct assets |
| Backtest scope | Top 500 at each snapshot; four-quarter horizon | TUNE 2015Q1–2020Q4 (24 quarters); VALIDATE 2021Q1–2025Q3 (19 quarters) |
| Top-500 disappearance labels | 2,649 | Snapshot absence at exact t+4, not verified economic deaths |
| VALIDATE rank IC | +0.061255 | Newey–West lag-3 t = 1.898, with overlapping four-quarter returns |
| Conservative VALIDATE rank IC | +0.101947 | Disappearance returns left missing rather than assigned −100%; different missing-data assumption |
| Exploratory age IC | +0.147 TUNE / +0.233 VALIDATE | Age is quarters since first snapshot appearance, not retrospective date_added |
| Top-decile forward-return median | −43.8466% | Ranking association is not a profitable strategy result |
- The pessimistic label assigns −100% when an initially positive-priced top-500 asset is absent at exact
t+4. It may still trade below the 2,500-entry capture cap; later reappearance does not change that horizon’s label. Missing/nonpositive prices have a separateno_pricestatus. - The note treats the roughly 1.9 Newey–West t-statistic as below its 5% significance bar. TUNE composite IC is about 0.009, and three of five frozen feature signs reverse out of sample. Age’s consistency is hypothesis-generating, not proof of quality, causality, or tradability.
- Ranking uses snapshot-derived age, rank momentum, volume/market-cap, circulating/max-supply, and small-tier features. Retroactive tags/platform/
date_addedand today’s repository links are not scored. Upstream historical survivorship and capped tails remain limitations. - PIT does not populate judgement, team, or audit fields. SENSE judgement requires source reading; SMELL fields such as
team_public,unlock_cliff_90d_pct,treasury_runway, andaudit_statusrequire external evidence. Historical DEV needs dated commit windows; pull-time stars/forks are not PIT. Top-100 enrichment in the note is a plan, not completed coverage.
Reproduce from the project-cards repository
cd /Users/mbp/dev/research/auto/project-cards
python3 -B pit/build_panel.py
bash autoresearch.shThe builder reconstructs pit/panel.csv from SHA-verified lake pages. The runner invokes backtest.py and prints the rank table, split summaries, and validation METRIC lines; it does not fill the qualitative card fields. These are rank-forward-return experiments, not an execution-costed portfolio or a profitable-strategy claim.
Simulator calibration
Source: market-signals/notes/05-calibration.md, recorded 2026-09-27; family 4 retains family 3’s process structure and calibrates ten parameters against real-market stylized facts.
| Delivered synthetic family | Distance to the real median profile |
|---|---|
| f1 | 4.863499 |
| f2 | 0.785897 |
| f3 | 0.550426 |
| f4 | 0.417712 |
- These are distances between per-fact median profiles, not trading returns. Delivered f4 improves on f3 by 24.1%; it does not meet the 30% reduction target. The search’s distinct three-seed mean-distance objective finished at 0.443892 versus target 0.385298, ending at the 40-evaluation limit.
- Calibration used the median profile of all seven real paths: BTC 2021–2025 and ETH/SOL 2024. This includes both the time-series TUNE and VALIDATE years; it is not an independent heldout real-market check. Calibration and delivered fixture seeds are now touched for family-4 selection.
- Better matched facts do not establish causal market realism. Jump intensity/size, 24-hour volatility clustering, drawdowns, and volume/return correlation retain structural mismatches. The separable whale lead-ins are inherited simulator structure, not evidence of real-world detectability.
The run16 book must be restored
Restored run-#16 book on synthetic fixtures4 | Median Sharpe | Worst path | Max drawdown |
|---|---|---|---|
| Flat costs | +1.644 | −0.459 | 0.077 |
| Realistic costs | −0.308 | −2.452 | 0.164 |
| Harsh costs | −2.736 | −4.957 | 0.268 |
- The quoted book is commit
3108547(runs #16 and #18): nine funded signals, total weight 22.0,VOL_TARGET=0.02. Flat is not frictionless: it charges the runner’s 10 bps turnover fee. - At the consolidation snapshot, HEAD uses the segment-5 real-tuned book:
ema_cross_slow=0.25,donchian_breakout=0.25,roc_momentum=2.0,VOL_TARGET=0.03. A plainharness/run.pyinvocation therefore scores a different book; the note records f4 flat −0.025 / realistic −0.532 for that book, not the historical table above. - Dataset labels are not generator identities. Synthetic
fixtures4is non-canonical and must be passed--family 3; the runner prints it asfamily3. The canonical real directoryfixtures_realprints asfamily4. With only syntheticfixtures4loaded,median_sharpe_family4isnan.
Reproduce from the market-signals repository
These are documented reproduction steps, not commands executed for this wiki consolidation. Generation overwrites the five synthetic CSVs; calibration runs the recorded deterministic search.
cd /Users/mbp/dev/research/auto/market-signals
python3 tools/facts_report.py --fixtures fixtures,fixtures2,fixtures3,fixtures_real --json
python3 -B harness/fixture_gen4.py
python3 -B harness/fixture_gen4.py --calibrateThe first command reproduces the f1–f3/real comparison only. tools/facts_report.py rejects the non-canonical fixtures4 basename; the delivered f4 distance above is recorded in the calibration note and was computed directly with harness.stylized_facts.
Save the following exact restoration snippet from the note as /tmp/run16.py. It changes module globals only, not tracked files. Every catalog member is explicit because omitted names otherwise receive weight 1.0.
import sys; sys.path.insert(0, '') # run from the repo root
from harness import ensemble as E
E.WEIGHTS = { # verbatim 3108547 (run #16/#18) book
'ema_cross_fast': 0.0, 'ema_cross_slow': 0.0, 'macd_hist': 0.5,
'rsi_mean_reversion': 0.0, 'bollinger_fade': 0.25, 'donchian_breakout': 0.0,
'vol_breakout': 0.0, 'adx_trend_strength': 0.25, 'volume_price_confirm': 0.0,
'roc_momentum': 0.0, 'zscore_reversion': 0.0, 'keltner_squeeze_break': 0.0,
'exchange_netflow_pressure': 0.0, 'whale_tx_spike': 5.0,
'whale_net_accum_trend': 0.0, 'active_addresses_momentum': 0.0,
'sopr_regime': 0.0, 'mvrv_zscore': 0.0, 'stablecoin_supply_growth': 2.0,
'funding_momentum': 0.0, 'oi_price_divergence': 0.0, 'oi_funding_squeeze': 0.0,
'dev_commit_trend': 5.0, 'shock_reversal': 0.0, 'shock_continuation': 3.0,
'whale_flow_composite': 3.0, 'whale_pump_frontrun': 3.0,
}
E.VOL_TARGET = 0.02 # VOL_WINDOW 24 / VOL_CAP 5.0 already match HEAD
assert abs(sum(E.WEIGHTS.values()) - 22.0) < 1e-9
from harness.run import main; main(sys.argv[1:])Then run from the same repository root:
python3 -B /tmp/run16.py --fixtures fixtures4 --family 3
python3 -B /tmp/run16.py --fixtures fixtures4 --family 3 --cost-sweep
python3 -B /tmp/run16.py --fixtures fixtures3 --family 3 --cost-sweepThe first command’s recorded median_path_sharpe is 1.643962; the second prints the f4 cost table without METRIC lines. The last is the note’s restoration cross-check: f3 median/worst/max-drawdown anchors are 4.353/2.863/0.070 flat, 2.627/0.858/0.090 realistic, and 0.638/−1.354/0.155 harsh.
Cross-sectional long-short ranks
Source: market-signals/xs/README.md, recorded 2026-09-27; this is a standalone real-perpetual panel experiment, not the time-series ensemble.
| Daily rank signal | Feature and direction |
|---|---|
momentum_30d | 720-hour return; long winners |
reversal_7d | Negative 168-hour return; long losers |
funding_fade | Negative seven-day funding average; short crowded longs |
oi_change | Seven-day OI ratio with real endpoints; long OI gainers |
volume_shock | Last-day volume relative to the prior 28 daily sums; long shocks |
low_vol | Negative 168-hour return volatility; long calm |
The shipped book uses fixed equal signal weights, inverse-volatility sizing, target gross 1.0 split equally long/short, and a 20% daily L1 turnover cap. Signal inputs precede the decision bar by a full hour; years start flat with a 720-hour warmup.
| Cost regime | TUNE 2022 | TUNE 2023 | VALIDATE 2024 | VALIDATE 2025 | Window summary |
|---|---|---|---|---|---|
| Realistic | −3.42 | −3.21 | −1.34 | −1.02 | Median TUNE −3.31; VALIDATE −1.18 |
| Cap-free frictionless diagnostic | −0.40 | −1.97 | +0.39 | +1.10 | Weak, inconsistent validation-only positives; not a tradable edge |
- Realistic costs include 10 bps fees, volatility-linked slippage (
0.5 ×causal prior-day volatility), actual funding-event carry, and 5 bps/day short borrow. All six standalone signals and the combined book are negative on both validation years under these costs. - The cap-free frictionless values came from throwaway diagnostic probes, not the shipped realistic-cost runner. Removing both costs and the turnover cap changes the experiment; its positive validation values do not rescue the strategy.
- The requested asset pool was selected ex post in 2026 and ranked within itself by realized 2024 quote volume. It is not a survivorship-free or globally ranked Binance top-20 universe. Twenty requested bases become 21 ticker histories because MATIC/POL are separate and never stitched.
- Per-symbol-year inclusion uses a retrospective full-year gap filter, including year boundaries; gaps over six hours exclude the entire symbol-year. Realized inclusion is 11/21 in 2022, 18/21 in 2023, 19/21 in 2024, and 20/21 in 2025. Universe construction has look-ahead even though signal/return calculations are causal.
- Fixed equal weights were not selected on validation returns, but that does not remove universe look-ahead. A separately measured TUNE-only weight search also failed to produce a positive TUNE vector and performed worse on validation; the shipped book remains equal-weighted.
Reproduce from the market-signals repository
cd /Users/mbp/dev/research/auto/market-signals
bash xs/autoresearch_xs.shThis rebuilds/verifies the offline panels from the sibling lake, runs the realistic-cost backtest, and writes xs/fixtures_xs/panel_<YEAR>.csv plus xs/fixtures_xs/results.json. The recorded primary metric is edge_score=7.729900 (10 plus the median combined yearly Sharpe), not a positive Sharpe; turnover is 0.183593 and gross exposure 0.761233.
Only when missing raw archives must be acquired:
python3 -B xs/panel.py --fetch--fetch makes network requests, extends the lake through its own Lake helper, rebuilds the OI cache, and writes xs/fixtures_xs/coverage.json. It is not necessary for reproduction with the complete local snapshot. The coverage receipt distinguishes real provider holes and missing OI from fabricated observations.