Methodology

How CoveredCalls.live Works

Full transparency on our data sources, scoring formula, update schedule, and liquidity filters — so you know exactly what you're looking at before acting on it.

Data Sources

Every number on this site comes from one of three live API providers. We do not use delayed, scraped, or manually entered data.

TradierOptions chains
🐍Python scannerGitHub Actions
🗄️Supabasecandidates table
⚙️Next.js ISRServer Components
🖥️Your browserwith scan timestamp
TradierOptions Chains

Tradier is our primary data source for all options data. Every bid, ask, open interest, delta, implied volatility, and expiration date shown in the screener comes from Tradier's options chain endpoint, queried after market close each trading day.

Endpoint/v1/markets/options/chains
Fieldsbid, ask, open_interest, delta, implied_volatility, expiration_date, strike
FrequencyOnce daily after 4:30 PM ET
Universe~3,500 US-listed equities and ETFs
FinnhubEarnings Calendar

Finnhub powers our earnings calendar. The /calendar/earnings endpoint returns confirmed and estimated earnings dates with EPS estimates for every symbol in our universe.

Endpoint/calendar/earnings
Urgency tiers≤ 7 days8–14 days15+ no flag
FMPFundamentals & Sector

Financial Modeling Prep (FMP) provides sector, sub-sector, market cap tier, and profile data. Lives in our universe table, refreshed weekly.

Endpoint/profile/{symbol}
Cap tiersMega (>$1T) · Large ($10B–$1T) · Mid ($2B–$10B) · Small (<$2B)
RefreshWeekly — Sunday 6 AM ET

Update Schedule

4:30 PM ET daily

Scanner triggers after market close — full universe processed

By 7:30 PM ET

All screener views updated and visible

Every 30 min

Today's best covered calls and earnings pages revalidate

Every Monday 8 AM ET

Weekly pages refresh with new expiration cycle

Every Sunday 6 AM ET

FMP fundamentals refresh — sector tags, market cap tiers

No weekends

Options scanner does not run Saturday or Sunday

Annualized Return Formula

All yield figures shown are annualized — this lets you compare a 7-DTE weekly option against a 45-DTE monthly option on a level playing field.

Core FormulaAnnualized Return = (premium ÷ stock_price) × (365 ÷ DTE)

premium = option bid price · stock_price = last closing price · DTE = calendar days to expiration
Bid price assumption: We use the bid, not the mid-point, as our premium. The bid is the price a market maker will pay you immediately — the most conservative and realistic fill assumption for a retail seller.
Commissions not included. The annualized return shown is gross. Deduct your broker's per-contract fee to arrive at net yield.

CCL Score

The CCL Score (CoveredCalls.live Score) is our proprietary composite ranking from 0 to 100. Higher is better.

CCL Score FormulaCCL Score = (annualized_return_norm × 0.45)
            + (spread_quality_norm  × 0.25)
            + (downside_pct_norm   × 0.15)
            + (other_factors_norm   × 0.15)
Annualized ReturnW_RETURN = 0.45
45%
Spread QualityW_SPREAD = 0.25 (inverse)
25%
Downside ProtectionW_DOWNSIDE = 0.15
15%
OI depth + delta fit0.20–0.40 delta optimal
15%

80–100

Exceptional — top ~10% of daily candidates

65–79

Strong — above average across all four components

50–64

Average — trade-off between yield and spread

< 50

Below average — typically filtered out by default views

Liquidity Filters

Before any opportunity appears in our screener, it must pass all four of the following filters.

FilterThresholdRationale
Open Interest≥ 100 contractsBelow 100 OI, the market is thin enough that a single order can move the bid significantly.
Bid-Ask Spread≤ 5% of mid priceSpread % = (ask − bid) ÷ mid × 100. Wider spreads mean the bid is too far from fair value.
Instrument typeEquities and ETFs onlyNo OTC securities, ADRs with settlement risk, or leveraged products.
Exchange listingUS exchanges onlyEnsures all contracts are cleared by the OCC.
Effect on universe size: Out of ~3,500 symbols scanned, typically 400–700 pass all four filters on any given day.

Limitations

🕐

Data is a post-market snapshot

The scanner runs once after 4:30 PM ET. IV and premiums can change significantly intraday. Always verify current prices with your broker before executing any trade.

📐

Delta ≠ exact assignment probability

Delta is shown as a proxy for the probability of the option expiring in-the-money. It is a reasonable approximation under normal conditions but is not a precise assignment probability.

⚖️

Not investment advice

CoveredCalls.live is an educational data and screening tool. Nothing on this site constitutes investment advice. We are not a registered investment advisor. See our Terms of Service.