AlphaGBM FearScore
A weighted composite panic gauge, per ticker. Reconstructs the FearDesk framework in one API call: six orthogonal fear signals, each scored 0–100, then combined with fixed weights into a single number. Score ≥ 60 is the historical trigger for Bull Put Spread entries.
Scoring Weights
| Indicator | Weight | Source |
|---|---|---|
| VIX level | 20% | Global fear floor (market-wide) |
| IV Rank | 25% | Per-ticker option premium expensiveness |
| RSI-14 | 15% | Oversold intensity |
| Volume anomaly | 15% | Options or stock volume spike vs 5-day avg |
| Put/Call ratio | 15% | Bearish positioning skew |
| Consecutive down days | 10% | Selloff persistence |
Each indicator has its own 0–100 sub-score with thresholds tuned so extreme readings
contribute most. Missing inputs fall back to neutral values (and are flagged in
components.*.fallback), so the endpoint never 500s on partial data.
Why It Exists
Most fear gauges are either VIX-only (miss per-ticker divergence) or opaque ("sentiment index: 72"). This breaks down exactly what drove the score so you can decide whether to trust it.
Backtest evidence: Across 146 live Bull Put Spread trades, entries at FearScore ≥ 60 delivered ~10.8% annualized ROC vs ~3.5% for unconditional entries — roughly 3× the alpha from a single filter. Use this as the market-timing layer on any premium-selling strategy.
How to Use
Input: A ticker symbol.
Output:
fear_score— weighted total 0-100signal— boolean, true whenfear_score ≥ threshold(default 60)threshold— current trigger valueconfidence— 0-1, fraction of the 6 indicators that used real (non-fallback) datacomponents.{vix,iv_rank,rsi,volume_anomaly,pc_ratio,consecutive_down}:value— raw inputscore— 0-100 per-indicator scoreweight— contribution weightfallback— true if neutral default was used
Example Queries:
fear score QQQ— Full breakdown of the 6 indicators for QQQis NVDA oversold right now— RSI + FearScore compositeBPS signal SPY— Check if entry threshold is hitwhen should I sell put AAPL— Timing via FearScore ≥ 60 rulehow panicked is TSLA today— Per-ticker panic index with component breakdownwhy is QQQ fear score low— Component-by-component explanation
Mock Data
Mock data in mock-data/fear-score/ — example responses at neutral / elevated /
signal-triggered readings.
API Endpoint
GET /api/options/fear-score?ticker={SYMBOL}
Query params:
ticker(required) — stock symbol (US / HK / CN supported if whitelisted)
Response shape:
json{ "success": true, "ticker": "QQQ", "fear_score": 68.2, "signal": true, "threshold": 60, "confidence": 1.0, "components": { "vix": {"value": 28.4, "score": 82, "weight": 0.20, "fallback": false}, "iv_rank": {"value": 78, "score": 78, "weight": 0.25, "fallback": false}, "rsi": {"value": 24.1, "score": 88, "weight": 0.15, "fallback": false}, "volume_anomaly": {"value": 2.3, "score": 72, "weight": 0.15, "fallback": false}, "pc_ratio": {"value": 1.6, "score": 80, "weight": 0.15, "fallback": false}, "consecutive_down": {"value": 3, "score": 60, "weight": 0.10, "fallback": false} }, "timestamp": "2026-04-24T08:00:00" }
Pricing: 1 option-analysis credit per call; per-ticker 5-min cache (cache hits free).
Related Skills
| Skill | Relevance |
|---|---|
| alphagbm-vix-status | Market-wide version of the VIX input |
| alphagbm-iv-rank | IV Rank (25% of the composite) standalone |
| alphagbm-options-strategy | BPS/Sell-Put strategies that should respect the ≥60 signal |
Powered by AlphaGBM — Real-data options & research intelligence. 10K+ users.

