BTC/USDT 15M Council Report

Signal: BEARISH (67%)  |  Price: $60,170.50  |  2026-06-28 17:00 KST  |  300 candles

Council: 0 bullish, 4 neutral, 2 bearish  |  Support: $60,092 / $60,085 / $60,015  |  Resistance: $60,186 / $60,196 / $60,247

result.json   raw.txt   report.md


BTC Chart

Executive Summary

현재 15분 BTC/USDT 구조는 중립 박스 내부 변동이 남아 있으나, 핵심 구조 판정은 bearish 쪽이 우세하다. Wyckoff는 BC $60,580.00, AR $59,530.70로 고정된 분배 범위 안에서 UT $60,303.20, UTAD $60,314.30 이후 LPSY $59,997.40가 나타난 Phase D 분배 후보로 해석하며, ICT도 $60,162.00 bearish CHoCH와 $59,819.80 bearish BOS로 하방 구조 전환을 확인한다. 현재가는 $60,170.50으로 분배 박스 EQ 및 ICT EQ 위의 프리미엄 영역에 있고, $60,186-$60,197 및 $60,303-$60,314 저항대가 여러 방법론에서 중첩된다. 다만 Harmonic은 $59,899-$60,197 및 $60,109-$60,258 부근의 확인된 bullish PRZ 반응을 제시하므로, 이는 구조 반전 근거라기보다 현 bearish 구조에 대한 단기 반등/방어 리스크로 처리한다. 구조적 무효화는 $60,303-$60,314 회복에서 경고가 발생하고, $60,580.00 상방 수용 시 bearish 분배 해석이 본질적으로 훼손된다.

Confluences

Conflicts


Agent Matrix

AgentSignalConfidenceSupportResistance
Wyckoff ExpertBEARISH66%$59,997 / $59,820$60,167 / $60,303
ICT TraderBEARISH75%$60,092 / $59,820$60,247 / $60,470
Derivatives TraderBEARISH61%$60,064 / $58,900$60,196 / $60,285
Candlestick ReaderBEARISH58%$60,064 / $59,981$60,196 / $60,285
Fibonacci AnalystBEARISH62%$60,085 / $60,015$60,186 / $60,313
Harmonic SpecialistBULLISH58%$60,110 / $60,099$60,197 / $60,243

Agent Details

Wyckoff Expert — BEARISH (66%)

Support: $59,997 / $59,820 / $59,531 | Resistance: $60,167 / $60,303 / $60,314 | Horizon: short term

15분 구조는 BC $60,580.00 → AR $59,530.70로 메인 분배 범위가 고정되었고, 이후 ST $60,167.30, SOW_IN_PHASE_B $59,819.80, UT $60,303.20, UTAD $60,314.30, LPSY $59,997.40 순서가 감지되어 구조적 편향은 bearish입니다. 다만 현재가 $60,170.50은 LPSY $59,997.40 위이자 ST $60,167.30 바로 위에 있어, 아직 LPSY 이후의 명확한 SOW 확정이라기보다 Phase D 분배 후보가 진행 중인 상태로 봐야 합니다. 즉 구조는 약세이나 즉시 경로는 $60,303.20~$60,314.30 공급 재거부가 나오면 $59,819.80 재시험, 그 아래에서는 $59,530.70 AR 저점 테스트가 우선입니다. 반대로 $60,314.30을 회복하고 특히 BC/상단 $60,580.00 위에서 수용되면 현재 분배 해석은 크게 훼손됩니다.
ICT Trader — BEARISH (75%)

Support: $60,092 / $59,820 / $59,715 | Resistance: $60,247 / $60,470 / $60,698 | Horizon: short term

15분 구조는 BOS bullish $60,245.00, $60,557.80 이후 $60,162.00에서 bearish CHoCH가 발생했고, 이어 $59,819.80 하향 BOS가 확인되어 현재 structure_bias는 bearish로 판단한다. 현재가 $60,170.50는 EQ $60,092.30 위 프리미엄에 있으며, 되돌림이 88.8%까지 진행되어 하방 재개를 노리는 ICT 관점의 매도 셋업이 유효하다. 다만 현재 가격이 CHoCH 레벨 $60,162.00 바로 위에 있어 즉시 하락 확정이라기보다는 $60,092.30 재이탈과 $59,819.80 하향 압력이 확인될 때 신뢰도가 높아진다. 활성 OB와 오픈 FVG가 없고, 최근 liquidity sweep도 감지되지 않아 데이터 기반 확신은 중간 수준이지만, 구조와 셋업 점수는 모두 약한 bearish 우위를 가리킨다.
Derivatives Trader — BEARISH (61%)

Support: $60,064 / $58,900 / $58,030 | Resistance: $60,196 / $60,285 / $61,400 | Horizon: short term, 향후 4-8시간

구조적으로는 $58,030.00 저점과 $61,931.10 고점 사이의 박스권 내부이며, 현재가 $60,170.50은 EMA20 $60,063.62 위지만 EMA120 $60,195.96 및 EMA240 $60,284.78 아래라 확정 BOS나 CHoCH가 확인되지 않아 structure_bias는 neutral이다. 다만 셋업은 bearish 쪽으로 기울어져 있는데, 롱 계정 비율이 0.669까지 높고 account_long_crowding이 1.000인 반면 OI는 24시간 -1.7450% 감소해 롱 포지션의 질이 약하다. CVD가 +$2,232.59 증가했음에도 가격은 24시간 -0.58% 하락해 공격적 매수가 가격을 밀어 올리지 못하는 흡수 신호로 해석된다. basis도 -0.0822%로 음수이며, aggregate_score 0.393과 bear_signals 2개가 단기적으로 $58,900 청산 구간 테스트 가능성을 높인다.
Candlestick Reader — BEARISH (58%)

Support: $60,064 / $59,981 / $58,030 | Resistance: $60,196 / $60,285 / $61,931 | Horizon: 단기(15분봉 기준 4~12개 캔들)

현재 BTC는 $60,170.50으로 EMA20 $60,063.62 위에 있지만 EMA120 $60,195.96과 EMA240 $60,284.78 아래에 머물러 있어 단기 반등이 중기 저항에 막히는 구조입니다. 최근 패턴은 shooting_star@299, bearish_harami@297/@299가 확인되어 상단 저항권에서의 매도 반응을 시사하며, bear_score 2.60이 bull_score 1.40을 앞섭니다. 다만 best_pattern_quality 0.734의 bullish_harami가 고거래량으로 감지되어 즉각적인 강한 하락보다는 $60,284.78 돌파 실패 시 단기 되밀림 가능성이 더 높은 setup으로 해석합니다. 구조적으로는 명확한 BOS나 CHoCH 확인이 없고 가격이 7일 중간값 $59,980.55 부근에서 횡보하므로 structure_bias는 neutral로 유지합니다.
Fibonacci Analyst — BEARISH (62%)

Support: $60,085 / $60,015 / $59,944 | Resistance: $60,186 / $60,313 / $60,314 | Horizon: short term

확정 구조 관점에서는 명확한 BOS/CHoCH 또는 구조적 수용 확인 데이터가 부족하므로 structure_bias는 neutral로 본다. 다만 실행 셋업 관점에서는 현재가 $60,170.50가 하락 스윙 $60,314 → $59,715의 EQ $60,014.55 위 프리미엄에 있고, ret_0.786 저항 $60,186.01을 거의 정확히 테스트하고 있어 단기 하방 반응 셋업이 우세하다. 특히 0.618 골든비율 $60,085.29가 가장 중요한 1차 지지이며, 이 레벨이 깨지면 ret_0.5 $60,014.55와 ret_0.382 $59,943.81의 고밀도 confluence zone으로 되돌림이 열릴 수 있다. 반대로 $60,313.44~$60,314 상단 클러스터를 회복하면 현재의 bearish setup은 무효화된다.
Harmonic Specialist — BULLISH (58%)

Support: $60,110 / $60,099 / $60,005 | Resistance: $60,197 / $60,243 / $60,258 | Horizon: short term

15분 BTC/USDT는 현재 $60,170.50이며, 엄격 기준 고품질 harmonic PRZ가 현 가격 주변에 밀집해 있다. 구조적으로는 BOS/CHoCH/명확한 수용 구조 데이터가 없으므로 structure_bias는 neutral로 둔다. 다만 setup 측면에서는 확인된 bullish Bat PRZ $59,899.14-$60,197.02, bullish Gartley PRZ $60,109.93-$60,258.36, bullish Butterfly PRZ $59,792.38-$60,098.72가 모두 PRZ 터치 후 방어 및 AD 반응을 보였고, validated bullish TP가 $60,242.79, $60,363.09, $60,557.80로 정렬된다. 방향 점수도 bullish 3.611 대 bearish 1.878로 우위이나 dominance가 0.316에 그쳐 강한 추세 판단은 아니며, $60,179-$60,545의 bearish Shark/Bat PRZ가 즉시 상단 저항으로 작동할 수 있다. 따라서 harmonic 단독 구조 전환 신호가 아니라, $59,848-$60,101 방어가 유지되는 한 단기 bullish 반응 setup으로 해석한다.

Operating Path — complex (60%)

#PriceTypeSourceEst. HoursDescription
1$59,976support_testfibonacci (strict fib_confluence $59,976.10, score 1.0), wyckoff (LPSY $59,997.40), candlestick/derivatives (7일 레인지 EQ $59,980.55)3현재가 $60,170.50는 분배 박스 EQ($60,055)·ICT EQ($60,092) 위 프리미엄이며 ret_0.786 $60,186.01 저항에 0.03% 거리로 막혀 있다. setup_bias(BEARISH 72%)와 구조(BEARISH)가 정렬되므로 첫 레그는 하방. WP1 후보표 최우선 레벨인 strict fib confluence $59,976.10(score 1.0)는 Wyckoff LPSY $59,997.40 및 7일 EQ $59,980.55와 겹치는 1차 지지/균형 확인 구간이자 harmonic 방어대 상단으로, 여기서 단기 반등 리스크가 시작된다.
2$60,186resistance_testfibonacci (ret_0.786 $60,186.01), candlestick (EMA120 $60,195.96), harmonic (Bat PRZ 상단 $60,197.02 / Gartley PRZ $60,109.93-$60,258.36), ict (CHoCH $60,162.00)9WP1에서 확인된 harmonic bullish PRZ(Bat·Gartley·Butterfly) 방어 반응으로 '분배 상단부 재공급 검증' 반등이 발생한다. 상승은 ret_0.786 $60,186.01·EMA120 $60,195.96·Harmonic Bat 상단 $60,197.02가 중첩된 공급 클러스터에서 거부된다. ICT CHoCH $60,162.00을 수용하지 못하면 재공급이 확정되며, 이 반등은 추세 반전이 아니라 숏 재진입 구간이다(harmonic 단독으로 WP1을 뒤집지 않음, TP/리스크 입력으로만 사용).
3$59,820swing_lowict (bearish BOS $59,819.80), wyckoff (SOW_IN_PHASE_B $59,819.80)16재공급 거부 후 harmonic 방어 바닥 $59,848을 이탈하며, Wyckoff와 ICT가 공통 식별하는 핵심 하방 구조 레벨 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 하향 돌파한다. strict 구조 이벤트 2개가 동일 레벨에서 수렴하는 분배 마크다운 확정 지점이다.
4$59,563swing_lowfibonacci (strict fib_confluence $59,563.34, score 1.0 / 클러스터 $59,551.74), wyckoff (AR $59,530.70)22$59,819.80 수용 이탈 후 연장 하락으로 strict fib confluence $59,563.34(score 1.0)와 Wyckoff AR $59,530.70가 겹치는 분배 범위 하단 구조 지지대(AR 저점)를 재시험한다. 후보표 2순위 strict 레벨로 24h 하단 목표.

Period Extremes

HorizonExpected LowExpected HighSequence
4h$59,976$60,186High first
8h$59,944$60,186High first
24h$59,531$60,197High first

Triggers

Invalidation: $60,314

Raw Operating Path Response
```json
{
  "path_type": "complex",
  "confidence": 0.6,
  "waypoints": [
    {
      "seq": 1,
      "price": 59976.10,
      "type": "support_test",
      "source": "fibonacci (strict fib_confluence $59,976.10, score 1.0), wyckoff (LPSY $59,997.40), candlestick/derivatives (7일 레인지 EQ $59,980.55)",
      "description": "현재가 $60,170.50는 분배 박스 EQ($60,055)·ICT EQ($60,092) 위 프리미엄이며 ret_0.786 $60,186.01 저항에 0.03% 거리로 막혀 있다. setup_bias(BEARISH 72%)와 구조(BEARISH)가 정렬되므로 첫 레그는 하방. WP1 후보표 최우선 레벨인 strict fib confluence $59,976.10(score 1.0)는 Wyckoff LPSY $59,997.40 및 7일 EQ $59,980.55와 겹치는 1차 지지/균형 확인 구간이자 harmonic 방어대 상단으로, 여기서 단기 반등 리스크가 시작된다.",
      "est_hours": 3
    },
    {
      "seq": 2,
      "price": 60186.01,
      "type": "resistance_test",
      "source": "fibonacci (ret_0.786 $60,186.01), candlestick (EMA120 $60,195.96), harmonic (Bat PRZ 상단 $60,197.02 / Gartley PRZ $60,109.93-$60,258.36), ict (CHoCH $60,162.00)",
      "description": "WP1에서 확인된 harmonic bullish PRZ(Bat·Gartley·Butterfly) 방어 반응으로 '분배 상단부 재공급 검증' 반등이 발생한다. 상승은 ret_0.786 $60,186.01·EMA120 $60,195.96·Harmonic Bat 상단 $60,197.02가 중첩된 공급 클러스터에서 거부된다. ICT CHoCH $60,162.00을 수용하지 못하면 재공급이 확정되며, 이 반등은 추세 반전이 아니라 숏 재진입 구간이다(harmonic 단독으로 WP1을 뒤집지 않음, TP/리스크 입력으로만 사용).",
      "est_hours": 9
    },
    {
      "seq": 3,
      "price": 59819.80,
      "type": "swing_low",
      "source": "ict (bearish BOS $59,819.80), wyckoff (SOW_IN_PHASE_B $59,819.80)",
      "description": "재공급 거부 후 harmonic 방어 바닥 $59,848을 이탈하며, Wyckoff와 ICT가 공통 식별하는 핵심 하방 구조 레벨 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 하향 돌파한다. strict 구조 이벤트 2개가 동일 레벨에서 수렴하는 분배 마크다운 확정 지점이다.",
      "est_hours": 16
    },
    {
      "seq": 4,
      "price": 59563.34,
      "type": "swing_low",
      "source": "fibonacci (strict fib_confluence $59,563.34, score 1.0 / 클러스터 $59,551.74), wyckoff (AR $59,530.70)",
      "description": "$59,819.80 수용 이탈 후 연장 하락으로 strict fib confluence $59,563.34(score 1.0)와 Wyckoff AR $59,530.70가 겹치는 분배 범위 하단 구조 지지대(AR 저점)를 재시험한다. 후보표 2순위 strict 레벨로 24h 하단 목표.",
      "est_hours": 22
    }
  ],
  "period_extremes": {
    "4h":  {"expected_high": 60186.01, "expected_low": 59976.10, "high_first": true},
    "8h":  {"expected_high": 60186.01, "expected_low": 59943.81, "high_first": true},
    "24h": {"expected_high": 60197.02, "expected_low": 59530.70, "high_first": true}
  },
  "triggers": {
    "bullish": {"price": 60314.30, "description": "Wyckoff UTAD $60,314.30 / 공급 클러스터 $60,303-$60,314를 회복·수용하면 분배 해석 경고가 발생하고, BC $60,580.00 상방 수용 시 bearish 분배 경로가 본질적으로 무효화되며 상방 가속."},
    "bearish": {"price": 59819.80, "description": "$59,976 LPSY/EQ 상실 후 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 결정적으로 하향 이탈·수용하면 마크다운이 가속되어 $59,563-$59,530 AR 구간이 즉시 열린다."}
  },
  "scenario_invalidation": 60314.30
}
```

