VRP Strategy Scoring: How to Pick the Right Options Structure for Today's Market | FlashAlpha

VRP Strategy Scoring: How to Pick the Right Options Structure for Today's Market

The FlashAlpha VRP endpoint scores 5 options strategies in real-time: short straddle, short strangle, iron condor, calendar spread, and jade lizard. Learn what drives each score, when each strategy wins, and how to build a multi-symbol recommendation engine.

T
Tomasz Dobrowolski Quant Engineer
Mar 27, 2026
17 min read
VRP OptionsStrategy StrategySelection Straddle Strangle IronCondor CalendarSpread

The Five Strategy Scores

The VRP endpoint returns a strategy_scores object with a 0 - 100 score for each of six premium selling structures. Higher scores mean the current market conditions favor that structure more strongly.

StrategyScore FieldBest WhenWorst When
Short Straddleshort_straddleHigh ATM VRP, low skew, positive gamma, range-boundTrending market, high skew, negative gamma
Short Strangleshort_strangleHigh VRP, moderate skew, positive gamma, wide expected rangeNarrow range (straddle beats it), extreme skew
Iron Condoriron_condorSymmetric VRP, need defined risk, moderate VRPAsymmetric VRP (put credit spread beats it)
Calendar Spreadcalendar_spreadSteep term structure (contango), low front VRP, positive gammaFlat/inverted term structure, high front VRP
Jade Lizardjade_lizardHigh put VRP, want zero upside risk, moderate call IVSymmetric VRP, high call VRP

What Drives Each Score

Short Straddle Score

The short straddle is the purest premium selling trade - sell both the ATM call and ATM put. Maximum theta, maximum gamma risk. The score is driven by:

  • ATM VRP magnitude (40% weight): How much the ATM implied vol exceeds realized vol. Higher = better score.
  • Gamma regime (25% weight): Positive gamma strongly favors straddles because dealer dampening compresses the realized range.
  • Skew flatness (20% weight): Low skew means ATM IV is a good proxy for the overall premium landscape. High skew means the premium is concentrated in OTM puts, which a straddle does not optimally capture.
  • VRP z-score (15% weight): Historical context for the premium level.

A straddle score above 75 means conditions are excellent for ATM premium selling. Below 40, consider a different structure.

Short Strangle Score

The short strangle sells OTM puts and OTM calls, giving a wider profit zone than the straddle at the cost of less premium. The score factors in:

  • Overall VRP magnitude (35% weight): The strangle benefits from VRP across the whole smile, not just ATM.
  • Expected move width (25% weight): Wider expected moves favor strangles over straddles because the profit zone matches the expected range.
  • Gamma regime (20% weight): Positive gamma compresses tails, making OTM options decay faster.
  • Wing VRP (20% weight): How much VRP exists in 20 - 30 delta options specifically.

Iron Condor Score

The iron condor adds long wings for defined risk. It scores highest when the VRP is symmetric and the trader needs capital efficiency or risk limits:

  • VRP symmetry (30% weight): The put/call VRP ratio. Closer to 1.0 = higher score. Above 3.0x, the iron condor score drops sharply because the call side has no edge.
  • Overall VRP level (25% weight): Enough premium to justify four legs of commissions.
  • Gamma regime (25% weight): Positive gamma favors the structure.
  • Term structure (20% weight): Normal contango supports iron condors. Inverted term structure penalizes.

Put Credit Spread Score

The directional premium selling trade. It dominates when put VRP is significantly higher than call VRP:

  • Put VRP magnitude (35% weight): Raw put-side premium available.
  • Put/call VRP asymmetry (30% weight): Higher ratio = higher score. At 4x+, this score peaks.
  • Skew steepness (20% weight): Steep skew means OTM puts are richly priced relative to ATM - ideal for credit spreads.
  • Gamma regime (15% weight): Positive gamma means dealers buy at the put wall, supporting your short put.

Calendar Spread Score

