Understanding Contract Score: How Our 0–100 Rating Works
A full breakdown of how Contract Score is calculated — the five sub-scores, weights, DTE and premium multipliers, and how to interpret the 0–100 display.
What Contract Score is
Contract Score is our way of ranking option contracts for wheel-style strategies — cash-secured puts and covered calls — so you can compare opportunities quickly without eyeballing five different columns at once.
On the site, scores appear on a 0–100 scale. A score of 72 means the contract ranks well on our composite criteria — higher is better relative to other contracts in the dataset, not a 72% chance of profit.
Contract Score is a relative quality ranking, not investment advice, a profit forecast, or a guarantee. Use it to sort and filter; always apply your own risk tolerance, liquidity needs, and thesis.
What Contract Score measures
We score each contract on five dimensions that matter for income-focused option selling:
| Dimension | What it captures |
|---|---|
| Yield | How much premium you collect |
| Cushion | How far out of the money the strike sits |
| Probability of profit (POP) | Model-based odds of finishing profitable |
| Liquidity | Whether the contract is practical to trade |
| Implied volatility | A small tilt toward higher IV when other factors are similar |
Those pieces are blended with fixed weights, then adjusted for days to expiration and minimum premium quality. The result is clamped to the 0–100 display range and rounded per UI rules.
The five building blocks
1. Yield (35% of the blend)
Premium income drives the wheel. We combine two yield views:
Cycle yield — premium as a percent of strike, using the contract bid (or mark if bid is missing):
(bid ÷ strike) × 100
Scored on a 0–5% scale (anything at or above 5% maps to the top of the range).
Time-adjusted yield — the same cycle yield annualized by days to expiration:
cycle yield × (365 ÷ DTE)
Scored on a 0–60% annualized scale.
The yield sub-score is 50% cycle + 50% time-adjusted, so a fat premium on a very short dated option doesn't automatically dominate a solid 30–45 day trade.
2. Cushion (30%)
Cushion is how much room you have before the stock reaches your strike — your OTM buffer:
- Puts:
(stock price − strike) ÷ stock price - Calls:
(strike − stock price) ÷ stock price
We score cushion on a 0–20% range. Strikes with cushion above 30% get an extra 30% haircut on that sub-score, because extremely deep OTM contracts can look safe on paper while offering little premium or poor economics.
3. Probability of profit — POP (15%)
POP estimates the chance the position is profitable at expiration using a log-normal / Black–Scholes–style model with:
- Current stock price and strike
- Bid (or mark) as premium received
- Implied volatility and time to expiration (in years)
- A 5% risk-free rate
For cash-secured puts, profit is modeled when the stock finishes above breakeven (strike minus premium). Covered calls use the analogous call-side breakeven.
POP is a model output, not your historical win rate on that symbol.
4. Liquidity (15%)
A great theoretical trade is useless if you can't get filled. Liquidity blends volume and open interest:
| Volume | Score |
|---|---|
| ≥ 1,000 | 1.0 |
| ≥ 300 | 0.7 |
| Below 300 | 0.4 |
| Open interest | Score |
|---|---|
| ≥ 500 | 1.0 |
| ≥ 100 | 0.6 |
| ≥ 50 | 0.3 |
| Below 50 | 0.1 |
Combined as 40% volume + 60% open interest.
5. Implied volatility (5%)
IV is scaled against a 0–100% reference band and contributes a small slice of the total. It nudges ranking when yield, cushion, and POP are otherwise similar — useful when you're comparing names in different vol regimes.
How the final score is calculated
Weighted blend
Each ingredient is normalized to a comparable scale before weighting:
| Component | Weight |
|---|---|
| Yield | 35% |
| Cushion | 30% |
| POP | 15% |
| Liquidity | 15% |
| IV | 5% |
The weighted sum feeds into the DTE and premium multipliers below.
Multiplier 1: Days to expiration
Wheel traders usually want a sensible DTE window — not lottery-ticket weeklies or LEAPS that behave differently. After the blend, we multiply by a DTE factor:
| Days to expiration | Multiplier |
|---|---|
| Under 3 | 0.30 |
| 3–6 | 0.60 |
| 7–13 | 0.90 |
| 14–45 | 1.00 |
| 46–90 | 0.90 |
| 91–180 | 0.80 |
| 181–365 | 0.70 |
| Over 365 | 0.60 |
The sweet spot (14–45 days) keeps full weight. Very short or very long expirations are penalized.
Multiplier 2: Minimum premium quality
We don't want a contract to score highly on cushion or IV alone when the bid is a few cents. This multiplier requires a positive bid; missing or zero bid drives the score toward zero.
Minimum bid by stock price:
| Stock price | Minimum bid for full credit |
|---|---|
| Under $100 | $1.00 |
| $100–$199 | $2.00 |
| $200–$499 | $3.00 |
| $500+ | $5.00 |
Bids below those thresholds are stepped down (as low as 5% of the multiplier for very small premiums). We also scale down when premium is tiny relative to strike — full credit is treated as roughly 0.3% of strike; smaller ratios reduce the multiplier (e.g. a $0.05 bid on a $100 strike).
How the score is displayed
Contract Score = weighted blend × DTE multiplier × premium multiplier, clamped to 0–100 (e.g. 84.72 or rounded per UI rules).
How to use Contract Score in practice
- Sort high to low when you want the platform's best composite wheel candidates under your filters.
- Compare apples to apples — scores are most meaningful among contracts with similar DTE, moneyness, and symbol liquidity. An 85 on a liquid large-cap put is not directly comparable to an 85 on a thin micro-cap call without context.
- Don't read it as a win probability — a displayed score of 80 does not mean an 80% chance of profit. It means the contract ranks in the top tier on our weighted criteria.
- Watch the inputs — scores move when bid, stock price, volume, open interest, IV, and DTE change. Refresh or real-time data will shift rankings intraday.
- Pair with your filters — Contract Score summarizes trade quality; your filters (delta, earnings, sector, premium, etc.) still define what you're willing to trade.
What Contract Score does not do
- It does not incorporate earnings dates, dividend risk, or assignment history explicitly (unless you filter for those separately).
- It does not model bid–ask spread or slippage in the core formula.
- POP is forward-looking model math, not backtested performance.
- Contracts without a valid stock price and strike do not receive a score.
Quick reference
| Topic | Detail |
|---|---|
| Display scale | 0–100 |
| Higher score | Better composite fit for wheel income strategies |
| Weights | 35% yield, 30% cushion, 15% POP, 15% liquidity, 5% IV |
| Best DTE band | 14–45 days (no DTE penalty) |
| Premium | Bid-based; tiered minimums by stock price |
Contract Score is provided for informational and screening purposes only. Past modeled probabilities and rankings do not guarantee future results. Options involve risk and are not suitable for all investors.
Where to go next
- Use the Contract Score filter to screen by rating.
- Open the Put screener or Call screener and sort by Rating.
- Layer with Probability of Profit filter or Moneyness filter for finer control.
Frequently Asked Questions
Does a Contract Score of 80 mean an 80% chance of profit?
No. The displayed score is a relative quality ranking on a 0–100 scale, not a win probability. POP is one ingredient (15% weight) inside the blend — the final score reflects yield, cushion, liquidity, IV, DTE, and premium quality too.
Why does my score drop when DTE is very short or very long?
After the weighted blend, we apply a DTE multiplier. The 14–45 day window keeps full weight (1.0×). Weeklies under 7 DTE and LEAPS beyond 90 days are penalized because they behave differently from the standard wheel cadence.
Why did a deep OTM contract score lower than I expected?
Cushion above 30% gets a 30% haircut on that sub-score, and tiny bids trigger the premium-quality multiplier. Extremely safe-looking strikes often pay too little premium to rank well.