Raw Chairman Response
{
  "overall_signal": "bearish",
  "overall_confidence": 0.67,
  "execution_setup": {
    "setup_bias": "bearish",
    "setup_strength": 0.72,
    "active_setups": [
      "Wyckoff: 분배 박스 EQ 약 $60,055.35 위 프리미엄 영역에서 UT $60,303.20 및 UTAD $60,314.30 이후 LPSY $59,997.40가 형성된 Phase D 후보",
      "ICT: EQ $60,092.30 위 프리미엄에서 bearish CHoCH $60,162.00 이후 bearish BOS $59,819.80가 확인된 구조",
      "Fibonacci: 하락 스윙 $60,314 → $59,715의 ret_0.786 저항 $60,186.01을 현재가가 테스트 중",
      "Candlestick/EMA: 가격은 EMA20 $60,063.62 위지만 EMA120 $60,195.96 및 EMA240 $60,284.78 아래에 정체",
      "Derivatives: 롱 계정 비율 0.669로 롱 쏠림이 강하고, OI 24시간 -1.7450% 감소와 음수 basis -0.0822%가 동반",
      "Harmonic 반대 조건: $59,899.14-$60,197.02 및 $60,109.93-$60,258.36 부근의 bullish PRZ 반응이 있어 단기 반등 방어 구간으로 작동 중"
    ],
    "setup_vs_structure": "실행 셋업은 구조적 bearish 판정과 대체로 정렬되어 있다. 다만 harmonic의 확인된 bullish PRZ 반응이 현 가격대에 겹쳐 있어, 즉시 추세 확정보다는 분배 상단부에서의 재공급 여부를 검증하는 구간으로 봐야 한다."
  },
  "signal_breakdown": {
    "bullish_count": 0,
    "bearish_count": 2,
    "neutral_count": 4
  },
  "key_levels": {
    "support": [
      60092.3,
      60085.29,
      60014.55,
      59997.4,
      59943.81,
      59819.8,
      59530.7
    ],
    "resistance": [
      60186.01,
      60195.96,
      60247.1,
      60258.36,
      60284.78,
      60303.2,
      60314.3,
      60580.0
    ]
  },
  "confluences": [
    "Wyckoff와 ICT가 모두 $59,819.80을 핵심 하방 구조 레벨로 식별한다. Wyckoff는 SOW_IN_PHASE_B, ICT는 bearish BOS 레벨로 본다.",
    "Wyckoff의 UTAD $60,314.30, Fibonacci의 상단 클러스터 $60,313.44-$60,314, 그리고 ICT의 프리미엄 되돌림 구조가 $60,303-$60,314 구간을 주요 공급/무효화 전 단계 저항으로 일치시킨다.",
    "Fibonacci ret_0.786 $60,186.01, Candlestick EMA120 $60,195.96, Harmonic bullish Bat 상단 $60,197.02가 $60,186-$60,197 부근의 단기 반응 레벨로 겹친다.",
    "ICT EQ $60,092.30, Fibonacci golden ratio $60,085.29, Harmonic PRZ 상단 $60,098.72-$60,101.40이 $60,085-$60,101 부근을 단기 균형/방어 구간으로 수렴시킨다.",
    "Wyckoff AR $59,530.70와 Fibonacci 확장/클러스터 $59,551.74-$59,563.34가 $59,530-$59,563 부근을 하단 구조 지지대로 공통 식별한다.",
    "Candlestick과 Derivatives 모두 EMA120 $60,195.96 및 EMA240 $60,284.78 아래 정체를 중기 저항 조건으로 본다."
  ],
  "conflicts": [
    "Harmonic은 확인된 bullish Bat, Gartley, Butterfly PRZ 반응을 근거로 setup_bias를 bullish로 제시하지만, Wyckoff와 ICT는 각각 분배 Phase D 후보와 bearish CHoCH/BOS를 근거로 구조를 bearish로 판정한다.",
    "Candlestick에서는 고거래량 bullish harami가 존재하지만, 최근 shooting star 및 bearish harami가 동시에 감지되어 캔들 자체도 단기 방향성이 완전히 단일하지 않다.",
    "Fibonacci는 구조 자체는 neutral로 두지만, 현재가가 프리미엄 및 ret_0.786 저항 $60,186.01에 위치한다는 점에서 실행 셋업은 bearish로 본다. 즉 구조 확정과 실행 조건 사이의 강도가 다르다.",
    "Derivatives는 롱 쏠림과 OI 감소를 bearish로 해석하지만, CVD는 +$2,232.59로 증가해 공격적 매수 유입 자체는 존재한다. 다만 가격이 동반 상승하지 못해 흡수로 해석되는 상태다."
  ],
  "highest_conviction_analyst": "ICT Trader — $60,162.00 bearish CHoCH 이후 $59,819.80 bearish BOS가 확인되어 구조 전환과 하방 구조 확인을 모두 제시했고, 현재가가 EQ $60,092.30 위 프리미엄 및 88.8% 깊은 되돌림에 위치한다는 정밀 조건까지 제시했기 때문이다. Wyckoff 역시 분배 Phase D 후보와 UT/UTAD/LPSY 배열을 제시해 높은 보조 신뢰도를 제공한다.",
  "invalidation_level": "$60,580.00 상방 수용. 단기적으로는 $60,303.20-$60,314.30 회복이 분배 Phase D 해석을 약화시키며, $60,580.00 위에서 수용되면 현재 bearish 구조 진단은 훼손된다.",
  "executive_summary": "현재 15분 BTC/USDT 구조는 중립 박스 내부 변동이 남아 있으나, 핵심 구조 판정은 bearish 쪽이 우세하다. Wyckoff는 BC $60,580.00, AR $59,530.70로 고정된 분배 범위 안에서 UT $60,303.20, UTAD $60,314.30 이후 LPSY $59,997.40가 나타난 Phase D 분배 후보로 해석하며, ICT도 $60,162.00 bearish CHoCH와 $59,819.80 bearish BOS로 하방 구조 전환을 확인한다. 현재가는 $60,170.50으로 분배 박스 EQ 및 ICT EQ 위의 프리미엄 영역에 있고, $60,186-$60,197 및 $60,303-$60,314 저항대가 여러 방법론에서 중첩된다. 다만 Harmonic은 $59,899-$60,197 및 $60,109-$60,258 부근의 확인된 bullish PRZ 반응을 제시하므로, 이는 구조 반전 근거라기보다 현 bearish 구조에 대한 단기 반등/방어 리스크로 처리한다. 구조적 무효화는 $60,303-$60,314 회복에서 경고가 발생하고, $60,580.00 상방 수용 시 bearish 분배 해석이 본질적으로 훼손된다."
}
Full Result JSON
{
  "symbol": "BTC/USDT",
  "timeframe": "15m",
  "timestamp": "2026-06-28 17:00 KST",
  "last_price": 60170.5,
  "num_candles": 300,
  "stage1_analyses": {
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "bearish",
      "confidence": 0.66,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.58,
      "setup_signals": [
        "분배 레짐(DIS) 우세: dis_score 96.2, regime_fitness 0.963, 활성 구조 15m_cycle_1",
        "현재가 $60,170.50은 분배 박스 EQ 약 $60,055.35 위에 있어 프리미엄/중단 상단부 반응 구간",
        "UT $60,303.20 및 UTAD $60,314.30 이후 LPSY $59,997.40 형성으로 Phase D 공급 재등장 후보",
        "현재가가 ST $60,167.30 부근에 위치해 있어 즉시 하락 확인보다는 $60,303.20~$60,314.30 재거부 여부가 핵심",
        "하단 확인 레벨은 SOW_IN_PHASE_B $59,819.80 및 AR 저점 $59,530.70 이탈"
      ],
      "reasoning": "15분 구조는 BC $60,580.00 → AR $59,530.70로 메인 분배 범위가 고정되었고, 이후 ST $60,167.30, SOW_IN_PHASE_B $59,819.80, UT $60,303.20, UTAD $60,314.30, LPSY $59,997.40 순서가 감지되어 구조적 편향은 bearish입니다. 다만 현재가 $60,170.50은 LPSY $59,997.40 위이자 ST $60,167.30 바로 위에 있어, 아직 LPSY 이후의 명확한 SOW 확정이라기보다 Phase D 분배 후보가 진행 중인 상태로 봐야 합니다. 즉 구조는 약세이나 즉시 경로는 $60,303.20~$60,314.30 공급 재거부가 나오면 $59,819.80 재시험, 그 아래에서는 $59,530.70 AR 저점 테스트가 우선입니다. 반대로 $60,314.30을 회복하고 특히 BC/상단 $60,580.00 위에서 수용되면 현재 분배 해석은 크게 훼손됩니다.",
      "key_levels": {
        "support": [
          59997.4,
          59819.8,
          59530.7
        ],
        "resistance": [
          60167.3,
          60303.2,
          60314.3,
          60580.0
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,580.00",
      "risk_scenario": "$60,303.20~$60,314.30의 UT/UTAD 공급대를 회복하고 $60,580.00 상단 위에서 수용되면 LPSY 기반 약세 구조가 실패하며, 분배 박스 상단 재평가 또는 구조 중립화가 필요합니다.",
      "data_quality": "high",
      "metrics": {
        "acc_score": 92.5,
        "dis_score": 96.2,
        "regime": "DIS",
        "regime_state": "dis_candidate",
        "structure_bias": "bearish",
        "phase_context": "dis_candidate / distribution / Phase D",
        "phases_detected": [
          "BC",
          "AR",
          "ST",
          "SOW_IN_PHASE_B",
          "UT",
          "UTAD",
          "LPSY"
        ],
        "last_phase": "LPSY",
        "phase_candidates": [
          {
            "label": "BC",
            "side": "high",
            "idx": 140,
            "price": 60580.0,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "low",
            "idx": 151,
            "price": 59530.7,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "high",
            "idx": 172,
            "price": 60167.3,
            "color": "#118ab2"
          },
          {
            "label": "SOW_IN_PHASE_B",
            "side": "low",
            "idx": 261,
            "price": 59819.8,
            "color": "#ef476f"
          },
          {
            "label": "UT",
            "side": "high",
            "idx": 264,
            "price": 60303.2,
            "color": "#f9844a"
          },
          {
            "label": "UTAD",
            "side": "high",
            "idx": 277,
            "price": 60314.3,
            "color": "#f9844a"
          },
          {
            "label": "LPSY",
            "side": "high",
            "idx": 292,
            "price": 59997.4,
            "color": "#8338ec"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "15m_cycle_1",
            "sequence": 1,
            "timeframe": "15m",
            "regime": "distribution",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 140,
            "end_idx": 292,
            "phase_count": 7,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 140,
                "price": 60580.0,
                "color": "#ffd166",
                "dt": "2026-06-27 01:00:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 151,
                "price": 59530.7,
                "color": "#06d6a0",
                "dt": "2026-06-27 03:45:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 172,
                "price": 60167.3,
                "color": "#118ab2",
                "dt": "2026-06-27 09:00:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 261,
                "price": 59819.8,
                "color": "#ef476f",
                "dt": "2026-06-28 07:15:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 264,
                "price": 60303.2,
                "color": "#f9844a",
                "dt": "2026-06-28 08:00:00+09:00"
              },
              {
                "label": "UTAD",
                "side": "high",
                "idx": 277,
                "price": 60314.3,
                "color": "#f9844a",
                "dt": "2026-06-28 11:15:00+09:00"
              },
              {
                "label": "LPSY",
                "side": "high",
                "idx": 292,
                "price": 59997.4,
                "color": "#8338ec",
                "dt": "2026-06-28 15:00:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "15m_cycle_1",
        "primary_structure_id": "15m_cycle_1",
        "structure_count": 1,
        "regime_fitness": 0.9625,
        "current_event": "LPSY",
        "major_phase": "D",
        "pos_in_range": 0.5,
        "main_range_low": 59530.7,
        "main_range_high": 60580.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.66,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.58,\n  \"setup_signals\": [\n    \"분배 레짐(DIS) 우세: dis_score 96.2, regime_fitness 0.963, 활성 구조 15m_cycle_1\",\n    \"현재가 $60,170.50은 분배 박스 EQ 약 $60,055.35 위에 있어 프리미엄/중단 상단부 반응 구간\",\n    \"UT $60,303.20 및 UTAD $60,314.30 이후 LPSY $59,997.40 형성으로 Phase D 공급 재등장 후보\",\n    \"현재가가 ST $60,167.30 부근에 위치해 있어 즉시 하락 확인보다는 $60,303.20~$60,314.30 재거부 여부가 핵심\",\n    \"하단 확인 레벨은 SOW_IN_PHASE_B $59,819.80 및 AR 저점 $59,530.70 이탈\"\n  ],\n  \"reasoning\": \"15분 구조는 BC $60,580.00 → AR $59,530.70로 메인 분배 범위가 고정되었고, 이후 ST $60,167.30, SOW_IN_PHASE_B $59,819.80, UT $60,303.20, UTAD $60,314.30, LPSY $59,997.40 순서가 감지되어 구조적 편향은 bearish입니다. 다만 현재가 $60,170.50은 LPSY $59,997.40 위이자 ST $60,167.30 바로 위에 있어, 아직 LPSY 이후의 명확한 SOW 확정이라기보다 Phase D 분배 후보가 진행 중인 상태로 봐야 합니다. 즉 구조는 약세이나 즉시 경로는 $60,303.20~$60,314.30 공급 재거부가 나오면 $59,819.80 재시험, 그 아래에서는 $59,530.70 AR 저점 테스트가 우선입니다. 반대로 $60,314.30을 회복하고 특히 BC/상단 $60,580.00 위에서 수용되면 현재 분배 해석은 크게 훼손됩니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59997.4,\n      59819.8,\n      59530.7\n    ],\n    \"resistance\": [\n      60167.3,\n      60303.2,\n      60314.3,\n      60580.0\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,580.00\",\n  \"risk_scenario\": \"$60,303.20~$60,314.30의 UT/UTAD 공급대를 회복하고 $60,580.00 상단 위에서 수용되면 LPSY 기반 약세 구조가 실패하며, 분배 박스 상단 재평가 또는 구조 중립화가 필요합니다.\",\n  \"data_quality\": \"high\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bearish",
      "confidence": 0.62,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.72,
      "setup_signals": [
        "현재가 $60,170.50가 EQ/ret_0.5 $60,014.55 위의 프리미엄 구간에 위치",
        "가격이 ret_0.786 저항 $60,186.01에 0.03% 거리로 근접하며 테스트 중",
        "상단 confluence zone $60,313.44에 ret_0.786 및 ret_0.618 클러스터가 존재해 추가 상승 시 공급 반응 가능",
        "0.618 골든비율 $60,085.29가 단기 지지로 작동 중이나 이탈 시 $60,014.55 및 $59,943.81까지 되돌림 위험 확대",
        "fib_reaction_state가 testing이며 reaction_probability 0.65로 핵심 피보나치 구간 반응 가능성이 중간 이상"
      ],
      "reasoning": "확정 구조 관점에서는 명확한 BOS/CHoCH 또는 구조적 수용 확인 데이터가 부족하므로 structure_bias는 neutral로 본다. 다만 실행 셋업 관점에서는 현재가 $60,170.50가 하락 스윙 $60,314 → $59,715의 EQ $60,014.55 위 프리미엄에 있고, ret_0.786 저항 $60,186.01을 거의 정확히 테스트하고 있어 단기 하방 반응 셋업이 우세하다. 특히 0.618 골든비율 $60,085.29가 가장 중요한 1차 지지이며, 이 레벨이 깨지면 ret_0.5 $60,014.55와 ret_0.382 $59,943.81의 고밀도 confluence zone으로 되돌림이 열릴 수 있다. 반대로 $60,313.44~$60,314 상단 클러스터를 회복하면 현재의 bearish setup은 무효화된다.",
      "key_levels": {
        "support": [
          60085.29,
          60014.55,
          59943.81,
          59714.8,
          59551.74
        ],
        "resistance": [
          60186.01,
          60313.44,
          60314
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,314.00",
      "risk_scenario": "$60,186.01 ret_0.786 저항을 돌파한 뒤 $60,313.44~$60,314.00 상단 클러스터 위에서 수용되면 하락 되돌림 셋업은 실패하고, 가격은 7일 고점 $61,931.10 방향의 재상승 구조를 시도할 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "swing_pair": "High→Low: $60,314 → $59,715",
        "direction": "down",
        "nearest_fib": "ret_0.786",
        "nearest_fib_price": 60186.01,
        "nearest_fib_distance": 0.03,
        "golden_ratio_level": 60085.29,
        "fib_ret_382": 59943.81,
        "fib_ret_618": 60085.29,
        "confluence_zones": [
          {
            "price": 59976.1,
            "count": 5,
            "levels": [
              "ret_0.236",
              "ret_0.382",
              "ret_0.5",
              "ret_0.5",
              "ret_0.618"
            ],
            "cluster_score": 1.0
          },
          {
            "price": 59563.34,
            "count": 4,
            "levels": [
              "ext_1.414",
              "ret_0.382",
              "ext_1.272",
              "ext_1.0"
            ],
            "cluster_score": 1.0
          },
          {
            "price": 58847.73,
            "count": 2,
            "levels": [
              "ext_2.618",
              "ret_0.236"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 59229.8,
            "count": 2,
            "levels": [
              "ext_2.0",
              "ext_1.618"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 60313.44,
            "count": 2,
            "levels": [
              "ret_0.786",
              "ret_0.618"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          60085.291000000005,
          60014.55,
          59943.809
        ],
        "resistance_levels": [
          60186.007000000005
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 59856.28,
            "distance_pct": 0.52,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.382",
            "price": 59943.81,
            "distance_pct": 0.38,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.5",
            "price": 60014.55,
            "distance_pct": 0.26,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.618",
            "price": 60085.29,
            "distance_pct": 0.14,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.786",
            "price": 60186.01,
            "distance_pct": 0.03,
            "is_support": false,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.0",
            "price": 59714.8,
            "distance_pct": 0.76,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.272",
            "price": 59551.74,
            "distance_pct": 1.03,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.414",
            "price": 59466.61,
            "distance_pct": 1.17,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_1.618",
            "price": 59344.31,
            "distance_pct": 1.37,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ext_2.0",
            "price": 59115.3,
            "distance_pct": 1.75,
            "is_support": true,
            "cluster_score": 0.6
          }
        ],
        "confluence_quality": 1.0,
        "fib_reaction_state": "testing",
        "reaction_probability": 0.65
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.72,\n  \"setup_signals\": [\n    \"현재가 $60,170.50가 EQ/ret_0.5 $60,014.55 위의 프리미엄 구간에 위치\",\n    \"가격이 ret_0.786 저항 $60,186.01에 0.03% 거리로 근접하며 테스트 중\",\n    \"상단 confluence zone $60,313.44에 ret_0.786 및 ret_0.618 클러스터가 존재해 추가 상승 시 공급 반응 가능\",\n    \"0.618 골든비율 $60,085.29가 단기 지지로 작동 중이나 이탈 시 $60,014.55 및 $59,943.81까지 되돌림 위험 확대\",\n    \"fib_reaction_state가 testing이며 reaction_probability 0.65로 핵심 피보나치 구간 반응 가능성이 중간 이상\"\n  ],\n  \"reasoning\": \"확정 구조 관점에서는 명확한 BOS/CHoCH 또는 구조적 수용 확인 데이터가 부족하므로 structure_bias는 neutral로 본다. 다만 실행 셋업 관점에서는 현재가 $60,170.50가 하락 스윙 $60,314 → $59,715의 EQ $60,014.55 위 프리미엄에 있고, ret_0.786 저항 $60,186.01을 거의 정확히 테스트하고 있어 단기 하방 반응 셋업이 우세하다. 특히 0.618 골든비율 $60,085.29가 가장 중요한 1차 지지이며, 이 레벨이 깨지면 ret_0.5 $60,014.55와 ret_0.382 $59,943.81의 고밀도 confluence zone으로 되돌림이 열릴 수 있다. 반대로 $60,313.44~$60,314 상단 클러스터를 회복하면 현재의 bearish setup은 무효화된다.\",\n  \"key_levels\": {\n    \"support\": [\n      60085.29,\n      60014.55,\n      59943.81,\n      59714.8,\n      59551.74\n    ],\n    \"resistance\": [\n      60186.01,\n      60313.44,\n      60314\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,314.00\",\n  \"risk_scenario\": \"$60,186.01 ret_0.786 저항을 돌파한 뒤 $60,313.44~$60,314.00 상단 클러스터 위에서 수용되면 하락 되돌림 셋업은 실패하고, 가격은 7일 고점 $61,931.10 방향의 재상승 구조를 시도할 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "bearish",
      "confidence": 0.58,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.62,
      "setup_signals": [
        "현재가 $60,170.50는 7일 범위 EQ $59,980.55 위에 있어 약한 프리미엄 구간에 위치",
        "EMA120 $60,195.96 및 EMA240 $60,284.78 바로 아래에서 정체되어 중기 저항대 반응 가능",
        "최근 299번 캔들에서 shooting_star 후보와 bearish_harami가 동시에 감지되어 상단 꼬리 기반 매도 압력 시사",
        "bear_score 2.60이 bull_score 1.40보다 우세하여 단기 캔들 모멘텀은 매도 쪽",
        "다만 strict 등급의 bullish_harami 품질 0.734 및 고거래량 신호가 있어 하락 확정 전 충돌 신호 존재"
      ],
      "reasoning": "현재 BTC는 $60,170.50으로 EMA20 $60,063.62 위에 있지만 EMA120 $60,195.96과 EMA240 $60,284.78 아래에 머물러 있어 단기 반등이 중기 저항에 막히는 구조입니다. 최근 패턴은 shooting_star@299, bearish_harami@297/@299가 확인되어 상단 저항권에서의 매도 반응을 시사하며, bear_score 2.60이 bull_score 1.40을 앞섭니다. 다만 best_pattern_quality 0.734의 bullish_harami가 고거래량으로 감지되어 즉각적인 강한 하락보다는 $60,284.78 돌파 실패 시 단기 되밀림 가능성이 더 높은 setup으로 해석합니다. 구조적으로는 명확한 BOS나 CHoCH 확인이 없고 가격이 7일 중간값 $59,980.55 부근에서 횡보하므로 structure_bias는 neutral로 유지합니다.",
      "key_levels": {
        "support": [
          60063.62,
          59980.55,
          58030.0
        ],
        "resistance": [
          60195.96,
          60284.78,
          61931.1
        ]
      },
      "time_horizon": "단기(15분봉 기준 4~12개 캔들)",
      "invalidation_level": "$60,411.32 상향 돌파 및 15분봉 종가 안착",
      "risk_scenario": "반대로 가격이 EMA240 $60,284.78을 회복하고 ATR 1개 폭을 더한 $60,411.32 위에서 안착하면 shooting_star와 bearish_harami의 매도 setup은 실패로 봐야 하며, 이 경우 $61,931.10 7일 고점 방향으로 숏 커버링 반등이 나올 수 있습니다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 149,
        "recent_patterns": 6,
        "pattern_list": [
          "shooting_star@299",
          "bearish_engulfing@292",
          "bullish_harami@290",
          "bearish_harami@297",
          "bearish_harami@299",
          "piercing_pattern@293"
        ],
        "atr_value": 126.54,
        "vol_avg_20": 721.26,
        "high_volume_patterns": [
          "bullish_harami"
        ],
        "pattern_candidates": [
          {
            "pattern": "bullish_harami",
            "signal": "bullish",
            "pattern_quality": 0.734,
            "tier": "strict",
            "high_volume": true
          },
          {
            "pattern": "shooting_star",
            "signal": "bearish",
            "pattern_quality": 0.623,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_harami",
            "signal": "bearish",
            "pattern_quality": 0.598,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "piercing_pattern",
            "signal": "bullish",
            "pattern_quality": 0.579,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_harami",
            "signal": "bearish",
            "pattern_quality": 0.536,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.734,
        "bull_score": 1.4,
        "bear_score": 2.6
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.62,\n  \"setup_signals\": [\n    \"현재가 $60,170.50는 7일 범위 EQ $59,980.55 위에 있어 약한 프리미엄 구간에 위치\",\n    \"EMA120 $60,195.96 및 EMA240 $60,284.78 바로 아래에서 정체되어 중기 저항대 반응 가능\",\n    \"최근 299번 캔들에서 shooting_star 후보와 bearish_harami가 동시에 감지되어 상단 꼬리 기반 매도 압력 시사\",\n    \"bear_score 2.60이 bull_score 1.40보다 우세하여 단기 캔들 모멘텀은 매도 쪽\",\n    \"다만 strict 등급의 bullish_harami 품질 0.734 및 고거래량 신호가 있어 하락 확정 전 충돌 신호 존재\"\n  ],\n  \"reasoning\": \"현재 BTC는 $60,170.50으로 EMA20 $60,063.62 위에 있지만 EMA120 $60,195.96과 EMA240 $60,284.78 아래에 머물러 있어 단기 반등이 중기 저항에 막히는 구조입니다. 최근 패턴은 shooting_star@299, bearish_harami@297/@299가 확인되어 상단 저항권에서의 매도 반응을 시사하며, bear_score 2.60이 bull_score 1.40을 앞섭니다. 다만 best_pattern_quality 0.734의 bullish_harami가 고거래량으로 감지되어 즉각적인 강한 하락보다는 $60,284.78 돌파 실패 시 단기 되밀림 가능성이 더 높은 setup으로 해석합니다. 구조적으로는 명확한 BOS나 CHoCH 확인이 없고 가격이 7일 중간값 $59,980.55 부근에서 횡보하므로 structure_bias는 neutral로 유지합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60063.62,\n      59980.55,\n      58030.0\n    ],\n    \"resistance\": [\n      60195.96,\n      60284.78,\n      61931.1\n    ]\n  },\n  \"time_horizon\": \"단기(15분봉 기준 4~12개 캔들)\",\n  \"invalidation_level\": \"$60,411.32 상향 돌파 및 15분봉 종가 안착\",\n  \"risk_scenario\": \"반대로 가격이 EMA240 $60,284.78을 회복하고 ATR 1개 폭을 더한 $60,411.32 위에서 안착하면 shooting_star와 bearish_harami의 매도 setup은 실패로 봐야 하며, 이 경우 $61,931.10 7일 고점 방향으로 숏 커버링 반등이 나올 수 있습니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bearish",
      "confidence": 0.746,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.746,
      "setup_signals": [
        "현재가 $60,170.50가 EQ $60,092.30 위에 있어 프리미엄 구간에 위치",
        "최근 구조 이벤트가 CHoCH bearish $60,162.00 이후 BOS bearish $59,819.80로 이어져 하방 구조 확인",
        "현재 되돌림이 88.8%로 깊은 프리미엄 되돌림 구간에 도달",
        "이전 고점 돌파 발생: previous day high $60,697.60은 이미 broken_prev_high=True로 표시되어 상단 유동성 소진 가능성 존재",
        "활성 bullish OB와 미체결 bullish FVG가 없어 즉각적인 강한 매수 방어 근거가 부족"
      ],
      "reasoning": "15분 구조는 BOS bullish $60,245.00, $60,557.80 이후 $60,162.00에서 bearish CHoCH가 발생했고, 이어 $59,819.80 하향 BOS가 확인되어 현재 structure_bias는 bearish로 판단한다. 현재가 $60,170.50는 EQ $60,092.30 위 프리미엄에 있으며, 되돌림이 88.8%까지 진행되어 하방 재개를 노리는 ICT 관점의 매도 셋업이 유효하다. 다만 현재 가격이 CHoCH 레벨 $60,162.00 바로 위에 있어 즉시 하락 확정이라기보다는 $60,092.30 재이탈과 $59,819.80 하향 압력이 확인될 때 신뢰도가 높아진다. 활성 OB와 오픈 FVG가 없고, 최근 liquidity sweep도 감지되지 않아 데이터 기반 확신은 중간 수준이지만, 구조와 셋업 점수는 모두 약한 bearish 우위를 가리킨다.",
      "key_levels": {
        "support": [
          60092.3,
          59819.8,
          59714.8,
          59530.7,
          58944.0,
          58288.0
        ],
        "resistance": [
          60247.1,
          60469.8,
          60697.6,
          61774.1,
          61931.1
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,469.80 상향 돌파 및 15분봉 종가 안착",
      "risk_scenario": "가격이 $60,469.80 range high를 회복하고 그 위에서 수용되면 bearish 되돌림 셋업은 실패로 간주된다. 이 경우 $60,697.60 previous day high 재공략 후, 더 위의 candidate bearish OB $61,774.10~$61,931.10까지 buy-side liquidity를 확장할 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "order_blocks_total": 2,
        "confirmed_bullish_ob": 0,
        "confirmed_bearish_ob": 0,
        "candidate_bullish_ob": 1,
        "candidate_bearish_ob": 1,
        "active_bullish_ob": 0,
        "active_bearish_ob": 0,
        "nearest_bull_ob_range": {
          "bottom": 58288.0,
          "top": 58944.0,
          "quality": "candidate",
          "score": 0.577
        },
        "nearest_bear_ob_range": {
          "bottom": 61774.1,
          "top": 61931.1,
          "quality": "candidate",
          "score": 0.547
        },
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [],
        "ob_mitigated_count": 0,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 65,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "BOS_bullish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bearish"
        ],
        "bos_choch_levels": [
          {
            "type": "BOS_bullish",
            "level": 60245.0
          },
          {
            "type": "BOS_bullish",
            "level": 60557.8
          },
          {
            "type": "CHoCH_bearish",
            "level": 60162.0
          },
          {
            "type": "BOS_bearish",
            "level": 59819.8
          }
        ],
        "bos_sequence": [
          "BOS_bullish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bearish"
        ],
        "consecutive_bull_bos": 0,
        "consecutive_bear_bos": 1,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "premium",
        "eq_level": 60092.3,
        "range_high": 60469.8,
        "range_low": 59714.8,
        "bull_score": 5.8,
        "bear_score": 6.2,
        "setup_bias": "bearish",
        "setup_score": 0.746,
        "setup_signals": [
          "bearish CHoCH below $60,162.00",
          "bearish BOS below $59,819.80",
          "deep retracement 88.8% in premium zone"
        ],
        "retracement_direction": "bearish",
        "current_retracement_pct": 88.8,
        "deepest_retracement_pct": 88.8,
        "previous_day_high": 60697.6,
        "previous_day_low": 59530.7,
        "broken_prev_high": true,
        "broken_prev_low": false,
        "sessions": {
          "London": {
            "active": false,
            "high": null,
            "low": null
          },
          "New York": {
            "active": true,
            "high": 60247.1,
            "low": 59714.8
          },
          "Asian kill zone": {
            "active": false,
            "high": null,
            "low": null
          }
        }
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.746,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.746,\n  \"setup_signals\": [\n    \"현재가 $60,170.50가 EQ $60,092.30 위에 있어 프리미엄 구간에 위치\",\n    \"최근 구조 이벤트가 CHoCH bearish $60,162.00 이후 BOS bearish $59,819.80로 이어져 하방 구조 확인\",\n    \"현재 되돌림이 88.8%로 깊은 프리미엄 되돌림 구간에 도달\",\n    \"이전 고점 돌파 발생: previous day high $60,697.60은 이미 broken_prev_high=True로 표시되어 상단 유동성 소진 가능성 존재\",\n    \"활성 bullish OB와 미체결 bullish FVG가 없어 즉각적인 강한 매수 방어 근거가 부족\"\n  ],\n  \"reasoning\": \"15분 구조는 BOS bullish $60,245.00, $60,557.80 이후 $60,162.00에서 bearish CHoCH가 발생했고, 이어 $59,819.80 하향 BOS가 확인되어 현재 structure_bias는 bearish로 판단한다. 현재가 $60,170.50는 EQ $60,092.30 위 프리미엄에 있으며, 되돌림이 88.8%까지 진행되어 하방 재개를 노리는 ICT 관점의 매도 셋업이 유효하다. 다만 현재 가격이 CHoCH 레벨 $60,162.00 바로 위에 있어 즉시 하락 확정이라기보다는 $60,092.30 재이탈과 $59,819.80 하향 압력이 확인될 때 신뢰도가 높아진다. 활성 OB와 오픈 FVG가 없고, 최근 liquidity sweep도 감지되지 않아 데이터 기반 확신은 중간 수준이지만, 구조와 셋업 점수는 모두 약한 bearish 우위를 가리킨다.\",\n  \"key_levels\": {\n    \"support\": [\n      60092.3,\n      59819.8,\n      59714.8,\n      59530.7,\n      58944.0,\n      58288.0\n    ],\n    \"resistance\": [\n      60247.1,\n      60469.8,\n      60697.6,\n      61774.1,\n      61931.1\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,469.80 상향 돌파 및 15분봉 종가 안착\",\n  \"risk_scenario\": \"가격이 $60,469.80 range high를 회복하고 그 위에서 수용되면 bearish 되돌림 셋업은 실패로 간주된다. 이 경우 $60,697.60 previous day high 재공략 후, 더 위의 candidate bearish OB $61,774.10~$61,931.10까지 buy-side liquidity를 확장할 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.61,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.68,
      "setup_signals": [
        "현재가 $60,170.50은 7일 레인지 EQ 약 $59,980.55 위에 있어 약한 premium zone 진입",
        "롱 계정 비율 0.669, 숏 계정 비율 0.331로 account_long_crowding 1.000 발생",
        "OI 24h -1.7450%로 신규 추세 포지션 유입보다 포지션 언와인딩 우세",
        "spot-futures basis -0.0822%, basis_change -0.0330으로 선물 프리미엄 약화",
        "CVD change +$2,232.59에도 가격 24h -0.58%로 상승하지 못해 매수 체결 흡수 가능성",
        "상단 $61,400 / $62,500 / $62,600에 청산 유동성 존재하나, 현재는 $60,284.78 EMA240 아래에서 구조적 수용 실패"
      ],
      "reasoning": "구조적으로는 $58,030.00 저점과 $61,931.10 고점 사이의 박스권 내부이며, 현재가 $60,170.50은 EMA20 $60,063.62 위지만 EMA120 $60,195.96 및 EMA240 $60,284.78 아래라 확정 BOS나 CHoCH가 확인되지 않아 structure_bias는 neutral이다. 다만 셋업은 bearish 쪽으로 기울어져 있는데, 롱 계정 비율이 0.669까지 높고 account_long_crowding이 1.000인 반면 OI는 24시간 -1.7450% 감소해 롱 포지션의 질이 약하다. CVD가 +$2,232.59 증가했음에도 가격은 24시간 -0.58% 하락해 공격적 매수가 가격을 밀어 올리지 못하는 흡수 신호로 해석된다. basis도 -0.0822%로 음수이며, aggregate_score 0.393과 bear_signals 2개가 단기적으로 $58,900 청산 구간 테스트 가능성을 높인다.",
      "key_levels": {
        "support": [
          60063.62,
          58900,
          58030,
          57800,
          57700
        ],
        "resistance": [
          60195.96,
          60284.78,
          61400,
          61931.1,
          62500,
          62600
        ]
      },
      "time_horizon": "short term, 향후 4-8시간",
      "invalidation_level": "$61,400 상방 15분봉 종가 수용",
      "risk_scenario": "$61,400 위로 강하게 돌파하면 상단 청산 유동성 흡수로 $62,500-$62,600까지 숏 스퀴즈가 열릴 수 있으며, 이 경우 현재의 bearish setup은 실패로 간주한다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.7,
        "cvd_change": 2232.588,
        "oi_trend": 0.325,
        "oi_change_pct_24h": -1.745,
        "oi_latest": 102824.904,
        "funding_pressure": 0.459,
        "funding_avg": 4.095e-05,
        "funding_change_24h": -2.6e-07,
        "long_account_ratio": 0.667,
        "short_account_ratio": 0.333,
        "long_account_latest": 0.669,
        "short_account_latest": 0.331,
        "long_account_change_24h": -0.0029,
        "short_account_change_24h": 0.0029,
        "account_flow_label": "stable",
        "account_short_crowding": 0.0,
        "account_long_crowding": 1.0,
        "ls_imbalance": 0.0,
        "ls_imbalance_interpretation": "high=short-account crowding / low=long-account crowding",
        "spot_futures_basis_score": 0.479,
        "spot_futures_basis_pct": -0.0822,
        "basis_change_lookback": -0.033,
        "aggregate_score": 0.393,
        "bull_signals": 1,
        "bear_signals": 2,
        "liq_below": [
          [
            58900,
            1017.4105822500001
          ],
          [
            57800,
            1269.759366
          ],
          [
            57700,
            1356.5474430000002
          ]
        ],
        "liq_above": [
          [
            61400,
            1024.287066
          ],
          [
            62500,
            1145.513529
          ],
          [
            62600,
            1412.419987
          ]
        ],
        "strongest_liq_level": 54100,
        "fragility_score": 0.732,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.61,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.68,\n  \"setup_signals\": [\n    \"현재가 $60,170.50은 7일 레인지 EQ 약 $59,980.55 위에 있어 약한 premium zone 진입\",\n    \"롱 계정 비율 0.669, 숏 계정 비율 0.331로 account_long_crowding 1.000 발생\",\n    \"OI 24h -1.7450%로 신규 추세 포지션 유입보다 포지션 언와인딩 우세\",\n    \"spot-futures basis -0.0822%, basis_change -0.0330으로 선물 프리미엄 약화\",\n    \"CVD change +$2,232.59에도 가격 24h -0.58%로 상승하지 못해 매수 체결 흡수 가능성\",\n    \"상단 $61,400 / $62,500 / $62,600에 청산 유동성 존재하나, 현재는 $60,284.78 EMA240 아래에서 구조적 수용 실패\"\n  ],\n  \"reasoning\": \"구조적으로는 $58,030.00 저점과 $61,931.10 고점 사이의 박스권 내부이며, 현재가 $60,170.50은 EMA20 $60,063.62 위지만 EMA120 $60,195.96 및 EMA240 $60,284.78 아래라 확정 BOS나 CHoCH가 확인되지 않아 structure_bias는 neutral이다. 다만 셋업은 bearish 쪽으로 기울어져 있는데, 롱 계정 비율이 0.669까지 높고 account_long_crowding이 1.000인 반면 OI는 24시간 -1.7450% 감소해 롱 포지션의 질이 약하다. CVD가 +$2,232.59 증가했음에도 가격은 24시간 -0.58% 하락해 공격적 매수가 가격을 밀어 올리지 못하는 흡수 신호로 해석된다. basis도 -0.0822%로 음수이며, aggregate_score 0.393과 bear_signals 2개가 단기적으로 $58,900 청산 구간 테스트 가능성을 높인다.\",\n  \"key_levels\": {\n    \"support\": [\n      60063.62,\n      58900,\n      58030,\n      57800,\n      57700\n    ],\n    \"resistance\": [\n      60195.96,\n      60284.78,\n      61400,\n      61931.1,\n      62500,\n      62600\n    ]\n  },\n  \"time_horizon\": \"short term, 향후 4-8시간\",\n  \"invalidation_level\": \"$61,400 상방 15분봉 종가 수용\",\n  \"risk_scenario\": \"$61,400 위로 강하게 돌파하면 상단 청산 유동성 흡수로 $62,500-$62,600까지 숏 스퀴즈가 열릴 수 있으며, 이 경우 현재의 bearish setup은 실패로 간주한다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "bullish",
      "confidence": 0.58,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.68,
      "setup_signals": [
        "확인된 bullish Bat 반응: PRZ $59,899.14-$60,197.02, D $59,950.00 이후 AD 0.382 반응 도달 및 PRZ 중심 재확보",
        "확인된 bullish Gartley 반응: PRZ $60,109.93-$60,258.36, 현재가 $60,170.50가 PRZ 내부, reaction_score 1.0",
        "확인된 bullish Butterfly 반응: PRZ $59,792.38-$60,098.72, D $59,950.00 이후 AD 0.382 반응 도달",
        "형성 중 bullish Bat 고품질 PRZ $59,909.54-$60,101.40, XAB 0.4966로 Bat 기준에 근접, 3중 Fib confluence",
        "형성 중 bullish Crab PRZ $59,848.90-$60,152.40와 bullish Bat/Gartley PRZ가 $59,850-$60,258 구간에 중첩",
        "상단 반대 리스크: bearish Shark PRZ $60,179.06-$60,544.79 및 bearish Bat PRZ $60,116.23-$60,487.38가 현재가 바로 위에서 겹침"
      ],
      "reasoning": "15분 BTC/USDT는 현재 $60,170.50이며, 엄격 기준 고품질 harmonic PRZ가 현 가격 주변에 밀집해 있다. 구조적으로는 BOS/CHoCH/명확한 수용 구조 데이터가 없으므로 structure_bias는 neutral로 둔다. 다만 setup 측면에서는 확인된 bullish Bat PRZ $59,899.14-$60,197.02, bullish Gartley PRZ $60,109.93-$60,258.36, bullish Butterfly PRZ $59,792.38-$60,098.72가 모두 PRZ 터치 후 방어 및 AD 반응을 보였고, validated bullish TP가 $60,242.79, $60,363.09, $60,557.80로 정렬된다. 방향 점수도 bullish 3.611 대 bearish 1.878로 우위이나 dominance가 0.316에 그쳐 강한 추세 판단은 아니며, $60,179-$60,545의 bearish Shark/Bat PRZ가 즉시 상단 저항으로 작동할 수 있다. 따라서 harmonic 단독 구조 전환 신호가 아니라, $59,848-$60,101 방어가 유지되는 한 단기 bullish 반응 setup으로 해석한다.",
      "key_levels": {
        "support": [
          60109.93,
          60098.72,
          60005.47,
          59899.14,
          59848.9,
          59792.38
        ],
        "resistance": [
          60197.02,
          60242.79,
          60258.36,
          60363.09,
          60415.06,
          60544.79,
          60557.8
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$59,792.38",
      "risk_scenario": "$60,179.06-$60,544.79의 bearish Shark/Bat PRZ에서 15분 rejection이 나오고 $60,101.40 아래로 재이탈하면 bullish setup은 약화된다. 특히 $59,848.90 및 최종 PRZ 하단 $59,792.38이 깨지면 확인된 bullish harmonic 방어가 실패한 것으로 보고 $59,556-$59,530 영역까지 bearish TP ladder가 열릴 수 있다.",
      "data_quality": "high",
      "metrics": {
        "patterns_found": 31,
        "completed_patterns_found": 14,
        "forming_d_prz_found": 17,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 34,
        "multiscale_swings_scanned": 59,
        "swing_highs_scanned": 28,
        "swing_lows_scanned": 31,
        "timeframe": "15m",
        "prz_active_threshold_pct": 0.3,
        "prz_nearby_threshold_pct": 0.6,
        "prz_watch_threshold_pct": 1.2,
        "prz_max_width_pct": 0.6,
        "quality_counts": {
          "high": 19,
          "medium": 7,
          "low": 5
        },
        "prz_status_counts": {
          "active": 20,
          "nearby": 5,
          "watch": 6,
          "far": 0,
          "forming": 0
        },
        "high_confluence_prz_count": 26,
        "strict_patterns_found": 20,
        "candidate_patterns_found": 11,
        "active_patterns_at_prz": 20,
        "nearby_patterns": 5,
        "all_patterns": [
          "shark",
          "bat",
          "gartley",
          "bat",
          "crab",
          "shark",
          "bat",
          "bat",
          "butterfly",
          "shark",
          "gartley",
          "butterfly",
          "gartley",
          "bat",
          "bat",
          "crab",
          "gartley",
          "shark",
          "butterfly",
          "butterfly",
          "crab",
          "butterfly",
          "shark",
          "shark",
          "butterfly",
          "crab",
          "shark",
          "crab",
          "crab",
          "shark",
          "crab"
        ],
        "all_signals": [
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish"
        ],
        "best_pattern": "shark",
        "best_pattern_quality": "strict",
        "best_quality": "medium",
        "best_pattern_score": 0.98,
        "best_completion_status": "forming",
        "nearest_pattern": "shark",
        "nearest_prz": 60182.95,
        "price_to_prz": 0.02,
        "prz_range": [
          59996.13,
          60369.77
        ],
        "council_relevant_prz_count": 16,
        "directional_influence_prz_count": 16,
        "confirmed_reaction_prz_count": 6,
        "validated_harmonic_tp_count": 6,
        "pattern_candidates": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.979,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60005.47,
            "prz_range": [
              59909.54,
              60101.4
            ],
            "prz_width_pct": 0.32,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.2743,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60005.47,
              "a_price": 60387.8,
              "tp1_ad_382": 60151.52,
              "tp2_ad_618": 60241.75,
              "tp3_a_or_structure_liquidity": 60387.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4966,
              "ABC": 0.6253
            },
            "x_price": 59933.1,
            "x_idx": 141,
            "x_order": 3,
            "a_price": 60387.8,
            "a_idx": 184,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.975,
            "ratio_score": 0.977,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60184.14,
            "prz_range": [
              60109.93,
              60258.36
            ],
            "prz_width_pct": 0.247,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.02,
            "price_to_prz_pct_raw": 0.0227,
            "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": 60184.14,
              "a_price": 60557.8,
              "tp1_ad_382": 60326.88,
              "tp2_ad_618": 60415.06,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.6924
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60466.5,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.974,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60256.06,
            "prz_range": [
              60158.65,
              60353.46
            ],
            "prz_width_pct": 0.323,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.14,
            "price_to_prz_pct_raw": 0.1422,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60256.06,
              "a_price": 60557.8,
              "tp1_ad_382": 60371.32,
              "tp2_ad_618": 60442.53,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4129,
              "ABC": 0.4966
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60383.0,
            "b_idx": 240,
            "b_order": 8,
            "c_price": 60469.8,
            "c_idx": 258,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.972,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60000.65,
            "prz_range": [
              59848.9,
              60152.4
            ],
            "prz_width_pct": 0.506,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.28,
            "price_to_prz_pct_raw": -0.2823,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 60000.65,
              "a_price": 60557.8,
              "tp1_ad_382": 60213.48,
              "tp2_ad_618": 60344.97,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4129,
              "ABC": 0.4565
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60383.0,
            "b_idx": 240,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "ratio_score": 1.0,
            "prz_score": 0.998,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60361.92,
            "prz_range": [
              60179.06,
              60544.79
            ],
            "prz_width_pct": 0.606,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.3181,
            "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": 60361.92,
              "a_price": 60050.0,
              "tp1_ad_382": 60242.77,
              "tp2_ad_618": 60169.15,
              "tp3_a_or_structure_liquidity": 60050.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6079,
              "ABC": 1.3949
            },
            "x_price": 60466.5,
            "x_idx": 213,
            "x_order": 3,
            "a_price": 60050.0,
            "a_idx": 250,
            "a_order": 8,
            "b_price": 60303.2,
            "b_idx": 264,
            "b_order": 5,
            "c_price": 59950.0,
            "c_idx": 272,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "ratio_score": 1.0,
            "prz_score": 0.994,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60301.81,
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_width_pct": 0.615,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.22,
            "price_to_prz_pct_raw": 0.2182,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4609,
              "ABC": 0.3852
            },
            "x_price": 60580.0,
            "x_idx": 140,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 158,
            "a_order": 5,
            "b_price": 60028.0,
            "b_idx": 162,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 174,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.951,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59950.0,
            "prz_range": [
              59899.14,
              60197.02
            ],
            "prz_width_pct": 0.496,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.2,
            "price_to_prz_pct_raw": -0.2035,
            "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.599,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60048.08,
              "a_price": 60557.8,
              "tp1_ad_382": 60242.79,
              "tp2_ad_618": 60363.09,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4327,
              "ABC": 0.7035,
              "BCD": 2.4895,
              "XAD": 0.8861
            },
            "x_price": 59871.9,
            "x_idx": 170,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60469.8,
            "c_idx": 258,
            "c_order": 8,
            "d_idx": 272
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.95,
            "ratio_score": 0.979,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59945.55,
            "prz_range": [
              59792.38,
              60098.72
            ],
            "prz_width_pct": 0.511,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.37,
            "price_to_prz_pct_raw": -0.3739,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59945.55,
              "a_price": 60492.2,
              "tp1_ad_382": 60154.37,
              "tp2_ad_618": 60283.38,
              "tp3_a_or_structure_liquidity": 60492.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7905,
              "ABC": 0.4276
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60492.2,
            "a_idx": 199,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.951,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59950.0,
            "prz_range": [
              59899.14,
              60197.02
            ],
            "prz_width_pct": 0.496,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.2,
            "price_to_prz_pct_raw": -0.2035,
            "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.599,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60048.08,
              "a_price": 60557.8,
              "tp1_ad_382": 60242.79,
              "tp2_ad_618": 60363.09,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4327,
              "ABC": 0.7035,
              "BCD": 2.4895,
              "XAD": 0.8861
            },
            "x_price": 59871.9,
            "x_idx": 170,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60469.8,
            "c_idx": 258,
            "c_order": 8,
            "d_idx": 272
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.939,
            "ratio_score": 0.991,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59950.0,
            "prz_range": [
              59792.38,
              60098.72
            ],
            "prz_width_pct": 0.511,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.37,
            "price_to_prz_pct_raw": -0.3739,
            "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.672,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59945.55,
              "a_price": 60492.2,
              "tp1_ad_382": 60154.37,
              "tp2_ad_618": 60283.38,
              "tp3_a_or_structure_liquidity": 60492.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7905,
              "ABC": 0.4276,
              "BCD": 2.5014,
              "XAD": 1.2981
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60492.2,
            "a_idx": 199,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": 272
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.935,
            "ratio_score": 0.908,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60162.0,
            "prz_range": [
              60109.93,
              60258.36
            ],
            "prz_width_pct": 0.247,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.02,
            "price_to_prz_pct_raw": 0.0227,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.353,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 60184.14,
              "a_price": 60557.8,
              "tp1_ad_382": 60326.88,
              "tp2_ad_618": 60415.06,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.6924,
              "BCD": 1.4818,
              "XAD": 0.819
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60466.5,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": 218
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.911,
            "ratio_score": 0.923,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60466.5,
            "prz_range": [
              60217.82,
              60510.71
            ],
            "prz_width_pct": 0.485,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.322,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "post_D_close_progress"
              ],
              "reaction_score": 0.75,
              "reaction_detail": {
                "reaction_score": 0.75,
                "reaction_move_ratio_ad": 0.334,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60364.26,
              "a_price": 59556.0,
              "tp1_ad_382": 60055.51,
              "tp2_ad_618": 59864.76,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5223,
              "ABC": 0.4574,
              "BCD": 2.536,
              "XAD": 0.8892
            },
            "x_price": 60580.0,
            "x_idx": 140,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 158,
            "a_order": 5,
            "b_price": 60090.8,
            "b_idx": 168,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 174,
            "c_order": 5,
            "d_idx": 213
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.91,
            "ratio_score": 0.884,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60017.2,
            "prz_range": [
              59855.91,
              60065.1
            ],
            "prz_width_pct": 0.349,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.35,
            "price_to_prz_pct_raw": -0.349,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected"
              ],
              "reaction_score": 0.65,
              "reaction_detail": {
                "reaction_score": 0.65,
                "reaction_move_ratio_ad": 0.343,
                "adverse_move_ratio_ad": 0.444,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 59960.51,
              "a_price": 60697.6,
              "tp1_ad_382": 60242.08,
              "tp2_ad_618": 60416.03,
              "tp3_a_or_structure_liquidity": 60697.6,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6354,
              "ABC": 0.4218,
              "BCD": 2.4444,
              "XAD": 1.5584
            },
            "x_price": 60261.0,
            "x_idx": 209,
            "x_order": 5,
            "a_price": 60697.6,
            "a_idx": 228,
            "a_order": 3,
            "b_price": 60420.2,
            "b_idx": 244,
            "b_order": 3,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": 277
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.864,
            "ratio_score": 0.811,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60387.8,
            "prz_range": [
              60184.9,
              60506.94
            ],
            "prz_width_pct": 0.534,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.29,
            "price_to_prz_pct_raw": 0.2915,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "post_D_close_progress"
              ],
              "reaction_score": 0.75,
              "reaction_detail": {
                "reaction_score": 0.75,
                "reaction_move_ratio_ad": 0.355,
                "adverse_move_ratio_ad": 0.098,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60345.92,
              "a_price": 59530.7,
              "tp1_ad_382": 60034.51,
              "tp2_ad_618": 59842.11,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.5044,
              "BCD": 1.6867,
              "XAD": 0.8168
            },
            "x_price": 60580.0,
            "x_idx": 140,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 151,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 172,
            "b_order": 8,
            "c_price": 59846.2,
            "c_idx": 174,
            "c_order": 5,
            "d_idx": 184
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.979,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60005.47,
            "prz_range": [
              59909.54,
              60101.4
            ],
            "prz_width_pct": 0.32,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.2743,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60005.47,
              "a_price": 60387.8,
              "tp1_ad_382": 60151.52,
              "tp2_ad_618": 60241.75,
              "tp3_a_or_structure_liquidity": 60387.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4966,
              "ABC": 0.6253
            },
            "x_price": 59933.1,
            "x_idx": 141,
            "x_order": 3,
            "a_price": 60387.8,
            "a_idx": 184,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.975,
            "ratio_score": 0.977,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60184.14,
            "prz_range": [
              60109.93,
              60258.36
            ],
            "prz_width_pct": 0.247,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.02,
            "price_to_prz_pct_raw": 0.0227,
            "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": 60184.14,
              "a_price": 60557.8,
              "tp1_ad_382": 60326.88,
              "tp2_ad_618": 60415.06,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.6924
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60466.5,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.974,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60256.06,
            "prz_range": [
              60158.65,
              60353.46
            ],
            "prz_width_pct": 0.323,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.14,
            "price_to_prz_pct_raw": 0.1422,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60256.06,
              "a_price": 60557.8,
              "tp1_ad_382": 60371.32,
              "tp2_ad_618": 60442.53,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4129,
              "ABC": 0.4966
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60383.0,
            "b_idx": 240,
            "b_order": 8,
            "c_price": 60469.8,
            "c_idx": 258,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.972,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60000.65,
            "prz_range": [
              59848.9,
              60152.4
            ],
            "prz_width_pct": 0.506,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.28,
            "price_to_prz_pct_raw": -0.2823,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 60000.65,
              "a_price": 60557.8,
              "tp1_ad_382": 60213.48,
              "tp2_ad_618": 60344.97,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4129,
              "ABC": 0.4565
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60383.0,
            "b_idx": 240,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.979,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60005.47,
            "prz_range": [
              59909.54,
              60101.4
            ],
            "prz_width_pct": 0.32,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.2743,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60005.47,
              "a_price": 60387.8,
              "tp1_ad_382": 60151.52,
              "tp2_ad_618": 60241.75,
              "tp3_a_or_structure_liquidity": 60387.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4966,
              "ABC": 0.6253
            },
            "x_price": 59933.1,
            "x_idx": 141,
            "x_order": 3,
            "a_price": 60387.8,
            "a_idx": 184,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.975,
            "ratio_score": 0.977,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60184.14,
            "prz_range": [
              60109.93,
              60258.36
            ],
            "prz_width_pct": 0.247,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.02,
            "price_to_prz_pct_raw": 0.0227,
            "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": 60184.14,
              "a_price": 60557.8,
              "tp1_ad_382": 60326.88,
              "tp2_ad_618": 60415.06,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.6924
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60466.5,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.974,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60256.06,
            "prz_range": [
              60158.65,
              60353.46
            ],
            "prz_width_pct": 0.323,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.14,
            "price_to_prz_pct_raw": 0.1422,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60256.06,
              "a_price": 60557.8,
              "tp1_ad_382": 60371.32,
              "tp2_ad_618": 60442.53,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4129,
              "ABC": 0.4966
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60383.0,
            "b_idx": 240,
            "b_order": 8,
            "c_price": 60469.8,
            "c_idx": 258,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.972,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60000.65,
            "prz_range": [
              59848.9,
              60152.4
            ],
            "prz_width_pct": 0.506,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.28,
            "price_to_prz_pct_raw": -0.2823,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 60000.65,
              "a_price": 60557.8,
              "tp1_ad_382": 60213.48,
              "tp2_ad_618": 60344.97,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4129,
              "ABC": 0.4565
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60383.0,
            "b_idx": 240,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "ratio_score": 1.0,
            "prz_score": 0.998,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60361.92,
            "prz_range": [
              60179.06,
              60544.79
            ],
            "prz_width_pct": 0.606,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.3181,
            "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": 60361.92,
              "a_price": 60050.0,
              "tp1_ad_382": 60242.77,
              "tp2_ad_618": 60169.15,
              "tp3_a_or_structure_liquidity": 60050.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6079,
              "ABC": 1.3949
            },
            "x_price": 60466.5,
            "x_idx": 213,
            "x_order": 3,
            "a_price": 60050.0,
            "a_idx": 250,
            "a_order": 8,
            "b_price": 60303.2,
            "b_idx": 264,
            "b_order": 5,
            "c_price": 59950.0,
            "c_idx": 272,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "ratio_score": 1.0,
            "prz_score": 0.994,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60301.81,
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_width_pct": 0.615,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.22,
            "price_to_prz_pct_raw": 0.2182,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4609,
              "ABC": 0.3852
            },
            "x_price": 60580.0,
            "x_idx": 140,
            "x_order": 8,
            "a_price": 59556.0,
            "a_idx": 158,
            "a_order": 5,
            "b_price": 60028.0,
            "b_idx": 162,
            "b_order": 3,
            "c_price": 59846.2,
            "c_idx": 174,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.951,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59950.0,
            "prz_range": [
              59899.14,
              60197.02
            ],
            "prz_width_pct": 0.496,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.2,
            "price_to_prz_pct_raw": -0.2035,
            "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.599,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60048.08,
              "a_price": 60557.8,
              "tp1_ad_382": 60242.79,
              "tp2_ad_618": 60363.09,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4327,
              "ABC": 0.7035,
              "BCD": 2.4895,
              "XAD": 0.8861
            },
            "x_price": 59871.9,
            "x_idx": 170,
            "x_order": 3,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60469.8,
            "c_idx": 258,
            "c_order": 8,
            "d_idx": 272
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.95,
            "ratio_score": 0.979,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59945.55,
            "prz_range": [
              59792.38,
              60098.72
            ],
            "prz_width_pct": 0.511,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.37,
            "price_to_prz_pct_raw": -0.3739,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59945.55,
              "a_price": 60492.2,
              "tp1_ad_382": 60154.37,
              "tp2_ad_618": 60283.38,
              "tp3_a_or_structure_liquidity": 60492.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7905,
              "ABC": 0.4276
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60492.2,
            "a_idx": 199,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.95,
            "ratio_score": 0.956,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60228.15,
            "prz_range": [
              60066.51,
              60389.79
            ],
            "prz_width_pct": 0.537,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.1,
            "price_to_prz_pct_raw": 0.0958,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "shark",
              "d_price": 60228.15,
              "a_price": 60472.2,
              "tp1_ad_382": 60321.38,
              "tp2_ad_618": 60378.97,
              "tp3_a_or_structure_liquidity": 60472.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6254,
              "ABC": 1.4957
            },
            "x_price": 60134.5,
            "x_idx": 185,
            "x_order": 3,
            "a_price": 60472.2,
            "a_idx": 189,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60576.9,
            "c_idx": 248,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.942,
            "ratio_score": 0.933,
            "prz_score": 0.995,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60364.41,
            "prz_range": [
              60179.37,
              60549.45
            ],
            "prz_width_pct": 0.613,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.3223,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 60364.41,
              "a_price": 59530.7,
              "tp1_ad_382": 60045.93,
              "tp2_ad_618": 59849.18,
              "tp3_a_or_structure_liquidity": 59530.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6067,
              "ABC": 0.4376
            },
            "x_price": 60580.0,
            "x_idx": 140,
            "x_order": 8,
            "a_price": 59530.7,
            "a_idx": 151,
            "a_order": 8,
            "b_price": 60167.3,
            "b_idx": 172,
            "b_order": 8,
            "c_price": 59888.7,
            "c_idx": 180,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.939,
            "ratio_score": 0.991,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59950.0,
            "prz_range": [
              59792.38,
              60098.72
            ],
            "prz_width_pct": 0.511,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.37,
            "price_to_prz_pct_raw": -0.3739,
            "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.672,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 59945.55,
              "a_price": 60492.2,
              "tp1_ad_382": 60154.37,
              "tp2_ad_618": 60283.38,
              "tp3_a_or_structure_liquidity": 60492.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7905,
              "ABC": 0.4276,
              "BCD": 2.5014,
              "XAD": 1.2981
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60492.2,
            "a_idx": 199,
            "a_order": 3,
            "b_price": 60162.0,
            "b_idx": 218,
            "b_order": 8,
            "c_price": 60303.2,
            "c_idx": 264,
            "c_order": 5,
            "d_idx": 272
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.935,
            "ratio_score": 0.908,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60162.0,
            "prz_range": [
              60109.93,
              60258.36
            ],
            "prz_width_pct": 0.247,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.02,
            "price_to_prz_pct_raw": 0.0227,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.353,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 60184.14,
              "a_price": 60557.8,
              "tp1_ad_382": 60326.88,
              "tp2_ad_618": 60415.06,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.6924,
              "BCD": 1.4818,
              "XAD": 0.819
            },
            "x_price": 60074.5,
            "x_idx": 197,
            "x_order": 8,
            "a_price": 60557.8,
            "a_idx": 203,
            "a_order": 8,
            "b_price": 60261.0,
            "b_idx": 209,
            "b_order": 5,
            "c_price": 60466.5,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": 218
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.979,
            "prz_proximity": "active",
            "prz_range": [
              59909.54,
              60101.4
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.27,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60005.47,
              "a_price": 60387.8,
              "tp1_ad_382": 60151.52,
              "tp2_ad_618": 60241.75,
              "tp3_a_or_structure_liquidity": 60387.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $59,909.54-$60,101.40: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.975,
            "prz_proximity": "active",
            "prz_range": [
              60109.93,
              60258.36
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": 0.02,
            "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": 60184.14,
              "a_price": 60557.8,
              "tp1_ad_382": 60326.88,
              "tp2_ad_618": 60415.06,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $60,109.93-$60,258.36: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.974,
            "prz_proximity": "active",
            "prz_range": [
              60158.65,
              60353.46
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": 0.14,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 60256.06,
              "a_price": 60557.8,
              "tp1_ad_382": 60371.32,
              "tp2_ad_618": 60442.53,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $60,158.65-$60,353.46: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.972,
            "prz_proximity": "active",
            "prz_range": [
              59848.9,
              60152.4
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.28,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "crab",
              "d_price": 60000.65,
              "a_price": 60557.8,
              "tp1_ad_382": 60213.48,
              "tp2_ad_618": 60344.97,
              "tp3_a_or_structure_liquidity": 60557.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "CRAB FORMING HIGH PRZ $59,848.90-$60,152.40: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.963,
            "prz_proximity": "active",
            "prz_range": [
              60179.06,
              60544.79
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": 0.32,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "shark",
              "d_price": 60361.92,
              "a_price": 60050.0,
              "tp1_ad_382": 60242.77,
              "tp2_ad_618": 60169.15,
              "tp3_a_or_structure_liquidity": 60050.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "SHARK FORMING HIGH PRZ $60,179.06-$60,544.79: expected reversal DOWN if price reacts in zone"
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.962,
            "prz_proximity": "active",
            "prz_range": [
              60116.23,
              60487.38
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": 0.22,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "bat",
              "d_price": 60301.81,
              "a_price": 59556.0,
              "tp1_ad_382": 60016.91,
              "tp2_ad_618": 59840.9,
              "tp3_a_or_structure_liquidity": 59556.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "BAT FORMING HIGH PRZ $60,116.23-$60,487.38: expected reversal DOWN if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "bat",
          "signal": "bullish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.979,
          "ratio_score": 1.0,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 60005.47,
          "prz_range": [
            59909.54,
            60101.4
          ],
          "prz_width_pct": 0.32,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": -0.27,
          "price_to_prz_pct_raw": -0.2743,
          "harmonic_vote_state": {
            "authority": "pre_confirmation_reversal_candidate",
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "confirmation_reasons": [],
            "reaction_score": 0.0,
            "reaction_detail": {
              "reaction_score": 0.0,
              "reasons": []
            },
            "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
            "standalone_path_override_allowed": false
          },
          "directional_vote_weight": 0.35,
          "confirmed_reaction": false,
          "standalone_path_override_allowed": false,
          "tp_ladder": {
            "direction": "bullish",
            "source": "bat",
            "d_price": 60005.47,
            "a_price": 60387.8,
            "tp1_ad_382": 60151.52,
            "tp2_ad_618": 60241.75,
            "tp3_a_or_structure_liquidity": 60387.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.4966,
            "ABC": 0.6253
          },
          "x_price": 59933.1,
          "x_idx": 141,
          "x_order": 3,
          "a_price": 60387.8,
          "a_idx": 184,
          "a_order": 3,
          "b_price": 60162.0,
          "b_idx": 218,
          "b_order": 8,
          "c_price": 60303.2,
          "c_idx": 264,
          "c_order": 5,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "bat",
          "d_price": 60005.47,
          "a_price": 60387.8,
          "tp1_ad_382": 60151.52,
          "tp2_ad_618": 60241.75,
          "tp3_a_or_structure_liquidity": 60387.8,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "best_confirmed_tp_ladder": {
          "direction": "bullish",
          "source": "bat",
          "d_price": 60048.08,
          "a_price": 60557.8,
          "tp1_ad_382": 60242.79,
          "tp2_ad_618": 60363.09,
          "tp3_a_or_structure_liquidity": 60557.8,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "bat",
            "d_price": 60005.47,
            "a_price": 60387.8,
            "tp1_ad_382": 60151.52,
            "tp2_ad_618": 60241.75,
            "tp3_a_or_structure_liquidity": 60387.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 60184.14,
            "a_price": 60557.8,
            "tp1_ad_382": 60326.88,
            "tp2_ad_618": 60415.06,
            "tp3_a_or_structure_liquidity": 60557.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "bat",
            "d_price": 60256.06,
            "a_price": 60557.8,
            "tp1_ad_382": 60371.32,
            "tp2_ad_618": 60442.53,
            "tp3_a_or_structure_liquidity": 60557.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "crab",
            "d_price": 60000.65,
            "a_price": 60557.8,
            "tp1_ad_382": 60213.48,
            "tp2_ad_618": 60344.97,
            "tp3_a_or_structure_liquidity": 60557.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "shark",
            "d_price": 60361.92,
            "a_price": 60050.0,
            "tp1_ad_382": 60242.77,
            "tp2_ad_618": 60169.15,
            "tp3_a_or_structure_liquidity": 60050.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "bat",
            "d_price": 60301.81,
            "a_price": 59556.0,
            "tp1_ad_382": 60016.91,
            "tp2_ad_618": 59840.9,
            "tp3_a_or_structure_liquidity": 59556.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "validated_tp_ladder": [
          {
            "direction": "bullish",
            "source": "bat",
            "d_price": 60048.08,
            "a_price": 60557.8,
            "tp1_ad_382": 60242.79,
            "tp2_ad_618": 60363.09,
            "tp3_a_or_structure_liquidity": 60557.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "butterfly",
            "d_price": 59945.55,
            "a_price": 60492.2,
            "tp1_ad_382": 60154.37,
            "tp2_ad_618": 60283.38,
            "tp3_a_or_structure_liquidity": 60492.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 60184.14,
            "a_price": 60557.8,
            "tp1_ad_382": 60326.88,
            "tp2_ad_618": 60415.06,
            "tp3_a_or_structure_liquidity": 60557.8,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "bat",
            "d_price": 60364.26,
            "a_price": 59556.0,
            "tp1_ad_382": 60055.51,
            "tp2_ad_618": 59864.76,
            "tp3_a_or_structure_liquidity": 59556.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "crab",
            "d_price": 59960.51,
            "a_price": 60697.6,
            "tp1_ad_382": 60242.08,
            "tp2_ad_618": 60416.03,
            "tp3_a_or_structure_liquidity": 60697.6,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 60345.92,
            "a_price": 59530.7,
            "tp1_ad_382": 60034.51,
            "tp2_ad_618": 59842.11,
            "tp3_a_or_structure_liquidity": 59530.7,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "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": 3.611,
          "bearish": 1.878
        },
        "directional_score_total": 5.489,
        "directional_dominance": 0.316
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.68,\n  \"setup_signals\": [\n    \"확인된 bullish Bat 반응: PRZ $59,899.14-$60,197.02, D $59,950.00 이후 AD 0.382 반응 도달 및 PRZ 중심 재확보\",\n    \"확인된 bullish Gartley 반응: PRZ $60,109.93-$60,258.36, 현재가 $60,170.50가 PRZ 내부, reaction_score 1.0\",\n    \"확인된 bullish Butterfly 반응: PRZ $59,792.38-$60,098.72, D $59,950.00 이후 AD 0.382 반응 도달\",\n    \"형성 중 bullish Bat 고품질 PRZ $59,909.54-$60,101.40, XAB 0.4966로 Bat 기준에 근접, 3중 Fib confluence\",\n    \"형성 중 bullish Crab PRZ $59,848.90-$60,152.40와 bullish Bat/Gartley PRZ가 $59,850-$60,258 구간에 중첩\",\n    \"상단 반대 리스크: bearish Shark PRZ $60,179.06-$60,544.79 및 bearish Bat PRZ $60,116.23-$60,487.38가 현재가 바로 위에서 겹침\"\n  ],\n  \"reasoning\": \"15분 BTC/USDT는 현재 $60,170.50이며, 엄격 기준 고품질 harmonic PRZ가 현 가격 주변에 밀집해 있다. 구조적으로는 BOS/CHoCH/명확한 수용 구조 데이터가 없으므로 structure_bias는 neutral로 둔다. 다만 setup 측면에서는 확인된 bullish Bat PRZ $59,899.14-$60,197.02, bullish Gartley PRZ $60,109.93-$60,258.36, bullish Butterfly PRZ $59,792.38-$60,098.72가 모두 PRZ 터치 후 방어 및 AD 반응을 보였고, validated bullish TP가 $60,242.79, $60,363.09, $60,557.80로 정렬된다. 방향 점수도 bullish 3.611 대 bearish 1.878로 우위이나 dominance가 0.316에 그쳐 강한 추세 판단은 아니며, $60,179-$60,545의 bearish Shark/Bat PRZ가 즉시 상단 저항으로 작동할 수 있다. 따라서 harmonic 단독 구조 전환 신호가 아니라, $59,848-$60,101 방어가 유지되는 한 단기 bullish 반응 setup으로 해석한다.\",\n  \"key_levels\": {\n    \"support\": [\n      60109.93,\n      60098.72,\n      60005.47,\n      59899.14,\n      59848.9,\n      59792.38\n    ],\n    \"resistance\": [\n      60197.02,\n      60242.79,\n      60258.36,\n      60363.09,\n      60415.06,\n      60544.79,\n      60557.8\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$59,792.38\",\n  \"risk_scenario\": \"$60,179.06-$60,544.79의 bearish Shark/Bat PRZ에서 15분 rejection이 나오고 $60,101.40 아래로 재이탈하면 bullish setup은 약화된다. 특히 $59,848.90 및 최종 PRZ 하단 $59,792.38이 깨지면 확인된 bullish harmonic 방어가 실패한 것으로 보고 $59,556-$59,530 영역까지 bearish TP ladder가 열릴 수 있다.\",\n  \"data_quality\": \"high\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.67,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.72,
      "active_setups": [
        "Wyckoff: 분배 박스 EQ 약 $60,055.35 위 프리미엄 영역에서 UT $60,303.20 및 UTAD $60,314.30 이후 LPSY $59,997.40가 형성된 Phase D 후보",
        "ICT: EQ $60,092.30 위 프리미엄에서 bearish CHoCH $60,162.00 이후 bearish BOS $59,819.80가 확인된 구조",
        "Fibonacci: 하락 스윙 $60,314 → $59,715의 ret_0.786 저항 $60,186.01을 현재가가 테스트 중",
        "Candlestick/EMA: 가격은 EMA20 $60,063.62 위지만 EMA120 $60,195.96 및 EMA240 $60,284.78 아래에 정체",
        "Derivatives: 롱 계정 비율 0.669로 롱 쏠림이 강하고, OI 24시간 -1.7450% 감소와 음수 basis -0.0822%가 동반",
        "Harmonic 반대 조건: $59,899.14-$60,197.02 및 $60,109.93-$60,258.36 부근의 bullish PRZ 반응이 있어 단기 반등 방어 구간으로 작동 중"
      ],
      "setup_vs_structure": "실행 셋업은 구조적 bearish 판정과 대체로 정렬되어 있다. 다만 harmonic의 확인된 bullish PRZ 반응이 현 가격대에 겹쳐 있어, 즉시 추세 확정보다는 분배 상단부에서의 재공급 여부를 검증하는 구간으로 봐야 한다."
    },
    "signal_breakdown": {
      "bullish_count": 0,
      "bearish_count": 2,
      "neutral_count": 4
    },
    "key_levels": {
      "support": [
        60092.3,
        60085.29,
        60014.55,
        59997.4,
        59943.81,
        59819.8,
        59530.7
      ],
      "resistance": [
        60186.01,
        60195.96,
        60247.1,
        60258.36,
        60284.78,
        60303.2,
        60314.3,
        60580.0
      ]
    },
    "confluences": [
      "Wyckoff와 ICT가 모두 $59,819.80을 핵심 하방 구조 레벨로 식별한다. Wyckoff는 SOW_IN_PHASE_B, ICT는 bearish BOS 레벨로 본다.",
      "Wyckoff의 UTAD $60,314.30, Fibonacci의 상단 클러스터 $60,313.44-$60,314, 그리고 ICT의 프리미엄 되돌림 구조가 $60,303-$60,314 구간을 주요 공급/무효화 전 단계 저항으로 일치시킨다.",
      "Fibonacci ret_0.786 $60,186.01, Candlestick EMA120 $60,195.96, Harmonic bullish Bat 상단 $60,197.02가 $60,186-$60,197 부근의 단기 반응 레벨로 겹친다.",
      "ICT EQ $60,092.30, Fibonacci golden ratio $60,085.29, Harmonic PRZ 상단 $60,098.72-$60,101.40이 $60,085-$60,101 부근을 단기 균형/방어 구간으로 수렴시킨다.",
      "Wyckoff AR $59,530.70와 Fibonacci 확장/클러스터 $59,551.74-$59,563.34가 $59,530-$59,563 부근을 하단 구조 지지대로 공통 식별한다.",
      "Candlestick과 Derivatives 모두 EMA120 $60,195.96 및 EMA240 $60,284.78 아래 정체를 중기 저항 조건으로 본다."
    ],
    "conflicts": [
      "Harmonic은 확인된 bullish Bat, Gartley, Butterfly PRZ 반응을 근거로 setup_bias를 bullish로 제시하지만, Wyckoff와 ICT는 각각 분배 Phase D 후보와 bearish CHoCH/BOS를 근거로 구조를 bearish로 판정한다.",
      "Candlestick에서는 고거래량 bullish harami가 존재하지만, 최근 shooting star 및 bearish harami가 동시에 감지되어 캔들 자체도 단기 방향성이 완전히 단일하지 않다.",
      "Fibonacci는 구조 자체는 neutral로 두지만, 현재가가 프리미엄 및 ret_0.786 저항 $60,186.01에 위치한다는 점에서 실행 셋업은 bearish로 본다. 즉 구조 확정과 실행 조건 사이의 강도가 다르다.",
      "Derivatives는 롱 쏠림과 OI 감소를 bearish로 해석하지만, CVD는 +$2,232.59로 증가해 공격적 매수 유입 자체는 존재한다. 다만 가격이 동반 상승하지 못해 흡수로 해석되는 상태다."
    ],
    "executive_summary": "현재 15분 BTC/USDT 구조는 중립 박스 내부 변동이 남아 있으나, 핵심 구조 판정은 bearish 쪽이 우세하다. Wyckoff는 BC $60,580.00, AR $59,530.70로 고정된 분배 범위 안에서 UT $60,303.20, UTAD $60,314.30 이후 LPSY $59,997.40가 나타난 Phase D 분배 후보로 해석하며, ICT도 $60,162.00 bearish CHoCH와 $59,819.80 bearish BOS로 하방 구조 전환을 확인한다. 현재가는 $60,170.50으로 분배 박스 EQ 및 ICT EQ 위의 프리미엄 영역에 있고, $60,186-$60,197 및 $60,303-$60,314 저항대가 여러 방법론에서 중첩된다. 다만 Harmonic은 $59,899-$60,197 및 $60,109-$60,258 부근의 확인된 bullish PRZ 반응을 제시하므로, 이는 구조 반전 근거라기보다 현 bearish 구조에 대한 단기 반등/방어 리스크로 처리한다. 구조적 무효화는 $60,303-$60,314 회복에서 경고가 발생하고, $60,580.00 상방 수용 시 bearish 분배 해석이 본질적으로 훼손된다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.67,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.72,\n    \"active_setups\": [\n      \"Wyckoff: 분배 박스 EQ 약 $60,055.35 위 프리미엄 영역에서 UT $60,303.20 및 UTAD $60,314.30 이후 LPSY $59,997.40가 형성된 Phase D 후보\",\n      \"ICT: EQ $60,092.30 위 프리미엄에서 bearish CHoCH $60,162.00 이후 bearish BOS $59,819.80가 확인된 구조\",\n      \"Fibonacci: 하락 스윙 $60,314 → $59,715의 ret_0.786 저항 $60,186.01을 현재가가 테스트 중\",\n      \"Candlestick/EMA: 가격은 EMA20 $60,063.62 위지만 EMA120 $60,195.96 및 EMA240 $60,284.78 아래에 정체\",\n      \"Derivatives: 롱 계정 비율 0.669로 롱 쏠림이 강하고, OI 24시간 -1.7450% 감소와 음수 basis -0.0822%가 동반\",\n      \"Harmonic 반대 조건: $59,899.14-$60,197.02 및 $60,109.93-$60,258.36 부근의 bullish PRZ 반응이 있어 단기 반등 방어 구간으로 작동 중\"\n    ],\n    \"setup_vs_structure\": \"실행 셋업은 구조적 bearish 판정과 대체로 정렬되어 있다. 다만 harmonic의 확인된 bullish PRZ 반응이 현 가격대에 겹쳐 있어, 즉시 추세 확정보다는 분배 상단부에서의 재공급 여부를 검증하는 구간으로 봐야 한다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 0,\n    \"bearish_count\": 2,\n    \"neutral_count\": 4\n  },\n  \"key_levels\": {\n    \"support\": [\n      60092.3,\n      60085.29,\n      60014.55,\n      59997.4,\n      59943.81,\n      59819.8,\n      59530.7\n    ],\n    \"resistance\": [\n      60186.01,\n      60195.96,\n      60247.1,\n      60258.36,\n      60284.78,\n      60303.2,\n      60314.3,\n      60580.0\n    ]\n  },\n  \"confluences\": [\n    \"Wyckoff와 ICT가 모두 $59,819.80을 핵심 하방 구조 레벨로 식별한다. Wyckoff는 SOW_IN_PHASE_B, ICT는 bearish BOS 레벨로 본다.\",\n    \"Wyckoff의 UTAD $60,314.30, Fibonacci의 상단 클러스터 $60,313.44-$60,314, 그리고 ICT의 프리미엄 되돌림 구조가 $60,303-$60,314 구간을 주요 공급/무효화 전 단계 저항으로 일치시킨다.\",\n    \"Fibonacci ret_0.786 $60,186.01, Candlestick EMA120 $60,195.96, Harmonic bullish Bat 상단 $60,197.02가 $60,186-$60,197 부근의 단기 반응 레벨로 겹친다.\",\n    \"ICT EQ $60,092.30, Fibonacci golden ratio $60,085.29, Harmonic PRZ 상단 $60,098.72-$60,101.40이 $60,085-$60,101 부근을 단기 균형/방어 구간으로 수렴시킨다.\",\n    \"Wyckoff AR $59,530.70와 Fibonacci 확장/클러스터 $59,551.74-$59,563.34가 $59,530-$59,563 부근을 하단 구조 지지대로 공통 식별한다.\",\n    \"Candlestick과 Derivatives 모두 EMA120 $60,195.96 및 EMA240 $60,284.78 아래 정체를 중기 저항 조건으로 본다.\"\n  ],\n  \"conflicts\": [\n    \"Harmonic은 확인된 bullish Bat, Gartley, Butterfly PRZ 반응을 근거로 setup_bias를 bullish로 제시하지만, Wyckoff와 ICT는 각각 분배 Phase D 후보와 bearish CHoCH/BOS를 근거로 구조를 bearish로 판정한다.\",\n    \"Candlestick에서는 고거래량 bullish harami가 존재하지만, 최근 shooting star 및 bearish harami가 동시에 감지되어 캔들 자체도 단기 방향성이 완전히 단일하지 않다.\",\n    \"Fibonacci는 구조 자체는 neutral로 두지만, 현재가가 프리미엄 및 ret_0.786 저항 $60,186.01에 위치한다는 점에서 실행 셋업은 bearish로 본다. 즉 구조 확정과 실행 조건 사이의 강도가 다르다.\",\n    \"Derivatives는 롱 쏠림과 OI 감소를 bearish로 해석하지만, CVD는 +$2,232.59로 증가해 공격적 매수 유입 자체는 존재한다. 다만 가격이 동반 상승하지 못해 흡수로 해석되는 상태다.\"\n  ],\n  \"highest_conviction_analyst\": \"ICT Trader — $60,162.00 bearish CHoCH 이후 $59,819.80 bearish BOS가 확인되어 구조 전환과 하방 구조 확인을 모두 제시했고, 현재가가 EQ $60,092.30 위 프리미엄 및 88.8% 깊은 되돌림에 위치한다는 정밀 조건까지 제시했기 때문이다. Wyckoff 역시 분배 Phase D 후보와 UT/UTAD/LPSY 배열을 제시해 높은 보조 신뢰도를 제공한다.\",\n  \"invalidation_level\": \"$60,580.00 상방 수용. 단기적으로는 $60,303.20-$60,314.30 회복이 분배 Phase D 해석을 약화시키며, $60,580.00 위에서 수용되면 현재 bearish 구조 진단은 훼손된다.\",\n  \"executive_summary\": \"현재 15분 BTC/USDT 구조는 중립 박스 내부 변동이 남아 있으나, 핵심 구조 판정은 bearish 쪽이 우세하다. Wyckoff는 BC $60,580.00, AR $59,530.70로 고정된 분배 범위 안에서 UT $60,303.20, UTAD $60,314.30 이후 LPSY $59,997.40가 나타난 Phase D 분배 후보로 해석하며, ICT도 $60,162.00 bearish CHoCH와 $59,819.80 bearish BOS로 하방 구조 전환을 확인한다. 현재가는 $60,170.50으로 분배 박스 EQ 및 ICT EQ 위의 프리미엄 영역에 있고, $60,186-$60,197 및 $60,303-$60,314 저항대가 여러 방법론에서 중첩된다. 다만 Harmonic은 $59,899-$60,197 및 $60,109-$60,258 부근의 확인된 bullish PRZ 반응을 제시하므로, 이는 구조 반전 근거라기보다 현 bearish 구조에 대한 단기 반등/방어 리스크로 처리한다. 구조적 무효화는 $60,303-$60,314 회복에서 경고가 발생하고, $60,580.00 상방 수용 시 bearish 분배 해석이 본질적으로 훼손된다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.67,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.6,
    "waypoints": [
      {
        "seq": 1,
        "price": 59976.1,
        "type": "support_test",
        "source": "fibonacci (strict fib_confluence $59,976.10, score 1.0), wyckoff (LPSY $59,997.40), candlestick/derivatives (7일 레인지 EQ $59,980.55)",
        "description": "현재가 $60,170.50는 분배 박스 EQ($60,055)·ICT EQ($60,092) 위 프리미엄이며 ret_0.786 $60,186.01 저항에 0.03% 거리로 막혀 있다. setup_bias(BEARISH 72%)와 구조(BEARISH)가 정렬되므로 첫 레그는 하방. WP1 후보표 최우선 레벨인 strict fib confluence $59,976.10(score 1.0)는 Wyckoff LPSY $59,997.40 및 7일 EQ $59,980.55와 겹치는 1차 지지/균형 확인 구간이자 harmonic 방어대 상단으로, 여기서 단기 반등 리스크가 시작된다.",
        "est_hours": 3,
        "turning_zone": [
          59938.0,
          59976.1
        ],
        "likely_wick": 59950.0,
        "rejection_confirm": 60014.55,
        "invalid_overshoot": 59900.0,
        "calibration_reasoning": "strict fib confluence $59,976.10(5레벨)을 상단으로, fib 0.382 $59,943.81과 CONFIRMED_REACTION harmonic Bat/Butterfly PRZ $59,950를 하단 앵커로 zone 설정(폭 $38.10≈0.30 ATR). likely_wick은 PRZ 중심 $59,950, Wyckoff LPSY $59,997.40 위 $60,014.55(fib·Chairman 지지) 재탈환으로 반등 확정, $59,900 이탈은 지지 실패."
      },
      {
        "seq": 2,
        "price": 60186.01,
        "type": "resistance_test",
        "source": "fibonacci (ret_0.786 $60,186.01), candlestick (EMA120 $60,195.96), harmonic (Bat PRZ 상단 $60,197.02 / Gartley PRZ $60,109.93-$60,258.36), ict (CHoCH $60,162.00)",
        "description": "WP1에서 확인된 harmonic bullish PRZ(Bat·Gartley·Butterfly) 방어 반응으로 '분배 상단부 재공급 검증' 반등이 발생한다. 상승은 ret_0.786 $60,186.01·EMA120 $60,195.96·Harmonic Bat 상단 $60,197.02가 중첩된 공급 클러스터에서 거부된다. ICT CHoCH $60,162.00을 수용하지 못하면 재공급이 확정되며, 이 반등은 추세 반전이 아니라 숏 재진입 구간이다(harmonic 단독으로 WP1을 뒤집지 않음, TP/리스크 입력으로만 사용).",
        "est_hours": 9,
        "turning_zone": [
          60186.01,
          60247.1
        ],
        "likely_wick": 60197.02,
        "rejection_confirm": 60162.0,
        "invalid_overshoot": 60284.78,
        "calibration_reasoning": "ret_0.786 $60,186.01·EMA120 $60,195.96·harmonic Bat 상단 $60,197.02 3중 공급 클러스터를 핵심 거부대(likely_wick)로, 상단은 validated harmonic Bat TP1 $60,242.79·Chairman 저항 $60,247.10까지 확장(폭 $61.09≈0.48 ATR). ICT CHoCH $60,162 상실 시 재공급 확정, butterfly TP2 부근 Chairman 저항 $60,284.78 수용은 무효화."
      },
      {
        "seq": 3,
        "price": 59819.8,
        "type": "swing_low",
        "source": "ict (bearish BOS $59,819.80), wyckoff (SOW_IN_PHASE_B $59,819.80)",
        "description": "재공급 거부 후 harmonic 방어 바닥 $59,848을 이탈하며, Wyckoff와 ICT가 공통 식별하는 핵심 하방 구조 레벨 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 하향 돌파한다. strict 구조 이벤트 2개가 동일 레벨에서 수렴하는 분배 마크다운 확정 지점이다.",
        "est_hours": 16,
        "turning_zone": [
          59763.0,
          59819.8
        ],
        "likely_wick": 59775.0,
        "rejection_confirm": 59848.0,
        "invalid_overshoot": 59715.0,
        "calibration_reasoning": "$59,819.80(ICT bearish BOS·Wyckoff SOW 2개 strict 수렴)와 직상단 harmonic 방어 바닥 $59,848 사이에 명확한 하위 레벨이 없어 ATR 기반으로 zone 설정(폭 $56.80≈0.45 ATR). $59,848 재탈환은 국소 반등 확정, 직전 스윙로 $59,715 이탈은 WP4로의 직행을 뜻해 독립 전환점 무효화."
      },
      {
        "seq": 4,
        "price": 59563.34,
        "type": "swing_low",
        "source": "fibonacci (strict fib_confluence $59,563.34, score 1.0 / 클러스터 $59,551.74), wyckoff (AR $59,530.70)",
        "description": "$59,819.80 수용 이탈 후 연장 하락으로 strict fib confluence $59,563.34(score 1.0)와 Wyckoff AR $59,530.70가 겹치는 분배 범위 하단 구조 지지대(AR 저점)를 재시험한다. 후보표 2순위 strict 레벨로 24h 하단 목표.",
        "est_hours": 22,
        "turning_zone": [
          59490.0,
          59563.34
        ],
        "likely_wick": 59520.0,
        "rejection_confirm": 59600.0,
        "invalid_overshoot": 59450.0,
        "calibration_reasoning": "터미널 waypoint로 strict fib confluence $59,563.34(4레벨)와 Wyckoff AR $59,530.70를 포함하고 $59,500 라운드 매그닛까지 확장(폭 $73.34≈0.58 ATR). likely_wick은 AR 직하·$59,500 흡인 구간 $59,520 유동성 스윕, $59,600 재탈환은 AR 방어·반전 확정, $59,450 이탈은 fib confluence $59,229.80로의 마크다운 연장 리스크."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 60186.01,
        "expected_low": 59976.1,
        "high_first": true
      },
      "8h": {
        "expected_high": 60186.01,
        "expected_low": 59943.81,
        "high_first": true
      },
      "24h": {
        "expected_high": 60197.02,
        "expected_low": 59530.7,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 60314.3,
        "description": "Wyckoff UTAD $60,314.30 / 공급 클러스터 $60,303-$60,314를 회복·수용하면 분배 해석 경고가 발생하고, BC $60,580.00 상방 수용 시 bearish 분배 경로가 본질적으로 무효화되며 상방 가속."
      },
      "bearish": {
        "price": 59819.8,
        "description": "$59,976 LPSY/EQ 상실 후 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 결정적으로 하향 이탈·수용하면 마크다운이 가속되어 $59,563-$59,530 AR 구간이 즉시 열린다."
      }
    },
    "scenario_invalidation": 60314.3,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.6,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 59976.10,\n      \"type\": \"support_test\",\n      \"source\": \"fibonacci (strict fib_confluence $59,976.10, score 1.0), wyckoff (LPSY $59,997.40), candlestick/derivatives (7일 레인지 EQ $59,980.55)\",\n      \"description\": \"현재가 $60,170.50는 분배 박스 EQ($60,055)·ICT EQ($60,092) 위 프리미엄이며 ret_0.786 $60,186.01 저항에 0.03% 거리로 막혀 있다. setup_bias(BEARISH 72%)와 구조(BEARISH)가 정렬되므로 첫 레그는 하방. WP1 후보표 최우선 레벨인 strict fib confluence $59,976.10(score 1.0)는 Wyckoff LPSY $59,997.40 및 7일 EQ $59,980.55와 겹치는 1차 지지/균형 확인 구간이자 harmonic 방어대 상단으로, 여기서 단기 반등 리스크가 시작된다.\",\n      \"est_hours\": 3\n    },\n    {\n      \"seq\": 2,\n      \"price\": 60186.01,\n      \"type\": \"resistance_test\",\n      \"source\": \"fibonacci (ret_0.786 $60,186.01), candlestick (EMA120 $60,195.96), harmonic (Bat PRZ 상단 $60,197.02 / Gartley PRZ $60,109.93-$60,258.36), ict (CHoCH $60,162.00)\",\n      \"description\": \"WP1에서 확인된 harmonic bullish PRZ(Bat·Gartley·Butterfly) 방어 반응으로 '분배 상단부 재공급 검증' 반등이 발생한다. 상승은 ret_0.786 $60,186.01·EMA120 $60,195.96·Harmonic Bat 상단 $60,197.02가 중첩된 공급 클러스터에서 거부된다. ICT CHoCH $60,162.00을 수용하지 못하면 재공급이 확정되며, 이 반등은 추세 반전이 아니라 숏 재진입 구간이다(harmonic 단독으로 WP1을 뒤집지 않음, TP/리스크 입력으로만 사용).\",\n      \"est_hours\": 9\n    },\n    {\n      \"seq\": 3,\n      \"price\": 59819.80,\n      \"type\": \"swing_low\",\n      \"source\": \"ict (bearish BOS $59,819.80), wyckoff (SOW_IN_PHASE_B $59,819.80)\",\n      \"description\": \"재공급 거부 후 harmonic 방어 바닥 $59,848을 이탈하며, Wyckoff와 ICT가 공통 식별하는 핵심 하방 구조 레벨 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 하향 돌파한다. strict 구조 이벤트 2개가 동일 레벨에서 수렴하는 분배 마크다운 확정 지점이다.\",\n      \"est_hours\": 16\n    },\n    {\n      \"seq\": 4,\n      \"price\": 59563.34,\n      \"type\": \"swing_low\",\n      \"source\": \"fibonacci (strict fib_confluence $59,563.34, score 1.0 / 클러스터 $59,551.74), wyckoff (AR $59,530.70)\",\n      \"description\": \"$59,819.80 수용 이탈 후 연장 하락으로 strict fib confluence $59,563.34(score 1.0)와 Wyckoff AR $59,530.70가 겹치는 분배 범위 하단 구조 지지대(AR 저점)를 재시험한다. 후보표 2순위 strict 레벨로 24h 하단 목표.\",\n      \"est_hours\": 22\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 60186.01, \"expected_low\": 59976.10, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 60186.01, \"expected_low\": 59943.81, \"high_first\": true},\n    \"24h\": {\"expected_high\": 60197.02, \"expected_low\": 59530.70, \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 60314.30, \"description\": \"Wyckoff UTAD $60,314.30 / 공급 클러스터 $60,303-$60,314를 회복·수용하면 분배 해석 경고가 발생하고, BC $60,580.00 상방 수용 시 bearish 분배 경로가 본질적으로 무효화되며 상방 가속.\"},\n    \"bearish\": {\"price\": 59819.80, \"description\": \"$59,976 LPSY/EQ 상실 후 $59,819.80(ICT bearish BOS / Wyckoff SOW)을 결정적으로 하향 이탈·수용하면 마크다운이 가속되어 $59,563-$59,530 AR 구간이 즉시 열린다.\"}\n  },\n  \"scenario_invalidation\": 60314.30\n}\n```"
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 59976.1,
        "turning_zone": [
          59938.0,
          59976.1
        ],
        "likely_wick": 59950.0,
        "rejection_confirm": 60014.55,
        "invalid_overshoot": 59900.0,
        "calibration_reasoning": "strict fib confluence $59,976.10(5레벨)을 상단으로, fib 0.382 $59,943.81과 CONFIRMED_REACTION harmonic Bat/Butterfly PRZ $59,950를 하단 앵커로 zone 설정(폭 $38.10≈0.30 ATR). likely_wick은 PRZ 중심 $59,950, Wyckoff LPSY $59,997.40 위 $60,014.55(fib·Chairman 지지) 재탈환으로 반등 확정, $59,900 이탈은 지지 실패."
      },
      {
        "seq": 2,
        "base_target": 60186.01,
        "turning_zone": [
          60186.01,
          60247.1
        ],
        "likely_wick": 60197.02,
        "rejection_confirm": 60162.0,
        "invalid_overshoot": 60284.78,
        "calibration_reasoning": "ret_0.786 $60,186.01·EMA120 $60,195.96·harmonic Bat 상단 $60,197.02 3중 공급 클러스터를 핵심 거부대(likely_wick)로, 상단은 validated harmonic Bat TP1 $60,242.79·Chairman 저항 $60,247.10까지 확장(폭 $61.09≈0.48 ATR). ICT CHoCH $60,162 상실 시 재공급 확정, butterfly TP2 부근 Chairman 저항 $60,284.78 수용은 무효화."
      },
      {
        "seq": 3,
        "base_target": 59819.8,
        "turning_zone": [
          59763.0,
          59819.8
        ],
        "likely_wick": 59775.0,
        "rejection_confirm": 59848.0,
        "invalid_overshoot": 59715.0,
        "calibration_reasoning": "$59,819.80(ICT bearish BOS·Wyckoff SOW 2개 strict 수렴)와 직상단 harmonic 방어 바닥 $59,848 사이에 명확한 하위 레벨이 없어 ATR 기반으로 zone 설정(폭 $56.80≈0.45 ATR). $59,848 재탈환은 국소 반등 확정, 직전 스윙로 $59,715 이탈은 WP4로의 직행을 뜻해 독립 전환점 무효화."
      },
      {
        "seq": 4,
        "base_target": 59563.34,
        "turning_zone": [
          59490.0,
          59563.34
        ],
        "likely_wick": 59520.0,
        "rejection_confirm": 59600.0,
        "invalid_overshoot": 59450.0,
        "calibration_reasoning": "터미널 waypoint로 strict fib confluence $59,563.34(4레벨)와 Wyckoff AR $59,530.70를 포함하고 $59,500 라운드 매그닛까지 확장(폭 $73.34≈0.58 ATR). likely_wick은 AR 직하·$59,500 흡인 구간 $59,520 유동성 스윕, $59,600 재탈환은 AR 방어·반전 확정, $59,450 이탈은 fib confluence $59,229.80로의 마크다운 연장 리스크."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 59976.10,\n      \"turning_zone\": [59938.00, 59976.10],\n      \"likely_wick\": 59950.00,\n      \"rejection_confirm\": 60014.55,\n      \"invalid_overshoot\": 59900.00,\n      \"calibration_reasoning\": \"strict fib confluence $59,976.10(5레벨)을 상단으로, fib 0.382 $59,943.81과 CONFIRMED_REACTION harmonic Bat/Butterfly PRZ $59,950를 하단 앵커로 zone 설정(폭 $38.10≈0.30 ATR). likely_wick은 PRZ 중심 $59,950, Wyckoff LPSY $59,997.40 위 $60,014.55(fib·Chairman 지지) 재탈환으로 반등 확정, $59,900 이탈은 지지 실패.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 60186.01,\n      \"turning_zone\": [60186.01, 60247.10],\n      \"likely_wick\": 60197.02,\n      \"rejection_confirm\": 60162.00,\n      \"invalid_overshoot\": 60284.78,\n      \"calibration_reasoning\": \"ret_0.786 $60,186.01·EMA120 $60,195.96·harmonic Bat 상단 $60,197.02 3중 공급 클러스터를 핵심 거부대(likely_wick)로, 상단은 validated harmonic Bat TP1 $60,242.79·Chairman 저항 $60,247.10까지 확장(폭 $61.09≈0.48 ATR). ICT CHoCH $60,162 상실 시 재공급 확정, butterfly TP2 부근 Chairman 저항 $60,284.78 수용은 무효화.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 59819.80,\n      \"turning_zone\": [59763.00, 59819.80],\n      \"likely_wick\": 59775.00,\n      \"rejection_confirm\": 59848.00,\n      \"invalid_overshoot\": 59715.00,\n      \"calibration_reasoning\": \"$59,819.80(ICT bearish BOS·Wyckoff SOW 2개 strict 수렴)와 직상단 harmonic 방어 바닥 $59,848 사이에 명확한 하위 레벨이 없어 ATR 기반으로 zone 설정(폭 $56.80≈0.45 ATR). $59,848 재탈환은 국소 반등 확정, 직전 스윙로 $59,715 이탈은 WP4로의 직행을 뜻해 독립 전환점 무효화.\"\n    },\n    {\n      \"seq\": 4,\n      \"base_target\": 59563.34,\n      \"turning_zone\": [59490.00, 59563.34],\n      \"likely_wick\": 59520.00,\n      \"rejection_confirm\": 59600.00,\n      \"invalid_overshoot\": 59450.00,\n      \"calibration_reasoning\": \"터미널 waypoint로 strict fib confluence $59,563.34(4레벨)와 Wyckoff AR $59,530.70를 포함하고 $59,500 라운드 매그닛까지 확장(폭 $73.34≈0.58 ATR). likely_wick은 AR 직하·$59,500 흡인 구간 $59,520 유동성 스윕, $59,600 재탈환은 AR 방어·반전 확정, $59,450 이탈은 fib confluence $59,229.80로의 마크다운 연장 리스크.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 49.8,
      "chairman": 84.7,
      "operating_path": 299.6,
      "tp_calibrator": 204.1
    },
    "agents": {},
    "total_s": 638.3
  }
}