Calendar spreads exploit term structure rather than absolute VRP. The score is driven by:

  • Term structure steepness (40% weight): The gap between front-month IV and back-month IV. Steeper contango = higher score.
  • Front-month VRP (25% weight): If front-month VRP is very high, selling it outright (straddle/strangle) beats the calendar. Calendars score higher when front VRP is moderate.
  • Gamma regime (20% weight): Positive gamma in the front month accelerates front-month theta decay.
  • Realized vol trend (15% weight): Declining realized vol favors calendars because the front month decays faster in quiet markets.

Jade Lizard Score

The hybrid structure (put credit spread + short naked call). It scores highest when put VRP dominates but you want zero upside risk:

  • Put VRP dominance (35% weight): Similar to put credit spread, but requires slightly higher thresholds.
  • Far OTM call IV (25% weight): The naked call needs enough premium to make the total credit exceed the put spread width. Higher call IV = easier to achieve.
  • Gamma regime (20% weight): Positive gamma dampens rallies that could threaten the naked call.
  • Expected move (20% weight): The naked call strike must be well beyond the expected move. Wider moves make this harder, lowering the score.

Get all 5 strategy scores for any symbol with one API call

No manual calculation - the endpoint returns scored recommendations updated in real-time.

Get API Access

The Strategy Selection Decision Tree

When multiple scores are close, use this decision tree to break the tie:

  1. Is VRP z-score > 1.5? If yes, favor the highest-premium structure (straddle or strangle). You want maximum exposure to the rich premium.
  2. Is put VRP > 3x call VRP? If yes, eliminate the iron condor. Choose between put credit spread and jade lizard based on their scores.
  3. Is term structure steep (contango > 3 vol points)? If yes, the calendar spread score is likely high. Compare it to the directional alternatives.
  4. Do you need defined risk? If yes, eliminate straddle and strangle. Choose among iron condor, put credit spread, and jade lizard.
  5. Default: Pick the highest score. The scoring system already incorporates all the factors above.

Building a Multi-Symbol Recommendation Engine

The following script scans your watchlist and recommends the best strategy for each symbol based on the real-time scores:

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://lab.flashalpha.com"
WATCHLIST = ["SPY", "QQQ", "IWM", "AAPL", "TSLA", "NVDA", "AMZN", "META",
             "GOOGL", "MSFT", "AMD", "JPM"]

STRATEGIES = [
    ("short_straddle", "Short Straddle"),
    ("short_strangle", "Short Strangle"),
    ("iron_condor", "Iron Condor"),
    ("calendar_spread", "Calendar Spread"),
    ("jade_lizard", "Jade Lizard"),
]

def get_vrp(symbol):
    resp = requests.get(
        f"{BASE_URL}/v1/vrp/{symbol}",
        headers={"X-Api-Key": API_KEY}
    )
    if resp.status_code != 200:
        return None
    return resp.json()

print(f"{'Symbol':<8} {'Best Strategy':<20} {'Score':>6} {'2nd Best':<20} {'Score':>6} {'Z':>6} {'VRP':>6}")
print("-" * 80)

opportunities = []

for sym in WATCHLIST:
    data = get_vrp(sym)
    if not data or not data.get("strategy_scores"):
        continue

    scores = data["strategy_scores"]
    z = (data.get("vrp") or {}).get("z_score") or 0
    vrp_20d = (data.get("vrp") or {}).get("vrp_20d") or 0

    # Sort strategies by score
    ranked = sorted(
        [(key, label, scores.get(key, 0)) for key, label in STRATEGIES],
        key=lambda x: x[2],
        reverse=True
    )

    best_key, best_label, best_score = ranked[0]
    second_key, second_label, second_score = ranked[1]

    print(f"{sym:<8} {best_label:<20} {best_score:>5.0f} {second_label:<20} {second_score:>5.0f} {z:>+5.1f} {vrp_20d:>+5.1f}%")

    if best_score >= 70 and z > 0.5:
        opportunities.append({
            "symbol": sym,
            "strategy": best_label,
            "score": best_score,
            "z_score": z,
            "vrp": vrp_20d
        })

if opportunities:
    print(f"\n{'='*60}")
    print(f"TOP OPPORTUNITIES ({len(opportunities)} symbols with score >= 70 and z > 0.5):")
    print(f"{'='*60}")
    for opp in sorted(opportunities, key=lambda x: x["score"], reverse=True):
        print(f"  {opp['symbol']:<8} {opp['strategy']:<20} score={opp['score']:.0f}  z={opp['z_score']:+.1f}  VRP={opp['vrp']:+.1f}%")

