{
  "ticker": {
    "symbol": "CABZ",
    "name": "Roundhill Robotaxi Autonomous Vehicles & Technology ETF",
    "exchange": "CBOE"
  },
  "latest_week": "2026-07-24",
  "latest_close": 20.5398,
  "latest_open": 21.5508,
  "latest_high": 21.9824,
  "latest_low": 20.5398,
  "bar_count": 28,
  "analysis_bar_count": 28,
  "reversal_percent": 8.064045042667379,
  "model": {
    "version": "ewc-2.1.0",
    "as_of": "2026-07-24",
    "price_basis": "weekly OHLCV; Elliott pivots use weekly closes",
    "wave_method": "constraint-based Elliott candidate enumeration",
    "cycle_method": "adaptive Hurst-style phasing with nominal harmonic bands, trough spacing, FLD and cyclic trend-line confirmation",
    "repainting_policy": "only the final active pivot is provisional; confirmed pivots are retained"
  },
  "pivots": [
    {
      "index": 27,
      "date": "2026-07-24",
      "price": 20.5398,
      "kind": "low",
      "move_percent": null,
      "weeks": 0,
      "confirmed": false
    }
  ],
  "cycle": {
    "phase": "falling",
    "trend_bias": "bearish",
    "oscillator": -2.736491064620215,
    "slope": -3.9407904210426667,
    "dominant_period_weeks": 40,
    "period_basis": "median confirmed trough-to-trough and crest-to-crest spacing",
    "weeks_since_turn": null,
    "estimated_weeks_to_next_turn": null,
    "series": [
      {
        "date": "2026-01-16",
        "value": null
      },
      {
        "date": "2026-01-23",
        "value": null
      },
      {
        "date": "2026-01-30",
        "value": null
      },
      {
        "date": "2026-02-06",
        "value": 0.0
      },
      {
        "date": "2026-02-13",
        "value": 0.0
      },
      {
        "date": "2026-02-20",
        "value": 0.0
      },
      {
        "date": "2026-02-27",
        "value": 0.0
      },
      {
        "date": "2026-03-06",
        "value": 0.0
      },
      {
        "date": "2026-03-13",
        "value": 0.0
      },
      {
        "date": "2026-03-20",
        "value": 0.0
      },
      {
        "date": "2026-03-27",
        "value": 0.0
      },
      {
        "date": "2026-04-03",
        "value": 0.0
      },
      {
        "date": "2026-04-10",
        "value": 0.0
      },
      {
        "date": "2026-04-17",
        "value": 0.0
      },
      {
        "date": "2026-04-24",
        "value": 0.0
      },
      {
        "date": "2026-05-01",
        "value": 0.0
      },
      {
        "date": "2026-05-08",
        "value": 0.0
      },
      {
        "date": "2026-05-15",
        "value": 0.0
      },
      {
        "date": "2026-05-22",
        "value": 0.0
      },
      {
        "date": "2026-05-29",
        "value": 3.130497392900564
      },
      {
        "date": "2026-06-05",
        "value": 4.245800365661345
      },
      {
        "date": "2026-06-12",
        "value": 4.825313351534538
      },
      {
        "date": "2026-06-19",
        "value": 5.578165574293627
      },
      {
        "date": "2026-06-26",
        "value": 1.2042993564224518
      },
      {
        "date": "2026-07-03",
        "value": 0.3933822502630784
      },
      {
        "date": "2026-07-10",
        "value": 0.05599744646602711
      },
      {
        "date": "2026-07-17",
        "value": -1.735751496041678
      },
      {
        "date": "2026-07-24",
        "value": -2.736491064620215
      }
    ]
  },
  "hurst": {
    "status": "mixed",
    "phase": "falling",
    "alignment_score": 25,
    "risk_score": 75,
    "trough_alignment": 0,
    "crest_alignment": 0,
    "nearest_trough_window": 17,
    "nearest_crest_window": 18,
    "method": "adaptive Hurst-style phasing with nominal harmonic bands, trough spacing, FLD and cyclic trend-line confirmation",
    "explanation": "Nominal cycles are starting bands, not fixed clocks. Each period adapts to the strongest nearby repeat in detrended weekly prices; projected turns are future intervals and require price confirmation.",
    "cycles": [
      {
        "period": 10,
        "label": "10w",
        "estimated_period": 10,
        "period_range": [
          7,
          13
        ],
        "period_strength": 0,
        "phase": "falling",
        "value": -1.164147252051951,
        "slope": -0.4931657750206029,
        "amplitude": 6.855,
        "weeks_since_trough": 4,
        "weeks_since_crest": 2,
        "projected_trough_window": 6,
        "projected_crest_window": 8,
        "trough_window": {
          "start": 3,
          "midpoint": 6,
          "end": 9
        },
        "crest_window": {
          "start": 5,
          "midpoint": 8,
          "end": 11
        },
        "fld": {
          "value": 23.606099999999998,
          "state": "crossed down",
          "weeks_since_cross": 6,
          "displacement": 5,
          "explanation": "Median price displaced forward by half the estimated wavelength; a price cross confirms a cyclic turn after it begins."
        },
        "vtl": {
          "available": true,
          "value": 19.513840000000002,
          "state": "price above",
          "slope": -0.4290399999999998,
          "explanation": "A provisional line through the latest two phased troughs; it is supporting evidence, not a standalone signal."
        },
        "trough_indexes": [
          10,
          18,
          23
        ],
        "series": [
          {
            "date": "2026-01-16",
            "value": null
          },
          {
            "date": "2026-01-23",
            "value": null
          },
          {
            "date": "2026-01-30",
            "value": null
          },
          {
            "date": "2026-02-06",
            "value": null
          },
          {
            "date": "2026-02-13",
            "value": null
          },
          {
            "date": "2026-02-20",
            "value": null
          },
          {
            "date": "2026-02-27",
            "value": null
          },
          {
            "date": "2026-03-06",
            "value": null
          },
          {
            "date": "2026-03-13",
            "value": null
          },
          {
            "date": "2026-03-20",
            "value": -1.0
          },
          {
            "date": "2026-03-27",
            "value": -1.0446692701747946
          },
          {
            "date": "2026-04-03",
            "value": -0.861418799296909
          },
          {
            "date": "2026-04-10",
            "value": -0.5906975092810824
          },
          {
            "date": "2026-04-17",
            "value": 0.23575544116030156
          },
          {
            "date": "2026-04-24",
            "value": 0.7390620807976214
          },
          {
            "date": "2026-05-01",
            "value": 1.0517823790001097
          },
          {
            "date": "2026-05-08",
            "value": 1.1611139105353316
          },
          {
            "date": "2026-05-15",
            "value": 1.2177533607698843
          },
          {
            "date": "2026-05-22",
            "value": 1.2045684583310232
          },
          {
            "date": "2026-05-29",
            "value": 1.2218564049301484
          },
          {
            "date": "2026-06-05",
            "value": 0.7564703847276424
          },
          {
            "date": "2026-06-12",
            "value": 0.25753856607522874
          },
          {
            "date": "2026-06-19",
            "value": -0.05237394877308077
          },
          {
            "date": "2026-06-26",
            "value": -0.6841246495910269
          },
          {
            "date": "2026-07-03",
            "value": -0.670981477031348
          },
          {
            "date": "2026-07-10",
            "value": -0.5865912368643487
          },
          {
            "date": "2026-07-17",
            "value": -0.8050360752670953
          },
          {
            "date": "2026-07-24",
            "value": -1.164147252051951
          }
        ]
      },
      {
        "period": 20,
        "label": "20w",
        "estimated_period": 20,
        "period_range": [
          15,
          25
        ],
        "period_strength": 0,
        "phase": "falling",
        "value": -0.9613320583645313,
        "slope": -1.0748418120352836,
        "amplitude": 4.208,
        "weeks_since_trough": 3,
        "weeks_since_crest": 2,
        "projected_trough_window": 17,
        "projected_crest_window": 18,
        "trough_window": {
          "start": 12,
          "midpoint": 17,
          "end": 22
        },
        "crest_window": {
          "start": 13,
          "midpoint": 18,
          "end": 23
        },
        "fld": {
          "value": 24.745,
          "state": "crossed down",
          "weeks_since_cross": 4,
          "displacement": 10,
          "explanation": "Median price displaced forward by half the estimated wavelength; a price cross confirms a cyclic turn after it begins."
        },
        "vtl": {
          "available": false,
          "value": null,
          "state": "unavailable"
        },
        "trough_indexes": [
          24
        ],
        "series": [
          {
            "date": "2026-01-16",
            "value": null
          },
          {
            "date": "2026-01-23",
            "value": null
          },
          {
            "date": "2026-01-30",
            "value": null
          },
          {
            "date": "2026-02-06",
            "value": null
          },
          {
            "date": "2026-02-13",
            "value": null
          },
          {
            "date": "2026-02-20",
            "value": null
          },
          {
            "date": "2026-02-27",
            "value": null
          },
          {
            "date": "2026-03-06",
            "value": null
          },
          {
            "date": "2026-03-13",
            "value": null
          },
          {
            "date": "2026-03-20",
            "value": null
          },
          {
            "date": "2026-03-27",
            "value": null
          },
          {
            "date": "2026-04-03",
            "value": null
          },
          {
            "date": "2026-04-10",
            "value": null
          },
          {
            "date": "2026-04-17",
            "value": null
          },
          {
            "date": "2026-04-24",
            "value": null
          },
          {
            "date": "2026-05-01",
            "value": null
          },
          {
            "date": "2026-05-08",
            "value": null
          },
          {
            "date": "2026-05-15",
            "value": null
          },
          {
            "date": "2026-05-22",
            "value": null
          },
          {
            "date": "2026-05-29",
            "value": 1.0
          },
          {
            "date": "2026-06-05",
            "value": 0.8721338974070647
          },
          {
            "date": "2026-06-12",
            "value": 0.7150385458208451
          },
          {
            "date": "2026-06-19",
            "value": 0.6421063325083944
          },
          {
            "date": "2026-06-26",
            "value": 0.16683333023885755
          },
          {
            "date": "2026-07-03",
            "value": 0.11350975367075243
          },
          {
            "date": "2026-07-10",
            "value": 0.14762003701305026
          },
          {
            "date": "2026-07-17",
            "value": -0.33945209736103804
          },
          {
            "date": "2026-07-24",
            "value": -0.9613320583645313
          }
        ]
      },
      {
        "period": 40,
        "label": "40w",
        "estimated_period": 40,
        "period_range": [
          30,
          50
        ],
        "period_strength": 0,
        "phase": "warming",
        "value": null,
        "slope": 0.0,
        "amplitude": null,
        "weeks_since_trough": null,
        "weeks_since_crest": null,
        "projected_trough_window": null,
        "projected_crest_window": null,
        "trough_window": null,
        "crest_window": null,
        "fld": {
          "value": 21.7226,
          "state": "crossed down",
          "weeks_since_cross": 1,
          "displacement": 20,
          "explanation": "Median price displaced forward by half the estimated wavelength; a price cross confirms a cyclic turn after it begins."
        },
        "vtl": {
          "available": false,
          "value": null,
          "state": "unavailable"
        },
        "trough_indexes": [],
        "series": [
          {
            "date": "2026-01-16",
            "value": null
          },
          {
            "date": "2026-01-23",
            "value": null
          },
          {
            "date": "2026-01-30",
            "value": null
          },
          {
            "date": "2026-02-06",
            "value": null
          },
          {
            "date": "2026-02-13",
            "value": null
          },
          {
            "date": "2026-02-20",
            "value": null
          },
          {
            "date": "2026-02-27",
            "value": null
          },
          {
            "date": "2026-03-06",
            "value": null
          },
          {
            "date": "2026-03-13",
            "value": null
          },
          {
            "date": "2026-03-20",
            "value": null
          },
          {
            "date": "2026-03-27",
            "value": null
          },
          {
            "date": "2026-04-03",
            "value": null
          },
          {
            "date": "2026-04-10",
            "value": null
          },
          {
            "date": "2026-04-17",
            "value": null
          },
          {
            "date": "2026-04-24",
            "value": null
          },
          {
            "date": "2026-05-01",
            "value": null
          },
          {
            "date": "2026-05-08",
            "value": null
          },
          {
            "date": "2026-05-15",
            "value": null
          },
          {
            "date": "2026-05-22",
            "value": null
          },
          {
            "date": "2026-05-29",
            "value": null
          },
          {
            "date": "2026-06-05",
            "value": null
          },
          {
            "date": "2026-06-12",
            "value": null
          },
          {
            "date": "2026-06-19",
            "value": null
          },
          {
            "date": "2026-06-26",
            "value": null
          },
          {
            "date": "2026-07-03",
            "value": null
          },
          {
            "date": "2026-07-10",
            "value": null
          },
          {
            "date": "2026-07-17",
            "value": null
          },
          {
            "date": "2026-07-24",
            "value": null
          }
        ]
      },
      {
        "period": 80,
        "label": "80w",
        "estimated_period": 80,
        "period_range": [
          61,
          99
        ],
        "period_strength": 0,
        "phase": "warming",
        "value": null,
        "slope": 0.0,
        "amplitude": null,
        "weeks_since_trough": null,
        "weeks_since_crest": null,
        "projected_trough_window": null,
        "projected_crest_window": null,
        "trough_window": null,
        "crest_window": null,
        "fld": {
          "value": null,
          "state": "unconfirmed",
          "weeks_since_cross": null,
          "displacement": 40,
          "explanation": "Median price displaced forward by half the estimated wavelength; a price cross confirms a cyclic turn after it begins."
        },
        "vtl": {
          "available": false,
          "value": null,
          "state": "unavailable"
        },
        "trough_indexes": [],
        "series": [
          {
            "date": "2026-01-16",
            "value": null
          },
          {
            "date": "2026-01-23",
            "value": null
          },
          {
            "date": "2026-01-30",
            "value": null
          },
          {
            "date": "2026-02-06",
            "value": null
          },
          {
            "date": "2026-02-13",
            "value": null
          },
          {
            "date": "2026-02-20",
            "value": null
          },
          {
            "date": "2026-02-27",
            "value": null
          },
          {
            "date": "2026-03-06",
            "value": null
          },
          {
            "date": "2026-03-13",
            "value": null
          },
          {
            "date": "2026-03-20",
            "value": null
          },
          {
            "date": "2026-03-27",
            "value": null
          },
          {
            "date": "2026-04-03",
            "value": null
          },
          {
            "date": "2026-04-10",
            "value": null
          },
          {
            "date": "2026-04-17",
            "value": null
          },
          {
            "date": "2026-04-24",
            "value": null
          },
          {
            "date": "2026-05-01",
            "value": null
          },
          {
            "date": "2026-05-08",
            "value": null
          },
          {
            "date": "2026-05-15",
            "value": null
          },
          {
            "date": "2026-05-22",
            "value": null
          },
          {
            "date": "2026-05-29",
            "value": null
          },
          {
            "date": "2026-06-05",
            "value": null
          },
          {
            "date": "2026-06-12",
            "value": null
          },
          {
            "date": "2026-06-19",
            "value": null
          },
          {
            "date": "2026-06-26",
            "value": null
          },
          {
            "date": "2026-07-03",
            "value": null
          },
          {
            "date": "2026-07-10",
            "value": null
          },
          {
            "date": "2026-07-17",
            "value": null
          },
          {
            "date": "2026-07-24",
            "value": null
          }
        ]
      }
    ],
    "composite": [
      {
        "date": "2026-01-16",
        "value": null
      },
      {
        "date": "2026-01-23",
        "value": null
      },
      {
        "date": "2026-01-30",
        "value": null
      },
      {
        "date": "2026-02-06",
        "value": null
      },
      {
        "date": "2026-02-13",
        "value": null
      },
      {
        "date": "2026-02-20",
        "value": null
      },
      {
        "date": "2026-02-27",
        "value": null
      },
      {
        "date": "2026-03-06",
        "value": null
      },
      {
        "date": "2026-03-13",
        "value": null
      },
      {
        "date": "2026-03-20",
        "value": -1.0
      },
      {
        "date": "2026-03-27",
        "value": -1.0446692701747946
      },
      {
        "date": "2026-04-03",
        "value": -0.8614187992969089
      },
      {
        "date": "2026-04-10",
        "value": -0.5906975092810824
      },
      {
        "date": "2026-04-17",
        "value": 0.23575544116030156
      },
      {
        "date": "2026-04-24",
        "value": 0.7390620807976214
      },
      {
        "date": "2026-05-01",
        "value": 1.0517823790001097
      },
      {
        "date": "2026-05-08",
        "value": 1.1611139105353316
      },
      {
        "date": "2026-05-15",
        "value": 1.2177533607698843
      },
      {
        "date": "2026-05-22",
        "value": 1.2045684583310232
      },
      {
        "date": "2026-05-29",
        "value": 1.0887425619720592
      },
      {
        "date": "2026-06-05",
        "value": 0.8258684923352957
      },
      {
        "date": "2026-06-12",
        "value": 0.5320385539225986
      },
      {
        "date": "2026-06-19",
        "value": 0.3643142199958044
      },
      {
        "date": "2026-06-26",
        "value": -0.17354986169309625
      },
      {
        "date": "2026-07-03",
        "value": -0.20028673861008775
      },
      {
        "date": "2026-07-10",
        "value": -0.1460644725379093
      },
      {
        "date": "2026-07-17",
        "value": -0.5256856885234609
      },
      {
        "date": "2026-07-24",
        "value": -1.042458135839499
      }
    ]
  },
  "structure": {
    "primary": {
      "id": "tactical-bullish-abc",
      "degree": "tactical",
      "pattern": "correction",
      "stage": "wave_c",
      "title": "A/B/C reset may be completing",
      "direction": "bullish",
      "score": 74,
      "rules": [
        {
          "label": "Wave B protects the correction origin",
          "passed": true,
          "detail": "Origin 25.60; Wave B 22.89.",
          "hard": true
        },
        {
          "label": "Wave C progresses beyond Wave A",
          "passed": true,
          "detail": "A length 4.12; C length 2.35.",
          "hard": true
        }
      ],
      "guidelines": [
        {
          "label": "Wave C is proportionate to Wave A",
          "passed": true,
          "detail": "Wave C is 0.57\u00d7 Wave A.",
          "hard": false
        }
      ],
      "labels": [
        {
          "index": 19,
          "date": "2026-05-29",
          "price": 25.5981,
          "kind": "high",
          "move_percent": null,
          "weeks": 0,
          "confirmed": true,
          "label": "5"
        },
        {
          "index": 23,
          "date": "2026-06-26",
          "price": 21.4757,
          "kind": "low",
          "move_percent": -16.104320242517996,
          "weeks": 4,
          "confirmed": true,
          "label": "A"
        },
        {
          "index": 24,
          "date": "2026-07-03",
          "price": 22.8943,
          "kind": "high",
          "move_percent": 6.605605405178882,
          "weeks": 1,
          "confirmed": true,
          "label": "B"
        },
        {
          "index": 27,
          "date": "2026-07-24",
          "price": 20.5398,
          "kind": "low",
          "move_percent": -10.284219216136774,
          "weeks": 3,
          "confirmed": false,
          "label": "C"
        }
      ],
      "invalidation": 20.5398,
      "confirmation": 22.8943,
      "forming": true,
      "explanation": "A three-leg corrective interpretation whose Wave B and Wave C geometry is internally consistent.",
      "evidence_weight": 60
    },
    "alternates": [
      {
        "id": "tactical-bearish-wave3",
        "degree": "tactical",
        "pattern": "impulse",
        "stage": "wave3",
        "title": "Possible bearish Wave 3 declining",
        "direction": "bearish",
        "score": 69,
        "rules": [
          {
            "label": "Wave 2 protects the Wave 1 origin",
            "passed": true,
            "detail": "Origin 25.60; Wave 2 22.89.",
            "hard": true
          },
          {
            "label": "Wave 3 exceeds Wave 1",
            "passed": true,
            "detail": "Wave 1 21.48; Wave 3 20.54.",
            "hard": true
          }
        ],
        "guidelines": [
          {
            "label": "Wave 2 retracement is proportionate",
            "passed": true,
            "detail": "Retraced 34% of Wave 1.",
            "hard": false
          },
          {
            "label": "Wave 3 extension is plausible",
            "passed": false,
            "detail": "Wave 3 is 0.57\u00d7 Wave 1.",
            "hard": false
          }
        ],
        "labels": [
          {
            "index": 19,
            "date": "2026-05-29",
            "price": 25.5981,
            "kind": "high",
            "move_percent": null,
            "weeks": 0,
            "confirmed": true,
            "label": "0"
          },
          {
            "index": 23,
            "date": "2026-06-26",
            "price": 21.4757,
            "kind": "low",
            "move_percent": -16.104320242517996,
            "weeks": 4,
            "confirmed": true,
            "label": "1"
          },
          {
            "index": 24,
            "date": "2026-07-03",
            "price": 22.8943,
            "kind": "high",
            "move_percent": 6.605605405178882,
            "weeks": 1,
            "confirmed": true,
            "label": "2"
          },
          {
            "index": 27,
            "date": "2026-07-24",
            "price": 20.5398,
            "kind": "low",
            "move_percent": -10.284219216136774,
            "weeks": 3,
            "confirmed": false,
            "label": "3"
          }
        ],
        "invalidation": 22.8943,
        "confirmation": 20.5398,
        "forming": true,
        "explanation": "A rule-valid motive interpretation. Fibonacci proportions and alternation improve the fit but are guidelines, not hard requirements.",
        "evidence_weight": 40
      }
    ],
    "degrees": [
      {
        "key": "strategic",
        "label": "Strategic",
        "reversal_percent": 12.902472068267807,
        "primary": null,
        "candidate_count": 0,
        "explanation": "Strategic degree uses a 12.9% weekly closing-price reversal threshold."
      },
      {
        "key": "primary",
        "label": "Primary",
        "reversal_percent": 8.064045042667379,
        "primary": null,
        "candidate_count": 0,
        "explanation": "Primary degree uses a 8.1% weekly closing-price reversal threshold."
      },
      {
        "key": "tactical",
        "label": "Tactical",
        "reversal_percent": 5.644831529867165,
        "primary": {
          "id": "tactical-bullish-abc",
          "degree": "tactical",
          "pattern": "correction",
          "stage": "wave_c",
          "title": "A/B/C reset may be completing",
          "direction": "bullish",
          "score": 74,
          "rules": [
            {
              "label": "Wave B protects the correction origin",
              "passed": true,
              "detail": "Origin 25.60; Wave B 22.89.",
              "hard": true
            },
            {
              "label": "Wave C progresses beyond Wave A",
              "passed": true,
              "detail": "A length 4.12; C length 2.35.",
              "hard": true
            }
          ],
          "guidelines": [
            {
              "label": "Wave C is proportionate to Wave A",
              "passed": true,
              "detail": "Wave C is 0.57\u00d7 Wave A.",
              "hard": false
            }
          ],
          "labels": [
            {
              "index": 19,
              "date": "2026-05-29",
              "price": 25.5981,
              "kind": "high",
              "move_percent": null,
              "weeks": 0,
              "confirmed": true,
              "label": "5"
            },
            {
              "index": 23,
              "date": "2026-06-26",
              "price": 21.4757,
              "kind": "low",
              "move_percent": -16.104320242517996,
              "weeks": 4,
              "confirmed": true,
              "label": "A"
            },
            {
              "index": 24,
              "date": "2026-07-03",
              "price": 22.8943,
              "kind": "high",
              "move_percent": 6.605605405178882,
              "weeks": 1,
              "confirmed": true,
              "label": "B"
            },
            {
              "index": 27,
              "date": "2026-07-24",
              "price": 20.5398,
              "kind": "low",
              "move_percent": -10.284219216136774,
              "weeks": 3,
              "confirmed": false,
              "label": "C"
            }
          ],
          "invalidation": 20.5398,
          "confirmation": 22.8943,
          "forming": true,
          "explanation": "A three-leg corrective interpretation whose Wave B and Wave C geometry is internally consistent.",
          "evidence_weight": 60
        },
        "candidate_count": 2,
        "explanation": "Tactical degree uses a 5.6% weekly closing-price reversal threshold."
      }
    ],
    "stability": {
      "score": 0,
      "changes": null,
      "observations": 0,
      "label": "Unavailable"
    },
    "method": "constraint-based Elliott candidate enumeration",
    "explanation": "Counts must pass hard Elliott geometry rules. Fibonacci relationships, alternation and cycle evidence rank admissible interpretations; evidence weights compare scenarios and are not forecast probabilities."
  },
  "scenario": {
    "setup": "warming",
    "title": "Needs more weekly history",
    "direction": "neutral",
    "confidence": 20,
    "labels": [],
    "notes": [
      "At least 65 weekly bars gives the wave and cycle model enough context."
    ],
    "metrics": {}
  },
  "detail": {
    "summary": "The closing-price swing map is classified as needs more weekly history. 0 of 3 available confirmation measures are constructive.",
    "returns": [
      {
        "weeks": 4,
        "label": "4-week return",
        "value": -4.357948751379467
      },
      {
        "weeks": 13,
        "label": "13-week return",
        "value": -11.586043027970767
      },
      {
        "weeks": 26,
        "label": "26-week return",
        "value": -15.125494830621232
      },
      {
        "weeks": 52,
        "label": "52-week return",
        "value": null
      }
    ],
    "range": {
      "high_52": 28.4899,
      "low_52": 19.201,
      "position_52": 14.412901419974371,
      "drawdown": -27.904976851445596
    },
    "risk": {
      "annualised_volatility": 30.42214565684326,
      "average_weekly_range": 7.742447130819535,
      "active_drawdown": -19.7604509709705
    },
    "levels": {
      "support": null,
      "resistance": null,
      "decisive": null,
      "decisive_label": "Nearest confirmed structure level",
      "trend": null,
      "fair_value": 22.665264,
      "trend_gap": null,
      "fair_value_gap": -9.3776273684701
    },
    "active_swing": {
      "from": null,
      "to": {
        "index": 27,
        "date": "2026-07-24",
        "price": 20.5398,
        "kind": "low",
        "move_percent": null,
        "weeks": 0,
        "confirmed": false
      },
      "move_percent": null,
      "weeks": 0,
      "status": "Forming"
    },
    "confirmation": {
      "rows": [
        {
          "label": "Trend",
          "status": "neutral",
          "value": "Unavailable",
          "explanation": "The 30-week trend line is not available."
        },
        {
          "label": "Cycle pressure",
          "status": "negative",
          "value": "Falling",
          "explanation": "The medium-term pressure curve is not rising."
        },
        {
          "label": "Cycle alignment",
          "status": "neutral",
          "value": "Mixed",
          "explanation": "Cycle lengths are not moving in one clear direction."
        },
        {
          "label": "Relative strength",
          "status": "neutral",
          "value": "Unavailable",
          "explanation": "The reading is neutral or unavailable."
        },
        {
          "label": "Market activity",
          "status": "neutral",
          "value": "Unavailable",
          "explanation": "The reading is neutral or unavailable."
        },
        {
          "label": "Market dynamics",
          "status": "neutral",
          "value": "+0.0",
          "explanation": "The reading is neutral or unavailable."
        },
        {
          "label": "30-week momentum",
          "status": "neutral",
          "value": "Unavailable",
          "explanation": "The reading is neutral or unavailable."
        }
      ],
      "positive": 0,
      "negative": 1,
      "neutral": 2,
      "observed": 3,
      "agreement": 33,
      "direction": "defensive",
      "scenario_direction": "neutral"
    },
    "evidence": {
      "score": 21,
      "history_score": 11,
      "indicator_coverage": 38,
      "structure_score": 0,
      "weekly_observations": 28,
      "confirmed_pivots": 0
    },
    "volume_ratio": 35.12946323007803,
    "historical": {
      "available": false,
      "matches": 0,
      "horizons": [],
      "note": "At least 90 weekly observations are required."
    },
    "lifecycle": {
      "state": "watching",
      "label": "Watching",
      "now": "A/B/C reset may be completing is the highest-ranked admissible tactical count; cycle status is mixed.",
      "next": "A weekly close through 22.89, supported by an FLD cross and improving relative strength.",
      "wrong": "The underlying directional structure fails beyond 20.54; a forming endpoint can extend before that happens.",
      "risk": "The active endpoint can move until its reversal is confirmed; earnings, gaps and volatility can jump through technical levels.",
      "explanation": "The lifecycle separates an interesting setup from price confirmation, an active thesis, maturity and invalidation."
    },
    "peer_evidence": {
      "available": true,
      "peers": 17,
      "constructive_count": 8,
      "constructive_percent": 47,
      "rising_cycle_count": 7,
      "rising_cycle_percent": 41,
      "horizons": [
        {
          "weeks": 4,
          "observations": 0,
          "positive_rate": null,
          "median_return": null,
          "average_return": null,
          "median_excess_return": null,
          "excess_observations": 0,
          "p10": null,
          "p90": null
        },
        {
          "weeks": 13,
          "observations": 0,
          "positive_rate": null,
          "median_return": null,
          "average_return": null,
          "median_excess_return": null,
          "excess_observations": 0,
          "p10": null,
          "p90": null
        },
        {
          "weeks": 26,
          "observations": 0,
          "positive_rate": null,
          "median_return": null,
          "average_return": null,
          "median_excess_return": null,
          "excess_observations": 0,
          "p10": null,
          "p90": null
        }
      ],
      "benchmark": "SPY",
      "explanation": "Breadth shows whether peers share the structure. Cohort outcomes use non-overlapping, point-in-time trend and momentum states from the same sector and report benchmark excess return when matching benchmark bars exist; they are context, not a backtest of the Elliott count."
    },
    "event_positioning": {
      "earnings_date": null,
      "earnings_weeks": null,
      "options_available": true,
      "options_direction": "mixed",
      "options_conviction": 28.81,
      "expected_move": 2.70052202,
      "invalidation_distance": 0.0,
      "collision": true,
      "flags": [
        "The options-implied move is large enough to cross the Elliott invalidation level in one event-sized move."
      ],
      "explanation": "Event and positioning context tests whether a scheduled catalyst or the options-implied move could overwhelm the technical structure."
    },
    "downside_vulnerability": {
      "score": 32,
      "label": "Watch",
      "tone": "watch",
      "components": [
        {
          "key": "wave",
          "label": "Wave maturity",
          "score": 0,
          "maximum": 25,
          "bar_width": 0,
          "explanation": "The primary count is not presently a mature Wave 5."
        },
        {
          "key": "extension",
          "label": "Trend extension",
          "score": 0,
          "maximum": 20,
          "bar_width": 0,
          "explanation": "Price is 0.0% above the 30-week trend; large positive gaps increase snap-back vulnerability."
        },
        {
          "key": "range",
          "label": "Range position",
          "score": 0,
          "maximum": 15,
          "bar_width": 0,
          "explanation": "Price is 14% of the way through its 52-week low-to-high range."
        },
        {
          "key": "cycle",
          "label": "Cycle rollover",
          "score": 11,
          "maximum": 15,
          "bar_width": 73,
          "explanation": "Medium-term cycle pressure is falling."
        },
        {
          "key": "hurst",
          "label": "Multi-cycle risk",
          "score": 11,
          "maximum": 15,
          "bar_width": 75,
          "explanation": "Hurst risk alignment is 75/100."
        },
        {
          "key": "stability",
          "label": "Count instability",
          "score": 10,
          "maximum": 10,
          "bar_width": 100,
          "explanation": "The primary interpretation has unavailable recent stability."
        },
        {
          "key": "event",
          "label": "Event proximity",
          "score": 0,
          "maximum": 10,
          "bar_width": 0,
          "explanation": "No upcoming stored earnings date is available."
        }
      ],
      "warnings": [
        "Medium-term cycle pressure is falling.",
        "Hurst risk alignment is 75/100.",
        "The primary interpretation has unavailable recent stability."
      ],
      "explanation": "This is a pre-emptive vulnerability checklist, not a probability of decline. It rises when mature wave structure, overextension, cycle rollover, count instability and event risk cluster before price breaks down."
    }
  },
  "chart": {
    "dates": [
      "2026-01-16",
      "2026-01-23",
      "2026-01-30",
      "2026-02-06",
      "2026-02-13",
      "2026-02-20",
      "2026-02-27",
      "2026-03-06",
      "2026-03-13",
      "2026-03-20",
      "2026-03-27",
      "2026-04-03",
      "2026-04-10",
      "2026-04-17",
      "2026-04-24",
      "2026-05-01",
      "2026-05-08",
      "2026-05-15",
      "2026-05-22",
      "2026-05-29",
      "2026-06-05",
      "2026-06-12",
      "2026-06-19",
      "2026-06-26",
      "2026-07-03",
      "2026-07-10",
      "2026-07-17",
      "2026-07-24"
    ],
    "close": [
      24.75,
      24.2002,
      23.0207,
      22.7249,
      22.51,
      22.734,
      22.1611,
      21.2192,
      21.1608,
      20.494,
      19.6034,
      20.49,
      20.9903,
      23.282,
      23.2314,
      23.5798,
      23.901,
      24.5339,
      24.8036,
      25.5981,
      23.71,
      23.1709,
      23.3446,
      21.4757,
      22.8943,
      22.8435,
      21.6602,
      20.5398
    ],
    "trend": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "sma30": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "roc30": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "drawdown": [
      0.0,
      -2.221414141414146,
      -6.987070707070701,
      -8.182222222222215,
      -9.050505050505043,
      -8.145454545454538,
      -10.460202020202015,
      -14.265858585858583,
      -14.501818181818189,
      -17.195959595959597,
      -20.794343434343432,
      -17.212121212121218,
      -15.190707070707065,
      -5.931313131313132,
      -6.135757575757573,
      -4.728080808080813,
      -3.430303030303031,
      -0.8731313131313165,
      0.0,
      0.0,
      -7.375938057902727,
      -9.481953738754045,
      -8.803387751434673,
      -16.104320242517996,
      -10.5625026857462,
      -10.76095491462257,
      -15.383563623862706,
      -19.7604509709705
    ],
    "volatility": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      13.287415174292693,
      12.833408825406517,
      13.14177284745544,
      18.87610588585587,
      19.842148267480013,
      30.280782793346294,
      29.180932179982282,
      28.391783931213947,
      27.63339642897774,
      27.224455760304604,
      26.517660899432578,
      26.29642836529381,
      28.289234550981252,
      27.801494983678644,
      27.20296194591214,
      28.978448711166454,
      30.176610461299404,
      29.566927168984424,
      29.792163977566837,
      30.42214565684326
    ],
    "volumeRatio": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      13.289385061958717,
      14.431079075932365,
      40.899323875845155,
      26.26683577942864,
      13.466236685234046,
      48.426989196167696,
      41.82685725586042,
      25.142714695251158,
      25.141208281601944,
      97.60163560588188,
      126.48025184063853,
      54.131031514913495,
      62.31278638623079,
      727.4401743369243,
      132.6816654986588,
      39.719855921740304,
      88.5713361534508,
      75.8474700418974,
      41.343239313333285,
      50.720349549106956,
      35.12946323007803
    ],
    "fairValue": [
      24.75,
      24.4751,
      23.9903,
      23.67395,
      23.44116,
      23.3233,
      23.157271,
      22.915013,
      22.7201,
      22.49749,
      22.234391,
      22.089025,
      22.004508,
      22.095757,
      22.171467,
      22.259488,
      22.356047,
      22.477039,
      22.599489,
      22.74942,
      22.795162,
      22.812241,
      22.835387,
      22.778733,
      22.783356,
      22.785669,
      22.743985,
      22.665264
    ],
    "marketActivity": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "marketDynamics": [
      null,
      null,
      null,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "relativeStrength": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "cycle": [
      {
        "date": "2026-01-16",
        "value": null
      },
      {
        "date": "2026-01-23",
        "value": null
      },
      {
        "date": "2026-01-30",
        "value": null
      },
      {
        "date": "2026-02-06",
        "value": 0.0
      },
      {
        "date": "2026-02-13",
        "value": 0.0
      },
      {
        "date": "2026-02-20",
        "value": 0.0
      },
      {
        "date": "2026-02-27",
        "value": 0.0
      },
      {
        "date": "2026-03-06",
        "value": 0.0
      },
      {
        "date": "2026-03-13",
        "value": 0.0
      },
      {
        "date": "2026-03-20",
        "value": 0.0
      },
      {
        "date": "2026-03-27",
        "value": 0.0
      },
      {
        "date": "2026-04-03",
        "value": 0.0
      },
      {
        "date": "2026-04-10",
        "value": 0.0
      },
      {
        "date": "2026-04-17",
        "value": 0.0
      },
      {
        "date": "2026-04-24",
        "value": 0.0
      },
      {
        "date": "2026-05-01",
        "value": 0.0
      },
      {
        "date": "2026-05-08",
        "value": 0.0
      },
      {
        "date": "2026-05-15",
        "value": 0.0
      },
      {
        "date": "2026-05-22",
        "value": 0.0
      },
      {
        "date": "2026-05-29",
        "value": 3.130497392900564
      },
      {
        "date": "2026-06-05",
        "value": 4.245800365661345
      },
      {
        "date": "2026-06-12",
        "value": 4.825313351534538
      },
      {
        "date": "2026-06-19",
        "value": 5.578165574293627
      },
      {
        "date": "2026-06-26",
        "value": 1.2042993564224518
      },
      {
        "date": "2026-07-03",
        "value": 0.3933822502630784
      },
      {
        "date": "2026-07-10",
        "value": 0.05599744646602711
      },
      {
        "date": "2026-07-17",
        "value": -1.735751496041678
      },
      {
        "date": "2026-07-24",
        "value": -2.736491064620215
      }
    ],
    "hurstComposite": [
      {
        "date": "2026-01-16",
        "value": null
      },
      {
        "date": "2026-01-23",
        "value": null
      },
      {
        "date": "2026-01-30",
        "value": null
      },
      {
        "date": "2026-02-06",
        "value": null
      },
      {
        "date": "2026-02-13",
        "value": null
      },
      {
        "date": "2026-02-20",
        "value": null
      },
      {
        "date": "2026-02-27",
        "value": null
      },
      {
        "date": "2026-03-06",
        "value": null
      },
      {
        "date": "2026-03-13",
        "value": null
      },
      {
        "date": "2026-03-20",
        "value": -1.0
      },
      {
        "date": "2026-03-27",
        "value": -1.0446692701747946
      },
      {
        "date": "2026-04-03",
        "value": -0.8614187992969089
      },
      {
        "date": "2026-04-10",
        "value": -0.5906975092810824
      },
      {
        "date": "2026-04-17",
        "value": 0.23575544116030156
      },
      {
        "date": "2026-04-24",
        "value": 0.7390620807976214
      },
      {
        "date": "2026-05-01",
        "value": 1.0517823790001097
      },
      {
        "date": "2026-05-08",
        "value": 1.1611139105353316
      },
      {
        "date": "2026-05-15",
        "value": 1.2177533607698843
      },
      {
        "date": "2026-05-22",
        "value": 1.2045684583310232
      },
      {
        "date": "2026-05-29",
        "value": 1.0887425619720592
      },
      {
        "date": "2026-06-05",
        "value": 0.8258684923352957
      },
      {
        "date": "2026-06-12",
        "value": 0.5320385539225986
      },
      {
        "date": "2026-06-19",
        "value": 0.3643142199958044
      },
      {
        "date": "2026-06-26",
        "value": -0.17354986169309625
      },
      {
        "date": "2026-07-03",
        "value": -0.20028673861008775
      },
      {
        "date": "2026-07-10",
        "value": -0.1460644725379093
      },
      {
        "date": "2026-07-17",
        "value": -0.5256856885234609
      },
      {
        "date": "2026-07-24",
        "value": -1.042458135839499
      }
    ],
    "hurstCycles": {
      "10": [
        {
          "date": "2026-01-16",
          "value": null
        },
        {
          "date": "2026-01-23",
          "value": null
        },
        {
          "date": "2026-01-30",
          "value": null
        },
        {
          "date": "2026-02-06",
          "value": null
        },
        {
          "date": "2026-02-13",
          "value": null
        },
        {
          "date": "2026-02-20",
          "value": null
        },
        {
          "date": "2026-02-27",
          "value": null
        },
        {
          "date": "2026-03-06",
          "value": null
        },
        {
          "date": "2026-03-13",
          "value": null
        },
        {
          "date": "2026-03-20",
          "value": -1.0
        },
        {
          "date": "2026-03-27",
          "value": -1.0446692701747946
        },
        {
          "date": "2026-04-03",
          "value": -0.861418799296909
        },
        {
          "date": "2026-04-10",
          "value": -0.5906975092810824
        },
        {
          "date": "2026-04-17",
          "value": 0.23575544116030156
        },
        {
          "date": "2026-04-24",
          "value": 0.7390620807976214
        },
        {
          "date": "2026-05-01",
          "value": 1.0517823790001097
        },
        {
          "date": "2026-05-08",
          "value": 1.1611139105353316
        },
        {
          "date": "2026-05-15",
          "value": 1.2177533607698843
        },
        {
          "date": "2026-05-22",
          "value": 1.2045684583310232
        },
        {
          "date": "2026-05-29",
          "value": 1.2218564049301484
        },
        {
          "date": "2026-06-05",
          "value": 0.7564703847276424
        },
        {
          "date": "2026-06-12",
          "value": 0.25753856607522874
        },
        {
          "date": "2026-06-19",
          "value": -0.05237394877308077
        },
        {
          "date": "2026-06-26",
          "value": -0.6841246495910269
        },
        {
          "date": "2026-07-03",
          "value": -0.670981477031348
        },
        {
          "date": "2026-07-10",
          "value": -0.5865912368643487
        },
        {
          "date": "2026-07-17",
          "value": -0.8050360752670953
        },
        {
          "date": "2026-07-24",
          "value": -1.164147252051951
        }
      ],
      "20": [
        {
          "date": "2026-01-16",
          "value": null
        },
        {
          "date": "2026-01-23",
          "value": null
        },
        {
          "date": "2026-01-30",
          "value": null
        },
        {
          "date": "2026-02-06",
          "value": null
        },
        {
          "date": "2026-02-13",
          "value": null
        },
        {
          "date": "2026-02-20",
          "value": null
        },
        {
          "date": "2026-02-27",
          "value": null
        },
        {
          "date": "2026-03-06",
          "value": null
        },
        {
          "date": "2026-03-13",
          "value": null
        },
        {
          "date": "2026-03-20",
          "value": null
        },
        {
          "date": "2026-03-27",
          "value": null
        },
        {
          "date": "2026-04-03",
          "value": null
        },
        {
          "date": "2026-04-10",
          "value": null
        },
        {
          "date": "2026-04-17",
          "value": null
        },
        {
          "date": "2026-04-24",
          "value": null
        },
        {
          "date": "2026-05-01",
          "value": null
        },
        {
          "date": "2026-05-08",
          "value": null
        },
        {
          "date": "2026-05-15",
          "value": null
        },
        {
          "date": "2026-05-22",
          "value": null
        },
        {
          "date": "2026-05-29",
          "value": 1.0
        },
        {
          "date": "2026-06-05",
          "value": 0.8721338974070647
        },
        {
          "date": "2026-06-12",
          "value": 0.7150385458208451
        },
        {
          "date": "2026-06-19",
          "value": 0.6421063325083944
        },
        {
          "date": "2026-06-26",
          "value": 0.16683333023885755
        },
        {
          "date": "2026-07-03",
          "value": 0.11350975367075243
        },
        {
          "date": "2026-07-10",
          "value": 0.14762003701305026
        },
        {
          "date": "2026-07-17",
          "value": -0.33945209736103804
        },
        {
          "date": "2026-07-24",
          "value": -0.9613320583645313
        }
      ],
      "40": [
        {
          "date": "2026-01-16",
          "value": null
        },
        {
          "date": "2026-01-23",
          "value": null
        },
        {
          "date": "2026-01-30",
          "value": null
        },
        {
          "date": "2026-02-06",
          "value": null
        },
        {
          "date": "2026-02-13",
          "value": null
        },
        {
          "date": "2026-02-20",
          "value": null
        },
        {
          "date": "2026-02-27",
          "value": null
        },
        {
          "date": "2026-03-06",
          "value": null
        },
        {
          "date": "2026-03-13",
          "value": null
        },
        {
          "date": "2026-03-20",
          "value": null
        },
        {
          "date": "2026-03-27",
          "value": null
        },
        {
          "date": "2026-04-03",
          "value": null
        },
        {
          "date": "2026-04-10",
          "value": null
        },
        {
          "date": "2026-04-17",
          "value": null
        },
        {
          "date": "2026-04-24",
          "value": null
        },
        {
          "date": "2026-05-01",
          "value": null
        },
        {
          "date": "2026-05-08",
          "value": null
        },
        {
          "date": "2026-05-15",
          "value": null
        },
        {
          "date": "2026-05-22",
          "value": null
        },
        {
          "date": "2026-05-29",
          "value": null
        },
        {
          "date": "2026-06-05",
          "value": null
        },
        {
          "date": "2026-06-12",
          "value": null
        },
        {
          "date": "2026-06-19",
          "value": null
        },
        {
          "date": "2026-06-26",
          "value": null
        },
        {
          "date": "2026-07-03",
          "value": null
        },
        {
          "date": "2026-07-10",
          "value": null
        },
        {
          "date": "2026-07-17",
          "value": null
        },
        {
          "date": "2026-07-24",
          "value": null
        }
      ],
      "80": [
        {
          "date": "2026-01-16",
          "value": null
        },
        {
          "date": "2026-01-23",
          "value": null
        },
        {
          "date": "2026-01-30",
          "value": null
        },
        {
          "date": "2026-02-06",
          "value": null
        },
        {
          "date": "2026-02-13",
          "value": null
        },
        {
          "date": "2026-02-20",
          "value": null
        },
        {
          "date": "2026-02-27",
          "value": null
        },
        {
          "date": "2026-03-06",
          "value": null
        },
        {
          "date": "2026-03-13",
          "value": null
        },
        {
          "date": "2026-03-20",
          "value": null
        },
        {
          "date": "2026-03-27",
          "value": null
        },
        {
          "date": "2026-04-03",
          "value": null
        },
        {
          "date": "2026-04-10",
          "value": null
        },
        {
          "date": "2026-04-17",
          "value": null
        },
        {
          "date": "2026-04-24",
          "value": null
        },
        {
          "date": "2026-05-01",
          "value": null
        },
        {
          "date": "2026-05-08",
          "value": null
        },
        {
          "date": "2026-05-15",
          "value": null
        },
        {
          "date": "2026-05-22",
          "value": null
        },
        {
          "date": "2026-05-29",
          "value": null
        },
        {
          "date": "2026-06-05",
          "value": null
        },
        {
          "date": "2026-06-12",
          "value": null
        },
        {
          "date": "2026-06-19",
          "value": null
        },
        {
          "date": "2026-06-26",
          "value": null
        },
        {
          "date": "2026-07-03",
          "value": null
        },
        {
          "date": "2026-07-10",
          "value": null
        },
        {
          "date": "2026-07-17",
          "value": null
        },
        {
          "date": "2026-07-24",
          "value": null
        }
      ]
    },
    "pivots": [
      {
        "index": 27,
        "date": "2026-07-24",
        "price": 20.5398,
        "kind": "low",
        "move_percent": null,
        "weeks": 0,
        "confirmed": false
      }
    ],
    "labels": []
  }
}