{"ok":true,"security_id":99,"symbol":"XLB","snapshot":{"security_id":99,"symbol":"XLB","asset_type":"etf","sector_code":"materials","industry":null,"exchange_code":null,"currency":"USD","data_mode":"demo","price":"108.000000","prev_close":"109.142300","chg_1d_pct":"-1.0470","volume":110004292,"rvol_30":"1.183","avg_volume_30d":null,"dollar_volume_avg":"9949109352.8300","mcap":null,"wk52_high":"163.027000","wk52_low":"99.654500","pct_from_52wh":"-33.7500","dist_to_52wh_pct":"-33.7500","rsi14":"52.357","macd":"0.946600","macd_hist":"-0.292300","adx14":"19.894","atr_pct":"2.2900","hv20":"21.5300","hv60":"18.7300","vol_regime":"normal","bb_pctb":"0.4147","stoch_k":"26.033","above_sma20":0,"above_sma50":1,"above_sma200":0,"sma20":"108.630400","sma50":"104.846000","sma200":"125.550900","vwap":"108.468100","trend":"up","support":"100.318300","resistance":"111.741300","perf_1d":"-1.0500","perf_5d":"-1.2900","perf_1m":"5.0100","perf_3m":"-0.7700","perf_6m":"-17.0200","perf_12m":"-14.9500","rel_strength_3m":"-5.1200","rs_rank":null,"mom_persist":null,"bars":760,"beta":"0.5020","mdd_pct":"-37.8200","gap_risk":"0.3160","liq_days":null,"pe_ttm":null,"pe_fwd":null,"peg":null,"ps":null,"pb":null,"ev_ebitda":null,"rev_g":null,"eps_g":null,"gross_margin":null,"op_margin":null,"fcf_margin":null,"roe":null,"roic":null,"debt_equity":null,"net_debt_ebitda":null,"div_yield":null,"payout":null,"buyback_yield":null,"eps_surprise_pct":null,"rev_surprise_pct":null,"earnings_days_out":null,"earnings_date":null,"consensus_score":"50.170","pct_analyst_buy":null,"pt_upside_pct":null,"sent_score":null,"sent_label":null,"sent_delta":"8.080","inst_ownership":"128.6280","inst_chg_pct":"-70.1100","inst_top_name":"Vanguard Index Group","insider_net_usd":null,"insider_trades_90d":0,"short_pct_float":null,"score_total":"54.90","score_technical":"51.49","score_fundamental":"50.00","score_momentum":"43.39","score_sentiment":"74.48","score_institutional":"24.00","score_risk":"84.16","confidence":"51.00","risk_level":"low","stance":"neutral","cats":"","catalysts":"Demo synthetic: XLB completes share buyback tranche · Demo synthetic: XLB completes share buyback tranche · Demo synthetic: XLB completes share buyback tranche","risks":"No exceptional risk flags from stored data; normal market risk always applies","model_version":"score-1.0.0","priced_at":"2026-10-23 16:00:00","computed_at":"2026-10-24 23:42:36"},"quote":{"security_id":99,"last_price":"108.000000","bid":null,"ask":null,"prev_close":"109.142300","open":"109.341200","day_high":"109.775500","day_low":"107.628900","volume":110004292,"avg_volume_30d":96369317,"change_abs":"-1.142300","change_pct":"-1.0470","market_state":"closed","quote_ts":"2026-10-23 16:00:00","latency_ms":null,"is_realtime":0,"data_source":"synthetic_demo","data_mode":"demo","updated_at":"2026-10-24 23:42:34","price":"108.000000","as_of":"2026-10-23 16:00:00"},"score":{"id":1074,"security_id":99,"model_id":1,"scored_at":"2026-10-24 23:42:00","total_score":"54.90","technical":"51.49","fundamental":"50.00","momentum":"43.39","sentiment":"74.48","institutional":"24.00","risk":"84.16","components_json":"{\"components\":{\"technical\":{\"score\":51.49,\"label\":\"Neutral\",\"complete\":true,\"factors\":[{\"key\":\"trend_structure\",\"score\":70,\"why\":\"Price vs 20\\/50\\/200-day moving averages: up\",\"w\":1.8},{\"key\":\"trend_strength_adx\",\"score\":43.77,\"why\":\"ADX(14) 19.9 \\u2014 weak\\/rangebound\",\"w\":1},{\"key\":\"rsi_condition\",\"score\":70.24,\"why\":\"RSI(14) 52.4 \\u2014 constructive zone\",\"w\":1},{\"key\":\"macd_signal\",\"score\":28,\"why\":\"MACD(12,26,9) below, histogram -0.292\",\"w\":1},{\"key\":\"volume_confirmation\",\"score\":58.78,\"why\":\"Relative volume 1.18\\u00d7 its own 30-day average\",\"w\":0.8},{\"key\":\"52w_position\",\"score\":36.88,\"why\":\"-33.8% from its 52-week high\",\"w\":1.4},{\"key\":\"volatility_compression\",\"score\":62.68,\"why\":\"Bollinger width 6.8%\",\"w\":0.7},{\"key\":\"candlestick_patterns\",\"score\":38,\"why\":\"Bearish: bearish_engulfing\",\"w\":0.7},{\"key\":\"intraday_position\",\"score\":40,\"why\":\"Below session VWAP\",\"w\":0.4}]},\"fundamental\":{\"score\":50,\"label\":\"Partial (missing provider fields)\",\"complete\":false,\"factors\":[]},\"momentum\":{\"score\":43.39,\"label\":\"Weak\",\"complete\":true,\"factors\":[{\"key\":\"multi_horizon_performance\",\"score\":41.4,\"why\":\"1M +5% \\u00b7 3M -0.8% \\u00b7 6M -17% \\u00b7 12M -15%\",\"w\":1},{\"key\":\"relative_strength_vs_index\",\"score\":39.78,\"why\":\"3-month return minus index -5.1%\",\"w\":1},{\"key\":\"volume_acceleration\",\"score\":46.13,\"why\":\"Today -1% on 1.2\\u00d7 volume\",\"w\":1},{\"key\":\"momentum_persistence\",\"score\":46.25,\"why\":\"1 of 4 measured horizons are positive\",\"w\":1}]},\"sentiment\":{\"score\":74.48,\"label\":\"Neutral\",\"complete\":true,\"factors\":[{\"key\":\"news_sentiment_index\",\"score\":50.17,\"why\":\"Aggregate news sentiment 0.3 (\\u2212100 bearish \\u2026 +100 bullish) from 25 scored items\",\"w\":1},{\"key\":\"sentiment_delta\",\"score\":78.28,\"why\":\"30-day sentiment change 8.1 pts\",\"w\":1},{\"key\":\"recent_headline_tone\",\"score\":95,\"why\":\"Last items: 10 positive \\/ 0 negative headlines\",\"w\":1}]},\"institutional\":{\"score\":24,\"label\":\"Available\",\"complete\":true,\"factors\":[{\"key\":\"institutional_flows\",\"score\":22,\"why\":\"Reported 13F-style positioning change -70.1% vs prior quarter2026-09-01\",\"w\":1},{\"key\":\"ownership_crowding\",\"score\":26,\"why\":\"Institutions hold ~128.6% of float (crowding risk rises above ~78%)\",\"w\":1}]},\"risk\":{\"score\":84.16,\"label\":\"Low risk\",\"complete\":true,\"factors\":[{\"key\":\"volatility\",\"score\":77.95,\"why\":\"20-day realised volatility 21.5% annualised\",\"w\":1.5},{\"key\":\"beta\",\"score\":87.06,\"why\":\"Beta 0.5 vs the reference index\",\"w\":1},{\"key\":\"drawdown_history\",\"score\":68.63,\"why\":\"Max drawdown in stored history -37.8%\",\"w\":1.2},{\"key\":\"liquidity\",\"score\":96,\"why\":\"Average $9949.1M traded per session\",\"w\":1.3},{\"key\":\"gap_risk\",\"score\":95,\"why\":\"Median overnight gap 0.32% \\u2014 position sizing must survive opens\",\"w\":1},{\"key\":\"event_risk_earnings\",\"score\":82,\"why\":\"No scheduled earnings date on file\",\"w\":1},{\"key\":\"sector_risk\",\"score\":78.37,\"why\":\"Sector average volatility 29.7%\",\"w\":1},{\"key\":\"market_risk\",\"score\":84.63,\"why\":\"Benchmark volatility 20.1% \\u00b7 regime: Sideways \\u00b7 normal vol \\u00b7 risk-off\",\"w\":1},{\"key\":\"correlation\",\"score\":90.5,\"why\":\"Correlation to benchmark 0.63-year rolling: 0.53\",\"w\":1}]}},\"weights\":{\"technical\":25,\"fundamental\":25,\"momentum\":15,\"sentiment\":10,\"institutional\":10,\"risk\":15},\"confidence\":51,\"confidence_basis\":\"760 bars \\u00b7 data 26h old \\u00b7 components covered 89%% \\u00b7 risk drag 75\",\"coverage\":88.8}","factors_json":"{\"positive\":[{\"component\":\"risk\",\"key\":\"liquidity\",\"score\":96,\"why\":\"Average $9949.1M traded per session\"},{\"component\":\"sentiment\",\"key\":\"recent_headline_tone\",\"score\":95,\"why\":\"Last items: 10 positive \\/ 0 negative headlines\"},{\"component\":\"risk\",\"key\":\"gap_risk\",\"score\":95,\"why\":\"Median overnight gap 0.32% \\u2014 position sizing must survive opens\"},{\"component\":\"risk\",\"key\":\"correlation\",\"score\":90.5,\"why\":\"Correlation to benchmark 0.63-year rolling: 0.53\"},{\"component\":\"risk\",\"key\":\"beta\",\"score\":87.06,\"why\":\"Beta 0.5 vs the reference index\"},{\"component\":\"risk\",\"key\":\"market_risk\",\"score\":84.63,\"why\":\"Benchmark volatility 20.1% \\u00b7 regime: Sideways \\u00b7 normal vol \\u00b7 risk-off\"}],\"negative\":[{\"component\":\"institutional\",\"key\":\"institutional_flows\",\"score\":22,\"why\":\"Reported 13F-style positioning change -70.1% vs prior quarter2026-09-01\"},{\"component\":\"institutional\",\"key\":\"ownership_crowding\",\"score\":26,\"why\":\"Institutions hold ~128.6% of float (crowding risk rises above ~78%)\"},{\"component\":\"technical\",\"key\":\"macd_signal\",\"score\":28,\"why\":\"MACD(12,26,9) below, histogram -0.292\"},{\"component\":\"technical\",\"key\":\"52w_position\",\"score\":36.88,\"why\":\"-33.8% from its 52-week high\"},{\"component\":\"technical\",\"key\":\"candlestick_patterns\",\"score\":38,\"why\":\"Bearish: bearish_engulfing\"}]}","inputs_snapshot":"{\"bars\":760,\"price\":\"108.000000\",\"trend\":\"up\",\"pe\":null,\"sent\":0.33,\"sector\":\"materials\"}","data_mode":"demo","stance":"neutral","risk_level":"low","confidence":"51.00","model_version":"score-1.0.0","computed_at":"2026-10-24 23:42:36","catalysts":"Demo synthetic: XLB completes share buyback tranche · Demo synthetic: XLB completes share buyback tranche · Demo synthetic: XLB completes share buyback tranche","risks":"No exceptional risk flags from stored data; normal market risk always applies","sent_score":null,"sent_label":null,"snap_total":"54.90","score_total":54.9,"components":{"technical":25,"fundamental":25,"momentum":15,"sentiment":10,"institutional":10,"risk":15},"component_detail":{"technical":{"score":51.49,"label":"Neutral","complete":true,"factors":[{"key":"trend_structure","score":70,"why":"Price vs 20/50/200-day moving averages: up","w":1.8},{"key":"trend_strength_adx","score":43.77,"why":"ADX(14) 19.9 — weak/rangebound","w":1},{"key":"rsi_condition","score":70.24,"why":"RSI(14) 52.4 — constructive zone","w":1},{"key":"macd_signal","score":28,"why":"MACD(12,26,9) below, histogram -0.292","w":1},{"key":"volume_confirmation","score":58.78,"why":"Relative volume 1.18× its own 30-day average","w":0.8},{"key":"52w_position","score":36.88,"why":"-33.8% from its 52-week high","w":1.4},{"key":"volatility_compression","score":62.68,"why":"Bollinger width 6.8%","w":0.7},{"key":"candlestick_patterns","score":38,"why":"Bearish: bearish_engulfing","w":0.7},{"key":"intraday_position","score":40,"why":"Below session VWAP","w":0.4}]},"fundamental":{"score":50,"label":"Partial (missing provider fields)","complete":false,"factors":[]},"momentum":{"score":43.39,"label":"Weak","complete":true,"factors":[{"key":"multi_horizon_performance","score":41.4,"why":"1M +5% · 3M -0.8% · 6M -17% · 12M -15%","w":1},{"key":"relative_strength_vs_index","score":39.78,"why":"3-month return minus index -5.1%","w":1},{"key":"volume_acceleration","score":46.13,"why":"Today -1% on 1.2× volume","w":1},{"key":"momentum_persistence","score":46.25,"why":"1 of 4 measured horizons are positive","w":1}]},"sentiment":{"score":74.48,"label":"Neutral","complete":true,"factors":[{"key":"news_sentiment_index","score":50.17,"why":"Aggregate news sentiment 0.3 (−100 bearish … +100 bullish) from 25 scored items","w":1},{"key":"sentiment_delta","score":78.28,"why":"30-day sentiment change 8.1 pts","w":1},{"key":"recent_headline_tone","score":95,"why":"Last items: 10 positive / 0 negative headlines","w":1}]},"institutional":{"score":24,"label":"Available","complete":true,"factors":[{"key":"institutional_flows","score":22,"why":"Reported 13F-style positioning change -70.1% vs prior quarter2026-09-01","w":1},{"key":"ownership_crowding","score":26,"why":"Institutions hold ~128.6% of float (crowding risk rises above ~78%)","w":1}]},"risk":{"score":84.16,"label":"Low risk","complete":true,"factors":[{"key":"volatility","score":77.95,"why":"20-day realised volatility 21.5% annualised","w":1.5},{"key":"beta","score":87.06,"why":"Beta 0.5 vs the reference index","w":1},{"key":"drawdown_history","score":68.63,"why":"Max drawdown in stored history -37.8%","w":1.2},{"key":"liquidity","score":96,"why":"Average $9949.1M traded per session","w":1.3},{"key":"gap_risk","score":95,"why":"Median overnight gap 0.32% — position sizing must survive opens","w":1},{"key":"event_risk_earnings","score":82,"why":"No scheduled earnings date on file","w":1},{"key":"sector_risk","score":78.37,"why":"Sector average volatility 29.7%","w":1},{"key":"market_risk","score":84.63,"why":"Benchmark volatility 20.1% · regime: Sideways · normal vol · risk-off","w":1},{"key":"correlation","score":90.5,"why":"Correlation to benchmark 0.63-year rolling: 0.53","w":1}]}},"coverage":88.8,"confidence_basis":"760 bars · data 26h old · components covered 89%% · risk drag 75","factors":[{"component":"risk","key":"liquidity","label":"Liquidity","score":96,"why":"Average $9949.1M traded per session","w":1.3,"direction":"positive"},{"component":"sentiment","key":"recent_headline_tone","label":"Recent Headline Tone","score":95,"why":"Last items: 10 positive / 0 negative headlines","w":1,"direction":"positive"},{"component":"risk","key":"gap_risk","label":"Gap Risk","score":95,"why":"Median overnight gap 0.32% — position sizing must survive opens","w":1,"direction":"positive"},{"component":"risk","key":"correlation","label":"Correlation","score":90.5,"why":"Correlation to benchmark 0.63-year rolling: 0.53","w":1,"direction":"positive"},{"component":"risk","key":"beta","label":"Beta","score":87.06,"why":"Beta 0.5 vs the reference index","w":1,"direction":"positive"},{"component":"risk","key":"market_risk","label":"Market Risk","score":84.63,"why":"Benchmark volatility 20.1% · regime: Sideways · normal vol · risk-off","w":1,"direction":"positive"},{"component":"risk","key":"event_risk_earnings","label":"Event Risk Earnings","score":82,"why":"No scheduled earnings date on file","w":1,"direction":"positive"},{"component":"risk","key":"sector_risk","label":"Sector Risk","score":78.37,"why":"Sector average volatility 29.7%","w":1,"direction":"positive"},{"component":"sentiment","key":"sentiment_delta","label":"Sentiment Delta","score":78.28,"why":"30-day sentiment change 8.1 pts","w":1,"direction":"positive"},{"component":"institutional","key":"institutional_flows","label":"Institutional Flows","score":22,"why":"Reported 13F-style positioning change -70.1% vs prior quarter2026-09-01","w":1,"direction":"negative"},{"component":"risk","key":"volatility","label":"Volatility","score":77.95,"why":"20-day realised volatility 21.5% annualised","w":1.5,"direction":"positive"},{"component":"institutional","key":"ownership_crowding","label":"Ownership Crowding","score":26,"why":"Institutions hold ~128.6% of float (crowding risk rises above ~78%)","w":1,"direction":"negative"},{"component":"technical","key":"macd_signal","label":"Macd Signal","score":28,"why":"MACD(12,26,9) below, histogram -0.292","w":1,"direction":"negative"},{"component":"technical","key":"rsi_condition","label":"Rsi Condition","score":70.24,"why":"RSI(14) 52.4 — constructive zone","w":1,"direction":"positive"}],"factors_positive":[{"component":"risk","key":"liquidity","score":96,"why":"Average $9949.1M traded per session"},{"component":"sentiment","key":"recent_headline_tone","score":95,"why":"Last items: 10 positive / 0 negative headlines"},{"component":"risk","key":"gap_risk","score":95,"why":"Median overnight gap 0.32% — position sizing must survive opens"},{"component":"risk","key":"correlation","score":90.5,"why":"Correlation to benchmark 0.63-year rolling: 0.53"},{"component":"risk","key":"beta","score":87.06,"why":"Beta 0.5 vs the reference index"},{"component":"risk","key":"market_risk","score":84.63,"why":"Benchmark volatility 20.1% · regime: Sideways · normal vol · risk-off"}],"factors_negative":[{"component":"institutional","key":"institutional_flows","score":22,"why":"Reported 13F-style positioning change -70.1% vs prior quarter2026-09-01"},{"component":"institutional","key":"ownership_crowding","score":26,"why":"Institutions hold ~128.6% of float (crowding risk rises above ~78%)"},{"component":"technical","key":"macd_signal","score":28,"why":"MACD(12,26,9) below, histogram -0.292"},{"component":"technical","key":"52w_position","score":36.88,"why":"-33.8% from its 52-week high"},{"component":"technical","key":"candlestick_patterns","score":38,"why":"Bearish: bearish_engulfing"}],"inputs":{"bars":760,"price":"108.000000","trend":"up","pe":null,"sent":0.33,"sector":"materials"}},"predictions":[{"id":6439,"security_id":99,"model_id":2,"horizon_code":"1D","generated_at":"2026-10-24 23:42:36","ref_price":108,"bull_low_pct":0.5,"bull_high_pct":1,"base_low_pct":-0.5,"base_high_pct":0.5,"bear_low_pct":-1,"bear_high_pct":-0.5,"prob_up":0.52,"p10_pct":-1,"p25_pct":-0.5,"p50_pct":0,"p75_pct":0.5,"p90_pct":1,"expected_range_low":-0.5,"expected_range_high":0.5,"risk_range_low":-1,"risk_range_high":0.5,"confidence":55,"confidence_basis":"760 bars, blended vol 20%, score 55, coverage 89%%","risk_level":"low","volatility_ann":20,"max_hist_drawdown":"-37.8000","sample_size":760,"data_freshness_secs":96156,"bull_case":"If RSI mid-range — room to extend, a volatility-compressed setup resolving upward would accelerate the move, the upside path is the 80–95th percentile band shown here.","base_case":"mildly positive","bear_case":"Downside triggers: a market-wide risk-off move alone can carry the 5–20th percentile band. Treat the 5–20th percentile band as the stress case for sizing, not as a worst case.","catalysts":["Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche"],"key_risks":"No exceptional risk flags from stored data; normal market risk always applies","assumptions":["Realised volatility stays near its recent level (blended 20% annualised).","The scoring tilt persists over the window; no structural break (fraud, delisting, forced guidance cut).","Returns are approximated as lognormal; fat tails are handled by widening, not by point forecasts.","Index regime assumed: sideways.","Close below the 125.55 support band or the strategy stop.","Earnings or regulatory headline that changes forward estimates by more than the modelled window σ.","Volatility expanding beyond 32% annualised invalidates position sizing.","Loss of the fundamental pillars used in the score (guidance cut, covenant breach, auditor change)."],"invalidation":null,"regime_at_time":"sideways","status":"active","invalidated_at":null,"invalidated_reason":null,"data_mode":"demo"},{"id":6440,"security_id":99,"model_id":2,"horizon_code":"5D","generated_at":"2026-10-24 23:42:36","ref_price":108,"bull_low_pct":1,"bull_high_pct":3,"base_low_pct":-1,"base_high_pct":1,"bear_low_pct":-2,"bear_high_pct":-1,"prob_up":0.52,"p10_pct":-2,"p25_pct":-1,"p50_pct":0,"p75_pct":1,"p90_pct":2,"expected_range_low":-1,"expected_range_high":1,"risk_range_low":-2,"risk_range_high":1,"confidence":55,"confidence_basis":"760 bars, blended vol 20%, score 55, coverage 89%%","risk_level":"low","volatility_ann":20,"max_hist_drawdown":"-37.8000","sample_size":760,"data_freshness_secs":96156,"bull_case":"If RSI mid-range — room to extend, a volatility-compressed setup resolving upward would accelerate the move, the upside path is the 80–95th percentile band shown here.","base_case":"mildly positive","bear_case":"Downside triggers: a market-wide risk-off move alone can carry the 5–20th percentile band. Treat the 5–20th percentile band as the stress case for sizing, not as a worst case.","catalysts":["Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche"],"key_risks":"No exceptional risk flags from stored data; normal market risk always applies","assumptions":["Realised volatility stays near its recent level (blended 20% annualised).","The scoring tilt persists over the window; no structural break (fraud, delisting, forced guidance cut).","Returns are approximated as lognormal; fat tails are handled by widening, not by point forecasts.","Index regime assumed: sideways.","Close below the 125.55 support band or the strategy stop.","Earnings or regulatory headline that changes forward estimates by more than the modelled window σ.","Volatility expanding beyond 32% annualised invalidates position sizing.","Loss of the fundamental pillars used in the score (guidance cut, covenant breach, auditor change)."],"invalidation":null,"regime_at_time":"sideways","status":"active","invalidated_at":null,"invalidated_reason":null,"data_mode":"demo"},{"id":6441,"security_id":99,"model_id":2,"horizon_code":"1M","generated_at":"2026-10-24 23:42:36","ref_price":108,"bull_low_pct":3,"bull_high_pct":5,"base_low_pct":-2,"base_high_pct":2,"bear_low_pct":-5,"bear_high_pct":-2,"prob_up":0.52,"p10_pct":-4,"p25_pct":-2,"p50_pct":0,"p75_pct":2,"p90_pct":4,"expected_range_low":-2,"expected_range_high":2,"risk_range_low":-5,"risk_range_high":2,"confidence":55,"confidence_basis":"760 bars, blended vol 20%, score 55, coverage 89%%","risk_level":"low","volatility_ann":20,"max_hist_drawdown":"-37.8000","sample_size":760,"data_freshness_secs":96156,"bull_case":"If RSI mid-range — room to extend, a volatility-compressed setup resolving upward would accelerate the move, the upside path is the 80–95th percentile band shown here.","base_case":"mildly positive","bear_case":"Downside triggers: a market-wide risk-off move alone can carry the 5–20th percentile band. Treat the 5–20th percentile band as the stress case for sizing, not as a worst case.","catalysts":["Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche"],"key_risks":"No exceptional risk flags from stored data; normal market risk always applies","assumptions":["Realised volatility stays near its recent level (blended 20% annualised).","The scoring tilt persists over the window; no structural break (fraud, delisting, forced guidance cut).","Returns are approximated as lognormal; fat tails are handled by widening, not by point forecasts.","Index regime assumed: sideways.","Close below the 125.55 support band or the strategy stop.","Earnings or regulatory headline that changes forward estimates by more than the modelled window σ.","Volatility expanding beyond 32% annualised invalidates position sizing.","Loss of the fundamental pillars used in the score (guidance cut, covenant breach, auditor change)."],"invalidation":null,"regime_at_time":"sideways","status":"active","invalidated_at":null,"invalidated_reason":null,"data_mode":"demo"},{"id":6442,"security_id":99,"model_id":2,"horizon_code":"3M","generated_at":"2026-10-24 23:42:36","ref_price":108,"bull_low_pct":4.5,"bull_high_pct":9,"base_low_pct":-3,"base_high_pct":4.5,"bear_low_pct":-9,"bear_high_pct":-4.5,"prob_up":0.52,"p10_pct":-6,"p25_pct":-3,"p50_pct":0,"p75_pct":4.5,"p90_pct":7.5,"expected_range_low":-3,"expected_range_high":4.5,"risk_range_low":-9,"risk_range_high":4.5,"confidence":55,"confidence_basis":"760 bars, blended vol 20%, score 55, coverage 89%%","risk_level":"low","volatility_ann":20,"max_hist_drawdown":"-37.8000","sample_size":760,"data_freshness_secs":96156,"bull_case":"If RSI mid-range — room to extend, a volatility-compressed setup resolving upward would accelerate the move, the upside path is the 80–95th percentile band shown here.","base_case":"mildly positive","bear_case":"Downside triggers: a market-wide risk-off move alone can carry the 5–20th percentile band. Treat the 5–20th percentile band as the stress case for sizing, not as a worst case.","catalysts":["Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche"],"key_risks":"No exceptional risk flags from stored data; normal market risk always applies","assumptions":["Realised volatility stays near its recent level (blended 20% annualised).","The scoring tilt persists over the window; no structural break (fraud, delisting, forced guidance cut).","Returns are approximated as lognormal; fat tails are handled by widening, not by point forecasts.","Index regime assumed: sideways.","Close below the 125.55 support band or the strategy stop.","Earnings or regulatory headline that changes forward estimates by more than the modelled window σ.","Volatility expanding beyond 32% annualised invalidates position sizing.","Loss of the fundamental pillars used in the score (guidance cut, covenant breach, auditor change)."],"invalidation":null,"regime_at_time":"sideways","status":"active","invalidated_at":null,"invalidated_reason":null,"data_mode":"demo"},{"id":6443,"security_id":99,"model_id":2,"horizon_code":"6M","generated_at":"2026-10-24 23:42:36","ref_price":108,"bull_low_pct":7.5,"bull_high_pct":13.5,"base_low_pct":-4.5,"base_high_pct":6,"bear_low_pct":-12,"bear_high_pct":-6,"prob_up":0.52,"p10_pct":-9,"p25_pct":-4.5,"p50_pct":0,"p75_pct":6,"p90_pct":10.5,"expected_range_low":-4.5,"expected_range_high":6,"risk_range_low":-12,"risk_range_high":6,"confidence":55,"confidence_basis":"760 bars, blended vol 20%, score 55, coverage 89%%","risk_level":"low","volatility_ann":20,"max_hist_drawdown":"-37.8000","sample_size":760,"data_freshness_secs":96156,"bull_case":"If RSI mid-range — room to extend, a volatility-compressed setup resolving upward would accelerate the move, the upside path is the 80–95th percentile band shown here.","base_case":"mildly positive","bear_case":"Downside triggers: a market-wide risk-off move alone can carry the 5–20th percentile band. Treat the 5–20th percentile band as the stress case for sizing, not as a worst case.","catalysts":["Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche"],"key_risks":"No exceptional risk flags from stored data; normal market risk always applies","assumptions":["Realised volatility stays near its recent level (blended 20% annualised).","The scoring tilt persists over the window; no structural break (fraud, delisting, forced guidance cut).","Returns are approximated as lognormal; fat tails are handled by widening, not by point forecasts.","Index regime assumed: sideways.","Close below the 125.55 support band or the strategy stop.","Earnings or regulatory headline that changes forward estimates by more than the modelled window σ.","Volatility expanding beyond 32% annualised invalidates position sizing.","Loss of the fundamental pillars used in the score (guidance cut, covenant breach, auditor change)."],"invalidation":null,"regime_at_time":"sideways","status":"active","invalidated_at":null,"invalidated_reason":null,"data_mode":"demo"},{"id":6444,"security_id":99,"model_id":2,"horizon_code":"12M","generated_at":"2026-10-24 23:42:36","ref_price":108,"bull_low_pct":10,"bull_high_pct":20,"base_low_pct":-7.5,"base_high_pct":7.5,"bear_low_pct":-17.5,"bear_high_pct":-7.5,"prob_up":0.52,"p10_pct":-12.5,"p25_pct":-7.5,"p50_pct":0,"p75_pct":7.5,"p90_pct":15,"expected_range_low":-7.5,"expected_range_high":7.5,"risk_range_low":-17.5,"risk_range_high":7.5,"confidence":55,"confidence_basis":"760 bars, blended vol 20%, score 55, coverage 89%%","risk_level":"low","volatility_ann":20,"max_hist_drawdown":"-37.8000","sample_size":760,"data_freshness_secs":96156,"bull_case":"If RSI mid-range — room to extend, a volatility-compressed setup resolving upward would accelerate the move, the upside path is the 80–95th percentile band shown here.","base_case":"mildly positive","bear_case":"Downside triggers: a market-wide risk-off move alone can carry the 5–20th percentile band. Treat the 5–20th percentile band as the stress case for sizing, not as a worst case.","catalysts":["Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche","Demo synthetic: XLB completes share buyback tranche"],"key_risks":"No exceptional risk flags from stored data; normal market risk always applies","assumptions":["Realised volatility stays near its recent level (blended 20% annualised).","The scoring tilt persists over the window; no structural break (fraud, delisting, forced guidance cut).","Returns are approximated as lognormal; fat tails are handled by widening, not by point forecasts.","Index regime assumed: sideways.","Close below the 125.55 support band or the strategy stop.","Earnings or regulatory headline that changes forward estimates by more than the modelled window σ.","Volatility expanding beyond 32% annualised invalidates position sizing.","Loss of the fundamental pillars used in the score (guidance cut, covenant breach, auditor change)."],"invalidation":null,"regime_at_time":"sideways","status":"active","invalidated_at":null,"invalidated_reason":null,"data_mode":"demo"}],"available":true,"as_of":"2026-10-23","mode":"demo","note":"Stored snapshot values; not a real-time feed."}