Run this script with your own API key to see live strategy scores and recommendations for your watchlist. The output will rank the best and second-best strategy for each symbol, along with the score, z-score, and current VRP - highlighting the top opportunities where scores are 70+ and z-scores are above 0.5.

Validate with history. Archive daily snapshots from the live /v1/vrp endpoint to build your own history - a simple cron job is all you need. Run your own backtest before deploying capital - every symbol and time period behaves differently.

A Full Week of Recommendations

To illustrate how the scoring system adapts to changing conditions, here is a hypothetical week for SPY where different strategies win on different days:

DayMarket ConditionTop StrategyScoreWhy It Won
MondayLow vol, steep term structure, positive gammaCalendar Spread74Front VRP is thin but term structure is steep. Calendar captures the roll-down.
TuesdayFed surprise, VIX +5, negative gammaPut Credit Spread68VRP spiked asymmetrically (put VRP 5x call). Even in negative gamma, the put side has edge with defined risk.
WednesdayRecovery day, VIX fading, positive gamma returnsShort Straddle83High ATM VRP, low skew (both sides elevated), positive gamma. Maximum premium capture.
ThursdayContinued recovery, VRP normalizingShort Strangle72VRP still above average but declining. Strangle gives a wider profit zone as the move settles.
FridayQuiet, moderate skew, put VRP 4x callJade Lizard71Put VRP dominant, but call IV high enough for a meaningful naked call credit. Zero upside risk.

Notice: the same symbol (SPY) favored five different strategies across five days. This is why a fixed strategy (always iron condors, always strangles) underperforms an adaptive approach.

When Scores Conflict with Your View

The scoring system is quantitative. It does not know about your portfolio, risk tolerance, or market thesis. Here is how to handle disagreements:

Scores say straddle, you want defined risk

Look at the iron condor and put credit spread scores. If they are above 60, use the defined-risk version of the straddle thesis. You sacrifice some edge for capital protection. If the defined-risk scores are below 50, the structure does not suit the environment - either accept the straddle risk or sit out.

Scores say put credit spread, you are bearish

The put credit spread score is bullish-to-neutral. If you are actively bearish, the VRP endpoint is not your signal source - use directional analysis instead. Do not fight a bearish view by selling puts just because the score is high.

All scores are below 50

This means no structure has a strong edge in current conditions. Do not force a trade. Low scores across the board typically occur in Cell D (negative gamma + low VRP) or during VRP inversions. Wait for conditions to improve.

Optimizing Across a Portfolio

When running the scanner across many symbols, diversification matters. Here are portfolio-level considerations:

  • Do not stack the same strategy across correlated symbols. If SPY, QQQ, and IWM all recommend put credit spreads, that is one trade with 3x the size - not three independent trades. Treat index ETF put spreads as a single position.
  • Mix strategies. A portfolio with a straddle on AAPL, a put spread on SPY, and a calendar on MSFT has better diversification than three straddles, even if the straddle score was highest for all three.
  • Respect sector correlation. NVDA + AMD + AVGO are effectively the same trade. Pick the one with the highest score and skip the others.
  • Limit total vega exposure. Each premium selling position is short vega. A portfolio of 10 short vega positions will blow up simultaneously in a vol spike. Cap total portfolio vega at a level you can survive.

Scan your entire watchlist for the best premium selling opportunities

VRP z-scores, strategy scores, and directional decomposition for 6,000+ symbols.

View SPY Scores

Related Reading

Live Market Pulse

Get tick-by-tick visibility into market shifts with full-chain analytics streaming in real time.

Intelligent Screening

Screen millions of option pairs per second using your custom EV rules, filters, and setups.

Execution-Ready

Instantly send structured orders to Interactive Brokers right from your scan results.

Join the Community

Discord

Engage in real time conversations with us!

Twitter / X

Follow us for real-time updates and insights!

GitHub

Explore our open-source SDK, examples, and analytics resources!