{
  "schema_version": "1.0",
  "generated_at": "2026-09-30T11:47:11+07:00",
  "status": "FAIL",
  "data_lineage": {
    "snapshot": "trend_break_history/YYYY-MM-DD.json",
    "outcome": "trend_break_outcomes.json (TradingView D+1/D+3)",
    "discovery": "trend_break_backtest.json (Yahoo daily OHLC)",
    "dataset": "trend_break_learning_dataset.json"
  },
  "integrity": {
    "status": "FAIL",
    "files": 2,
    "errors": 3,
    "warnings": 0,
    "issues": [
      {
        "severity": "ERROR",
        "date": "2026-09-07",
        "code": "ARCHIVE_HASH"
      },
      {
        "severity": "ERROR",
        "date": "2026-09-07",
        "timestamp": "2026-09-07T20:23:49+07:00",
        "code": "SNAPSHOT_HASH"
      },
      {
        "severity": "ERROR",
        "date": "2026-09-07",
        "timestamp": "2026-09-07T20:31:45+07:00",
        "code": "SNAPSHOT_HASH"
      }
    ]
  },
  "dataset": {
    "forward_records": 11,
    "forward_live_records": 2,
    "forward_d1_labeled_records": 0,
    "forward_d3_labeled_records": 0,
    "forward_live_pending_records": 2,
    "forward_live_dates": 1,
    "outcome_duplicate_count": 0,
    "d1_outcome_coverage_pct": 0.0
  },
  "overall": {
    "discovery_backtest": {
      "samples": 140,
      "days": 63,
      "wins": 38,
      "losses": 102,
      "winrate_pct": 27.1,
      "net_winrate_pct": 27.1,
      "avg_outcome_pct": 0.5542,
      "net_expectancy_pct": 0.2542,
      "wilson_low_pct": 20.5
    },
    "forward_out_of_sample": {
      "samples": 0,
      "days": 0,
      "wins": 0,
      "losses": 0,
      "winrate_pct": null,
      "net_winrate_pct": null,
      "avg_outcome_pct": null,
      "net_expectancy_pct": null,
      "wilson_low_pct": null
    }
  },
  "feature_quality": {
    "eligible_live_records": 2,
    "required_feature_count": 26,
    "complete_live_records": 2,
    "complete_live_pct": 100.0,
    "coverage_pct_by_feature": {
      "rsi_1d": 100.0,
      "adx_1d": 100.0,
      "di_spread_1d": 100.0,
      "atr_pct_1d": 100.0,
      "vwap_distance_pct": 100.0,
      "macd_gap_pct": 100.0,
      "sma20_distance_pct": 100.0,
      "sma50_distance_pct": 100.0,
      "perf_week_pct": 100.0,
      "perf_month_pct": 100.0,
      "perf_3m_pct": 100.0,
      "break_margin_pct": 100.0,
      "dist_sma50_pct": 100.0,
      "close_position_pct": 100.0,
      "body_to_range_pct": 100.0,
      "upper_wick_pct": 100.0,
      "volume_ratio_daily": 100.0,
      "volume_ratio_intraday": 100.0,
      "value_traded": 100.0,
      "prior_downtrend": 100.0,
      "downtrend_proxy": 100.0,
      "signal_class": 100.0,
      "ihsg_change_pct": 100.0,
      "ihsg_rsi_1d": 100.0,
      "ihsg_adx_1d": 100.0,
      "ihsg_regime": 100.0
    },
    "missing_features": []
  },
  "recipes": [
    {
      "id": "confirm_pilot",
      "label": "CONFIRM daily",
      "stage": "PILOT",
      "discovery_backtest": {
        "samples": 68,
        "days": 41,
        "wins": 24,
        "losses": 44,
        "winrate_pct": 35.3,
        "net_winrate_pct": 35.3,
        "avg_outcome_pct": 1.639,
        "net_expectancy_pct": 1.339,
        "wilson_low_pct": 25.0
      },
      "forward_out_of_sample": {
        "samples": 0,
        "days": 0,
        "wins": 0,
        "losses": 0,
        "winrate_pct": null,
        "net_winrate_pct": null,
        "avg_outcome_pct": null,
        "net_expectancy_pct": null,
        "wilson_low_pct": null
      },
      "promotion_gate": {
        "eligible": false,
        "checks": {
          "samples": false,
          "days": false,
          "winrate": false,
          "net_expectancy": false,
          "wilson_low": false
        },
        "requirements": {
          "minimum_samples": 30,
          "minimum_days": 15,
          "minimum_winrate_pct": 55.0,
          "minimum_net_expectancy_pct": 0.3,
          "minimum_wilson_low_pct": 40.0
        }
      }
    },
    {
      "id": "quality_reset",
      "label": "Confirm + trend reset quality",
      "stage": "PILOT",
      "discovery_backtest": {
        "samples": 0,
        "days": 0,
        "wins": 0,
        "losses": 0,
        "winrate_pct": null,
        "net_winrate_pct": null,
        "avg_outcome_pct": null,
        "net_expectancy_pct": null,
        "wilson_low_pct": null
      },
      "forward_out_of_sample": {
        "samples": 0,
        "days": 0,
        "wins": 0,
        "losses": 0,
        "winrate_pct": null,
        "net_winrate_pct": null,
        "avg_outcome_pct": null,
        "net_expectancy_pct": null,
        "wilson_low_pct": null
      },
      "promotion_gate": {
        "eligible": false,
        "checks": {
          "samples": false,
          "days": false,
          "winrate": false,
          "net_expectancy": false,
          "wilson_low": false
        },
        "requirements": {
          "minimum_samples": 30,
          "minimum_days": 15,
          "minimum_winrate_pct": 60.0,
          "minimum_net_expectancy_pct": 0.3,
          "minimum_wilson_low_pct": 45.0
        }
      }
    },
    {
      "id": "high_wr_lab",
      "label": "High-WR pre-registered confluence",
      "stage": "LAB",
      "discovery_backtest": {
        "samples": 0,
        "days": 0,
        "wins": 0,
        "losses": 0,
        "winrate_pct": null,
        "net_winrate_pct": null,
        "avg_outcome_pct": null,
        "net_expectancy_pct": null,
        "wilson_low_pct": null
      },
      "forward_out_of_sample": {
        "samples": 0,
        "days": 0,
        "wins": 0,
        "losses": 0,
        "winrate_pct": null,
        "net_winrate_pct": null,
        "avg_outcome_pct": null,
        "net_expectancy_pct": null,
        "wilson_low_pct": null
      },
      "promotion_gate": {
        "eligible": false,
        "checks": {
          "samples": false,
          "days": false,
          "winrate": false,
          "net_expectancy": false,
          "wilson_low": false
        },
        "requirements": {
          "minimum_samples": 30,
          "minimum_days": 15,
          "minimum_winrate_pct": 85.0,
          "minimum_net_expectancy_pct": 0.3,
          "minimum_wilson_low_pct": 65.0
        }
      }
    }
  ],
  "learning_readiness": {
    "status": "COLLECTING",
    "ready": false,
    "eligible_recipes": [],
    "message": "Belum ada recipe yang lolos; kumpulkan snapshot LIVE dan outcome D+1."
  },
  "leakage_guards": [
    "Satu unit learning per ticker per tanggal.",
    "Fitur dibekukan pada snapshot LIVE pertama.",
    "PREMARKET/BREAK/CLOSED tidak masuk promotion gate.",
    "Outcome D+1/D+3 berasal dari sesi setelah tanggal deteksi.",
    "Backtest hanya discovery; kelulusan wajib forward out-of-sample.",
    "High-WR lab menuntut WR >=85%, bukan memaksakan angka 85%."
  ],
  "warning": "Trend Break adalah screening daily. Win rate tidak mengubah kandidat menjadi SIAP ENTRY tanpa PA 1D/1H/15m dan trigger candle 5m valid."
}