{
  "symbol": "BTC/USDT",
  "timeframe": "1d",
  "timestamp": "2026-05-27 17:00 KST",
  "last_price": 75928.0,
  "num_candles": 300,
  "stage1_analyses": {
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bearish",
      "confidence": 0.55,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.52,
      "setup_signals": [
        "현재가 $75,928.00는 EQ/0.5 되돌림 $78,848.35 아래의 할인 구간에 위치",
        "상승 스윙 $74,868 → $82,829 기준 0.786 되돌림 $76,571.59를 하회하여 과매도성 딥 리트레이스먼트 구간 진입",
        "스윙 저점 $74,868 근처가 최종 방어 구간이며, 이탈 전까지는 스프링 후보 가능성 존재",
        "0.618 황금비 $77,908.99가 미회복 상태로 남아 있어 반등은 아직 구조 전환이 아닌 선행 셋업 단계"
      ],
      "reasoning": "현재 BTC/USDT는 상승 스윙 $74,868 → $82,829의 핵심 되돌림 구간을 대부분 훼손했으며, 특히 0.786 레벨 $76,571.59 아래에서 거래되어 구조적으로는 약세 압력이 우세합니다. 0.618 황금비 $77,908.99와 0.5 레벨 $78,848.35가 모두 상단 저항으로 전환되어 있으며, 현재가는 EMA20 $77,482.96 및 EMA120 $77,609.47 아래에 있어 회복 확인이 부족합니다. 다만 가격이 EQ $78,848.35 아래의 할인 구간에 있고 스윙 저점 $74,868에 가까워지고 있어, 저점 유동성 흡수 후 단기 반등을 노리는 bullish setup은 존재합니다. 상단으로는 $76,571.59 회복이 1차 조건이고, $77,908.99 황금비 재진입 전까지는 반등보다 매도 우위 구조로 해석합니다.",
      "key_levels": {
        "support": [
          74868.0
        ],
        "resistance": [
          76571.59,
          77908.99,
          78848.35,
          79787.71,
          85081.03
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$77,908.99",
      "risk_scenario": "가격이 $76,571.59를 회복한 뒤 0.618 황금비 $77,908.99 위에서 안착하면 현재의 약세 구조 해석은 약화되며, $78,848.35와 $79,787.71까지 숏커버링성 반등이 이어질 수 있습니다. 반대로 $74,868 스윙 저점이 종가 기준으로 이탈되면 상승 스윙 전체가 무효화되며 추가 하락 압력이 확대됩니다.",
      "data_quality": "medium",
      "metrics": {
        "swing_pair": "Low→High: $74,868 → $82,829",
        "direction": "up",
        "nearest_fib": "ret_0.786",
        "nearest_fib_price": 76571.59,
        "nearest_fib_distance": 0.85,
        "golden_ratio_level": 77908.99,
        "fib_ret_382": 79787.71,
        "fib_ret_618": 77908.99,
        "confluence_zones": [
          {
            "price": 85081.03,
            "count": 2,
            "levels": [
              "ext_1.272",
              "ret_0.382"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [],
        "resistance_levels": [
          76571.5898,
          77908.9874,
          78848.35
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 80949.97,
            "distance_pct": 6.61,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.382",
            "price": 79787.71,
            "distance_pct": 5.08,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.5",
            "price": 78848.35,
            "distance_pct": 3.85,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.618",
            "price": 77908.99,
            "distance_pct": 2.61,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.786",
            "price": 76571.59,
            "distance_pct": 0.85,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.0",
            "price": 82828.7,
            "distance_pct": 9.09,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.272",
            "price": 84994.01,
            "distance_pct": 11.94,
            "is_support": false,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.414",
            "price": 86124.43,
            "distance_pct": 13.43,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.618",
            "price": 87748.41,
            "distance_pct": 15.57,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_2.0",
            "price": 90789.4,
            "distance_pct": 19.57,
            "is_support": false,
            "cluster_score": 0.0
          }
        ],
        "confluence_quality": 0.6,
        "fib_reaction_state": "approaching",
        "reaction_probability": 0.45
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.55,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.52,\n  \"setup_signals\": [\n    \"현재가 $75,928.00는 EQ/0.5 되돌림 $78,848.35 아래의 할인 구간에 위치\",\n    \"상승 스윙 $74,868 → $82,829 기준 0.786 되돌림 $76,571.59를 하회하여 과매도성 딥 리트레이스먼트 구간 진입\",\n    \"스윙 저점 $74,868 근처가 최종 방어 구간이며, 이탈 전까지는 스프링 후보 가능성 존재\",\n    \"0.618 황금비 $77,908.99가 미회복 상태로 남아 있어 반등은 아직 구조 전환이 아닌 선행 셋업 단계\"\n  ],\n  \"reasoning\": \"현재 BTC/USDT는 상승 스윙 $74,868 → $82,829의 핵심 되돌림 구간을 대부분 훼손했으며, 특히 0.786 레벨 $76,571.59 아래에서 거래되어 구조적으로는 약세 압력이 우세합니다. 0.618 황금비 $77,908.99와 0.5 레벨 $78,848.35가 모두 상단 저항으로 전환되어 있으며, 현재가는 EMA20 $77,482.96 및 EMA120 $77,609.47 아래에 있어 회복 확인이 부족합니다. 다만 가격이 EQ $78,848.35 아래의 할인 구간에 있고 스윙 저점 $74,868에 가까워지고 있어, 저점 유동성 흡수 후 단기 반등을 노리는 bullish setup은 존재합니다. 상단으로는 $76,571.59 회복이 1차 조건이고, $77,908.99 황금비 재진입 전까지는 반등보다 매도 우위 구조로 해석합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      74868.0\n    ],\n    \"resistance\": [\n      76571.59,\n      77908.99,\n      78848.35,\n      79787.71,\n      85081.03\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$77,908.99\",\n  \"risk_scenario\": \"가격이 $76,571.59를 회복한 뒤 0.618 황금비 $77,908.99 위에서 안착하면 현재의 약세 구조 해석은 약화되며, $78,848.35와 $79,787.71까지 숏커버링성 반등이 이어질 수 있습니다. 반대로 $74,868 스윙 저점이 종가 기준으로 이탈되면 상승 스윙 전체가 무효화되며 추가 하락 압력이 확대됩니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "neutral",
      "confidence": 0.62,
      "structure_bias": "bullish",
      "setup_bias": "bearish",
      "setup_score": 0.55,
      "setup_signals": [
        "현재가 $75,928가 SC 앵커 $80,600 아래에 있어 Phase D SOS 이후 상단 수용이 아직 확인되지 않음",
        "SOS 고점 $82,828.7 이후 재차 하락하여 SOS 유지 실패 성격이 나타남",
        "가격이 TERMINAL_SPRING $74,868 근처에 위치해 단기적으로 스프링 테스트/재시험 구간에 진입",
        "주요 박스 EQ 약 $86,840 및 AR $93,080보다 크게 아래에 있어 구조는 ACC이나 즉시 경로는 상방 돌파보다 하단 테스트 우위"
      ],
      "reasoning": "1일 구조는 regime=ACC, regime_state=confirmed_acc, acc_score 92.5로 확인된 축적 구조이며, 이벤트 체인은 SC $80,600 → AR $93,080 → ST $84,408.6 → Spring $65,595.7 → TERMINAL_SPRING $74,868 → SOS $82,828.7로 Phase D에 해당합니다. 다만 현재가 $75,928는 SOS $82,828.7과 SC $80,600을 모두 재하회하고 있어, Phase D가 곧바로 상승 수용으로 확정됐다고 보기는 어렵고 TERMINAL_SPRING $74,868 재시험 가능성이 우선입니다. 구조적 편향은 bullish이지만, 실행 관점의 setup_bias는 SOS 이후 수용 실패와 하단 재시험 압력 때문에 bearish로 분리합니다. $80,600 회복 후 $82,828.7 위에서 수용이 확인되어야 Phase D의 SOS → LPS 전개 신뢰도가 높아집니다.",
      "key_levels": {
        "support": [
          74868.0,
          65595.7
        ],
        "resistance": [
          80600.0,
          82828.7,
          86840.0,
          93080.0
        ]
      },
      "time_horizon": "medium term",
      "invalidation_level": "$65,595.70 하향 이탈",
      "risk_scenario": "반대 시나리오는 $80,600을 빠르게 회복하고 SOS 고점 $82,828.7 위에서 종가 수용이 나오는 경우입니다. 이 경우 현재의 단기 bearish setup은 무효화되고, TERMINAL_SPRING 이후 LPS 형성 가능성이 커집니다. 반대로 $74,868을 명확히 이탈하면 $65,595.7 Spring 저점 재시험으로 축적 구조의 신뢰도가 크게 약화됩니다.",
      "data_quality": "high",
      "metrics": {
        "acc_score": 92.5,
        "dis_score": 81.2,
        "regime": "ACC",
        "regime_state": "confirmed_acc",
        "structure_bias": "bullish",
        "phase_context": "confirmed_acc / accumulation / Phase D",
        "phases_detected": [
          "SC",
          "AR",
          "ST",
          "Spring",
          "TERMINAL_SPRING",
          "SOS"
        ],
        "last_phase": "SOS",
        "phase_candidates": [
          {
            "label": "SC",
            "side": "low",
            "idx": 112,
            "price": 80600.0,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "high",
            "idx": 119,
            "price": 93080.0,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "low",
            "idx": 139,
            "price": 84408.6,
            "color": "#118ab2"
          },
          {
            "label": "Spring",
            "side": "low",
            "idx": 202,
            "price": 65595.7,
            "color": "#f9844a"
          },
          {
            "label": "TERMINAL_SPRING",
            "side": "low",
            "idx": 271,
            "price": 74868.0,
            "color": "#f3722c"
          },
          {
            "label": "SOS",
            "side": "high",
            "idx": 278,
            "price": 82828.7,
            "color": "#06d6a0"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "1d_cycle_1",
            "sequence": 1,
            "timeframe": "1d",
            "regime": "accumulation",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bullish",
            "phase_context": "accumulation",
            "start_idx": 112,
            "end_idx": 278,
            "phase_count": 6,
            "phases": [
              {
                "label": "SC",
                "side": "low",
                "idx": 112,
                "price": 80600.0,
                "color": "#ffd166",
                "dt": "2025-11-21 09:00:00+09:00"
              },
              {
                "label": "AR",
                "side": "high",
                "idx": 119,
                "price": 93080.0,
                "color": "#06d6a0",
                "dt": "2025-11-28 09:00:00+09:00"
              },
              {
                "label": "ST",
                "side": "low",
                "idx": 139,
                "price": 84408.6,
                "color": "#118ab2",
                "dt": "2025-12-18 09:00:00+09:00"
              },
              {
                "label": "Spring",
                "side": "low",
                "idx": 202,
                "price": 65595.7,
                "color": "#f9844a",
                "dt": "2026-02-19 09:00:00+09:00"
              },
              {
                "label": "TERMINAL_SPRING",
                "side": "low",
                "idx": 271,
                "price": 74868.0,
                "color": "#f3722c",
                "dt": "2026-04-29 09:00:00+09:00"
              },
              {
                "label": "SOS",
                "side": "high",
                "idx": 278,
                "price": 82828.7,
                "color": "#06d6a0",
                "dt": "2026-05-06 09:00:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "1d_cycle_1",
        "primary_structure_id": "1d_cycle_1",
        "structure_count": 1,
        "regime_fitness": 0.9249999999999999,
        "current_event": "SOS",
        "major_phase": "D",
        "pos_in_range": 0.5,
        "main_range_low": 80600.0,
        "main_range_high": 93080.0
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"bullish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.55,\n  \"setup_signals\": [\n    \"현재가 $75,928가 SC 앵커 $80,600 아래에 있어 Phase D SOS 이후 상단 수용이 아직 확인되지 않음\",\n    \"SOS 고점 $82,828.7 이후 재차 하락하여 SOS 유지 실패 성격이 나타남\",\n    \"가격이 TERMINAL_SPRING $74,868 근처에 위치해 단기적으로 스프링 테스트/재시험 구간에 진입\",\n    \"주요 박스 EQ 약 $86,840 및 AR $93,080보다 크게 아래에 있어 구조는 ACC이나 즉시 경로는 상방 돌파보다 하단 테스트 우위\"\n  ],\n  \"reasoning\": \"1일 구조는 regime=ACC, regime_state=confirmed_acc, acc_score 92.5로 확인된 축적 구조이며, 이벤트 체인은 SC $80,600 → AR $93,080 → ST $84,408.6 → Spring $65,595.7 → TERMINAL_SPRING $74,868 → SOS $82,828.7로 Phase D에 해당합니다. 다만 현재가 $75,928는 SOS $82,828.7과 SC $80,600을 모두 재하회하고 있어, Phase D가 곧바로 상승 수용으로 확정됐다고 보기는 어렵고 TERMINAL_SPRING $74,868 재시험 가능성이 우선입니다. 구조적 편향은 bullish이지만, 실행 관점의 setup_bias는 SOS 이후 수용 실패와 하단 재시험 압력 때문에 bearish로 분리합니다. $80,600 회복 후 $82,828.7 위에서 수용이 확인되어야 Phase D의 SOS → LPS 전개 신뢰도가 높아집니다.\",\n  \"key_levels\": {\n    \"support\": [\n      74868.0,\n      65595.7\n    ],\n    \"resistance\": [\n      80600.0,\n      82828.7,\n      86840.0,\n      93080.0\n    ]\n  },\n  \"time_horizon\": \"medium term\",\n  \"invalidation_level\": \"$65,595.70 하향 이탈\",\n  \"risk_scenario\": \"반대 시나리오는 $80,600을 빠르게 회복하고 SOS 고점 $82,828.7 위에서 종가 수용이 나오는 경우입니다. 이 경우 현재의 단기 bearish setup은 무효화되고, TERMINAL_SPRING 이후 LPS 형성 가능성이 커집니다. 반대로 $74,868을 명확히 이탈하면 $65,595.7 Spring 저점 재시험으로 축적 구조의 신뢰도가 크게 약화됩니다.\",\n  \"data_quality\": \"high\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "bullish",
      "confidence": 0.42,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.55,
      "setup_signals": [
        "활성 고품질 strict bullish Gartley PRZ 진입/근접: $74,594.52-$75,813.87, 현재가 $75,928로 PRZ 상단 바로 위",
        "PRZ 3중 피보나치 합류: ABCD + BC_EXT + XAD, prz_score 1.000, pattern_score 0.906",
        "예상 D 가격 $75,204.19 부근에서 반등 후보 형성 중이나 confirmed_reaction=false로 아직 구조 전환 신호는 아님",
        "Bullish Gartley TP ladder: TP1 $76,828.00, TP2 $77,831.19, TP3/A 구조 유동성 $79,455.00",
        "현재가가 EMA20 $77,482.96 및 EMA120 $77,609.47 아래에 있어 $77.5k-$77.8k 구간은 반등 시 1차 저항/검증 구간"
      ],
      "reasoning": "가장 중요한 패턴은 strict/high 품질의 forming bullish Gartley이며, PRZ는 $74,594.52-$75,813.87로 현재가 $75,928가 상단을 거의 재탈환한 위치입니다. 이 PRZ는 ABCD, BC extension, XAD가 모두 겹친 3중 합류 구간이고 pattern_score 0.906, prz_score 1.000으로 품질은 높지만, confirmed_reaction=false이므로 아직 단독으로 메인 구조를 bullish로 뒤집을 수 없습니다. 구조적으로는 명확한 BOS/CHoCH 또는 수용 확인 데이터가 없고 가격도 EMA20 $77,482.96, EMA120 $77,609.47, EMA240 $84,218.10 아래에 있어 structure_bias는 neutral로 둡니다. 다만 실행 셋업 관점에서는 $75,204 D 및 $74,594-$75,814 PRZ 방어가 유지될 경우 $76,828, $77,831, $79,455로 향하는 반등 후보가 유효합니다.",
      "key_levels": {
        "support": [
          75813.87,
          75204.19,
          74594.52,
          74203.6,
          73669.0
        ],
        "resistance": [
          76014.2,
          76828.0,
          77482.96,
          77831.19,
          78180.0,
          79455.0
        ]
      },
      "time_horizon": "medium term",
      "invalidation_level": "74594.52",
      "risk_scenario": "$74,594.52 아래로 일봉 종가 수용이 나오면 active bullish Gartley PRZ 방어 실패로 해석되며, $74,203.60 저점 및 X 가격 $73,669.00 재시험 위험이 커집니다. 반대로 $76,828 돌파 후 $77,831-$78,180을 회복하면 PRZ 반응 확인 가능성이 높아지고, $79,455 A-leg 유동성까지 반등 확장이 열립니다.",
      "data_quality": "medium",
      "metrics": {
        "patterns_found": 260,
        "completed_patterns_found": 97,
        "forming_d_prz_found": 163,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 30,
        "multiscale_swings_scanned": 58,
        "swing_highs_scanned": 29,
        "swing_lows_scanned": 29,
        "timeframe": "1d",
        "prz_active_threshold_pct": 1.0,
        "prz_nearby_threshold_pct": 2.0,
        "prz_watch_threshold_pct": 4.0,
        "prz_max_width_pct": 1.8,
        "quality_counts": {
          "high": 3,
          "medium": 72,
          "low": 185
        },
        "prz_status_counts": {
          "active": 46,
          "nearby": 15,
          "watch": 40,
          "far": 159,
          "forming": 108
        },
        "high_confluence_prz_count": 19,
        "strict_patterns_found": 65,
        "candidate_patterns_found": 195,
        "active_patterns_at_prz": 46,
        "nearby_patterns": 15,
        "all_patterns": [
          "gartley",
          "butterfly",
          "gartley",
          "shark",
          "shark",
          "crab",
          "bat",
          "shark",
          "butterfly",
          "butterfly",
          "gartley",
          "butterfly",
          "bat",
          "butterfly",
          "bat",
          "bat",
          "bat",
          "crab",
          "bat",
          "bat",
          "bat",
          "crab",
          "bat",
          "bat",
          "bat",
          "bat",
          "butterfly",
          "crab",
          "crab",
          "crab",
          "crab",
          "shark",
          "bat",
          "crab",
          "crab",
          "crab",
          "butterfly",
          "crab",
          "shark",
          "gartley",
          "gartley",
          "gartley",
          "bat",
          "crab",
          "butterfly",
          "gartley",
          "shark",
          "butterfly",
          "butterfly",
          "bat",
          "crab",
          "bat",
          "butterfly",
          "crab",
          "butterfly",
          "bat",
          "shark",
          "crab",
          "gartley",
          "shark",
          "bat",
          "butterfly",
          "crab",
          "gartley",
          "shark",
          "crab",
          "shark",
          "butterfly",
          "bat",
          "bat",
          "crab",
          "bat",
          "butterfly",
          "shark",
          "butterfly",
          "gartley",
          "crab",
          "shark",
          "bat",
          "shark",
          "butterfly",
          "crab",
          "butterfly",
          "shark",
          "crab",
          "butterfly",
          "crab",
          "shark",
          "shark",
          "crab",
          "crab",
          "gartley",
          "bat",
          "shark",
          "shark",
          "shark",
          "butterfly",
          "shark",
          "shark",
          "bat",
          "butterfly",
          "crab",
          "bat",
          "crab",
          "gartley",
          "shark",
          "bat",
          "shark",
          "bat",
          "crab",
          "crab",
          "crab",
          "crab",
          "bat",
          "gartley",
          "shark",
          "shark",
          "shark",
          "bat",
          "butterfly",
          "bat",
          "bat",
          "crab",
          "gartley",
          "crab",
          "shark",
          "butterfly",
          "crab",
          "crab",
          "bat",
          "butterfly",
          "crab",
          "crab",
          "bat",
          "bat",
          "bat",
          "butterfly",
          "shark",
          "crab",
          "crab",
          "bat",
          "bat",
          "crab",
          "crab",
          "crab",
          "gartley",
          "bat",
          "shark",
          "butterfly",
          "bat",
          "butterfly",
          "bat",
          "bat",
          "bat",
          "butterfly",
          "crab",
          "shark",
          "crab",
          "crab",
          "gartley",
          "gartley",
          "shark",
          "crab",
          "gartley",
          "crab",
          "bat",
          "crab",
          "bat",
          "crab",
          "shark",
          "butterfly",
          "bat",
          "bat",
          "shark",
          "shark",
          "bat",
          "bat",
          "crab",
          "gartley",
          "shark",
          "butterfly",
          "butterfly",
          "bat",
          "crab",
          "shark",
          "bat",
          "butterfly",
          "bat",
          "bat",
          "crab",
          "butterfly",
          "crab",
          "bat",
          "butterfly",
          "gartley",
          "bat",
          "butterfly",
          "butterfly",
          "crab",
          "bat",
          "butterfly",
          "gartley",
          "shark",
          "crab",
          "shark",
          "bat",
          "crab",
          "crab",
          "shark",
          "gartley",
          "shark",
          "bat",
          "shark",
          "butterfly",
          "crab",
          "crab",
          "bat",
          "bat",
          "butterfly",
          "gartley",
          "shark",
          "butterfly",
          "butterfly",
          "bat",
          "shark",
          "butterfly",
          "crab",
          "crab",
          "gartley",
          "butterfly",
          "shark",
          "butterfly",
          "bat",
          "shark",
          "crab",
          "crab",
          "shark",
          "gartley",
          "shark",
          "bat",
          "crab",
          "bat",
          "bat",
          "crab",
          "butterfly",
          "crab",
          "gartley",
          "butterfly",
          "shark",
          "shark",
          "crab",
          "butterfly",
          "shark",
          "shark",
          "butterfly",
          "bat",
          "shark",
          "crab",
          "crab",
          "shark"
        ],
        "all_signals": [
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish"
        ],
        "best_pattern": "gartley",
        "best_pattern_quality": "strict",
        "best_quality": "high",
        "best_pattern_score": 0.906,
        "best_completion_status": "forming",
        "nearest_pattern": "crab",
        "nearest_prz": 75985.2,
        "price_to_prz": 0.08,
        "prz_range": [
          75903.14,
          76067.26
        ],
        "council_relevant_prz_count": 1,
        "directional_influence_prz_count": 1,
        "confirmed_reaction_prz_count": 0,
        "validated_harmonic_tp_count": 0,
        "pattern_candidates": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.906,
            "ratio_score": 0.862,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 75204.19,
            "prz_range": [
              74594.52,
              75813.87
            ],
            "prz_width_pct": 1.621,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.95,
            "price_to_prz_pct_raw": -0.9533,
            "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": 75204.19,
              "a_price": 79455.0,
              "tp1_ad_382": 76828.0,
              "tp2_ad_618": 77831.19,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5947,
              "ABC": 0.6294
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 76014.2,
            "b_idx": 290,
            "b_order": 3,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.866,
            "ratio_score": 0.968,
            "prz_score": 0.941,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 72849.89,
            "prz_range": [
              72028.1,
              73671.68
            ],
            "prz_width_pct": 2.256,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.05,
            "price_to_prz_pct_raw": -4.054,
            "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": "butterfly",
              "d_price": 72849.89,
              "a_price": 79455.0,
              "tp1_ad_382": 75373.04,
              "tp2_ad_618": 76931.85,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7928,
              "ABC": 0.722
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 74868.0,
            "b_idx": 271,
            "b_order": 5,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.841,
            "ratio_score": 0.969,
            "prz_score": 0.924,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 72303.79,
            "prz_range": [
              71442.07,
              73165.52
            ],
            "prz_width_pct": 2.384,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.77,
            "price_to_prz_pct_raw": -4.7732,
            "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": "butterfly",
              "d_price": 72303.79,
              "a_price": 62979.5,
              "tp1_ad_382": 68741.91,
              "tp2_ad_618": 66541.38,
              "tp3_a_or_structure_liquidity": 62979.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7926,
              "ABC": 0.5725
            },
            "x_price": 70938.5,
            "x_idx": 198,
            "x_order": 5,
            "a_price": 62979.5,
            "a_idx": 211,
            "a_order": 3,
            "b_price": 69288.0,
            "b_idx": 243,
            "b_order": 3,
            "c_price": 65676.1,
            "c_idx": 244,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.754,
            "ratio_score": 0.583,
            "prz_score": 0.983,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 78891.87,
            "prz_range": [
              78130.63,
              79653.1
            ],
            "prz_width_pct": 1.93,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.9,
            "price_to_prz_pct_raw": 3.9035,
            "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": "butterfly",
              "d_price": 78891.87,
              "a_price": 67300.0,
              "tp1_ad_382": 74463.77,
              "tp2_ad_618": 71728.09,
              "tp3_a_or_structure_liquidity": 67300.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6966,
              "ABC": 0.6102
            },
            "x_price": 74046.5,
            "x_idx": 215,
            "x_order": 8,
            "a_price": 67300.0,
            "a_idx": 233,
            "a_order": 3,
            "b_price": 71999.9,
            "b_idx": 236,
            "b_order": 5,
            "c_price": 74868.0,
            "c_idx": 271,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.72,
            "ratio_score": 0.57,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 78180.0,
            "prz_range": [
              77355.12,
              78703.8
            ],
            "prz_width_pct": 1.728,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 2.77,
            "price_to_prz_pct_raw": 2.7677,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.3,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 6,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "shark",
              "d_price": 78029.46,
              "a_price": 64918.2,
              "tp1_ad_382": 73020.96,
              "tp2_ad_618": 69926.7,
              "tp3_a_or_structure_liquidity": 64918.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3944,
              "ABC": 1.0026,
              "BCD": 1.0297,
              "XAD": 1.1968
            },
            "x_price": 75998.9,
            "x_idx": 228,
            "x_order": 8,
            "a_price": 64918.2,
            "a_idx": 240,
            "a_order": 8,
            "b_price": 69288.0,
            "b_idx": 243,
            "b_order": 3,
            "c_price": 73669.0,
            "c_idx": 262,
            "c_order": 3,
            "d_idx": 293
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.673,
            "ratio_score": 0.528,
            "prz_score": 0.977,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 78180.0,
            "prz_range": [
              78094.82,
              79653.08
            ],
            "prz_width_pct": 1.976,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.88,
            "price_to_prz_pct_raw": 3.8799,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.365,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 6,
                "reasons": [
                  "AD0.236_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": "bearish",
              "source": "butterfly",
              "d_price": 78873.95,
              "a_price": 67300.0,
              "tp1_ad_382": 74452.7,
              "tp2_ad_618": 71721.25,
              "tp3_a_or_structure_liquidity": 67300.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6966,
              "ABC": 0.6102,
              "BCD": 1.1548,
              "XAD": 1.6127
            },
            "x_price": 74046.5,
            "x_idx": 215,
            "x_order": 8,
            "a_price": 67300.0,
            "a_idx": 233,
            "a_order": 3,
            "b_price": 71999.9,
            "b_idx": 236,
            "b_order": 5,
            "c_price": 74868.0,
            "c_idx": 271,
            "c_order": 5,
            "d_idx": 293
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.642,
            "ratio_score": 0.383,
            "prz_score": 0.941,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 74203.6,
            "prz_range": [
              74122.63,
              75813.61
            ],
            "prz_width_pct": 2.256,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.26,
            "price_to_prz_pct_raw": -1.2642,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 0.738,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 4,
                "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": 74968.12,
              "a_price": 79455.0,
              "tp1_ad_382": 76682.11,
              "tp2_ad_618": 77741.01,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5947,
              "ABC": 0.6294,
              "BCD": 1.836,
              "XAD": 0.9076
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 76014.2,
            "b_idx": 290,
            "b_order": 3,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": 295
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.591,
            "ratio_score": 0.366,
            "prz_score": 0.983,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 71999.9,
            "prz_range": [
              71921.47,
              73321.87
            ],
            "prz_width_pct": 1.928,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.35,
            "price_to_prz_pct_raw": -4.3546,
            "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.738,
                "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": "bearish",
              "source": "butterfly",
              "d_price": 72621.67,
              "a_price": 62401.7,
              "tp1_ad_382": 68717.64,
              "tp2_ad_618": 66305.73,
              "tp3_a_or_structure_liquidity": 62401.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8899,
              "ABC": 0.5831,
              "BCD": 1.4517,
              "XAD": 1.1243
            },
            "x_price": 70938.5,
            "x_idx": 198,
            "x_order": 5,
            "a_price": 62401.7,
            "a_idx": 207,
            "a_order": 8,
            "b_price": 69999.0,
            "b_idx": 208,
            "b_order": 3,
            "c_price": 65569.2,
            "c_idx": 219,
            "c_order": 5,
            "d_idx": 236
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.906,
            "ratio_score": 0.862,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 75204.19,
            "prz_range": [
              74594.52,
              75813.87
            ],
            "prz_width_pct": 1.621,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.95,
            "price_to_prz_pct_raw": -0.9533,
            "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": 75204.19,
              "a_price": 79455.0,
              "tp1_ad_382": 76828.0,
              "tp2_ad_618": 77831.19,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5947,
              "ABC": 0.6294
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 76014.2,
            "b_idx": 290,
            "b_order": 3,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.906,
            "ratio_score": 0.862,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 75204.19,
            "prz_range": [
              74594.52,
              75813.87
            ],
            "prz_width_pct": 1.621,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.95,
            "price_to_prz_pct_raw": -0.9533,
            "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": 75204.19,
              "a_price": 79455.0,
              "tp1_ad_382": 76828.0,
              "tp2_ad_618": 77831.19,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5947,
              "ABC": 0.6294
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 76014.2,
            "b_idx": 290,
            "b_order": 3,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.866,
            "ratio_score": 0.968,
            "prz_score": 0.941,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 72849.89,
            "prz_range": [
              72028.1,
              73671.68
            ],
            "prz_width_pct": 2.256,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.05,
            "price_to_prz_pct_raw": -4.054,
            "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": "butterfly",
              "d_price": 72849.89,
              "a_price": 79455.0,
              "tp1_ad_382": 75373.04,
              "tp2_ad_618": 76931.85,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7928,
              "ABC": 0.722
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 74868.0,
            "b_idx": 271,
            "b_order": 5,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.841,
            "ratio_score": 0.969,
            "prz_score": 0.924,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 72303.79,
            "prz_range": [
              71442.07,
              73165.52
            ],
            "prz_width_pct": 2.384,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.77,
            "price_to_prz_pct_raw": -4.7732,
            "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": "butterfly",
              "d_price": 72303.79,
              "a_price": 62979.5,
              "tp1_ad_382": 68741.91,
              "tp2_ad_618": 66541.38,
              "tp3_a_or_structure_liquidity": 62979.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7926,
              "ABC": 0.5725
            },
            "x_price": 70938.5,
            "x_idx": 198,
            "x_order": 5,
            "a_price": 62979.5,
            "a_idx": 211,
            "a_order": 3,
            "b_price": 69288.0,
            "b_idx": 243,
            "b_order": 3,
            "c_price": 65676.1,
            "c_idx": 244,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.754,
            "ratio_score": 0.583,
            "prz_score": 0.983,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 78891.87,
            "prz_range": [
              78130.63,
              79653.1
            ],
            "prz_width_pct": 1.93,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.9,
            "price_to_prz_pct_raw": 3.9035,
            "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": "butterfly",
              "d_price": 78891.87,
              "a_price": 67300.0,
              "tp1_ad_382": 74463.77,
              "tp2_ad_618": 71728.09,
              "tp3_a_or_structure_liquidity": 67300.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6966,
              "ABC": 0.6102
            },
            "x_price": 74046.5,
            "x_idx": 215,
            "x_order": 8,
            "a_price": 67300.0,
            "a_idx": 233,
            "a_order": 3,
            "b_price": 71999.9,
            "b_idx": 236,
            "b_order": 5,
            "c_price": 74868.0,
            "c_idx": 271,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.72,
            "ratio_score": 0.57,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 78180.0,
            "prz_range": [
              77355.12,
              78703.8
            ],
            "prz_width_pct": 1.728,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 2.77,
            "price_to_prz_pct_raw": 2.7677,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.3,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 6,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "shark",
              "d_price": 78029.46,
              "a_price": 64918.2,
              "tp1_ad_382": 73020.96,
              "tp2_ad_618": 69926.7,
              "tp3_a_or_structure_liquidity": 64918.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3944,
              "ABC": 1.0026,
              "BCD": 1.0297,
              "XAD": 1.1968
            },
            "x_price": 75998.9,
            "x_idx": 228,
            "x_order": 8,
            "a_price": 64918.2,
            "a_idx": 240,
            "a_order": 8,
            "b_price": 69288.0,
            "b_idx": 243,
            "b_order": 3,
            "c_price": 73669.0,
            "c_idx": 262,
            "c_order": 3,
            "d_idx": 293
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.673,
            "ratio_score": 0.528,
            "prz_score": 0.977,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 78180.0,
            "prz_range": [
              78094.82,
              79653.08
            ],
            "prz_width_pct": 1.976,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.88,
            "price_to_prz_pct_raw": 3.8799,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.365,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 6,
                "reasons": [
                  "AD0.236_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": "bearish",
              "source": "butterfly",
              "d_price": 78873.95,
              "a_price": 67300.0,
              "tp1_ad_382": 74452.7,
              "tp2_ad_618": 71721.25,
              "tp3_a_or_structure_liquidity": 67300.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6966,
              "ABC": 0.6102,
              "BCD": 1.1548,
              "XAD": 1.6127
            },
            "x_price": 74046.5,
            "x_idx": 215,
            "x_order": 8,
            "a_price": 67300.0,
            "a_idx": 233,
            "a_order": 3,
            "b_price": 71999.9,
            "b_idx": 236,
            "b_order": 5,
            "c_price": 74868.0,
            "c_idx": 271,
            "c_order": 5,
            "d_idx": 293
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.642,
            "ratio_score": 0.383,
            "prz_score": 0.941,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 74203.6,
            "prz_range": [
              74122.63,
              75813.61
            ],
            "prz_width_pct": 2.256,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.26,
            "price_to_prz_pct_raw": -1.2642,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 0.738,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 4,
                "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": 74968.12,
              "a_price": 79455.0,
              "tp1_ad_382": 76682.11,
              "tp2_ad_618": 77741.01,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5947,
              "ABC": 0.6294,
              "BCD": 1.836,
              "XAD": 0.9076
            },
            "x_price": 73669.0,
            "x_idx": 262,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 269,
            "a_order": 5,
            "b_price": 76014.2,
            "b_idx": 290,
            "b_order": 3,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": 295
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.591,
            "ratio_score": 0.366,
            "prz_score": 0.983,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 71999.9,
            "prz_range": [
              71921.47,
              73321.87
            ],
            "prz_width_pct": 1.928,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.35,
            "price_to_prz_pct_raw": -4.3546,
            "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.738,
                "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": "bearish",
              "source": "butterfly",
              "d_price": 72621.67,
              "a_price": 62401.7,
              "tp1_ad_382": 68717.64,
              "tp2_ad_618": 66305.73,
              "tp3_a_or_structure_liquidity": 62401.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8899,
              "ABC": 0.5831,
              "BCD": 1.4517,
              "XAD": 1.1243
            },
            "x_price": 70938.5,
            "x_idx": 198,
            "x_order": 5,
            "a_price": 62401.7,
            "a_idx": 207,
            "a_order": 8,
            "b_price": 69999.0,
            "b_idx": 208,
            "b_order": 3,
            "c_price": 65569.2,
            "c_idx": 219,
            "c_order": 5,
            "d_idx": 236
          },
          {
            "pattern": "shark",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.86,
            "ratio_score": 1.0,
            "prz_score": 0.783,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 74874.67,
            "prz_range": [
              74356.58,
              75392.76
            ],
            "prz_width_pct": 1.384,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT"
            ],
            "price_to_prz_pct": -1.39,
            "price_to_prz_pct_raw": -1.3873,
            "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": 74874.67,
              "a_price": 71999.9,
              "tp1_ad_382": 73776.51,
              "tp2_ad_618": 73098.06,
              "tp3_a_or_structure_liquidity": 71999.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.446,
              "ABC": 1.1548
            },
            "x_price": 65569.2,
            "x_idx": 219,
            "x_order": 5,
            "a_price": 71999.9,
            "a_idx": 236,
            "a_order": 5,
            "b_price": 74868.0,
            "b_idx": 271,
            "b_order": 5,
            "c_price": 78180.0,
            "c_idx": 293,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.857,
            "ratio_score": 0.94,
            "prz_score": 0.798,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 76349.56,
            "prz_range": [
              75066.09,
              77633.02
            ],
            "prz_width_pct": 3.362,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.56,
            "price_to_prz_pct_raw": 0.5552,
            "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": 76349.56,
              "a_price": 65569.2,
              "tp1_ad_382": 72231.46,
              "tp2_ad_618": 69687.3,
              "tp3_a_or_structure_liquidity": 65569.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4387,
              "ABC": 1.1781
            },
            "x_price": 74046.5,
            "x_idx": 215,
            "x_order": 8,
            "a_price": 65569.2,
            "a_idx": 219,
            "a_order": 5,
            "b_price": 69288.0,
            "b_idx": 243,
            "b_order": 3,
            "c_price": 73669.0,
            "c_idx": 262,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.846,
            "ratio_score": 1.0,
            "prz_score": 0.783,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 74933.88,
            "prz_range": [
              74654.77,
              75212.98
            ],
            "prz_width_pct": 0.745,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.31,
            "price_to_prz_pct_raw": -1.3093,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 74933.88,
              "a_price": 64918.2,
              "tp1_ad_382": 71107.89,
              "tp2_ad_618": 68744.19,
              "tp3_a_or_structure_liquidity": 64918.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3944,
              "ABC": 0.8266
            },
            "x_price": 75998.9,
            "x_idx": 228,
            "x_order": 8,
            "a_price": 64918.2,
            "a_idx": 240,
            "a_order": 8,
            "b_price": 69288.0,
            "b_idx": 243,
            "b_order": 3,
            "c_price": 65676.1,
            "c_idx": 244,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.843,
            "ratio_score": 1.0,
            "prz_score": 0.827,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": false,
            "d_price": 78663.74,
            "prz_range": [
              77430.64,
              79896.84
            ],
            "prz_width_pct": 3.135,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.6,
            "price_to_prz_pct_raw": 3.6031,
            "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": 78663.74,
              "a_price": 74868.0,
              "tp1_ad_382": 77213.77,
              "tp2_ad_618": 76317.97,
              "tp3_a_or_structure_liquidity": 74868.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5935,
              "ABC": 1.2006
            },
            "x_price": 69288.0,
            "x_idx": 243,
            "x_order": 3,
            "a_price": 74868.0,
            "a_idx": 271,
            "a_order": 5,
            "b_price": 78180.0,
            "b_idx": 293,
            "b_order": 3,
            "c_price": 74203.6,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.906,
            "prz_proximity": "active",
            "prz_range": [
              74594.52,
              75813.87
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.95,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 75204.19,
              "a_price": 79455.0,
              "tp1_ad_382": 76828.0,
              "tp2_ad_618": 77831.19,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $74,594.52-$75,813.87: expected reversal UP if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "gartley",
          "signal": "bullish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.906,
          "ratio_score": 0.862,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 75204.19,
          "prz_range": [
            74594.52,
            75813.87
          ],
          "prz_width_pct": 1.621,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": -0.95,
          "price_to_prz_pct_raw": -0.9533,
          "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": 75204.19,
            "a_price": 79455.0,
            "tp1_ad_382": 76828.0,
            "tp2_ad_618": 77831.19,
            "tp3_a_or_structure_liquidity": 79455.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.5947,
            "ABC": 0.6294
          },
          "x_price": 73669.0,
          "x_idx": 262,
          "x_order": 3,
          "a_price": 79455.0,
          "a_idx": 269,
          "a_order": 5,
          "b_price": 76014.2,
          "b_idx": 290,
          "b_order": 3,
          "c_price": 78180.0,
          "c_idx": 293,
          "c_order": 3,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "gartley",
          "d_price": 75204.19,
          "a_price": 79455.0,
          "tp1_ad_382": 76828.0,
          "tp2_ad_618": 77831.19,
          "tp3_a_or_structure_liquidity": 79455.0,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 75204.19,
            "a_price": 79455.0,
            "tp1_ad_382": 76828.0,
            "tp2_ad_618": 77831.19,
            "tp3_a_or_structure_liquidity": 79455.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "validated_tp_ladder": [],
        "harmonic_governance": {
          "role": "PRZ reaction + TP ladder confluence, not standalone path engine",
          "pre_confirmation_weight_range": [
            0.25,
            0.35
          ],
          "post_confirmation_vote_weight_range": [
            0.5,
            0.6
          ],
          "standalone_path_override_allowed": false,
          "opposes_core_path_policy": "branch/reversal-risk/reaction-zone unless lower-TF structure and derivatives also confirm",
          "aligns_with_core_path_policy": "modest confidence lift plus strong TP ladder influence"
        },
        "execution_readiness": "ready",
        "directional_scores": {
          "bullish": 0.192,
          "bearish": 0
        },
        "directional_score_total": 0.192,
        "directional_dominance": 1.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.42,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.55,\n  \"setup_signals\": [\n    \"활성 고품질 strict bullish Gartley PRZ 진입/근접: $74,594.52-$75,813.87, 현재가 $75,928로 PRZ 상단 바로 위\",\n    \"PRZ 3중 피보나치 합류: ABCD + BC_EXT + XAD, prz_score 1.000, pattern_score 0.906\",\n    \"예상 D 가격 $75,204.19 부근에서 반등 후보 형성 중이나 confirmed_reaction=false로 아직 구조 전환 신호는 아님\",\n    \"Bullish Gartley TP ladder: TP1 $76,828.00, TP2 $77,831.19, TP3/A 구조 유동성 $79,455.00\",\n    \"현재가가 EMA20 $77,482.96 및 EMA120 $77,609.47 아래에 있어 $77.5k-$77.8k 구간은 반등 시 1차 저항/검증 구간\"\n  ],\n  \"reasoning\": \"가장 중요한 패턴은 strict/high 품질의 forming bullish Gartley이며, PRZ는 $74,594.52-$75,813.87로 현재가 $75,928가 상단을 거의 재탈환한 위치입니다. 이 PRZ는 ABCD, BC extension, XAD가 모두 겹친 3중 합류 구간이고 pattern_score 0.906, prz_score 1.000으로 품질은 높지만, confirmed_reaction=false이므로 아직 단독으로 메인 구조를 bullish로 뒤집을 수 없습니다. 구조적으로는 명확한 BOS/CHoCH 또는 수용 확인 데이터가 없고 가격도 EMA20 $77,482.96, EMA120 $77,609.47, EMA240 $84,218.10 아래에 있어 structure_bias는 neutral로 둡니다. 다만 실행 셋업 관점에서는 $75,204 D 및 $74,594-$75,814 PRZ 방어가 유지될 경우 $76,828, $77,831, $79,455로 향하는 반등 후보가 유효합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      75813.87,\n      75204.19,\n      74594.52,\n      74203.6,\n      73669.0\n    ],\n    \"resistance\": [\n      76014.2,\n      76828.0,\n      77482.96,\n      77831.19,\n      78180.0,\n      79455.0\n    ]\n  },\n  \"time_horizon\": \"medium term\",\n  \"invalidation_level\": \"74594.52\",\n  \"risk_scenario\": \"$74,594.52 아래로 일봉 종가 수용이 나오면 active bullish Gartley PRZ 방어 실패로 해석되며, $74,203.60 저점 및 X 가격 $73,669.00 재시험 위험이 커집니다. 반대로 $76,828 돌파 후 $77,831-$78,180을 회복하면 PRZ 반응 확인 가능성이 높아지고, $79,455 A-leg 유동성까지 반등 확장이 열립니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "neutral",
      "confidence": 0.52,
      "structure_bias": "bullish",
      "setup_bias": "neutral",
      "setup_score": 0.35,
      "setup_signals": [
        "현재가 $75,928.00은 EQ $76,628.35 아래의 discount 영역에 위치해 있어 저가 매수 조건은 있으나 아직 강한 반전 확인은 부족",
        "전일 저점 $75,641.20이 하향 이탈됨(broken_prev_low=True)으로 sell-side liquidity sweep 후보가 있으나 recent_liq_sweeps는 비어 있어 확정 스윕 신호는 약함",
        "최근 구조 이벤트는 $75,998.90 상방 BOS이나 현재가가 해당 레벨 바로 아래 $75,928.00에 있어 구조적 수용 여부가 불확실",
        "활성 Bullish/Bearish OB가 없고, 미충족 FVG도 없어 기관 주문흐름상 명확한 자석 가격대가 부족",
        "EMA20 $77,482.96 및 EMA120 $77,609.47 아래에서 거래 중이라 단기 반등 setup은 아직 저항 확인 단계"
      ],
      "reasoning": "확정 구조 기준으로는 가장 최근 이벤트가 $75,998.90 상방 BOS이므로 structure_bias는 bullish로 분류되지만, 현재가는 $75,928.00으로 해당 BOS 레벨을 소폭 하회해 즉각적인 강세 수용은 확인되지 않았다. 가격은 EQ $76,628.35 아래 discount에 있어 매수 관점의 위치는 유리하지만, 활성 OB 0개, 미충족 FVG 0개, recent_liq_sweeps 없음으로 ICT 관점의 강한 실행 setup은 부재하다. 또한 EMA20 $77,482.96, EMA120 $77,609.47, 전일 고점 $78,077.10, 7일 고점 $78,180.00이 상단 저항으로 밀집해 있어 단기적으로는 $76,628.35 회복 및 $75,998.90 재수용이 필요하다. bull_score 7.5와 bear_score 7.7이 거의 균형이며 setup_score도 0.35로 낮기 때문에 전체 신호는 neutral이 적절하다.",
      "key_levels": {
        "support": [
          75641.2,
          74203.6,
          70428.0
        ],
        "resistance": [
          75998.9,
          76628.35,
          77482.96,
          77609.47,
          78077.1,
          78180.0,
          82828.7,
          84408.6
        ]
      },
      "time_horizon": "short/medium term",
      "invalidation_level": "$70,428.00",
      "risk_scenario": "반대 시나리오는 $75,641.20 전일 저점 재이탈 후 $74,203.60 7일 저점까지 매도 유동성이 열리는 경우다. 특히 $70,428.00 range low가 붕괴되면 최근 $75,998.90 bullish BOS는 실패한 구조 전환으로 해석될 수 있고, 할인 영역 매수 논리는 무효화된다.",
      "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": 1,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 67,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bearish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish"
        ],
        "bos_choch_levels": [
          {
            "type": "BOS_bullish",
            "level": 117875.2
          },
          {
            "type": "CHoCH_bearish",
            "level": 108566.0
          },
          {
            "type": "BOS_bearish",
            "level": 101516.5
          },
          {
            "type": "BOS_bullish",
            "level": 94555.0
          },
          {
            "type": "CHoCH_bearish",
            "level": 84408.6
          },
          {
            "type": "BOS_bullish",
            "level": 75998.9
          }
        ],
        "bos_sequence": [
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bearish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish"
        ],
        "consecutive_bull_bos": 1,
        "consecutive_bear_bos": 0,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "discount",
        "eq_level": 76628.35,
        "range_high": 82828.7,
        "range_low": 70428.0,
        "bull_score": 7.5,
        "bear_score": 7.7,
        "setup_bias": "neutral",
        "setup_score": 0.35,
        "setup_signals": [
          "bullish BOS above $117,875.20",
          "bullish BOS above $94,555.00",
          "bearish CHoCH below $108,566.00",
          "bearish BOS below $101,516.50"
        ],
        "retracement_direction": "bullish",
        "current_retracement_pct": 40.1,
        "deepest_retracement_pct": 48.2,
        "previous_day_high": 78077.1,
        "previous_day_low": 75641.2,
        "broken_prev_high": false,
        "broken_prev_low": true,
        "sessions": {}
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.52,\n  \"structure_bias\": \"bullish\",\n  \"setup_bias\": \"neutral\",\n  \"setup_score\": 0.35,\n  \"setup_signals\": [\n    \"현재가 $75,928.00은 EQ $76,628.35 아래의 discount 영역에 위치해 있어 저가 매수 조건은 있으나 아직 강한 반전 확인은 부족\",\n    \"전일 저점 $75,641.20이 하향 이탈됨(broken_prev_low=True)으로 sell-side liquidity sweep 후보가 있으나 recent_liq_sweeps는 비어 있어 확정 스윕 신호는 약함\",\n    \"최근 구조 이벤트는 $75,998.90 상방 BOS이나 현재가가 해당 레벨 바로 아래 $75,928.00에 있어 구조적 수용 여부가 불확실\",\n    \"활성 Bullish/Bearish OB가 없고, 미충족 FVG도 없어 기관 주문흐름상 명확한 자석 가격대가 부족\",\n    \"EMA20 $77,482.96 및 EMA120 $77,609.47 아래에서 거래 중이라 단기 반등 setup은 아직 저항 확인 단계\"\n  ],\n  \"reasoning\": \"확정 구조 기준으로는 가장 최근 이벤트가 $75,998.90 상방 BOS이므로 structure_bias는 bullish로 분류되지만, 현재가는 $75,928.00으로 해당 BOS 레벨을 소폭 하회해 즉각적인 강세 수용은 확인되지 않았다. 가격은 EQ $76,628.35 아래 discount에 있어 매수 관점의 위치는 유리하지만, 활성 OB 0개, 미충족 FVG 0개, recent_liq_sweeps 없음으로 ICT 관점의 강한 실행 setup은 부재하다. 또한 EMA20 $77,482.96, EMA120 $77,609.47, 전일 고점 $78,077.10, 7일 고점 $78,180.00이 상단 저항으로 밀집해 있어 단기적으로는 $76,628.35 회복 및 $75,998.90 재수용이 필요하다. bull_score 7.5와 bear_score 7.7이 거의 균형이며 setup_score도 0.35로 낮기 때문에 전체 신호는 neutral이 적절하다.\",\n  \"key_levels\": {\n    \"support\": [\n      75641.2,\n      74203.6,\n      70428.0\n    ],\n    \"resistance\": [\n      75998.9,\n      76628.35,\n      77482.96,\n      77609.47,\n      78077.1,\n      78180.0,\n      82828.7,\n      84408.6\n    ]\n  },\n  \"time_horizon\": \"short/medium term\",\n  \"invalidation_level\": \"$70,428.00\",\n  \"risk_scenario\": \"반대 시나리오는 $75,641.20 전일 저점 재이탈 후 $74,203.60 7일 저점까지 매도 유동성이 열리는 경우다. 특히 $70,428.00 range low가 붕괴되면 최근 $75,998.90 bullish BOS는 실패한 구조 전환으로 해석될 수 있고, 할인 영역 매수 논리는 무효화된다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.62,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.68,
      "setup_signals": [
        "현재가 $75,928이 7일 레인지 EQ $76,191.80 아래에 재진입하며 상단 수용 실패",
        "EMA20 $77,482.96 및 EMA120 $77,609.47 아래에서 거래되어 $77.4k-$77.8k 구간이 단기 공급대로 작동",
        "CVD 변화 -520.5020, cvd_divergence 0.300으로 가격 횡보 대비 매수 참여 약화",
        "24시간 OI -0.7030%로 신규 롱 추격보다 포지션 언와인딩 성격이 강함",
        "롱 계정 비율 0.573, 24시간 +0.070 상승 / 숏 계정 비율 0.427, 24시간 -0.0697 하락으로 롱 쪽 계정 유입이 늘어나는 반면 가격은 EMA 아래에 정체",
        "상단 청산 유동성 $76,600, $77,400, $77,800 및 7일 고점 $78,180이 저항 클러스터로 존재"
      ],
      "reasoning": "BTC는 현재 $75,928로 7일 레인지 EQ $76,191.80 아래에 있으며, EMA20 $77,482.96과 EMA120 $77,609.47을 회복하지 못해 구조적으로는 약세 수용 상태입니다. 파생 포지셔닝은 aggregate_score 0.329, bull_signals 0 대 bear_signals 4로 매수 우위가 확인되지 않으며, CVD 변화 -520.5020은 가격이 거의 보합(+0.03%)인 상황에서 매수 체결력이 약하다는 신호입니다. OI가 24시간 -0.7030% 감소해 강한 신규 숏 구축보다는 포지션 축소가 나타나지만, 동시에 롱 계정 비율이 0.573까지 상승해 반등 기대가 쌓이는 점은 단기적으로 롱 청산 리스크를 키웁니다. 하방은 $73,900, $72,900, $69,300에 청산 유동성이 있고, 상방은 $76,600-$77,800 및 $78,180-$78,900 구간을 회복하기 전까지 매도 반응이 우세할 가능성이 높습니다.",
      "key_levels": {
        "support": [
          73900,
          72900,
          69300
        ],
        "resistance": [
          76600,
          77400,
          77800,
          78180,
          78900
        ]
      },
      "time_horizon": "short term, 파생 데이터 선행성을 감안한 향후 4-8시간 중심",
      "invalidation_level": "$78,900 상방 수용 및 유지",
      "risk_scenario": "$76,600 위로 숏 커버링이 발생하고 $77,400-$77,800 청산 클러스터를 연속 흡수하면, 7일 고점 $78,180 및 strongest_liq_level $78,900까지 유동성 사냥성 반등이 먼저 나올 수 있습니다. 이 경우 약세 셋업은 지연되며, $78,900 위 수용 시 단기 구조 판단을 중립 또는 강세 전환으로 재평가해야 합니다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.3,
        "cvd_change": -520.502,
        "oi_trend": 0.43,
        "oi_change_pct_24h": -0.703,
        "oi_latest": 99129.766,
        "funding_pressure": 0.427,
        "funding_avg": 7.327e-05,
        "funding_change_24h": 8.9e-06,
        "long_account_ratio": 0.538,
        "short_account_ratio": 0.462,
        "long_account_latest": 0.573,
        "short_account_latest": 0.427,
        "long_account_change_24h": 0.0697,
        "short_account_change_24h": -0.0697,
        "account_flow_label": "long_accounts_rising_short_accounts_falling",
        "account_short_crowding": 0.0,
        "account_long_crowding": 0.314,
        "ls_imbalance": 0.0,
        "ls_imbalance_interpretation": "high=short-account crowding / low=long-account crowding",
        "spot_futures_basis_score": 0.489,
        "spot_futures_basis_pct": -0.0423,
        "basis_change_lookback": 0.0015,
        "aggregate_score": 0.329,
        "bull_signals": 0,
        "bear_signals": 4,
        "liq_below": [
          [
            73900,
            77134.26551
          ],
          [
            72900,
            84832.23675425
          ],
          [
            69300,
            90841.62750625
          ]
        ],
        "liq_above": [
          [
            76600,
            92466.14983075
          ],
          [
            77400,
            83817.7010483
          ],
          [
            77800,
            105113.9052642
          ]
        ],
        "strongest_liq_level": 78900,
        "fragility_score": 0.573,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.68,\n  \"setup_signals\": [\n    \"현재가 $75,928이 7일 레인지 EQ $76,191.80 아래에 재진입하며 상단 수용 실패\",\n    \"EMA20 $77,482.96 및 EMA120 $77,609.47 아래에서 거래되어 $77.4k-$77.8k 구간이 단기 공급대로 작동\",\n    \"CVD 변화 -520.5020, cvd_divergence 0.300으로 가격 횡보 대비 매수 참여 약화\",\n    \"24시간 OI -0.7030%로 신규 롱 추격보다 포지션 언와인딩 성격이 강함\",\n    \"롱 계정 비율 0.573, 24시간 +0.070 상승 / 숏 계정 비율 0.427, 24시간 -0.0697 하락으로 롱 쪽 계정 유입이 늘어나는 반면 가격은 EMA 아래에 정체\",\n    \"상단 청산 유동성 $76,600, $77,400, $77,800 및 7일 고점 $78,180이 저항 클러스터로 존재\"\n  ],\n  \"reasoning\": \"BTC는 현재 $75,928로 7일 레인지 EQ $76,191.80 아래에 있으며, EMA20 $77,482.96과 EMA120 $77,609.47을 회복하지 못해 구조적으로는 약세 수용 상태입니다. 파생 포지셔닝은 aggregate_score 0.329, bull_signals 0 대 bear_signals 4로 매수 우위가 확인되지 않으며, CVD 변화 -520.5020은 가격이 거의 보합(+0.03%)인 상황에서 매수 체결력이 약하다는 신호입니다. OI가 24시간 -0.7030% 감소해 강한 신규 숏 구축보다는 포지션 축소가 나타나지만, 동시에 롱 계정 비율이 0.573까지 상승해 반등 기대가 쌓이는 점은 단기적으로 롱 청산 리스크를 키웁니다. 하방은 $73,900, $72,900, $69,300에 청산 유동성이 있고, 상방은 $76,600-$77,800 및 $78,180-$78,900 구간을 회복하기 전까지 매도 반응이 우세할 가능성이 높습니다.\",\n  \"key_levels\": {\n    \"support\": [\n      73900,\n      72900,\n      69300\n    ],\n    \"resistance\": [\n      76600,\n      77400,\n      77800,\n      78180,\n      78900\n    ]\n  },\n  \"time_horizon\": \"short term, 파생 데이터 선행성을 감안한 향후 4-8시간 중심\",\n  \"invalidation_level\": \"$78,900 상방 수용 및 유지\",\n  \"risk_scenario\": \"$76,600 위로 숏 커버링이 발생하고 $77,400-$77,800 청산 클러스터를 연속 흡수하면, 7일 고점 $78,180 및 strongest_liq_level $78,900까지 유동성 사냥성 반등이 먼저 나올 수 있습니다. 이 경우 약세 셋업은 지연되며, $78,900 위 수용 시 단기 구조 판단을 중립 또는 강세 전환으로 재평가해야 합니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "neutral",
      "confidence": 0.46,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.58,
      "setup_signals": [
        "현재가 $75,928.00가 7일 범위 EQ $76,191.80 아래에 위치하여 단기 discount 구간 진입",
        "7일 저점 $74,203.60 부근에서 doji@299 및 bullish_harami@299 후보 발생",
        "bullish_harami 품질 0.577로 최근 패턴 중 가장 높지만 high_volume=false로 확증 부족",
        "EMA20 $77,482.96 및 EMA120 $77,609.47 아래에서 반등 시도 중이나 아직 구조 전환 미확인"
      ],
      "reasoning": "현재 BTC는 $75,928.00으로 EMA20 $77,482.96보다 2.0%, EMA120 $77,609.47보다 2.2% 낮고 EMA240 $84,218.10과도 9.8% 괴리가 있어 확인된 구조는 아직 bearish로 판단된다. 다만 7일 고점 $78,180.00과 저점 $74,203.60의 중간값인 EQ $76,191.80 아래에서 doji@299와 bullish_harami@299가 발생해 단기 반등 setup은 존재한다. 최근 패턴은 bearish_engulfing@294, bearish_engulfing@298, evening_star@294 등 매도 신호가 더 많고 bear_score 2.3000이 bull_score 0.600보다 우세해, bullish harami 품질 0.577만으로 추세 전환을 확정하기는 어렵다. 거래량 확인 패턴이 없고 high_volume_patterns가 비어 있어, $77,482.96~$78,180.00 회복 전까지는 반등 후보일 뿐 구조적 강세 전환은 아니다.",
      "key_levels": {
        "support": [
          74203.6,
          75928.0,
          73992.31
        ],
        "resistance": [
          76191.8,
          77482.96,
          77609.47,
          78180.0,
          84218.1
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$74,203.60",
      "risk_scenario": "$74,203.60 7일 저점이 일봉 종가로 이탈되면 doji와 bullish harami 기반의 단기 반등 setup은 무효화되며, ATR $1,935.69 기준으로 다음 하락 확장 구간은 약 $72,267.91까지 열릴 수 있다. 반대로 $77,482.96 EMA20과 $77,609.47 EMA120을 회복하고 $78,180.00을 돌파하면 bearish engulfing 및 evening star의 압력이 약화되며 구조 중립 또는 강세 전환 확인 구간으로 이동한다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 136,
        "recent_patterns": 6,
        "pattern_list": [
          "bearish_engulfing@294",
          "bearish_engulfing@298",
          "evening_star@294",
          "doji@293",
          "doji@299",
          "bullish_harami@299"
        ],
        "atr_value": 1935.69,
        "vol_avg_20": 113903.51,
        "high_volume_patterns": [],
        "pattern_candidates": [
          {
            "pattern": "bullish_harami",
            "signal": "bullish",
            "pattern_quality": 0.577,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "evening_star",
            "signal": "bearish",
            "pattern_quality": 0.456,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.447,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.431,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.355,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.577,
        "bull_score": 0.6,
        "bear_score": 2.3
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.46,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.58,\n  \"setup_signals\": [\n    \"현재가 $75,928.00가 7일 범위 EQ $76,191.80 아래에 위치하여 단기 discount 구간 진입\",\n    \"7일 저점 $74,203.60 부근에서 doji@299 및 bullish_harami@299 후보 발생\",\n    \"bullish_harami 품질 0.577로 최근 패턴 중 가장 높지만 high_volume=false로 확증 부족\",\n    \"EMA20 $77,482.96 및 EMA120 $77,609.47 아래에서 반등 시도 중이나 아직 구조 전환 미확인\"\n  ],\n  \"reasoning\": \"현재 BTC는 $75,928.00으로 EMA20 $77,482.96보다 2.0%, EMA120 $77,609.47보다 2.2% 낮고 EMA240 $84,218.10과도 9.8% 괴리가 있어 확인된 구조는 아직 bearish로 판단된다. 다만 7일 고점 $78,180.00과 저점 $74,203.60의 중간값인 EQ $76,191.80 아래에서 doji@299와 bullish_harami@299가 발생해 단기 반등 setup은 존재한다. 최근 패턴은 bearish_engulfing@294, bearish_engulfing@298, evening_star@294 등 매도 신호가 더 많고 bear_score 2.3000이 bull_score 0.600보다 우세해, bullish harami 품질 0.577만으로 추세 전환을 확정하기는 어렵다. 거래량 확인 패턴이 없고 high_volume_patterns가 비어 있어, $77,482.96~$78,180.00 회복 전까지는 반등 후보일 뿐 구조적 강세 전환은 아니다.\",\n  \"key_levels\": {\n    \"support\": [\n      74203.6,\n      75928.0,\n      73992.31\n    ],\n    \"resistance\": [\n      76191.8,\n      77482.96,\n      77609.47,\n      78180.0,\n      84218.1\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$74,203.60\",\n  \"risk_scenario\": \"$74,203.60 7일 저점이 일봉 종가로 이탈되면 doji와 bullish harami 기반의 단기 반등 setup은 무효화되며, ATR $1,935.69 기준으로 다음 하락 확장 구간은 약 $72,267.91까지 열릴 수 있다. 반대로 $77,482.96 EMA20과 $77,609.47 EMA120을 회복하고 $78,180.00을 돌파하면 bearish engulfing 및 evening star의 압력이 약화되며 구조 중립 또는 강세 전환 확인 구간으로 이동한다.\",\n  \"data_quality\": \"medium\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bullish",
    "overall_confidence": 0.56,
    "execution_setup": {
      "setup_bias": "bullish",
      "setup_strength": 0.58,
      "active_setups": [
        "가격 $75,928은 Wyckoff TERMINAL_SPRING $74,868 재시험권에 위치해 있어 축적 구조 내 스프링 테스트 후보",
        "strict/high bullish Gartley PRZ $74,594.52-$75,813.87 상단 부근에서 반등 후보가 형성 중이나 아직 확인 반응은 없음",
        "Fibonacci 기준 상승 스윙 $74,868 → $82,829의 0.786 되돌림 $76,571.59 아래로 깊게 밀린 할인 구간",
        "ICT 기준 EQ $76,628.35 아래 discount 영역이며 전일 저점 $75,641.20 하향 이탈로 sell-side 유동성 흡수 후보",
        "Candlestick 기준 7일 EQ $76,191.80 아래에서 doji 및 bullish harami 후보가 발생했으나 거래량 확인은 부족"
      ],
      "setup_vs_structure": "구조적으로는 Wyckoff 축적 Phase D라는 상위 프레임 bullish 해석이 우세하지만, 실행 셋업은 아직 확인 전 반등 후보에 가깝다. 즉 구조와 셋업 방향은 대체로 일치하나, 파생시장 약세와 $76,600-$78,180 저항 밀집 때문에 즉시 강세 수용이 확인된 상태는 아니다."
    },
    "signal_breakdown": {
      "bullish_count": 1,
      "bearish_count": 2,
      "neutral_count": 3
    },
    "key_levels": {
      "support": [
        75641.2,
        75204.19,
        74868,
        74594.52,
        74203.6,
        73900,
        72900,
        65595.7
      ],
      "resistance": [
        75998.9,
        76191.8,
        76571.59,
        76628.35,
        77482.96,
        77609.47,
        77908.99,
        78180,
        80600,
        82828.7
      ]
    },
    "confluences": [
      "Wyckoff의 TERMINAL_SPRING $74,868과 Fibonacci 상승 스윙 저점 $74,868이 동일하게 핵심 구조 방어선으로 겹친다.",
      "Harmonic bullish Gartley PRZ $74,594.52-$75,813.87은 Wyckoff $74,868 스프링 재시험권 및 ICT 전일 저점 $75,641.20과 겹치는 하단 반응 구간이다.",
      "ICT의 최근 bullish BOS 레벨 $75,998.90, Derivatives 상단 청산/저항 $76,600, Fibonacci 0.786 $76,571.59, ICT EQ $76,628.35가 $76.0k-$76.6k 부근의 1차 구조 회복 구간으로 밀집한다.",
      "EMA20 $77,482.96와 EMA120 $77,609.47은 ICT, Candlestick, Harmonic, Derivatives가 공통으로 언급한 중단 저항대로, $77.4k-$77.8k 구간의 공급 압력을 강화한다.",
      "$78,077.10-$78,180.00 구간은 ICT 전일 고점, 7일 고점, Candlestick 저항, Harmonic bearish PRZ 후보가 겹치는 상단 수용 검증 구간이다.",
      "Wyckoff SOS $82,828.70은 ICT range high $82,828.70 및 Fibonacci 스윙 고점 $82,829와 일치해 상위 구조의 재수용 기준으로 작동한다."
    ],
    "conflicts": [
      "Wyckoff는 확인된 축적 구조와 Phase D 맥락을 근거로 상위 구조를 bullish로 보지만, Fibonacci·Derivatives·Candlestick은 현재가가 EMA20/EMA120 및 핵심 되돌림 아래에 있어 현 구간 수용을 bearish로 본다.",
      "Harmonic은 strict/high bullish Gartley PRZ를 제시하지만 confirmed reaction이 없어 단독으로 구조를 뒤집을 수 없으며, 이는 Derivatives의 CVD 약화 및 롱 계정 증가에 따른 롱 청산 리스크와 충돌한다.",
      "ICT는 최근 구조 이벤트를 $75,998.90 상방 BOS로 보아 구조 편향을 bullish로 분류하지만, 현재가 $75,928이 해당 레벨을 소폭 하회해 실제 수용 여부는 불확실하다.",
      "실행 셋업은 discount·PRZ·spring retest로 bullish 후보가 3명 이상에서 관측되지만, 파생 포지셔닝은 bear signals 4개와 CVD 감소를 통해 단기 약세 압력을 더 강하게 반영한다."
    ],
    "executive_summary": "BTC/USDT 1일 구조는 Wyckoff 기준 확인된 축적 구조의 Phase D로 해석되며, 현재 위치는 SOS $82,828.70 이후 상단 수용에 실패하고 TERMINAL_SPRING $74,868 재시험권으로 되돌아온 상태다. 구조적 방향성은 아직 bullish 축적 우위로 유지되지만, 가격이 SC $80,600, EMA20 $77,482.96, EMA120 $77,609.47 아래에 있어 Phase D의 강세 수용은 미완성이다. $74,868-$75,814 구간은 Wyckoff 스프링, Fibonacci 스윙 저점, Harmonic bullish Gartley PRZ가 겹치는 핵심 하단 구조 구간이며, $76,571-$78,180은 회복 여부를 판정할 중단 저항 클러스터다. 주요 위험은 SOS 실패 성격, 파생시장 CVD 약화, 롱 계정 증가에 따른 청산 취약성이며, $65,595.70 하회는 축적 구조 자체의 신뢰도를 무효화하는 레벨이다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bullish\",\n  \"overall_confidence\": 0.56,\n  \"execution_setup\": {\n    \"setup_bias\": \"bullish\",\n    \"setup_strength\": 0.58,\n    \"active_setups\": [\n      \"가격 $75,928은 Wyckoff TERMINAL_SPRING $74,868 재시험권에 위치해 있어 축적 구조 내 스프링 테스트 후보\",\n      \"strict/high bullish Gartley PRZ $74,594.52-$75,813.87 상단 부근에서 반등 후보가 형성 중이나 아직 확인 반응은 없음\",\n      \"Fibonacci 기준 상승 스윙 $74,868 → $82,829의 0.786 되돌림 $76,571.59 아래로 깊게 밀린 할인 구간\",\n      \"ICT 기준 EQ $76,628.35 아래 discount 영역이며 전일 저점 $75,641.20 하향 이탈로 sell-side 유동성 흡수 후보\",\n      \"Candlestick 기준 7일 EQ $76,191.80 아래에서 doji 및 bullish harami 후보가 발생했으나 거래량 확인은 부족\"\n    ],\n    \"setup_vs_structure\": \"구조적으로는 Wyckoff 축적 Phase D라는 상위 프레임 bullish 해석이 우세하지만, 실행 셋업은 아직 확인 전 반등 후보에 가깝다. 즉 구조와 셋업 방향은 대체로 일치하나, 파생시장 약세와 $76,600-$78,180 저항 밀집 때문에 즉시 강세 수용이 확인된 상태는 아니다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 1,\n    \"bearish_count\": 2,\n    \"neutral_count\": 3\n  },\n  \"key_levels\": {\n    \"support\": [\n      75641.2,\n      75204.19,\n      74868,\n      74594.52,\n      74203.6,\n      73900,\n      72900,\n      65595.7\n    ],\n    \"resistance\": [\n      75998.9,\n      76191.8,\n      76571.59,\n      76628.35,\n      77482.96,\n      77609.47,\n      77908.99,\n      78180,\n      80600,\n      82828.7\n    ]\n  },\n  \"confluences\": [\n    \"Wyckoff의 TERMINAL_SPRING $74,868과 Fibonacci 상승 스윙 저점 $74,868이 동일하게 핵심 구조 방어선으로 겹친다.\",\n    \"Harmonic bullish Gartley PRZ $74,594.52-$75,813.87은 Wyckoff $74,868 스프링 재시험권 및 ICT 전일 저점 $75,641.20과 겹치는 하단 반응 구간이다.\",\n    \"ICT의 최근 bullish BOS 레벨 $75,998.90, Derivatives 상단 청산/저항 $76,600, Fibonacci 0.786 $76,571.59, ICT EQ $76,628.35가 $76.0k-$76.6k 부근의 1차 구조 회복 구간으로 밀집한다.\",\n    \"EMA20 $77,482.96와 EMA120 $77,609.47은 ICT, Candlestick, Harmonic, Derivatives가 공통으로 언급한 중단 저항대로, $77.4k-$77.8k 구간의 공급 압력을 강화한다.\",\n    \"$78,077.10-$78,180.00 구간은 ICT 전일 고점, 7일 고점, Candlestick 저항, Harmonic bearish PRZ 후보가 겹치는 상단 수용 검증 구간이다.\",\n    \"Wyckoff SOS $82,828.70은 ICT range high $82,828.70 및 Fibonacci 스윙 고점 $82,829와 일치해 상위 구조의 재수용 기준으로 작동한다.\"\n  ],\n  \"conflicts\": [\n    \"Wyckoff는 확인된 축적 구조와 Phase D 맥락을 근거로 상위 구조를 bullish로 보지만, Fibonacci·Derivatives·Candlestick은 현재가가 EMA20/EMA120 및 핵심 되돌림 아래에 있어 현 구간 수용을 bearish로 본다.\",\n    \"Harmonic은 strict/high bullish Gartley PRZ를 제시하지만 confirmed reaction이 없어 단독으로 구조를 뒤집을 수 없으며, 이는 Derivatives의 CVD 약화 및 롱 계정 증가에 따른 롱 청산 리스크와 충돌한다.\",\n    \"ICT는 최근 구조 이벤트를 $75,998.90 상방 BOS로 보아 구조 편향을 bullish로 분류하지만, 현재가 $75,928이 해당 레벨을 소폭 하회해 실제 수용 여부는 불확실하다.\",\n    \"실행 셋업은 discount·PRZ·spring retest로 bullish 후보가 3명 이상에서 관측되지만, 파생 포지셔닝은 bear signals 4개와 CVD 감소를 통해 단기 약세 압력을 더 강하게 반영한다.\"\n  ],\n  \"highest_conviction_analyst\": \"Wyckoff Expert — 축적 구조 적합도가 92.5로 가장 높고, SC $80,600 → AR $93,080 → ST $84,408.6 → Spring $65,595.7 → TERMINAL_SPRING $74,868 → SOS $82,828.7의 구체적 이벤트 체인이 확인되어 상위 구조 판단의 근거가 가장 명확하다. 다만 현재가는 SOS와 SC를 모두 하회해 Phase D 수용 실패 및 스프링 재시험 조건을 함께 반영해야 한다.\",\n  \"invalidation_level\": \"구조적 bullish 축적 해석의 핵심 무효화는 $65,595.70 하회이며, 단기 Phase D/SOS 유지 관점은 $74,868 및 $74,203.60 하회 시 크게 훼손된다.\",\n  \"executive_summary\": \"BTC/USDT 1일 구조는 Wyckoff 기준 확인된 축적 구조의 Phase D로 해석되며, 현재 위치는 SOS $82,828.70 이후 상단 수용에 실패하고 TERMINAL_SPRING $74,868 재시험권으로 되돌아온 상태다. 구조적 방향성은 아직 bullish 축적 우위로 유지되지만, 가격이 SC $80,600, EMA20 $77,482.96, EMA120 $77,609.47 아래에 있어 Phase D의 강세 수용은 미완성이다. $74,868-$75,814 구간은 Wyckoff 스프링, Fibonacci 스윙 저점, Harmonic bullish Gartley PRZ가 겹치는 핵심 하단 구조 구간이며, $76,571-$78,180은 회복 여부를 판정할 중단 저항 클러스터다. 주요 위험은 SOS 실패 성격, 파생시장 CVD 약화, 롱 계정 증가에 따른 청산 취약성이며, $65,595.70 하회는 축적 구조 자체의 신뢰도를 무효화하는 레벨이다.\"\n}"
  },
  "overall_signal": "bullish",
  "overall_confidence": 0.56,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.52,
    "waypoints": [
      {
        "seq": 1,
        "price": 74594.52,
        "type": "liquidity_sweep",
        "source": "Harmonic(Gartley PRZ 하단 $74,594.52), Wyckoff(TERMINAL_SPRING $74,868), Fibonacci(스윙 저점 $74,868), ICT/Candlestick(7일 저점 $74,203.60)",
        "description": "현재가 $75,928은 Gartley PRZ 상단 $75,813.87 바로 위이며 confirmed_reaction=false라 하단 매도 유동성 회수가 선행될 가능성이 높다. 파생 CVD -520·롱 계정 증가·전일 저점 $75,641.20 이탈을 근거로 Wyckoff/Fib 스프링 $74,868을 하향 스윕하며 Gartley PRZ 하단 $74,594.52까지 sell-side liquidity를 흡수하는 스프링 재시험 구간. 셋업 다수(discount·PRZ·sweep)가 모두 '확인 전 하단 테스트' 성격이라 첫 움직임은 하락 검증으로 정렬된다.",
        "est_hours": 6,
        "turning_zone": [
          73900.0,
          74594.52
        ],
        "likely_wick": 74203.6,
        "rejection_confirm": 74868.0,
        "invalid_overshoot": 73600.0,
        "calibration_reasoning": "Gartley PRZ 하단 $74,594.52를 상단으로, Chairman 지지 $73,900을 하단으로 설정해 폭 $694(≈0.36×ATR)의 스윕 밴드를 구성했다. 밴드 내 Chairman 지지 $74,203.6와 라운드넘버 $74,000 자석을 근거로 likely_wick을 $74,203.6로 하향 편향했고, $74,868(Wyckoff/Fib 스프링) 재탈환을 turn 확정 신호, $73,900 지지대 이탈($73,600)을 스프링 무효화 기준으로 삼았다."
      },
      {
        "seq": 2,
        "price": 76628.35,
        "type": "resistance_test",
        "source": "ICT(EQ $76,628.35), Fibonacci(0.786 $76,571.59), ICT(BOS $75,998.90 재탈환), Derivatives($76,600)",
        "description": "스프링이 방어되면 ICT BOS $75,998.90을 재탈환하며 Fib 0.786 $76,571.59·ICT EQ $76,628.35·Derivatives $76,600이 밀집한 1차 구조 회복 클러스터로 반등. EQ 재진입은 discount→재균형 전환 신호로 직전 스윕이 단순 stop-run이었음을 확인하는 핵심 분기다.",
        "est_hours": 15,
        "turning_zone": [
          76628.35,
          77209.0
        ],
        "likely_wick": 76800.0,
        "rejection_confirm": 76191.8,
        "invalid_overshoot": 77482.96,
        "calibration_reasoning": "ICT EQ $76,628.35(Fib0.786·Deriv $76,600 밀집의 상단)를 하단으로, 0.3×ATR 위 $77,209를 상단으로 잡아 WP3의 EMA20 $77,482.96 아래에서 밴드를 마감했다. likely_wick $76,800은 EQ 위 소폭 오버슛이며 미확정 하모닉 TP1 $76,828과 조건부로 정렬(단독 앵커 아님)했고, $76,191.8 회귀를 반응 확정, EMA20 상향 돌파를 WP2 turn 무효(WP3 직행)로 정의했다."
      },
      {
        "seq": 3,
        "price": 77908.99,
        "type": "swing_high",
        "source": "Fibonacci(0.618 황금비 $77,908.99), Derivatives($77,800-$77,908), Wyckoff/ICT/Candlestick(EMA20 $77,482.96 / EMA120 $77,609.47)",
        "description": "회복이 이어질 경우 Fib 0.618 황금비 $77,908.99 및 EMA20 $77,482.96/EMA120 $77,609.47, Derivatives $77,800 공급대가 겹치는 중단 저항으로 상승. 파생 약세(bear 4 vs bull 0)와 저항 밀집 때문에 이 구간에서 24시간 1차 스윙 고점이 형성될 확률이 높다.",
        "est_hours": 24,
        "turning_zone": [
          77908.99,
          79100.0
        ],
        "likely_wick": 78180.0,
        "rejection_confirm": 77482.96,
        "invalid_overshoot": 79787.71,
        "calibration_reasoning": "터미널 구간이라 Fib0.618 $77,908.99(EMA20/120·Deriv $77,800 밀집 공급대 상단)부터 폭 $1,191(≈0.62×ATR)의 넓은 밴드를 부여하고, Chairman $78,180·Fib저항 $78,848.35를 포함하되 미확정 하모닉 TP3 $79,455 아래에서 마감했다. 약세 파생·저항 밀집을 반영해 likely_wick을 공급대 바로 위 첫 Chairman 저항 $78,180으로 보수 설정, EMA20 $77,482.96 상실을 고점 확정, Fib0.382 $79,787.71 돌파를 0.618 스윙고점 무효화로 잡았다."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 75990.0,
        "expected_low": 75050.0,
        "high_first": true
      },
      "8h": {
        "expected_high": 75950.0,
        "expected_low": 74594.52,
        "high_first": true
      },
      "24h": {
        "expected_high": 77908.99,
        "expected_low": 74594.52,
        "high_first": false
      }
    },
    "triggers": {
      "bullish": {
        "price": 78180.0,
        "description": "EMA20/EMA120 $77,482-$77,609 및 0.618 $77,908.99 회복 후 7일 고점 $78,180을 상향 돌파·수용하면 Wyckoff Phase D 마크업 가속이 확인되며 $80,600(SC) → $82,828.70(SOS) 재수용을 향한다."
      },
      "bearish": {
        "price": 74203.6,
        "description": "Gartley PRZ 하단 $74,594.52와 7일 저점 $74,203.60을 종가로 이탈하면 스프링 무효화로 sweep-and-recover 시나리오가 깨지고 파생 청산 유동성 $73,900 → $72,900을 향해 하락 가속한다."
      }
    },
    "scenario_invalidation": 73900.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.52,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 74594.52,\n      \"type\": \"liquidity_sweep\",\n      \"source\": \"Harmonic(Gartley PRZ 하단 $74,594.52), Wyckoff(TERMINAL_SPRING $74,868), Fibonacci(스윙 저점 $74,868), ICT/Candlestick(7일 저점 $74,203.60)\",\n      \"description\": \"현재가 $75,928은 Gartley PRZ 상단 $75,813.87 바로 위이며 confirmed_reaction=false라 하단 매도 유동성 회수가 선행될 가능성이 높다. 파생 CVD -520·롱 계정 증가·전일 저점 $75,641.20 이탈을 근거로 Wyckoff/Fib 스프링 $74,868을 하향 스윕하며 Gartley PRZ 하단 $74,594.52까지 sell-side liquidity를 흡수하는 스프링 재시험 구간. 셋업 다수(discount·PRZ·sweep)가 모두 '확인 전 하단 테스트' 성격이라 첫 움직임은 하락 검증으로 정렬된다.\",\n      \"est_hours\": 6\n    },\n    {\n      \"seq\": 2,\n      \"price\": 76628.35,\n      \"type\": \"resistance_test\",\n      \"source\": \"ICT(EQ $76,628.35), Fibonacci(0.786 $76,571.59), ICT(BOS $75,998.90 재탈환), Derivatives($76,600)\",\n      \"description\": \"스프링이 방어되면 ICT BOS $75,998.90을 재탈환하며 Fib 0.786 $76,571.59·ICT EQ $76,628.35·Derivatives $76,600이 밀집한 1차 구조 회복 클러스터로 반등. EQ 재진입은 discount→재균형 전환 신호로 직전 스윕이 단순 stop-run이었음을 확인하는 핵심 분기다.\",\n      \"est_hours\": 15\n    },\n    {\n      \"seq\": 3,\n      \"price\": 77908.99,\n      \"type\": \"swing_high\",\n      \"source\": \"Fibonacci(0.618 황금비 $77,908.99), Derivatives($77,800-$77,908), Wyckoff/ICT/Candlestick(EMA20 $77,482.96 / EMA120 $77,609.47)\",\n      \"description\": \"회복이 이어질 경우 Fib 0.618 황금비 $77,908.99 및 EMA20 $77,482.96/EMA120 $77,609.47, Derivatives $77,800 공급대가 겹치는 중단 저항으로 상승. 파생 약세(bear 4 vs bull 0)와 저항 밀집 때문에 이 구간에서 24시간 1차 스윙 고점이 형성될 확률이 높다.\",\n      \"est_hours\": 24\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 75990.0, \"expected_low\": 75050.0, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 75950.0, \"expected_low\": 74594.52, \"high_first\": true},\n    \"24h\": {\"expected_high\": 77908.99, \"expected_low\": 74594.52, \"high_first\": false}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 78180.0, \"description\": \"EMA20/EMA120 $77,482-$77,609 및 0.618 $77,908.99 회복 후 7일 고점 $78,180을 상향 돌파·수용하면 Wyckoff Phase D 마크업 가속이 확인되며 $80,600(SC) → $82,828.70(SOS) 재수용을 향한다.\"},\n    \"bearish\": {\"price\": 74203.6, \"description\": \"Gartley PRZ 하단 $74,594.52와 7일 저점 $74,203.60을 종가로 이탈하면 스프링 무효화로 sweep-and-recover 시나리오가 깨지고 파생 청산 유동성 $73,900 → $72,900을 향해 하락 가속한다.\"}\n  },\n  \"scenario_invalidation\": 73900.0\n}\n```"
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 74594.52,
        "turning_zone": [
          73900.0,
          74594.52
        ],
        "likely_wick": 74203.6,
        "rejection_confirm": 74868.0,
        "invalid_overshoot": 73600.0,
        "calibration_reasoning": "Gartley PRZ 하단 $74,594.52를 상단으로, Chairman 지지 $73,900을 하단으로 설정해 폭 $694(≈0.36×ATR)의 스윕 밴드를 구성했다. 밴드 내 Chairman 지지 $74,203.6와 라운드넘버 $74,000 자석을 근거로 likely_wick을 $74,203.6로 하향 편향했고, $74,868(Wyckoff/Fib 스프링) 재탈환을 turn 확정 신호, $73,900 지지대 이탈($73,600)을 스프링 무효화 기준으로 삼았다."
      },
      {
        "seq": 2,
        "base_target": 76628.35,
        "turning_zone": [
          76628.35,
          77209.0
        ],
        "likely_wick": 76800.0,
        "rejection_confirm": 76191.8,
        "invalid_overshoot": 77482.96,
        "calibration_reasoning": "ICT EQ $76,628.35(Fib0.786·Deriv $76,600 밀집의 상단)를 하단으로, 0.3×ATR 위 $77,209를 상단으로 잡아 WP3의 EMA20 $77,482.96 아래에서 밴드를 마감했다. likely_wick $76,800은 EQ 위 소폭 오버슛이며 미확정 하모닉 TP1 $76,828과 조건부로 정렬(단독 앵커 아님)했고, $76,191.8 회귀를 반응 확정, EMA20 상향 돌파를 WP2 turn 무효(WP3 직행)로 정의했다."
      },
      {
        "seq": 3,
        "base_target": 77908.99,
        "turning_zone": [
          77908.99,
          79100.0
        ],
        "likely_wick": 78180.0,
        "rejection_confirm": 77482.96,
        "invalid_overshoot": 79787.71,
        "calibration_reasoning": "터미널 구간이라 Fib0.618 $77,908.99(EMA20/120·Deriv $77,800 밀집 공급대 상단)부터 폭 $1,191(≈0.62×ATR)의 넓은 밴드를 부여하고, Chairman $78,180·Fib저항 $78,848.35를 포함하되 미확정 하모닉 TP3 $79,455 아래에서 마감했다. 약세 파생·저항 밀집을 반영해 likely_wick을 공급대 바로 위 첫 Chairman 저항 $78,180으로 보수 설정, EMA20 $77,482.96 상실을 고점 확정, Fib0.382 $79,787.71 돌파를 0.618 스윙고점 무효화로 잡았다."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 74594.52,\n      \"turning_zone\": [73900.0, 74594.52],\n      \"likely_wick\": 74203.6,\n      \"rejection_confirm\": 74868.0,\n      \"invalid_overshoot\": 73600.0,\n      \"calibration_reasoning\": \"Gartley PRZ 하단 $74,594.52를 상단으로, Chairman 지지 $73,900을 하단으로 설정해 폭 $694(≈0.36×ATR)의 스윕 밴드를 구성했다. 밴드 내 Chairman 지지 $74,203.6와 라운드넘버 $74,000 자석을 근거로 likely_wick을 $74,203.6로 하향 편향했고, $74,868(Wyckoff/Fib 스프링) 재탈환을 turn 확정 신호, $73,900 지지대 이탈($73,600)을 스프링 무효화 기준으로 삼았다.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 76628.35,\n      \"turning_zone\": [76628.35, 77209.0],\n      \"likely_wick\": 76800.0,\n      \"rejection_confirm\": 76191.8,\n      \"invalid_overshoot\": 77482.96,\n      \"calibration_reasoning\": \"ICT EQ $76,628.35(Fib0.786·Deriv $76,600 밀집의 상단)를 하단으로, 0.3×ATR 위 $77,209를 상단으로 잡아 WP3의 EMA20 $77,482.96 아래에서 밴드를 마감했다. likely_wick $76,800은 EQ 위 소폭 오버슛이며 미확정 하모닉 TP1 $76,828과 조건부로 정렬(단독 앵커 아님)했고, $76,191.8 회귀를 반응 확정, EMA20 상향 돌파를 WP2 turn 무효(WP3 직행)로 정의했다.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 77908.99,\n      \"turning_zone\": [77908.99, 79100.0],\n      \"likely_wick\": 78180.0,\n      \"rejection_confirm\": 77482.96,\n      \"invalid_overshoot\": 79787.71,\n      \"calibration_reasoning\": \"터미널 구간이라 Fib0.618 $77,908.99(EMA20/120·Deriv $77,800 밀집 공급대 상단)부터 폭 $1,191(≈0.62×ATR)의 넓은 밴드를 부여하고, Chairman $78,180·Fib저항 $78,848.35를 포함하되 미확정 하모닉 TP3 $79,455 아래에서 마감했다. 약세 파생·저항 밀집을 반영해 likely_wick을 공급대 바로 위 첫 Chairman 저항 $78,180으로 보수 설정, EMA20 $77,482.96 상실을 고점 확정, Fib0.382 $79,787.71 돌파를 0.618 스윙고점 무효화로 잡았다.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 154.5,
      "chairman": 67.2,
      "operating_path": 303.6,
      "tp_calibrator": 245.6
    },
    "agents": {},
    "total_s": 771.0
  }
}