{
  "symbol": "BTC/USDT",
  "timeframe": "15m",
  "timestamp": "2026-06-27 13:00 KST",
  "last_price": 60271.9,
  "num_candles": 300,
  "stage1_analyses": {
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.63,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.74,
      "setup_signals": [
        "가격 $60,271.90이 EMA20 $60,110.55와 EMA120 $60,003.64 위에 있으나 EMA240 $60,384.08 아래에 있어 상단 수용이 확인되지 않은 중립 구조",
        "롱 계정 비율 0.676, 숏 계정 비율 0.324로 계정 포지셔닝이 롱 쏠림 상태이며 account_long_crowding 1.000",
        "24시간 롱 계정 변화 -0.0269, 숏 계정 변화 +0.027로 롱은 줄고 숏은 증가하는 포지션 흐름",
        "CVD 변화 -1770.49로 가격이 24시간 +0.43% 버티는 동안 체결 델타는 약화되어 매수 참여 부진",
        "OI 24시간 변화 -0.869%로 신규 추세 포지션 유입보다 기존 포지션 언와인딩 성격이 강함",
        "현물-선물 베이시스 -0.0561%로 선물이 현물 대비 할인되어 파생시장 수요가 약함",
        "하방 청산 밀집 구간 $59,100, $58,800, $57,600이 단기 유동성 타깃으로 열려 있음"
      ],
      "reasoning": "현재 가격 $60,271.90은 EMA20 $60,110.55와 EMA120 $60,003.64 위에 있지만 EMA240 $60,384.08 아래에서 막혀 있어 확정적인 상승 구조보다는 박스권 중립 구조로 판단된다. 다만 파생 포지셔닝은 bearish setup이 우세한데, 롱 계정 비율이 0.676으로 과밀하고 account_long_crowding이 1.000인 반면 CVD는 -1770.49로 약화되어 가격 유지 대비 매수 체결 강도가 따라오지 못하고 있다. OI가 24시간 -0.869% 감소한 점은 상승 추세를 지지하는 신규 레버리지 유입이 아니라 포지션 축소에 가깝고, 베이시스도 -0.0561%로 선물 수요가 약하다. 따라서 구조는 아직 중립이지만, 4-8시간 선행 성격의 파생 데이터 기준으로는 $59,100 → $58,800 하방 유동성 테스트 가능성이 더 높다.",
      "key_levels": {
        "support": [
          60110.55,
          60003.64,
          59100,
          58800,
          58030,
          57600
        ],
        "resistance": [
          60384.08,
          62400,
          62700,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,384.08 상방 회복 후 15분봉 기준 명확한 수용이 확인되면 단기 bearish setup은 약화되며, $62,400 돌파 시 분석은 무효화",
      "risk_scenario": "반대로 가격이 EMA240 $60,384.08을 회복하고 OI가 증가하면서 CVD가 양전환하면, 현재의 롱 과밀은 숏 스퀴즈 재료로 바뀔 수 있으며 $62,400 및 $62,700 상방 청산 구간까지 빠르게 확장될 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.3,
        "cvd_change": -1770.49,
        "oi_trend": 0.413,
        "oi_change_pct_24h": -0.869,
        "oi_latest": 104578.998,
        "funding_pressure": 0.438,
        "funding_avg": 6.156e-05,
        "funding_change_24h": -6.49e-06,
        "long_account_ratio": 0.676,
        "short_account_ratio": 0.324,
        "long_account_latest": 0.676,
        "short_account_latest": 0.324,
        "long_account_change_24h": -0.0269,
        "short_account_change_24h": 0.0269,
        "account_flow_label": "short_accounts_rising_long_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.486,
        "spot_futures_basis_pct": -0.0561,
        "basis_change_lookback": -0.0001,
        "aggregate_score": 0.327,
        "bull_signals": 0,
        "bear_signals": 4,
        "liq_below": [
          [
            59100,
            1527.0914970000001
          ],
          [
            58800,
            1353.0577965000002
          ],
          [
            57600,
            1804.077062
          ]
        ],
        "liq_above": [
          [
            62400,
            1655.92615
          ],
          [
            62700,
            1475.197212
          ],
          [
            66000,
            2069.9076875000005
          ]
        ],
        "strongest_liq_level": 54000,
        "fragility_score": 0.569,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.63,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.74,\n  \"setup_signals\": [\n    \"가격 $60,271.90이 EMA20 $60,110.55와 EMA120 $60,003.64 위에 있으나 EMA240 $60,384.08 아래에 있어 상단 수용이 확인되지 않은 중립 구조\",\n    \"롱 계정 비율 0.676, 숏 계정 비율 0.324로 계정 포지셔닝이 롱 쏠림 상태이며 account_long_crowding 1.000\",\n    \"24시간 롱 계정 변화 -0.0269, 숏 계정 변화 +0.027로 롱은 줄고 숏은 증가하는 포지션 흐름\",\n    \"CVD 변화 -1770.49로 가격이 24시간 +0.43% 버티는 동안 체결 델타는 약화되어 매수 참여 부진\",\n    \"OI 24시간 변화 -0.869%로 신규 추세 포지션 유입보다 기존 포지션 언와인딩 성격이 강함\",\n    \"현물-선물 베이시스 -0.0561%로 선물이 현물 대비 할인되어 파생시장 수요가 약함\",\n    \"하방 청산 밀집 구간 $59,100, $58,800, $57,600이 단기 유동성 타깃으로 열려 있음\"\n  ],\n  \"reasoning\": \"현재 가격 $60,271.90은 EMA20 $60,110.55와 EMA120 $60,003.64 위에 있지만 EMA240 $60,384.08 아래에서 막혀 있어 확정적인 상승 구조보다는 박스권 중립 구조로 판단된다. 다만 파생 포지셔닝은 bearish setup이 우세한데, 롱 계정 비율이 0.676으로 과밀하고 account_long_crowding이 1.000인 반면 CVD는 -1770.49로 약화되어 가격 유지 대비 매수 체결 강도가 따라오지 못하고 있다. OI가 24시간 -0.869% 감소한 점은 상승 추세를 지지하는 신규 레버리지 유입이 아니라 포지션 축소에 가깝고, 베이시스도 -0.0561%로 선물 수요가 약하다. 따라서 구조는 아직 중립이지만, 4-8시간 선행 성격의 파생 데이터 기준으로는 $59,100 → $58,800 하방 유동성 테스트 가능성이 더 높다.\",\n  \"key_levels\": {\n    \"support\": [\n      60110.55,\n      60003.64,\n      59100,\n      58800,\n      58030,\n      57600\n    ],\n    \"resistance\": [\n      60384.08,\n      62400,\n      62700,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,384.08 상방 회복 후 15분봉 기준 명확한 수용이 확인되면 단기 bearish setup은 약화되며, $62,400 돌파 시 분석은 무효화\",\n  \"risk_scenario\": \"반대로 가격이 EMA240 $60,384.08을 회복하고 OI가 증가하면서 CVD가 양전환하면, 현재의 롱 과밀은 숏 스퀴즈 재료로 바뀔 수 있으며 $62,400 및 $62,700 상방 청산 구간까지 빠르게 확장될 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "bullish",
      "confidence": 0.52,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.58,
      "setup_signals": [
        "7일 범위 EQ $60,619.80 아래의 할인 구간에서 현재가 $60,271.90 거래 중",
        "EMA20 $60,110.55 및 EMA120 $60,003.64 위에서 단기 지지 유지",
        "최근 300개 캔들 중 말미 구간에서 bullish_engulfing@292, bullish_engulfing@297 발생",
        "최근 doji@295, doji@298 출현으로 $60,000 부근 매도 압력 둔화 신호",
        "다만 EMA240 $60,384.08이 바로 위 저항으로 남아 있어 구조 전환은 미확정"
      ],
      "reasoning": "현재 BTC는 $60,271.90으로 EMA20 $60,110.55와 EMA120 $60,003.64 위에 있어 단기 매수세가 방어되고 있지만, EMA240 $60,384.08 아래에 있어 확정적인 상승 구조로 보기는 어렵습니다. 최근 패턴은 bullish_engulfing 2개와 doji 2개가 감지되었고 bull_score 1.5, bear_score 0으로 매수 쪽 신호가 우세하지만, 최고 패턴 품질이 0.567에 그치고 고거래량 패턴이 없어 신뢰도는 중간 이하입니다. 7일 고점 $63,209.60과 저점 $58,030.00의 중간값인 EQ $60,619.80 아래에서 거래되고 있어, 구조적으로는 중립이나 셋업 관점에서는 할인 구간 반등 시도가 유효합니다. 핵심은 $60,384.08 EMA240과 $60,619.80 EQ를 회복해 수용되는지이며, 실패 시 다시 $60,110.55~$60,003.64 지지 테스트가 예상됩니다.",
      "key_levels": {
        "support": [
          60110.55,
          60003.64,
          58030.0
        ],
        "resistance": [
          60384.08,
          60619.8,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,003.64",
      "risk_scenario": "가격이 EMA120 $60,003.64 아래로 이탈하면 최근 bullish engulfing 셋업은 실패로 간주되며, $60,000 심리적 지지 붕괴 후 7일 저점 $58,030.00 방향으로 하락 압력이 확대될 수 있습니다. 반대로 $60,384.08과 $60,619.80을 강하게 돌파하면 중립 구조가 단기 bullish 구조로 전환될 가능성이 커집니다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 137,
        "recent_patterns": 4,
        "pattern_list": [
          "bullish_engulfing@292",
          "bullish_engulfing@297",
          "doji@295",
          "doji@298"
        ],
        "atr_value": 160.13,
        "vol_avg_20": 815.85,
        "high_volume_patterns": [],
        "pattern_candidates": [
          {
            "pattern": "bullish_engulfing",
            "signal": "bullish",
            "pattern_quality": 0.567,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bullish_engulfing",
            "signal": "bullish",
            "pattern_quality": 0.443,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.355,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.355,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.567,
        "bull_score": 1.5,
        "bear_score": 0
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.52,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.58,\n  \"setup_signals\": [\n    \"7일 범위 EQ $60,619.80 아래의 할인 구간에서 현재가 $60,271.90 거래 중\",\n    \"EMA20 $60,110.55 및 EMA120 $60,003.64 위에서 단기 지지 유지\",\n    \"최근 300개 캔들 중 말미 구간에서 bullish_engulfing@292, bullish_engulfing@297 발생\",\n    \"최근 doji@295, doji@298 출현으로 $60,000 부근 매도 압력 둔화 신호\",\n    \"다만 EMA240 $60,384.08이 바로 위 저항으로 남아 있어 구조 전환은 미확정\"\n  ],\n  \"reasoning\": \"현재 BTC는 $60,271.90으로 EMA20 $60,110.55와 EMA120 $60,003.64 위에 있어 단기 매수세가 방어되고 있지만, EMA240 $60,384.08 아래에 있어 확정적인 상승 구조로 보기는 어렵습니다. 최근 패턴은 bullish_engulfing 2개와 doji 2개가 감지되었고 bull_score 1.5, bear_score 0으로 매수 쪽 신호가 우세하지만, 최고 패턴 품질이 0.567에 그치고 고거래량 패턴이 없어 신뢰도는 중간 이하입니다. 7일 고점 $63,209.60과 저점 $58,030.00의 중간값인 EQ $60,619.80 아래에서 거래되고 있어, 구조적으로는 중립이나 셋업 관점에서는 할인 구간 반등 시도가 유효합니다. 핵심은 $60,384.08 EMA240과 $60,619.80 EQ를 회복해 수용되는지이며, 실패 시 다시 $60,110.55~$60,003.64 지지 테스트가 예상됩니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60110.55,\n      60003.64,\n      58030.0\n    ],\n    \"resistance\": [\n      60384.08,\n      60619.8,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,003.64\",\n  \"risk_scenario\": \"가격이 EMA120 $60,003.64 아래로 이탈하면 최근 bullish engulfing 셋업은 실패로 간주되며, $60,000 심리적 지지 붕괴 후 7일 저점 $58,030.00 방향으로 하락 압력이 확대될 수 있습니다. 반대로 $60,384.08과 $60,619.80을 강하게 돌파하면 중립 구조가 단기 bullish 구조로 전환될 가능성이 커집니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bullish",
      "confidence": 0.68,
      "structure_bias": "bullish",
      "setup_bias": "bullish",
      "setup_score": 0.793,
      "setup_signals": [
        "최근 구조 이벤트가 BOS_bullish $60,245 이후 현재가 $60,271.90에서 해당 레벨 위를 유지",
        "현재가 $60,271.90가 EQ $60,055.35 위에 있어 단기 매수 우위는 유지되나 프리미엄 구간",
        "EMA20 $60,110.55 및 EMA120 $60,003.64 위에서 거래되어 단기/중기 평균선 지지 확인",
        "하단 후보 bullish OB $58,288.00-$58,944.00가 할인 영역의 잠재 수요 구간으로 존재"
      ],
      "reasoning": "확정 구조는 최근 시퀀스가 BOS_bullish $61,256 → CHoCH_bearish $60,648 → BOS_bullish $60,245로 마감되었고, 현재가 $60,271.90가 마지막 bullish BOS 기준인 $60,245 위에 있어 구조_bias는 bullish로 판단한다. 다만 현재 가격은 EQ $60,055.35 위의 premium 구간이며, range high $60,580.00 및 전일고가 $60,734.00가 바로 위 저항으로 존재해 즉시 추격 매수의 효율은 낮다. FVG는 미충족 구간이 0개이고 최근 liquidity sweep도 없어 기관식 강한 유동성 사냥 후 반전 신호는 아직 부족하지만, bull_score 5.0이 bear_score 3.7보다 우위이고 setup_score 0.793으로 상방 continuation setup이 우세하다. 핵심은 $60,245를 방어하며 $60,580-$60,734 매수 유동성을 돌파하는지이며, 실패 시 EQ $60,055.35 또는 London low $59,717.10까지 되돌림 가능성이 있다.",
      "key_levels": {
        "support": [
          60245.0,
          60055.35,
          59717.1,
          59530.7,
          58944.0,
          58288.0
        ],
        "resistance": [
          60580.0,
          60734.0,
          61256.0,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "59530.70",
      "risk_scenario": "$60,245 bullish BOS 레벨을 잃고 EQ $60,055.35 아래로 수용되면 현재 bullish setup은 약화된다. 특히 range low $59,530.70까지 하방 이탈하면 단기 구조는 bearish CHoCH로 전환될 가능성이 높고, 이후 $58,944-$58,288 후보 bullish OB까지 sell-side liquidity 탐색이 열릴 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "order_blocks_total": 1,
        "confirmed_bullish_ob": 0,
        "confirmed_bearish_ob": 0,
        "candidate_bullish_ob": 1,
        "candidate_bearish_ob": 0,
        "active_bullish_ob": 0,
        "active_bearish_ob": 0,
        "nearest_bull_ob_range": {
          "bottom": 58288.0,
          "top": 58944.0,
          "quality": "candidate",
          "score": 0.577
        },
        "nearest_bear_ob_range": null,
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [],
        "ob_mitigated_count": 1,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 64,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish"
        ],
        "bos_choch_levels": [
          {
            "type": "BOS_bullish",
            "level": 61256.0
          },
          {
            "type": "CHoCH_bearish",
            "level": 60648.0
          },
          {
            "type": "BOS_bullish",
            "level": 60245.0
          }
        ],
        "bos_sequence": [
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish"
        ],
        "consecutive_bull_bos": 1,
        "consecutive_bear_bos": 0,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "premium",
        "eq_level": 60055.35,
        "range_high": 60580.0,
        "range_low": 59530.7,
        "bull_score": 5.0,
        "bear_score": 3.7,
        "setup_bias": "bullish",
        "setup_score": 0.793,
        "setup_signals": [
          "bullish BOS above $61,256.00",
          "bullish BOS above $60,245.00"
        ],
        "retracement_direction": "bearish",
        "current_retracement_pct": 79.6,
        "deepest_retracement_pct": 81.7,
        "previous_day_high": 60734.0,
        "previous_day_low": 58288.0,
        "broken_prev_high": false,
        "broken_prev_low": false,
        "sessions": {
          "London": {
            "active": true,
            "high": 60387.8,
            "low": 59717.1
          },
          "New York": {
            "active": false,
            "high": null,
            "low": null
          },
          "Asian kill zone": {
            "active": false,
            "high": null,
            "low": null
          }
        }
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.68,\n  \"structure_bias\": \"bullish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.793,\n  \"setup_signals\": [\n    \"최근 구조 이벤트가 BOS_bullish $60,245 이후 현재가 $60,271.90에서 해당 레벨 위를 유지\",\n    \"현재가 $60,271.90가 EQ $60,055.35 위에 있어 단기 매수 우위는 유지되나 프리미엄 구간\",\n    \"EMA20 $60,110.55 및 EMA120 $60,003.64 위에서 거래되어 단기/중기 평균선 지지 확인\",\n    \"하단 후보 bullish OB $58,288.00-$58,944.00가 할인 영역의 잠재 수요 구간으로 존재\"\n  ],\n  \"reasoning\": \"확정 구조는 최근 시퀀스가 BOS_bullish $61,256 → CHoCH_bearish $60,648 → BOS_bullish $60,245로 마감되었고, 현재가 $60,271.90가 마지막 bullish BOS 기준인 $60,245 위에 있어 구조_bias는 bullish로 판단한다. 다만 현재 가격은 EQ $60,055.35 위의 premium 구간이며, range high $60,580.00 및 전일고가 $60,734.00가 바로 위 저항으로 존재해 즉시 추격 매수의 효율은 낮다. FVG는 미충족 구간이 0개이고 최근 liquidity sweep도 없어 기관식 강한 유동성 사냥 후 반전 신호는 아직 부족하지만, bull_score 5.0이 bear_score 3.7보다 우위이고 setup_score 0.793으로 상방 continuation setup이 우세하다. 핵심은 $60,245를 방어하며 $60,580-$60,734 매수 유동성을 돌파하는지이며, 실패 시 EQ $60,055.35 또는 London low $59,717.10까지 되돌림 가능성이 있다.\",\n  \"key_levels\": {\n    \"support\": [\n      60245.0,\n      60055.35,\n      59717.1,\n      59530.7,\n      58944.0,\n      58288.0\n    ],\n    \"resistance\": [\n      60580.0,\n      60734.0,\n      61256.0,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"59530.70\",\n  \"risk_scenario\": \"$60,245 bullish BOS 레벨을 잃고 EQ $60,055.35 아래로 수용되면 현재 bullish setup은 약화된다. 특히 range low $59,530.70까지 하방 이탈하면 단기 구조는 bearish CHoCH로 전환될 가능성이 높고, 이후 $58,944-$58,288 후보 bullish OB까지 sell-side liquidity 탐색이 열릴 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "bearish",
      "confidence": 0.74,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.62,
      "setup_signals": [
        "분배 구조 Phase D로 분류되며 현재 이벤트가 SOW: $60,134.50",
        "LPSY 후보/확정 고점 $60,387.80 직후 약세 반응 발생",
        "현재가 $60,271.90가 메인 레인지 하단/AR $60,666.00 아래에 위치하여 레인지 재진입 실패 상태",
        "EQ 약 $60,961.00 아래의 디스카운트 영역에 머물며, 반등 시 $60,666.00~$60,734.00 회복 여부가 핵심",
        "UT $60,734.00 및 BC $61,256.00 아래에서 공급 우위가 유지되는 구조"
      ],
      "reasoning": "15분 구조는 regime=DIS, regime_fitness 0.963으로 분배 후보가 우세하며, 라벨 체인은 BC $61,256.00 → AR $60,666.00 → ST $61,931.10 → SOW_IN_PHASE_B $58,030.00 → UT $60,734.00 → LPSY $60,387.80 → SOW $60,134.50로 Phase D 약세 진행을 가리킨다. 현재가 $60,271.90는 메인 레인지 하단 $60,666.00 및 EQ 약 $60,961.00 아래에 있어 구조적으로는 매수 수용보다 공급 테스트 실패 쪽에 가깝다. 다만 acc_score와 dis_score가 모두 96.2로 동일하고 regime_state가 dis_candidate이므로, 분배 해석은 우세하지만 완전한 Phase E 확정으로 과장해서는 안 된다. 즉 구조_bias는 bearish이나, 즉각 경로는 $60,387.80~$60,666.00 저항 재시험 후 거부되는지 확인이 필요하다.",
      "key_levels": {
        "support": [
          60134.5,
          60003.64,
          58030.0
        ],
        "resistance": [
          60387.8,
          60666.0,
          60734.0,
          61256.0,
          61931.1
        ]
      },
      "time_horizon": "short to medium term",
      "invalidation_level": "$61,931.10 상향 회복 및 15분 종가 기준 수용",
      "risk_scenario": "반대 시나리오는 가격이 $60,666.00 메인 레인지 하단을 회복하고 $60,734.00 UT 레벨 위에 안착하는 경우다. 이 경우 현재 SOW는 실패한 하방 이탈 또는 테스트로 재해석될 수 있으며, $61,256.00 BC와 $61,931.10 ST 재시험까지 반등 경로가 열릴 수 있다.",
      "data_quality": "medium",
      "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",
          "LPSY",
          "SOW"
        ],
        "last_phase": "SOW",
        "phase_candidates": [
          {
            "label": "BC",
            "side": "high",
            "idx": 84,
            "price": 61256.0,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "low",
            "idx": 95,
            "price": 60666.0,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "high",
            "idx": 122,
            "price": 61931.1,
            "color": "#118ab2"
          },
          {
            "label": "SOW_IN_PHASE_B",
            "side": "low",
            "idx": 147,
            "price": 58030.0,
            "color": "#ef476f"
          },
          {
            "label": "UT",
            "side": "high",
            "idx": 218,
            "price": 60734.0,
            "color": "#f9844a"
          },
          {
            "label": "LPSY",
            "side": "high",
            "idx": 296,
            "price": 60387.8,
            "color": "#8338ec"
          },
          {
            "label": "SOW",
            "side": "low",
            "idx": 297,
            "price": 60134.5,
            "color": "#ef476f"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "15m_cycle_1",
            "sequence": 1,
            "timeframe": "15m",
            "regime": "distribution",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 84,
            "end_idx": 297,
            "phase_count": 7,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 84,
                "price": 61256.0,
                "color": "#ffd166",
                "dt": "2026-06-25 07:00:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 95,
                "price": 60666.0,
                "color": "#06d6a0",
                "dt": "2026-06-25 09:45:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 122,
                "price": 61931.1,
                "color": "#118ab2",
                "dt": "2026-06-25 16:30:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 147,
                "price": 58030.0,
                "color": "#ef476f",
                "dt": "2026-06-25 22:45:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 218,
                "price": 60734.0,
                "color": "#f9844a",
                "dt": "2026-06-26 16:30:00+09:00"
              },
              {
                "label": "LPSY",
                "side": "high",
                "idx": 296,
                "price": 60387.8,
                "color": "#8338ec",
                "dt": "2026-06-27 12:00:00+09:00"
              },
              {
                "label": "SOW",
                "side": "low",
                "idx": 297,
                "price": 60134.5,
                "color": "#ef476f",
                "dt": "2026-06-27 12:15:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "15m_cycle_1",
        "primary_structure_id": "15m_cycle_1",
        "structure_count": 1,
        "regime_fitness": 0.9625,
        "current_event": "SOW",
        "major_phase": "D",
        "pos_in_range": 0.5,
        "main_range_low": 60666.0,
        "main_range_high": 61256.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.74,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.62,\n  \"setup_signals\": [\n    \"분배 구조 Phase D로 분류되며 현재 이벤트가 SOW: $60,134.50\",\n    \"LPSY 후보/확정 고점 $60,387.80 직후 약세 반응 발생\",\n    \"현재가 $60,271.90가 메인 레인지 하단/AR $60,666.00 아래에 위치하여 레인지 재진입 실패 상태\",\n    \"EQ 약 $60,961.00 아래의 디스카운트 영역에 머물며, 반등 시 $60,666.00~$60,734.00 회복 여부가 핵심\",\n    \"UT $60,734.00 및 BC $61,256.00 아래에서 공급 우위가 유지되는 구조\"\n  ],\n  \"reasoning\": \"15분 구조는 regime=DIS, regime_fitness 0.963으로 분배 후보가 우세하며, 라벨 체인은 BC $61,256.00 → AR $60,666.00 → ST $61,931.10 → SOW_IN_PHASE_B $58,030.00 → UT $60,734.00 → LPSY $60,387.80 → SOW $60,134.50로 Phase D 약세 진행을 가리킨다. 현재가 $60,271.90는 메인 레인지 하단 $60,666.00 및 EQ 약 $60,961.00 아래에 있어 구조적으로는 매수 수용보다 공급 테스트 실패 쪽에 가깝다. 다만 acc_score와 dis_score가 모두 96.2로 동일하고 regime_state가 dis_candidate이므로, 분배 해석은 우세하지만 완전한 Phase E 확정으로 과장해서는 안 된다. 즉 구조_bias는 bearish이나, 즉각 경로는 $60,387.80~$60,666.00 저항 재시험 후 거부되는지 확인이 필요하다.\",\n  \"key_levels\": {\n    \"support\": [\n      60134.5,\n      60003.64,\n      58030.0\n    ],\n    \"resistance\": [\n      60387.8,\n      60666.0,\n      60734.0,\n      61256.0,\n      61931.1\n    ]\n  },\n  \"time_horizon\": \"short to medium term\",\n  \"invalidation_level\": \"$61,931.10 상향 회복 및 15분 종가 기준 수용\",\n  \"risk_scenario\": \"반대 시나리오는 가격이 $60,666.00 메인 레인지 하단을 회복하고 $60,734.00 UT 레벨 위에 안착하는 경우다. 이 경우 현재 SOW는 실패한 하방 이탈 또는 테스트로 재해석될 수 있으며, $61,256.00 BC와 $61,931.10 ST 재시험까지 반등 경로가 열릴 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bullish",
      "confidence": 0.62,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.68,
      "setup_signals": [
        "현재가 $60,271.90가 하락 스윙 고점 $60,167 위에 위치하여 단기 하락 피보나치 구간을 상방 이탈한 상태",
        "가격이 7일 범위 EQ 약 $60,619.80 아래의 할인 구간에 있어 반등 셋업에 유리",
        "0.786 되돌림 $60,107.68, 0.618 황금비율 $60,060.87, 0.5 되돌림 $60,028.00이 모두 현재가 아래에서 지지 클러스터 형성",
        "핵심 confluence zone $60,025.79에 6개 피보나치 레벨이 밀집하며 cluster_score 1.0",
        "EMA20 $60,110.55 및 EMA120 $60,003.64 위에서 거래되어 단기 지지 반응이 유지되는 상태"
      ],
      "reasoning": "현재 BTC/USDT는 $60,271.90로, 최근 하락 스윙 $60,167→$59,889의 0.786 되돌림 $60,107.68과 0.618 황금비율 $60,060.87을 모두 회복한 상태입니다. 특히 $60,025.79 부근은 ret_0.236, ret_0.382, ret_0.5, ret_0.618, ret_0.786이 겹치는 강한 피보나치 confluence zone이며 cluster_score가 1.0으로 높습니다. 다만 구조적으로는 EMA240 $60,384.08과 7일 범위 EQ 약 $60,619.80을 아직 명확히 수용하지 못했기 때문에 confirmed structure_bias는 bullish가 아닌 neutral로 평가합니다. 셋업 관점에서는 가격이 할인 구간에서 주요 피보나치 지지대를 재확보했고, fib_reaction_state가 testing이며 reaction_probability가 0.65로 나타나 단기 상방 시도가 우세합니다.",
      "key_levels": {
        "support": [
          60107.68,
          60060.87,
          60028.0,
          60025.79,
          59995.13,
          59888.7,
          59760.32
        ],
        "resistance": [
          60384.08,
          60619.8,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$59,888.70",
      "risk_scenario": "반대로 가격이 $60,107.68과 $60,060.87을 다시 하회하고 특히 $60,025.79 confluence zone 아래로 수용되면, 현재의 반등 셋업은 약화됩니다. 이후 $59,888.70 스윙 저점이 깨질 경우 $59,760.32 확장 클러스터와 $59,610.10 ext_2.0까지 하락 확장이 열릴 수 있습니다.",
      "data_quality": "high",
      "metrics": {
        "swing_pair": "High→Low: $60,167 → $59,889",
        "direction": "down",
        "nearest_fib": "ret_0.786",
        "nearest_fib_price": 60107.68,
        "nearest_fib_distance": 0.27,
        "golden_ratio_level": 60060.87,
        "fib_ret_382": 59995.13,
        "fib_ret_618": 60060.87,
        "confluence_zones": [
          {
            "price": 60025.79,
            "count": 6,
            "levels": [
              "ret_0.236",
              "ret_0.382",
              "ret_0.382",
              "ret_0.5",
              "ret_0.618",
              "ret_0.786"
            ],
            "cluster_score": 1.0
          },
          {
            "price": 59760.32,
            "count": 5,
            "levels": [
              "ext_2.0",
              "ext_1.618",
              "ext_1.414",
              "ext_1.272",
              "ext_1.0"
            ],
            "cluster_score": 1.0
          },
          {
            "price": 59345.16,
            "count": 2,
            "levels": [
              "ret_0.236",
              "ext_2.618"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          60107.6796,
          60060.8748,
          60028.0
        ],
        "resistance_levels": [],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 59954.45,
            "distance_pct": 0.53,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.382",
            "price": 59995.13,
            "distance_pct": 0.46,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.5",
            "price": 60028.0,
            "distance_pct": 0.4,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.618",
            "price": 60060.87,
            "distance_pct": 0.35,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.786",
            "price": 60107.68,
            "distance_pct": 0.27,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.0",
            "price": 59888.7,
            "distance_pct": 0.64,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.272",
            "price": 59812.92,
            "distance_pct": 0.76,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.414",
            "price": 59773.36,
            "distance_pct": 0.83,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.618",
            "price": 59716.53,
            "distance_pct": 0.92,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_2.0",
            "price": 59610.1,
            "distance_pct": 1.1,
            "is_support": true,
            "cluster_score": 1.0
          }
        ],
        "confluence_quality": 1.0,
        "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.68,\n  \"setup_signals\": [\n    \"현재가 $60,271.90가 하락 스윙 고점 $60,167 위에 위치하여 단기 하락 피보나치 구간을 상방 이탈한 상태\",\n    \"가격이 7일 범위 EQ 약 $60,619.80 아래의 할인 구간에 있어 반등 셋업에 유리\",\n    \"0.786 되돌림 $60,107.68, 0.618 황금비율 $60,060.87, 0.5 되돌림 $60,028.00이 모두 현재가 아래에서 지지 클러스터 형성\",\n    \"핵심 confluence zone $60,025.79에 6개 피보나치 레벨이 밀집하며 cluster_score 1.0\",\n    \"EMA20 $60,110.55 및 EMA120 $60,003.64 위에서 거래되어 단기 지지 반응이 유지되는 상태\"\n  ],\n  \"reasoning\": \"현재 BTC/USDT는 $60,271.90로, 최근 하락 스윙 $60,167→$59,889의 0.786 되돌림 $60,107.68과 0.618 황금비율 $60,060.87을 모두 회복한 상태입니다. 특히 $60,025.79 부근은 ret_0.236, ret_0.382, ret_0.5, ret_0.618, ret_0.786이 겹치는 강한 피보나치 confluence zone이며 cluster_score가 1.0으로 높습니다. 다만 구조적으로는 EMA240 $60,384.08과 7일 범위 EQ 약 $60,619.80을 아직 명확히 수용하지 못했기 때문에 confirmed structure_bias는 bullish가 아닌 neutral로 평가합니다. 셋업 관점에서는 가격이 할인 구간에서 주요 피보나치 지지대를 재확보했고, fib_reaction_state가 testing이며 reaction_probability가 0.65로 나타나 단기 상방 시도가 우세합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60107.68,\n      60060.87,\n      60028.0,\n      60025.79,\n      59995.13,\n      59888.7,\n      59760.32\n    ],\n    \"resistance\": [\n      60384.08,\n      60619.8,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$59,888.70\",\n  \"risk_scenario\": \"반대로 가격이 $60,107.68과 $60,060.87을 다시 하회하고 특히 $60,025.79 confluence zone 아래로 수용되면, 현재의 반등 셋업은 약화됩니다. 이후 $59,888.70 스윙 저점이 깨질 경우 $59,760.32 확장 클러스터와 $59,610.10 ext_2.0까지 하락 확장이 열릴 수 있습니다.\",\n  \"data_quality\": \"high\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "bearish",
      "confidence": 0.59,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.72,
      "setup_signals": [
        "현재가 $60,271.90가 활성 bearish Shark PRZ $59,979.84-$60,298.08 내부에 위치, D 예상가 $60,138.96, 점수 0.965",
        "현재가가 활성 bearish Bat PRZ $60,116.23-$60,487.38 내부에 위치, D 예상가 $60,301.81까지 거리 +0.05%",
        "완성된 strict bearish Gartley PRZ $60,184.90-$60,506.94에서 반응 확인, reaction_score 0.95, AD 0.236 반응 도달",
        "추가 bearish Gartley 형성 PRZ $60,179.37-$60,549.45 및 bearish Bat PRZ $60,341.53-$60,711.05가 상단 공급/반전 후보로 중첩",
        "EMA240 $60,384.08이 현재가 위에 있으며, bearish Bat/Gartley PRZ 중심부와 겹쳐 단기 저항 confluence 형성"
      ],
      "reasoning": "하모닉 기준으로 현재 BTC/USDT $60,271.90는 여러 개의 활성 bearish PRZ 안에 들어와 있으며, 특히 Shark $59,979.84-$60,298.08, Bat $60,116.23-$60,487.38, Gartley $60,179.37-$60,549.45가 겹칩니다. 완성된 strict bearish Gartley는 $60,184.90-$60,506.94 PRZ에서 이미 rejection/defense가 확인되었고 reaction_score 0.95로 post-confirmation vote eligible 상태입니다. 다만 하모닉은 독립적인 구조 엔진이 아니므로, 확인된 BOS/CHoCH 또는 상위 구조 수용 정보가 없는 현재 구조_bias는 neutral로 둡니다. setup 측면에서는 directional_scores가 bearish 1.481 대 bullish 0.513으로 우세하고, 핵심 하락 TP 클러스터가 $60,034-$60,011 및 $59,849-$59,840에 밀집해 있어 단기 하방 반응 우위입니다.",
      "key_levels": {
        "support": [
          60060.32,
          60034.51,
          60016.91,
          60011.74,
          59849.18,
          59842.11,
          59840.9,
          59556.0,
          59530.7
        ],
        "resistance": [
          60298.08,
          60301.81,
          60487.38,
          60506.94,
          60549.45,
          60711.05
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,711.05",
      "risk_scenario": "가격이 $60,506.94 위에서 방어되고 특히 $60,711.05 상단 PRZ까지 돌파·수용되면 bearish PRZ 실패로 간주되며, 하모닉 하락 반응 시나리오는 약화됩니다. 그 경우 $60,384.08 EMA240 재탈환과 함께 상단 유동성 추적이 열릴 수 있으며, 반대로 $59,764.43-$59,926.59의 bullish Gartley PRZ는 눌림 매수 반응 구간으로 재평가됩니다.",
      "data_quality": "medium",
      "metrics": {
        "patterns_found": 89,
        "completed_patterns_found": 36,
        "forming_d_prz_found": 53,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 34,
        "multiscale_swings_scanned": 54,
        "swing_highs_scanned": 27,
        "swing_lows_scanned": 27,
        "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": 11,
          "medium": 36,
          "low": 42
        },
        "prz_status_counts": {
          "active": 21,
          "nearby": 13,
          "watch": 14,
          "far": 41,
          "forming": 29
        },
        "high_confluence_prz_count": 31,
        "strict_patterns_found": 50,
        "candidate_patterns_found": 39,
        "active_patterns_at_prz": 21,
        "nearby_patterns": 13,
        "all_patterns": [
          "shark",
          "bat",
          "gartley",
          "shark",
          "bat",
          "bat",
          "crab",
          "gartley",
          "butterfly",
          "gartley",
          "gartley",
          "crab",
          "bat",
          "gartley",
          "gartley",
          "gartley",
          "butterfly",
          "gartley",
          "bat",
          "bat",
          "bat",
          "crab",
          "bat",
          "shark",
          "butterfly",
          "gartley",
          "bat",
          "gartley",
          "butterfly",
          "shark",
          "gartley",
          "crab",
          "crab",
          "bat",
          "crab",
          "bat",
          "crab",
          "crab",
          "bat",
          "crab",
          "bat",
          "crab",
          "crab",
          "shark",
          "bat",
          "shark",
          "gartley",
          "butterfly",
          "crab",
          "butterfly",
          "shark",
          "bat",
          "crab",
          "butterfly",
          "crab",
          "crab",
          "crab",
          "butterfly",
          "gartley",
          "shark",
          "butterfly",
          "crab",
          "gartley",
          "butterfly",
          "crab",
          "butterfly",
          "crab",
          "crab",
          "shark",
          "bat",
          "butterfly",
          "gartley",
          "crab",
          "shark",
          "gartley",
          "bat",
          "crab",
          "gartley",
          "gartley",
          "shark",
          "shark",
          "crab",
          "crab",
          "shark",
          "shark",
          "crab",
          "butterfly",
          "butterfly",
          "shark"
        ],
        "all_signals": [
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish"
        ],
        "best_pattern": "shark",
        "best_pattern_quality": "strict",
        "best_quality": "high",
        "best_pattern_score": 0.965,
        "best_completion_status": "forming",
        "nearest_pattern": "bat",
        "nearest_prz": 60301.81,
        "price_to_prz": 0.05,
        "prz_range": [
          60116.23,
          60487.38
        ],
        "council_relevant_prz_count": 8,
        "directional_influence_prz_count": 8,
        "confirmed_reaction_prz_count": 2,
        "validated_harmonic_tp_count": 2,
        "pattern_candidates": [
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.965,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60138.96,
            "prz_range": [
              59979.84,
              60298.08
            ],
            "prz_width_pct": 0.529,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.22,
            "price_to_prz_pct_raw": -0.2206,
            "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": "shark",
              "d_price": 60138.96,
              "a_price": 59933.1,
              "tp1_ad_382": 60060.32,
              "tp2_ad_618": 60011.74,
              "tp3_a_or_structure_liquidity": 59933.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5227,
              "ABC": 1.551
            },
            "x_price": 60234.8,
            "x_idx": 205,
            "x_order": 8,
            "a_price": 59933.1,
            "a_idx": 253,
            "a_order": 3,
            "b_price": 60090.8,
            "b_idx": 280,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "ratio_score": 1.0,
            "prz_score": 0.994,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60301.81,
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_width_pct": 0.615,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.05,
            "price_to_prz_pct_raw": 0.0496,
            "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": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4609,
              "ABC": 0.3852
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60028.0,
            "b_idx": 274,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "ratio_score": 0.933,
            "prz_score": 0.995,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60364.41,
            "prz_range": [
              60179.37,
              60549.45
            ],
            "prz_width_pct": 0.613,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.15,
            "price_to_prz_pct_raw": 0.1535,
            "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": 60364.41,
              "a_price": 59530.7,
              "tp1_ad_382": 60045.93,
              "tp2_ad_618": 59849.18,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.4376
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 263,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59888.7,
            "c_idx": 292,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.907,
            "ratio_score": 0.861,
            "prz_score": 0.996,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60526.29,
            "prz_range": [
              60341.53,
              60711.05
            ],
            "prz_width_pct": 0.611,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.42,
            "price_to_prz_pct_raw": 0.4221,
            "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": "bat",
              "d_price": 60526.29,
              "a_price": 59556.0,
              "tp1_ad_382": 60155.64,
              "tp2_ad_618": 59926.65,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5189,
              "ABC": 0.5253
            },
            "x_price": 60734.0,
            "x_idx": 218,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.889,
            "ratio_score": 0.891,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59845.51,
            "prz_range": [
              59764.43,
              59926.59
            ],
            "prz_width_pct": 0.271,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.71,
            "price_to_prz_pct_raw": -0.7074,
            "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": 59845.51,
              "a_price": 60274.2,
              "tp1_ad_382": 60009.27,
              "tp2_ad_618": 60110.44,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.6866
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 244,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60167.3,
            "c_idx": 284,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.868,
            "ratio_score": 0.788,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59910.9,
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_width_pct": 0.513,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.6,
            "price_to_prz_pct_raw": -0.599,
            "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": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6464,
              "ABC": 0.8989
            },
            "x_price": 60035.7,
            "x_idx": 156,
            "x_order": 5,
            "a_price": 59152.7,
            "a_idx": 169,
            "a_order": 8,
            "b_price": 59723.5,
            "b_idx": 172,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 231,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.866,
            "ratio_score": 0.811,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60387.8,
            "prz_range": [
              60184.9,
              60506.94
            ],
            "prz_width_pct": 0.534,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.12,
            "price_to_prz_pct_raw": 0.1228,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.296,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 3,
                "reasons": [
                  "AD0.236_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": 60345.92,
              "a_price": 59530.7,
              "tp1_ad_382": 60034.51,
              "tp2_ad_618": 59842.11,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.5044,
              "BCD": 1.6867,
              "XAD": 0.8168
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 263,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": 296
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.858,
            "ratio_score": 0.813,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60164.3,
            "prz_range": [
              59831.89,
              60188.3
            ],
            "prz_width_pct": 0.594,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.43,
            "price_to_prz_pct_raw": -0.4344,
            "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": 1.383,
                "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": 60010.1,
              "a_price": 58835.2,
              "tp1_ad_382": 59561.29,
              "tp2_ad_618": 59284.01,
              "tp3_a_or_structure_liquidity": 58835.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.576,
              "ABC": 0.6622,
              "BCD": 1.6256,
              "XAD": 0.8145
            },
            "x_price": 60466.9,
            "x_idx": 150,
            "x_order": 3,
            "a_price": 58835.2,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 59775.0,
            "b_idx": 164,
            "b_order": 5,
            "c_price": 59152.7,
            "c_idx": 169,
            "c_order": 8,
            "d_idx": 186
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.866,
            "ratio_score": 0.811,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60387.8,
            "prz_range": [
              60184.9,
              60506.94
            ],
            "prz_width_pct": 0.534,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.12,
            "price_to_prz_pct_raw": 0.1228,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.296,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 3,
                "reasons": [
                  "AD0.236_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": 60345.92,
              "a_price": 59530.7,
              "tp1_ad_382": 60034.51,
              "tp2_ad_618": 59842.11,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.5044,
              "BCD": 1.6867,
              "XAD": 0.8168
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 263,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": 296
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.854,
            "ratio_score": 0.87,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59846.2,
            "prz_range": [
              59764.43,
              59926.59
            ],
            "prz_width_pct": 0.271,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.71,
            "price_to_prz_pct_raw": -0.7074,
            "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.265,
                "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": "bullish",
              "source": "gartley",
              "d_price": 59845.51,
              "a_price": 60274.2,
              "tp1_ad_382": 60009.27,
              "tp2_ad_618": 60110.44,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.6866,
              "BCD": 1.3711,
              "XAD": 0.7525
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 244,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60167.3,
            "c_idx": 284,
            "c_order": 8,
            "d_idx": 286
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.965,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60138.96,
            "prz_range": [
              59979.84,
              60298.08
            ],
            "prz_width_pct": 0.529,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.22,
            "price_to_prz_pct_raw": -0.2206,
            "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": "shark",
              "d_price": 60138.96,
              "a_price": 59933.1,
              "tp1_ad_382": 60060.32,
              "tp2_ad_618": 60011.74,
              "tp3_a_or_structure_liquidity": 59933.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5227,
              "ABC": 1.551
            },
            "x_price": 60234.8,
            "x_idx": 205,
            "x_order": 8,
            "a_price": 59933.1,
            "a_idx": 253,
            "a_order": 3,
            "b_price": 60090.8,
            "b_idx": 280,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "ratio_score": 1.0,
            "prz_score": 0.994,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60301.81,
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_width_pct": 0.615,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.05,
            "price_to_prz_pct_raw": 0.0496,
            "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": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4609,
              "ABC": 0.3852
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60028.0,
            "b_idx": 274,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "ratio_score": 0.933,
            "prz_score": 0.995,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60364.41,
            "prz_range": [
              60179.37,
              60549.45
            ],
            "prz_width_pct": 0.613,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.15,
            "price_to_prz_pct_raw": 0.1535,
            "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": 60364.41,
              "a_price": 59530.7,
              "tp1_ad_382": 60045.93,
              "tp2_ad_618": 59849.18,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.4376
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 263,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59888.7,
            "c_idx": 292,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.907,
            "ratio_score": 0.861,
            "prz_score": 0.996,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60526.29,
            "prz_range": [
              60341.53,
              60711.05
            ],
            "prz_width_pct": 0.611,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.42,
            "price_to_prz_pct_raw": 0.4221,
            "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": "bat",
              "d_price": 60526.29,
              "a_price": 59556.0,
              "tp1_ad_382": 60155.64,
              "tp2_ad_618": 59926.65,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5189,
              "ABC": 0.5253
            },
            "x_price": 60734.0,
            "x_idx": 218,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.889,
            "ratio_score": 0.891,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59845.51,
            "prz_range": [
              59764.43,
              59926.59
            ],
            "prz_width_pct": 0.271,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.71,
            "price_to_prz_pct_raw": -0.7074,
            "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": 59845.51,
              "a_price": 60274.2,
              "tp1_ad_382": 60009.27,
              "tp2_ad_618": 60110.44,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.6866
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 244,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60167.3,
            "c_idx": 284,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.868,
            "ratio_score": 0.788,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59910.9,
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_width_pct": 0.513,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.6,
            "price_to_prz_pct_raw": -0.599,
            "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": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6464,
              "ABC": 0.8989
            },
            "x_price": 60035.7,
            "x_idx": 156,
            "x_order": 5,
            "a_price": 59152.7,
            "a_idx": 169,
            "a_order": 8,
            "b_price": 59723.5,
            "b_idx": 172,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 231,
            "c_order": 5,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.965,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60138.96,
            "prz_range": [
              59979.84,
              60298.08
            ],
            "prz_width_pct": 0.529,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.22,
            "price_to_prz_pct_raw": -0.2206,
            "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": "shark",
              "d_price": 60138.96,
              "a_price": 59933.1,
              "tp1_ad_382": 60060.32,
              "tp2_ad_618": 60011.74,
              "tp3_a_or_structure_liquidity": 59933.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5227,
              "ABC": 1.551
            },
            "x_price": 60234.8,
            "x_idx": 205,
            "x_order": 8,
            "a_price": 59933.1,
            "a_idx": 253,
            "a_order": 3,
            "b_price": 60090.8,
            "b_idx": 280,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "ratio_score": 1.0,
            "prz_score": 0.994,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60301.81,
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_width_pct": 0.615,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.05,
            "price_to_prz_pct_raw": 0.0496,
            "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": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4609,
              "ABC": 0.3852
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60028.0,
            "b_idx": 274,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "ratio_score": 0.933,
            "prz_score": 0.995,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60364.41,
            "prz_range": [
              60179.37,
              60549.45
            ],
            "prz_width_pct": 0.613,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.15,
            "price_to_prz_pct_raw": 0.1535,
            "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": 60364.41,
              "a_price": 59530.7,
              "tp1_ad_382": 60045.93,
              "tp2_ad_618": 59849.18,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.4376
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 263,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59888.7,
            "c_idx": 292,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.907,
            "ratio_score": 0.861,
            "prz_score": 0.996,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60526.29,
            "prz_range": [
              60341.53,
              60711.05
            ],
            "prz_width_pct": 0.611,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.42,
            "price_to_prz_pct_raw": 0.4221,
            "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": "bat",
              "d_price": 60526.29,
              "a_price": 59556.0,
              "tp1_ad_382": 60155.64,
              "tp2_ad_618": 59926.65,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5189,
              "ABC": 0.5253
            },
            "x_price": 60734.0,
            "x_idx": 218,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.889,
            "ratio_score": 0.891,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59845.51,
            "prz_range": [
              59764.43,
              59926.59
            ],
            "prz_width_pct": 0.271,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.71,
            "price_to_prz_pct_raw": -0.7074,
            "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": 59845.51,
              "a_price": 60274.2,
              "tp1_ad_382": 60009.27,
              "tp2_ad_618": 60110.44,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.6866
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 244,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60167.3,
            "c_idx": 284,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.868,
            "ratio_score": 0.788,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59910.9,
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_width_pct": 0.513,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.6,
            "price_to_prz_pct_raw": -0.599,
            "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": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6464,
              "ABC": 0.8989
            },
            "x_price": 60035.7,
            "x_idx": 156,
            "x_order": 5,
            "a_price": 59152.7,
            "a_idx": 169,
            "a_order": 8,
            "b_price": 59723.5,
            "b_idx": 172,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 231,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.866,
            "ratio_score": 0.811,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60387.8,
            "prz_range": [
              60184.9,
              60506.94
            ],
            "prz_width_pct": 0.534,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.12,
            "price_to_prz_pct_raw": 0.1228,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.296,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 3,
                "reasons": [
                  "AD0.236_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": 60345.92,
              "a_price": 59530.7,
              "tp1_ad_382": 60034.51,
              "tp2_ad_618": 59842.11,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.5044,
              "BCD": 1.6867,
              "XAD": 0.8168
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 263,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 284,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": 296
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.858,
            "ratio_score": 0.813,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60164.3,
            "prz_range": [
              59831.89,
              60188.3
            ],
            "prz_width_pct": 0.594,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.43,
            "price_to_prz_pct_raw": -0.4344,
            "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": 1.383,
                "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": 60010.1,
              "a_price": 58835.2,
              "tp1_ad_382": 59561.29,
              "tp2_ad_618": 59284.01,
              "tp3_a_or_structure_liquidity": 58835.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.576,
              "ABC": 0.6622,
              "BCD": 1.6256,
              "XAD": 0.8145
            },
            "x_price": 60466.9,
            "x_idx": 150,
            "x_order": 3,
            "a_price": 58835.2,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 59775.0,
            "b_idx": 164,
            "b_order": 5,
            "c_price": 59152.7,
            "c_idx": 169,
            "c_order": 8,
            "d_idx": 186
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.854,
            "ratio_score": 0.87,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59846.2,
            "prz_range": [
              59764.43,
              59926.59
            ],
            "prz_width_pct": 0.271,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.71,
            "price_to_prz_pct_raw": -0.7074,
            "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.265,
                "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": "bullish",
              "source": "gartley",
              "d_price": 59845.51,
              "a_price": 60274.2,
              "tp1_ad_382": 60009.27,
              "tp2_ad_618": 60110.44,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.6866,
              "BCD": 1.3711,
              "XAD": 0.7525
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 244,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60167.3,
            "c_idx": 284,
            "c_order": 8,
            "d_idx": 286
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.849,
            "ratio_score": 0.767,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60387.8,
            "prz_range": [
              60217.82,
              60510.71
            ],
            "prz_width_pct": 0.485,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.15,
            "price_to_prz_pct_raw": 0.1532,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.305,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 3,
                "reasons": [
                  "AD0.236_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": 60364.26,
              "a_price": 59556.0,
              "tp1_ad_382": 60055.51,
              "tp2_ad_618": 59864.76,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5223,
              "ABC": 0.4574,
              "BCD": 2.2142,
              "XAD": 0.8123
            },
            "x_price": 60580.0,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 270,
            "a_order": 5,
            "b_price": 60090.8,
            "b_idx": 280,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": 296
          },
          {
            "pattern": "shark",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.917,
            "ratio_score": 1.0,
            "prz_score": 0.91,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59861.34,
            "prz_range": [
              59612.63,
              60110.04
            ],
            "prz_width_pct": 0.831,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.68,
            "price_to_prz_pct_raw": -0.6812,
            "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": "shark",
              "d_price": 59861.34,
              "a_price": 60234.8,
              "tp1_ad_382": 60004.0,
              "tp2_ad_618": 60092.14,
              "tp3_a_or_structure_liquidity": 60234.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5699,
              "ABC": 1.5071
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60234.8,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60387.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.894,
            "ratio_score": 1.0,
            "prz_score": 0.934,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59583.67,
            "prz_range": [
              59354.4,
              59812.93
            ],
            "prz_width_pct": 0.77,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.14,
            "price_to_prz_pct_raw": -1.1419,
            "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": "bullish",
              "source": "crab",
              "d_price": 59583.67,
              "a_price": 60234.8,
              "tp1_ad_382": 59832.4,
              "tp2_ad_618": 59986.07,
              "tp3_a_or_structure_liquidity": 60234.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5699,
              "ABC": 0.5227
            },
            "x_price": 59705.4,
            "x_idx": 183,
            "x_order": 3,
            "a_price": 60234.8,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 59933.1,
            "b_idx": 253,
            "b_order": 3,
            "c_price": 60090.8,
            "c_idx": 280,
            "c_order": 3,
            "d_idx": null
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.965,
            "prz_proximity": "active",
            "prz_range": [
              59979.84,
              60298.08
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": -0.22,
            "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": "shark",
              "d_price": 60138.96,
              "a_price": 59933.1,
              "tp1_ad_382": 60060.32,
              "tp2_ad_618": 60011.74,
              "tp3_a_or_structure_liquidity": 59933.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "SHARK FORMING HIGH PRZ $59,979.84-$60,298.08: expected reversal DOWN if price reacts in zone"
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "prz_proximity": "active",
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": 0.05,
            "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": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $60,116.23-$60,487.38: expected reversal DOWN if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.943,
            "prz_proximity": "active",
            "prz_range": [
              60179.37,
              60549.45
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": 0.15,
            "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": 60364.41,
              "a_price": 59530.7,
              "tp1_ad_382": 60045.93,
              "tp2_ad_618": 59849.18,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $60,179.37-$60,549.45: expected reversal DOWN if price reacts in zone"
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.907,
            "prz_proximity": "active",
            "prz_range": [
              60341.53,
              60711.05
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": 0.42,
            "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": "bat",
              "d_price": 60526.29,
              "a_price": 59556.0,
              "tp1_ad_382": 60155.64,
              "tp2_ad_618": 59926.65,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $60,341.53-$60,711.05: expected reversal DOWN if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.889,
            "prz_proximity": "nearby",
            "prz_range": [
              59764.43,
              59926.59
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.71,
            "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": 59845.51,
              "a_price": 60274.2,
              "tp1_ad_382": 60009.27,
              "tp2_ad_618": 60110.44,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,764.43-$59,926.59: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.868,
            "prz_proximity": "nearby",
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": -0.6,
            "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": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,757.24-$60,064.56: expected reversal DOWN if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "shark",
          "signal": "bearish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.965,
          "ratio_score": 1.0,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 60138.96,
          "prz_range": [
            59979.84,
            60298.08
          ],
          "prz_width_pct": 0.529,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": -0.22,
          "price_to_prz_pct_raw": -0.2206,
          "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": "shark",
            "d_price": 60138.96,
            "a_price": 59933.1,
            "tp1_ad_382": 60060.32,
            "tp2_ad_618": 60011.74,
            "tp3_a_or_structure_liquidity": 59933.1,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.5227,
            "ABC": 1.551
          },
          "x_price": 60234.8,
          "x_idx": 205,
          "x_order": 8,
          "a_price": 59933.1,
          "a_idx": 253,
          "a_order": 3,
          "b_price": 60090.8,
          "b_idx": 280,
          "b_order": 3,
          "c_price": 59846.2,
          "c_idx": 286,
          "c_order": 5,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bearish",
          "source": "shark",
          "d_price": 60138.96,
          "a_price": 59933.1,
          "tp1_ad_382": 60060.32,
          "tp2_ad_618": 60011.74,
          "tp3_a_or_structure_liquidity": 59933.1,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "best_confirmed_tp_ladder": {
          "direction": "bullish",
          "source": "gartley",
          "d_price": 59845.51,
          "a_price": 60274.2,
          "tp1_ad_382": 60009.27,
          "tp2_ad_618": 60110.44,
          "tp3_a_or_structure_liquidity": 60274.2,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bearish",
            "source": "shark",
            "d_price": 60138.96,
            "a_price": 59933.1,
            "tp1_ad_382": 60060.32,
            "tp2_ad_618": 60011.74,
            "tp3_a_or_structure_liquidity": 59933.1,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "bat",
            "d_price": 60301.81,
            "a_price": 59556.0,
            "tp1_ad_382": 60016.91,
            "tp2_ad_618": 59840.9,
            "tp3_a_or_structure_liquidity": 59556.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 60364.41,
            "a_price": 59530.7,
            "tp1_ad_382": 60045.93,
            "tp2_ad_618": 59849.18,
            "tp3_a_or_structure_liquidity": 59530.7,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "bat",
            "d_price": 60526.29,
            "a_price": 59556.0,
            "tp1_ad_382": 60155.64,
            "tp2_ad_618": 59926.65,
            "tp3_a_or_structure_liquidity": 59556.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 59845.51,
            "a_price": 60274.2,
            "tp1_ad_382": 60009.27,
            "tp2_ad_618": 60110.44,
            "tp3_a_or_structure_liquidity": 60274.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 59910.9,
            "a_price": 59152.7,
            "tp1_ad_382": 59621.27,
            "tp2_ad_618": 59442.33,
            "tp3_a_or_structure_liquidity": 59152.7,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "validated_tp_ladder": [
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 60345.92,
            "a_price": 59530.7,
            "tp1_ad_382": 60034.51,
            "tp2_ad_618": 59842.11,
            "tp3_a_or_structure_liquidity": 59530.7,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 59845.51,
            "a_price": 60274.2,
            "tp1_ad_382": 60009.27,
            "tp2_ad_618": 60110.44,
            "tp3_a_or_structure_liquidity": 60274.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": 0.513,
          "bearish": 1.481
        },
        "directional_score_total": 1.994,
        "directional_dominance": 0.485
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.59,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.72,\n  \"setup_signals\": [\n    \"현재가 $60,271.90가 활성 bearish Shark PRZ $59,979.84-$60,298.08 내부에 위치, D 예상가 $60,138.96, 점수 0.965\",\n    \"현재가가 활성 bearish Bat PRZ $60,116.23-$60,487.38 내부에 위치, D 예상가 $60,301.81까지 거리 +0.05%\",\n    \"완성된 strict bearish Gartley PRZ $60,184.90-$60,506.94에서 반응 확인, reaction_score 0.95, AD 0.236 반응 도달\",\n    \"추가 bearish Gartley 형성 PRZ $60,179.37-$60,549.45 및 bearish Bat PRZ $60,341.53-$60,711.05가 상단 공급/반전 후보로 중첩\",\n    \"EMA240 $60,384.08이 현재가 위에 있으며, bearish Bat/Gartley PRZ 중심부와 겹쳐 단기 저항 confluence 형성\"\n  ],\n  \"reasoning\": \"하모닉 기준으로 현재 BTC/USDT $60,271.90는 여러 개의 활성 bearish PRZ 안에 들어와 있으며, 특히 Shark $59,979.84-$60,298.08, Bat $60,116.23-$60,487.38, Gartley $60,179.37-$60,549.45가 겹칩니다. 완성된 strict bearish Gartley는 $60,184.90-$60,506.94 PRZ에서 이미 rejection/defense가 확인되었고 reaction_score 0.95로 post-confirmation vote eligible 상태입니다. 다만 하모닉은 독립적인 구조 엔진이 아니므로, 확인된 BOS/CHoCH 또는 상위 구조 수용 정보가 없는 현재 구조_bias는 neutral로 둡니다. setup 측면에서는 directional_scores가 bearish 1.481 대 bullish 0.513으로 우세하고, 핵심 하락 TP 클러스터가 $60,034-$60,011 및 $59,849-$59,840에 밀집해 있어 단기 하방 반응 우위입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60060.32,\n      60034.51,\n      60016.91,\n      60011.74,\n      59849.18,\n      59842.11,\n      59840.9,\n      59556.0,\n      59530.7\n    ],\n    \"resistance\": [\n      60298.08,\n      60301.81,\n      60487.38,\n      60506.94,\n      60549.45,\n      60711.05\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,711.05\",\n  \"risk_scenario\": \"가격이 $60,506.94 위에서 방어되고 특히 $60,711.05 상단 PRZ까지 돌파·수용되면 bearish PRZ 실패로 간주되며, 하모닉 하락 반응 시나리오는 약화됩니다. 그 경우 $60,384.08 EMA240 재탈환과 함께 상단 유동성 추적이 열릴 수 있으며, 반대로 $59,764.43-$59,926.59의 bullish Gartley PRZ는 눌림 매수 반응 구간으로 재평가됩니다.\",\n  \"data_quality\": \"medium\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.6,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.64,
      "active_setups": [
        "가격 $60,271.90이 EMA20 $60,110.55 및 EMA120 $60,003.64 위에 있으나 EMA240 $60,384.08 아래에 있어 상단 수용이 아직 확인되지 않음",
        "Wyckoff 기준 LPSY $60,387.80 직후 SOW $60,134.50이 출현했고, 현재가가 메인 레인지 하단 $60,666.00 아래에 위치",
        "Harmonic 기준 가격이 bearish Shark PRZ $59,979.84-$60,298.08 및 bearish Bat PRZ $60,116.23-$60,487.38 내부에 위치",
        "완성된 strict bearish Gartley PRZ $60,184.90-$60,506.94에서 반응 확인, 하방 TP 클러스터 $60,034-$60,011 및 $59,849-$59,840 존재",
        "파생 포지셔닝은 롱 계정 비율 0.676으로 과밀하고 CVD 변화 -1770.49, 베이시스 -0.0561%로 매수 체결 강도와 선물 수요가 약함",
        "반대 근거로 ICT는 마지막 bullish BOS $60,245 위 유지, Fibonacci는 $60,107.68-$60,028.00 피보나치 지지 클러스터 회복을 제시"
      ],
      "setup_vs_structure": "구조적 판정은 Wyckoff 분배 Phase D 쪽에 더 무게가 실리지만, 실행 셋업은 양방향 신호가 팽팽하다. 다만 현재 가격이 다중 bearish PRZ와 LPSY/EMA240 저항대 안에 있어 즉시 실행 관점에서는 bearish setup이 소폭 우세하다."
    },
    "signal_breakdown": {
      "bullish_count": 1,
      "bearish_count": 1,
      "neutral_count": 4
    },
    "key_levels": {
      "support": [
        60245.0,
        60134.5,
        60110.55,
        60055.35,
        60003.64,
        59849.18,
        59717.1,
        59100.0,
        58800.0,
        58030.0
      ],
      "resistance": [
        60384.08,
        60387.8,
        60580.0,
        60619.8,
        60666.0,
        60734.0,
        61256.0,
        61931.1,
        63209.6
      ]
    },
    "confluences": [
      "EMA240 $60,384.08와 Wyckoff LPSY $60,387.80, completed bearish Gartley D/PRZ $60,387.80 및 PRZ $60,184.90-$60,506.94가 거의 동일한 저항 구간을 형성한다.",
      "Candlestick, Derivatives, Fibonacci 모두 EMA20 $60,110.55와 EMA120 $60,003.64 부근을 단기 지지 클러스터로 인식한다.",
      "ICT의 bullish BOS 방어선 $60,245와 현재가 $60,271.90, Harmonic bearish PRZ 상단부 $60,298.08이 근접해 있어 $60,245-$60,298 구간이 단기 구조-실행 충돌 구간이다.",
      "7일 범위 EQ $60,619.80, Wyckoff 메인 레인지 하단/AR $60,666.00, 전일고가 $60,734.00이 상단 수용 여부를 판단하는 핵심 저항대로 중첩된다.",
      "Harmonic의 하방 TP $59,849-$59,840과 bullish Gartley PRZ $59,764.43-$59,926.59, Fibonacci 확장/지지 $59,888.70-$59,760.32가 하단 반응 가능 구간으로 겹친다.",
      "Derivatives의 하방 유동성 $59,100 및 $58,800은 ICT 후보 bullish OB $58,288-$58,944와 Wyckoff SOW_IN_PHASE_B 저점 $58,030.00 인근 구조적 하단과 연결된다."
    ],
    "conflicts": [
      "ICT는 마지막 BOS_bullish $60,245 위 유지로 구조를 bullish로 보지만, Wyckoff는 BC $61,256.00 → UT $60,734.00 → LPSY $60,387.80 → SOW $60,134.50의 분배 Phase D로 해석한다.",
      "Candlestick과 Fibonacci는 할인 구간 및 $60,110-$60,028 지지 회복을 근거로 bullish setup을 제시하지만, Derivatives는 롱 과밀 0.676, CVD 약화, 음의 베이시스를 근거로 bearish setup을 제시한다.",
      "Harmonic은 현재 가격이 다중 bearish PRZ 내부에 있다고 보지만, 해당 신호 중 일부는 forming/pre-confirmation이므로 단독으로 구조를 뒤집을 권한은 낮다.",
      "가격은 EMA20/EMA120 위에 있어 단기 지지는 살아 있으나 EMA240 $60,384.08 및 7일 EQ $60,619.80 아래에 있어 추세 수용은 미확정이다."
    ],
    "executive_summary": "현재 15분 BTC 구조는 다수의 중립 구조 판정에도 불구하고, 가장 구체적인 regime 분석인 Wyckoff가 분배 Phase D를 가리키고 있어 전체 구조 bias는 bearish로 평가한다. 현재 위치는 LPSY $60,387.80 이후 SOW $60,134.50이 발생한 뒤 메인 레인지 하단 $60,666.00 아래에 머무는 구간이며, 아직 Phase E 확정이라기보다는 분배 우위의 late Phase D 후보 상태다. 핵심 상단 구조 구간은 EMA240 $60,384.08, LPSY $60,387.80, 7일 EQ $60,619.80, AR $60,666.00, 전일고가 $60,734.00으로 압축되며, 하단 구조 지지는 $60,110.55-$60,003.64 및 $59,849-$59,717 부근에 집중된다. 구조적 리스크는 ICT의 bullish BOS $60,245 유지와 피보나치 지지 회복이 분배 해석과 충돌한다는 점이며, $60,734 상방 수용 및 최종 $61,256 회복은 bearish 구조 해석의 주요 무효화 조건이다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.60,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.64,\n    \"active_setups\": [\n      \"가격 $60,271.90이 EMA20 $60,110.55 및 EMA120 $60,003.64 위에 있으나 EMA240 $60,384.08 아래에 있어 상단 수용이 아직 확인되지 않음\",\n      \"Wyckoff 기준 LPSY $60,387.80 직후 SOW $60,134.50이 출현했고, 현재가가 메인 레인지 하단 $60,666.00 아래에 위치\",\n      \"Harmonic 기준 가격이 bearish Shark PRZ $59,979.84-$60,298.08 및 bearish Bat PRZ $60,116.23-$60,487.38 내부에 위치\",\n      \"완성된 strict bearish Gartley PRZ $60,184.90-$60,506.94에서 반응 확인, 하방 TP 클러스터 $60,034-$60,011 및 $59,849-$59,840 존재\",\n      \"파생 포지셔닝은 롱 계정 비율 0.676으로 과밀하고 CVD 변화 -1770.49, 베이시스 -0.0561%로 매수 체결 강도와 선물 수요가 약함\",\n      \"반대 근거로 ICT는 마지막 bullish BOS $60,245 위 유지, Fibonacci는 $60,107.68-$60,028.00 피보나치 지지 클러스터 회복을 제시\"\n    ],\n    \"setup_vs_structure\": \"구조적 판정은 Wyckoff 분배 Phase D 쪽에 더 무게가 실리지만, 실행 셋업은 양방향 신호가 팽팽하다. 다만 현재 가격이 다중 bearish PRZ와 LPSY/EMA240 저항대 안에 있어 즉시 실행 관점에서는 bearish setup이 소폭 우세하다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 1,\n    \"bearish_count\": 1,\n    \"neutral_count\": 4\n  },\n  \"key_levels\": {\n    \"support\": [\n      60245.0,\n      60134.5,\n      60110.55,\n      60055.35,\n      60003.64,\n      59849.18,\n      59717.1,\n      59100.0,\n      58800.0,\n      58030.0\n    ],\n    \"resistance\": [\n      60384.08,\n      60387.8,\n      60580.0,\n      60619.8,\n      60666.0,\n      60734.0,\n      61256.0,\n      61931.1,\n      63209.6\n    ]\n  },\n  \"confluences\": [\n    \"EMA240 $60,384.08와 Wyckoff LPSY $60,387.80, completed bearish Gartley D/PRZ $60,387.80 및 PRZ $60,184.90-$60,506.94가 거의 동일한 저항 구간을 형성한다.\",\n    \"Candlestick, Derivatives, Fibonacci 모두 EMA20 $60,110.55와 EMA120 $60,003.64 부근을 단기 지지 클러스터로 인식한다.\",\n    \"ICT의 bullish BOS 방어선 $60,245와 현재가 $60,271.90, Harmonic bearish PRZ 상단부 $60,298.08이 근접해 있어 $60,245-$60,298 구간이 단기 구조-실행 충돌 구간이다.\",\n    \"7일 범위 EQ $60,619.80, Wyckoff 메인 레인지 하단/AR $60,666.00, 전일고가 $60,734.00이 상단 수용 여부를 판단하는 핵심 저항대로 중첩된다.\",\n    \"Harmonic의 하방 TP $59,849-$59,840과 bullish Gartley PRZ $59,764.43-$59,926.59, Fibonacci 확장/지지 $59,888.70-$59,760.32가 하단 반응 가능 구간으로 겹친다.\",\n    \"Derivatives의 하방 유동성 $59,100 및 $58,800은 ICT 후보 bullish OB $58,288-$58,944와 Wyckoff SOW_IN_PHASE_B 저점 $58,030.00 인근 구조적 하단과 연결된다.\"\n  ],\n  \"conflicts\": [\n    \"ICT는 마지막 BOS_bullish $60,245 위 유지로 구조를 bullish로 보지만, Wyckoff는 BC $61,256.00 → UT $60,734.00 → LPSY $60,387.80 → SOW $60,134.50의 분배 Phase D로 해석한다.\",\n    \"Candlestick과 Fibonacci는 할인 구간 및 $60,110-$60,028 지지 회복을 근거로 bullish setup을 제시하지만, Derivatives는 롱 과밀 0.676, CVD 약화, 음의 베이시스를 근거로 bearish setup을 제시한다.\",\n    \"Harmonic은 현재 가격이 다중 bearish PRZ 내부에 있다고 보지만, 해당 신호 중 일부는 forming/pre-confirmation이므로 단독으로 구조를 뒤집을 권한은 낮다.\",\n    \"가격은 EMA20/EMA120 위에 있어 단기 지지는 살아 있으나 EMA240 $60,384.08 및 7일 EQ $60,619.80 아래에 있어 추세 수용은 미확정이다.\"\n  ],\n  \"highest_conviction_analyst\": \"Wyckoff Expert — regime fitness 0.963의 분배 후보, Phase D 맥락, LPSY $60,387.80 이후 SOW $60,134.50이라는 명확한 구조 체인을 제시했기 때문에 구조 판정에서 가장 높은 가중치를 부여한다. 단, acc_score와 dis_score가 모두 높아 완전한 Phase E 확정이 아니라 분배 우위의 후보 구조로 해석한다.\",\n  \"invalidation_level\": \"$60,734 상방 수용 시 bearish 분배 구조가 크게 약화되며, $61,256 회복 시 현재 분배 Phase D 해석은 구조적으로 무효화된다.\",\n  \"executive_summary\": \"현재 15분 BTC 구조는 다수의 중립 구조 판정에도 불구하고, 가장 구체적인 regime 분석인 Wyckoff가 분배 Phase D를 가리키고 있어 전체 구조 bias는 bearish로 평가한다. 현재 위치는 LPSY $60,387.80 이후 SOW $60,134.50이 발생한 뒤 메인 레인지 하단 $60,666.00 아래에 머무는 구간이며, 아직 Phase E 확정이라기보다는 분배 우위의 late Phase D 후보 상태다. 핵심 상단 구조 구간은 EMA240 $60,384.08, LPSY $60,387.80, 7일 EQ $60,619.80, AR $60,666.00, 전일고가 $60,734.00으로 압축되며, 하단 구조 지지는 $60,110.55-$60,003.64 및 $59,849-$59,717 부근에 집중된다. 구조적 리스크는 ICT의 bullish BOS $60,245 유지와 피보나치 지지 회복이 분배 해석과 충돌한다는 점이며, $60,734 상방 수용 및 최종 $61,256 회복은 bearish 구조 해석의 주요 무효화 조건이다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.6,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.57,
    "waypoints": [
      {
        "seq": 1,
        "price": 60025.79,
        "type": "support_test",
        "source": "Fibonacci(strict 컨플루언스 $60,025.79 score 1.0, 0.5 되돌림 $60,028.00), Harmonic(하방 TP 클러스터 $60,034-$60,011), Derivatives/Candlestick(EMA120 $60,003.64)",
        "description": "구조(BEARISH 60%)와 셋업(BEARISH 64%)이 일치하므로 첫 경로는 하방으로 직행한다. 현재가 $60,271.90가 ICT bullish BOS $60,245와 Wyckoff SOW $60,134.50를 차례로 이탈하면, Fibonacci strict 컨플루언스 $60,025.79(score 1.0)·Fib 0.5 $60,028·Harmonic 하방 TP 클러스터 $60,034-$60,011·EMA120 $60,003.64가 겹치는 강한 1차 지지 클러스터를 시험한다. WP 후보표상 가장 가깝고(0.41%) 품질 strict한 레벨이라 우선 선택. 이 구간은 Candlestick·Fibonacci가 반등을 노리는 곳이기도 해 즉시 관통보다 1차 반응(되돌림)이 나올 수 있다.",
        "est_hours": 3,
        "turning_zone": [
          59985.0,
          60034.51
        ],
        "likely_wick": 60000.0,
        "rejection_confirm": 60060.87,
        "invalid_overshoot": 59970.0,
        "calibration_reasoning": "Fib strict 컨플루언스 $60,025.79·Fib 0.5 $60,028·검증된 베어리시 gartley TP1 AD0.382 $60,034.51을 존 상단 앵커로, EMA120 $60,003.64·검증 TP1 $60,009.27·라운드 $60,000을 하단 반응대로 묶어 폭 $49(0.31 ATR)로 설정했다. likely_wick은 라운드 자석 $60,000(EMA120 직하 살짝 관통)으로 1차 되돌림을 가정했고, 골든레이쇼 $60,060.87 재탈환을 반등 확인선, 클러스터를 깨는 $59,970 이탈을 무효화로 본다."
      },
      {
        "seq": 2,
        "price": 59717.1,
        "type": "liquidity_sweep",
        "source": "ICT(London 저점 $59,717.10, 지지 $59,530.70), Fibonacci(strict 컨플루언스 $59,760.32 score 1.0), Harmonic(하방 TP $59,849-$59,840)",
        "description": "$60,025-$60,003 클러스터가 15분 종가 기준 이탈되면 파생 우위(롱 과밀 0.676·CVD -1770.49·베이시스 -0.0561%·OI -0.869%)가 견인하는 하방 연속이 발동한다. Harmonic 하방 TP $59,849-$59,840과 Fibonacci strict 컨플루언스 $59,760.32를 지나 ICT London 저점 $59,717.10 유동성을 스윕한다. 분배 Phase D 해석에서 LPSY→SOW 이후 자연스러운 유동성 사냥 구간이며, ICT $59,530.70·Harmonic $59,556 지지가 바로 아래 위치한다.",
        "est_hours": 8,
        "turning_zone": [
          59625.0,
          59720.0
        ],
        "likely_wick": 59680.0,
        "rejection_confirm": 59760.32,
        "invalid_overshoot": 59530.7,
        "calibration_reasoning": "ICT London 저점·Chairman $59,717.1 직하의 매도 유동성을 겨냥해 스윕 특성을 반영, 존을 아래로 $95(0.59 ATR) 확장했다. likely_wick $59,680은 런던 저점을 살짝 관통하는 전형적 스윕 깊이(0.23 ATR)이며, 상단 Fib strict 5중 컨플루언스 $59,760.32 재탈환이 반전 확인선, $59,556 쿠션을 무너뜨리는 ICT/Harmonic TP3 $59,530.7 이탈 시 WP3로 연속 전환된다."
      },
      {
        "seq": 3,
        "price": 59100.0,
        "type": "swing_low",
        "source": "Derivatives(하방 유동성 $59,100→$58,800), ICT(후보 bullish OB $58,944-$58,288)",
        "description": "Derivatives 트레이더가 4-8시간 선행 신호로 지목한 하방 유동성 목표 $59,100(연장 시 $58,800). ICT 후보 bullish OB $58,944-$58,288 상단과 Wyckoff Phase D 마크다운 연장이 만나는 24시간 1차 스윙 저점/반응 후보다. 분배 해석이 유효한 한 이 구간까지 확장 가능하나, OB·OB 상단 지지가 두꺼워 여기서 1차 매수 반응이 나올 가능성이 높다.",
        "est_hours": 16,
        "turning_zone": [
          58944.0,
          59100.0
        ],
        "likely_wick": 58960.0,
        "rejection_confirm": 59345.16,
        "invalid_overshoot": 58800.0,
        "calibration_reasoning": "종착 웨이포인트라 라운드 $59,100(Chairman 일치)에서 ICT bullish OB 상단 $58,944까지 두꺼운 매수대를 포함해 존을 $156(0.97 ATR)로 확장했다(터미널+OB 유동성 클러스터 규칙 적용). likely_wick $58,960은 메이저 라운드 $59,000을 스윕한 뒤 OB 상단을 태깅하는 1차 매수 반응 지점이며, Fib 컨플루언스 $59,345.16 재탈환이 추세 반전 확인선, 연장 타깃 $58,800(Chairman) 이탈 시 본 스윙 저점은 무효화된다."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 60300.0,
        "expected_low": 60025.79,
        "high_first": true
      },
      "8h": {
        "expected_high": 60384.08,
        "expected_low": 59717.1,
        "high_first": true
      },
      "24h": {
        "expected_high": 60384.08,
        "expected_low": 59100.0,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 60387.8,
        "description": "15분 종가가 EMA240 $60,384.08·Wyckoff LPSY $60,387.80·완성 bearish Gartley PRZ 상단을 회복하고 수용하면 즉시 bearish setup이 무력화된다. 이후 ICT range high $60,580·7일 EQ $60,619.80·AR $60,666.00을 향한 상방 가속으로 전환되며 경로 신뢰도 급락."
      },
      "bearish": {
        "price": 60003.64,
        "description": "15분 종가가 $60,025-$60,003 지지 클러스터(Fib strict 컨플루언스 + EMA120 $60,003.64) 아래로 마감하면 하방 가속이 확정된다. $59,760 strict fib → London 저점 $59,717 유동성 스윕 → $59,100 파생 유동성으로 연속 하락 경로가 활성화."
      }
    },
    "scenario_invalidation": 60734.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.57,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 60025.79,\n      \"type\": \"support_test\",\n      \"source\": \"Fibonacci(strict 컨플루언스 $60,025.79 score 1.0, 0.5 되돌림 $60,028.00), Harmonic(하방 TP 클러스터 $60,034-$60,011), Derivatives/Candlestick(EMA120 $60,003.64)\",\n      \"description\": \"구조(BEARISH 60%)와 셋업(BEARISH 64%)이 일치하므로 첫 경로는 하방으로 직행한다. 현재가 $60,271.90가 ICT bullish BOS $60,245와 Wyckoff SOW $60,134.50를 차례로 이탈하면, Fibonacci strict 컨플루언스 $60,025.79(score 1.0)·Fib 0.5 $60,028·Harmonic 하방 TP 클러스터 $60,034-$60,011·EMA120 $60,003.64가 겹치는 강한 1차 지지 클러스터를 시험한다. WP 후보표상 가장 가깝고(0.41%) 품질 strict한 레벨이라 우선 선택. 이 구간은 Candlestick·Fibonacci가 반등을 노리는 곳이기도 해 즉시 관통보다 1차 반응(되돌림)이 나올 수 있다.\",\n      \"est_hours\": 3\n    },\n    {\n      \"seq\": 2,\n      \"price\": 59717.10,\n      \"type\": \"liquidity_sweep\",\n      \"source\": \"ICT(London 저점 $59,717.10, 지지 $59,530.70), Fibonacci(strict 컨플루언스 $59,760.32 score 1.0), Harmonic(하방 TP $59,849-$59,840)\",\n      \"description\": \"$60,025-$60,003 클러스터가 15분 종가 기준 이탈되면 파생 우위(롱 과밀 0.676·CVD -1770.49·베이시스 -0.0561%·OI -0.869%)가 견인하는 하방 연속이 발동한다. Harmonic 하방 TP $59,849-$59,840과 Fibonacci strict 컨플루언스 $59,760.32를 지나 ICT London 저점 $59,717.10 유동성을 스윕한다. 분배 Phase D 해석에서 LPSY→SOW 이후 자연스러운 유동성 사냥 구간이며, ICT $59,530.70·Harmonic $59,556 지지가 바로 아래 위치한다.\",\n      \"est_hours\": 8\n    },\n    {\n      \"seq\": 3,\n      \"price\": 59100.0,\n      \"type\": \"swing_low\",\n      \"source\": \"Derivatives(하방 유동성 $59,100→$58,800), ICT(후보 bullish OB $58,944-$58,288)\",\n      \"description\": \"Derivatives 트레이더가 4-8시간 선행 신호로 지목한 하방 유동성 목표 $59,100(연장 시 $58,800). ICT 후보 bullish OB $58,944-$58,288 상단과 Wyckoff Phase D 마크다운 연장이 만나는 24시간 1차 스윙 저점/반응 후보다. 분배 해석이 유효한 한 이 구간까지 확장 가능하나, OB·OB 상단 지지가 두꺼워 여기서 1차 매수 반응이 나올 가능성이 높다.\",\n      \"est_hours\": 16\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 60300.0, \"expected_low\": 60025.79, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 60384.08, \"expected_low\": 59717.10, \"high_first\": true},\n    \"24h\": {\"expected_high\": 60384.08, \"expected_low\": 59100.0, \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\n      \"price\": 60387.80,\n      \"description\": \"15분 종가가 EMA240 $60,384.08·Wyckoff LPSY $60,387.80·완성 bearish Gartley PRZ 상단을 회복하고 수용하면 즉시 bearish setup이 무력화된다. 이후 ICT range high $60,580·7일 EQ $60,619.80·AR $60,666.00을 향한 상방 가속으로 전환되며 경로 신뢰도 급락.\"\n    },\n    \"bearish\": {\n      \"price\": 60003.64,\n      \"description\": \"15분 종가가 $60,025-$60,003 지지 클러스터(Fib strict 컨플루언스 + EMA120 $60,003.64) 아래로 마감하면 하방 가속이 확정된다. $59,760 strict fib → London 저점 $59,717 유동성 스윕 → $59,100 파생 유동성으로 연속 하락 경로가 활성화.\"\n    }\n  },\n  \"scenario_invalidation\": 60734.0\n}\n```"
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 60025.79,
        "turning_zone": [
          59985.0,
          60034.51
        ],
        "likely_wick": 60000.0,
        "rejection_confirm": 60060.87,
        "invalid_overshoot": 59970.0,
        "calibration_reasoning": "Fib strict 컨플루언스 $60,025.79·Fib 0.5 $60,028·검증된 베어리시 gartley TP1 AD0.382 $60,034.51을 존 상단 앵커로, EMA120 $60,003.64·검증 TP1 $60,009.27·라운드 $60,000을 하단 반응대로 묶어 폭 $49(0.31 ATR)로 설정했다. likely_wick은 라운드 자석 $60,000(EMA120 직하 살짝 관통)으로 1차 되돌림을 가정했고, 골든레이쇼 $60,060.87 재탈환을 반등 확인선, 클러스터를 깨는 $59,970 이탈을 무효화로 본다."
      },
      {
        "seq": 2,
        "base_target": 59717.1,
        "turning_zone": [
          59625.0,
          59720.0
        ],
        "likely_wick": 59680.0,
        "rejection_confirm": 59760.32,
        "invalid_overshoot": 59530.7,
        "calibration_reasoning": "ICT London 저점·Chairman $59,717.1 직하의 매도 유동성을 겨냥해 스윕 특성을 반영, 존을 아래로 $95(0.59 ATR) 확장했다. likely_wick $59,680은 런던 저점을 살짝 관통하는 전형적 스윕 깊이(0.23 ATR)이며, 상단 Fib strict 5중 컨플루언스 $59,760.32 재탈환이 반전 확인선, $59,556 쿠션을 무너뜨리는 ICT/Harmonic TP3 $59,530.7 이탈 시 WP3로 연속 전환된다."
      },
      {
        "seq": 3,
        "base_target": 59100.0,
        "turning_zone": [
          58944.0,
          59100.0
        ],
        "likely_wick": 58960.0,
        "rejection_confirm": 59345.16,
        "invalid_overshoot": 58800.0,
        "calibration_reasoning": "종착 웨이포인트라 라운드 $59,100(Chairman 일치)에서 ICT bullish OB 상단 $58,944까지 두꺼운 매수대를 포함해 존을 $156(0.97 ATR)로 확장했다(터미널+OB 유동성 클러스터 규칙 적용). likely_wick $58,960은 메이저 라운드 $59,000을 스윕한 뒤 OB 상단을 태깅하는 1차 매수 반응 지점이며, Fib 컨플루언스 $59,345.16 재탈환이 추세 반전 확인선, 연장 타깃 $58,800(Chairman) 이탈 시 본 스윙 저점은 무효화된다."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 60025.79,\n      \"turning_zone\": [59985.0, 60034.51],\n      \"likely_wick\": 60000.0,\n      \"rejection_confirm\": 60060.87,\n      \"invalid_overshoot\": 59970.0,\n      \"calibration_reasoning\": \"Fib strict 컨플루언스 $60,025.79·Fib 0.5 $60,028·검증된 베어리시 gartley TP1 AD0.382 $60,034.51을 존 상단 앵커로, EMA120 $60,003.64·검증 TP1 $60,009.27·라운드 $60,000을 하단 반응대로 묶어 폭 $49(0.31 ATR)로 설정했다. likely_wick은 라운드 자석 $60,000(EMA120 직하 살짝 관통)으로 1차 되돌림을 가정했고, 골든레이쇼 $60,060.87 재탈환을 반등 확인선, 클러스터를 깨는 $59,970 이탈을 무효화로 본다.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 59717.1,\n      \"turning_zone\": [59625.0, 59720.0],\n      \"likely_wick\": 59680.0,\n      \"rejection_confirm\": 59760.32,\n      \"invalid_overshoot\": 59530.7,\n      \"calibration_reasoning\": \"ICT London 저점·Chairman $59,717.1 직하의 매도 유동성을 겨냥해 스윕 특성을 반영, 존을 아래로 $95(0.59 ATR) 확장했다. likely_wick $59,680은 런던 저점을 살짝 관통하는 전형적 스윕 깊이(0.23 ATR)이며, 상단 Fib strict 5중 컨플루언스 $59,760.32 재탈환이 반전 확인선, $59,556 쿠션을 무너뜨리는 ICT/Harmonic TP3 $59,530.7 이탈 시 WP3로 연속 전환된다.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 59100.0,\n      \"turning_zone\": [58944.0, 59100.0],\n      \"likely_wick\": 58960.0,\n      \"rejection_confirm\": 59345.16,\n      \"invalid_overshoot\": 58800.0,\n      \"calibration_reasoning\": \"종착 웨이포인트라 라운드 $59,100(Chairman 일치)에서 ICT bullish OB 상단 $58,944까지 두꺼운 매수대를 포함해 존을 $156(0.97 ATR)로 확장했다(터미널+OB 유동성 클러스터 규칙 적용). likely_wick $58,960은 메이저 라운드 $59,000을 스윕한 뒤 OB 상단을 태깅하는 1차 매수 반응 지점이며, Fib 컨플루언스 $59,345.16 재탈환이 추세 반전 확인선, 연장 타깃 $58,800(Chairman) 이탈 시 본 스윙 저점은 무효화된다.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 53.1,
      "chairman": 92.2,
      "operating_path": 360.1,
      "tp_calibrator": 394.0
    },
    "agents": {},
    "total_s": 899.6
  }
}