{
  "symbol": "BTC/USDT",
  "timeframe": "15m",
  "timestamp": "2026-06-07 01:00 KST",
  "last_price": 60754.6,
  "num_candles": 300,
  "stage1_analyses": {
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bearish",
      "confidence": 0.86,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.92,
      "setup_signals": [
        "현재가 60754.60달러가 EQ 60463.15달러 위에 있어 단기 프리미엄 구간에서 매도 셋업이 우세",
        "최근 구조가 63040.00달러, 62300.00달러, 61067.60달러 하향 BOS로 3회 연속 약세 확정",
        "현재 반등은 하락 구조 내 61.5% 되돌림으로, 프리미엄 영역에서 재분배 가능성",
        "EMA20 60801.49달러, EMA120 61244.35달러, EMA240 62191.27달러 아래에서 거래되어 상위 평균선 저항이 우세",
        "현재 활성 bullish OB, bearish OB, 미체결 FVG, 최근 유동성 스윕이 없어 반전 근거가 부족"
      ],
      "reasoning": "확정 구조는 63040.00달러, 62300.00달러, 61067.60달러를 연속으로 하향 이탈한 3회 bearish BOS 때문에 명확히 bearish입니다. 현재가 60754.60달러는 EQ 60463.15달러 위의 프리미엄 영역에 있으며, 하락 추세 중 61.5% 되돌림 구간이라 기관 관점에서는 추가 매도 유입이 쉬운 위치입니다. 다만 활성 OB와 미체결 FVG가 없고 최근 유동성 스윕도 감지되지 않아, 진입 근거는 구조와 프리미엄 위치에 더 크게 의존합니다. 61067.60달러를 회복하지 못하면 60463.15달러 EQ와 60353.40달러 아시아 저점, 이후 59451.30달러 range low 쪽으로 유동성이 열려 있습니다.",
      "key_levels": {
        "support": [
          60463.15,
          60353.4,
          59451.3,
          59080.0
        ],
        "resistance": [
          60801.49,
          60900.0,
          61067.6,
          61244.35,
          61475.0,
          61985.1,
          62191.27,
          62300.0
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "61475.00달러 상방 돌파 및 15분봉 종가 기준 수용",
      "risk_scenario": "만약 가격이 61067.60달러를 회복하고 61475.00달러 range high 위에서 수용되면, 현재 bearish setup은 실패로 간주되며 61985.10달러 전일 고점과 62191.27달러 EMA240까지 buy-side liquidity를 사냥하는 반등 시나리오가 열립니다.",
      "data_quality": "medium",
      "metrics": {
        "order_blocks_total": 0,
        "confirmed_bullish_ob": 0,
        "confirmed_bearish_ob": 0,
        "candidate_bullish_ob": 0,
        "candidate_bearish_ob": 0,
        "active_bullish_ob": 0,
        "active_bearish_ob": 0,
        "nearest_bull_ob_range": null,
        "nearest_bear_ob_range": null,
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [],
        "ob_mitigated_count": 0,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 70,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish"
        ],
        "bos_choch_levels": [
          {
            "type": "BOS_bearish",
            "level": 63040.0
          },
          {
            "type": "BOS_bearish",
            "level": 62300.0
          },
          {
            "type": "BOS_bearish",
            "level": 61067.6
          }
        ],
        "bos_sequence": [
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish"
        ],
        "consecutive_bull_bos": 0,
        "consecutive_bear_bos": 3,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "premium",
        "eq_level": 60463.15,
        "range_high": 61475.0,
        "range_low": 59451.3,
        "bull_score": 0.0,
        "bear_score": 8.5,
        "setup_bias": "bearish",
        "setup_score": 0.92,
        "setup_signals": [
          "bearish BOS below $63,040.00",
          "bearish BOS below $62,300.00",
          "bearish BOS below $61,067.60",
          "3x consecutive bearish BOS"
        ],
        "retracement_direction": "bullish",
        "current_retracement_pct": 61.5,
        "deepest_retracement_pct": 79.8,
        "previous_day_high": 61985.1,
        "previous_day_low": 59080.0,
        "broken_prev_high": false,
        "broken_prev_low": false,
        "sessions": {
          "London": {
            "active": false,
            "high": null,
            "low": null
          },
          "New York": {
            "active": false,
            "high": null,
            "low": null
          },
          "Asian kill zone": {
            "active": true,
            "high": 60900.0,
            "low": 60353.4
          }
        }
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.86,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.92,\n  \"setup_signals\": [\n    \"현재가 60754.60달러가 EQ 60463.15달러 위에 있어 단기 프리미엄 구간에서 매도 셋업이 우세\",\n    \"최근 구조가 63040.00달러, 62300.00달러, 61067.60달러 하향 BOS로 3회 연속 약세 확정\",\n    \"현재 반등은 하락 구조 내 61.5% 되돌림으로, 프리미엄 영역에서 재분배 가능성\",\n    \"EMA20 60801.49달러, EMA120 61244.35달러, EMA240 62191.27달러 아래에서 거래되어 상위 평균선 저항이 우세\",\n    \"현재 활성 bullish OB, bearish OB, 미체결 FVG, 최근 유동성 스윕이 없어 반전 근거가 부족\"\n  ],\n  \"reasoning\": \"확정 구조는 63040.00달러, 62300.00달러, 61067.60달러를 연속으로 하향 이탈한 3회 bearish BOS 때문에 명확히 bearish입니다. 현재가 60754.60달러는 EQ 60463.15달러 위의 프리미엄 영역에 있으며, 하락 추세 중 61.5% 되돌림 구간이라 기관 관점에서는 추가 매도 유입이 쉬운 위치입니다. 다만 활성 OB와 미체결 FVG가 없고 최근 유동성 스윕도 감지되지 않아, 진입 근거는 구조와 프리미엄 위치에 더 크게 의존합니다. 61067.60달러를 회복하지 못하면 60463.15달러 EQ와 60353.40달러 아시아 저점, 이후 59451.30달러 range low 쪽으로 유동성이 열려 있습니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60463.15,\n      60353.4,\n      59451.3,\n      59080.0\n    ],\n    \"resistance\": [\n      60801.49,\n      60900.0,\n      61067.6,\n      61244.35,\n      61475.0,\n      61985.1,\n      62191.27,\n      62300.0\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"61475.00달러 상방 돌파 및 15분봉 종가 기준 수용\",\n  \"risk_scenario\": \"만약 가격이 61067.60달러를 회복하고 61475.00달러 range high 위에서 수용되면, 현재 bearish setup은 실패로 간주되며 61985.10달러 전일 고점과 62191.27달러 EMA240까지 buy-side liquidity를 사냥하는 반등 시나리오가 열립니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "bullish",
      "confidence": 0.58,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.68,
      "setup_signals": [
        "현재가 $60,754.60는 7일 범위 EQ $63,150.10 아래의 할인 구간에 위치",
        "7일 저점 $59,080.00 부근 수요권에서 반등 시도 중이며 현재가는 저점 대비 약 $1,674.60 위",
        "최근 strict 등급 bullish_harami 감지, 패턴 품질 0.727이며 고거래량 패턴으로 확인",
        "최근 morning_star@298 후보가 출현해 단기 저점 형성 가능성 증가",
        "bull_score 4.25가 bear_score 2.70보다 우위"
      ],
      "reasoning": "구조적으로는 현재가 $60,754.60가 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 있어 아직 하락 우위 구조가 유지됩니다. 다만 셋업 관점에서는 가격이 7일 고점 $67,220.20과 저점 $59,080.00의 EQ인 $63,150.10 아래 할인 구간에 있고, 최근 bullish_harami 품질 0.727 및 morning_star 후보가 확인되어 단기 반등 셋업이 우세합니다. 즉, 구조는 아직 bearish지만 캔들 패턴과 위치는 $59,080.00 지지권에서의 단기 bullish reversal 시도를 가리킵니다. $60,801.49 EMA20을 회복하면 단기 매수세 확인이 강화되고, 다음 저항은 $61,244.35와 $62,191.27입니다.",
      "key_levels": {
        "support": [
          60475.23,
          59080.0
        ],
        "resistance": [
          60801.49,
          61244.35,
          62191.27,
          63150.1,
          67220.2
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$59,080.00",
      "risk_scenario": "반대로 $60,801.49 EMA20 회복에 실패하고 매도 압력이 재개되면 bullish_harami와 morning_star 셋업은 실패 신호가 되며, $60,475.23 부근의 1ATR 하단을 거쳐 7일 저점 $59,080.00 재테스트 가능성이 커집니다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 154,
        "recent_patterns": 11,
        "pattern_list": [
          "hammer@290",
          "bearish_engulfing@291",
          "bullish_engulfing@292",
          "bullish_engulfing@294",
          "bearish_engulfing@295",
          "morning_star@298",
          "doji@293",
          "bullish_harami@290",
          "bearish_harami@293",
          "bullish_harami@297",
          "bearish_harami@299"
        ],
        "atr_value": 279.37,
        "vol_avg_20": 1588.89,
        "high_volume_patterns": [
          "bullish_harami"
        ],
        "pattern_candidates": [
          {
            "pattern": "bullish_harami",
            "signal": "bullish",
            "pattern_quality": 0.727,
            "tier": "strict",
            "high_volume": true
          },
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.557,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.55,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "morning_star",
            "signal": "bullish",
            "pattern_quality": 0.549,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_harami",
            "signal": "bearish",
            "pattern_quality": 0.515,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.727,
        "bull_score": 4.25,
        "bear_score": 2.7
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.68,\n  \"setup_signals\": [\n    \"현재가 $60,754.60는 7일 범위 EQ $63,150.10 아래의 할인 구간에 위치\",\n    \"7일 저점 $59,080.00 부근 수요권에서 반등 시도 중이며 현재가는 저점 대비 약 $1,674.60 위\",\n    \"최근 strict 등급 bullish_harami 감지, 패턴 품질 0.727이며 고거래량 패턴으로 확인\",\n    \"최근 morning_star@298 후보가 출현해 단기 저점 형성 가능성 증가\",\n    \"bull_score 4.25가 bear_score 2.70보다 우위\"\n  ],\n  \"reasoning\": \"구조적으로는 현재가 $60,754.60가 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 있어 아직 하락 우위 구조가 유지됩니다. 다만 셋업 관점에서는 가격이 7일 고점 $67,220.20과 저점 $59,080.00의 EQ인 $63,150.10 아래 할인 구간에 있고, 최근 bullish_harami 품질 0.727 및 morning_star 후보가 확인되어 단기 반등 셋업이 우세합니다. 즉, 구조는 아직 bearish지만 캔들 패턴과 위치는 $59,080.00 지지권에서의 단기 bullish reversal 시도를 가리킵니다. $60,801.49 EMA20을 회복하면 단기 매수세 확인이 강화되고, 다음 저항은 $61,244.35와 $62,191.27입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60475.23,\n      59080.0\n    ],\n    \"resistance\": [\n      60801.49,\n      61244.35,\n      62191.27,\n      63150.1,\n      67220.2\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$59,080.00\",\n  \"risk_scenario\": \"반대로 $60,801.49 EMA20 회복에 실패하고 매도 압력이 재개되면 bullish_harami와 morning_star 셋업은 실패 신호가 되며, $60,475.23 부근의 1ATR 하단을 거쳐 7일 저점 $59,080.00 재테스트 가능성이 커집니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.61,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.64,
      "setup_signals": [
        "현재가 $60,754.60이 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 있어 단기·중기 구조 수용이 약함",
        "7일 범위 EQ 약 $63,150 아래의 디스카운트 구간이지만, 반등 CVD가 동행하지 못함: CVD 변화 -7,695.9220, CVD divergence 0.300",
        "롱 계정 비율 0.654로 여전히 롱 쏠림이며 account_long_crowding 1.000, 반대로 숏 계정은 24시간 +0.027 상승",
        "OI 24시간 -0.2590%로 신규 매수 유입보다 포지션 언와인딩 성격이 강하며, 상승 추세 확인에 필요한 참여가 부족함",
        "하방 청산 유동성이 $58,400, $58,300에 밀집되어 있어 단기 가격 자석으로 작용 가능"
      ],
      "reasoning": "확정 구조는 현재가 $60,754.60이 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 머물러 있어 bearish로 판단한다. 셋업 측면에서는 가격이 7일 저점 $59,080에 가까운 디스카운트 영역이라 반등 여지는 있으나, CVD 변화가 -7,695.9220으로 약하고 OI도 24시간 -0.2590% 감소해 상승 참여가 확인되지 않는다. 롱 계정 비율이 0.654로 높고 account_long_crowding이 1.000인 점은 반대매매 관점에서 하방 리스크를 키우며, 하방 유동성 $58,400/$58,300이 먼저 테스트될 가능성이 있다. 단, $62,000 및 EMA240 부근 $62,191.27을 회복하면 숏 시나리오는 약화되고 $63,200 청산 클러스터까지 숏 커버링이 열릴 수 있다.",
      "key_levels": {
        "support": [
          59080,
          58400,
          58300,
          54900
        ],
        "resistance": [
          60801.49,
          61244.35,
          62000,
          62191.27,
          63200,
          66800,
          67220.2
        ]
      },
      "time_horizon": "short term, 4-8시간",
      "invalidation_level": "$63,200 상방 회복 및 15분봉 종가 기준 수용",
      "risk_scenario": "$62,000 청산 구간을 강하게 돌파하고 EMA240 $62,191.27 위에서 유지되면, 숏 포지션 커버링이 발생하며 $63,200까지 빠른 반등이 나올 수 있다. 그 경우 현재의 하방 유동성 타깃 $58,400/$58,300 시나리오는 지연되거나 무효화된다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.3,
        "cvd_change": -7695.922,
        "oi_trend": 0.474,
        "oi_change_pct_24h": -0.259,
        "oi_latest": 102071.909,
        "funding_pressure": 0.498,
        "funding_avg": 1.93e-06,
        "funding_change_24h": 3.538e-05,
        "long_account_ratio": 0.664,
        "short_account_ratio": 0.336,
        "long_account_latest": 0.654,
        "short_account_latest": 0.346,
        "long_account_change_24h": -0.027,
        "short_account_change_24h": 0.027,
        "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.488,
        "spot_futures_basis_pct": -0.0484,
        "basis_change_lookback": -0.0051,
        "aggregate_score": 0.352,
        "bull_signals": 0,
        "bear_signals": 2,
        "liq_below": [
          [
            58400,
            2170.3426930000005
          ],
          [
            58300,
            2611.2214000000004
          ],
          [
            54900,
            2179.85588625
          ]
        ],
        "liq_above": [
          [
            62000,
            2003.8564785
          ],
          [
            63200,
            2079.2687910000004
          ],
          [
            66800,
            2234.3953137500002
          ]
        ],
        "strongest_liq_level": 66900,
        "fragility_score": 0.63,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.61,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.64,\n  \"setup_signals\": [\n    \"현재가 $60,754.60이 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 있어 단기·중기 구조 수용이 약함\",\n    \"7일 범위 EQ 약 $63,150 아래의 디스카운트 구간이지만, 반등 CVD가 동행하지 못함: CVD 변화 -7,695.9220, CVD divergence 0.300\",\n    \"롱 계정 비율 0.654로 여전히 롱 쏠림이며 account_long_crowding 1.000, 반대로 숏 계정은 24시간 +0.027 상승\",\n    \"OI 24시간 -0.2590%로 신규 매수 유입보다 포지션 언와인딩 성격이 강하며, 상승 추세 확인에 필요한 참여가 부족함\",\n    \"하방 청산 유동성이 $58,400, $58,300에 밀집되어 있어 단기 가격 자석으로 작용 가능\"\n  ],\n  \"reasoning\": \"확정 구조는 현재가 $60,754.60이 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 머물러 있어 bearish로 판단한다. 셋업 측면에서는 가격이 7일 저점 $59,080에 가까운 디스카운트 영역이라 반등 여지는 있으나, CVD 변화가 -7,695.9220으로 약하고 OI도 24시간 -0.2590% 감소해 상승 참여가 확인되지 않는다. 롱 계정 비율이 0.654로 높고 account_long_crowding이 1.000인 점은 반대매매 관점에서 하방 리스크를 키우며, 하방 유동성 $58,400/$58,300이 먼저 테스트될 가능성이 있다. 단, $62,000 및 EMA240 부근 $62,191.27을 회복하면 숏 시나리오는 약화되고 $63,200 청산 클러스터까지 숏 커버링이 열릴 수 있다.\",\n  \"key_levels\": {\n    \"support\": [\n      59080,\n      58400,\n      58300,\n      54900\n    ],\n    \"resistance\": [\n      60801.49,\n      61244.35,\n      62000,\n      62191.27,\n      63200,\n      66800,\n      67220.2\n    ]\n  },\n  \"time_horizon\": \"short term, 4-8시간\",\n  \"invalidation_level\": \"$63,200 상방 회복 및 15분봉 종가 기준 수용\",\n  \"risk_scenario\": \"$62,000 청산 구간을 강하게 돌파하고 EMA240 $62,191.27 위에서 유지되면, 숏 포지션 커버링이 발생하며 $63,200까지 빠른 반등이 나올 수 있다. 그 경우 현재의 하방 유동성 타깃 $58,400/$58,300 시나리오는 지연되거나 무효화된다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "bullish",
      "confidence": 0.48,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.6,
      "setup_signals": [
        "확정된 bullish Gartley PRZ $59,997.31-$60,390.23에서 반응 확인: reaction_score 1.0, D/PRZ 방어 및 PRZ 중심 회복",
        "Gartley D 가격 $60,146.00 이후 AD 0.382 반응 목표 $60,711.85 도달, 현재가 $60,754.60로 TP1 위 유지",
        "현재가가 active bullish Bat 형성 PRZ $60,467.81-$60,988.90 내부에 위치하여 단기 하방 방어 후보",
        "nearest PRZ가 $60,760.47로 현재가 $60,754.60와 거의 동일하여 즉시 반응 구간에 진입",
        "상방 TP2는 confirmed Gartley 기준 $61,031.92, 그 위 구조 유동성/TP3는 $61,550.00"
      ],
      "reasoning": "현재 유효한 council PRZ는 strict/high bullish Gartley이며, PRZ $59,997.31-$60,390.23에서 rejection/defense, AD0.382 도달, D 실패구간 방어가 확인되어 post-confirmation vote eligible 상태입니다. 다만 harmonic governance상 단독 구조 전환 엔진은 아니므로, confirmed BOS/CHoCH나 15m/1h MSS가 없는 현재 구조_bias는 neutral로 둡니다. 실행 관점에서는 현재가 $60,754.60이 active bullish Bat PRZ $60,467.81-$60,988.90 및 nearest PRZ $60,760.47 부근에 있어, $60,711.85 위 유지 시 $61,031.92-$61,150.58 재시험 가능성이 우세합니다. 반대로 $59,997.31 하단을 이탈하면 confirmed bullish Gartley의 PRZ 방어 논리가 훼손되어 $59,080.00 7일 저점 유동성 재탐색 위험이 커집니다.",
      "key_levels": {
        "support": [
          60711.85,
          60467.81,
          60390.23,
          60146.0,
          59997.31,
          59080.0
        ],
        "resistance": [
          60988.9,
          61031.92,
          61150.58,
          61208.43,
          61550.0,
          61985.1
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$59,997.31 하방 이탈 및 재수용 실패",
      "risk_scenario": "가격이 $60,988.90-$61,150.58 상단을 회복하지 못하고 $60,467.81 아래로 밀리면 active bullish PRZ가 지지로 작동하지 못했다는 뜻이며, 이 경우 confirmed Gartley의 TP2 $61,031.92 시나리오는 약화되고 $60,390.23-$59,997.31 재방문 및 $59,080.00 저점 유동성 스윕 위험이 열립니다. 또한 $61,214.57-$61,509.95에는 forming bearish Gartley watch PRZ가 있어, 상방 도달 시 반락 리스크 구간으로 취급해야 합니다.",
      "data_quality": "medium",
      "metrics": {
        "patterns_found": 102,
        "completed_patterns_found": 31,
        "forming_d_prz_found": 71,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 34,
        "multiscale_swings_scanned": 53,
        "swing_highs_scanned": 24,
        "swing_lows_scanned": 29,
        "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": 4,
          "medium": 44,
          "low": 54
        },
        "prz_status_counts": {
          "active": 15,
          "nearby": 5,
          "watch": 20,
          "far": 62,
          "forming": 50
        },
        "high_confluence_prz_count": 20,
        "strict_patterns_found": 47,
        "candidate_patterns_found": 55,
        "active_patterns_at_prz": 15,
        "nearby_patterns": 5,
        "all_patterns": [
          "bat",
          "butterfly",
          "gartley",
          "bat",
          "gartley",
          "butterfly",
          "gartley",
          "bat",
          "gartley",
          "crab",
          "shark",
          "bat",
          "butterfly",
          "bat",
          "crab",
          "shark",
          "bat",
          "butterfly",
          "butterfly",
          "crab",
          "gartley",
          "crab",
          "crab",
          "crab",
          "bat",
          "crab",
          "butterfly",
          "butterfly",
          "crab",
          "crab",
          "bat",
          "gartley",
          "bat",
          "shark",
          "butterfly",
          "crab",
          "butterfly",
          "crab",
          "crab",
          "crab",
          "crab",
          "shark",
          "crab",
          "crab",
          "bat",
          "gartley",
          "bat",
          "crab",
          "crab",
          "butterfly",
          "shark",
          "bat",
          "bat",
          "butterfly",
          "gartley",
          "butterfly",
          "butterfly",
          "crab",
          "shark",
          "shark",
          "shark",
          "shark",
          "bat",
          "crab",
          "crab",
          "shark",
          "crab",
          "crab",
          "shark",
          "bat",
          "shark",
          "shark",
          "gartley",
          "crab",
          "crab",
          "bat",
          "butterfly",
          "butterfly",
          "shark",
          "butterfly",
          "butterfly",
          "butterfly",
          "gartley",
          "shark",
          "shark",
          "bat",
          "gartley",
          "gartley",
          "shark",
          "crab",
          "crab",
          "shark",
          "shark",
          "crab",
          "butterfly",
          "shark",
          "gartley",
          "shark",
          "butterfly",
          "crab",
          "butterfly",
          "gartley"
        ],
        "all_signals": [
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish"
        ],
        "best_pattern": "bat",
        "best_pattern_quality": "strict",
        "best_quality": "medium",
        "best_pattern_score": 0.922,
        "best_completion_status": "forming",
        "nearest_pattern": "butterfly",
        "nearest_prz": 60760.47,
        "price_to_prz": 0.01,
        "prz_range": [
          60370.37,
          61150.58
        ],
        "council_relevant_prz_count": 1,
        "directional_influence_prz_count": 1,
        "confirmed_reaction_prz_count": 1,
        "validated_harmonic_tp_count": 1,
        "pattern_candidates": [
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.875,
            "ratio_score": 0.886,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 61362.26,
            "prz_range": [
              61214.57,
              61509.95
            ],
            "prz_width_pct": 0.481,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.0,
            "price_to_prz_pct_raw": 1.0002,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 61362.26,
              "a_price": 60599.9,
              "tp1_ad_382": 61071.04,
              "tp2_ad_618": 60891.12,
              "tp3_a_or_structure_liquidity": 60599.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6373,
              "ABC": 0.8799
            },
            "x_price": 61500.0,
            "x_idx": 237,
            "x_order": 3,
            "a_price": 60599.9,
            "a_idx": 286,
            "a_order": 3,
            "b_price": 61173.5,
            "b_idx": 287,
            "b_order": 8,
            "c_price": 60668.8,
            "c_idx": 290,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.874,
            "ratio_score": 0.935,
            "prz_score": 0.979,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60146.0,
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_width_pct": 0.653,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.92,
            "price_to_prz_pct_raw": -0.9231,
            "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": 0.732,
                "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.603,
              "ABC": 0.647,
              "BCD": 1.4416,
              "XAD": 0.7753
            },
            "x_price": 59739.1,
            "x_idx": 204,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 60458.0,
            "b_idx": 234,
            "b_order": 8,
            "c_price": 61164.5,
            "c_idx": 247,
            "c_order": 3,
            "d_idx": 278
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.817,
            "ratio_score": 0.636,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 61045.34,
            "prz_range": [
              60940.19,
              61150.5
            ],
            "prz_width_pct": 0.345,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.48,
            "price_to_prz_pct_raw": 0.4786,
            "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": 61045.34,
              "a_price": 61550.0,
              "tp1_ad_382": 61238.12,
              "tp2_ad_618": 61357.22,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5566,
              "ABC": 0.8687
            },
            "x_price": 62234.3,
            "x_idx": 175,
            "x_order": 3,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.922,
            "ratio_score": 1.0,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60728.35,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.04,
            "price_to_prz_pct_raw": -0.0432,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055
            },
            "x_price": 60300.0,
            "x_idx": 197,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 224,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.913,
            "ratio_score": 0.983,
            "prz_score": 0.892,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60876.4,
            "prz_range": [
              60609.35,
              61143.45
            ],
            "prz_width_pct": 0.877,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.2,
            "price_to_prz_pct_raw": 0.2005,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 60876.4,
              "a_price": 61550.0,
              "tp1_ad_382": 61133.72,
              "tp2_ad_618": 61292.69,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7896,
              "ABC": 0.8687
            },
            "x_price": 61067.6,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.901,
            "ratio_score": 0.88,
            "prz_score": 0.94,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60331.01,
            "prz_range": [
              60103.72,
              60558.29
            ],
            "prz_width_pct": 0.753,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.7,
            "price_to_prz_pct_raw": -0.6972,
            "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": 60331.01,
              "a_price": 61985.1,
              "tp1_ad_382": 60962.87,
              "tp2_ad_618": 61353.24,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5978,
              "ABC": 0.6201
            },
            "x_price": 59739.1,
            "x_idx": 204,
            "x_order": 8,
            "a_price": 61985.1,
            "a_idx": 224,
            "a_order": 8,
            "b_price": 60642.4,
            "b_idx": 245,
            "b_order": 3,
            "c_price": 61475.0,
            "c_idx": 270,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.825,
            "ratio_score": 0.871,
            "prz_score": 0.878,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 61355.81,
            "prz_range": [
              61075.59,
              61636.03
            ],
            "prz_width_pct": 0.913,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.99,
            "price_to_prz_pct_raw": 0.9896,
            "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": 61355.81,
              "a_price": 60642.4,
              "tp1_ad_382": 61083.29,
              "tp2_ad_618": 60914.92,
              "tp3_a_or_structure_liquidity": 60642.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6088,
              "ABC": 1.0814
            },
            "x_price": 61500.0,
            "x_idx": 237,
            "x_order": 3,
            "a_price": 60642.4,
            "a_idx": 245,
            "a_order": 3,
            "b_price": 61164.5,
            "b_idx": 247,
            "b_order": 3,
            "c_price": 60599.9,
            "c_idx": 286,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.824,
            "ratio_score": 0.803,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60642.4,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.04,
            "price_to_prz_pct_raw": -0.0432,
            "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",
                "post_D_close_progress"
              ],
              "reaction_score": 0.9,
              "reaction_detail": {
                "reaction_score": 0.9,
                "reaction_move_ratio_ad": 0.389,
                "adverse_move_ratio_ad": 0.887,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "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": "bat",
              "d_price": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055,
              "BCD": 2.5917,
              "XAD": 0.7968
            },
            "x_price": 60300.0,
            "x_idx": 197,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 224,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": 245
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.874,
            "ratio_score": 0.935,
            "prz_score": 0.979,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60146.0,
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_width_pct": 0.653,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.92,
            "price_to_prz_pct_raw": -0.9231,
            "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": 0.732,
                "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.603,
              "ABC": 0.647,
              "BCD": 1.4416,
              "XAD": 0.7753
            },
            "x_price": 59739.1,
            "x_idx": 204,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 60458.0,
            "b_idx": 234,
            "b_order": 8,
            "c_price": 61164.5,
            "c_idx": 247,
            "c_order": 3,
            "d_idx": 278
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.875,
            "ratio_score": 0.886,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 61362.26,
            "prz_range": [
              61214.57,
              61509.95
            ],
            "prz_width_pct": 0.481,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.0,
            "price_to_prz_pct_raw": 1.0002,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 61362.26,
              "a_price": 60599.9,
              "tp1_ad_382": 61071.04,
              "tp2_ad_618": 60891.12,
              "tp3_a_or_structure_liquidity": 60599.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6373,
              "ABC": 0.8799
            },
            "x_price": 61500.0,
            "x_idx": 237,
            "x_order": 3,
            "a_price": 60599.9,
            "a_idx": 286,
            "a_order": 3,
            "b_price": 61173.5,
            "b_idx": 287,
            "b_order": 8,
            "c_price": 60668.8,
            "c_idx": 290,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.874,
            "ratio_score": 0.935,
            "prz_score": 0.979,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60146.0,
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_width_pct": 0.653,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.92,
            "price_to_prz_pct_raw": -0.9231,
            "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": 0.732,
                "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.603,
              "ABC": 0.647,
              "BCD": 1.4416,
              "XAD": 0.7753
            },
            "x_price": 59739.1,
            "x_idx": 204,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 60458.0,
            "b_idx": 234,
            "b_order": 8,
            "c_price": 61164.5,
            "c_idx": 247,
            "c_order": 3,
            "d_idx": 278
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.817,
            "ratio_score": 0.636,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 61045.34,
            "prz_range": [
              60940.19,
              61150.5
            ],
            "prz_width_pct": 0.345,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.48,
            "price_to_prz_pct_raw": 0.4786,
            "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": 61045.34,
              "a_price": 61550.0,
              "tp1_ad_382": 61238.12,
              "tp2_ad_618": 61357.22,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5566,
              "ABC": 0.8687
            },
            "x_price": 62234.3,
            "x_idx": 175,
            "x_order": 3,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.922,
            "ratio_score": 1.0,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60728.35,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.04,
            "price_to_prz_pct_raw": -0.0432,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055
            },
            "x_price": 60300.0,
            "x_idx": 197,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 224,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.913,
            "ratio_score": 0.983,
            "prz_score": 0.892,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60876.4,
            "prz_range": [
              60609.35,
              61143.45
            ],
            "prz_width_pct": 0.877,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.2,
            "price_to_prz_pct_raw": 0.2005,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 60876.4,
              "a_price": 61550.0,
              "tp1_ad_382": 61133.72,
              "tp2_ad_618": 61292.69,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7896,
              "ABC": 0.8687
            },
            "x_price": 61067.6,
            "x_idx": 165,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.901,
            "ratio_score": 0.88,
            "prz_score": 0.94,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60331.01,
            "prz_range": [
              60103.72,
              60558.29
            ],
            "prz_width_pct": 0.753,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.7,
            "price_to_prz_pct_raw": -0.6972,
            "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": 60331.01,
              "a_price": 61985.1,
              "tp1_ad_382": 60962.87,
              "tp2_ad_618": 61353.24,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5978,
              "ABC": 0.6201
            },
            "x_price": 59739.1,
            "x_idx": 204,
            "x_order": 8,
            "a_price": 61985.1,
            "a_idx": 224,
            "a_order": 8,
            "b_price": 60642.4,
            "b_idx": 245,
            "b_order": 3,
            "c_price": 61475.0,
            "c_idx": 270,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.825,
            "ratio_score": 0.871,
            "prz_score": 0.878,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 61355.81,
            "prz_range": [
              61075.59,
              61636.03
            ],
            "prz_width_pct": 0.913,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.99,
            "price_to_prz_pct_raw": 0.9896,
            "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": 61355.81,
              "a_price": 60642.4,
              "tp1_ad_382": 61083.29,
              "tp2_ad_618": 60914.92,
              "tp3_a_or_structure_liquidity": 60642.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6088,
              "ABC": 1.0814
            },
            "x_price": 61500.0,
            "x_idx": 237,
            "x_order": 3,
            "a_price": 60642.4,
            "a_idx": 245,
            "a_order": 3,
            "b_price": 61164.5,
            "b_idx": 247,
            "b_order": 3,
            "c_price": 60599.9,
            "c_idx": 286,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.824,
            "ratio_score": 0.803,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60642.4,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.04,
            "price_to_prz_pct_raw": -0.0432,
            "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",
                "post_D_close_progress"
              ],
              "reaction_score": 0.9,
              "reaction_detail": {
                "reaction_score": 0.9,
                "reaction_move_ratio_ad": 0.389,
                "adverse_move_ratio_ad": 0.887,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "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": "bat",
              "d_price": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055,
              "BCD": 2.5917,
              "XAD": 0.7968
            },
            "x_price": 60300.0,
            "x_idx": 197,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 224,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 228,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 237,
            "c_order": 3,
            "d_idx": 245
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.822,
            "ratio_score": 0.926,
            "prz_score": 0.864,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 60146.0,
            "prz_range": [
              59773.62,
              60343.77
            ],
            "prz_width_pct": 0.949,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.15,
            "price_to_prz_pct_raw": -1.1454,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "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": 0.759,
                "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": "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": "butterfly",
              "d_price": 60058.69,
              "a_price": 61500.0,
              "tp1_ad_382": 60609.27,
              "tp2_ad_618": 60949.42,
              "tp3_a_or_structure_liquidity": 61500.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.823,
              "ABC": 0.6088,
              "BCD": 1.9508,
              "XAD": 1.2994
            },
            "x_price": 60458.0,
            "x_idx": 234,
            "x_order": 8,
            "a_price": 61500.0,
            "a_idx": 237,
            "a_order": 3,
            "b_price": 60642.4,
            "b_idx": 245,
            "b_order": 3,
            "c_price": 61164.5,
            "c_idx": 247,
            "c_order": 3,
            "d_idx": 278
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.763,
            "ratio_score": 0.77,
            "prz_score": 0.876,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59761.71,
            "prz_range": [
              59487.1,
              60036.33
            ],
            "prz_width_pct": 0.919,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.63,
            "price_to_prz_pct_raw": -1.6343,
            "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": "gartley",
              "d_price": 59761.71,
              "a_price": 61475.0,
              "tp1_ad_382": 60416.19,
              "tp2_ad_618": 60820.53,
              "tp3_a_or_structure_liquidity": 61475.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6567,
              "ABC": 0.7731
            },
            "x_price": 59451.3,
            "x_idx": 254,
            "x_order": 8,
            "a_price": 61475.0,
            "a_idx": 270,
            "a_order": 8,
            "b_price": 60146.0,
            "b_idx": 278,
            "b_order": 8,
            "c_price": 61173.5,
            "c_idx": 287,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.744,
            "ratio_score": 0.751,
            "prz_score": 0.864,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 60146.0,
            "prz_range": [
              59773.62,
              60343.77
            ],
            "prz_width_pct": 0.949,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.15,
            "price_to_prz_pct_raw": -1.1454,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "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": 0.732,
                "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": "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": "bat",
              "d_price": 60058.69,
              "a_price": 61550.0,
              "tp1_ad_382": 60628.37,
              "tp2_ad_618": 60980.32,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5012,
              "ABC": 0.5753,
              "BCD": 1.9508,
              "XAD": 0.7753
            },
            "x_price": 59739.1,
            "x_idx": 204,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 205,
            "a_order": 8,
            "b_price": 60642.4,
            "b_idx": 245,
            "b_order": 3,
            "c_price": 61164.5,
            "c_idx": 247,
            "c_order": 3,
            "d_idx": 278
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.736,
            "ratio_score": 0.632,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 61475.0,
            "prz_range": [
              61207.56,
              61510.4
            ],
            "prz_width_pct": 0.494,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.99,
            "price_to_prz_pct_raw": 0.9948,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "post_D_close_progress"
              ],
              "reaction_score": 0.9,
              "reaction_detail": {
                "reaction_score": 0.9,
                "reaction_move_ratio_ad": 1.307,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "post_D_close_progress"
                ]
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 61358.98,
              "a_price": 60458.0,
              "tp1_ad_382": 61014.81,
              "tp2_ad_618": 60802.17,
              "tp3_a_or_structure_liquidity": 60458.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.647,
              "ABC": 0.736,
              "BCD": 1.5971,
              "XAD": 0.9313
            },
            "x_price": 61550.0,
            "x_idx": 205,
            "x_order": 8,
            "a_price": 60458.0,
            "a_idx": 234,
            "a_order": 8,
            "b_price": 61164.5,
            "b_idx": 247,
            "b_order": 3,
            "c_price": 60644.5,
            "c_idx": 263,
            "c_order": 3,
            "d_idx": 270
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.874,
            "prz_proximity": "nearby",
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.92,
            "high_confluence_prz": true,
            "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": 0.732,
                "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY COMPLETED HIGH PRZ $59,997.31-$60,390.23: expected reversal UP if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "gartley",
          "signal": "bullish",
          "completion_status": "completed",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.874,
          "ratio_score": 0.935,
          "prz_score": 0.979,
          "prz_proximity": "nearby",
          "action_status": "nearby",
          "high_confluence_prz": true,
          "d_price": 60146.0,
          "prz_range": [
            59997.31,
            60390.23
          ],
          "prz_width_pct": 0.653,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": -0.92,
          "price_to_prz_pct_raw": -0.9231,
          "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": 0.732,
              "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": 60193.77,
            "a_price": 61550.0,
            "tp1_ad_382": 60711.85,
            "tp2_ad_618": 61031.92,
            "tp3_a_or_structure_liquidity": 61550.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.603,
            "ABC": 0.647,
            "BCD": 1.4416,
            "XAD": 0.7753
          },
          "x_price": 59739.1,
          "x_idx": 204,
          "x_order": 8,
          "a_price": 61550.0,
          "a_idx": 205,
          "a_order": 8,
          "b_price": 60458.0,
          "b_idx": 234,
          "b_order": 8,
          "c_price": 61164.5,
          "c_idx": 247,
          "c_order": 3,
          "d_idx": 278
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "gartley",
          "d_price": 60193.77,
          "a_price": 61550.0,
          "tp1_ad_382": 60711.85,
          "tp2_ad_618": 61031.92,
          "tp3_a_or_structure_liquidity": 61550.0,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "best_confirmed_tp_ladder": {
          "direction": "bullish",
          "source": "gartley",
          "d_price": 60193.77,
          "a_price": 61550.0,
          "tp1_ad_382": 60711.85,
          "tp2_ad_618": 61031.92,
          "tp3_a_or_structure_liquidity": 61550.0,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 60193.77,
            "a_price": 61550.0,
            "tp1_ad_382": 60711.85,
            "tp2_ad_618": 61031.92,
            "tp3_a_or_structure_liquidity": 61550.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "validated_tp_ladder": [
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 60193.77,
            "a_price": 61550.0,
            "tp1_ad_382": 60711.85,
            "tp2_ad_618": 61031.92,
            "tp3_a_or_structure_liquidity": 61550.0,
            "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": "watch",
        "directional_scores": {
          "bullish": 0.39,
          "bearish": 0
        },
        "directional_score_total": 0.39,
        "directional_dominance": 1.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.48,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.6,\n  \"setup_signals\": [\n    \"확정된 bullish Gartley PRZ $59,997.31-$60,390.23에서 반응 확인: reaction_score 1.0, D/PRZ 방어 및 PRZ 중심 회복\",\n    \"Gartley D 가격 $60,146.00 이후 AD 0.382 반응 목표 $60,711.85 도달, 현재가 $60,754.60로 TP1 위 유지\",\n    \"현재가가 active bullish Bat 형성 PRZ $60,467.81-$60,988.90 내부에 위치하여 단기 하방 방어 후보\",\n    \"nearest PRZ가 $60,760.47로 현재가 $60,754.60와 거의 동일하여 즉시 반응 구간에 진입\",\n    \"상방 TP2는 confirmed Gartley 기준 $61,031.92, 그 위 구조 유동성/TP3는 $61,550.00\"\n  ],\n  \"reasoning\": \"현재 유효한 council PRZ는 strict/high bullish Gartley이며, PRZ $59,997.31-$60,390.23에서 rejection/defense, AD0.382 도달, D 실패구간 방어가 확인되어 post-confirmation vote eligible 상태입니다. 다만 harmonic governance상 단독 구조 전환 엔진은 아니므로, confirmed BOS/CHoCH나 15m/1h MSS가 없는 현재 구조_bias는 neutral로 둡니다. 실행 관점에서는 현재가 $60,754.60이 active bullish Bat PRZ $60,467.81-$60,988.90 및 nearest PRZ $60,760.47 부근에 있어, $60,711.85 위 유지 시 $61,031.92-$61,150.58 재시험 가능성이 우세합니다. 반대로 $59,997.31 하단을 이탈하면 confirmed bullish Gartley의 PRZ 방어 논리가 훼손되어 $59,080.00 7일 저점 유동성 재탐색 위험이 커집니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60711.85,\n      60467.81,\n      60390.23,\n      60146.0,\n      59997.31,\n      59080.0\n    ],\n    \"resistance\": [\n      60988.9,\n      61031.92,\n      61150.58,\n      61208.43,\n      61550.0,\n      61985.1\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$59,997.31 하방 이탈 및 재수용 실패\",\n  \"risk_scenario\": \"가격이 $60,988.90-$61,150.58 상단을 회복하지 못하고 $60,467.81 아래로 밀리면 active bullish PRZ가 지지로 작동하지 못했다는 뜻이며, 이 경우 confirmed Gartley의 TP2 $61,031.92 시나리오는 약화되고 $60,390.23-$59,997.31 재방문 및 $59,080.00 저점 유동성 스윕 위험이 열립니다. 또한 $61,214.57-$61,509.95에는 forming bearish Gartley watch PRZ가 있어, 상방 도달 시 반락 리스크 구간으로 취급해야 합니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bearish",
      "confidence": 0.58,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.62,
      "setup_signals": [
        "현재가 $60,754.60이 스윙 EQ인 ret_0.5 $60,659.75 위에 있어 단기 프리미엄 구간에 위치",
        "가격이 ret_0.382 저항 $60,781.00 바로 아래에서 테스트 중이며 거리 0.04%로 즉각 반응 구간",
        "EMA20 $60,801.49가 ret_0.382 $60,781.00과 거의 겹쳐 단기 저항 confluence 형성",
        "상단 confluence zone $60,904.36에 ret_0.382/ret_0.236 클러스터가 있고 cluster_score 0.85로 매도 반응 가능성 존재",
        "하방에는 golden ratio ret_0.618 $60,538.50 및 confluence zone $60,521.38이 열려 있어 자연스러운 되돌림 목표로 작동"
      ],
      "reasoning": "확정 구조 관점에서는 $60,146 → $61,174 상승 스윙 이후 가격이 중간 되돌림 구간에서 움직이고 있어 명확한 BOS/CHoCH 확인 전까지 structure_bias는 neutral로 본다. 다만 실행 셋업 관점에서는 현재가 $60,754.60이 ret_0.382 $60,781.00 저항 바로 아래에 있고 EMA20 $60,801.49도 겹쳐 있어 단기 매도 압력이 우세하다. 특히 가격은 EQ인 ret_0.5 $60,659.75 위의 프리미엄 구간에 있으며, golden ratio ret_0.618 $60,538.50 및 confluence zone $60,521.38이 하방 자석처럼 작동할 수 있다. $60,781.00을 회복하지 못하면 우선 $60,659.75, 이후 $60,538.50까지의 되돌림 가능성이 높고, 반대로 $60,931.01 상향 수용 시 bearish setup은 약화된다.",
      "key_levels": {
        "support": [
          60659.75,
          60538.5,
          60365.89
        ],
        "resistance": [
          60781,
          60931.01,
          61173.5
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,931.01",
      "risk_scenario": "$60,781.00 ret_0.382를 강하게 회복하고 $60,931.01 ret_0.236 위로 수용되면 단기 매도 셋업은 실패로 전환되며, $61,173.50 스윙 고점 및 ext_1.272 $61,452.98까지 상승 확장 시나리오가 열릴 수 있다.",
      "data_quality": "high",
      "metrics": {
        "swing_pair": "Low→High: $60,146 → $61,174",
        "direction": "up",
        "nearest_fib": "ret_0.382",
        "nearest_fib_price": 60781.0,
        "nearest_fib_distance": 0.04,
        "golden_ratio_level": 60538.5,
        "fib_ret_382": 60781.0,
        "fib_ret_618": 60538.5,
        "confluence_zones": [
          {
            "price": 60521.38,
            "count": 3,
            "levels": [
              "ret_0.786",
              "ret_0.618",
              "ret_0.5"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 60904.36,
            "count": 3,
            "levels": [
              "ret_0.382",
              "ret_0.236",
              "ret_0.236"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 61313.24,
            "count": 2,
            "levels": [
              "ext_1.0",
              "ext_1.272"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 61703.69,
            "count": 2,
            "levels": [
              "ext_1.414",
              "ext_1.618"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 62195.28,
            "count": 2,
            "levels": [
              "ret_0.382",
              "ext_2.0"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          60659.75,
          60538.505,
          60365.885
        ],
        "resistance_levels": [
          60780.995,
          60931.01,
          61173.5
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 60931.01,
            "distance_pct": 0.29,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.382",
            "price": 60781.0,
            "distance_pct": 0.04,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.5",
            "price": 60659.75,
            "distance_pct": 0.16,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.618",
            "price": 60538.5,
            "distance_pct": 0.36,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.786",
            "price": 60365.89,
            "distance_pct": 0.64,
            "is_support": true,
            "cluster_score": 0.85
          },
          {
            "name": "ext_1.0",
            "price": 61173.5,
            "distance_pct": 0.69,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ext_1.272",
            "price": 61452.98,
            "distance_pct": 1.15,
            "is_support": false,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.414",
            "price": 61598.89,
            "distance_pct": 1.39,
            "is_support": false,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.618",
            "price": 61808.5,
            "distance_pct": 1.73,
            "is_support": false,
            "cluster_score": 0.6
          },
          {
            "name": "ext_2.0",
            "price": 62201.0,
            "distance_pct": 2.38,
            "is_support": false,
            "cluster_score": 0.6
          }
        ],
        "confluence_quality": 0.85,
        "fib_reaction_state": "testing",
        "reaction_probability": 0.65
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.62,\n  \"setup_signals\": [\n    \"현재가 $60,754.60이 스윙 EQ인 ret_0.5 $60,659.75 위에 있어 단기 프리미엄 구간에 위치\",\n    \"가격이 ret_0.382 저항 $60,781.00 바로 아래에서 테스트 중이며 거리 0.04%로 즉각 반응 구간\",\n    \"EMA20 $60,801.49가 ret_0.382 $60,781.00과 거의 겹쳐 단기 저항 confluence 형성\",\n    \"상단 confluence zone $60,904.36에 ret_0.382/ret_0.236 클러스터가 있고 cluster_score 0.85로 매도 반응 가능성 존재\",\n    \"하방에는 golden ratio ret_0.618 $60,538.50 및 confluence zone $60,521.38이 열려 있어 자연스러운 되돌림 목표로 작동\"\n  ],\n  \"reasoning\": \"확정 구조 관점에서는 $60,146 → $61,174 상승 스윙 이후 가격이 중간 되돌림 구간에서 움직이고 있어 명확한 BOS/CHoCH 확인 전까지 structure_bias는 neutral로 본다. 다만 실행 셋업 관점에서는 현재가 $60,754.60이 ret_0.382 $60,781.00 저항 바로 아래에 있고 EMA20 $60,801.49도 겹쳐 있어 단기 매도 압력이 우세하다. 특히 가격은 EQ인 ret_0.5 $60,659.75 위의 프리미엄 구간에 있으며, golden ratio ret_0.618 $60,538.50 및 confluence zone $60,521.38이 하방 자석처럼 작동할 수 있다. $60,781.00을 회복하지 못하면 우선 $60,659.75, 이후 $60,538.50까지의 되돌림 가능성이 높고, 반대로 $60,931.01 상향 수용 시 bearish setup은 약화된다.\",\n  \"key_levels\": {\n    \"support\": [\n      60659.75,\n      60538.5,\n      60365.89\n    ],\n    \"resistance\": [\n      60781,\n      60931.01,\n      61173.5\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,931.01\",\n  \"risk_scenario\": \"$60,781.00 ret_0.382를 강하게 회복하고 $60,931.01 ret_0.236 위로 수용되면 단기 매도 셋업은 실패로 전환되며, $61,173.50 스윙 고점 및 ext_1.272 $61,452.98까지 상승 확장 시나리오가 열릴 수 있다.\",\n  \"data_quality\": \"high\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "bearish",
      "confidence": 0.72,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.55,
      "setup_signals": [
        "현재가 $60,754.60가 메인 분배 박스 하단 AR $61,344.80 아래에 위치하여 재진입 실패 상태",
        "직전 LPSY/공급대 $61,550.00 및 UT $61,475.00 부근이 단기 되돌림 저항으로 작동할 가능성",
        "15m_cycle_1은 BC $65,829.40 → AR $61,344.80 → ST $64,480.00 → LPSY $63,231.80 → SOW $60,300.00 → Phase E $59,080.00로 확인된 분배 구조",
        "활성 구조 15m_cycle_2에서도 UT $61,475.00 이후 SOW $60,444.00 및 Phase E 후보 $60,146.00가 발생하여 재분배성 약세가 유지됨",
        "EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에서 가격이 머물며 $61,344.80~$61,550.00 회복 전까지 반등 신뢰도 제한"
      ],
      "reasoning": "Wyckoff 기준으로 메인 구조는 DIS이며, regime_fitness 0.850, dis_score 85.0으로 분배 판독이 우세합니다. 핵심 앵커는 BC $65,829.40와 AR $61,344.80이며, 이후 ST $64,480.00, LPSY $63,231.80, SOW $60,300.00, Phase E $59,080.00까지 진행되어 구조적 편향은 bearish입니다. 현재가 $60,754.60는 메인 레인지 하단 $61,344.80 아래에 있어 Phase E 이후의 약세 구조 안에 있지만, $60,146.00~$60,444.00 부근에서 단기 반등이 나왔기 때문에 즉시 하락 추종보다는 $61,344.80~$61,550.00 재거부 여부가 중요합니다. 단기 setup_bias도 bearish이나, 확정적 추가 SOW가 현재 캔들에서 재확인된 것은 아니므로 setup_score는 0.55로 중간 수준입니다.",
      "key_levels": {
        "support": [
          60444.0,
          60300.0,
          60146.0,
          59080.0
        ],
        "resistance": [
          61344.8,
          61475.0,
          61550.0,
          63231.8,
          64480.0,
          65829.4
        ]
      },
      "time_horizon": "short/medium term",
      "invalidation_level": "$61,550.00",
      "risk_scenario": "$61,550.00 위로 15분봉 종가 수용이 발생하면 직전 LPSY/UT 공급대가 무력화되어 $63,231.80 LPSY 재테스트까지 숏 커버성 반등이 열릴 수 있습니다. 특히 $63,231.80까지 회복하면 현재 Phase E 약세 지속 해석은 약화되고, 메인 분배 이후의 단순 재분배가 아니라 하단 재흡수/레인지 재진입 시나리오를 다시 평가해야 합니다.",
      "data_quality": "high",
      "metrics": {
        "acc_score": 83.1,
        "dis_score": 85.0,
        "regime": "DIS",
        "regime_state": "dis_candidate",
        "structure_bias": "bearish",
        "phase_context": "dis_candidate / distribution / Phase E",
        "phases_detected": [
          "BC",
          "AR",
          "ST",
          "SOW_IN_PHASE_B",
          "LPSY",
          "SOW",
          "LPSY",
          "Phase E"
        ],
        "last_phase": "Phase E",
        "phase_candidates": [
          {
            "label": "BC",
            "side": "high",
            "idx": 35,
            "price": 65829.4,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "low",
            "idx": 52,
            "price": 61344.8,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "high",
            "idx": 69,
            "price": 64480.0,
            "color": "#118ab2"
          },
          {
            "label": "SOW_IN_PHASE_B",
            "side": "low",
            "idx": 165,
            "price": 61067.6,
            "color": "#ef476f"
          },
          {
            "label": "LPSY",
            "side": "high",
            "idx": 177,
            "price": 63231.8,
            "color": "#8338ec"
          },
          {
            "label": "SOW",
            "side": "low",
            "idx": 197,
            "price": 60300.0,
            "color": "#ef476f"
          },
          {
            "label": "LPSY",
            "side": "high",
            "idx": 205,
            "price": 61550.0,
            "color": "#8338ec"
          },
          {
            "label": "Phase E",
            "side": "low",
            "idx": 217,
            "price": 59080.0,
            "color": "#7209b7"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "15m_cycle_1",
            "sequence": 1,
            "timeframe": "15m",
            "regime": "distribution",
            "role": "prior_completed_structure",
            "is_active": false,
            "is_completed": true,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 35,
            "end_idx": 217,
            "phase_count": 8,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 35,
                "price": 65829.4,
                "color": "#ffd166",
                "dt": "2026-06-04 06:45:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 52,
                "price": 61344.8,
                "color": "#06d6a0",
                "dt": "2026-06-04 11:00:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 69,
                "price": 64480.0,
                "color": "#118ab2",
                "dt": "2026-06-04 15:15:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 165,
                "price": 61067.6,
                "color": "#ef476f",
                "dt": "2026-06-05 15:15:00+09:00"
              },
              {
                "label": "LPSY",
                "side": "high",
                "idx": 177,
                "price": 63231.8,
                "color": "#8338ec",
                "dt": "2026-06-05 18:15:00+09:00"
              },
              {
                "label": "SOW",
                "side": "low",
                "idx": 197,
                "price": 60300.0,
                "color": "#ef476f",
                "dt": "2026-06-05 23:15:00+09:00"
              },
              {
                "label": "LPSY",
                "side": "high",
                "idx": 205,
                "price": 61550.0,
                "color": "#8338ec",
                "dt": "2026-06-06 01:15:00+09:00"
              },
              {
                "label": "Phase E",
                "side": "low",
                "idx": 217,
                "price": 59080.0,
                "color": "#7209b7",
                "dt": "2026-06-06 04:15:00+09:00"
              }
            ]
          },
          {
            "structure_id": "15m_cycle_2",
            "sequence": 2,
            "timeframe": "15m",
            "regime": "redistribution",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "redistribution",
            "start_idx": 234,
            "end_idx": 278,
            "phase_count": 7,
            "phases": [
              {
                "label": "SC",
                "side": "low",
                "idx": 234,
                "price": 60458.0,
                "color": "#ffd166",
                "dt": "2026-06-06 08:30:00+09:00"
              },
              {
                "label": "AR",
                "side": "high",
                "idx": 236,
                "price": 61429.3,
                "color": "#06d6a0",
                "dt": "2026-06-06 09:00:00+09:00"
              },
              {
                "label": "ST",
                "side": "low",
                "idx": 245,
                "price": 60642.4,
                "color": "#118ab2",
                "dt": "2026-06-06 11:15:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 254,
                "price": 59451.3,
                "color": "#ef476f",
                "dt": "2026-06-06 13:30:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 270,
                "price": 61475.0,
                "color": "#f9844a",
                "dt": "2026-06-06 17:30:00+09:00"
              },
              {
                "label": "SOW",
                "side": "low",
                "idx": 277,
                "price": 60444.0,
                "color": "#ef476f",
                "dt": "2026-06-06 19:15:00+09:00"
              },
              {
                "label": "Phase E",
                "side": "low",
                "idx": 278,
                "price": 60146.0,
                "color": "#7209b7",
                "dt": "2026-06-06 19:30:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "15m_cycle_2",
        "primary_structure_id": "15m_cycle_1",
        "structure_count": 2,
        "regime_fitness": 0.85,
        "current_event": "Phase E",
        "major_phase": "E",
        "pos_in_range": 0.5,
        "main_range_low": 61344.8,
        "main_range_high": 65829.4
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.72,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.55,\n  \"setup_signals\": [\n    \"현재가 $60,754.60가 메인 분배 박스 하단 AR $61,344.80 아래에 위치하여 재진입 실패 상태\",\n    \"직전 LPSY/공급대 $61,550.00 및 UT $61,475.00 부근이 단기 되돌림 저항으로 작동할 가능성\",\n    \"15m_cycle_1은 BC $65,829.40 → AR $61,344.80 → ST $64,480.00 → LPSY $63,231.80 → SOW $60,300.00 → Phase E $59,080.00로 확인된 분배 구조\",\n    \"활성 구조 15m_cycle_2에서도 UT $61,475.00 이후 SOW $60,444.00 및 Phase E 후보 $60,146.00가 발생하여 재분배성 약세가 유지됨\",\n    \"EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에서 가격이 머물며 $61,344.80~$61,550.00 회복 전까지 반등 신뢰도 제한\"\n  ],\n  \"reasoning\": \"Wyckoff 기준으로 메인 구조는 DIS이며, regime_fitness 0.850, dis_score 85.0으로 분배 판독이 우세합니다. 핵심 앵커는 BC $65,829.40와 AR $61,344.80이며, 이후 ST $64,480.00, LPSY $63,231.80, SOW $60,300.00, Phase E $59,080.00까지 진행되어 구조적 편향은 bearish입니다. 현재가 $60,754.60는 메인 레인지 하단 $61,344.80 아래에 있어 Phase E 이후의 약세 구조 안에 있지만, $60,146.00~$60,444.00 부근에서 단기 반등이 나왔기 때문에 즉시 하락 추종보다는 $61,344.80~$61,550.00 재거부 여부가 중요합니다. 단기 setup_bias도 bearish이나, 확정적 추가 SOW가 현재 캔들에서 재확인된 것은 아니므로 setup_score는 0.55로 중간 수준입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60444.0,\n      60300.0,\n      60146.0,\n      59080.0\n    ],\n    \"resistance\": [\n      61344.8,\n      61475.0,\n      61550.0,\n      63231.8,\n      64480.0,\n      65829.4\n    ]\n  },\n  \"time_horizon\": \"short/medium term\",\n  \"invalidation_level\": \"$61,550.00\",\n  \"risk_scenario\": \"$61,550.00 위로 15분봉 종가 수용이 발생하면 직전 LPSY/UT 공급대가 무력화되어 $63,231.80 LPSY 재테스트까지 숏 커버성 반등이 열릴 수 있습니다. 특히 $63,231.80까지 회복하면 현재 Phase E 약세 지속 해석은 약화되고, 메인 분배 이후의 단순 재분배가 아니라 하단 재흡수/레인지 재진입 시나리오를 다시 평가해야 합니다.\",\n  \"data_quality\": \"high\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.72,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.7,
      "active_setups": [
        "ICT: 현재가 $60,754.60가 단기 EQ $60,463.15 위 프리미엄 구간에 있으며, $63,040.00 → $62,300.00 → $61,067.60 3회 연속 하향 BOS 이후 반등 구간",
        "Fibonacci: 현재가가 ret_0.382 저항 $60,781.00 및 EMA20 $60,801.49 바로 아래에서 테스트 중이며, $60,659.75 위 프리미엄 구간",
        "Derivatives: 가격이 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 있고 CVD 변화가 -7,695.9220으로 반등 참여가 약함",
        "Wyckoff: 가격이 메인 분배 박스 하단 $61,344.80 아래에 있어 레인지 재진입 실패 상태이며, $61,344.80~$61,550.00이 구조적 공급대",
        "Candlestick/Harmonic 반대 신호: $59,997.31~$60,390.23 bullish Gartley PRZ 방어와 고거래량 bullish harami가 단기 반등 리스크로 존재"
      ],
      "setup_vs_structure": "실행 셋업은 구조적 bearish 판독과 대체로 정렬되어 있다. 다만 캔들 및 하모닉은 $60,000~$60,390 부근에서 방어 반응을 확인했기 때문에, 즉시 추격형 하락보다는 저항 재거부 여부를 확인해야 하는 구조다."
    },
    "signal_breakdown": {
      "bullish_count": 0,
      "bearish_count": 4,
      "neutral_count": 2
    },
    "key_levels": {
      "support": [
        60711.85,
        60659.75,
        60463.15,
        60353.4,
        60300.0,
        60146.0,
        59997.31,
        59080.0,
        58400.0,
        58300.0
      ],
      "resistance": [
        60781.0,
        60801.49,
        60900.0,
        61067.6,
        61244.35,
        61344.8,
        61475.0,
        61550.0,
        62000.0,
        62191.27,
        62300.0
      ]
    },
    "confluences": [
      "ICT, Derivatives, Candlestick 모두 현재가가 EMA20 $60,801.49 아래 또는 바로 밑에 있어 단기 구조 수용이 약하다고 본다.",
      "ICT의 마지막 하향 BOS 레벨 $61,067.60과 Wyckoff의 과거 약세 이벤트 구간 $61,067.60이 겹쳐, $61,067~$61,150 부근은 구조 회복 여부를 판단할 핵심 저항이다.",
      "Wyckoff는 메인 분배 박스 하단을 $61,344.80로 제시하고, Harmonic/Fibonacci도 $61,208.43~$61,313.24 및 $61,550.00을 상단 반응 구간으로 제시해 $61,200~$61,550 공급대 합의가 형성된다.",
      "ICT의 단기 EQ $60,463.15, Candlestick 지지 $60,475.23, Harmonic active bullish Bat PRZ 하단 $60,467.81이 거의 일치해 $60,460~$60,475가 즉각적인 단기 균형·방어선이다.",
      "ICT의 아시아 저점 $60,353.40, Fibonacci ret_0.786 $60,365.89, Harmonic confirmed Gartley PRZ 상단 $60,390.23이 근접해 $60,350~$60,390이 하단 구조 반응 구간으로 중첩된다.",
      "Wyckoff Phase E 저점 $59,080.00, Derivatives 주요 지지 $59,080, Candlestick 7일 저점 $59,080.00이 일치해 $59,080은 중기 하방 구조의 핵심 유동성 기준점이다.",
      "Derivatives와 ICT 모두 $62,000~$62,300 회복 시 bearish 구조 약화를 언급하며, 특히 EMA240 $62,191.27과 ICT BOS 레벨 $62,300.00이 구조 무효화 상단으로 겹친다."
    ],
    "conflicts": [
      "구조 판독은 ICT, Wyckoff, Derivatives, Candlestick 구조 기준에서 bearish이나, Candlestick은 strict bullish harami와 morning star 후보로 단기 반등 셋업을 제시한다.",
      "Harmonic은 $59,997.31~$60,390.23 bullish Gartley PRZ에서 확인된 반응을 근거로 bullish 셋업을 제시하지만, 자체적으로도 단독 구조 전환 신호가 아니며 BOS/CHoCH 확인이 없다고 제한한다.",
      "Fibonacci는 구조 자체를 neutral로 두지만, 실행 레벨에서는 $60,781.00 저항과 $60,801.49 EMA20이 겹쳐 bearish setup을 제시해 구조보다는 단기 반응 구간 해석에 가깝다.",
      "Derivatives는 롱 계정 쏠림과 CVD 약화를 bearish로 해석하지만, 가격이 7일 범위 할인 구간에 있어 반등 여지를 완전히 배제하지 않는다."
    ],
    "executive_summary": "BTC 15분 구조는 prior distribution 이후 현재 재분배 후보 구조 안에서 Phase E 저점 형성 후 약한 반등이 나온 상태로 진단된다. 핵심 구조 근거는 $63,040.00 → $62,300.00 → $61,067.60의 3회 연속 하향 BOS, 그리고 Wyckoff상 $61,344.80 메인 레인지 하단 아래 체류다. 현재가는 $60,754.60으로 단기 하모닉 PRZ와 캔들 반등 신호 위에 있지만, 아직 $61,067.60, $61,344.80, $61,550.00 공급대를 회복하지 못해 구조 전환으로 보기 어렵다. 단기 조건상 $60,350~$60,475는 방어 반응 구간이고, $61,200~$61,550은 재거부 여부를 봐야 하는 구조적 공급대다. bearish 구조 판독의 주요 무효화는 $62,191.27~$62,300.00 상향 수용이다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.72,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.70,\n    \"active_setups\": [\n      \"ICT: 현재가 $60,754.60가 단기 EQ $60,463.15 위 프리미엄 구간에 있으며, $63,040.00 → $62,300.00 → $61,067.60 3회 연속 하향 BOS 이후 반등 구간\",\n      \"Fibonacci: 현재가가 ret_0.382 저항 $60,781.00 및 EMA20 $60,801.49 바로 아래에서 테스트 중이며, $60,659.75 위 프리미엄 구간\",\n      \"Derivatives: 가격이 EMA20 $60,801.49, EMA120 $61,244.35, EMA240 $62,191.27 아래에 있고 CVD 변화가 -7,695.9220으로 반등 참여가 약함\",\n      \"Wyckoff: 가격이 메인 분배 박스 하단 $61,344.80 아래에 있어 레인지 재진입 실패 상태이며, $61,344.80~$61,550.00이 구조적 공급대\",\n      \"Candlestick/Harmonic 반대 신호: $59,997.31~$60,390.23 bullish Gartley PRZ 방어와 고거래량 bullish harami가 단기 반등 리스크로 존재\"\n    ],\n    \"setup_vs_structure\": \"실행 셋업은 구조적 bearish 판독과 대체로 정렬되어 있다. 다만 캔들 및 하모닉은 $60,000~$60,390 부근에서 방어 반응을 확인했기 때문에, 즉시 추격형 하락보다는 저항 재거부 여부를 확인해야 하는 구조다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 0,\n    \"bearish_count\": 4,\n    \"neutral_count\": 2\n  },\n  \"key_levels\": {\n    \"support\": [\n      60711.85,\n      60659.75,\n      60463.15,\n      60353.4,\n      60300.0,\n      60146.0,\n      59997.31,\n      59080.0,\n      58400.0,\n      58300.0\n    ],\n    \"resistance\": [\n      60781.0,\n      60801.49,\n      60900.0,\n      61067.6,\n      61244.35,\n      61344.8,\n      61475.0,\n      61550.0,\n      62000.0,\n      62191.27,\n      62300.0\n    ]\n  },\n  \"confluences\": [\n    \"ICT, Derivatives, Candlestick 모두 현재가가 EMA20 $60,801.49 아래 또는 바로 밑에 있어 단기 구조 수용이 약하다고 본다.\",\n    \"ICT의 마지막 하향 BOS 레벨 $61,067.60과 Wyckoff의 과거 약세 이벤트 구간 $61,067.60이 겹쳐, $61,067~$61,150 부근은 구조 회복 여부를 판단할 핵심 저항이다.\",\n    \"Wyckoff는 메인 분배 박스 하단을 $61,344.80로 제시하고, Harmonic/Fibonacci도 $61,208.43~$61,313.24 및 $61,550.00을 상단 반응 구간으로 제시해 $61,200~$61,550 공급대 합의가 형성된다.\",\n    \"ICT의 단기 EQ $60,463.15, Candlestick 지지 $60,475.23, Harmonic active bullish Bat PRZ 하단 $60,467.81이 거의 일치해 $60,460~$60,475가 즉각적인 단기 균형·방어선이다.\",\n    \"ICT의 아시아 저점 $60,353.40, Fibonacci ret_0.786 $60,365.89, Harmonic confirmed Gartley PRZ 상단 $60,390.23이 근접해 $60,350~$60,390이 하단 구조 반응 구간으로 중첩된다.\",\n    \"Wyckoff Phase E 저점 $59,080.00, Derivatives 주요 지지 $59,080, Candlestick 7일 저점 $59,080.00이 일치해 $59,080은 중기 하방 구조의 핵심 유동성 기준점이다.\",\n    \"Derivatives와 ICT 모두 $62,000~$62,300 회복 시 bearish 구조 약화를 언급하며, 특히 EMA240 $62,191.27과 ICT BOS 레벨 $62,300.00이 구조 무효화 상단으로 겹친다.\"\n  ],\n  \"conflicts\": [\n    \"구조 판독은 ICT, Wyckoff, Derivatives, Candlestick 구조 기준에서 bearish이나, Candlestick은 strict bullish harami와 morning star 후보로 단기 반등 셋업을 제시한다.\",\n    \"Harmonic은 $59,997.31~$60,390.23 bullish Gartley PRZ에서 확인된 반응을 근거로 bullish 셋업을 제시하지만, 자체적으로도 단독 구조 전환 신호가 아니며 BOS/CHoCH 확인이 없다고 제한한다.\",\n    \"Fibonacci는 구조 자체를 neutral로 두지만, 실행 레벨에서는 $60,781.00 저항과 $60,801.49 EMA20이 겹쳐 bearish setup을 제시해 구조보다는 단기 반응 구간 해석에 가깝다.\",\n    \"Derivatives는 롱 계정 쏠림과 CVD 약화를 bearish로 해석하지만, 가격이 7일 범위 할인 구간에 있어 반등 여지를 완전히 배제하지 않는다.\"\n  ],\n  \"highest_conviction_analyst\": \"ICT Trader: $63,040.00, $62,300.00, $61,067.60에서 3회 연속 하향 BOS가 확인되었고, 현재가 $60,754.60가 단기 EQ $60,463.15 위 프리미엄 반등 구간에 있다는 구조·위치 근거가 가장 명확하다. 이 판독은 Wyckoff의 분배/재분배 구조 및 Derivatives의 EMA 하방 수용과도 정렬된다.\",\n  \"invalidation_level\": \"$62,300.00 상향 수용. 보수적으로는 EMA240 $62,191.27 회복 후 ICT 하향 BOS 레벨 $62,300.00 위에서 유지될 경우 현재 bearish 구조 판독은 크게 훼손된다.\",\n  \"executive_summary\": \"BTC 15분 구조는 prior distribution 이후 현재 재분배 후보 구조 안에서 Phase E 저점 형성 후 약한 반등이 나온 상태로 진단된다. 핵심 구조 근거는 $63,040.00 → $62,300.00 → $61,067.60의 3회 연속 하향 BOS, 그리고 Wyckoff상 $61,344.80 메인 레인지 하단 아래 체류다. 현재가는 $60,754.60으로 단기 하모닉 PRZ와 캔들 반등 신호 위에 있지만, 아직 $61,067.60, $61,344.80, $61,550.00 공급대를 회복하지 못해 구조 전환으로 보기 어렵다. 단기 조건상 $60,350~$60,475는 방어 반응 구간이고, $61,200~$61,550은 재거부 여부를 봐야 하는 구조적 공급대다. bearish 구조 판독의 주요 무효화는 $62,191.27~$62,300.00 상향 수용이다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.72,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.65,
    "waypoints": [
      {
        "seq": 1,
        "price": 60904.36,
        "type": "resistance_test",
        "source": "Fibonacci (ret_0.382 $60,781.00 + EMA20 $60,801.49 + strict fib_confluence $60,904.36), Derivatives (EMA20 아래 수용 약함), Candlestick (EMA20 회복 시도)",
        "description": "현재가 $60,754.60가 ret_0.382 $60,781.00과 EMA20 $60,801.49 바로 아래에서 테스트 중. 약한 반등(strict bullish harami)이 최근접·고품질 strict fib confluence $60,904.36 공급대를 시험하는 구간으로, 셋업/구조가 모두 bearish이므로 여기서 재거부(re-rejection) 여부를 확인하는 1차 변곡점. 즉시 추격 매도가 아니라 이 공급대 거부를 확인하는 자리.",
        "est_hours": 3.0,
        "turning_zone": [
          60904.36,
          61016.0
        ],
        "likely_wick": 60940.0,
        "rejection_confirm": 60781.0,
        "invalid_overshoot": 61067.6,
        "calibration_reasoning": "3중 fib 컨플루언스 $60,904.36(ret_0.382/0.236)과 Chairman 저항 $60,900을 하단 앵커로 0.4×ATR(~$112) 상방 존을 잡고, 존 내 fib 저항 $60,931이 거부 지점입니다. 강세 Gartley TP는 경로와 방향이 반대라 변곡을 이동시키지 않으며, TP2 $61,032~Chairman $61,067 돌파를 무효화 기준으로 둡니다."
      },
      {
        "seq": 2,
        "price": 60463.15,
        "type": "support_test",
        "source": "ICT (단기 EQ $60,463.15), Fibonacci (strict fib_confluence $60,521.38 + golden ratio ret_0.618 $60,538.50), Candlestick (지지 $60,475.23)",
        "description": "$60,904 공급대 재거부 후 프리미엄→디스카운트 전환 구간. ICT EQ $60,463.15, strict fib confluence $60,521.38, golden ratio $60,538.50, 캔들 지지 $60,475.23가 $60,463~$60,538에 밀집해 하방 자석으로 작동. EQ를 잃으면 디스카운트 영역에서 하락 추종이 열림.",
        "est_hours": 8.0,
        "turning_zone": [
          60353.4,
          60463.15
        ],
        "likely_wick": 60365.89,
        "rejection_confirm": 60538.5,
        "invalid_overshoot": 60300.0,
        "calibration_reasoning": "ICT EQ $60,463.15 아래로 fib 지지 $60,365.89와 아시아 저점 유동성 $60,353.40을 포함해 0.39×ATR 존을 설정했고, 유동성 스윕 후 fib 지지 부근에서 반응할 확률이 높습니다. 골든비율 $60,538.50 회복 시 반등 확정, SOW $60,300 상실 시 WP3로 연장됩니다."
      },
      {
        "seq": 3,
        "price": 60146.0,
        "type": "support_test",
        "source": "Wyckoff (방어 구간 $60,146~$60,444, SOW $60,300.00), Harmonic (Gartley D $60,146.00), ICT (아시아 저점 $60,353.40)",
        "description": "EQ 이탈 후 방어 구간 $60,300.00(SOW)·$60,353.40(아시아 저점)·$60,390.23(Gartley PRZ 상단)을 차례로 하회하며 Gartley D $60,146.00 / Wyckoff 방어선 $60,146까지 하락. 이 구간은 앞서 반등이 나온 자리라 1차 반응이 예상되나, bearish 셋업 우위(롱 쏠림 1.000, CVD -7,695.92)에서 재시험 가능성이 큼.",
        "est_hours": 15.0,
        "turning_zone": [
          60033.0,
          60146.0
        ],
        "likely_wick": 60090.0,
        "rejection_confirm": 60300.0,
        "invalid_overshoot": 60000.0,
        "calibration_reasoning": "확정된 Gartley D/PRZ $60,146(CONFIRMED_REACTION)을 base로 $60,100 라운드 자석까지 0.4×ATR 존을 잡았습니다. 강세 harmonic은 단독으로 경로를 만들 수 없어 보조 근거로만 사용하며, SOW $60,300 회복 시 반등 확정, 심리적 $60,000 상실 시 WP4로 연장됩니다."
      },
      {
        "seq": 4,
        "price": 59997.31,
        "type": "swing_low",
        "source": "Harmonic (확정 bullish Gartley PRZ 하단 $59,997.31, reaction_score 1.0), Wyckoff (Phase E $59,080 접근 전 하단 방어)",
        "description": "강하게 방어된 확정 Gartley PRZ 하단 $59,997.31이 24시간 1차 저점/전환 후보. 구조적 bearish 편향상 디스카운트 유동성을 쓸어내는 swing_low로, PRZ 방어가 유지되면 여기서 반응. 이탈 시 $59,080.00 Phase E·7일 저점 유동성으로 하방 확장.",
        "est_hours": 21.0,
        "turning_zone": [
          59800.0,
          59997.31
        ],
        "likely_wick": 59900.0,
        "rejection_confirm": 60146.0,
        "invalid_overshoot": 59750.0,
        "calibration_reasoning": "강하게 방어된 Gartley PRZ 하단 $59,997.31(≈$60,000 라운드)을 base로, 터미널 변곡이라 0.7×ATR 광폭 존을 적용했습니다. 롱 쏠림(1.000)·음성 CVD로 $60,000 하단 유동성 스윕이 $59,900 라운드까지 확장될 수 있고, $60,146 회복 시 반전 확정, $59,750 하회 시 $59,080 Phase E 유동성으로 확장(무효화)됩니다."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 60904.36,
        "expected_low": 60538.5,
        "high_first": true
      },
      "8h": {
        "expected_high": 60904.36,
        "expected_low": 60463.15,
        "high_first": true
      },
      "24h": {
        "expected_high": 60904.36,
        "expected_low": 59997.31,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 61067.6,
        "description": "마지막 하향 BOS 레벨 $61,067.60(ICT BOS + Wyckoff 약세 이벤트 겹침) 회복·수용 시 3회 연속 lower-high 시퀀스가 붕괴되며 단기 약세 추종이 무력화. $61,244.35·$61,344.80 향한 숏 커버링 가속, 경로 약화."
      },
      "bearish": {
        "price": 59997.31,
        "description": "확정 Gartley PRZ 하단 $59,997.31 이탈·수용 시 강한 PRZ 방어 실패 확정. $59,080.00 Phase E·7일 저점 유동성 및 $58,400/$58,300 하방 청산 클러스터로 하락 가속(롱 쏠림 1.000, 약한 반등 CVD가 하방 동반)."
      }
    },
    "scenario_invalidation": 61550.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.65,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 60904.36,\n      \"type\": \"resistance_test\",\n      \"source\": \"Fibonacci (ret_0.382 $60,781.00 + EMA20 $60,801.49 + strict fib_confluence $60,904.36), Derivatives (EMA20 아래 수용 약함), Candlestick (EMA20 회복 시도)\",\n      \"description\": \"현재가 $60,754.60가 ret_0.382 $60,781.00과 EMA20 $60,801.49 바로 아래에서 테스트 중. 약한 반등(strict bullish harami)이 최근접·고품질 strict fib confluence $60,904.36 공급대를 시험하는 구간으로, 셋업/구조가 모두 bearish이므로 여기서 재거부(re-rejection) 여부를 확인하는 1차 변곡점. 즉시 추격 매도가 아니라 이 공급대 거부를 확인하는 자리.\",\n      \"est_hours\": 3.0\n    },\n    {\n      \"seq\": 2,\n      \"price\": 60463.15,\n      \"type\": \"support_test\",\n      \"source\": \"ICT (단기 EQ $60,463.15), Fibonacci (strict fib_confluence $60,521.38 + golden ratio ret_0.618 $60,538.50), Candlestick (지지 $60,475.23)\",\n      \"description\": \"$60,904 공급대 재거부 후 프리미엄→디스카운트 전환 구간. ICT EQ $60,463.15, strict fib confluence $60,521.38, golden ratio $60,538.50, 캔들 지지 $60,475.23가 $60,463~$60,538에 밀집해 하방 자석으로 작동. EQ를 잃으면 디스카운트 영역에서 하락 추종이 열림.\",\n      \"est_hours\": 8.0\n    },\n    {\n      \"seq\": 3,\n      \"price\": 60146.0,\n      \"type\": \"support_test\",\n      \"source\": \"Wyckoff (방어 구간 $60,146~$60,444, SOW $60,300.00), Harmonic (Gartley D $60,146.00), ICT (아시아 저점 $60,353.40)\",\n      \"description\": \"EQ 이탈 후 방어 구간 $60,300.00(SOW)·$60,353.40(아시아 저점)·$60,390.23(Gartley PRZ 상단)을 차례로 하회하며 Gartley D $60,146.00 / Wyckoff 방어선 $60,146까지 하락. 이 구간은 앞서 반등이 나온 자리라 1차 반응이 예상되나, bearish 셋업 우위(롱 쏠림 1.000, CVD -7,695.92)에서 재시험 가능성이 큼.\",\n      \"est_hours\": 15.0\n    },\n    {\n      \"seq\": 4,\n      \"price\": 59997.31,\n      \"type\": \"swing_low\",\n      \"source\": \"Harmonic (확정 bullish Gartley PRZ 하단 $59,997.31, reaction_score 1.0), Wyckoff (Phase E $59,080 접근 전 하단 방어)\",\n      \"description\": \"강하게 방어된 확정 Gartley PRZ 하단 $59,997.31이 24시간 1차 저점/전환 후보. 구조적 bearish 편향상 디스카운트 유동성을 쓸어내는 swing_low로, PRZ 방어가 유지되면 여기서 반응. 이탈 시 $59,080.00 Phase E·7일 저점 유동성으로 하방 확장.\",\n      \"est_hours\": 21.0\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 60904.36, \"expected_low\": 60538.5, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 60904.36, \"expected_low\": 60463.15, \"high_first\": true},\n    \"24h\": {\"expected_high\": 60904.36, \"expected_low\": 59997.31, \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 61067.6, \"description\": \"마지막 하향 BOS 레벨 $61,067.60(ICT BOS + Wyckoff 약세 이벤트 겹침) 회복·수용 시 3회 연속 lower-high 시퀀스가 붕괴되며 단기 약세 추종이 무력화. $61,244.35·$61,344.80 향한 숏 커버링 가속, 경로 약화.\"},\n    \"bearish\": {\"price\": 59997.31, \"description\": \"확정 Gartley PRZ 하단 $59,997.31 이탈·수용 시 강한 PRZ 방어 실패 확정. $59,080.00 Phase E·7일 저점 유동성 및 $58,400/$58,300 하방 청산 클러스터로 하락 가속(롱 쏠림 1.000, 약한 반등 CVD가 하방 동반).\"}\n  },\n  \"scenario_invalidation\": 61550.0\n}\n```"
  },
  "tp_calibration": {
    "executive_summary": "베어리시 복합 경로의 4개 변곡점을 fib 컨플루언스·Chairman 레벨·ATR($279.37)로 캘리브레이션했습니다. WP1 저항거부($60,904→$61,016), WP2 EQ 지지+아시아 저점 유동성 스윕($60,353→$60,463), WP3 확정 Gartley D 재시험($60,033→$60,146), WP4 터미널 스윙로우($59,800→$59,997, ≈$60,000 라운드 하단 스윕)로 존을 설정했습니다. Harmonic TP 사다리는 강세(상방) 방향으로 베어리시 경로와 반대이므로 변곡점을 이동시키는 데 사용하지 않고, 상단 저항/무효화 컨텍스트로만 반영했습니다.",
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 60904.36,
        "turning_zone": [
          60904.36,
          61016.0
        ],
        "likely_wick": 60940.0,
        "rejection_confirm": 60781.0,
        "invalid_overshoot": 61067.6,
        "calibration_reasoning": "3중 fib 컨플루언스 $60,904.36(ret_0.382/0.236)과 Chairman 저항 $60,900을 하단 앵커로 0.4×ATR(~$112) 상방 존을 잡고, 존 내 fib 저항 $60,931이 거부 지점입니다. 강세 Gartley TP는 경로와 방향이 반대라 변곡을 이동시키지 않으며, TP2 $61,032~Chairman $61,067 돌파를 무효화 기준으로 둡니다."
      },
      {
        "seq": 2,
        "base_target": 60463.15,
        "turning_zone": [
          60353.4,
          60463.15
        ],
        "likely_wick": 60365.89,
        "rejection_confirm": 60538.5,
        "invalid_overshoot": 60300.0,
        "calibration_reasoning": "ICT EQ $60,463.15 아래로 fib 지지 $60,365.89와 아시아 저점 유동성 $60,353.40을 포함해 0.39×ATR 존을 설정했고, 유동성 스윕 후 fib 지지 부근에서 반응할 확률이 높습니다. 골든비율 $60,538.50 회복 시 반등 확정, SOW $60,300 상실 시 WP3로 연장됩니다."
      },
      {
        "seq": 3,
        "base_target": 60146.0,
        "turning_zone": [
          60033.0,
          60146.0
        ],
        "likely_wick": 60090.0,
        "rejection_confirm": 60300.0,
        "invalid_overshoot": 60000.0,
        "calibration_reasoning": "확정된 Gartley D/PRZ $60,146(CONFIRMED_REACTION)을 base로 $60,100 라운드 자석까지 0.4×ATR 존을 잡았습니다. 강세 harmonic은 단독으로 경로를 만들 수 없어 보조 근거로만 사용하며, SOW $60,300 회복 시 반등 확정, 심리적 $60,000 상실 시 WP4로 연장됩니다."
      },
      {
        "seq": 4,
        "base_target": 59997.31,
        "turning_zone": [
          59800.0,
          59997.31
        ],
        "likely_wick": 59900.0,
        "rejection_confirm": 60146.0,
        "invalid_overshoot": 59750.0,
        "calibration_reasoning": "강하게 방어된 Gartley PRZ 하단 $59,997.31(≈$60,000 라운드)을 base로, 터미널 변곡이라 0.7×ATR 광폭 존을 적용했습니다. 롱 쏠림(1.000)·음성 CVD로 $60,000 하단 유동성 스윕이 $59,900 라운드까지 확장될 수 있고, $60,146 회복 시 반전 확정, $59,750 하회 시 $59,080 Phase E 유동성으로 확장(무효화)됩니다."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"executive_summary\": \"베어리시 복합 경로의 4개 변곡점을 fib 컨플루언스·Chairman 레벨·ATR($279.37)로 캘리브레이션했습니다. WP1 저항거부($60,904→$61,016), WP2 EQ 지지+아시아 저점 유동성 스윕($60,353→$60,463), WP3 확정 Gartley D 재시험($60,033→$60,146), WP4 터미널 스윙로우($59,800→$59,997, ≈$60,000 라운드 하단 스윕)로 존을 설정했습니다. Harmonic TP 사다리는 강세(상방) 방향으로 베어리시 경로와 반대이므로 변곡점을 이동시키는 데 사용하지 않고, 상단 저항/무효화 컨텍스트로만 반영했습니다.\",\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 60904.36,\n      \"turning_zone\": [60904.36, 61016.00],\n      \"likely_wick\": 60940.00,\n      \"rejection_confirm\": 60781.00,\n      \"invalid_overshoot\": 61067.60,\n      \"calibration_reasoning\": \"3중 fib 컨플루언스 $60,904.36(ret_0.382/0.236)과 Chairman 저항 $60,900을 하단 앵커로 0.4×ATR(~$112) 상방 존을 잡고, 존 내 fib 저항 $60,931이 거부 지점입니다. 강세 Gartley TP는 경로와 방향이 반대라 변곡을 이동시키지 않으며, TP2 $61,032~Chairman $61,067 돌파를 무효화 기준으로 둡니다.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 60463.15,\n      \"turning_zone\": [60353.40, 60463.15],\n      \"likely_wick\": 60365.89,\n      \"rejection_confirm\": 60538.50,\n      \"invalid_overshoot\": 60300.00,\n      \"calibration_reasoning\": \"ICT EQ $60,463.15 아래로 fib 지지 $60,365.89와 아시아 저점 유동성 $60,353.40을 포함해 0.39×ATR 존을 설정했고, 유동성 스윕 후 fib 지지 부근에서 반응할 확률이 높습니다. 골든비율 $60,538.50 회복 시 반등 확정, SOW $60,300 상실 시 WP3로 연장됩니다.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 60146.00,\n      \"turning_zone\": [60033.00, 60146.00],\n      \"likely_wick\": 60090.00,\n      \"rejection_confirm\": 60300.00,\n      \"invalid_overshoot\": 60000.00,\n      \"calibration_reasoning\": \"확정된 Gartley D/PRZ $60,146(CONFIRMED_REACTION)을 base로 $60,100 라운드 자석까지 0.4×ATR 존을 잡았습니다. 강세 harmonic은 단독으로 경로를 만들 수 없어 보조 근거로만 사용하며, SOW $60,300 회복 시 반등 확정, 심리적 $60,000 상실 시 WP4로 연장됩니다.\"\n    },\n    {\n      \"seq\": 4,\n      \"base_target\": 59997.31,\n      \"turning_zone\": [59800.00, 59997.31],\n      \"likely_wick\": 59900.00,\n      \"rejection_confirm\": 60146.00,\n      \"invalid_overshoot\": 59750.00,\n      \"calibration_reasoning\": \"강하게 방어된 Gartley PRZ 하단 $59,997.31(≈$60,000 라운드)을 base로, 터미널 변곡이라 0.7×ATR 광폭 존을 적용했습니다. 롱 쏠림(1.000)·음성 CVD로 $60,000 하단 유동성 스윕이 $59,900 라운드까지 확장될 수 있고, $60,146 회복 시 반전 확정, $59,750 하회 시 $59,080 Phase E 유동성으로 확장(무효화)됩니다.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 38.8,
      "chairman": 41.7,
      "operating_path": 288.3,
      "tp_calibrator": 314.2
    },
    "agents": {},
    "total_s": 683.0
  }
}