{"ticker":"MSFT","composite":69,"action":"WATCH","price":398,"change_5d":3.56,"gates":{"price":true,"catalyst":true,"flow":true,"risk":false},"gate_reasons":[{"key":"price","pass":true,"reason":"Composite 69 clears the structure bar"},{"key":"catalyst","pass":true,"reason":"EARNINGS inside window (9d)"},{"key":"flow","pass":true,"reason":"Flow ok (vol 0.3× · CMF 0.22)"},{"key":"risk","pass":false,"reason":"R:R 0.7:1 fails risk gate (need ≥ 1:1 for ENTRY)"}],"demotion":"WATCH: risk gate failed (R:R 0.7:1 < 1:1)","components":{"rsi":54,"macd":100,"squeeze":48,"atr":33,"cmf":68,"volume":9,"momentum":78,"relStr":66},"verdict":"THIN","edge_score":44,"rr":0.7,"off_index":false,"generated_at":"2026-07-21T17:12:33.773Z","engine_version":"4.8.2","source":"analytics24-engine","docs":"https://www.analytics24.com/developers"}