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

TrackLocal sourceEvidence dateWhat the evidence supports
Raw data lake/Users/mbp/dev/research/auto/lake/README.md2026-09-27A dated raw-source inventory, not complete signal inputs
Project cards / PIT ranking/Users/mbp/dev/research/auto/project-cards/notes/01-pit-backtest.md2026-09-27Snapshot-derived ranking hypotheses, not verified project quality or a profitable strategy
Simulator calibration/Users/mbp/dev/research/auto/market-signals/notes/05-calibration.md2026-09-27Closer 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.md2026-09-27A 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 sourceFilesBytesCoverage / limitation
Binance Vision spot 1h2339,361,715BTC/ETH/SOL; intended 2020-01 through 2026-08, subject to listing availability
Vision spot 1m96192,854,2312024-01 through 2026-08
Vision USDⓈ-M futures 1h2328,460,526Futures price/volume archives, not all symbols or all market history
Vision fundingRate232207,312Monthly funding archives
Vision futures metrics5,66165,268,362Daily archives; monthly metrics do not exist
Vision aggTrades1357,661,918BTCUSDT 2026-08 sample only
DefiLlama4332,997Ethereum/Solana/Bitcoin chain TVL histories plus chain registry
GitHub commits11255,116,730Partial pages for bitcoin/bitcoin, ethereum/go-ethereum, anza-xyz/agave
CMC quarterly PIT95455,649,32051 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.md records 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 Bars dataset. 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 verify

verify 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_commits

Bare 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 resultValueInterpretation
PIT panel91,807 rows / 51 quarters(as_of, cmc_id) observations from 2014-01-01 through 2026-07-01, not 91,807 distinct assets
Backtest scopeTop 500 at each snapshot; four-quarter horizonTUNE 2015Q1–2020Q4 (24 quarters); VALIDATE 2021Q1–2025Q3 (19 quarters)
Top-500 disappearance labels2,649Snapshot absence at exact t+4, not verified economic deaths
VALIDATE rank IC+0.061255Newey–West lag-3 t = 1.898, with overlapping four-quarter returns
Conservative VALIDATE rank IC+0.101947Disappearance returns left missing rather than assigned −100%; different missing-data assumption
Exploratory age IC+0.147 TUNE / +0.233 VALIDATEAge 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 separate no_price status.
  • 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_added and 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, and audit_status require 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.sh

The 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 familyDistance to the real median profile
f14.863499
f20.785897
f30.550426
f40.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 fixtures4Median SharpeWorst pathMax drawdown
Flat costs+1.644−0.4590.077
Realistic costs−0.308−2.4520.164
Harsh costs−2.736−4.9570.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 plain harness/run.py invocation 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 fixtures4 is non-canonical and must be passed --family 3; the runner prints it as family3. The canonical real directory fixtures_real prints as family4. With only synthetic fixtures4 loaded, median_sharpe_family4 is nan.

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 --calibrate

The 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-sweep

The 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 signalFeature and direction
momentum_30d720-hour return; long winners
reversal_7dNegative 168-hour return; long losers
funding_fadeNegative seven-day funding average; short crowded longs
oi_changeSeven-day OI ratio with real endpoints; long OI gainers
volume_shockLast-day volume relative to the prior 28 daily sums; long shocks
low_volNegative 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 regimeTUNE 2022TUNE 2023VALIDATE 2024VALIDATE 2025Window summary
Realistic−3.42−3.21−1.34−1.02Median TUNE −3.31; VALIDATE −1.18
Cap-free frictionless diagnostic−0.40−1.97+0.39+1.10Weak, 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.sh

This 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.