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-100
signal — boolean, true when fear_score ≥ threshold (default 60)
threshold — current trigger value
confidence — 0-1, fraction of the 6 indicators that used real (non-fallback) data
components.{vix,iv_rank,rsi,volume_anomaly,pc_ratio,consecutive_down}:
value — raw input
score — 0-100 per-indicator score
weight — contribution weight
fallback — true if neutral default was used
Example Queries:
fear score QQQ — Full breakdown of the 6 indicators for QQQ
is NVDA oversold right now — RSI + FearScore composite
BPS signal SPY — Check if entry threshold is hit
when should I sell put AAPL — Timing via FearScore ≥ 60 rule
how panicked is TSLA today — Per-ticker panic index with component breakdown
why 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:
{
"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
Powered by AlphaGBM — Real-data options & research intelligence. 10K+ users.
---
name: alphagbm-fear-score
description: Calculates a per-ticker panic index (0-100) from six weighted signals including VIX, IV Rank, RSI-14, volume anomaly, put/call ratio, and consecutive down days, triggering Bull Put Spread entry signals at scores ≥60.
---
# 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-100
- `signal` — boolean, true when `fear_score ≥ threshold` (default 60)
- `threshold` — current trigger value
- `confidence` — 0-1, fraction of the 6 indicators that used real (non-fallback) data
- `components.{vix,iv_rank,rsi,volume_anomaly,pc_ratio,consecutive_down}`:
- `value` — raw input
- `score` — 0-100 per-indicator score
- `weight` — contribution weight
- `fallback` — true if neutral default was used
**Example Queries:**
- `fear score QQQ` — Full breakdown of the 6 indicators for QQQ
- `is NVDA oversold right now` — RSI + FearScore composite
- `BPS signal SPY` — Check if entry threshold is hit
- `when should I sell put AAPL` — Timing via FearScore ≥ 60 rule
- `how panicked is TSLA today` — Per-ticker panic index with component breakdown
- `why 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](../alphagbm-vix-status/) | Market-wide version of the VIX input |
| [alphagbm-iv-rank](../alphagbm-iv-rank/) | IV Rank (25% of the composite) standalone |
| [alphagbm-options-strategy](../alphagbm-options-strategy/) | BPS/Sell-Put strategies that should respect the ≥60 signal |
---
*Powered by [AlphaGBM](https://alphagbm.com) — Real-data options & research intelligence. 10K+ users.*