{
  "candidate_episode_rows": 4600,
  "data_scope": {
    "assets": [
      "BTC",
      "ETH",
      "SOL"
    ],
    "end_exclusive": "2026-07-28T00:00:00+00:00",
    "endpoint": "https://api.binance.com/api/v3/klines",
    "interval": "1h",
    "label": "research_only",
    "source": "Binance public spot klines",
    "start": "2024-01-01T00:00:00+00:00"
  },
  "figures": [
    "../figures/pattern-input-coverage.svg",
    "../figures/research-emit-market-context.svg",
    "../figures/runtime-lanes.svg",
    "../figures/tsmom-episode-economics.svg",
    "../figures/tsmom-information-coefficient.svg",
    "../figures/vic-historical-candidates.svg"
  ],
  "generated_at": "2026-07-28T15:34:23.686417+00:00",
  "methodology": {
    "bootstrap_resamples": 2000,
    "cost_proxy": "Binance spot 20 bps round-trip taker fees + 2 bps fallback spread + two square-root impact legs at USD 10,000",
    "episode": "first candidate bar after non-candidate state or direction change",
    "forward_return": "close-to-close diagnostic; not the governed 1m fill label",
    "score": "exact siglab TSMOM feature and detector score"
  },
  "pattern_summaries": [
    {
      "asset": "BTC",
      "catalog_entry_id": "trend_ma_structure",
      "current_state": "mixed_structure",
      "evaluable_bars": 1951,
      "state_counts": {
        "bearish_structure": 430,
        "bullish_structure": 323,
        "flat_structure": 975,
        "insufficient_data": 49,
        "mixed_structure": 223
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "donchian_breakout",
      "current_state": "breakout_down",
      "evaluable_bars": 1980,
      "state_counts": {
        "breakout_down": 104,
        "breakout_up": 72,
        "inside_prior_range": 1804,
        "insufficient_data": 20
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "support_resistance",
      "current_state": "near_support",
      "evaluable_bars": 1951,
      "state_counts": {
        "between_zones": 1472,
        "insufficient_data": 49,
        "near_resistance": 252,
        "near_support": 227
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "realized_volatility_atr",
      "current_state": "volatility_expanding",
      "evaluable_bars": 1981,
      "state_counts": {
        "insufficient_data": 19,
        "volatility_contained": 975,
        "volatility_expanding": 1006
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "bb_squeeze",
      "current_state": "expansion",
      "evaluable_bars": 1881,
      "state_counts": {
        "compression": 366,
        "expansion": 344,
        "insufficient_data": 119,
        "normal_range": 1171
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "relative_volume",
      "current_state": "volume_expansion",
      "evaluable_bars": 1980,
      "state_counts": {
        "insufficient_data": 20,
        "typical_volume": 1014,
        "volume_contraction": 475,
        "volume_expansion": 491
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "rsi_macd",
      "current_state": "rsi_oversold",
      "evaluable_bars": 1827,
      "state_counts": {
        "insufficient_data": 173,
        "macd_above_signal": 730,
        "macd_below_signal": 643,
        "rsi_overbought": 195,
        "rsi_oversold": 259
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "candlestick",
      "current_state": "bearish_body",
      "evaluable_bars": 2000,
      "state_counts": {
        "bearish_body": 614,
        "bearish_engulfing": 193,
        "bullish_body": 597,
        "bullish_engulfing": 170,
        "doji": 233,
        "long_lower_wick": 101,
        "long_upper_wick": 92
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "cross_venue_breadth",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "funding_oi_crowding",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "BTC",
      "catalog_entry_id": "liquidity_spread_deterioration",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "trend_ma_structure",
      "current_state": "mixed_structure",
      "evaluable_bars": 1951,
      "state_counts": {
        "bearish_structure": 464,
        "bullish_structure": 372,
        "flat_structure": 782,
        "insufficient_data": 49,
        "mixed_structure": 333
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "donchian_breakout",
      "current_state": "inside_prior_range",
      "evaluable_bars": 1980,
      "state_counts": {
        "breakout_down": 75,
        "breakout_up": 73,
        "inside_prior_range": 1832,
        "insufficient_data": 20
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "support_resistance",
      "current_state": "between_zones",
      "evaluable_bars": 1951,
      "state_counts": {
        "between_zones": 1727,
        "insufficient_data": 49,
        "near_resistance": 118,
        "near_support": 106
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "realized_volatility_atr",
      "current_state": "volatility_expanding",
      "evaluable_bars": 1981,
      "state_counts": {
        "insufficient_data": 19,
        "volatility_contained": 999,
        "volatility_expanding": 982
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "bb_squeeze",
      "current_state": "expansion",
      "evaluable_bars": 1881,
      "state_counts": {
        "compression": 377,
        "expansion": 363,
        "insufficient_data": 119,
        "normal_range": 1141
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "relative_volume",
      "current_state": "volume_expansion",
      "evaluable_bars": 1980,
      "state_counts": {
        "insufficient_data": 20,
        "typical_volume": 915,
        "volume_contraction": 497,
        "volume_expansion": 568
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "rsi_macd",
      "current_state": "rsi_oversold",
      "evaluable_bars": 1827,
      "state_counts": {
        "insufficient_data": 173,
        "macd_above_signal": 675,
        "macd_below_signal": 655,
        "rsi_overbought": 250,
        "rsi_oversold": 247
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "candlestick",
      "current_state": "doji",
      "evaluable_bars": 2000,
      "state_counts": {
        "bearish_body": 593,
        "bearish_engulfing": 212,
        "bullish_body": 577,
        "bullish_engulfing": 200,
        "doji": 218,
        "long_lower_wick": 97,
        "long_upper_wick": 103
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "cross_venue_breadth",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "funding_oi_crowding",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "ETH",
      "catalog_entry_id": "liquidity_spread_deterioration",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "trend_ma_structure",
      "current_state": "mixed_structure",
      "evaluable_bars": 1951,
      "state_counts": {
        "bearish_structure": 519,
        "bullish_structure": 409,
        "flat_structure": 638,
        "insufficient_data": 49,
        "mixed_structure": 385
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "donchian_breakout",
      "current_state": "inside_prior_range",
      "evaluable_bars": 1980,
      "state_counts": {
        "breakout_down": 83,
        "breakout_up": 73,
        "inside_prior_range": 1824,
        "insufficient_data": 20
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "support_resistance",
      "current_state": "between_zones",
      "evaluable_bars": 1951,
      "state_counts": {
        "between_zones": 1730,
        "insufficient_data": 49,
        "near_resistance": 108,
        "near_support": 113
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "realized_volatility_atr",
      "current_state": "volatility_expanding",
      "evaluable_bars": 1981,
      "state_counts": {
        "insufficient_data": 19,
        "volatility_contained": 1013,
        "volatility_expanding": 968
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "bb_squeeze",
      "current_state": "expansion",
      "evaluable_bars": 1881,
      "state_counts": {
        "compression": 359,
        "expansion": 324,
        "insufficient_data": 119,
        "normal_range": 1198
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "relative_volume",
      "current_state": "volume_expansion",
      "evaluable_bars": 1980,
      "state_counts": {
        "insufficient_data": 20,
        "typical_volume": 1050,
        "volume_contraction": 426,
        "volume_expansion": 504
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "rsi_macd",
      "current_state": "rsi_oversold",
      "evaluable_bars": 1827,
      "state_counts": {
        "insufficient_data": 173,
        "macd_above_signal": 685,
        "macd_below_signal": 690,
        "rsi_overbought": 212,
        "rsi_oversold": 240
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "candlestick",
      "current_state": "bullish_body",
      "evaluable_bars": 2000,
      "state_counts": {
        "bearish_body": 579,
        "bearish_engulfing": 194,
        "bullish_body": 639,
        "bullish_engulfing": 165,
        "doji": 220,
        "long_lower_wick": 113,
        "long_upper_wick": 90
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "cross_venue_breadth",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "funding_oi_crowding",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    },
    {
      "asset": "SOL",
      "catalog_entry_id": "liquidity_spread_deterioration",
      "current_state": "insufficient_data",
      "evaluable_bars": 0,
      "state_counts": {
        "insufficient_data": 2000
      },
      "status": "visual_only"
    }
  ],
  "public_artifacts": {
    "candidate_episodes": "tsmom_candidate_episodes.parquet",
    "runtime_evidence": "runtime-evidence-2026-07-28.json",
    "vic_historical_candidates": "vic_historical_emit_candidates.parquet"
  },
  "schema_version": "siglab.methodology-experiment.v1",
  "snapshots": [
    {
      "asset": "BTC",
      "canonical_sha256": "8f5deff239a45866826011f809ebafc49958ee45528eeffd2c5599caeffd7500",
      "end_exclusive": "2026-07-28T00:00:00+00:00",
      "first_open_ts": "2024-01-01T00:00:00+00:00",
      "interval": "1h",
      "last_bar_ts": "2026-07-28T00:00:00+00:00",
      "retrieved_at": "2026-07-28T14:10:49.638785+00:00",
      "rows": 22536,
      "source_url": "https://api.binance.com/api/v3/klines",
      "start": "2024-01-01T00:00:00+00:00",
      "symbol": "BTCUSDT"
    },
    {
      "asset": "ETH",
      "canonical_sha256": "938ee103d8440ceb2c344ee3d4c5d350d379ef58b14848e50b4cc43101cbb0cb",
      "end_exclusive": "2026-07-28T00:00:00+00:00",
      "first_open_ts": "2024-01-01T00:00:00+00:00",
      "interval": "1h",
      "last_bar_ts": "2026-07-28T00:00:00+00:00",
      "retrieved_at": "2026-07-28T14:10:54.046406+00:00",
      "rows": 22536,
      "source_url": "https://api.binance.com/api/v3/klines",
      "start": "2024-01-01T00:00:00+00:00",
      "symbol": "ETHUSDT"
    },
    {
      "asset": "SOL",
      "canonical_sha256": "d5fb8c9c636d0fdbd8f192c2f95d83af108f04c47b811c082da98e8c67ace075",
      "end_exclusive": "2026-07-28T00:00:00+00:00",
      "first_open_ts": "2024-01-01T00:00:00+00:00",
      "interval": "1h",
      "last_bar_ts": "2026-07-28T00:00:00+00:00",
      "retrieved_at": "2026-07-28T14:10:57.982239+00:00",
      "rows": 22536,
      "source_url": "https://api.binance.com/api/v3/klines",
      "start": "2024-01-01T00:00:00+00:00",
      "symbol": "SOLUSDT"
    }
  ],
  "summaries": [
    {
      "asset": "BTC",
      "bootstrap_block_length": 18,
      "candidate_bars": 2723,
      "candidate_episodes": 398,
      "episode_hit_rate": 0.4849246231155779,
      "evaluations": 5448,
      "horizon_h": 24,
      "mean_episode_net_return_bps": -36.128219370566825,
      "mean_episode_signed_return_bps": -13.094185031805516,
      "median_cost_bps": 22.9461139137154,
      "net_return_hac_t": -2.82932924226321,
      "pearson_ci_high": 0.09695433241129475,
      "pearson_ci_low": -0.03828177542555563,
      "pearson_ic": 0.028015884178937918,
      "policy_id": "tsmom.24h.majors",
      "spearman_ic": 0.003817481298686262
    },
    {
      "asset": "BTC",
      "bootstrap_block_length": 28,
      "candidate_bars": 10965,
      "candidate_episodes": 759,
      "episode_hit_rate": 0.45454545454545453,
      "evaluations": 21812,
      "horizon_h": 4,
      "mean_episode_net_return_bps": -26.198757813268195,
      "mean_episode_signed_return_bps": -3.1610779773708035,
      "median_cost_bps": 22.953729270503526,
      "net_return_hac_t": -6.576181193652045,
      "pearson_ci_high": 0.03553996900909779,
      "pearson_ci_low": -0.025655391525355224,
      "pearson_ic": 0.005697387326791159,
      "policy_id": "tsmom.4h.majors",
      "spearman_ic": -0.019784625206797496
    },
    {
      "asset": "BTC",
      "bootstrap_block_length": 18,
      "candidate_bars": 2720,
      "candidate_episodes": 395,
      "episode_hit_rate": 0.5037974683544304,
      "evaluations": 5436,
      "horizon_h": 72,
      "mean_episode_net_return_bps": -10.645493727272715,
      "mean_episode_signed_return_bps": 12.391359643764043,
      "median_cost_bps": 22.948637885441496,
      "net_return_hac_t": -0.4954241443699629,
      "pearson_ci_high": 0.13761356461405386,
      "pearson_ci_low": -0.055026680927073225,
      "pearson_ic": 0.04865504681134453,
      "policy_id": "tsmom.72h.majors",
      "spearman_ic": 0.015871770072677722
    },
    {
      "asset": "ETH",
      "bootstrap_block_length": 18,
      "candidate_bars": 2837,
      "candidate_episodes": 371,
      "episode_hit_rate": 0.4501347708894879,
      "evaluations": 5448,
      "horizon_h": 24,
      "mean_episode_net_return_bps": -25.29413763160818,
      "mean_episode_signed_return_bps": -1.4000091139097408,
      "median_cost_bps": 23.778737507215432,
      "net_return_hac_t": -1.4257262471974061,
      "pearson_ci_high": 0.11006234266972775,
      "pearson_ci_low": -0.01947953508587178,
      "pearson_ic": 0.04694851946525913,
      "policy_id": "tsmom.24h.majors",
      "spearman_ic": 0.008700845436548497
    },
    {
      "asset": "ETH",
      "bootstrap_block_length": 28,
      "candidate_bars": 11376,
      "candidate_episodes": 728,
      "episode_hit_rate": 0.4519230769230769,
      "evaluations": 21812,
      "horizon_h": 4,
      "mean_episode_net_return_bps": -28.659677906768657,
      "mean_episode_signed_return_bps": -4.746828210144714,
      "median_cost_bps": 23.779953631786157,
      "net_return_hac_t": -4.513004031598785,
      "pearson_ci_high": 0.04725656648506887,
      "pearson_ci_low": -0.01201373605706493,
      "pearson_ic": 0.0170587513922218,
      "policy_id": "tsmom.4h.majors",
      "spearman_ic": -0.012456810965556495
    },
    {
      "asset": "ETH",
      "bootstrap_block_length": 18,
      "candidate_bars": 2831,
      "candidate_episodes": 370,
      "episode_hit_rate": 0.4837837837837838,
      "evaluations": 5436,
      "horizon_h": 72,
      "mean_episode_net_return_bps": 19.728711685391218,
      "mean_episode_signed_return_bps": 43.624547839123665,
      "median_cost_bps": 23.781561294523954,
      "net_return_hac_t": 0.4801766408202043,
      "pearson_ci_high": 0.14117527547768524,
      "pearson_ci_low": -0.034395231275268244,
      "pearson_ic": 0.05947620156081082,
      "policy_id": "tsmom.72h.majors",
      "spearman_ic": 0.01634065917233353
    },
    {
      "asset": "SOL",
      "bootstrap_block_length": 18,
      "candidate_bars": 2727,
      "candidate_episodes": 391,
      "episode_hit_rate": 0.47058823529411764,
      "evaluations": 5448,
      "horizon_h": 24,
      "mean_episode_net_return_bps": -13.999599354872059,
      "mean_episode_signed_return_bps": 11.446155009845526,
      "median_cost_bps": 25.2405134720129,
      "net_return_hac_t": -0.6552081370980835,
      "pearson_ci_high": 0.05546120352370885,
      "pearson_ci_low": -0.06708781501601717,
      "pearson_ic": -0.007781168248683963,
      "policy_id": "tsmom.24h.majors",
      "spearman_ic": -0.011269688698747091
    },
    {
      "asset": "SOL",
      "bootstrap_block_length": 28,
      "candidate_bars": 10950,
      "candidate_episodes": 798,
      "episode_hit_rate": 0.487468671679198,
      "evaluations": 21812,
      "horizon_h": 4,
      "mean_episode_net_return_bps": -24.994718040301745,
      "mean_episode_signed_return_bps": 0.44543295210307915,
      "median_cost_bps": 25.234959113921974,
      "net_return_hac_t": -3.956942554321304,
      "pearson_ci_high": 0.023843717642504442,
      "pearson_ci_low": -0.03044646186787068,
      "pearson_ic": -0.0030652630700512733,
      "policy_id": "tsmom.4h.majors",
      "spearman_ic": -0.01924564083944633
    },
    {
      "asset": "SOL",
      "bootstrap_block_length": 18,
      "candidate_bars": 2723,
      "candidate_episodes": 390,
      "episode_hit_rate": 0.4641025641025641,
      "evaluations": 5436,
      "horizon_h": 72,
      "mean_episode_net_return_bps": -46.39382854617226,
      "mean_episode_signed_return_bps": -20.946869246069213,
      "median_cost_bps": 25.2412219878766,
      "net_return_hac_t": -1.0388823110248553,
      "pearson_ci_high": 0.061030684884209895,
      "pearson_ci_low": -0.10989314649082627,
      "pearson_ic": -0.02069927174051757,
      "policy_id": "tsmom.72h.majors",
      "spearman_ic": -0.033774625382179235
    }
  ],
  "vic_historical_emit_candidate_rows": 132,
  "vic_summaries": [
    {
      "asset": "BTC",
      "confirmed_candidates": 4,
      "continuation_signals": 36,
      "down_candidates": 18,
      "evaluable_bars": 22426,
      "fresh_alarms": 225,
      "historical_emit_candidates": 36,
      "mean_utility_2x_bps": 0.9594046924010895,
      "provisional_candidates": 32,
      "up_candidates": 18
    },
    {
      "asset": "ETH",
      "confirmed_candidates": 29,
      "continuation_signals": 62,
      "down_candidates": 18,
      "evaluable_bars": 22426,
      "fresh_alarms": 210,
      "historical_emit_candidates": 62,
      "mean_utility_2x_bps": 3.4474086934350936,
      "provisional_candidates": 33,
      "up_candidates": 44
    },
    {
      "asset": "SOL",
      "confirmed_candidates": 7,
      "continuation_signals": 34,
      "down_candidates": 15,
      "evaluable_bars": 22426,
      "fresh_alarms": 165,
      "historical_emit_candidates": 34,
      "mean_utility_2x_bps": 6.177499509943024,
      "provisional_candidates": 27,
      "up_candidates": 19
    }
  ]
}
