{
  "schema_version": "0.7-stock-saturation",
  "model_version": "0.7-stock-saturation",
  "generated_at": "2026-05-26T15:29:28.275006+00:00",
  "data_as_of": "2026-04-30",
  "data_quality": {
    "generated_at": "2026-05-26T15:29:28.275006+00:00",
    "data_as_of": "2026-04-30",
    "vintage_type": "current_vintage",
    "stale_series_count": 0,
    "forward_filled_count": 40,
    "missing_required_series_count": 0,
    "series_count": 40
  },
  "latest_four_factor": {
    "date": "2026-04-30",
    "regime": "Elevated",
    "tail_band": "Elevated",
    "four_bucket_regime": "High risk",
    "equal_score": 0.64,
    "score_percentile": 83.1,
    "breadth_percentile": 92.1,
    "primary_percentile": 85.4,
    "primary_decile": 9,
    "primary_bucket": "D9",
    "primary_score_weight": 0.75,
    "primary_breadth_weight": 0.25,
    "equal_score_threshold": 0.37,
    "equal_score_p85_threshold": 0.66,
    "equal_score_p90_threshold": 0.79,
    "high_score": true,
    "p85_score": false,
    "p90_score": false,
    "flag_count": 2.0,
    "factor_count": 4,
    "factors": [
      {
        "key": "valuation",
        "label": "Synthetic ERP",
        "score": 1.32,
        "threshold": 1.16,
        "flag": true
      },
      {
        "key": "baa_tightness",
        "label": "Baa tightness",
        "score": 0.85,
        "threshold": 1.14,
        "flag": false
      },
      {
        "key": "broad_stock_saturation",
        "label": "Broad stock saturation",
        "score": -0.89,
        "threshold": 0.58,
        "flag": false
      },
      {
        "key": "broker_customer_leverage",
        "label": "Broker-customer leverage",
        "score": 1.28,
        "threshold": 0.68,
        "flag": true
      }
    ],
    "valuation_z": 1.32,
    "valuation_flag": true,
    "synthetic_erp_pct": 3.99,
    "baa_tightness_z": 0.85,
    "baa_tightness_flag": false,
    "broad_stock_saturation_z": -0.89,
    "broad_stock_saturation_flag": false,
    "relative_excess_saturation_z": -0.89,
    "relative_excess_saturation_flag": false,
    "prior_nonbroker_easing_pressure_z": -0.63,
    "broker_customer_leverage_z": 1.28,
    "broker_customer_leverage_flag": true,
    "broker_customer_bridge_ratio": 1.0458,
    "broker_customer_finra_growth_z": 1.76,
    "broker_customer_receivables_growth_z": 0.84,
    "broker_customer_receivables_to_gdp_z": 1.25
  },
  "four_factor_validation": {
    "schema_version": "0.7-four-factor-stock-saturation-model",
    "definition": {
      "factors": [
        "-rolling_z(synthetic Damodaran-style ERP)",
        "-rolling_z(Baa spread)",
        "rolling_z(stock-only broad non-broker saturation)",
        "Composite B: broker-customer leverage saturation"
      ],
      "score": "equal-weight average of the four factor z-scores",
      "primary_rank_model": "75% four-factor score percentile + 25% breadth percentile, then mapped to equal-sized historical deciles",
      "factor_flag": "factor >= live prior 80th percentile, after 100 prior strict-filter observations",
      "score_thresholds": {
        "high": "score >= live prior 67th percentile",
        "very_high": "score >= live prior 85th percentile",
        "extreme": "score >= live prior 90th percentile"
      },
      "tail_bands": {
        "Normal": "0 flags and score below high threshold",
        "Watch": "1 flag or high score",
        "Elevated": "2 flags, or 1 flag plus high score",
        "High risk": "3 flags, or 2 flags plus very-high score",
        "Extreme": "4 flags, or 3+ flags plus extreme score"
      },
      "strict_filter": "Signals are evaluated before major market damage: Nasdaq not already down >10%, trailing 3m return better than -10%, credit stress and market fragility not already high."
    },
    "latest_state": {
      "date": "2026-04-30",
      "regime": "Elevated",
      "tail_band": "Elevated",
      "four_bucket_regime": "High risk",
      "equal_score": 0.64,
      "score_percentile": 83.1,
      "breadth_percentile": 92.1,
      "primary_percentile": 85.4,
      "primary_decile": 9,
      "primary_bucket": "D9",
      "primary_score_weight": 0.75,
      "primary_breadth_weight": 0.25,
      "equal_score_threshold": 0.37,
      "equal_score_p85_threshold": 0.66,
      "equal_score_p90_threshold": 0.79,
      "high_score": true,
      "p85_score": false,
      "p90_score": false,
      "flag_count": 2.0,
      "factor_count": 4,
      "factors": [
        {
          "key": "valuation",
          "label": "Synthetic ERP",
          "score": 1.32,
          "threshold": 1.16,
          "flag": true
        },
        {
          "key": "baa_tightness",
          "label": "Baa tightness",
          "score": 0.85,
          "threshold": 1.14,
          "flag": false
        },
        {
          "key": "broad_stock_saturation",
          "label": "Broad stock saturation",
          "score": -0.89,
          "threshold": 0.58,
          "flag": false
        },
        {
          "key": "broker_customer_leverage",
          "label": "Broker-customer leverage",
          "score": 1.28,
          "threshold": 0.68,
          "flag": true
        }
      ],
      "valuation_z": 1.32,
      "valuation_flag": true,
      "synthetic_erp_pct": 3.99,
      "baa_tightness_z": 0.85,
      "baa_tightness_flag": false,
      "broad_stock_saturation_z": -0.89,
      "broad_stock_saturation_flag": false,
      "relative_excess_saturation_z": -0.89,
      "relative_excess_saturation_flag": false,
      "prior_nonbroker_easing_pressure_z": -0.63,
      "broker_customer_leverage_z": 1.28,
      "broker_customer_leverage_flag": true,
      "broker_customer_bridge_ratio": 1.0458,
      "broker_customer_finra_growth_z": 1.76,
      "broker_customer_receivables_growth_z": 0.84,
      "broker_customer_receivables_to_gdp_z": 1.25
    },
    "factor_rows": [
      {
        "factor": "Synthetic ERP",
        "months": 204,
        "flagged_months": 29,
        "flagged_share_pct": 14.2,
        "dd10_12m_flagged_rate_pct": 44.8,
        "dd10_12m_lift": 2.18,
        "dd10_12m_auc": 0.67,
        "loss10_12m_flagged_rate_pct": 31.0,
        "loss10_12m_lift": 5.76,
        "loss10_12m_auc": 0.89,
        "loss0_12m_flagged_rate_pct": 37.9,
        "loss0_12m_lift": 2.34,
        "loss0_12m_auc": 0.54
      },
      {
        "factor": "Baa tightness",
        "months": 204,
        "flagged_months": 52,
        "flagged_share_pct": 25.5,
        "dd10_12m_flagged_rate_pct": 42.3,
        "dd10_12m_lift": 2.05,
        "dd10_12m_auc": 0.67,
        "loss10_12m_flagged_rate_pct": 17.3,
        "loss10_12m_lift": 3.21,
        "loss10_12m_auc": 0.82,
        "loss0_12m_flagged_rate_pct": 30.8,
        "loss0_12m_lift": 1.9,
        "loss0_12m_auc": 0.67
      },
      {
        "factor": "Broad stock saturation",
        "months": 204,
        "flagged_months": 77,
        "flagged_share_pct": 37.7,
        "dd10_12m_flagged_rate_pct": 23.4,
        "dd10_12m_lift": 1.14,
        "dd10_12m_auc": 0.57,
        "loss10_12m_flagged_rate_pct": 9.1,
        "loss10_12m_lift": 1.69,
        "loss10_12m_auc": 0.8,
        "loss0_12m_flagged_rate_pct": 23.4,
        "loss0_12m_lift": 1.45,
        "loss0_12m_auc": 0.68
      },
      {
        "factor": "Broker-customer leverage",
        "months": 204,
        "flagged_months": 22,
        "flagged_share_pct": 10.8,
        "dd10_12m_flagged_rate_pct": 63.6,
        "dd10_12m_lift": 3.09,
        "dd10_12m_auc": 0.75,
        "loss10_12m_flagged_rate_pct": 45.5,
        "loss10_12m_lift": 8.43,
        "loss10_12m_auc": 0.96,
        "loss0_12m_flagged_rate_pct": 54.5,
        "loss0_12m_lift": 3.37,
        "loss0_12m_auc": 0.78
      }
    ],
    "regime_rows": [
      {
        "asset": "NASDAQ",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 14.3,
        "avg_12m_realized_vol_pct": 13.5,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -2.4,
        "dd10_6m_rate_pct": 10.1,
        "dd10_12m_rate_pct": 13.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 9.0,
        "dual_score": 6.7,
        "regime": "Normal",
        "share_pct": 43.6
      },
      {
        "asset": "SP500",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 10.9,
        "avg_12m_realized_vol_pct": 10.3,
        "avg_6m_max_drawdown_pct": -1.4,
        "avg_12m_max_drawdown_pct": -2.2,
        "dd10_6m_rate_pct": 6.7,
        "dd10_12m_rate_pct": 7.9,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 10.1,
        "dual_score": 3.9,
        "regime": "Normal",
        "share_pct": 43.6
      },
      {
        "asset": "DOW",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 4.4,
        "avg_12m_return_pct": 10.3,
        "avg_12m_realized_vol_pct": 11.4,
        "avg_6m_max_drawdown_pct": -1.9,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 6.7,
        "dd10_12m_rate_pct": 9.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.2,
        "dual_score": 4.5,
        "regime": "Normal",
        "share_pct": 43.6
      },
      {
        "asset": "NASDAQ",
        "months": 43,
        "avg_score": 0.04,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 52.2,
        "avg_6m_return_pct": 5.9,
        "avg_12m_return_pct": 9.8,
        "avg_12m_realized_vol_pct": 13.5,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -3.7,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 11.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.6,
        "dual_score": 5.8,
        "regime": "Watch",
        "share_pct": 21.1
      },
      {
        "asset": "SP500",
        "months": 43,
        "avg_score": 0.04,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 52.2,
        "avg_6m_return_pct": 6.1,
        "avg_12m_return_pct": 10.5,
        "avg_12m_realized_vol_pct": 8.1,
        "avg_6m_max_drawdown_pct": -0.2,
        "avg_12m_max_drawdown_pct": -0.7,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 2.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.7,
        "dual_score": 1.2,
        "regime": "Watch",
        "share_pct": 21.1
      },
      {
        "asset": "DOW",
        "months": 43,
        "avg_score": 0.04,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 52.2,
        "avg_6m_return_pct": 5.3,
        "avg_12m_return_pct": 9.0,
        "avg_12m_realized_vol_pct": 8.6,
        "avg_6m_max_drawdown_pct": -0.1,
        "avg_12m_max_drawdown_pct": -0.5,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.6,
        "dual_score": 0.0,
        "regime": "Watch",
        "share_pct": 21.1
      },
      {
        "asset": "NASDAQ",
        "months": 41,
        "avg_score": 0.46,
        "avg_breadth": 1.32,
        "avg_blend_percentile": 72.4,
        "avg_6m_return_pct": 6.8,
        "avg_12m_return_pct": 14.0,
        "avg_12m_realized_vol_pct": 16.7,
        "avg_6m_max_drawdown_pct": -2.4,
        "avg_12m_max_drawdown_pct": -4.2,
        "dd10_6m_rate_pct": 9.8,
        "dd10_12m_rate_pct": 14.6,
        "loss10_12m_rate_pct": 2.4,
        "loss0_12m_rate_pct": 14.6,
        "dual_score": 8.5,
        "regime": "Elevated",
        "share_pct": 20.1
      },
      {
        "asset": "SP500",
        "months": 41,
        "avg_score": 0.46,
        "avg_breadth": 1.32,
        "avg_blend_percentile": 72.4,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 8.5,
        "avg_12m_realized_vol_pct": 13.9,
        "avg_6m_max_drawdown_pct": -2.4,
        "avg_12m_max_drawdown_pct": -4.8,
        "dd10_6m_rate_pct": 7.3,
        "dd10_12m_rate_pct": 22.0,
        "loss10_12m_rate_pct": 2.4,
        "loss0_12m_rate_pct": 17.1,
        "dual_score": 12.2,
        "regime": "Elevated",
        "share_pct": 20.1
      },
      {
        "asset": "DOW",
        "months": 41,
        "avg_score": 0.46,
        "avg_breadth": 1.32,
        "avg_blend_percentile": 72.4,
        "avg_6m_return_pct": 4.1,
        "avg_12m_return_pct": 5.9,
        "avg_12m_realized_vol_pct": 14.2,
        "avg_6m_max_drawdown_pct": -2.8,
        "avg_12m_max_drawdown_pct": -5.6,
        "dd10_6m_rate_pct": 7.3,
        "dd10_12m_rate_pct": 24.4,
        "loss10_12m_rate_pct": 4.9,
        "loss0_12m_rate_pct": 24.4,
        "dual_score": 14.6,
        "regime": "Elevated",
        "share_pct": 20.1
      },
      {
        "asset": "NASDAQ",
        "months": 15,
        "avg_score": 0.67,
        "avg_breadth": 2.07,
        "avg_blend_percentile": 86.0,
        "avg_6m_return_pct": 5.1,
        "avg_12m_return_pct": 12.6,
        "avg_12m_realized_vol_pct": 20.7,
        "avg_6m_max_drawdown_pct": -7.4,
        "avg_12m_max_drawdown_pct": -9.9,
        "dd10_6m_rate_pct": 40.0,
        "dd10_12m_rate_pct": 53.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 20.0,
        "dual_score": 26.7,
        "regime": "High risk",
        "share_pct": 7.4
      },
      {
        "asset": "SP500",
        "months": 15,
        "avg_score": 0.67,
        "avg_breadth": 2.07,
        "avg_blend_percentile": 86.0,
        "avg_6m_return_pct": 1.3,
        "avg_12m_return_pct": 6.7,
        "avg_12m_realized_vol_pct": 17.4,
        "avg_6m_max_drawdown_pct": -7.7,
        "avg_12m_max_drawdown_pct": -10.0,
        "dd10_6m_rate_pct": 33.3,
        "dd10_12m_rate_pct": 40.0,
        "loss10_12m_rate_pct": 6.7,
        "loss0_12m_rate_pct": 13.3,
        "dual_score": 23.3,
        "regime": "High risk",
        "share_pct": 7.4
      },
      {
        "asset": "DOW",
        "months": 15,
        "avg_score": 0.67,
        "avg_breadth": 2.07,
        "avg_blend_percentile": 86.0,
        "avg_6m_return_pct": -0.3,
        "avg_12m_return_pct": 4.2,
        "avg_12m_realized_vol_pct": 17.2,
        "avg_6m_max_drawdown_pct": -7.9,
        "avg_12m_max_drawdown_pct": -9.5,
        "dd10_6m_rate_pct": 26.7,
        "dd10_12m_rate_pct": 33.3,
        "loss10_12m_rate_pct": 6.7,
        "loss0_12m_rate_pct": 13.3,
        "dual_score": 20.0,
        "regime": "High risk",
        "share_pct": 7.4
      },
      {
        "asset": "NASDAQ",
        "months": 16,
        "avg_score": 1.54,
        "avg_breadth": 3.25,
        "avg_blend_percentile": 96.4,
        "avg_6m_return_pct": -1.3,
        "avg_12m_return_pct": -14.3,
        "avg_12m_realized_vol_pct": 22.4,
        "avg_6m_max_drawdown_pct": -7.3,
        "avg_12m_max_drawdown_pct": -16.8,
        "dd10_6m_rate_pct": 31.2,
        "dd10_12m_rate_pct": 68.8,
        "loss10_12m_rate_pct": 62.5,
        "loss0_12m_rate_pct": 68.8,
        "dual_score": 65.6,
        "regime": "Extreme",
        "share_pct": 7.8
      },
      {
        "asset": "SP500",
        "months": 16,
        "avg_score": 1.54,
        "avg_breadth": 3.25,
        "avg_blend_percentile": 96.4,
        "avg_6m_return_pct": 3.5,
        "avg_12m_return_pct": -0.5,
        "avg_12m_realized_vol_pct": 16.5,
        "avg_6m_max_drawdown_pct": -2.9,
        "avg_12m_max_drawdown_pct": -8.3,
        "dd10_6m_rate_pct": 18.8,
        "dd10_12m_rate_pct": 50.0,
        "loss10_12m_rate_pct": 37.5,
        "loss0_12m_rate_pct": 62.5,
        "dual_score": 43.8,
        "regime": "Extreme",
        "share_pct": 7.8
      },
      {
        "asset": "DOW",
        "months": 16,
        "avg_score": 1.54,
        "avg_breadth": 3.25,
        "avg_blend_percentile": 96.4,
        "avg_6m_return_pct": 2.7,
        "avg_12m_return_pct": -0.2,
        "avg_12m_realized_vol_pct": 15.5,
        "avg_6m_max_drawdown_pct": -2.4,
        "avg_12m_max_drawdown_pct": -7.1,
        "dd10_6m_rate_pct": 12.5,
        "dd10_12m_rate_pct": 50.0,
        "loss10_12m_rate_pct": 18.8,
        "loss0_12m_rate_pct": 50.0,
        "dual_score": 34.4,
        "regime": "Extreme",
        "share_pct": 7.8
      }
    ],
    "four_bucket_rows": [
      {
        "asset": "NASDAQ",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 14.3,
        "avg_12m_realized_vol_pct": 13.5,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -2.4,
        "dd10_6m_rate_pct": 10.1,
        "dd10_12m_rate_pct": 13.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 9.0,
        "dual_score": 6.7,
        "regime": "Normal",
        "share_pct": 43.6
      },
      {
        "asset": "SP500",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 10.9,
        "avg_12m_realized_vol_pct": 10.3,
        "avg_6m_max_drawdown_pct": -1.4,
        "avg_12m_max_drawdown_pct": -2.2,
        "dd10_6m_rate_pct": 6.7,
        "dd10_12m_rate_pct": 7.9,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 10.1,
        "dual_score": 3.9,
        "regime": "Normal",
        "share_pct": 43.6
      },
      {
        "asset": "DOW",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 4.4,
        "avg_12m_return_pct": 10.3,
        "avg_12m_realized_vol_pct": 11.4,
        "avg_6m_max_drawdown_pct": -1.9,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 6.7,
        "dd10_12m_rate_pct": 9.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.2,
        "dual_score": 4.5,
        "regime": "Normal",
        "share_pct": 43.6
      },
      {
        "asset": "NASDAQ",
        "months": 43,
        "avg_score": 0.04,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 52.2,
        "avg_6m_return_pct": 5.9,
        "avg_12m_return_pct": 9.8,
        "avg_12m_realized_vol_pct": 13.5,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -3.7,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 11.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.6,
        "dual_score": 5.8,
        "regime": "Watch",
        "share_pct": 21.1
      },
      {
        "asset": "SP500",
        "months": 43,
        "avg_score": 0.04,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 52.2,
        "avg_6m_return_pct": 6.1,
        "avg_12m_return_pct": 10.5,
        "avg_12m_realized_vol_pct": 8.1,
        "avg_6m_max_drawdown_pct": -0.2,
        "avg_12m_max_drawdown_pct": -0.7,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 2.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.7,
        "dual_score": 1.2,
        "regime": "Watch",
        "share_pct": 21.1
      },
      {
        "asset": "DOW",
        "months": 43,
        "avg_score": 0.04,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 52.2,
        "avg_6m_return_pct": 5.3,
        "avg_12m_return_pct": 9.0,
        "avg_12m_realized_vol_pct": 8.6,
        "avg_6m_max_drawdown_pct": -0.1,
        "avg_12m_max_drawdown_pct": -0.5,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.6,
        "dual_score": 0.0,
        "regime": "Watch",
        "share_pct": 21.1
      },
      {
        "asset": "NASDAQ",
        "months": 30,
        "avg_score": 0.44,
        "avg_breadth": 1.07,
        "avg_blend_percentile": 69.9,
        "avg_6m_return_pct": 6.8,
        "avg_12m_return_pct": 13.8,
        "avg_12m_realized_vol_pct": 17.2,
        "avg_6m_max_drawdown_pct": -2.9,
        "avg_12m_max_drawdown_pct": -4.6,
        "dd10_6m_rate_pct": 10.0,
        "dd10_12m_rate_pct": 13.3,
        "loss10_12m_rate_pct": 3.3,
        "loss0_12m_rate_pct": 13.3,
        "dual_score": 8.3,
        "regime": "Elevated",
        "share_pct": 14.7
      },
      {
        "asset": "SP500",
        "months": 30,
        "avg_score": 0.44,
        "avg_breadth": 1.07,
        "avg_blend_percentile": 69.9,
        "avg_6m_return_pct": 4.5,
        "avg_12m_return_pct": 7.8,
        "avg_12m_realized_vol_pct": 14.9,
        "avg_6m_max_drawdown_pct": -3.1,
        "avg_12m_max_drawdown_pct": -5.9,
        "dd10_6m_rate_pct": 10.0,
        "dd10_12m_rate_pct": 26.7,
        "loss10_12m_rate_pct": 3.3,
        "loss0_12m_rate_pct": 16.7,
        "dual_score": 15.0,
        "regime": "Elevated",
        "share_pct": 14.7
      },
      {
        "asset": "DOW",
        "months": 30,
        "avg_score": 0.44,
        "avg_breadth": 1.07,
        "avg_blend_percentile": 69.9,
        "avg_6m_return_pct": 3.7,
        "avg_12m_return_pct": 5.3,
        "avg_12m_realized_vol_pct": 15.0,
        "avg_6m_max_drawdown_pct": -3.5,
        "avg_12m_max_drawdown_pct": -6.8,
        "dd10_6m_rate_pct": 10.0,
        "dd10_12m_rate_pct": 30.0,
        "loss10_12m_rate_pct": 6.7,
        "loss0_12m_rate_pct": 26.7,
        "dual_score": 18.3,
        "regime": "Elevated",
        "share_pct": 14.7
      },
      {
        "asset": "NASDAQ",
        "months": 42,
        "avg_score": 0.96,
        "avg_breadth": 2.5,
        "avg_blend_percentile": 88.2,
        "avg_6m_return_pct": 3.2,
        "avg_12m_return_pct": 2.8,
        "avg_12m_realized_vol_pct": 20.0,
        "avg_6m_max_drawdown_pct": -5.7,
        "avg_12m_max_drawdown_pct": -10.7,
        "dd10_6m_rate_pct": 28.6,
        "dd10_12m_rate_pct": 50.0,
        "loss10_12m_rate_pct": 23.8,
        "loss0_12m_rate_pct": 38.1,
        "dual_score": 36.9,
        "regime": "High risk",
        "share_pct": 20.6
      },
      {
        "asset": "SP500",
        "months": 42,
        "avg_score": 0.96,
        "avg_breadth": 2.5,
        "avg_blend_percentile": 88.2,
        "avg_6m_return_pct": 3.2,
        "avg_12m_return_pct": 5.0,
        "avg_12m_realized_vol_pct": 15.4,
        "avg_6m_max_drawdown_pct": -4.0,
        "avg_12m_max_drawdown_pct": -7.2,
        "dd10_6m_rate_pct": 19.0,
        "dd10_12m_rate_pct": 35.7,
        "loss10_12m_rate_pct": 16.7,
        "loss0_12m_rate_pct": 33.3,
        "dual_score": 26.2,
        "regime": "High risk",
        "share_pct": 20.6
      },
      {
        "asset": "DOW",
        "months": 42,
        "avg_score": 0.96,
        "avg_breadth": 2.5,
        "avg_blend_percentile": 88.2,
        "avg_6m_return_pct": 2.2,
        "avg_12m_return_pct": 3.4,
        "avg_12m_realized_vol_pct": 15.2,
        "avg_6m_max_drawdown_pct": -4.0,
        "avg_12m_max_drawdown_pct": -6.7,
        "dd10_6m_rate_pct": 14.3,
        "dd10_12m_rate_pct": 33.3,
        "loss10_12m_rate_pct": 9.5,
        "loss0_12m_rate_pct": 28.6,
        "dual_score": 21.4,
        "regime": "High risk",
        "share_pct": 20.6
      }
    ],
    "flag_count_rows": [
      {
        "asset": "NASDAQ",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 14.3,
        "avg_12m_realized_vol_pct": 13.5,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -2.4,
        "dd10_6m_rate_pct": 10.1,
        "dd10_12m_rate_pct": 13.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 9.0,
        "dual_score": 6.7,
        "flag_count": 0,
        "share_pct": 43.6
      },
      {
        "asset": "SP500",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 10.9,
        "avg_12m_realized_vol_pct": 10.3,
        "avg_6m_max_drawdown_pct": -1.4,
        "avg_12m_max_drawdown_pct": -2.2,
        "dd10_6m_rate_pct": 6.7,
        "dd10_12m_rate_pct": 7.9,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 10.1,
        "dual_score": 3.9,
        "flag_count": 0,
        "share_pct": 43.6
      },
      {
        "asset": "DOW",
        "months": 89,
        "avg_score": -0.56,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 21.9,
        "avg_6m_return_pct": 4.4,
        "avg_12m_return_pct": 10.3,
        "avg_12m_realized_vol_pct": 11.4,
        "avg_6m_max_drawdown_pct": -1.9,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 6.7,
        "dd10_12m_rate_pct": 9.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.2,
        "dual_score": 4.5,
        "flag_count": 0,
        "share_pct": 43.6
      },
      {
        "asset": "NASDAQ",
        "months": 71,
        "avg_score": 0.2,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 59.2,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 11.7,
        "avg_12m_realized_vol_pct": 15.0,
        "avg_6m_max_drawdown_pct": -2.6,
        "avg_12m_max_drawdown_pct": -4.1,
        "dd10_6m_rate_pct": 8.5,
        "dd10_12m_rate_pct": 12.7,
        "loss10_12m_rate_pct": 1.4,
        "loss0_12m_rate_pct": 11.3,
        "dual_score": 7.0,
        "flag_count": 1,
        "share_pct": 34.8
      },
      {
        "asset": "SP500",
        "months": 71,
        "avg_score": 0.2,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 59.2,
        "avg_6m_return_pct": 5.4,
        "avg_12m_return_pct": 9.6,
        "avg_12m_realized_vol_pct": 10.9,
        "avg_6m_max_drawdown_pct": -1.4,
        "avg_12m_max_drawdown_pct": -2.9,
        "dd10_6m_rate_pct": 4.2,
        "dd10_12m_rate_pct": 12.7,
        "loss10_12m_rate_pct": 1.4,
        "loss0_12m_rate_pct": 8.5,
        "dual_score": 7.0,
        "flag_count": 1,
        "share_pct": 34.8
      },
      {
        "asset": "DOW",
        "months": 71,
        "avg_score": 0.2,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 59.2,
        "avg_6m_return_pct": 4.6,
        "avg_12m_return_pct": 7.6,
        "avg_12m_realized_vol_pct": 11.2,
        "avg_6m_max_drawdown_pct": -1.5,
        "avg_12m_max_drawdown_pct": -3.2,
        "dd10_6m_rate_pct": 4.2,
        "dd10_12m_rate_pct": 12.7,
        "loss10_12m_rate_pct": 2.8,
        "loss0_12m_rate_pct": 18.3,
        "dual_score": 7.7,
        "flag_count": 1,
        "share_pct": 34.8
      },
      {
        "asset": "NASDAQ",
        "months": 27,
        "avg_score": 0.58,
        "avg_breadth": 2.0,
        "avg_blend_percentile": 82.2,
        "avg_6m_return_pct": 5.8,
        "avg_12m_return_pct": 12.4,
        "avg_12m_realized_vol_pct": 18.2,
        "avg_6m_max_drawdown_pct": -4.2,
        "avg_12m_max_drawdown_pct": -6.4,
        "dd10_6m_rate_pct": 22.2,
        "dd10_12m_rate_pct": 33.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 22.2,
        "dual_score": 16.7,
        "flag_count": 2,
        "share_pct": 13.2
      },
      {
        "asset": "SP500",
        "months": 27,
        "avg_score": 0.58,
        "avg_breadth": 2.0,
        "avg_blend_percentile": 82.2,
        "avg_6m_return_pct": 3.3,
        "avg_12m_return_pct": 7.6,
        "avg_12m_realized_vol_pct": 14.7,
        "avg_6m_max_drawdown_pct": -4.2,
        "avg_12m_max_drawdown_pct": -6.1,
        "dd10_6m_rate_pct": 18.5,
        "dd10_12m_rate_pct": 25.9,
        "loss10_12m_rate_pct": 3.7,
        "loss0_12m_rate_pct": 18.5,
        "dual_score": 14.8,
        "flag_count": 2,
        "share_pct": 13.2
      },
      {
        "asset": "DOW",
        "months": 27,
        "avg_score": 0.58,
        "avg_breadth": 2.0,
        "avg_blend_percentile": 82.2,
        "avg_6m_return_pct": 2.5,
        "avg_12m_return_pct": 5.4,
        "avg_12m_realized_vol_pct": 14.9,
        "avg_6m_max_drawdown_pct": -4.6,
        "avg_12m_max_drawdown_pct": -6.0,
        "dd10_6m_rate_pct": 14.8,
        "dd10_12m_rate_pct": 22.2,
        "loss10_12m_rate_pct": 3.7,
        "loss0_12m_rate_pct": 14.8,
        "dual_score": 13.0,
        "flag_count": 2,
        "share_pct": 13.2
      },
      {
        "asset": "NASDAQ",
        "months": 13,
        "avg_score": 1.4,
        "avg_breadth": 3.0,
        "avg_blend_percentile": 94.5,
        "avg_6m_return_pct": 2.1,
        "avg_12m_return_pct": -7.7,
        "avg_12m_realized_vol_pct": 21.2,
        "avg_6m_max_drawdown_pct": -6.6,
        "avg_12m_max_drawdown_pct": -13.2,
        "dd10_6m_rate_pct": 38.5,
        "dd10_12m_rate_pct": 61.5,
        "loss10_12m_rate_pct": 46.2,
        "loss0_12m_rate_pct": 53.8,
        "dual_score": 53.8,
        "flag_count": 3,
        "share_pct": 6.4
      },
      {
        "asset": "SP500",
        "months": 13,
        "avg_score": 1.4,
        "avg_breadth": 3.0,
        "avg_blend_percentile": 94.5,
        "avg_6m_return_pct": 5.7,
        "avg_12m_return_pct": 4.6,
        "avg_12m_realized_vol_pct": 14.8,
        "avg_6m_max_drawdown_pct": -2.1,
        "avg_12m_max_drawdown_pct": -5.7,
        "dd10_6m_rate_pct": 15.4,
        "dd10_12m_rate_pct": 30.8,
        "loss10_12m_rate_pct": 23.1,
        "loss0_12m_rate_pct": 46.2,
        "dual_score": 26.9,
        "flag_count": 3,
        "share_pct": 6.4
      },
      {
        "asset": "DOW",
        "months": 13,
        "avg_score": 1.4,
        "avg_breadth": 3.0,
        "avg_blend_percentile": 94.5,
        "avg_6m_return_pct": 4.4,
        "avg_12m_return_pct": 3.4,
        "avg_12m_realized_vol_pct": 14.5,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -5.0,
        "dd10_6m_rate_pct": 7.7,
        "dd10_12m_rate_pct": 30.8,
        "loss10_12m_rate_pct": 7.7,
        "loss0_12m_rate_pct": 30.8,
        "dual_score": 19.2,
        "flag_count": 3,
        "share_pct": 6.4
      },
      {
        "asset": "NASDAQ",
        "months": 4,
        "avg_score": 1.73,
        "avg_breadth": 4.0,
        "avg_blend_percentile": 98.5,
        "avg_6m_return_pct": -10.2,
        "avg_12m_return_pct": -27.5,
        "avg_12m_realized_vol_pct": 24.9,
        "avg_6m_max_drawdown_pct": -10.7,
        "avg_12m_max_drawdown_pct": -27.4,
        "dd10_6m_rate_pct": 25.0,
        "dd10_12m_rate_pct": 100.0,
        "loss10_12m_rate_pct": 100.0,
        "loss0_12m_rate_pct": 100.0,
        "dual_score": 100.0,
        "flag_count": 4,
        "share_pct": 2.0
      },
      {
        "asset": "SP500",
        "months": 4,
        "avg_score": 1.73,
        "avg_breadth": 4.0,
        "avg_blend_percentile": 98.5,
        "avg_6m_return_pct": -3.3,
        "avg_12m_return_pct": -13.5,
        "avg_12m_realized_vol_pct": 20.5,
        "avg_6m_max_drawdown_pct": -6.8,
        "avg_12m_max_drawdown_pct": -16.7,
        "dd10_6m_rate_pct": 25.0,
        "dd10_12m_rate_pct": 100.0,
        "loss10_12m_rate_pct": 75.0,
        "loss0_12m_rate_pct": 100.0,
        "dual_score": 87.5,
        "flag_count": 4,
        "share_pct": 2.0
      },
      {
        "asset": "DOW",
        "months": 4,
        "avg_score": 1.73,
        "avg_breadth": 4.0,
        "avg_blend_percentile": 98.5,
        "avg_6m_return_pct": -3.8,
        "avg_12m_return_pct": -9.6,
        "avg_12m_realized_vol_pct": 17.3,
        "avg_6m_max_drawdown_pct": -6.2,
        "avg_12m_max_drawdown_pct": -14.2,
        "dd10_6m_rate_pct": 25.0,
        "dd10_12m_rate_pct": 100.0,
        "loss10_12m_rate_pct": 50.0,
        "loss0_12m_rate_pct": 100.0,
        "dual_score": 75.0,
        "flag_count": 4,
        "share_pct": 2.0
      }
    ],
    "primary_quintile_rows": [
      {
        "asset": "NASDAQ",
        "months": 43,
        "avg_score": -0.81,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 13.2,
        "avg_6m_return_pct": 5.2,
        "avg_12m_return_pct": 14.0,
        "avg_12m_realized_vol_pct": 15.0,
        "avg_6m_max_drawdown_pct": -2.1,
        "avg_12m_max_drawdown_pct": -3.4,
        "dd10_6m_rate_pct": 9.3,
        "dd10_12m_rate_pct": 14.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.7,
        "dual_score": 7.0,
        "bucket": "Q1",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "SP500",
        "months": 43,
        "avg_score": -0.81,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 13.2,
        "avg_6m_return_pct": 5.0,
        "avg_12m_return_pct": 11.7,
        "avg_12m_realized_vol_pct": 11.5,
        "avg_6m_max_drawdown_pct": -1.3,
        "avg_12m_max_drawdown_pct": -2.6,
        "dd10_6m_rate_pct": 9.3,
        "dd10_12m_rate_pct": 11.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.3,
        "dual_score": 5.8,
        "bucket": "Q1",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "DOW",
        "months": 43,
        "avg_score": -0.81,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 13.2,
        "avg_6m_return_pct": 4.8,
        "avg_12m_return_pct": 11.1,
        "avg_12m_realized_vol_pct": 12.2,
        "avg_6m_max_drawdown_pct": -1.5,
        "avg_12m_max_drawdown_pct": -2.6,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 9.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.3,
        "dual_score": 4.7,
        "bucket": "Q1",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "NASDAQ",
        "months": 43,
        "avg_score": -0.37,
        "avg_breadth": 0.05,
        "avg_blend_percentile": 28.5,
        "avg_6m_return_pct": 7.8,
        "avg_12m_return_pct": 15.1,
        "avg_12m_realized_vol_pct": 12.3,
        "avg_6m_max_drawdown_pct": -1.2,
        "avg_12m_max_drawdown_pct": -1.5,
        "dd10_6m_rate_pct": 11.6,
        "dd10_12m_rate_pct": 14.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 14.0,
        "dual_score": 7.0,
        "bucket": "Q2",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "SP500",
        "months": 43,
        "avg_score": -0.37,
        "avg_breadth": 0.05,
        "avg_blend_percentile": 28.5,
        "avg_6m_return_pct": 4.6,
        "avg_12m_return_pct": 10.9,
        "avg_12m_realized_vol_pct": 9.2,
        "avg_6m_max_drawdown_pct": -1.3,
        "avg_12m_max_drawdown_pct": -1.7,
        "dd10_6m_rate_pct": 4.7,
        "dd10_12m_rate_pct": 4.7,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 16.3,
        "dual_score": 2.3,
        "bucket": "Q2",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "DOW",
        "months": 43,
        "avg_score": -0.37,
        "avg_breadth": 0.05,
        "avg_blend_percentile": 28.5,
        "avg_6m_return_pct": 3.8,
        "avg_12m_return_pct": 9.9,
        "avg_12m_realized_vol_pct": 10.6,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 9.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 18.6,
        "dual_score": 4.7,
        "bucket": "Q2",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "NASDAQ",
        "months": 42,
        "avg_score": 0.04,
        "avg_breadth": 0.88,
        "avg_blend_percentile": 51.1,
        "avg_6m_return_pct": 5.9,
        "avg_12m_return_pct": 11.6,
        "avg_12m_realized_vol_pct": 12.8,
        "avg_6m_max_drawdown_pct": -2.1,
        "avg_12m_max_drawdown_pct": -2.9,
        "dd10_6m_rate_pct": 4.8,
        "dd10_12m_rate_pct": 7.1,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 3.6,
        "bucket": "Q3",
        "bucket_count": 5,
        "share_pct": 20.6
      },
      {
        "asset": "SP500",
        "months": 42,
        "avg_score": 0.04,
        "avg_breadth": 0.88,
        "avg_blend_percentile": 51.1,
        "avg_6m_return_pct": 6.4,
        "avg_12m_return_pct": 11.2,
        "avg_12m_realized_vol_pct": 8.2,
        "avg_6m_max_drawdown_pct": -0.3,
        "avg_12m_max_drawdown_pct": -0.4,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.4,
        "dual_score": 0.0,
        "bucket": "Q3",
        "bucket_count": 5,
        "share_pct": 20.6
      },
      {
        "asset": "DOW",
        "months": 42,
        "avg_score": 0.04,
        "avg_breadth": 0.88,
        "avg_blend_percentile": 51.1,
        "avg_6m_return_pct": 6.4,
        "avg_12m_return_pct": 9.9,
        "avg_12m_realized_vol_pct": 9.0,
        "avg_6m_max_drawdown_pct": -0.0,
        "avg_12m_max_drawdown_pct": -0.3,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 7.1,
        "dual_score": 0.0,
        "bucket": "Q3",
        "bucket_count": 5,
        "share_pct": 20.6
      },
      {
        "asset": "NASDAQ",
        "months": 37,
        "avg_score": 0.4,
        "avg_breadth": 1.22,
        "avg_blend_percentile": 69.2,
        "avg_6m_return_pct": 6.1,
        "avg_12m_return_pct": 9.1,
        "avg_12m_realized_vol_pct": 16.7,
        "avg_6m_max_drawdown_pct": -2.6,
        "avg_12m_max_drawdown_pct": -5.4,
        "dd10_6m_rate_pct": 10.8,
        "dd10_12m_rate_pct": 18.9,
        "loss10_12m_rate_pct": 2.7,
        "loss0_12m_rate_pct": 24.3,
        "dual_score": 10.8,
        "bucket": "Q4",
        "bucket_count": 5,
        "share_pct": 18.1
      },
      {
        "asset": "SP500",
        "months": 37,
        "avg_score": 0.4,
        "avg_breadth": 1.22,
        "avg_blend_percentile": 69.2,
        "avg_6m_return_pct": 4.1,
        "avg_12m_return_pct": 5.0,
        "avg_12m_realized_vol_pct": 13.4,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -5.6,
        "dd10_6m_rate_pct": 5.4,
        "dd10_12m_rate_pct": 24.3,
        "loss10_12m_rate_pct": 2.7,
        "loss0_12m_rate_pct": 24.3,
        "dual_score": 13.5,
        "bucket": "Q4",
        "bucket_count": 5,
        "share_pct": 18.1
      },
      {
        "asset": "DOW",
        "months": 37,
        "avg_score": 0.4,
        "avg_breadth": 1.22,
        "avg_blend_percentile": 69.2,
        "avg_6m_return_pct": 3.1,
        "avg_12m_return_pct": 3.4,
        "avg_12m_realized_vol_pct": 13.2,
        "avg_6m_max_drawdown_pct": -2.6,
        "avg_12m_max_drawdown_pct": -5.9,
        "dd10_6m_rate_pct": 5.4,
        "dd10_12m_rate_pct": 24.3,
        "loss10_12m_rate_pct": 5.4,
        "loss0_12m_rate_pct": 35.1,
        "dual_score": 14.9,
        "bucket": "Q4",
        "bucket_count": 5,
        "share_pct": 18.1
      },
      {
        "asset": "NASDAQ",
        "months": 39,
        "avg_score": 1.02,
        "avg_breadth": 2.46,
        "avg_blend_percentile": 89.6,
        "avg_6m_return_pct": 3.0,
        "avg_12m_return_pct": 3.8,
        "avg_12m_realized_vol_pct": 20.6,
        "avg_6m_max_drawdown_pct": -6.4,
        "avg_12m_max_drawdown_pct": -11.1,
        "dd10_6m_rate_pct": 30.8,
        "dd10_12m_rate_pct": 51.3,
        "loss10_12m_rate_pct": 25.6,
        "loss0_12m_rate_pct": 35.9,
        "dual_score": 38.5,
        "bucket": "Q5",
        "bucket_count": 5,
        "share_pct": 19.1
      },
      {
        "asset": "SP500",
        "months": 39,
        "avg_score": 1.02,
        "avg_breadth": 2.46,
        "avg_blend_percentile": 89.6,
        "avg_6m_return_pct": 3.0,
        "avg_12m_return_pct": 6.0,
        "avg_12m_realized_vol_pct": 16.1,
        "avg_6m_max_drawdown_pct": -4.7,
        "avg_12m_max_drawdown_pct": -7.7,
        "dd10_6m_rate_pct": 23.1,
        "dd10_12m_rate_pct": 38.5,
        "loss10_12m_rate_pct": 17.9,
        "loss0_12m_rate_pct": 30.8,
        "dual_score": 28.2,
        "bucket": "Q5",
        "bucket_count": 5,
        "share_pct": 19.1
      },
      {
        "asset": "DOW",
        "months": 39,
        "avg_score": 1.02,
        "avg_breadth": 2.46,
        "avg_blend_percentile": 89.6,
        "avg_6m_return_pct": 1.8,
        "avg_12m_return_pct": 4.1,
        "avg_12m_realized_vol_pct": 16.0,
        "avg_6m_max_drawdown_pct": -4.7,
        "avg_12m_max_drawdown_pct": -7.3,
        "dd10_6m_rate_pct": 17.9,
        "dd10_12m_rate_pct": 35.9,
        "loss10_12m_rate_pct": 10.3,
        "loss0_12m_rate_pct": 25.6,
        "dual_score": 23.1,
        "bucket": "Q5",
        "bucket_count": 5,
        "share_pct": 19.1
      }
    ],
    "primary_decile_rows": [
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": -0.96,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 9.3,
        "avg_6m_return_pct": 7.1,
        "avg_12m_return_pct": 13.7,
        "avg_12m_realized_vol_pct": 14.4,
        "avg_6m_max_drawdown_pct": -0.9,
        "avg_12m_max_drawdown_pct": -2.2,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 4.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.5,
        "dual_score": 2.3,
        "bucket": "D1",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": -0.96,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 9.3,
        "avg_6m_return_pct": 7.5,
        "avg_12m_return_pct": 13.3,
        "avg_12m_realized_vol_pct": 10.9,
        "avg_6m_max_drawdown_pct": 0.2,
        "avg_12m_max_drawdown_pct": -1.2,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 4.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 2.3,
        "bucket": "D1",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": -0.96,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 9.3,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 11.6,
        "avg_12m_realized_vol_pct": 11.8,
        "avg_6m_max_drawdown_pct": -0.5,
        "avg_12m_max_drawdown_pct": -1.6,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "D1",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "NASDAQ",
        "months": 21,
        "avg_score": -0.66,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 17.3,
        "avg_6m_return_pct": 3.3,
        "avg_12m_return_pct": 14.2,
        "avg_12m_realized_vol_pct": 15.6,
        "avg_6m_max_drawdown_pct": -3.5,
        "avg_12m_max_drawdown_pct": -4.7,
        "dd10_6m_rate_pct": 19.0,
        "dd10_12m_rate_pct": 23.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 11.9,
        "bucket": "D2",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "SP500",
        "months": 21,
        "avg_score": -0.66,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 17.3,
        "avg_6m_return_pct": 2.4,
        "avg_12m_return_pct": 10.0,
        "avg_12m_realized_vol_pct": 12.0,
        "avg_6m_max_drawdown_pct": -2.9,
        "avg_12m_max_drawdown_pct": -4.0,
        "dd10_6m_rate_pct": 19.0,
        "dd10_12m_rate_pct": 19.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 9.5,
        "bucket": "D2",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "DOW",
        "months": 21,
        "avg_score": -0.66,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 17.3,
        "avg_6m_return_pct": 3.2,
        "avg_12m_return_pct": 10.5,
        "avg_12m_realized_vol_pct": 12.6,
        "avg_6m_max_drawdown_pct": -2.6,
        "avg_12m_max_drawdown_pct": -3.6,
        "dd10_6m_rate_pct": 14.3,
        "dd10_12m_rate_pct": 19.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 9.5,
        "bucket": "D2",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": -0.51,
        "avg_breadth": 0.09,
        "avg_blend_percentile": 24.8,
        "avg_6m_return_pct": 6.8,
        "avg_12m_return_pct": 12.4,
        "avg_12m_realized_vol_pct": 14.2,
        "avg_6m_max_drawdown_pct": -3.3,
        "avg_12m_max_drawdown_pct": -3.8,
        "dd10_6m_rate_pct": 22.7,
        "dd10_12m_rate_pct": 27.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 27.3,
        "dual_score": 13.6,
        "bucket": "D3",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": -0.51,
        "avg_breadth": 0.09,
        "avg_blend_percentile": 24.8,
        "avg_6m_return_pct": 3.0,
        "avg_12m_return_pct": 9.0,
        "avg_12m_realized_vol_pct": 10.1,
        "avg_6m_max_drawdown_pct": -3.5,
        "avg_12m_max_drawdown_pct": -4.0,
        "dd10_6m_rate_pct": 9.1,
        "dd10_12m_rate_pct": 9.1,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 31.8,
        "dual_score": 4.5,
        "bucket": "D3",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": -0.51,
        "avg_breadth": 0.09,
        "avg_blend_percentile": 24.8,
        "avg_6m_return_pct": 2.2,
        "avg_12m_return_pct": 7.9,
        "avg_12m_realized_vol_pct": 12.1,
        "avg_6m_max_drawdown_pct": -4.7,
        "avg_12m_max_drawdown_pct": -5.0,
        "dd10_6m_rate_pct": 13.6,
        "dd10_12m_rate_pct": 18.2,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 27.3,
        "dual_score": 9.1,
        "bucket": "D3",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "NASDAQ",
        "months": 21,
        "avg_score": -0.23,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 32.5,
        "avg_6m_return_pct": 8.8,
        "avg_12m_return_pct": 18.0,
        "avg_12m_realized_vol_pct": 10.4,
        "avg_6m_max_drawdown_pct": 1.0,
        "avg_12m_max_drawdown_pct": 0.9,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "D4",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "SP500",
        "months": 21,
        "avg_score": -0.23,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 32.5,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 12.9,
        "avg_12m_realized_vol_pct": 8.4,
        "avg_6m_max_drawdown_pct": 0.9,
        "avg_12m_max_drawdown_pct": 0.7,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "D4",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "DOW",
        "months": 21,
        "avg_score": -0.23,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 32.5,
        "avg_6m_return_pct": 5.4,
        "avg_12m_return_pct": 12.0,
        "avg_12m_realized_vol_pct": 9.1,
        "avg_6m_max_drawdown_pct": 0.2,
        "avg_12m_max_drawdown_pct": -0.4,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 9.5,
        "dual_score": 0.0,
        "bucket": "D4",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "NASDAQ",
        "months": 21,
        "avg_score": -0.07,
        "avg_breadth": 0.76,
        "avg_blend_percentile": 46.0,
        "avg_6m_return_pct": 5.6,
        "avg_12m_return_pct": 8.6,
        "avg_12m_realized_vol_pct": 14.0,
        "avg_6m_max_drawdown_pct": -1.5,
        "avg_12m_max_drawdown_pct": -2.5,
        "dd10_6m_rate_pct": 4.8,
        "dd10_12m_rate_pct": 9.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 9.5,
        "dual_score": 4.8,
        "bucket": "D5",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "SP500",
        "months": 21,
        "avg_score": -0.07,
        "avg_breadth": 0.76,
        "avg_blend_percentile": 46.0,
        "avg_6m_return_pct": 5.8,
        "avg_12m_return_pct": 8.5,
        "avg_12m_realized_vol_pct": 8.5,
        "avg_6m_max_drawdown_pct": -0.5,
        "avg_12m_max_drawdown_pct": -0.6,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 0.0,
        "bucket": "D5",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "DOW",
        "months": 21,
        "avg_score": -0.07,
        "avg_breadth": 0.76,
        "avg_blend_percentile": 46.0,
        "avg_6m_return_pct": 5.2,
        "avg_12m_return_pct": 5.9,
        "avg_12m_realized_vol_pct": 9.5,
        "avg_6m_max_drawdown_pct": -0.5,
        "avg_12m_max_drawdown_pct": -0.9,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 14.3,
        "dual_score": 0.0,
        "bucket": "D5",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "NASDAQ",
        "months": 21,
        "avg_score": 0.15,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 56.1,
        "avg_6m_return_pct": 6.2,
        "avg_12m_return_pct": 14.7,
        "avg_12m_realized_vol_pct": 11.6,
        "avg_6m_max_drawdown_pct": -2.7,
        "avg_12m_max_drawdown_pct": -3.3,
        "dd10_6m_rate_pct": 4.8,
        "dd10_12m_rate_pct": 4.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 2.4,
        "bucket": "D6",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "SP500",
        "months": 21,
        "avg_score": 0.15,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 56.1,
        "avg_6m_return_pct": 7.0,
        "avg_12m_return_pct": 13.9,
        "avg_12m_realized_vol_pct": 8.0,
        "avg_6m_max_drawdown_pct": -0.1,
        "avg_12m_max_drawdown_pct": -0.2,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "D6",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "DOW",
        "months": 21,
        "avg_score": 0.15,
        "avg_breadth": 1.0,
        "avg_blend_percentile": 56.1,
        "avg_6m_return_pct": 7.5,
        "avg_12m_return_pct": 13.9,
        "avg_12m_realized_vol_pct": 8.4,
        "avg_6m_max_drawdown_pct": 0.4,
        "avg_12m_max_drawdown_pct": 0.4,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "D6",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "NASDAQ",
        "months": 19,
        "avg_score": 0.33,
        "avg_breadth": 1.05,
        "avg_blend_percentile": 64.7,
        "avg_6m_return_pct": 6.8,
        "avg_12m_return_pct": 9.7,
        "avg_12m_realized_vol_pct": 14.9,
        "avg_6m_max_drawdown_pct": -1.9,
        "avg_12m_max_drawdown_pct": -3.7,
        "dd10_6m_rate_pct": 10.5,
        "dd10_12m_rate_pct": 15.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 21.1,
        "dual_score": 7.9,
        "bucket": "D7",
        "bucket_count": 10,
        "share_pct": 9.3
      },
      {
        "asset": "SP500",
        "months": 19,
        "avg_score": 0.33,
        "avg_breadth": 1.05,
        "avg_blend_percentile": 64.7,
        "avg_6m_return_pct": 5.0,
        "avg_12m_return_pct": 6.8,
        "avg_12m_realized_vol_pct": 11.2,
        "avg_6m_max_drawdown_pct": -1.4,
        "avg_12m_max_drawdown_pct": -3.4,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 10.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 15.8,
        "dual_score": 5.3,
        "bucket": "D7",
        "bucket_count": 10,
        "share_pct": 9.3
      },
      {
        "asset": "DOW",
        "months": 19,
        "avg_score": 0.33,
        "avg_breadth": 1.05,
        "avg_blend_percentile": 64.7,
        "avg_6m_return_pct": 4.5,
        "avg_12m_return_pct": 5.8,
        "avg_12m_realized_vol_pct": 10.9,
        "avg_6m_max_drawdown_pct": -1.4,
        "avg_12m_max_drawdown_pct": -3.5,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 10.5,
        "loss10_12m_rate_pct": 5.3,
        "loss0_12m_rate_pct": 26.3,
        "dual_score": 7.9,
        "bucket": "D7",
        "bucket_count": 10,
        "share_pct": 9.3
      },
      {
        "asset": "NASDAQ",
        "months": 18,
        "avg_score": 0.48,
        "avg_breadth": 1.39,
        "avg_blend_percentile": 74.0,
        "avg_6m_return_pct": 5.3,
        "avg_12m_return_pct": 8.5,
        "avg_12m_realized_vol_pct": 18.6,
        "avg_6m_max_drawdown_pct": -3.2,
        "avg_12m_max_drawdown_pct": -7.1,
        "dd10_6m_rate_pct": 11.1,
        "dd10_12m_rate_pct": 22.2,
        "loss10_12m_rate_pct": 5.6,
        "loss0_12m_rate_pct": 27.8,
        "dual_score": 13.9,
        "bucket": "D8",
        "bucket_count": 10,
        "share_pct": 8.8
      },
      {
        "asset": "SP500",
        "months": 18,
        "avg_score": 0.48,
        "avg_breadth": 1.39,
        "avg_blend_percentile": 74.0,
        "avg_6m_return_pct": 3.1,
        "avg_12m_return_pct": 3.2,
        "avg_12m_realized_vol_pct": 15.7,
        "avg_6m_max_drawdown_pct": -3.2,
        "avg_12m_max_drawdown_pct": -8.0,
        "dd10_6m_rate_pct": 11.1,
        "dd10_12m_rate_pct": 38.9,
        "loss10_12m_rate_pct": 5.6,
        "loss0_12m_rate_pct": 33.3,
        "dual_score": 22.2,
        "bucket": "D8",
        "bucket_count": 10,
        "share_pct": 8.8
      },
      {
        "asset": "DOW",
        "months": 18,
        "avg_score": 0.48,
        "avg_breadth": 1.39,
        "avg_blend_percentile": 74.0,
        "avg_6m_return_pct": 1.7,
        "avg_12m_return_pct": 0.8,
        "avg_12m_realized_vol_pct": 15.7,
        "avg_6m_max_drawdown_pct": -3.7,
        "avg_12m_max_drawdown_pct": -8.5,
        "dd10_6m_rate_pct": 11.1,
        "dd10_12m_rate_pct": 38.9,
        "loss10_12m_rate_pct": 5.6,
        "loss0_12m_rate_pct": 44.4,
        "dual_score": 22.2,
        "bucket": "D8",
        "bucket_count": 10,
        "share_pct": 8.8
      },
      {
        "asset": "NASDAQ",
        "months": 17,
        "avg_score": 0.63,
        "avg_breadth": 1.88,
        "avg_blend_percentile": 83.3,
        "avg_6m_return_pct": 6.1,
        "avg_12m_return_pct": 17.0,
        "avg_12m_realized_vol_pct": 18.4,
        "avg_6m_max_drawdown_pct": -3.9,
        "avg_12m_max_drawdown_pct": -5.4,
        "dd10_6m_rate_pct": 23.5,
        "dd10_12m_rate_pct": 29.4,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 5.9,
        "dual_score": 14.7,
        "bucket": "D9",
        "bucket_count": 10,
        "share_pct": 8.3
      },
      {
        "asset": "SP500",
        "months": 17,
        "avg_score": 0.63,
        "avg_breadth": 1.88,
        "avg_blend_percentile": 83.3,
        "avg_6m_return_pct": 3.6,
        "avg_12m_return_pct": 12.1,
        "avg_12m_realized_vol_pct": 14.8,
        "avg_6m_max_drawdown_pct": -4.0,
        "avg_12m_max_drawdown_pct": -5.2,
        "dd10_6m_rate_pct": 17.6,
        "dd10_12m_rate_pct": 17.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 5.9,
        "dual_score": 8.8,
        "bucket": "D9",
        "bucket_count": 10,
        "share_pct": 8.3
      },
      {
        "asset": "DOW",
        "months": 17,
        "avg_score": 0.63,
        "avg_breadth": 1.88,
        "avg_blend_percentile": 83.3,
        "avg_6m_return_pct": 2.0,
        "avg_12m_return_pct": 8.6,
        "avg_12m_realized_vol_pct": 15.2,
        "avg_6m_max_drawdown_pct": -5.0,
        "avg_12m_max_drawdown_pct": -5.9,
        "dd10_6m_rate_pct": 11.8,
        "dd10_12m_rate_pct": 11.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 5.9,
        "dual_score": 5.9,
        "bucket": "D9",
        "bucket_count": 10,
        "share_pct": 8.3
      },
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": 1.33,
        "avg_breadth": 2.91,
        "avg_blend_percentile": 94.5,
        "avg_6m_return_pct": 0.5,
        "avg_12m_return_pct": -6.4,
        "avg_12m_realized_vol_pct": 22.3,
        "avg_6m_max_drawdown_pct": -8.2,
        "avg_12m_max_drawdown_pct": -15.5,
        "dd10_6m_rate_pct": 36.4,
        "dd10_12m_rate_pct": 68.2,
        "loss10_12m_rate_pct": 45.5,
        "loss0_12m_rate_pct": 59.1,
        "dual_score": 56.8,
        "bucket": "D10",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": 1.33,
        "avg_breadth": 2.91,
        "avg_blend_percentile": 94.5,
        "avg_6m_return_pct": 2.5,
        "avg_12m_return_pct": 1.2,
        "avg_12m_realized_vol_pct": 17.2,
        "avg_6m_max_drawdown_pct": -5.3,
        "avg_12m_max_drawdown_pct": -9.5,
        "dd10_6m_rate_pct": 27.3,
        "dd10_12m_rate_pct": 54.5,
        "loss10_12m_rate_pct": 31.8,
        "loss0_12m_rate_pct": 50.0,
        "dual_score": 43.2,
        "bucket": "D10",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": 1.33,
        "avg_breadth": 2.91,
        "avg_blend_percentile": 94.5,
        "avg_6m_return_pct": 1.6,
        "avg_12m_return_pct": 0.7,
        "avg_12m_realized_vol_pct": 16.6,
        "avg_6m_max_drawdown_pct": -4.6,
        "avg_12m_max_drawdown_pct": -8.5,
        "dd10_6m_rate_pct": 22.7,
        "dd10_12m_rate_pct": 54.5,
        "loss10_12m_rate_pct": 18.2,
        "loss0_12m_rate_pct": 40.9,
        "dual_score": 36.4,
        "bucket": "D10",
        "bucket_count": 10,
        "share_pct": 10.8
      }
    ],
    "score_quintile_rows": [
      {
        "asset": "NASDAQ",
        "months": 43,
        "avg_score": -0.82,
        "avg_breadth": 0.05,
        "avg_blend_percentile": 13.4,
        "avg_6m_return_pct": 6.8,
        "avg_12m_return_pct": 14.6,
        "avg_12m_realized_vol_pct": 14.7,
        "avg_6m_max_drawdown_pct": -1.5,
        "avg_12m_max_drawdown_pct": -2.8,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 11.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.7,
        "dual_score": 5.8,
        "bucket": "Q1",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "SP500",
        "months": 43,
        "avg_score": -0.82,
        "avg_breadth": 0.05,
        "avg_blend_percentile": 13.4,
        "avg_6m_return_pct": 6.1,
        "avg_12m_return_pct": 12.3,
        "avg_12m_realized_vol_pct": 11.1,
        "avg_6m_max_drawdown_pct": -0.6,
        "avg_12m_max_drawdown_pct": -1.9,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 9.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.3,
        "dual_score": 4.7,
        "bucket": "Q1",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "DOW",
        "months": 43,
        "avg_score": -0.82,
        "avg_breadth": 0.05,
        "avg_blend_percentile": 13.4,
        "avg_6m_return_pct": 5.6,
        "avg_12m_return_pct": 11.4,
        "avg_12m_realized_vol_pct": 12.0,
        "avg_6m_max_drawdown_pct": -1.1,
        "avg_12m_max_drawdown_pct": -2.2,
        "dd10_6m_rate_pct": 4.7,
        "dd10_12m_rate_pct": 7.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.3,
        "dual_score": 3.5,
        "bucket": "Q1",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "NASDAQ",
        "months": 43,
        "avg_score": -0.38,
        "avg_breadth": 0.12,
        "avg_blend_percentile": 29.1,
        "avg_6m_return_pct": 5.6,
        "avg_12m_return_pct": 13.8,
        "avg_12m_realized_vol_pct": 13.0,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 14.0,
        "dd10_12m_rate_pct": 18.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 16.3,
        "dual_score": 9.3,
        "bucket": "Q2",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "SP500",
        "months": 43,
        "avg_score": -0.38,
        "avg_breadth": 0.12,
        "avg_blend_percentile": 29.1,
        "avg_6m_return_pct": 3.3,
        "avg_12m_return_pct": 10.2,
        "avg_12m_realized_vol_pct": 9.6,
        "avg_6m_max_drawdown_pct": -2.1,
        "avg_12m_max_drawdown_pct": -2.5,
        "dd10_6m_rate_pct": 7.0,
        "dd10_12m_rate_pct": 7.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 16.3,
        "dual_score": 3.5,
        "bucket": "Q2",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "DOW",
        "months": 43,
        "avg_score": -0.38,
        "avg_breadth": 0.12,
        "avg_blend_percentile": 29.1,
        "avg_6m_return_pct": 2.6,
        "avg_12m_return_pct": 9.0,
        "avg_12m_realized_vol_pct": 10.7,
        "avg_6m_max_drawdown_pct": -3.0,
        "avg_12m_max_drawdown_pct": -3.3,
        "dd10_6m_rate_pct": 9.3,
        "dd10_12m_rate_pct": 11.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 14.0,
        "dual_score": 5.8,
        "bucket": "Q2",
        "bucket_count": 5,
        "share_pct": 21.1
      },
      {
        "asset": "NASDAQ",
        "months": 42,
        "avg_score": 0.05,
        "avg_breadth": 0.76,
        "avg_blend_percentile": 50.3,
        "avg_6m_return_pct": 6.5,
        "avg_12m_return_pct": 12.3,
        "avg_12m_realized_vol_pct": 12.3,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -2.3,
        "dd10_6m_rate_pct": 4.8,
        "dd10_12m_rate_pct": 4.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.4,
        "dual_score": 2.4,
        "bucket": "Q3",
        "bucket_count": 5,
        "share_pct": 20.6
      },
      {
        "asset": "SP500",
        "months": 42,
        "avg_score": 0.05,
        "avg_breadth": 0.76,
        "avg_blend_percentile": 50.3,
        "avg_6m_return_pct": 6.6,
        "avg_12m_return_pct": 11.3,
        "avg_12m_realized_vol_pct": 8.3,
        "avg_6m_max_drawdown_pct": -0.2,
        "avg_12m_max_drawdown_pct": -0.3,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 2.4,
        "dual_score": 0.0,
        "bucket": "Q3",
        "bucket_count": 5,
        "share_pct": 20.6
      },
      {
        "asset": "DOW",
        "months": 42,
        "avg_score": 0.05,
        "avg_breadth": 0.76,
        "avg_blend_percentile": 50.3,
        "avg_6m_return_pct": 6.7,
        "avg_12m_return_pct": 10.5,
        "avg_12m_realized_vol_pct": 9.1,
        "avg_6m_max_drawdown_pct": 0.2,
        "avg_12m_max_drawdown_pct": -0.1,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 11.9,
        "dual_score": 0.0,
        "bucket": "Q3",
        "bucket_count": 5,
        "share_pct": 20.6
      },
      {
        "asset": "NASDAQ",
        "months": 37,
        "avg_score": 0.39,
        "avg_breadth": 1.35,
        "avg_blend_percentile": 69.5,
        "avg_6m_return_pct": 6.6,
        "avg_12m_return_pct": 12.6,
        "avg_12m_realized_vol_pct": 16.1,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -4.3,
        "dd10_6m_rate_pct": 10.8,
        "dd10_12m_rate_pct": 16.2,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 18.9,
        "dual_score": 8.1,
        "bucket": "Q4",
        "bucket_count": 5,
        "share_pct": 18.1
      },
      {
        "asset": "SP500",
        "months": 37,
        "avg_score": 0.39,
        "avg_breadth": 1.35,
        "avg_blend_percentile": 69.5,
        "avg_6m_return_pct": 4.6,
        "avg_12m_return_pct": 7.8,
        "avg_12m_realized_vol_pct": 12.7,
        "avg_6m_max_drawdown_pct": -1.9,
        "avg_12m_max_drawdown_pct": -4.4,
        "dd10_6m_rate_pct": 2.7,
        "dd10_12m_rate_pct": 18.9,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 18.9,
        "dual_score": 9.5,
        "bucket": "Q4",
        "bucket_count": 5,
        "share_pct": 18.1
      },
      {
        "asset": "DOW",
        "months": 37,
        "avg_score": 0.39,
        "avg_breadth": 1.35,
        "avg_blend_percentile": 69.5,
        "avg_6m_return_pct": 3.4,
        "avg_12m_return_pct": 5.4,
        "avg_12m_realized_vol_pct": 12.7,
        "avg_6m_max_drawdown_pct": -2.3,
        "avg_12m_max_drawdown_pct": -5.0,
        "dd10_6m_rate_pct": 2.7,
        "dd10_12m_rate_pct": 18.9,
        "loss10_12m_rate_pct": 2.7,
        "loss0_12m_rate_pct": 29.7,
        "dual_score": 10.8,
        "bucket": "Q4",
        "bucket_count": 5,
        "share_pct": 18.1
      },
      {
        "asset": "NASDAQ",
        "months": 39,
        "avg_score": 1.03,
        "avg_breadth": 2.33,
        "avg_blend_percentile": 89.4,
        "avg_6m_return_pct": 2.5,
        "avg_12m_return_pct": 0.5,
        "avg_12m_realized_vol_pct": 21.1,
        "avg_6m_max_drawdown_pct": -6.6,
        "avg_12m_max_drawdown_pct": -12.1,
        "dd10_6m_rate_pct": 30.8,
        "dd10_12m_rate_pct": 53.8,
        "loss10_12m_rate_pct": 28.2,
        "loss0_12m_rate_pct": 41.0,
        "dual_score": 41.0,
        "bucket": "Q5",
        "bucket_count": 5,
        "share_pct": 19.1
      },
      {
        "asset": "SP500",
        "months": 39,
        "avg_score": 1.03,
        "avg_breadth": 2.33,
        "avg_blend_percentile": 89.4,
        "avg_6m_return_pct": 2.5,
        "avg_12m_return_pct": 3.4,
        "avg_12m_realized_vol_pct": 16.8,
        "avg_6m_max_drawdown_pct": -5.1,
        "avg_12m_max_drawdown_pct": -8.8,
        "dd10_6m_rate_pct": 25.6,
        "dd10_12m_rate_pct": 43.6,
        "loss10_12m_rate_pct": 20.5,
        "loss0_12m_rate_pct": 35.9,
        "dual_score": 32.1,
        "bucket": "Q5",
        "bucket_count": 5,
        "share_pct": 19.1
      },
      {
        "asset": "DOW",
        "months": 39,
        "avg_score": 1.03,
        "avg_breadth": 2.33,
        "avg_blend_percentile": 89.4,
        "avg_6m_return_pct": 1.5,
        "avg_12m_return_pct": 2.2,
        "avg_12m_realized_vol_pct": 16.5,
        "avg_6m_max_drawdown_pct": -5.0,
        "avg_12m_max_drawdown_pct": -8.2,
        "dd10_6m_rate_pct": 20.5,
        "dd10_12m_rate_pct": 41.0,
        "loss10_12m_rate_pct": 12.8,
        "loss0_12m_rate_pct": 30.8,
        "dual_score": 26.9,
        "bucket": "Q5",
        "bucket_count": 5,
        "share_pct": 19.1
      }
    ],
    "score_decile_rows": [
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": -0.96,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 9.3,
        "avg_6m_return_pct": 7.1,
        "avg_12m_return_pct": 13.7,
        "avg_12m_realized_vol_pct": 14.4,
        "avg_6m_max_drawdown_pct": -0.9,
        "avg_12m_max_drawdown_pct": -2.2,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 4.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.5,
        "dual_score": 2.3,
        "bucket": "Q1",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": -0.96,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 9.3,
        "avg_6m_return_pct": 7.5,
        "avg_12m_return_pct": 13.3,
        "avg_12m_realized_vol_pct": 10.9,
        "avg_6m_max_drawdown_pct": 0.2,
        "avg_12m_max_drawdown_pct": -1.2,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 4.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 2.3,
        "bucket": "Q1",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": -0.96,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 9.3,
        "avg_6m_return_pct": 6.3,
        "avg_12m_return_pct": 11.6,
        "avg_12m_realized_vol_pct": 11.8,
        "avg_6m_max_drawdown_pct": -0.5,
        "avg_12m_max_drawdown_pct": -1.6,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "Q1",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "NASDAQ",
        "months": 21,
        "avg_score": -0.67,
        "avg_breadth": 0.1,
        "avg_blend_percentile": 17.7,
        "avg_6m_return_pct": 6.5,
        "avg_12m_return_pct": 15.6,
        "avg_12m_realized_vol_pct": 15.1,
        "avg_6m_max_drawdown_pct": -2.2,
        "avg_12m_max_drawdown_pct": -3.4,
        "dd10_6m_rate_pct": 14.3,
        "dd10_12m_rate_pct": 19.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 9.5,
        "bucket": "Q2",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "SP500",
        "months": 21,
        "avg_score": -0.67,
        "avg_breadth": 0.1,
        "avg_blend_percentile": 17.7,
        "avg_6m_return_pct": 4.6,
        "avg_12m_return_pct": 11.3,
        "avg_12m_realized_vol_pct": 11.3,
        "avg_6m_max_drawdown_pct": -1.5,
        "avg_12m_max_drawdown_pct": -2.6,
        "dd10_6m_rate_pct": 14.3,
        "dd10_12m_rate_pct": 14.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 7.1,
        "bucket": "Q2",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "DOW",
        "months": 21,
        "avg_score": -0.67,
        "avg_breadth": 0.1,
        "avg_blend_percentile": 17.7,
        "avg_6m_return_pct": 5.0,
        "avg_12m_return_pct": 11.2,
        "avg_12m_realized_vol_pct": 12.3,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 9.5,
        "dd10_12m_rate_pct": 14.3,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 7.1,
        "bucket": "Q2",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": -0.5,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 24.3,
        "avg_6m_return_pct": 3.8,
        "avg_12m_return_pct": 11.1,
        "avg_12m_realized_vol_pct": 14.6,
        "avg_6m_max_drawdown_pct": -4.6,
        "avg_12m_max_drawdown_pct": -5.1,
        "dd10_6m_rate_pct": 27.3,
        "dd10_12m_rate_pct": 31.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 27.3,
        "dual_score": 15.9,
        "bucket": "Q3",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": -0.5,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 24.3,
        "avg_6m_return_pct": 0.8,
        "avg_12m_return_pct": 7.8,
        "avg_12m_realized_vol_pct": 10.7,
        "avg_6m_max_drawdown_pct": -4.8,
        "avg_12m_max_drawdown_pct": -5.3,
        "dd10_6m_rate_pct": 13.6,
        "dd10_12m_rate_pct": 13.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 31.8,
        "dual_score": 6.8,
        "bucket": "Q3",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": -0.5,
        "avg_breadth": 0.0,
        "avg_blend_percentile": 24.3,
        "avg_6m_return_pct": 0.6,
        "avg_12m_return_pct": 7.2,
        "avg_12m_realized_vol_pct": 12.5,
        "avg_6m_max_drawdown_pct": -5.6,
        "avg_12m_max_drawdown_pct": -5.8,
        "dd10_6m_rate_pct": 18.2,
        "dd10_12m_rate_pct": 22.7,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 27.3,
        "dual_score": 11.4,
        "bucket": "Q3",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "NASDAQ",
        "months": 21,
        "avg_score": -0.25,
        "avg_breadth": 0.24,
        "avg_blend_percentile": 34.1,
        "avg_6m_return_pct": 7.5,
        "avg_12m_return_pct": 16.6,
        "avg_12m_realized_vol_pct": 11.4,
        "avg_6m_max_drawdown_pct": 0.1,
        "avg_12m_max_drawdown_pct": -0.3,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 4.8,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.8,
        "dual_score": 2.4,
        "bucket": "Q4",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "SP500",
        "months": 21,
        "avg_score": -0.25,
        "avg_breadth": 0.24,
        "avg_blend_percentile": 34.1,
        "avg_6m_return_pct": 5.9,
        "avg_12m_return_pct": 12.7,
        "avg_12m_realized_vol_pct": 8.4,
        "avg_6m_max_drawdown_pct": 0.7,
        "avg_12m_max_drawdown_pct": 0.5,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "Q4",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "DOW",
        "months": 21,
        "avg_score": -0.25,
        "avg_breadth": 0.24,
        "avg_blend_percentile": 34.1,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 10.9,
        "avg_12m_realized_vol_pct": 8.8,
        "avg_6m_max_drawdown_pct": -0.3,
        "avg_12m_max_drawdown_pct": -0.7,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "Q4",
        "bucket_count": 10,
        "share_pct": 10.3
      },
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": -0.06,
        "avg_breadth": 0.68,
        "avg_blend_percentile": 45.9,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 8.4,
        "avg_12m_realized_vol_pct": 13.5,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -2.7,
        "dd10_6m_rate_pct": 4.5,
        "dd10_12m_rate_pct": 4.5,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.5,
        "dual_score": 2.3,
        "bucket": "Q5",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": -0.06,
        "avg_breadth": 0.68,
        "avg_blend_percentile": 45.9,
        "avg_6m_return_pct": 5.0,
        "avg_12m_return_pct": 8.5,
        "avg_12m_realized_vol_pct": 8.3,
        "avg_6m_max_drawdown_pct": -0.4,
        "avg_12m_max_drawdown_pct": -0.5,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 4.5,
        "dual_score": 0.0,
        "bucket": "Q5",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": -0.06,
        "avg_breadth": 0.68,
        "avg_blend_percentile": 45.9,
        "avg_6m_return_pct": 4.7,
        "avg_12m_return_pct": 6.5,
        "avg_12m_realized_vol_pct": 9.2,
        "avg_6m_max_drawdown_pct": 0.1,
        "avg_12m_max_drawdown_pct": -0.6,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 22.7,
        "dual_score": 0.0,
        "bucket": "Q5",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "NASDAQ",
        "months": 20,
        "avg_score": 0.16,
        "avg_breadth": 0.85,
        "avg_blend_percentile": 55.1,
        "avg_6m_return_pct": 8.6,
        "avg_12m_return_pct": 16.6,
        "avg_12m_realized_vol_pct": 11.0,
        "avg_6m_max_drawdown_pct": -1.7,
        "avg_12m_max_drawdown_pct": -1.9,
        "dd10_6m_rate_pct": 5.0,
        "dd10_12m_rate_pct": 5.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 2.5,
        "bucket": "Q6",
        "bucket_count": 10,
        "share_pct": 9.8
      },
      {
        "asset": "SP500",
        "months": 20,
        "avg_score": 0.16,
        "avg_breadth": 0.85,
        "avg_blend_percentile": 55.1,
        "avg_6m_return_pct": 8.4,
        "avg_12m_return_pct": 14.3,
        "avg_12m_realized_vol_pct": 8.2,
        "avg_6m_max_drawdown_pct": 0.0,
        "avg_12m_max_drawdown_pct": -0.0,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "Q6",
        "bucket_count": 10,
        "share_pct": 9.8
      },
      {
        "asset": "DOW",
        "months": 20,
        "avg_score": 0.16,
        "avg_breadth": 0.85,
        "avg_blend_percentile": 55.1,
        "avg_6m_return_pct": 8.9,
        "avg_12m_return_pct": 14.8,
        "avg_12m_realized_vol_pct": 9.0,
        "avg_6m_max_drawdown_pct": 0.4,
        "avg_12m_max_drawdown_pct": 0.4,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 0.0,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 0.0,
        "dual_score": 0.0,
        "bucket": "Q6",
        "bucket_count": 10,
        "share_pct": 9.8
      },
      {
        "asset": "NASDAQ",
        "months": 18,
        "avg_score": 0.32,
        "avg_breadth": 1.17,
        "avg_blend_percentile": 64.8,
        "avg_6m_return_pct": 6.6,
        "avg_12m_return_pct": 6.1,
        "avg_12m_realized_vol_pct": 14.7,
        "avg_6m_max_drawdown_pct": -1.5,
        "avg_12m_max_drawdown_pct": -3.5,
        "dd10_6m_rate_pct": 5.6,
        "dd10_12m_rate_pct": 11.1,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 33.3,
        "dual_score": 5.6,
        "bucket": "Q7",
        "bucket_count": 10,
        "share_pct": 8.8
      },
      {
        "asset": "SP500",
        "months": 18,
        "avg_score": 0.32,
        "avg_breadth": 1.17,
        "avg_blend_percentile": 64.8,
        "avg_6m_return_pct": 5.0,
        "avg_12m_return_pct": 4.2,
        "avg_12m_realized_vol_pct": 10.7,
        "avg_6m_max_drawdown_pct": -1.1,
        "avg_12m_max_drawdown_pct": -2.8,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 5.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 27.8,
        "dual_score": 2.8,
        "bucket": "Q7",
        "bucket_count": 10,
        "share_pct": 8.8
      },
      {
        "asset": "DOW",
        "months": 18,
        "avg_score": 0.32,
        "avg_breadth": 1.17,
        "avg_blend_percentile": 64.8,
        "avg_6m_return_pct": 5.0,
        "avg_12m_return_pct": 4.4,
        "avg_12m_realized_vol_pct": 10.4,
        "avg_6m_max_drawdown_pct": -1.0,
        "avg_12m_max_drawdown_pct": -2.4,
        "dd10_6m_rate_pct": 0.0,
        "dd10_12m_rate_pct": 5.6,
        "loss10_12m_rate_pct": 5.6,
        "loss0_12m_rate_pct": 33.3,
        "dual_score": 5.6,
        "bucket": "Q7",
        "bucket_count": 10,
        "share_pct": 8.8
      },
      {
        "asset": "NASDAQ",
        "months": 19,
        "avg_score": 0.46,
        "avg_breadth": 1.53,
        "avg_blend_percentile": 73.9,
        "avg_6m_return_pct": 6.6,
        "avg_12m_return_pct": 18.7,
        "avg_12m_realized_vol_pct": 17.5,
        "avg_6m_max_drawdown_pct": -3.1,
        "avg_12m_max_drawdown_pct": -5.0,
        "dd10_6m_rate_pct": 15.8,
        "dd10_12m_rate_pct": 21.1,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 5.3,
        "dual_score": 10.5,
        "bucket": "Q8",
        "bucket_count": 10,
        "share_pct": 9.3
      },
      {
        "asset": "SP500",
        "months": 19,
        "avg_score": 0.46,
        "avg_breadth": 1.53,
        "avg_blend_percentile": 73.9,
        "avg_6m_return_pct": 4.2,
        "avg_12m_return_pct": 11.3,
        "avg_12m_realized_vol_pct": 14.5,
        "avg_6m_max_drawdown_pct": -2.7,
        "avg_12m_max_drawdown_pct": -5.9,
        "dd10_6m_rate_pct": 5.3,
        "dd10_12m_rate_pct": 31.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 10.5,
        "dual_score": 15.8,
        "bucket": "Q8",
        "bucket_count": 10,
        "share_pct": 9.3
      },
      {
        "asset": "DOW",
        "months": 19,
        "avg_score": 0.46,
        "avg_breadth": 1.53,
        "avg_blend_percentile": 73.9,
        "avg_6m_return_pct": 1.9,
        "avg_12m_return_pct": 6.3,
        "avg_12m_realized_vol_pct": 14.8,
        "avg_6m_max_drawdown_pct": -3.5,
        "avg_12m_max_drawdown_pct": -7.4,
        "dd10_6m_rate_pct": 5.3,
        "dd10_12m_rate_pct": 31.6,
        "loss10_12m_rate_pct": 0.0,
        "loss0_12m_rate_pct": 26.3,
        "dual_score": 15.8,
        "bucket": "Q8",
        "bucket_count": 10,
        "share_pct": 9.3
      },
      {
        "asset": "NASDAQ",
        "months": 17,
        "avg_score": 0.64,
        "avg_breadth": 1.65,
        "avg_blend_percentile": 83.0,
        "avg_6m_return_pct": 4.9,
        "avg_12m_return_pct": 8.7,
        "avg_12m_realized_vol_pct": 19.9,
        "avg_6m_max_drawdown_pct": -4.5,
        "avg_12m_max_drawdown_pct": -7.8,
        "dd10_6m_rate_pct": 23.5,
        "dd10_12m_rate_pct": 35.3,
        "loss10_12m_rate_pct": 5.9,
        "loss0_12m_rate_pct": 17.6,
        "dual_score": 20.6,
        "bucket": "Q9",
        "bucket_count": 10,
        "share_pct": 8.3
      },
      {
        "asset": "SP500",
        "months": 17,
        "avg_score": 0.64,
        "avg_breadth": 1.65,
        "avg_blend_percentile": 83.0,
        "avg_6m_return_pct": 2.5,
        "avg_12m_return_pct": 5.3,
        "avg_12m_realized_vol_pct": 16.7,
        "avg_6m_max_drawdown_pct": -4.9,
        "avg_12m_max_drawdown_pct": -7.9,
        "dd10_6m_rate_pct": 23.5,
        "dd10_12m_rate_pct": 29.4,
        "loss10_12m_rate_pct": 5.9,
        "loss0_12m_rate_pct": 17.6,
        "dual_score": 17.6,
        "bucket": "Q9",
        "bucket_count": 10,
        "share_pct": 8.3
      },
      {
        "asset": "DOW",
        "months": 17,
        "avg_score": 0.64,
        "avg_breadth": 1.65,
        "avg_blend_percentile": 83.0,
        "avg_6m_return_pct": 1.2,
        "avg_12m_return_pct": 3.3,
        "avg_12m_realized_vol_pct": 16.6,
        "avg_6m_max_drawdown_pct": -5.6,
        "avg_12m_max_drawdown_pct": -7.9,
        "dd10_6m_rate_pct": 17.6,
        "dd10_12m_rate_pct": 23.5,
        "loss10_12m_rate_pct": 5.9,
        "loss0_12m_rate_pct": 17.6,
        "dual_score": 14.7,
        "bucket": "Q9",
        "bucket_count": 10,
        "share_pct": 8.3
      },
      {
        "asset": "NASDAQ",
        "months": 22,
        "avg_score": 1.34,
        "avg_breadth": 2.86,
        "avg_blend_percentile": 94.4,
        "avg_6m_return_pct": 0.6,
        "avg_12m_return_pct": -5.8,
        "avg_12m_realized_vol_pct": 22.1,
        "avg_6m_max_drawdown_pct": -8.2,
        "avg_12m_max_drawdown_pct": -15.4,
        "dd10_6m_rate_pct": 36.4,
        "dd10_12m_rate_pct": 68.2,
        "loss10_12m_rate_pct": 45.5,
        "loss0_12m_rate_pct": 59.1,
        "dual_score": 56.8,
        "bucket": "Q10",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "SP500",
        "months": 22,
        "avg_score": 1.34,
        "avg_breadth": 2.86,
        "avg_blend_percentile": 94.4,
        "avg_6m_return_pct": 2.5,
        "avg_12m_return_pct": 1.9,
        "avg_12m_realized_vol_pct": 17.0,
        "avg_6m_max_drawdown_pct": -5.2,
        "avg_12m_max_drawdown_pct": -9.5,
        "dd10_6m_rate_pct": 27.3,
        "dd10_12m_rate_pct": 54.5,
        "loss10_12m_rate_pct": 31.8,
        "loss0_12m_rate_pct": 50.0,
        "dual_score": 43.2,
        "bucket": "Q10",
        "bucket_count": 10,
        "share_pct": 10.8
      },
      {
        "asset": "DOW",
        "months": 22,
        "avg_score": 1.34,
        "avg_breadth": 2.86,
        "avg_blend_percentile": 94.4,
        "avg_6m_return_pct": 1.8,
        "avg_12m_return_pct": 1.4,
        "avg_12m_realized_vol_pct": 16.5,
        "avg_6m_max_drawdown_pct": -4.5,
        "avg_12m_max_drawdown_pct": -8.4,
        "dd10_6m_rate_pct": 22.7,
        "dd10_12m_rate_pct": 54.5,
        "loss10_12m_rate_pct": 18.2,
        "loss0_12m_rate_pct": 40.9,
        "dual_score": 36.4,
        "bucket": "Q10",
        "bucket_count": 10,
        "share_pct": 10.8
      }
    ],
    "caveat": "Current-vintage public-data model; broker-customer leverage uses a Z.1 bridge before direct FINRA margin data starts."
  },
  "factor_overlap": {
    "schema_version": "0.6a-factor-overlap",
    "sample_note": "Diagnostics use the same strict-filter/live-flag discipline as the four-factor dashboard where applicable.",
    "latest_state": {
      "date": "2026-04-30",
      "current_combo": "1001",
      "active_factors": "Synthetic ERP + Broker-customer leverage"
    },
    "score_correlation_rows": [
      {
        "left": "Synthetic ERP",
        "right": "Baa tightness",
        "n": 315,
        "pearson": 0.55,
        "spearman": 0.56
      },
      {
        "left": "Synthetic ERP",
        "right": "Broad stock saturation",
        "n": 315,
        "pearson": -0.01,
        "spearman": -0.02
      },
      {
        "left": "Synthetic ERP",
        "right": "Broker-customer leverage",
        "n": 315,
        "pearson": 0.6,
        "spearman": 0.52
      },
      {
        "left": "Baa tightness",
        "right": "Broad stock saturation",
        "n": 315,
        "pearson": 0.28,
        "spearman": 0.35
      },
      {
        "left": "Baa tightness",
        "right": "Broker-customer leverage",
        "n": 315,
        "pearson": 0.27,
        "spearman": 0.29
      },
      {
        "left": "Broad stock saturation",
        "right": "Broker-customer leverage",
        "n": 315,
        "pearson": 0.24,
        "spearman": 0.15
      }
    ],
    "flag_overlap_rows": [
      {
        "left": "Synthetic ERP",
        "right": "Baa tightness",
        "n": 215,
        "both": 22,
        "left_only": 14,
        "right_only": 30,
        "neither": 149,
        "both_share_pct": 10.2,
        "p_right_given_left_pct": 61.1,
        "p_left_given_right_pct": 42.3,
        "phi": 0.39
      },
      {
        "left": "Synthetic ERP",
        "right": "Broad stock saturation",
        "n": 215,
        "both": 11,
        "left_only": 25,
        "right_only": 66,
        "neither": 113,
        "both_share_pct": 5.1,
        "p_right_given_left_pct": 30.6,
        "p_left_given_right_pct": 14.3,
        "phi": -0.05
      },
      {
        "left": "Synthetic ERP",
        "right": "Broker-customer leverage",
        "n": 215,
        "both": 20,
        "left_only": 16,
        "right_only": 10,
        "neither": 169,
        "both_share_pct": 9.3,
        "p_right_given_left_pct": 55.6,
        "p_left_given_right_pct": 66.7,
        "phi": 0.54
      },
      {
        "left": "Baa tightness",
        "right": "Broad stock saturation",
        "n": 215,
        "both": 15,
        "left_only": 37,
        "right_only": 62,
        "neither": 101,
        "both_share_pct": 7.0,
        "p_right_given_left_pct": 28.8,
        "p_left_given_right_pct": 19.5,
        "phi": -0.08
      },
      {
        "left": "Baa tightness",
        "right": "Broker-customer leverage",
        "n": 215,
        "both": 15,
        "left_only": 37,
        "right_only": 15,
        "neither": 148,
        "both_share_pct": 7.0,
        "p_right_given_left_pct": 28.8,
        "p_left_given_right_pct": 50.0,
        "phi": 0.24
      },
      {
        "left": "Broad stock saturation",
        "right": "Broker-customer leverage",
        "n": 215,
        "both": 12,
        "left_only": 65,
        "right_only": 18,
        "neither": 120,
        "both_share_pct": 5.6,
        "p_right_given_left_pct": 15.6,
        "p_left_given_right_pct": 40.0,
        "phi": 0.04
      }
    ],
    "combo_rows": [
      {
        "combo": "0000",
        "active_factors": "None",
        "months": 89,
        "share_pct": 43.6,
        "avg_12m_return_pct": 14.3,
        "avg_12m_return_delta_pp": 3.4,
        "avg_12m_max_drawdown_pct": -2.4,
        "dd10_12m_rate_pct": 13.5,
        "dd10_delta_pp": -7.1,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 9.0
      },
      {
        "combo": "0010",
        "active_factors": "Broad stock saturation",
        "months": 55,
        "share_pct": 27.0,
        "avg_12m_return_pct": 10.1,
        "avg_12m_return_delta_pp": -0.8,
        "avg_12m_max_drawdown_pct": -4.5,
        "dd10_12m_rate_pct": 10.9,
        "dd10_delta_pp": -9.7,
        "loss10_12m_rate_pct": 1.8,
        "loss10_delta_pp": -3.6,
        "loss0_12m_rate_pct": 12.7
      },
      {
        "combo": "0100",
        "active_factors": "Baa tightness",
        "months": 15,
        "share_pct": 7.4,
        "avg_12m_return_pct": 17.1,
        "avg_12m_return_delta_pp": 6.2,
        "avg_12m_max_drawdown_pct": -2.8,
        "dd10_12m_rate_pct": 20.0,
        "dd10_delta_pp": -0.6,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 6.7
      },
      {
        "combo": "1000",
        "active_factors": "Synthetic ERP",
        "months": 1,
        "share_pct": 0.5,
        "avg_12m_return_pct": 19.2,
        "avg_12m_return_delta_pp": 8.3,
        "avg_12m_max_drawdown_pct": -2.3,
        "dd10_12m_rate_pct": 0.0,
        "dd10_delta_pp": -20.6,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 0.0
      },
      {
        "combo": "0011",
        "active_factors": "Broad stock saturation + Broker-customer leverage",
        "months": 1,
        "share_pct": 0.5,
        "avg_12m_return_pct": -9.1,
        "avg_12m_return_delta_pp": -20.0,
        "avg_12m_max_drawdown_pct": -10.8,
        "dd10_12m_rate_pct": 100.0,
        "dd10_delta_pp": 79.4,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 100.0
      },
      {
        "combo": "0101",
        "active_factors": "Baa tightness + Broker-customer leverage",
        "months": 5,
        "share_pct": 2.5,
        "avg_12m_return_pct": 7.5,
        "avg_12m_return_delta_pp": -3.4,
        "avg_12m_max_drawdown_pct": -7.5,
        "dd10_12m_rate_pct": 40.0,
        "dd10_delta_pp": 19.4,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 20.0
      },
      {
        "combo": "0110",
        "active_factors": "Baa tightness + Broad stock saturation",
        "months": 9,
        "share_pct": 4.4,
        "avg_12m_return_pct": 14.6,
        "avg_12m_return_delta_pp": 3.7,
        "avg_12m_max_drawdown_pct": -8.5,
        "dd10_12m_rate_pct": 44.4,
        "dd10_delta_pp": 23.9,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 33.3
      },
      {
        "combo": "1100",
        "active_factors": "Synthetic ERP + Baa tightness",
        "months": 12,
        "share_pct": 5.9,
        "avg_12m_return_pct": 14.7,
        "avg_12m_return_delta_pp": 3.8,
        "avg_12m_max_drawdown_pct": -4.1,
        "dd10_12m_rate_pct": 16.7,
        "dd10_delta_pp": -3.9,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 8.3
      },
      {
        "combo": "0111",
        "active_factors": "Baa tightness + Broad stock saturation + Broker-customer leverage",
        "months": 1,
        "share_pct": 0.5,
        "avg_12m_return_pct": -12.7,
        "avg_12m_return_delta_pp": -23.6,
        "avg_12m_max_drawdown_pct": -12.7,
        "dd10_12m_rate_pct": 100.0,
        "dd10_delta_pp": 79.4,
        "loss10_12m_rate_pct": 100.0,
        "loss10_delta_pp": 94.6,
        "loss0_12m_rate_pct": 100.0
      },
      {
        "combo": "1011",
        "active_factors": "Synthetic ERP + Broad stock saturation + Broker-customer leverage",
        "months": 6,
        "share_pct": 2.9,
        "avg_12m_return_pct": -2.4,
        "avg_12m_return_delta_pp": -13.4,
        "avg_12m_max_drawdown_pct": -7.0,
        "dd10_12m_rate_pct": 16.7,
        "dd10_delta_pp": -3.9,
        "loss10_12m_rate_pct": 16.7,
        "loss10_delta_pp": 11.3,
        "loss0_12m_rate_pct": 16.7
      },
      {
        "combo": "1101",
        "active_factors": "Synthetic ERP + Baa tightness + Broker-customer leverage",
        "months": 5,
        "share_pct": 2.5,
        "avg_12m_return_pct": -14.4,
        "avg_12m_return_delta_pp": -25.4,
        "avg_12m_max_drawdown_pct": -19.9,
        "dd10_12m_rate_pct": 100.0,
        "dd10_delta_pp": 79.4,
        "loss10_12m_rate_pct": 80.0,
        "loss10_delta_pp": 74.6,
        "loss0_12m_rate_pct": 80.0
      },
      {
        "combo": "1110",
        "active_factors": "Synthetic ERP + Baa tightness + Broad stock saturation",
        "months": 1,
        "share_pct": 0.5,
        "avg_12m_return_pct": -0.6,
        "avg_12m_return_delta_pp": -11.5,
        "avg_12m_max_drawdown_pct": -17.5,
        "dd10_12m_rate_pct": 100.0,
        "dd10_delta_pp": 79.4,
        "loss10_12m_rate_pct": 0.0,
        "loss10_delta_pp": -5.4,
        "loss0_12m_rate_pct": 100.0
      },
      {
        "combo": "1111",
        "active_factors": "Synthetic ERP + Baa tightness + Broad stock saturation + Broker-customer leverage",
        "months": 4,
        "share_pct": 2.0,
        "avg_12m_return_pct": -27.5,
        "avg_12m_return_delta_pp": -38.4,
        "avg_12m_max_drawdown_pct": -27.4,
        "dd10_12m_rate_pct": 100.0,
        "dd10_delta_pp": 79.4,
        "loss10_12m_rate_pct": 100.0,
        "loss10_delta_pp": 94.6,
        "loss0_12m_rate_pct": 100.0
      }
    ],
    "incremental_auc_rows": [
      {
        "model": "ERP only",
        "target": "Nasdaq 12m DD <= -10%",
        "n": 304,
        "base_rate_pct": 21.4,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 41.0,
        "top_quintile_delta_pp": 19.6,
        "auc": 0.67
      },
      {
        "model": "ERP only",
        "target": "Nasdaq 12m return <= -10%",
        "n": 304,
        "base_rate_pct": 5.6,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 23.0,
        "top_quintile_delta_pp": 17.4,
        "auc": 0.86
      },
      {
        "model": "ERP only",
        "target": "Nasdaq 12m return < 0",
        "n": 304,
        "base_rate_pct": 15.1,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 29.5,
        "top_quintile_delta_pp": 14.4,
        "auc": 0.57
      },
      {
        "model": "ERP + Baa",
        "target": "Nasdaq 12m DD <= -10%",
        "n": 304,
        "base_rate_pct": 21.4,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 37.7,
        "top_quintile_delta_pp": 16.3,
        "auc": 0.66
      },
      {
        "model": "ERP + Baa",
        "target": "Nasdaq 12m return <= -10%",
        "n": 304,
        "base_rate_pct": 5.6,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 16.4,
        "top_quintile_delta_pp": 10.8,
        "auc": 0.83
      },
      {
        "model": "ERP + Baa",
        "target": "Nasdaq 12m return < 0",
        "n": 304,
        "base_rate_pct": 15.1,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 24.6,
        "top_quintile_delta_pp": 9.5,
        "auc": 0.59
      },
      {
        "model": "ERP + Baa + Broad stock",
        "target": "Nasdaq 12m DD <= -10%",
        "n": 304,
        "base_rate_pct": 21.4,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 44.3,
        "top_quintile_delta_pp": 22.9,
        "auc": 0.68
      },
      {
        "model": "ERP + Baa + Broad stock",
        "target": "Nasdaq 12m return <= -10%",
        "n": 304,
        "base_rate_pct": 5.6,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 18.0,
        "top_quintile_delta_pp": 12.4,
        "auc": 0.87
      },
      {
        "model": "ERP + Baa + Broad stock",
        "target": "Nasdaq 12m return < 0",
        "n": 304,
        "base_rate_pct": 15.1,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 26.2,
        "top_quintile_delta_pp": 11.1,
        "auc": 0.65
      },
      {
        "model": "Composite B only",
        "target": "Nasdaq 12m DD <= -10%",
        "n": 304,
        "base_rate_pct": 21.4,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 44.3,
        "top_quintile_delta_pp": 22.9,
        "auc": 0.68
      },
      {
        "model": "Composite B only",
        "target": "Nasdaq 12m return <= -10%",
        "n": 304,
        "base_rate_pct": 5.6,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 18.0,
        "top_quintile_delta_pp": 12.4,
        "auc": 0.75
      },
      {
        "model": "Composite B only",
        "target": "Nasdaq 12m return < 0",
        "n": 304,
        "base_rate_pct": 15.1,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 24.6,
        "top_quintile_delta_pp": 9.5,
        "auc": 0.68
      },
      {
        "model": "Four-factor equal",
        "target": "Nasdaq 12m DD <= -10%",
        "n": 304,
        "base_rate_pct": 21.4,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 50.8,
        "top_quintile_delta_pp": 29.4,
        "auc": 0.7
      },
      {
        "model": "Four-factor equal",
        "target": "Nasdaq 12m return <= -10%",
        "n": 304,
        "base_rate_pct": 5.6,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 19.7,
        "top_quintile_delta_pp": 14.1,
        "auc": 0.86
      },
      {
        "model": "Four-factor equal",
        "target": "Nasdaq 12m return < 0",
        "n": 304,
        "base_rate_pct": 15.1,
        "top_quintile_months": 61,
        "top_quintile_rate_pct": 29.5,
        "top_quintile_delta_pp": 14.4,
        "auc": 0.67
      }
    ]
  },
  "historical_event_map": {
    "schema_version": "0.1-sp500-drawdown-map",
    "asset": "SP500",
    "drawdown_threshold_pct": -10.0,
    "major_drawdown_threshold_pct": -20.0,
    "pre_signal_rule": "Yes if the historical calibrated 75/25 risk rank reached >=80 in the 12 months before the S&P 500 first crossed -10%; Partial if 70-80; No if below 70.",
    "events": [
      {
        "name": "1990 recession / Gulf War",
        "peak_date": "1990-06-30",
        "threshold_cross_date": "1990-09-30",
        "trough_date": "1990-10-31",
        "recovery_date": "1991-02-28",
        "max_drawdown_pct": -14.8,
        "severity": "10-20%",
        "pre_signal": "No",
        "pre_signal_max_rank": 63.0,
        "pre_signal_max_decile": "D7",
        "pre_signal_date": "1989-09-30",
        "pre_signal_live_max_rank": null,
        "catalyst": "Oil shock from Iraq's invasion of Kuwait, late-cycle tightening, S&L stress, and the 1990-91 recession."
      },
      {
        "name": "Russia / LTCM crisis",
        "peak_date": "1998-07-31",
        "threshold_cross_date": "1998-09-30",
        "trough_date": "1998-09-30",
        "recovery_date": "1998-11-30",
        "max_drawdown_pct": -11.8,
        "severity": "10-20%",
        "pre_signal": "Yes",
        "pre_signal_max_rank": 96.1,
        "pre_signal_max_decile": "D10",
        "pre_signal_date": "1998-06-30",
        "pre_signal_live_max_rank": null,
        "catalyst": "Asian crisis aftershocks, Russia default, LTCM deleveraging, and a brief global funding shock."
      },
      {
        "name": "Dot-com bust",
        "peak_date": "2000-08-31",
        "threshold_cross_date": "2000-12-31",
        "trough_date": "2001-09-30",
        "recovery_date": "2003-05-31",
        "max_drawdown_pct": -29.7,
        "severity": "20%+",
        "pre_signal": "Yes",
        "pre_signal_max_rank": 98.3,
        "pre_signal_max_decile": "D10",
        "pre_signal_date": "2000-01-31",
        "pre_signal_live_max_rank": null,
        "catalyst": "Technology valuation unwind, capex reversal, recession, and accounting scandals."
      },
      {
        "name": "Global Financial Crisis",
        "peak_date": "2007-10-31",
        "threshold_cross_date": "2008-01-31",
        "trough_date": "2009-03-31",
        "recovery_date": "2009-04-30",
        "max_drawdown_pct": -50.8,
        "severity": "20%+",
        "pre_signal": "Yes",
        "pre_signal_max_rank": 88.1,
        "pre_signal_max_decile": "D9",
        "pre_signal_date": "2007-06-30",
        "pre_signal_live_max_rank": null,
        "catalyst": "Housing bust, structured-credit losses, bank/dealer leverage unwind, and funding-market seizure."
      },
      {
        "name": "Eurozone crisis / US downgrade",
        "peak_date": "2011-05-31",
        "threshold_cross_date": "2011-08-31",
        "trough_date": "2011-09-30",
        "recovery_date": "2011-10-31",
        "max_drawdown_pct": -15.5,
        "severity": "10-20%",
        "pre_signal": "No",
        "pre_signal_max_rank": 24.7,
        "pre_signal_max_decile": "D3",
        "pre_signal_date": "2011-05-31",
        "pre_signal_live_max_rank": null,
        "catalyst": "Eurozone sovereign crisis, US debt-ceiling shock, S&P downgrade, and global growth fear."
      },
      {
        "name": "Q4 2018 Fed / trade shock",
        "peak_date": "2018-09-30",
        "threshold_cross_date": "2018-12-31",
        "trough_date": "2018-12-31",
        "recovery_date": "2019-02-28",
        "max_drawdown_pct": -14.0,
        "severity": "10-20%",
        "pre_signal": "Yes",
        "pre_signal_max_rank": 86.9,
        "pre_signal_max_decile": "D9",
        "pre_signal_date": "2018-09-30",
        "pre_signal_live_max_rank": 95.8,
        "catalyst": "Fed tightening, quantitative tightening, US-China trade war, and growth scare."
      },
      {
        "name": "COVID shock",
        "peak_date": "2019-12-31",
        "threshold_cross_date": "2020-03-31",
        "trough_date": "2020-03-31",
        "recovery_date": "2020-04-30",
        "max_drawdown_pct": -20.0,
        "severity": "20%+",
        "pre_signal": "Yes",
        "pre_signal_max_rank": 87.2,
        "pre_signal_max_decile": "D9",
        "pre_signal_date": "2019-12-31",
        "pre_signal_live_max_rank": 95.6,
        "catalyst": "Exogenous pandemic shock, lockdowns, forced deleveraging, and emergency policy response."
      },
      {
        "name": "Inflation / Fed-hike bear market",
        "peak_date": "2021-12-31",
        "threshold_cross_date": "2022-04-30",
        "trough_date": "2022-09-30",
        "recovery_date": "2022-11-30",
        "max_drawdown_pct": -24.8,
        "severity": "20%+",
        "pre_signal": "Yes",
        "pre_signal_max_rank": 100.0,
        "pre_signal_max_decile": "D10",
        "pre_signal_date": "2021-06-30",
        "pre_signal_live_max_rank": 100.0,
        "catalyst": "Inflation shock, aggressive Fed hiking, rate-duration repricing, and valuation compression."
      }
    ],
    "correlations": {
      "n": 104,
      "rank_vs_next_12m_return_spearman": -0.03,
      "rank_vs_current_sp500_drawdown_spearman": 0.31,
      "rank_auc_next_12m_sp500_dd10": 0.84,
      "drawdown_events": 8,
      "scored_drawdown_events": 8,
      "pre_signal_yes_or_partial": 6,
      "severe_events": 4,
      "severe_pre_signal_yes_or_partial": 4
    },
    "note": "S&P 500 is used as the broad market drawdown tape. Event catalysts are ex-post labels for interpretation, not model inputs."
  },
  "series_metadata": [
    {
      "series_id": "WALCL",
      "label": "Fed total assets",
      "block": "official_liquidity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=WALCL",
      "frequency": "weekly",
      "unit": "millions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "WTREGEN",
      "label": "Treasury General Account",
      "block": "official_liquidity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=WTREGEN",
      "frequency": "weekly",
      "unit": "millions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "RRPONTSYD",
      "label": "ON RRP",
      "block": "official_liquidity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=RRPONTSYD",
      "frequency": "daily_or_weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "WRESBAL",
      "label": "Reserve balances",
      "block": "official_liquidity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=WRESBAL",
      "frequency": "weekly",
      "unit": "millions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "GDP",
      "label": "Nominal GDP",
      "block": "macro_denominator",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=GDP",
      "frequency": "quarterly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "quarter-start observation aligned to quarter-end; month-end latest",
      "last_observation_date": "2026-03-31",
      "stale_days": 30,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "M2SL",
      "label": "M2 money stock",
      "block": "official_liquidity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=M2SL",
      "frequency": "monthly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-03-31",
      "stale_days": 30,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "TLAACBW027SBOG",
      "label": "Bank assets",
      "block": "bank_capacity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=TLAACBW027SBOG",
      "frequency": "weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "DPSACBW027SBOG",
      "label": "Bank deposits",
      "block": "bank_capacity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DPSACBW027SBOG",
      "frequency": "weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "CASACBW027SBOG",
      "label": "Bank cash assets",
      "block": "bank_capacity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=CASACBW027SBOG",
      "frequency": "weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "TOTBKCR",
      "label": "Bank credit",
      "block": "bank_capacity",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=TOTBKCR",
      "frequency": "weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "BUSLOANS",
      "label": "C&I loans",
      "block": "credit_transmission",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=BUSLOANS",
      "frequency": "daily_or_weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "TOTALSL",
      "label": "Consumer credit",
      "block": "credit_transmission",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=TOTALSL",
      "frequency": "daily_or_weekly",
      "unit": "billions_usd",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-03-31",
      "stale_days": 30,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "TCMDO",
      "label": "All-sector debt securities and loans",
      "block": "broad_credit",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=TCMDO",
      "frequency": "quarterly",
      "unit": "millions_usd",
      "aggregation": "last",
      "transform": "quarter-start observation aligned to quarter-end; month-end latest",
      "last_observation_date": "2025-12-31",
      "stale_days": 120,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "BOGZ1FL144104005Q",
      "label": "Nonfinancial business debt securities and loans",
      "block": "broad_credit",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=BOGZ1FL144104005Q",
      "frequency": "quarterly",
      "unit": "millions_usd",
      "aggregation": "last",
      "transform": "quarter-start observation aligned to quarter-end; month-end latest",
      "last_observation_date": "2025-12-31",
      "stale_days": 120,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "BOGZ1FL663067003Q",
      "label": "Broker-dealer customer receivables",
      "block": "broker_customer_leverage",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=BOGZ1FL663067003Q",
      "frequency": "quarterly",
      "unit": "millions_usd",
      "aggregation": "last",
      "transform": "quarter-start observation aligned to quarter-end; month-end latest",
      "last_observation_date": "2025-12-31",
      "stale_days": 120,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": "Z.1 broker-dealer customer receivables; used as the long-history bridge for broker-customer financing saturation."
    },
    {
      "series_id": "DRTSCILM",
      "label": "SLOOS C&I tightening standards",
      "block": "credit_transmission",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DRTSCILM",
      "frequency": "quarterly",
      "unit": "percent",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "NFCI",
      "label": "National Financial Conditions Index",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=NFCI",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "ANFCI",
      "label": "Adjusted National Financial Conditions Index",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=ANFCI",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "NFCIRISK",
      "label": "NFCI risk subindex",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=NFCIRISK",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "NFCICREDIT",
      "label": "NFCI credit subindex",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=NFCICREDIT",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "NFCILEVERAGE",
      "label": "NFCI leverage subindex",
      "block": "vulnerability",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=NFCILEVERAGE",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "NFCINONFINLEVERAGE",
      "label": "NFCI nonfinancial leverage subindex",
      "block": "vulnerability",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=NFCINONFINLEVERAGE",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "BAA10Y",
      "label": "Moody's Baa minus 10-year Treasury",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=BAA10Y",
      "frequency": "daily_or_weekly",
      "unit": "percent",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "BAMLH0A0HYM2",
      "label": "ICE BofA high-yield OAS",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=BAMLH0A0HYM2",
      "frequency": "daily_or_weekly",
      "unit": "percent",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": "FRED public history may be shortened by licensing."
    },
    {
      "series_id": "VIXCLS",
      "label": "VIX",
      "block": "market_confirmation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=VIXCLS",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "FEDFUNDS",
      "label": "Effective federal funds rate",
      "block": "policy",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=FEDFUNDS",
      "frequency": "monthly",
      "unit": "percent",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "CPIAUCSL",
      "label": "CPI all urban consumers",
      "block": "policy",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=CPIAUCSL",
      "frequency": "monthly",
      "unit": "index",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "T10Y3M",
      "label": "10-year minus 3-month Treasury spread",
      "block": "policy",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=T10Y3M",
      "frequency": "daily_or_weekly",
      "unit": "percent",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "MORTGAGE30US",
      "label": "30-year fixed mortgage rate",
      "block": "growth_conditions",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=MORTGAGE30US",
      "frequency": "daily_or_weekly",
      "unit": "percent",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "DTWEXBGS",
      "label": "Nominal broad dollar index",
      "block": "growth_conditions",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DTWEXBGS",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "mean",
      "transform": "monthly average",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "CSUSHPINSA",
      "label": "S&P CoreLogic Case-Shiller U.S. home price index",
      "block": "growth_conditions",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=CSUSHPINSA",
      "frequency": "monthly",
      "unit": "index",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-02-28",
      "stale_days": 61,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "NASDAQCOM",
      "label": "Nasdaq Composite",
      "block": "asset_response",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=NASDAQCOM",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "SP500",
      "label": "S&P 500",
      "block": "asset_response",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=SP500",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": "FRED public history may be shortened by licensing."
    },
    {
      "series_id": "DJIA",
      "label": "Dow Jones Industrial Average",
      "block": "asset_response",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DJIA",
      "frequency": "daily_or_weekly",
      "unit": "index",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": "FRED public history starts in 2016; merged with long historical close series for validation."
    },
    {
      "series_id": "USREC",
      "label": "NBER recession indicator",
      "block": "validation",
      "source_url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=USREC",
      "frequency": "daily_or_weekly",
      "unit": "binary",
      "aggregation": "last",
      "transform": "month-end latest",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": ""
    },
    {
      "series_id": "CAPE",
      "label": "Multpl monthly Shiller PE table",
      "block": "valuation",
      "source_url": "https://www.multpl.com/shiller-pe/table/by-month",
      "frequency": "monthly",
      "unit": "ratio",
      "aggregation": "last",
      "transform": "monthly table value assigned to month end; not forward-filled past latest completed month",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": "Benchmark CAPE input uses the current monthly Shiller PE/CAPE table; partial current-month rows are excluded from the model cut."
    },
    {
      "series_id": "SYNTHETIC_ERP",
      "label": "Synthetic Damodaran-style ERP backcast",
      "block": "valuation",
      "source_url": "../docs/SYNTHETIC_ERP_BACKCAST_v0.1.md",
      "frequency": "monthly",
      "unit": "decimal_percent",
      "aggregation": "month_end",
      "transform": "primary valuation pressure uses -rolling_z(synthetic ERP); lower ERP means richer valuation",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "model_derived",
      "notes": "Synthetic ERP is model-derived from annual Damodaran ERP anchors, monthly S&P 500 price, and monthly 10-year Treasury rates."
    },
    {
      "series_id": "SP500_LONG",
      "label": "S&P 500 merged long/current monthly price series",
      "block": "asset_response",
      "source_url": "../docs/SYNTHETIC_ERP_BACKCAST_v0.1.md plus https://fred.stlouisfed.org/series/SP500",
      "frequency": "monthly",
      "unit": "index",
      "aggregation": "month-end price",
      "transform": "long Shiller-style monthly S&P price from the synthetic ERP backcast, overlaid with current FRED SP500 observations where available",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "medium",
      "notes": "Used as the S&P response target to avoid the shortened public FRED SP500 history."
    },
    {
      "series_id": "DAMODARAN_ERP",
      "label": "Damodaran monthly implied ERP workbook",
      "block": "valuation",
      "source_url": "https://pages.stern.nyu.edu/~adamodar/pc/implprem/ERPbymonth.xlsx",
      "frequency": "monthly",
      "unit": "decimal_percent",
      "aggregation": "start-of-month workbook row aligned to prior month-end",
      "transform": "valuation pressure uses -rolling_z(ERP); lower ERP means richer valuation",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "high",
      "notes": "Current monthly workbook includes S&P 500, risk-free rate, trailing cash flow, expected growth, expected return, and implied ERP."
    },
    {
      "series_id": "DOW",
      "label": "Dow Jones Industrial Average merged long/current series",
      "block": "asset_response",
      "source_url": "https://raw.githubusercontent.com/fja05680/dow-sp500-100-years/master/DJA.csv plus https://fred.stlouisfed.org/series/DJIA",
      "frequency": "monthly",
      "unit": "index",
      "aggregation": "month-end close",
      "transform": "long historical close series through 2019, overlaid with current FRED DJIA monthly closes from the 2016 overlap onward",
      "last_observation_date": "2026-04-30",
      "stale_days": 0,
      "is_stale": false,
      "vintage_type": "current_vintage",
      "observability": "medium",
      "notes": "Added as a third equity response target; it does not affect the primary four-factor signal."
    }
  ],
  "methodology": {
    "headline": "V0.7 uses a primary 75/25 decile rank model: 75% four-factor equal-score percentile plus 25% breadth percentile. The four inputs are synthetic Damodaran-style ERP tightness, Baa spread tightness, broad stock saturation, and Composite B broker-customer leverage saturation. S&P validation uses a merged long/current monthly price series to avoid the shortened public FRED response history.",
    "liquidity_index_formula": "0.55 official liquidity + 0.45 bank capacity; market prices are excluded from core supply.",
    "impulse_formula": "Headline impulse = 0.45 supply impulse + 0.45 Biggs-style private credit impulse + 0.10 growth-conditions impulse.",
    "vulnerability_formula": "0.35 credit-stock vulnerability + 0.25 bank funding stress + 0.25 policy restrictiveness + 0.15 market fragility.",
    "false_positive_control": "Policy quality is a continuous score using NPL flow, reserve flow, TGA/RRP offsets, and transmission breadth.",
    "caveat": "Current-vintage public-data model. Hidden leverage is proxied, not fully observed."
  }
}
