{
  "symbol": "BTC/USDT",
  "timeframe": "15m",
  "timestamp": "2026-06-29 17:00 KST",
  "last_price": 60000.1,
  "num_candles": 300,
  "stage1_analyses": {
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "bearish",
      "confidence": 0.58,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.62,
      "setup_signals": [
        "현재가 $60,000.10은 7일 범위 EQ $59,656.35 위에 있어 약한 프리미엄 구간",
        "최근 299번 캔들에서 shooting_star, 298번 캔들에서 bearish_engulfing 발생으로 단기 상단 거부 신호",
        "bear_score 2.10이 bull_score 1.30보다 우세하여 캔들 기반 매도 압력이 상대적으로 강함",
        "EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70이 현재가 바로 아래에 밀집해 있어 이탈 시 단기 하방 확인 가능",
        "7일 고점 $60,924.70 아래에서 반전형 패턴이 출현해 저항권 접근 후 매수 추격 약화 가능성"
      ],
      "reasoning": "현재 BTC는 $60,000.10으로 EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70 바로 위에 머물러 있어 구조적으로는 명확한 BOS나 CHoCH가 확인되지 않은 중립 국면이다. 다만 최근 패턴은 298번 bearish_engulfing과 299번 shooting_star가 연속 출현했고, 후보 중 bearish_harami 품질이 0.783으로 가장 높아 단기 setup은 하방 쪽이 우세하다. 7일 범위의 EQ는 $59,656.35이며 현재가는 그 위 프리미엄 영역에 있어, $60,000 부근에서 매수 지속보다 상단 거부 리스크가 더 크다. ATR이 $217.63이므로 EMA 클러스터 하단인 $59,864.57 이탈 시 $59,656.35까지의 단기 되돌림은 충분히 가능한 범위다.",
      "key_levels": {
        "support": [
          59951.7,
          59920.73,
          59864.57,
          59656.35,
          58388.0
        ],
        "resistance": [
          60000.1,
          60924.7
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,924.70",
      "risk_scenario": "반대로 가격이 EMA 클러스터를 지지로 유지한 채 $60,924.70을 15분봉 종가 기준으로 돌파하면, 최근 shooting_star와 bearish_engulfing은 실패 신호가 되며 숏 커버링성 상승이 이어질 수 있다. 이 경우 구조_bias도 중립에서 bullish로 전환될 가능성이 커진다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 154,
        "recent_patterns": 8,
        "pattern_list": [
          "shooting_star@299",
          "bearish_engulfing@298",
          "three_white_soldiers@291",
          "doji@293",
          "doji@295",
          "doji@296",
          "bearish_harami@293",
          "bullish_harami@295"
        ],
        "atr_value": 217.63,
        "vol_avg_20": 1534.83,
        "high_volume_patterns": [
          "doji",
          "bearish_harami"
        ],
        "pattern_candidates": [
          {
            "pattern": "bearish_harami",
            "signal": "bearish",
            "pattern_quality": 0.783,
            "tier": "strict",
            "high_volume": true
          },
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.617,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "shooting_star",
            "signal": "bearish",
            "pattern_quality": 0.557,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.555,
            "tier": "candidate",
            "high_volume": true
          },
          {
            "pattern": "three_white_soldiers",
            "signal": "bullish",
            "pattern_quality": 0.438,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.783,
        "bull_score": 1.3,
        "bear_score": 2.1
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.62,\n  \"setup_signals\": [\n    \"현재가 $60,000.10은 7일 범위 EQ $59,656.35 위에 있어 약한 프리미엄 구간\",\n    \"최근 299번 캔들에서 shooting_star, 298번 캔들에서 bearish_engulfing 발생으로 단기 상단 거부 신호\",\n    \"bear_score 2.10이 bull_score 1.30보다 우세하여 캔들 기반 매도 압력이 상대적으로 강함\",\n    \"EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70이 현재가 바로 아래에 밀집해 있어 이탈 시 단기 하방 확인 가능\",\n    \"7일 고점 $60,924.70 아래에서 반전형 패턴이 출현해 저항권 접근 후 매수 추격 약화 가능성\"\n  ],\n  \"reasoning\": \"현재 BTC는 $60,000.10으로 EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70 바로 위에 머물러 있어 구조적으로는 명확한 BOS나 CHoCH가 확인되지 않은 중립 국면이다. 다만 최근 패턴은 298번 bearish_engulfing과 299번 shooting_star가 연속 출현했고, 후보 중 bearish_harami 품질이 0.783으로 가장 높아 단기 setup은 하방 쪽이 우세하다. 7일 범위의 EQ는 $59,656.35이며 현재가는 그 위 프리미엄 영역에 있어, $60,000 부근에서 매수 지속보다 상단 거부 리스크가 더 크다. ATR이 $217.63이므로 EMA 클러스터 하단인 $59,864.57 이탈 시 $59,656.35까지의 단기 되돌림은 충분히 가능한 범위다.\",\n  \"key_levels\": {\n    \"support\": [\n      59951.7,\n      59920.73,\n      59864.57,\n      59656.35,\n      58388.0\n    ],\n    \"resistance\": [\n      60000.1,\n      60924.7\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,924.70\",\n  \"risk_scenario\": \"반대로 가격이 EMA 클러스터를 지지로 유지한 채 $60,924.70을 15분봉 종가 기준으로 돌파하면, 최근 shooting_star와 bearish_engulfing은 실패 신호가 되며 숏 커버링성 상승이 이어질 수 있다. 이 경우 구조_bias도 중립에서 bullish로 전환될 가능성이 커진다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.58,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.68,
      "setup_signals": [
        "현재가 $60,000.10은 7일 레인지 EQ $59,656.35 위에 있어 소폭 프리미엄 구간",
        "롱 계정 비율 0.678, long_account_ratio 0.684로 롱 포지셔닝 과밀 신호",
        "24시간 OI +1.724% 증가 중이나 CVD 변화 -3,114.624로 신규 포지션 유입 대비 매수 체결 힘 약화",
        "계정 플로우가 long_accounts_rising_short_accounts_falling로 롱 쏠림이 증가",
        "하방 청산 유동성 $58,900에 2,407 규모, $58,800에 1,878 규모로 근거리 하방 자석 존재",
        "현물-선물 베이시스 -0.0431%로 선물이 현물 대비 약한 상태"
      ],
      "reasoning": "구조적으로는 현재가 $60,000.10이 EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70 부근에 압축되어 있고, 7일 고점 $60,924.70 또는 저점 $58,388.00 이탈이 없어 확정된 BOS/CHoCH는 보이지 않아 structure_bias는 중립이다. 다만 셋업 관점에서는 가격이 레인지 EQ $59,656.35 위 프리미엄에 있고, 롱 계정 비율이 0.678까지 올라 account_long_crowding 1.000을 기록해 단기 역추세 숏 셋업이 우세하다. OI가 24시간 +1.724% 증가하는 동안 CVD는 -3,114.624 감소해 신규 포지션이 붙지만 공격적 매수 참여가 약한 형태이며, 이는 4-8시간 선행성 관점에서 롱 트랩 리스크를 키운다. 하방에는 $58,900 및 $58,800 청산 유동성이 가까운 반면, 상방은 $60,700과 $60,924.70을 확실히 수용해야 bearish setup이 무효화된다.",
      "key_levels": {
        "support": [
          59920.73,
          59864.57,
          58900,
          58800,
          58388
        ],
        "resistance": [
          60700,
          60924.7,
          61900,
          65500
        ]
      },
      "time_horizon": "short term, 향후 4-8시간",
      "invalidation_level": "$60,924.70 상방 15분봉 종가 수용",
      "risk_scenario": "$60,700 상방 청산 레벨을 먼저 흡수하고 7일 고점 $60,924.70 위에서 수용되면, 과밀 롱이 즉시 청산으로 이어지지 않고 숏 커버링이 붙어 $61,900 유동성까지 확장될 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.3,
        "cvd_change": -3114.624,
        "oi_trend": 0.672,
        "oi_change_pct_24h": 1.724,
        "oi_latest": 104597.369,
        "funding_pressure": 0.47,
        "funding_avg": 2.966e-05,
        "funding_change_24h": 1.757e-05,
        "long_account_ratio": 0.684,
        "short_account_ratio": 0.316,
        "long_account_latest": 0.678,
        "short_account_latest": 0.322,
        "long_account_change_24h": 0.0092,
        "short_account_change_24h": -0.0092,
        "account_flow_label": "long_accounts_rising_short_accounts_falling",
        "account_short_crowding": 0.0,
        "account_long_crowding": 1.0,
        "ls_imbalance": 0.0,
        "ls_imbalance_interpretation": "high=short-account crowding / low=long-account crowding",
        "spot_futures_basis_score": 0.489,
        "spot_futures_basis_pct": -0.0431,
        "basis_change_lookback": 0.0002,
        "aggregate_score": 0.386,
        "bull_signals": 1,
        "bear_signals": 2,
        "liq_below": [
          [
            58900,
            2407.0982075999996
          ],
          [
            58800,
            1877.8178696999998
          ],
          [
            57700,
            1915.733784
          ]
        ],
        "liq_above": [
          [
            60700,
            2213.0112792
          ],
          [
            61900,
            1684.517593
          ],
          [
            65500,
            2105.6469912499997
          ]
        ],
        "strongest_liq_level": 53600,
        "fragility_score": 0.716,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.68,\n  \"setup_signals\": [\n    \"현재가 $60,000.10은 7일 레인지 EQ $59,656.35 위에 있어 소폭 프리미엄 구간\",\n    \"롱 계정 비율 0.678, long_account_ratio 0.684로 롱 포지셔닝 과밀 신호\",\n    \"24시간 OI +1.724% 증가 중이나 CVD 변화 -3,114.624로 신규 포지션 유입 대비 매수 체결 힘 약화\",\n    \"계정 플로우가 long_accounts_rising_short_accounts_falling로 롱 쏠림이 증가\",\n    \"하방 청산 유동성 $58,900에 2,407 규모, $58,800에 1,878 규모로 근거리 하방 자석 존재\",\n    \"현물-선물 베이시스 -0.0431%로 선물이 현물 대비 약한 상태\"\n  ],\n  \"reasoning\": \"구조적으로는 현재가 $60,000.10이 EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70 부근에 압축되어 있고, 7일 고점 $60,924.70 또는 저점 $58,388.00 이탈이 없어 확정된 BOS/CHoCH는 보이지 않아 structure_bias는 중립이다. 다만 셋업 관점에서는 가격이 레인지 EQ $59,656.35 위 프리미엄에 있고, 롱 계정 비율이 0.678까지 올라 account_long_crowding 1.000을 기록해 단기 역추세 숏 셋업이 우세하다. OI가 24시간 +1.724% 증가하는 동안 CVD는 -3,114.624 감소해 신규 포지션이 붙지만 공격적 매수 참여가 약한 형태이며, 이는 4-8시간 선행성 관점에서 롱 트랩 리스크를 키운다. 하방에는 $58,900 및 $58,800 청산 유동성이 가까운 반면, 상방은 $60,700과 $60,924.70을 확실히 수용해야 bearish setup이 무효화된다.\",\n  \"key_levels\": {\n    \"support\": [\n      59920.73,\n      59864.57,\n      58900,\n      58800,\n      58388\n    ],\n    \"resistance\": [\n      60700,\n      60924.7,\n      61900,\n      65500\n    ]\n  },\n  \"time_horizon\": \"short term, 향후 4-8시간\",\n  \"invalidation_level\": \"$60,924.70 상방 15분봉 종가 수용\",\n  \"risk_scenario\": \"$60,700 상방 청산 레벨을 먼저 흡수하고 7일 고점 $60,924.70 위에서 수용되면, 과밀 롱이 즉시 청산으로 이어지지 않고 숏 커버링이 붙어 $61,900 유동성까지 확장될 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bearish",
      "confidence": 0.82,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.92,
      "setup_signals": [
        "현재가 60000.10은 EQ 59587.50 위의 프리미엄 구간에 위치",
        "되돌림이 87.4%까지 진행되어 매도 프리미엄 가격대 형성",
        "최근 구조 이벤트가 60037.00 하향 BOS로 마감되어 단기 하방 구조 우위",
        "60174.60-60435.80 구간에 활성 bearish OB 후보 존재, 현재가와 근접",
        "bearish OB 내부 중간값 60305.20 및 CHoCH_bullish 레벨 60314.30 부근이 공급 반응 구간",
        "이전 저점 59714.80이 이미 하향 이탈되어 sell-side liquidity가 일부 소화됨"
      ],
      "reasoning": "확정 구조 기준으로는 최근 시퀀스가 CHoCH_bullish 이후 다시 60037.00 하향 BOS를 만들었기 때문에 structure_bias는 bearish로 판단한다. 현재가는 60000.10으로 EQ 59587.50보다 위에 있으며, 되돌림 87.4%의 프리미엄 구간에서 60174.60-60435.80 bearish OB 후보 바로 아래에 위치해 있어 매도 셋업이 유효하다. 다만 해당 OB는 confirmed가 아닌 candidate이고 최근 명확한 liquidity sweep 및 미체결 FVG가 없으므로, 하방 확률은 높지만 추격보다는 60174.60-60314.30 또는 OB 상단 60435.80 반응 확인이 중요하다. 하방 목표는 우선 59819.80 bearish BOS 레벨, 그 아래 59714.80 이전 저점 및 59360.30 뉴욕 세션 저점이다.",
      "key_levels": {
        "support": [
          59819.8,
          59714.8,
          59360.3,
          58850.0
        ],
        "resistance": [
          60037.0,
          60162.0,
          60174.6,
          60314.3,
          60435.8,
          60924.7
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "60435.80 상방에서 15분봉 종가 수용 시 bearish OB가 무효화되며 단기 하방 셋업은 실패로 판단",
      "risk_scenario": "가격이 60174.60-60435.80 bearish OB를 강하게 돌파하고 60314.30 위에서 수용되면, 하방 BOS 이후의 되돌림이 단순한 매도 기회가 아니라 재축적 또는 bullish MSS로 전환될 수 있다. 이 경우 60924.70 이전 고점의 buy-side liquidity를 재차 노리는 상승 시나리오가 열릴 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "order_blocks_total": 1,
        "confirmed_bullish_ob": 0,
        "confirmed_bearish_ob": 0,
        "candidate_bullish_ob": 0,
        "candidate_bearish_ob": 1,
        "active_bullish_ob": 0,
        "active_bearish_ob": 1,
        "nearest_bull_ob_range": null,
        "nearest_bear_ob_range": {
          "bottom": 60174.6,
          "top": 60435.8,
          "quality": "candidate",
          "score": 0.603
        },
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [
          {
            "type": "bearish_ob",
            "idx": 222,
            "top": 60435.8,
            "bottom": 60174.6,
            "mid": 60305.2,
            "quality": "candidate",
            "score": 0.603,
            "displacement_score": 0.522,
            "has_fvg": true,
            "has_sweep_context": false,
            "fvg_range": {
              "bottom": 60142.0,
              "top": 60213.2
            },
            "swept_level": null,
            "source_move_idx": 222,
            "proximity": "nearby"
          }
        ],
        "ob_mitigated_count": 0,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 59,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bearish",
          "CHoCH_bullish",
          "BOS_bearish"
        ],
        "bos_choch_levels": [
          {
            "type": "BOS_bullish",
            "level": 60557.8
          },
          {
            "type": "CHoCH_bearish",
            "level": 60162.0
          },
          {
            "type": "BOS_bearish",
            "level": 59819.8
          },
          {
            "type": "CHoCH_bullish",
            "level": 60314.3
          },
          {
            "type": "BOS_bearish",
            "level": 60037.0
          }
        ],
        "bos_sequence": [
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bearish",
          "CHoCH_bullish",
          "BOS_bearish"
        ],
        "consecutive_bull_bos": 0,
        "consecutive_bear_bos": 1,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "premium",
        "eq_level": 59587.5,
        "range_high": 60325.0,
        "range_low": 58850.0,
        "bull_score": 4.7,
        "bear_score": 10.662,
        "setup_bias": "bearish",
        "setup_score": 0.92,
        "setup_signals": [
          "bearish CHoCH below $60,162.00",
          "bearish BOS below $59,819.80",
          "bearish BOS below $60,037.00",
          "bearish OB candidate $60,174.60-$60,435.80 (nearby, score=0.60)",
          "deep retracement 87.4% in premium zone"
        ],
        "retracement_direction": "bearish",
        "current_retracement_pct": 87.4,
        "deepest_retracement_pct": 112.3,
        "previous_day_high": 60924.7,
        "previous_day_low": 59714.8,
        "broken_prev_high": false,
        "broken_prev_low": true,
        "sessions": {
          "London": {
            "active": false,
            "high": null,
            "low": null
          },
          "New York": {
            "active": true,
            "high": 60325.0,
            "low": 59360.3
          },
          "Asian kill zone": {
            "active": false,
            "high": null,
            "low": null
          }
        }
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.82,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.92,\n  \"setup_signals\": [\n    \"현재가 60000.10은 EQ 59587.50 위의 프리미엄 구간에 위치\",\n    \"되돌림이 87.4%까지 진행되어 매도 프리미엄 가격대 형성\",\n    \"최근 구조 이벤트가 60037.00 하향 BOS로 마감되어 단기 하방 구조 우위\",\n    \"60174.60-60435.80 구간에 활성 bearish OB 후보 존재, 현재가와 근접\",\n    \"bearish OB 내부 중간값 60305.20 및 CHoCH_bullish 레벨 60314.30 부근이 공급 반응 구간\",\n    \"이전 저점 59714.80이 이미 하향 이탈되어 sell-side liquidity가 일부 소화됨\"\n  ],\n  \"reasoning\": \"확정 구조 기준으로는 최근 시퀀스가 CHoCH_bullish 이후 다시 60037.00 하향 BOS를 만들었기 때문에 structure_bias는 bearish로 판단한다. 현재가는 60000.10으로 EQ 59587.50보다 위에 있으며, 되돌림 87.4%의 프리미엄 구간에서 60174.60-60435.80 bearish OB 후보 바로 아래에 위치해 있어 매도 셋업이 유효하다. 다만 해당 OB는 confirmed가 아닌 candidate이고 최근 명확한 liquidity sweep 및 미체결 FVG가 없으므로, 하방 확률은 높지만 추격보다는 60174.60-60314.30 또는 OB 상단 60435.80 반응 확인이 중요하다. 하방 목표는 우선 59819.80 bearish BOS 레벨, 그 아래 59714.80 이전 저점 및 59360.30 뉴욕 세션 저점이다.\",\n  \"key_levels\": {\n    \"support\": [\n      59819.8,\n      59714.8,\n      59360.3,\n      58850.0\n    ],\n    \"resistance\": [\n      60037.0,\n      60162.0,\n      60174.6,\n      60314.3,\n      60435.8,\n      60924.7\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"60435.80 상방에서 15분봉 종가 수용 시 bearish OB가 무효화되며 단기 하방 셋업은 실패로 판단\",\n  \"risk_scenario\": \"가격이 60174.60-60435.80 bearish OB를 강하게 돌파하고 60314.30 위에서 수용되면, 하방 BOS 이후의 되돌림이 단순한 매도 기회가 아니라 재축적 또는 bullish MSS로 전환될 수 있다. 이 경우 60924.70 이전 고점의 buy-side liquidity를 재차 노리는 상승 시나리오가 열릴 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "bearish",
      "confidence": 0.72,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.64,
      "setup_signals": [
        "메인 분배 레인지 EQ 약 $59,561 상단에서 거래 중: 현재가 $60,000.10은 프리미엄 영역",
        "Phase D 분배 구조: BC $60,734.00 → AR $58,388.00 → ST $60,167.30 → UT $60,303.20 → UTAD $60,543.30 → LPSY $59,883.20",
        "최근 하위 구조에서 $60,325.00 상단 테스트 후 $59,900.70까지 약세 반응 발생",
        "현재가 $60,000.10은 LPSY $59,883.20 부근 재테스트 구간으로, 상방 수용보다 공급 재출현 여부가 핵심",
        "상단 무효화/리클레임 구간은 UTAD $60,543.30 및 BC $60,734.00"
      ],
      "reasoning": "15분 BTC 구조는 regime=DIS, regime_fitness 0.963으로 분배 판정이 우세하며, 메인 앵커는 BC $60,734.00와 AR $58,388.00입니다. 이벤트 체인은 ST $60,167.30 이후 SOW_IN_PHASE_B $59,819.80, UT $60,303.20, UTAD $60,543.30, LPSY $59,883.20로 이어져 Phase D 분배 해석이 유지됩니다. 다만 현재가 $60,000.10은 아직 메인 레인지 내부이고, Phase E 하방 이탈이 확정된 상태는 아니므로 구조적 편향은 bearish지만 즉각적 경로는 $59,900.70/$59,883.20 지지 재검증 후 약세 지속 여부를 확인해야 합니다. $60,325.00~$60,543.30을 재차 회복하지 못하면 공급 우위가 유지되며, 반대로 $60,734.00 상단 수용은 분배 해석을 무효화합니다.",
      "key_levels": {
        "support": [
          59900.7,
          59883.2,
          59360.3,
          58888.0,
          58388.0
        ],
        "resistance": [
          60219.4,
          60325.0,
          60543.3,
          60734.0
        ]
      },
      "time_horizon": "short to medium term",
      "invalidation_level": "$60,734.00 상단 수용",
      "risk_scenario": "$60,325.00을 회복하고 $60,543.30 UTAD 고점을 다시 수용하면 단기 약세 셋업은 약화됩니다. 특히 $60,734.00 BC 상단을 돌파 후 유지하면 현재 분배 Phase D 해석은 무효화되고, 레인지 상방 재평가가 필요합니다.",
      "data_quality": "high",
      "metrics": {
        "acc_score": 96.2,
        "dis_score": 96.2,
        "regime": "DIS",
        "regime_state": "dis_candidate",
        "structure_bias": "bearish",
        "phase_context": "dis_candidate / distribution / Phase D",
        "phases_detected": [
          "BC",
          "AR",
          "ST",
          "SOW_IN_PHASE_B",
          "UT",
          "UTAD",
          "LPSY"
        ],
        "last_phase": "LPSY",
        "phase_candidates": [
          {
            "label": "BC",
            "side": "high",
            "idx": 10,
            "price": 60734.0,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "low",
            "idx": 33,
            "price": 58388.0,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "high",
            "idx": 76,
            "price": 60167.3,
            "color": "#118ab2"
          },
          {
            "label": "SOW_IN_PHASE_B",
            "side": "low",
            "idx": 165,
            "price": 59819.8,
            "color": "#ef476f"
          },
          {
            "label": "UT",
            "side": "high",
            "idx": 168,
            "price": 60303.2,
            "color": "#f9844a"
          },
          {
            "label": "UTAD",
            "side": "high",
            "idx": 206,
            "price": 60543.3,
            "color": "#f9844a"
          },
          {
            "label": "LPSY",
            "side": "high",
            "idx": 260,
            "price": 59883.2,
            "color": "#8338ec"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "15m_cycle_1",
            "sequence": 1,
            "timeframe": "15m",
            "regime": "distribution",
            "role": "prior_completed_structure",
            "is_active": false,
            "is_completed": true,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 10,
            "end_idx": 260,
            "phase_count": 7,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 10,
                "price": 60734.0,
                "color": "#ffd166",
                "dt": "2026-06-26 16:30:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 33,
                "price": 58388.0,
                "color": "#06d6a0",
                "dt": "2026-06-26 22:15:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 76,
                "price": 60167.3,
                "color": "#118ab2",
                "dt": "2026-06-27 09:00:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 165,
                "price": 59819.8,
                "color": "#ef476f",
                "dt": "2026-06-28 07:15:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 168,
                "price": 60303.2,
                "color": "#f9844a",
                "dt": "2026-06-28 08:00:00+09:00"
              },
              {
                "label": "UTAD",
                "side": "high",
                "idx": 206,
                "price": 60543.3,
                "color": "#f9844a",
                "dt": "2026-06-28 17:30:00+09:00"
              },
              {
                "label": "LPSY",
                "side": "high",
                "idx": 260,
                "price": 59883.2,
                "color": "#8338ec",
                "dt": "2026-06-29 07:00:00+09:00"
              }
            ]
          },
          {
            "structure_id": "15m_cycle_2",
            "sequence": 2,
            "timeframe": "15m",
            "regime": "redistribution",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "redistribution",
            "start_idx": 263,
            "end_idx": 296,
            "phase_count": 5,
            "phases": [
              {
                "label": "SC",
                "side": "low",
                "idx": 263,
                "price": 58888.0,
                "color": "#ffd166",
                "dt": "2026-06-29 07:45:00+09:00"
              },
              {
                "label": "AR",
                "side": "high",
                "idx": 281,
                "price": 60219.4,
                "color": "#06d6a0",
                "dt": "2026-06-29 12:15:00+09:00"
              },
              {
                "label": "ST",
                "side": "low",
                "idx": 288,
                "price": 59360.3,
                "color": "#118ab2",
                "dt": "2026-06-29 14:00:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 293,
                "price": 60325.0,
                "color": "#f9844a",
                "dt": "2026-06-29 15:15:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 296,
                "price": 59900.7,
                "color": "#ef476f",
                "dt": "2026-06-29 16:00:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "15m_cycle_2",
        "primary_structure_id": "15m_cycle_1",
        "structure_count": 2,
        "regime_fitness": 0.9625,
        "current_event": "LPSY",
        "major_phase": "D",
        "pos_in_range": 0.5,
        "main_range_low": 58388.0,
        "main_range_high": 60734.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.72,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.64,\n  \"setup_signals\": [\n    \"메인 분배 레인지 EQ 약 $59,561 상단에서 거래 중: 현재가 $60,000.10은 프리미엄 영역\",\n    \"Phase D 분배 구조: BC $60,734.00 → AR $58,388.00 → ST $60,167.30 → UT $60,303.20 → UTAD $60,543.30 → LPSY $59,883.20\",\n    \"최근 하위 구조에서 $60,325.00 상단 테스트 후 $59,900.70까지 약세 반응 발생\",\n    \"현재가 $60,000.10은 LPSY $59,883.20 부근 재테스트 구간으로, 상방 수용보다 공급 재출현 여부가 핵심\",\n    \"상단 무효화/리클레임 구간은 UTAD $60,543.30 및 BC $60,734.00\"\n  ],\n  \"reasoning\": \"15분 BTC 구조는 regime=DIS, regime_fitness 0.963으로 분배 판정이 우세하며, 메인 앵커는 BC $60,734.00와 AR $58,388.00입니다. 이벤트 체인은 ST $60,167.30 이후 SOW_IN_PHASE_B $59,819.80, UT $60,303.20, UTAD $60,543.30, LPSY $59,883.20로 이어져 Phase D 분배 해석이 유지됩니다. 다만 현재가 $60,000.10은 아직 메인 레인지 내부이고, Phase E 하방 이탈이 확정된 상태는 아니므로 구조적 편향은 bearish지만 즉각적 경로는 $59,900.70/$59,883.20 지지 재검증 후 약세 지속 여부를 확인해야 합니다. $60,325.00~$60,543.30을 재차 회복하지 못하면 공급 우위가 유지되며, 반대로 $60,734.00 상단 수용은 분배 해석을 무효화합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59900.7,\n      59883.2,\n      59360.3,\n      58888.0,\n      58388.0\n    ],\n    \"resistance\": [\n      60219.4,\n      60325.0,\n      60543.3,\n      60734.0\n    ]\n  },\n  \"time_horizon\": \"short to medium term\",\n  \"invalidation_level\": \"$60,734.00 상단 수용\",\n  \"risk_scenario\": \"$60,325.00을 회복하고 $60,543.30 UTAD 고점을 다시 수용하면 단기 약세 셋업은 약화됩니다. 특히 $60,734.00 BC 상단을 돌파 후 유지하면 현재 분배 Phase D 해석은 무효화되고, 레인지 상방 재평가가 필요합니다.\",\n  \"data_quality\": \"high\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bullish",
      "confidence": 0.62,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.58,
      "setup_signals": [
        "현재가 $60,000.10이 0.382 되돌림 $59,956.48 바로 위에서 테스트 중이며 거리 0.07%로 매우 근접",
        "스윙 EQ인 0.5 되돌림 $59,842.65 위에 위치하여 상승 스윙 $59,360 → $60,325의 얕은 되돌림 구조 유지",
        "단기 핵심 컨플루언스 $60,003.17에 ret_0.382, ret_0.382, ret_0.236이 중첩되어 cluster_score 0.85",
        "골든비율 0.618 지지 $59,728.82가 하방의 고확률 반응 구간으로 대기",
        "EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70 위/근처에서 가격이 유지되어 피보나치 지지 테스트와 정렬"
      ],
      "reasoning": "현재 BTC는 상승 스윙 $59,360 → $60,325 기준 0.382 되돌림 $59,956.48을 테스트 중이며, 현재가 $60,000.10은 핵심 컨플루언스 $60,003.17과 거의 동일한 위치에 있습니다. 0.382 지지가 유지되면 첫 저항은 ret_0.236 $60,097.33, 이후 스윙 고점 $60,325.00과 확장 목표 $60,587.40까지 열립니다. 다만 확인된 BOS/CHoCH 또는 구조적 수용 정보가 없으므로 structure_bias는 bullish가 아니라 neutral로 평가합니다. setup 측면에서는 EQ $59,842.65 위에서 얕은 되돌림을 유지하고 있고 confluence_quality 0.850, reaction_probability 0.65로 단기 반등 셋업은 bullish입니다.",
      "key_levels": {
        "support": [
          59956.48,
          59842.65,
          59728.82,
          59566.75
        ],
        "resistance": [
          60097.33,
          60325.0,
          60587.4,
          60724.39,
          60921.18
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "59728.82",
      "risk_scenario": "가격이 0.382 지지 $59,956.48을 명확히 이탈하고 EQ $59,842.65 아래로 수용되면 현재의 얕은 되돌림 반등 셋업은 약화됩니다. 특히 골든비율 $59,728.82까지 붕괴되면 상승 스윙의 정상 조정 범위를 벗어나며 $59,566.75의 0.786 되돌림 또는 $59,461.88 컨플루언스까지 하방 유동성 탐색이 진행될 수 있습니다.",
      "data_quality": "medium",
      "metrics": {
        "swing_pair": "Low→High: $59,360 → $60,325",
        "direction": "up",
        "nearest_fib": "ret_0.382",
        "nearest_fib_price": 59956.48,
        "nearest_fib_distance": 0.07,
        "golden_ratio_level": 59728.82,
        "fib_ret_382": 59956.48,
        "fib_ret_618": 59728.82,
        "confluence_zones": [
          {
            "price": 59742.61,
            "count": 3,
            "levels": [
              "ret_0.5",
              "ret_0.618",
              "ret_0.5"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 60003.17,
            "count": 3,
            "levels": [
              "ret_0.382",
              "ret_0.382",
              "ret_0.236"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 60412.81,
            "count": 3,
            "levels": [
              "ext_1.0",
              "ret_0.236",
              "ext_1.272"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 60856.76,
            "count": 3,
            "levels": [
              "ext_1.414",
              "ext_1.618",
              "ext_1.0"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 59461.88,
            "count": 2,
            "levels": [
              "ret_0.618",
              "ret_0.786"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          59956.4846,
          59842.65,
          59728.8154
        ],
        "resistance_levels": [
          60097.3308,
          60325.0,
          60587.3984
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 60097.33,
            "distance_pct": 0.16,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.382",
            "price": 59956.48,
            "distance_pct": 0.07,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.5",
            "price": 59842.65,
            "distance_pct": 0.26,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.618",
            "price": 59728.82,
            "distance_pct": 0.45,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.786",
            "price": 59566.75,
            "distance_pct": 0.72,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ext_1.0",
            "price": 60325.0,
            "distance_pct": 0.54,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ext_1.272",
            "price": 60587.4,
            "distance_pct": 0.98,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ext_1.414",
            "price": 60724.39,
            "distance_pct": 1.21,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ext_1.618",
            "price": 60921.18,
            "distance_pct": 1.54,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ext_2.0",
            "price": 61289.7,
            "distance_pct": 2.15,
            "is_support": false,
            "cluster_score": 0.0
          }
        ],
        "confluence_quality": 0.85,
        "fib_reaction_state": "testing",
        "reaction_probability": 0.65
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.58,\n  \"setup_signals\": [\n    \"현재가 $60,000.10이 0.382 되돌림 $59,956.48 바로 위에서 테스트 중이며 거리 0.07%로 매우 근접\",\n    \"스윙 EQ인 0.5 되돌림 $59,842.65 위에 위치하여 상승 스윙 $59,360 → $60,325의 얕은 되돌림 구조 유지\",\n    \"단기 핵심 컨플루언스 $60,003.17에 ret_0.382, ret_0.382, ret_0.236이 중첩되어 cluster_score 0.85\",\n    \"골든비율 0.618 지지 $59,728.82가 하방의 고확률 반응 구간으로 대기\",\n    \"EMA20 $59,920.73, EMA120 $59,864.57, EMA240 $59,951.70 위/근처에서 가격이 유지되어 피보나치 지지 테스트와 정렬\"\n  ],\n  \"reasoning\": \"현재 BTC는 상승 스윙 $59,360 → $60,325 기준 0.382 되돌림 $59,956.48을 테스트 중이며, 현재가 $60,000.10은 핵심 컨플루언스 $60,003.17과 거의 동일한 위치에 있습니다. 0.382 지지가 유지되면 첫 저항은 ret_0.236 $60,097.33, 이후 스윙 고점 $60,325.00과 확장 목표 $60,587.40까지 열립니다. 다만 확인된 BOS/CHoCH 또는 구조적 수용 정보가 없으므로 structure_bias는 bullish가 아니라 neutral로 평가합니다. setup 측면에서는 EQ $59,842.65 위에서 얕은 되돌림을 유지하고 있고 confluence_quality 0.850, reaction_probability 0.65로 단기 반등 셋업은 bullish입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59956.48,\n      59842.65,\n      59728.82,\n      59566.75\n    ],\n    \"resistance\": [\n      60097.33,\n      60325.0,\n      60587.4,\n      60724.39,\n      60921.18\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"59728.82\",\n  \"risk_scenario\": \"가격이 0.382 지지 $59,956.48을 명확히 이탈하고 EQ $59,842.65 아래로 수용되면 현재의 얕은 되돌림 반등 셋업은 약화됩니다. 특히 골든비율 $59,728.82까지 붕괴되면 상승 스윙의 정상 조정 범위를 벗어나며 $59,566.75의 0.786 되돌림 또는 $59,461.88 컨플루언스까지 하방 유동성 탐색이 진행될 수 있습니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "neutral",
      "confidence": 0.54,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.62,
      "setup_signals": [
        "현재가 $60,000.10이 고점수렴 bullish Bat 형성 PRZ $59,703.20-$60,039.05 내부에 위치, D 예상가 $59,871.13",
        "bullish Gartley 형성 PRZ $59,766.59-$60,009.11이 현재가 바로 아래/내부에 겹침, D 예상가 $59,887.85",
        "bullish Butterfly 형성 PRZ $59,700.93-$59,975.14와 bullish Bat PRZ가 중첩되어 $59,700-$60,040 구간에 하방 반응 후보 밀집",
        "이미 확인된 bullish Gartley 완료 PRZ $59,849.11-$60,010.86에서 반응 확인, TP1 $60,072.55 / TP2 $60,160.63",
        "반대편으로 bearish Gartley 형성 PRZ $59,856.22-$60,128.74도 현재가를 감싸고 있어 즉시 상방 추격은 제한",
        "상단에는 확인된 bearish Butterfly/Bat/Gartley 반응대 $60,242.73-$60,611.21 및 $60,326.18-$60,509.84가 남아 있어 $60,250 이상은 재매도 리스크 구간"
      ],
      "reasoning": "15분 BTC는 현재 $60,000.10으로, active 고품질 bullish PRZ 클러스터인 Bat $59,703.20-$60,039.05, Gartley $59,766.59-$60,009.11, Butterfly $59,700.93-$59,975.14 안에 있어 단기 반등 셋업은 존재한다. 다만 같은 가격대에 bearish Gartley 형성 PRZ $59,856.22-$60,128.74도 겹쳐 있고, 전체 directional score는 bearish 2.019 대 bullish 1.708로 약간 bearish이나 dominance가 0.083에 불과해 구조적으로는 방향 우위가 약하다. 확인된 패턴 기준으로는 상단 $60,435.80 부근에서 완료된 bearish Butterfly/Gartley/Bat 반응이 이미 검증되었고, 동시에 $59,934.30 bullish Gartley도 확인되어 양방향 완료 패턴이 충돌한다. 따라서 structure_bias는 중립으로 두며, setup_bias만 $59,700-$60,040 PRZ 방어 여부에 기반한 제한적 bullish 반응 후보로 평가한다.",
      "key_levels": {
        "support": [
          59849.11,
          59766.59,
          59703.2,
          59693.6,
          59456.7,
          59302.95
        ],
        "resistance": [
          60039.05,
          60072.55,
          60128.74,
          60160.63,
          60242.73,
          60326.18,
          60435.8,
          60611.21
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$59,703.20 하향 이탈 및 15분 종가 수용 시 현재 bullish PRZ 반응 셋업 무효; 반대로 $60,128.74 상향 수용 시 즉시 bearish PRZ 압력 약화",
      "risk_scenario": "가격이 $60,039.05-$60,128.74 위에서 수용되지 못하고 재차 밀리면 active bearish Gartley PRZ가 작동하며 $59,699.15, $59,517.93, 최종 $59,224.60 쪽으로 하락 가지가 열릴 수 있다. 반대로 $60,128.74를 강하게 돌파하면 bullish PRZ 반응이 TP1 $60,072.55를 넘어 $60,160.63, $60,250.40-$60,303.20까지 확장될 수 있으나, $60,242.73-$60,611.21은 확인된 bearish 완료 패턴의 재저항 구간이다.",
      "data_quality": "medium",
      "metrics": {
        "patterns_found": 53,
        "completed_patterns_found": 23,
        "forming_d_prz_found": 30,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 34,
        "multiscale_swings_scanned": 61,
        "swing_highs_scanned": 30,
        "swing_lows_scanned": 31,
        "timeframe": "15m",
        "prz_active_threshold_pct": 0.3,
        "prz_nearby_threshold_pct": 0.6,
        "prz_watch_threshold_pct": 1.2,
        "prz_max_width_pct": 0.6,
        "quality_counts": {
          "high": 14,
          "medium": 21,
          "low": 18
        },
        "prz_status_counts": {
          "active": 26,
          "nearby": 11,
          "watch": 11,
          "far": 5,
          "forming": 4
        },
        "high_confluence_prz_count": 34,
        "strict_patterns_found": 34,
        "candidate_patterns_found": 19,
        "active_patterns_at_prz": 26,
        "nearby_patterns": 11,
        "all_patterns": [
          "bat",
          "bat",
          "bat",
          "shark",
          "gartley",
          "bat",
          "shark",
          "crab",
          "gartley",
          "crab",
          "shark",
          "bat",
          "butterfly",
          "gartley",
          "crab",
          "butterfly",
          "gartley",
          "gartley",
          "crab",
          "gartley",
          "bat",
          "butterfly",
          "crab",
          "crab",
          "butterfly",
          "shark",
          "bat",
          "butterfly",
          "shark",
          "butterfly",
          "crab",
          "butterfly",
          "gartley",
          "shark",
          "crab",
          "crab",
          "bat",
          "shark",
          "shark",
          "butterfly",
          "crab",
          "butterfly",
          "shark",
          "gartley",
          "shark",
          "crab",
          "shark",
          "crab",
          "crab",
          "butterfly",
          "butterfly",
          "shark",
          "crab"
        ],
        "all_signals": [
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish"
        ],
        "best_pattern": "bat",
        "best_pattern_quality": "strict",
        "best_quality": "medium",
        "best_pattern_score": 0.97,
        "best_completion_status": "forming",
        "nearest_pattern": "bat",
        "nearest_prz": 60003.05,
        "price_to_prz": 0.0,
        "prz_range": [
          59789.8,
          60216.3
        ],
        "council_relevant_prz_count": 14,
        "directional_influence_prz_count": 14,
        "confirmed_reaction_prz_count": 6,
        "validated_harmonic_tp_count": 6,
        "pattern_candidates": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.966,
            "ratio_score": 0.961,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59871.13,
            "prz_range": [
              59703.2,
              60039.05
            ],
            "prz_width_pct": 0.561,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.21,
            "price_to_prz_pct_raw": -0.215,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59871.13,
              "a_price": 60250.4,
              "tp1_ad_382": 60016.01,
              "tp2_ad_618": 60105.52,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4956,
              "ABC": 0.8974
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60250.4,
            "a_idx": 186,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60228.5,
            "c_idx": 229,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "ratio_score": 0.959,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59887.85,
            "prz_range": [
              59766.59,
              60009.11
            ],
            "prz_width_pct": 0.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.19,
            "price_to_prz_pct_raw": -0.1871,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 59887.85,
              "a_price": 60543.3,
              "tp1_ad_382": 60138.23,
              "tp2_ad_618": 60292.92,
              "tp3_a_or_structure_liquidity": 60543.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6111,
              "ABC": 0.7877
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60543.3,
            "a_idx": 206,
            "a_order": 8,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60435.8,
            "c_idx": 222,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59628.02,
            "prz_range": [
              59456.7,
              59799.33
            ],
            "prz_width_pct": 0.575,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.62,
            "price_to_prz_pct_raw": -0.6201,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59628.02,
              "a_price": 60247.1,
              "tp1_ad_382": 59864.51,
              "tp2_ad_618": 60010.61,
              "tp3_a_or_structure_liquidity": 60247.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3947,
              "ABC": 0.732
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60247.1,
            "a_idx": 202,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 59883.2,
            "c_idx": 260,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.933,
            "ratio_score": 0.855,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59992.48,
            "prz_range": [
              59856.22,
              60128.74
            ],
            "prz_width_pct": 0.454,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.01,
            "price_to_prz_pct_raw": -0.0127,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 59992.48,
              "a_price": 59224.6,
              "tp1_ad_382": 59699.15,
              "tp2_ad_618": 59517.93,
              "tp3_a_or_structure_liquidity": 59224.6,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5935,
              "ABC": 0.7722
            },
            "x_price": 60228.5,
            "x_idx": 229,
            "x_order": 3,
            "a_price": 59224.6,
            "a_idx": 251,
            "a_order": 8,
            "b_price": 59820.4,
            "b_idx": 266,
            "b_order": 5,
            "c_price": 59360.3,
            "c_idx": 288,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.929,
            "ratio_score": 1.0,
            "prz_score": 0.978,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59498.28,
            "prz_range": [
              59302.95,
              59693.6
            ],
            "prz_width_pct": 0.657,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.84,
            "price_to_prz_pct_raw": -0.8364,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 59498.28,
              "a_price": 60250.4,
              "tp1_ad_382": 59785.59,
              "tp2_ad_618": 59963.09,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4956,
              "ABC": 0.7207
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60250.4,
            "a_idx": 186,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 59883.2,
            "c_idx": 260,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.924,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 60642.21,
            "prz_range": [
              60461.41,
              60823.0
            ],
            "prz_width_pct": 0.596,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.07,
            "price_to_prz_pct_raw": 1.0702,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60642.21,
              "a_price": 59819.8,
              "tp1_ad_382": 60328.05,
              "tp2_ad_618": 60133.96,
              "tp3_a_or_structure_liquidity": 59819.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4476,
              "ABC": 0.5608
            },
            "x_price": 60924.7,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 59819.8,
            "a_idx": 165,
            "a_order": 8,
            "b_price": 60314.3,
            "b_idx": 181,
            "b_order": 8,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.922,
            "ratio_score": 0.884,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59838.03,
            "prz_range": [
              59700.93,
              59975.14
            ],
            "prz_width_pct": 0.458,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.2701,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59838.03,
              "a_price": 60314.3,
              "tp1_ad_382": 60019.97,
              "tp2_ad_618": 60132.37,
              "tp3_a_or_structure_liquidity": 60314.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7612,
              "ABC": 0.6906
            },
            "x_price": 59950.0,
            "x_idx": 176,
            "x_order": 5,
            "a_price": 60314.3,
            "a_idx": 181,
            "a_order": 8,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60228.5,
            "c_idx": 229,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.91,
            "ratio_score": 0.925,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60330.21,
            "prz_range": [
              60254.01,
              60406.41
            ],
            "prz_width_pct": 0.253,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.55,
            "price_to_prz_pct_raw": 0.5502,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60330.21,
              "a_price": 59913.9,
              "tp1_ad_382": 60171.18,
              "tp2_ad_618": 60072.93,
              "tp3_a_or_structure_liquidity": 59913.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6053,
              "ABC": 0.6342
            },
            "x_price": 60469.8,
            "x_idx": 162,
            "x_order": 8,
            "a_price": 59913.9,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 60250.4,
            "b_idx": 186,
            "b_order": 3,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": null
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.899,
            "ratio_score": 0.927,
            "prz_score": 0.996,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60435.8,
            "prz_range": [
              60242.73,
              60611.21
            ],
            "prz_width_pct": 0.61,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.71,
            "price_to_prz_pct_raw": 0.7115,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.395,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "butterfly",
              "d_price": 60426.97,
              "a_price": 60017.2,
              "tp1_ad_382": 60270.44,
              "tp2_ad_618": 60173.73,
              "tp3_a_or_structure_liquidity": 60017.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8038,
              "ABC": 0.9139,
              "BCD": 1.8981,
              "XAD": 1.4636
            },
            "x_price": 60303.2,
            "x_idx": 168,
            "x_order": 5,
            "a_price": 60017.2,
            "a_idx": 181,
            "a_order": 3,
            "b_price": 60247.1,
            "b_idx": 202,
            "b_order": 3,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": 222
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.897,
            "ratio_score": 0.961,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60435.8,
            "prz_range": [
              60326.18,
              60509.84
            ],
            "prz_width_pct": 0.304,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.7,
            "price_to_prz_pct_raw": 0.6965,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.119,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60418.01,
              "a_price": 59913.9,
              "tp1_ad_382": 60225.44,
              "tp2_ad_618": 60106.47,
              "tp3_a_or_structure_liquidity": 59913.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6039,
              "ABC": 0.6926,
              "BCD": 1.4382,
              "XAD": 0.7872
            },
            "x_price": 60576.9,
            "x_idx": 152,
            "x_order": 3,
            "a_price": 59913.9,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 60314.3,
            "b_idx": 181,
            "b_order": 8,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": 222
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.895,
            "ratio_score": 0.876,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59934.3,
            "prz_range": [
              59849.11,
              60010.86
            ],
            "prz_width_pct": 0.27,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.12,
            "price_to_prz_pct_raw": -0.1169,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected"
              ],
              "reaction_score": 0.8,
              "reaction_detail": {
                "reaction_score": 0.8,
                "reaction_move_ratio_ad": 0.798,
                "adverse_move_ratio_ad": 0.443,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 59929.98,
              "a_price": 60303.2,
              "tp1_ad_382": 60072.55,
              "tp2_ad_618": 60160.63,
              "tp3_a_or_structure_liquidity": 60303.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5916,
              "ABC": 0.8154,
              "BCD": 1.3555,
              "XAD": 0.7631
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60303.2,
            "a_idx": 168,
            "a_order": 5,
            "b_price": 60017.2,
            "b_idx": 181,
            "b_order": 3,
            "c_price": 60250.4,
            "c_idx": 186,
            "c_order": 3,
            "d_idx": 224
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.886,
            "ratio_score": 0.95,
            "prz_score": 0.885,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60325.0,
            "prz_range": [
              59859.35,
              60398.56
            ],
            "prz_width_pct": 0.897,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.21,
            "price_to_prz_pct_raw": 0.2148,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 0.386,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 6,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60128.96,
              "a_price": 59224.6,
              "tp1_ad_382": 59783.49,
              "tp2_ad_618": 59570.06,
              "tp3_a_or_structure_liquidity": 59224.6,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4319,
              "ABC": 0.7406,
              "BCD": 2.4902,
              "XAD": 0.9085
            },
            "x_price": 60435.8,
            "x_idx": 222,
            "x_order": 8,
            "a_price": 59224.6,
            "a_idx": 251,
            "a_order": 8,
            "b_price": 59747.7,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 59360.3,
            "c_idx": 288,
            "c_order": 8,
            "d_idx": 293
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.882,
            "ratio_score": 0.942,
            "prz_score": 0.976,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59360.3,
            "prz_range": [
              59302.95,
              59696.9
            ],
            "prz_width_pct": 0.662,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.83,
            "price_to_prz_pct_raw": -0.8336,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.088,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 11,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 59499.93,
              "a_price": 60247.1,
              "tp1_ad_382": 59785.35,
              "tp2_ad_618": 59961.68,
              "tp3_a_or_structure_liquidity": 60247.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3947,
              "ABC": 0.732,
              "BCD": 3.3999,
              "XAD": 1.666
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60247.1,
            "a_idx": 202,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 59883.2,
            "c_idx": 260,
            "c_order": 8,
            "d_idx": 288
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.865,
            "ratio_score": 0.852,
            "prz_score": 0.996,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60435.8,
            "prz_range": [
              60242.73,
              60611.21
            ],
            "prz_width_pct": 0.61,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.71,
            "price_to_prz_pct_raw": 0.7115,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.395,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60426.97,
              "a_price": 60017.2,
              "tp1_ad_382": 60270.44,
              "tp2_ad_618": 60173.73,
              "tp3_a_or_structure_liquidity": 60017.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.508,
              "ABC": 0.9139,
              "BCD": 1.8981,
              "XAD": 0.9249
            },
            "x_price": 60469.8,
            "x_idx": 162,
            "x_order": 8,
            "a_price": 60017.2,
            "a_idx": 181,
            "a_order": 3,
            "b_price": 60247.1,
            "b_idx": 202,
            "b_order": 3,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": 222
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.966,
            "ratio_score": 0.961,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59871.13,
            "prz_range": [
              59703.2,
              60039.05
            ],
            "prz_width_pct": 0.561,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.21,
            "price_to_prz_pct_raw": -0.215,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59871.13,
              "a_price": 60250.4,
              "tp1_ad_382": 60016.01,
              "tp2_ad_618": 60105.52,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4956,
              "ABC": 0.8974
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60250.4,
            "a_idx": 186,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60228.5,
            "c_idx": 229,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "ratio_score": 0.959,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59887.85,
            "prz_range": [
              59766.59,
              60009.11
            ],
            "prz_width_pct": 0.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.19,
            "price_to_prz_pct_raw": -0.1871,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 59887.85,
              "a_price": 60543.3,
              "tp1_ad_382": 60138.23,
              "tp2_ad_618": 60292.92,
              "tp3_a_or_structure_liquidity": 60543.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6111,
              "ABC": 0.7877
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60543.3,
            "a_idx": 206,
            "a_order": 8,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60435.8,
            "c_idx": 222,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59628.02,
            "prz_range": [
              59456.7,
              59799.33
            ],
            "prz_width_pct": 0.575,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.62,
            "price_to_prz_pct_raw": -0.6201,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59628.02,
              "a_price": 60247.1,
              "tp1_ad_382": 59864.51,
              "tp2_ad_618": 60010.61,
              "tp3_a_or_structure_liquidity": 60247.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3947,
              "ABC": 0.732
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60247.1,
            "a_idx": 202,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 59883.2,
            "c_idx": 260,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.933,
            "ratio_score": 0.855,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59992.48,
            "prz_range": [
              59856.22,
              60128.74
            ],
            "prz_width_pct": 0.454,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.01,
            "price_to_prz_pct_raw": -0.0127,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 59992.48,
              "a_price": 59224.6,
              "tp1_ad_382": 59699.15,
              "tp2_ad_618": 59517.93,
              "tp3_a_or_structure_liquidity": 59224.6,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5935,
              "ABC": 0.7722
            },
            "x_price": 60228.5,
            "x_idx": 229,
            "x_order": 3,
            "a_price": 59224.6,
            "a_idx": 251,
            "a_order": 8,
            "b_price": 59820.4,
            "b_idx": 266,
            "b_order": 5,
            "c_price": 59360.3,
            "c_idx": 288,
            "c_order": 8,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.966,
            "ratio_score": 0.961,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59871.13,
            "prz_range": [
              59703.2,
              60039.05
            ],
            "prz_width_pct": 0.561,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.21,
            "price_to_prz_pct_raw": -0.215,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59871.13,
              "a_price": 60250.4,
              "tp1_ad_382": 60016.01,
              "tp2_ad_618": 60105.52,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4956,
              "ABC": 0.8974
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60250.4,
            "a_idx": 186,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60228.5,
            "c_idx": 229,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "ratio_score": 0.959,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59887.85,
            "prz_range": [
              59766.59,
              60009.11
            ],
            "prz_width_pct": 0.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.19,
            "price_to_prz_pct_raw": -0.1871,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 59887.85,
              "a_price": 60543.3,
              "tp1_ad_382": 60138.23,
              "tp2_ad_618": 60292.92,
              "tp3_a_or_structure_liquidity": 60543.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6111,
              "ABC": 0.7877
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60543.3,
            "a_idx": 206,
            "a_order": 8,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60435.8,
            "c_idx": 222,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59628.02,
            "prz_range": [
              59456.7,
              59799.33
            ],
            "prz_width_pct": 0.575,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.62,
            "price_to_prz_pct_raw": -0.6201,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59628.02,
              "a_price": 60247.1,
              "tp1_ad_382": 59864.51,
              "tp2_ad_618": 60010.61,
              "tp3_a_or_structure_liquidity": 60247.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3947,
              "ABC": 0.732
            },
            "x_price": 59714.8,
            "x_idx": 193,
            "x_order": 8,
            "a_price": 60247.1,
            "a_idx": 202,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 59883.2,
            "c_idx": 260,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.933,
            "ratio_score": 0.855,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59992.48,
            "prz_range": [
              59856.22,
              60128.74
            ],
            "prz_width_pct": 0.454,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.01,
            "price_to_prz_pct_raw": -0.0127,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 59992.48,
              "a_price": 59224.6,
              "tp1_ad_382": 59699.15,
              "tp2_ad_618": 59517.93,
              "tp3_a_or_structure_liquidity": 59224.6,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5935,
              "ABC": 0.7722
            },
            "x_price": 60228.5,
            "x_idx": 229,
            "x_order": 3,
            "a_price": 59224.6,
            "a_idx": 251,
            "a_order": 8,
            "b_price": 59820.4,
            "b_idx": 266,
            "b_order": 5,
            "c_price": 59360.3,
            "c_idx": 288,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.929,
            "ratio_score": 1.0,
            "prz_score": 0.978,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59498.28,
            "prz_range": [
              59302.95,
              59693.6
            ],
            "prz_width_pct": 0.657,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.84,
            "price_to_prz_pct_raw": -0.8364,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 59498.28,
              "a_price": 60250.4,
              "tp1_ad_382": 59785.59,
              "tp2_ad_618": 59963.09,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4956,
              "ABC": 0.7207
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60250.4,
            "a_idx": 186,
            "a_order": 3,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 59883.2,
            "c_idx": 260,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.924,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 60642.21,
            "prz_range": [
              60461.41,
              60823.0
            ],
            "prz_width_pct": 0.596,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.07,
            "price_to_prz_pct_raw": 1.0702,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60642.21,
              "a_price": 59819.8,
              "tp1_ad_382": 60328.05,
              "tp2_ad_618": 60133.96,
              "tp3_a_or_structure_liquidity": 59819.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4476,
              "ABC": 0.5608
            },
            "x_price": 60924.7,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 59819.8,
            "a_idx": 165,
            "a_order": 8,
            "b_price": 60314.3,
            "b_idx": 181,
            "b_order": 8,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.922,
            "ratio_score": 0.884,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59838.03,
            "prz_range": [
              59700.93,
              59975.14
            ],
            "prz_width_pct": 0.458,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.2701,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59838.03,
              "a_price": 60314.3,
              "tp1_ad_382": 60019.97,
              "tp2_ad_618": 60132.37,
              "tp3_a_or_structure_liquidity": 60314.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7612,
              "ABC": 0.6906
            },
            "x_price": 59950.0,
            "x_idx": 176,
            "x_order": 5,
            "a_price": 60314.3,
            "a_idx": 181,
            "a_order": 8,
            "b_price": 60037.0,
            "b_idx": 213,
            "b_order": 8,
            "c_price": 60228.5,
            "c_idx": 229,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.91,
            "ratio_score": 0.925,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60330.21,
            "prz_range": [
              60254.01,
              60406.41
            ],
            "prz_width_pct": 0.253,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.55,
            "price_to_prz_pct_raw": 0.5502,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60330.21,
              "a_price": 59913.9,
              "tp1_ad_382": 60171.18,
              "tp2_ad_618": 60072.93,
              "tp3_a_or_structure_liquidity": 59913.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6053,
              "ABC": 0.6342
            },
            "x_price": 60469.8,
            "x_idx": 162,
            "x_order": 8,
            "a_price": 59913.9,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 60250.4,
            "b_idx": 186,
            "b_order": 3,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.899,
            "ratio_score": 0.927,
            "prz_score": 0.996,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60435.8,
            "prz_range": [
              60242.73,
              60611.21
            ],
            "prz_width_pct": 0.61,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.71,
            "price_to_prz_pct_raw": 0.7115,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.395,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "butterfly",
              "d_price": 60426.97,
              "a_price": 60017.2,
              "tp1_ad_382": 60270.44,
              "tp2_ad_618": 60173.73,
              "tp3_a_or_structure_liquidity": 60017.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8038,
              "ABC": 0.9139,
              "BCD": 1.8981,
              "XAD": 1.4636
            },
            "x_price": 60303.2,
            "x_idx": 168,
            "x_order": 5,
            "a_price": 60017.2,
            "a_idx": 181,
            "a_order": 3,
            "b_price": 60247.1,
            "b_idx": 202,
            "b_order": 3,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": 222
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.897,
            "ratio_score": 0.961,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60435.8,
            "prz_range": [
              60326.18,
              60509.84
            ],
            "prz_width_pct": 0.304,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.7,
            "price_to_prz_pct_raw": 0.6965,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.119,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60418.01,
              "a_price": 59913.9,
              "tp1_ad_382": 60225.44,
              "tp2_ad_618": 60106.47,
              "tp3_a_or_structure_liquidity": 59913.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6039,
              "ABC": 0.6926,
              "BCD": 1.4382,
              "XAD": 0.7872
            },
            "x_price": 60576.9,
            "x_idx": 152,
            "x_order": 3,
            "a_price": 59913.9,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 60314.3,
            "b_idx": 181,
            "b_order": 8,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": 222
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.895,
            "ratio_score": 0.876,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59934.3,
            "prz_range": [
              59849.11,
              60010.86
            ],
            "prz_width_pct": 0.27,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.12,
            "price_to_prz_pct_raw": -0.1169,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected"
              ],
              "reaction_score": 0.8,
              "reaction_detail": {
                "reaction_score": 0.8,
                "reaction_move_ratio_ad": 0.798,
                "adverse_move_ratio_ad": 0.443,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 59929.98,
              "a_price": 60303.2,
              "tp1_ad_382": 60072.55,
              "tp2_ad_618": 60160.63,
              "tp3_a_or_structure_liquidity": 60303.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5916,
              "ABC": 0.8154,
              "BCD": 1.3555,
              "XAD": 0.7631
            },
            "x_price": 59819.8,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 60303.2,
            "a_idx": 168,
            "a_order": 5,
            "b_price": 60017.2,
            "b_idx": 181,
            "b_order": 3,
            "c_price": 60250.4,
            "c_idx": 186,
            "c_order": 3,
            "d_idx": 224
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.89,
            "ratio_score": 0.972,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 60732.66,
            "prz_range": [
              60584.83,
              60880.49
            ],
            "prz_width_pct": 0.487,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.22,
            "price_to_prz_pct_raw": 1.2209,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60732.66,
              "a_price": 59913.9,
              "tp1_ad_382": 60419.89,
              "tp2_ad_618": 60226.66,
              "tp3_a_or_structure_liquidity": 59913.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6227,
              "ABC": 0.8044
            },
            "x_price": 60924.7,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 59913.9,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 60543.3,
            "b_idx": 206,
            "b_order": 8,
            "c_price": 60037.0,
            "c_idx": 213,
            "c_order": 8,
            "d_idx": null
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.966,
            "prz_proximity": "active",
            "prz_range": [
              59703.2,
              60039.05
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.21,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59871.13,
              "a_price": 60250.4,
              "tp1_ad_382": 60016.01,
              "tp2_ad_618": 60105.52,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $59,703.20-$60,039.05: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "prz_proximity": "active",
            "prz_range": [
              59766.59,
              60009.11
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.19,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 59887.85,
              "a_price": 60543.3,
              "tp1_ad_382": 60138.23,
              "tp2_ad_618": 60292.92,
              "tp3_a_or_structure_liquidity": 60543.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,766.59-$60,009.11: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "prz_proximity": "nearby",
            "prz_range": [
              59456.7,
              59799.33
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.62,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59628.02,
              "a_price": 60247.1,
              "tp1_ad_382": 59864.51,
              "tp2_ad_618": 60010.61,
              "tp3_a_or_structure_liquidity": 60247.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $59,456.70-$59,799.33: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.933,
            "prz_proximity": "active",
            "prz_range": [
              59856.22,
              60128.74
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": -0.01,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 59992.48,
              "a_price": 59224.6,
              "tp1_ad_382": 59699.15,
              "tp2_ad_618": 59517.93,
              "tp3_a_or_structure_liquidity": 59224.6,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,856.22-$60,128.74: expected reversal DOWN if price reacts in zone"
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.929,
            "prz_proximity": "nearby",
            "prz_range": [
              59302.95,
              59693.6
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.84,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 59498.28,
              "a_price": 60250.4,
              "tp1_ad_382": 59785.59,
              "tp2_ad_618": 59963.09,
              "tp3_a_or_structure_liquidity": 60250.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "CRAB FORMING HIGH PRZ $59,302.95-$59,693.60: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.922,
            "prz_proximity": "active",
            "prz_range": [
              59700.93,
              59975.14
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.27,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59838.03,
              "a_price": 60314.3,
              "tp1_ad_382": 60019.97,
              "tp2_ad_618": 60132.37,
              "tp3_a_or_structure_liquidity": 60314.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BUTTERFLY FORMING HIGH PRZ $59,700.93-$59,975.14: expected reversal UP if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "bat",
          "signal": "bullish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.966,
          "ratio_score": 0.961,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 59871.13,
          "prz_range": [
            59703.2,
            60039.05
          ],
          "prz_width_pct": 0.561,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": -0.21,
          "price_to_prz_pct_raw": -0.215,
          "harmonic_vote_state": {
            "authority": "pre_confirmation_reversal_candidate",
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "confirmation_reasons": [],
            "reaction_score": 0.0,
            "reaction_detail": {
              "reaction_score": 0.0,
              "reasons": []
            },
            "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
            "standalone_path_override_allowed": false
          },
          "directional_vote_weight": 0.35,
          "confirmed_reaction": false,
          "standalone_path_override_allowed": false,
          "tp_ladder": {
            "direction": "bullish",
            "source": "bat",
            "d_price": 59871.13,
            "a_price": 60250.4,
            "tp1_ad_382": 60016.01,
            "tp2_ad_618": 60105.52,
            "tp3_a_or_structure_liquidity": 60250.4,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.4956,
            "ABC": 0.8974
          },
          "x_price": 59819.8,
          "x_idx": 165,
          "x_order": 8,
          "a_price": 60250.4,
          "a_idx": 186,
          "a_order": 3,
          "b_price": 60037.0,
          "b_idx": 213,
          "b_order": 8,
          "c_price": 60228.5,
          "c_idx": 229,
          "c_order": 3,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "bat",
          "d_price": 59871.13,
          "a_price": 60250.4,
          "tp1_ad_382": 60016.01,
          "tp2_ad_618": 60105.52,
          "tp3_a_or_structure_liquidity": 60250.4,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "best_confirmed_tp_ladder": {
          "direction": "bearish",
          "source": "butterfly",
          "d_price": 60426.97,
          "a_price": 60017.2,
          "tp1_ad_382": 60270.44,
          "tp2_ad_618": 60173.73,
          "tp3_a_or_structure_liquidity": 60017.2,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "bat",
            "d_price": 59871.13,
            "a_price": 60250.4,
            "tp1_ad_382": 60016.01,
            "tp2_ad_618": 60105.52,
            "tp3_a_or_structure_liquidity": 60250.4,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 59887.85,
            "a_price": 60543.3,
            "tp1_ad_382": 60138.23,
            "tp2_ad_618": 60292.92,
            "tp3_a_or_structure_liquidity": 60543.3,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "bat",
            "d_price": 59628.02,
            "a_price": 60247.1,
            "tp1_ad_382": 59864.51,
            "tp2_ad_618": 60010.61,
            "tp3_a_or_structure_liquidity": 60247.1,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 59992.48,
            "a_price": 59224.6,
            "tp1_ad_382": 59699.15,
            "tp2_ad_618": 59517.93,
            "tp3_a_or_structure_liquidity": 59224.6,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "crab",
            "d_price": 59498.28,
            "a_price": 60250.4,
            "tp1_ad_382": 59785.59,
            "tp2_ad_618": 59963.09,
            "tp3_a_or_structure_liquidity": 60250.4,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "butterfly",
            "d_price": 59838.03,
            "a_price": 60314.3,
            "tp1_ad_382": 60019.97,
            "tp2_ad_618": 60132.37,
            "tp3_a_or_structure_liquidity": 60314.3,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "validated_tp_ladder": [
          {
            "direction": "bearish",
            "source": "butterfly",
            "d_price": 60426.97,
            "a_price": 60017.2,
            "tp1_ad_382": 60270.44,
            "tp2_ad_618": 60173.73,
            "tp3_a_or_structure_liquidity": 60017.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 60418.01,
            "a_price": 59913.9,
            "tp1_ad_382": 60225.44,
            "tp2_ad_618": 60106.47,
            "tp3_a_or_structure_liquidity": 59913.9,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 59929.98,
            "a_price": 60303.2,
            "tp1_ad_382": 60072.55,
            "tp2_ad_618": 60160.63,
            "tp3_a_or_structure_liquidity": 60303.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "bat",
            "d_price": 60128.96,
            "a_price": 59224.6,
            "tp1_ad_382": 59783.49,
            "tp2_ad_618": 59570.06,
            "tp3_a_or_structure_liquidity": 59224.6,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "crab",
            "d_price": 59499.93,
            "a_price": 60247.1,
            "tp1_ad_382": 59785.35,
            "tp2_ad_618": 59961.68,
            "tp3_a_or_structure_liquidity": 60247.1,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "bat",
            "d_price": 60426.97,
            "a_price": 60017.2,
            "tp1_ad_382": 60270.44,
            "tp2_ad_618": 60173.73,
            "tp3_a_or_structure_liquidity": 60017.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "harmonic_governance": {
          "role": "PRZ reaction + TP ladder confluence, not standalone path engine",
          "pre_confirmation_weight_range": [
            0.25,
            0.35
          ],
          "post_confirmation_vote_weight_range": [
            0.5,
            0.6
          ],
          "standalone_path_override_allowed": false,
          "opposes_core_path_policy": "branch/reversal-risk/reaction-zone unless lower-TF structure and derivatives also confirm",
          "aligns_with_core_path_policy": "modest confidence lift plus strong TP ladder influence"
        },
        "execution_readiness": "ready",
        "directional_scores": {
          "bullish": 1.708,
          "bearish": 2.019
        },
        "directional_score_total": 3.728,
        "directional_dominance": 0.083
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.54,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.62,\n  \"setup_signals\": [\n    \"현재가 $60,000.10이 고점수렴 bullish Bat 형성 PRZ $59,703.20-$60,039.05 내부에 위치, D 예상가 $59,871.13\",\n    \"bullish Gartley 형성 PRZ $59,766.59-$60,009.11이 현재가 바로 아래/내부에 겹침, D 예상가 $59,887.85\",\n    \"bullish Butterfly 형성 PRZ $59,700.93-$59,975.14와 bullish Bat PRZ가 중첩되어 $59,700-$60,040 구간에 하방 반응 후보 밀집\",\n    \"이미 확인된 bullish Gartley 완료 PRZ $59,849.11-$60,010.86에서 반응 확인, TP1 $60,072.55 / TP2 $60,160.63\",\n    \"반대편으로 bearish Gartley 형성 PRZ $59,856.22-$60,128.74도 현재가를 감싸고 있어 즉시 상방 추격은 제한\",\n    \"상단에는 확인된 bearish Butterfly/Bat/Gartley 반응대 $60,242.73-$60,611.21 및 $60,326.18-$60,509.84가 남아 있어 $60,250 이상은 재매도 리스크 구간\"\n  ],\n  \"reasoning\": \"15분 BTC는 현재 $60,000.10으로, active 고품질 bullish PRZ 클러스터인 Bat $59,703.20-$60,039.05, Gartley $59,766.59-$60,009.11, Butterfly $59,700.93-$59,975.14 안에 있어 단기 반등 셋업은 존재한다. 다만 같은 가격대에 bearish Gartley 형성 PRZ $59,856.22-$60,128.74도 겹쳐 있고, 전체 directional score는 bearish 2.019 대 bullish 1.708로 약간 bearish이나 dominance가 0.083에 불과해 구조적으로는 방향 우위가 약하다. 확인된 패턴 기준으로는 상단 $60,435.80 부근에서 완료된 bearish Butterfly/Gartley/Bat 반응이 이미 검증되었고, 동시에 $59,934.30 bullish Gartley도 확인되어 양방향 완료 패턴이 충돌한다. 따라서 structure_bias는 중립으로 두며, setup_bias만 $59,700-$60,040 PRZ 방어 여부에 기반한 제한적 bullish 반응 후보로 평가한다.\",\n  \"key_levels\": {\n    \"support\": [\n      59849.11,\n      59766.59,\n      59703.2,\n      59693.6,\n      59456.7,\n      59302.95\n    ],\n    \"resistance\": [\n      60039.05,\n      60072.55,\n      60128.74,\n      60160.63,\n      60242.73,\n      60326.18,\n      60435.8,\n      60611.21\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$59,703.20 하향 이탈 및 15분 종가 수용 시 현재 bullish PRZ 반응 셋업 무효; 반대로 $60,128.74 상향 수용 시 즉시 bearish PRZ 압력 약화\",\n  \"risk_scenario\": \"가격이 $60,039.05-$60,128.74 위에서 수용되지 못하고 재차 밀리면 active bearish Gartley PRZ가 작동하며 $59,699.15, $59,517.93, 최종 $59,224.60 쪽으로 하락 가지가 열릴 수 있다. 반대로 $60,128.74를 강하게 돌파하면 bullish PRZ 반응이 TP1 $60,072.55를 넘어 $60,160.63, $60,250.40-$60,303.20까지 확장될 수 있으나, $60,242.73-$60,611.21은 확인된 bearish 완료 패턴의 재저항 구간이다.\",\n  \"data_quality\": \"medium\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.72,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.74,
      "active_setups": [
        "현재가 $60,000.10은 Wyckoff 메인 분배 레인지 EQ 약 $59,561 및 ICT EQ $59,587.50 위의 프리미엄 구간에 위치",
        "ICT 기준 최근 구조 이벤트가 $60,037.00 하향 BOS로 마감되어 단기 구조가 bearish로 전환",
        "Wyckoff 기준 prior distribution 이후 현재는 재분배 후보 구조이며, $60,325.00 테스트 후 $59,900.70까지 약세 반응 발생",
        "파생 포지셔닝에서 롱 계정 비율 0.678~0.684로 롱 과밀, 24시간 OI +1.724% 증가 대비 CVD -3,114.624로 매수 체결력 약화",
        "캔들 기준 최근 bearish engulfing 이후 shooting star가 연속 출현했고, bearish harami 품질 0.783으로 단기 상단 거부 신호",
        "ICT bearish OB 후보 $60,174.60-$60,435.80 및 Harmonic 상단 완료형 bearish PRZ $60,326.18-$60,611.21이 상단 공급 구간으로 중첩"
      ],
      "setup_vs_structure": "구조 편향과 실행 셋업이 모두 bearish 쪽으로 정렬되어 있다. 다만 $59,700-$60,040 구간에는 피보나치·하모닉 반등 PRZ가 겹쳐 있어, 즉시 추격보다는 프리미엄 저항 재확인 또는 하단 PRZ 방어 실패 여부가 중요하다."
    },
    "signal_breakdown": {
      "bullish_count": 1,
      "bearish_count": 4,
      "neutral_count": 1
    },
    "key_levels": {
      "support": [
        59956.48,
        59920.73,
        59864.57,
        59819.8,
        59714.8,
        59656.35,
        59360.3,
        58900,
        58888,
        58388
      ],
      "resistance": [
        60037,
        60097.33,
        60162,
        60174.6,
        60325,
        60435.8,
        60543.3,
        60700,
        60734,
        60924.7
      ]
    },
    "confluences": [
      "ICT와 Wyckoff가 모두 $60,325 부근을 최근 상단 테스트·공급 반응 구간으로 식별한다: ICT 뉴욕 세션 고점 $60,325.00, Wyckoff current redistribution UT $60,325.00.",
      "ICT bearish OB $60,174.60-$60,435.80, Wyckoff 저항 $60,219.40/$60,325.00, Harmonic 완료형 bearish PRZ $60,326.18-$60,611.21이 $60,200-$60,600 공급대로 중첩된다.",
      "Candlestick, Derivatives, ICT, Wyckoff 모두 현재가가 각자의 EQ 위 프리미엄 영역에 있다고 판단한다: 7일 EQ $59,656.35, ICT EQ $59,587.50, Wyckoff 메인 레인지 EQ 약 $59,561.",
      "하방 구조 레벨은 $59,819.80 부근에 집중된다: ICT bearish BOS $59,819.80, Wyckoff SOW_IN_PHASE_B $59,819.80, Harmonic 스윙 기준점 $59,819.80.",
      "단기 지지 클러스터는 $59,850-$59,956에 형성되어 있다: Fib 0.382 $59,956.48, Candlestick EMA240 $59,951.70, Harmonic bullish Gartley PRZ $59,849.11-$60,010.86, Derivatives EMA120 $59,864.57.",
      "더 깊은 하방 유동성·구조 지지는 $58,888-$58,388에 집중된다: Derivatives 청산 유동성 $58,900/$58,800, Wyckoff current SC $58,888.00, 메인 AR $58,388.00."
    ],
    "conflicts": [
      "Fibonacci는 $59,956.48의 0.382 되돌림과 $60,003.17 컨플루언스를 근거로 단기 bullish 반등 셋업을 제시하지만, 구조 자체는 neutral로만 평가하여 Wyckoff·ICT의 bearish 구조 판정과 충돌한다.",
      "Harmonic은 $59,700-$60,040 구간에 bullish Bat/Gartley/Butterfly PRZ가 밀집해 반등 후보를 제시하지만, 동시에 $59,856.22-$60,128.74 bearish Gartley PRZ와 $60,326-$60,611 완료형 bearish PRZ도 존재해 방향 우위가 약하다.",
      "Candlestick과 Derivatives는 구조를 neutral로 보지만 setup은 bearish로 평가한다. 반면 ICT와 Wyckoff는 구조 자체를 bearish로 판정해, 구조 확정 강도에서는 ICT·Wyckoff 쪽이 더 강하다.",
      "하모닉의 최고 점수 PRZ는 bullish Bat $59,703.20-$60,039.05이지만, 해당 신호는 사전확인형 반전 후보일 뿐 단독 구조 전환 권한이 없으며, Wyckoff/ICT의 분배·BOS 구조를 뒤집기에는 부족하다."
    ],
    "executive_summary": "현재 15분 BTC 구조는 단순 박스권 중립이라기보다, Wyckoff 기준 선행 분배 구조 이후 재분배 후보가 진행 중이고 ICT 기준 최근 $60,037.00 하향 BOS가 확인된 bearish 구조로 진단된다. 현재 위치는 메인 레인지 EQ 약 $59,561 및 ICT EQ $59,587.50 위의 프리미엄 영역이며, Wyckoff 이벤트 체인은 BC $60,734 → AR $58,388 → UTAD $60,543.30 → LPSY $59,883.20 이후 현재 하위 재분배에서 UT $60,325.00와 SOW $59,900.70을 형성한 상태다. 핵심 구조 조건은 $60,174.60-$60,435.80 공급대와 $60,325-$60,543 상단 회복 실패 여부이며, 하단에서는 $59,819.80, $59,714.80, $59,360.30이 구조적 지지·반응 레벨이다. 다만 $59,700-$60,040에는 피보나치 및 하모닉 bullish PRZ가 중첩되어 즉각적 하락 추격에는 반등 리스크가 존재한다. 구조적 bearish thesis의 무효화는 $60,734.00 이상, 더 강하게는 $60,924.70 전일 고점 위 수용에서 판단한다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.72,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.74,\n    \"active_setups\": [\n      \"현재가 $60,000.10은 Wyckoff 메인 분배 레인지 EQ 약 $59,561 및 ICT EQ $59,587.50 위의 프리미엄 구간에 위치\",\n      \"ICT 기준 최근 구조 이벤트가 $60,037.00 하향 BOS로 마감되어 단기 구조가 bearish로 전환\",\n      \"Wyckoff 기준 prior distribution 이후 현재는 재분배 후보 구조이며, $60,325.00 테스트 후 $59,900.70까지 약세 반응 발생\",\n      \"파생 포지셔닝에서 롱 계정 비율 0.678~0.684로 롱 과밀, 24시간 OI +1.724% 증가 대비 CVD -3,114.624로 매수 체결력 약화\",\n      \"캔들 기준 최근 bearish engulfing 이후 shooting star가 연속 출현했고, bearish harami 품질 0.783으로 단기 상단 거부 신호\",\n      \"ICT bearish OB 후보 $60,174.60-$60,435.80 및 Harmonic 상단 완료형 bearish PRZ $60,326.18-$60,611.21이 상단 공급 구간으로 중첩\"\n    ],\n    \"setup_vs_structure\": \"구조 편향과 실행 셋업이 모두 bearish 쪽으로 정렬되어 있다. 다만 $59,700-$60,040 구간에는 피보나치·하모닉 반등 PRZ가 겹쳐 있어, 즉시 추격보다는 프리미엄 저항 재확인 또는 하단 PRZ 방어 실패 여부가 중요하다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 1,\n    \"bearish_count\": 4,\n    \"neutral_count\": 1\n  },\n  \"key_levels\": {\n    \"support\": [\n      59956.48,\n      59920.73,\n      59864.57,\n      59819.8,\n      59714.8,\n      59656.35,\n      59360.3,\n      58900,\n      58888,\n      58388\n    ],\n    \"resistance\": [\n      60037,\n      60097.33,\n      60162,\n      60174.6,\n      60325,\n      60435.8,\n      60543.3,\n      60700,\n      60734,\n      60924.7\n    ]\n  },\n  \"confluences\": [\n    \"ICT와 Wyckoff가 모두 $60,325 부근을 최근 상단 테스트·공급 반응 구간으로 식별한다: ICT 뉴욕 세션 고점 $60,325.00, Wyckoff current redistribution UT $60,325.00.\",\n    \"ICT bearish OB $60,174.60-$60,435.80, Wyckoff 저항 $60,219.40/$60,325.00, Harmonic 완료형 bearish PRZ $60,326.18-$60,611.21이 $60,200-$60,600 공급대로 중첩된다.\",\n    \"Candlestick, Derivatives, ICT, Wyckoff 모두 현재가가 각자의 EQ 위 프리미엄 영역에 있다고 판단한다: 7일 EQ $59,656.35, ICT EQ $59,587.50, Wyckoff 메인 레인지 EQ 약 $59,561.\",\n    \"하방 구조 레벨은 $59,819.80 부근에 집중된다: ICT bearish BOS $59,819.80, Wyckoff SOW_IN_PHASE_B $59,819.80, Harmonic 스윙 기준점 $59,819.80.\",\n    \"단기 지지 클러스터는 $59,850-$59,956에 형성되어 있다: Fib 0.382 $59,956.48, Candlestick EMA240 $59,951.70, Harmonic bullish Gartley PRZ $59,849.11-$60,010.86, Derivatives EMA120 $59,864.57.\",\n    \"더 깊은 하방 유동성·구조 지지는 $58,888-$58,388에 집중된다: Derivatives 청산 유동성 $58,900/$58,800, Wyckoff current SC $58,888.00, 메인 AR $58,388.00.\"\n  ],\n  \"conflicts\": [\n    \"Fibonacci는 $59,956.48의 0.382 되돌림과 $60,003.17 컨플루언스를 근거로 단기 bullish 반등 셋업을 제시하지만, 구조 자체는 neutral로만 평가하여 Wyckoff·ICT의 bearish 구조 판정과 충돌한다.\",\n    \"Harmonic은 $59,700-$60,040 구간에 bullish Bat/Gartley/Butterfly PRZ가 밀집해 반등 후보를 제시하지만, 동시에 $59,856.22-$60,128.74 bearish Gartley PRZ와 $60,326-$60,611 완료형 bearish PRZ도 존재해 방향 우위가 약하다.\",\n    \"Candlestick과 Derivatives는 구조를 neutral로 보지만 setup은 bearish로 평가한다. 반면 ICT와 Wyckoff는 구조 자체를 bearish로 판정해, 구조 확정 강도에서는 ICT·Wyckoff 쪽이 더 강하다.\",\n    \"하모닉의 최고 점수 PRZ는 bullish Bat $59,703.20-$60,039.05이지만, 해당 신호는 사전확인형 반전 후보일 뿐 단독 구조 전환 권한이 없으며, Wyckoff/ICT의 분배·BOS 구조를 뒤집기에는 부족하다.\"\n  ],\n  \"highest_conviction_analyst\": \"ICT Trader — confidence 82%, setup score 92%로 가장 강한 신호를 제시하며, 최근 $60,037.00 하향 BOS, $60,162.00 bearish CHoCH, $59,819.80 bearish BOS, 프리미엄 87.4% 되돌림, $60,174.60-$60,435.80 bearish OB 후보를 모두 구체적 가격으로 연결했다.\",\n  \"invalidation_level\": \"$60,734.00-$60,924.70 상단 수용. Wyckoff 메인 분배 BC $60,734.00 및 전일 고점 $60,924.70 위에서 15분 종가 수용이 확인되면 현재 bearish 분배·재분배 구조 해석은 훼손된다.\",\n  \"executive_summary\": \"현재 15분 BTC 구조는 단순 박스권 중립이라기보다, Wyckoff 기준 선행 분배 구조 이후 재분배 후보가 진행 중이고 ICT 기준 최근 $60,037.00 하향 BOS가 확인된 bearish 구조로 진단된다. 현재 위치는 메인 레인지 EQ 약 $59,561 및 ICT EQ $59,587.50 위의 프리미엄 영역이며, Wyckoff 이벤트 체인은 BC $60,734 → AR $58,388 → UTAD $60,543.30 → LPSY $59,883.20 이후 현재 하위 재분배에서 UT $60,325.00와 SOW $59,900.70을 형성한 상태다. 핵심 구조 조건은 $60,174.60-$60,435.80 공급대와 $60,325-$60,543 상단 회복 실패 여부이며, 하단에서는 $59,819.80, $59,714.80, $59,360.30이 구조적 지지·반응 레벨이다. 다만 $59,700-$60,040에는 피보나치 및 하모닉 bullish PRZ가 중첩되어 즉각적 하락 추격에는 반등 리스크가 존재한다. 구조적 bearish thesis의 무효화는 $60,734.00 이상, 더 강하게는 $60,924.70 전일 고점 위 수용에서 판단한다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.72,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.64,
    "waypoints": [
      {
        "seq": 1,
        "price": 59742.61,
        "type": "support_test",
        "source": "Fibonacci (fib confluence $59,742.61, strict 0.85), Harmonic (bullish Gartley PRZ $59,766.59 / Bat $59,703.20 하단), ICT ($59,714.80 이전 저점 상단), Wyckoff ($59,819.80 SOW 클러스터 직하단)",
        "description": "프리미엄($59,656 EQ 상단) 이탈 후 단기 하방으로 $59,742.61 fib 컨플루언스(strict 0.85)까지 하락. 이 지점은 ICT BOS·Wyckoff SOW·Harmonic 스윙이 겹치는 $59,819.80 클러스터를 하향 스윕한 직하단이자 bullish Gartley/Bat PRZ($59,703-$59,766) 상단으로, 1차 하단 PRZ 방어선을 테스트한다. 롱 과밀(0.678)·CVD -3,114 약화 환경에서 첫 지지 반응이 나오는 구간.",
        "est_hours": 4,
        "turning_zone": [
          59703.0,
          59750.0
        ],
        "likely_wick": 59714.8,
        "rejection_confirm": 59819.8,
        "invalid_overshoot": 59656.35,
        "calibration_reasoning": "bullish Gartley/Bat PRZ($59,703-$59,766) 하단과 fib 컨플루언스 $59,742.61(0.5/0.618)을 zone 경계로 사용했고, likely_wick은 이전 저점 $59,714.80의 sell-side 유동성을 스윕하는 지점에 배치. 7일 EQ $59,656.35(discount 전환) 이탈 시 지지 방어 실패로 무효화."
      },
      {
        "seq": 2,
        "price": 60097.33,
        "type": "resistance_test",
        "source": "Fibonacci (ret_0.236 $60,097.33), ICT (직전 하향 BOS $60,037 되돌림 저항, $60,162 / OB $60,174.60 하단), Candlestick (shooting_star·bearish_engulfing 상단 거부)",
        "description": "하단 PRZ 방어로 corrective 반등 발생. 직전 하향 BOS $60,037.00을 아래에서 되돌림하며 fib ret_0.236 $60,097.33까지 lower high를 형성하고 ICT bear OB $60,174.60 직하단의 프리미엄 공급을 재확인한다. 분배/재분배 구조의 전형적 lower-high 매도 셋업 지점으로, 여기서 반등이 거부되어야 bearish 경로가 유지된다.",
        "est_hours": 11,
        "turning_zone": [
          60072.55,
          60174.6
        ],
        "likely_wick": 60160.63,
        "rejection_confirm": 60037.0,
        "invalid_overshoot": 60325.0,
        "calibration_reasoning": "검증된 harmonic gartley TP 래더(TP1 AD0.382 $60,072.55·TP2 AD0.618 $60,160.63)와 ICT bear OB $60,174.60을 zone 경계로 anchor했으며, likely_wick은 TP2·chairman $60,162·OB 직하단이 겹치는 $60,160.63. 직전 하향 BOS $60,037 이탈로 lower-high 거부 확정, swing high $60,325 회복 시 lower-high 구조 붕괴로 무효화."
      },
      {
        "seq": 3,
        "price": 59360.3,
        "type": "swing_low",
        "source": "ICT (뉴욕 세션 저점 $59,360.30 하방 목표), Wyckoff (구조적 지지 $59,360.30, Phase E 하방 이탈), Harmonic ($59,456.70 / $59,302.95 PRZ 인접)",
        "description": "프리미엄 lower high 거부 후 공급 우위 재개. $59,714.80 이전 저점과 7일 EQ $59,656.35(discount 전환)를 하향 돌파하며 ICT 뉴욕 세션 저점이자 구조적 지지 $59,360.30까지 마크다운한다. Wyckoff Phase D→E 분배 이탈 경로의 1차 하방 목표이며, 추가 가속 시 $58,888 청산 유동성으로 확장.",
        "est_hours": 20,
        "turning_zone": [
          59200.0,
          59375.0
        ],
        "likely_wick": 59330.0,
        "rejection_confirm": 59461.88,
        "invalid_overshoot": 58888.0,
        "calibration_reasoning": "구조적 NY 세션 저점 $59,360.30 아래로 터미널 폭(~0.80×ATR)을 적용하고, $59,360 직하단의 지지 공백을 반영해 zone을 $59,200까지 확장. likely_wick은 세션 저점 스톱을 스윕하는 $59,330, fib 컨플루언스 $59,461.88(0.618/0.786) 회복 시 반전 확정, $58,888 청산 유동성 도달 시 베어 확장 시나리오로 전환되어 무효화."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 60037.0,
        "expected_low": 59742.61,
        "high_first": true
      },
      "8h": {
        "expected_high": 60037.0,
        "expected_low": 59742.61,
        "high_first": true
      },
      "24h": {
        "expected_high": 60097.33,
        "expected_low": 59360.3,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 60325.0,
        "description": "$60,325.00(Wyckoff UT·ICT 뉴욕 세션 고점·공급 컨플루언스) 상단을 회복·수용하면 프리미엄 매도 셋업이 약화되며 $60,435.80(OB 상단)·$60,543.30(UTAD)·$60,734.00로 상승 가속 가능."
      },
      "bearish": {
        "price": 59714.8,
        "description": "$59,714.80(ICT 이전 저점) 하향 이탈·수용 시 lower low 확정. 7일 EQ $59,656.35를 discount로 돌파하며 $59,360.30, 이어 $58,888.00 청산 유동성까지 하락 가속."
      }
    },
    "scenario_invalidation": 60734.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.64,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 59742.61,\n      \"type\": \"support_test\",\n      \"source\": \"Fibonacci (fib confluence $59,742.61, strict 0.85), Harmonic (bullish Gartley PRZ $59,766.59 / Bat $59,703.20 하단), ICT ($59,714.80 이전 저점 상단), Wyckoff ($59,819.80 SOW 클러스터 직하단)\",\n      \"description\": \"프리미엄($59,656 EQ 상단) 이탈 후 단기 하방으로 $59,742.61 fib 컨플루언스(strict 0.85)까지 하락. 이 지점은 ICT BOS·Wyckoff SOW·Harmonic 스윙이 겹치는 $59,819.80 클러스터를 하향 스윕한 직하단이자 bullish Gartley/Bat PRZ($59,703-$59,766) 상단으로, 1차 하단 PRZ 방어선을 테스트한다. 롱 과밀(0.678)·CVD -3,114 약화 환경에서 첫 지지 반응이 나오는 구간.\",\n      \"est_hours\": 4\n    },\n    {\n      \"seq\": 2,\n      \"price\": 60097.33,\n      \"type\": \"resistance_test\",\n      \"source\": \"Fibonacci (ret_0.236 $60,097.33), ICT (직전 하향 BOS $60,037 되돌림 저항, $60,162 / OB $60,174.60 하단), Candlestick (shooting_star·bearish_engulfing 상단 거부)\",\n      \"description\": \"하단 PRZ 방어로 corrective 반등 발생. 직전 하향 BOS $60,037.00을 아래에서 되돌림하며 fib ret_0.236 $60,097.33까지 lower high를 형성하고 ICT bear OB $60,174.60 직하단의 프리미엄 공급을 재확인한다. 분배/재분배 구조의 전형적 lower-high 매도 셋업 지점으로, 여기서 반등이 거부되어야 bearish 경로가 유지된다.\",\n      \"est_hours\": 11\n    },\n    {\n      \"seq\": 3,\n      \"price\": 59360.30,\n      \"type\": \"swing_low\",\n      \"source\": \"ICT (뉴욕 세션 저점 $59,360.30 하방 목표), Wyckoff (구조적 지지 $59,360.30, Phase E 하방 이탈), Harmonic ($59,456.70 / $59,302.95 PRZ 인접)\",\n      \"description\": \"프리미엄 lower high 거부 후 공급 우위 재개. $59,714.80 이전 저점과 7일 EQ $59,656.35(discount 전환)를 하향 돌파하며 ICT 뉴욕 세션 저점이자 구조적 지지 $59,360.30까지 마크다운한다. Wyckoff Phase D→E 분배 이탈 경로의 1차 하방 목표이며, 추가 가속 시 $58,888 청산 유동성으로 확장.\",\n      \"est_hours\": 20\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 60037.00, \"expected_low\": 59742.61, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 60037.00, \"expected_low\": 59742.61, \"high_first\": true},\n    \"24h\": {\"expected_high\": 60097.33, \"expected_low\": 59360.30, \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 60325.00, \"description\": \"$60,325.00(Wyckoff UT·ICT 뉴욕 세션 고점·공급 컨플루언스) 상단을 회복·수용하면 프리미엄 매도 셋업이 약화되며 $60,435.80(OB 상단)·$60,543.30(UTAD)·$60,734.00로 상승 가속 가능.\"},\n    \"bearish\": {\"price\": 59714.80, \"description\": \"$59,714.80(ICT 이전 저점) 하향 이탈·수용 시 lower low 확정. 7일 EQ $59,656.35를 discount로 돌파하며 $59,360.30, 이어 $58,888.00 청산 유동성까지 하락 가속.\"}\n  },\n  \"scenario_invalidation\": 60734.00\n}\n```"
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 59742.61,
        "turning_zone": [
          59703.0,
          59750.0
        ],
        "likely_wick": 59714.8,
        "rejection_confirm": 59819.8,
        "invalid_overshoot": 59656.35,
        "calibration_reasoning": "bullish Gartley/Bat PRZ($59,703-$59,766) 하단과 fib 컨플루언스 $59,742.61(0.5/0.618)을 zone 경계로 사용했고, likely_wick은 이전 저점 $59,714.80의 sell-side 유동성을 스윕하는 지점에 배치. 7일 EQ $59,656.35(discount 전환) 이탈 시 지지 방어 실패로 무효화."
      },
      {
        "seq": 2,
        "base_target": 60097.33,
        "turning_zone": [
          60072.55,
          60174.6
        ],
        "likely_wick": 60160.63,
        "rejection_confirm": 60037.0,
        "invalid_overshoot": 60325.0,
        "calibration_reasoning": "검증된 harmonic gartley TP 래더(TP1 AD0.382 $60,072.55·TP2 AD0.618 $60,160.63)와 ICT bear OB $60,174.60을 zone 경계로 anchor했으며, likely_wick은 TP2·chairman $60,162·OB 직하단이 겹치는 $60,160.63. 직전 하향 BOS $60,037 이탈로 lower-high 거부 확정, swing high $60,325 회복 시 lower-high 구조 붕괴로 무효화."
      },
      {
        "seq": 3,
        "base_target": 59360.3,
        "turning_zone": [
          59200.0,
          59375.0
        ],
        "likely_wick": 59330.0,
        "rejection_confirm": 59461.88,
        "invalid_overshoot": 58888.0,
        "calibration_reasoning": "구조적 NY 세션 저점 $59,360.30 아래로 터미널 폭(~0.80×ATR)을 적용하고, $59,360 직하단의 지지 공백을 반영해 zone을 $59,200까지 확장. likely_wick은 세션 저점 스톱을 스윕하는 $59,330, fib 컨플루언스 $59,461.88(0.618/0.786) 회복 시 반전 확정, $58,888 청산 유동성 도달 시 베어 확장 시나리오로 전환되어 무효화."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 59742.61,\n      \"turning_zone\": [59703.00, 59750.00],\n      \"likely_wick\": 59714.80,\n      \"rejection_confirm\": 59819.80,\n      \"invalid_overshoot\": 59656.35,\n      \"calibration_reasoning\": \"bullish Gartley/Bat PRZ($59,703-$59,766) 하단과 fib 컨플루언스 $59,742.61(0.5/0.618)을 zone 경계로 사용했고, likely_wick은 이전 저점 $59,714.80의 sell-side 유동성을 스윕하는 지점에 배치. 7일 EQ $59,656.35(discount 전환) 이탈 시 지지 방어 실패로 무효화.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 60097.33,\n      \"turning_zone\": [60072.55, 60174.60],\n      \"likely_wick\": 60160.63,\n      \"rejection_confirm\": 60037.00,\n      \"invalid_overshoot\": 60325.00,\n      \"calibration_reasoning\": \"검증된 harmonic gartley TP 래더(TP1 AD0.382 $60,072.55·TP2 AD0.618 $60,160.63)와 ICT bear OB $60,174.60을 zone 경계로 anchor했으며, likely_wick은 TP2·chairman $60,162·OB 직하단이 겹치는 $60,160.63. 직전 하향 BOS $60,037 이탈로 lower-high 거부 확정, swing high $60,325 회복 시 lower-high 구조 붕괴로 무효화.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 59360.30,\n      \"turning_zone\": [59200.00, 59375.00],\n      \"likely_wick\": 59330.00,\n      \"rejection_confirm\": 59461.88,\n      \"invalid_overshoot\": 58888.00,\n      \"calibration_reasoning\": \"구조적 NY 세션 저점 $59,360.30 아래로 터미널 폭(~0.80×ATR)을 적용하고, $59,360 직하단의 지지 공백을 반영해 zone을 $59,200까지 확장. likely_wick은 세션 저점 스톱을 스윕하는 $59,330, fib 컨플루언스 $59,461.88(0.618/0.786) 회복 시 반전 확정, $58,888 청산 유동성 도달 시 베어 확장 시나리오로 전환되어 무효화.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 66.8,
      "chairman": 77.1,
      "operating_path": 591.4,
      "tp_calibrator": 190.6
    },
    "agents": {},
    "total_s": 925.9
  }
}