{"ticker":"ROK","composite":35,"action":"PASS","price":466.27,"change_5d":-0.74,"gates":{"price":false,"catalyst":true,"flow":true,"risk":false},"gate_reasons":[{"key":"price","pass":false,"reason":"Composite 35 below structure bar (need ≥55 or a signal flag)"},{"key":"catalyst","pass":true,"reason":"EARNINGS inside window (16d)"},{"key":"flow","pass":true,"reason":"Flow ok (vol 0.2× · CMF 0.19)"},{"key":"risk","pass":false,"reason":"R:R 0.4:1 is skip territory (< 0.5)"}],"demotion":"PASS: risk gate failed (R:R 0.4:1 < 0.5)","components":{"rsi":51,"macd":0,"squeeze":66,"atr":39,"cmf":65,"volume":7,"momentum":44,"relStr":49},"verdict":"SKIP","edge_score":22,"rr":0.4,"off_index":false,"generated_at":"2026-07-21T17:20:10.032Z","engine_version":"4.8.2","source":"analytics24-engine","docs":"https://www.analytics24.com/developers"}