Best Covered Call Screeners That Sort by Return on Capital and Annualized Yield

The Short Answer: Which Screeners Let You Sort by Return on Capital?

Several platforms let you sort covered call results by return on capital (ROC) or annualized yield right out of the box. The most widely used by retail traders are Barchart.com, PowerOptions, Market Chameleon, and the options screener built into thinkorswim (TD Ameritrade/Schwab). Each one calculates ROC slightly differently, so understanding what the number means before you act on it is just as important as knowing where to find it.

What Return on Capital and Annualized Yield Actually Mean

Return on capital for a covered call is simple math. You divide the premium you collect by the cost basis of the stock you already own — or by the capital you would need to buy 100 shares if you are entering fresh.

Example: You own 100 shares of AAPL at a cost basis of $172. You sell one 30-day $175 call for $2.10 per share, collecting $210 in premium. Your ROC for that single trade is $210 ÷ $17,200 = 1.22%.

Annualized yield takes that single-period ROC and projects it over a full year. If the trade lasts 30 days, the annualizer multiplies by 365 ÷ 30 = 12.17. So 1.22% × 12.17 = 14.8% annualized yield. That number assumes you can replicate the same trade every 30 days for 12 months — a big assumption, but a useful benchmark for comparing opportunities side by side.

Some screeners use 'return on investment' (ROI) instead of ROC. The math is the same when you are using cash to buy the stock outright. If you are using margin, the denominator changes and the percentage looks higher. Always check which denominator the tool is using.

The Top Screeners Compared

Here is how the main platforms stack up for retail covered-call traders who want to sort by yield.

**Barchart.com** — Free tier available. The Covered Calls screener under the Options tab lets you sort by 'Return on Investment' (their label for ROC) and by 'Annualized Return.' You can filter by days to expiration, moneyness (OTM/ATM/ITM), minimum open interest, and minimum volume. The free version has a data delay; a paid subscription removes it. Good starting point for most retail traders.

**Market Chameleon** — Free and paid tiers. Displays 'Static Return' (premium ÷ stock price) and 'Annualized Static Return.' Also shows 'If-Called Return,' which includes any capital gain or loss if the stock is called away at the strike. Sorting by if-called return is more realistic for traders who are willing to sell the shares.

**PowerOptions** — Subscription-based. One of the oldest dedicated covered-call screeners. Lets you sort by 'Return on Investment,' 'Annualized Return,' and 'Downside Protection.' The downside protection column shows how far the stock can fall before your premium is fully eroded — a useful risk column to keep visible alongside yield.

**thinkorswim (Schwab)** — Built into the brokerage platform, free for account holders. The Scan tab lets you build a custom covered-call scan. You can add columns for theoretical value, delta, and days to expiration, then sort. It takes more setup than Barchart but gives you live data and lets you route orders directly from the scan results.

**OptionStrat and Unusual Whales** — Both offer options screeners with yield sorting. OptionStrat is cleaner for visualizing payoff diagrams. Unusual Whales skews toward unusual flow data but has a covered-call filter. Neither replaces a dedicated screener for systematic ROC sorting, but both are worth bookmarking.

A Worked Example: Running MSFT Through a Screener

Let us walk through a real screening session using MSFT as the underlying.

Assume MSFT is trading at $415.00. You own 100 shares. You open Barchart's Covered Calls screener and filter for MSFT, expirations between 25 and 45 days out, and strikes at least 2% out of the money.

The screener returns several rows. You sort by Annualized Return descending. Near the top you see:

— Strike $425, 35 days to expiration, bid $3.80, ask $3.90. Mid-price $3.85. — Static ROC: $3.85 ÷ $415.00 = 0.93% — Annualized: 0.93% × (365 ÷ 35) = 9.7% — Delta: 0.28 — Open interest: 12,400 contracts

Further down you see a $420 strike at $5.60 mid: — Static ROC: $5.60 ÷ $415.00 = 1.35% — Annualized: 1.35% × (365 ÷ 35) = 14.1% — Delta: 0.38 — Open interest: 8,900 contracts

The $420 strike pays more but has a higher delta, meaning there is a greater chance MSFT closes above $420 and your shares get called away at expiration. If you paid $415 for the shares, you still net a $5 capital gain plus the $5.60 premium — a fine outcome. But if your cost basis is $380, selling at $420 caps a larger potential gain. The screener shows you yield; it cannot tell you whether capping that gain is acceptable for your situation.

This is the core discipline: use the screener to find candidates, then apply your own judgment about cost basis, tax lot, and how much upside you are willing to give up.

Risks You Need to See Before You Sort by Yield Alone

Sorting by the highest annualized yield and picking the top row is one of the fastest ways to lose money in covered calls. Here is why.

**High yield often means high implied volatility.** A stock paying 25% annualized yield on a 30-day call is doing so because the options market expects large price swings. Those swings can go down as easily as up. The premium compensates you for that risk — it does not eliminate it.

**Annualized yield assumes perfect replication.** If the stock drops 20% after you sell the call, you cannot roll into the same strike at the same premium. Your realized annualized yield for the year will be far lower than the screener projected on day one.

**Assignment and tax consequences are real.** If your call is exercised and your shares are called away, you have a taxable sale. The IRS treats the premium and the stock sale as separate events. FINRA and the Options Industry Council (OIC) both publish plain-English guides on covered-call taxation that are worth reading before your first trade. Canadian traders should check CRA guidance on options income, which can be treated as capital gains or business income depending on trading frequency.

**Liquidity matters more than yield.** A 30% annualized yield on a thinly traded name with a $0.50 bid-ask spread means you are giving back a chunk of that yield the moment you enter and exit. Filter for minimum open interest of at least 500 contracts and a bid-ask spread under $0.15 before you sort by yield.

**Downside protection is the other column to watch.** A $2.00 premium on a $100 stock gives you 2% of cushion before you are underwater on the combined position. If the stock drops 10%, the premium only softened the blow by 2 points. Keep the downside protection column visible in your screener at all times.

How to Set Up Your Screener for Consistent Results

A repeatable process beats chasing the highest number every week. Here is a simple filter set that works across most of the screeners listed above.

1. **Days to expiration:** 21 to 45 days. This range captures the steepest part of theta decay without locking up capital too long. The OIC notes that time decay accelerates in the final 30 days of an option's life.

2. **Moneyness:** 1% to 5% out of the money. Keeps you in strikes with meaningful premium while leaving some room for the stock to run.

3. **Minimum open interest:** 500 contracts or more. Ensures you can exit cleanly.

4. **Maximum bid-ask spread:** $0.20 or less for stocks under $200; $0.30 or less for stocks above $200.

5. **Implied volatility rank (IVR):** Above 30. Selling premium when implied volatility is elevated relative to its own history gives you a statistical edge. Many screeners show IVR or IV percentile.

6. **Sort column:** Annualized static return, descending. Review the top 10 to 15 results and cross-check against your existing holdings and cost basis.

Save this filter set as a custom scan in your screener of choice. Run it once a week, typically on Wednesday or Thursday when you are 2 to 3 weeks from the next standard expiration. Consistency in process is what turns covered calls from a one-off trade into a repeatable income strategy.

Which free covered call screener lets me sort by annualized yield?

Barchart.com offers a free covered calls screener under its Options tab that sorts by annualized return and return on investment. The free tier uses delayed data, so consider upgrading to a paid plan if you need live quotes before placing a trade.

What is the difference between static return and if-called return in a screener?

Static return is the premium divided by the stock price, assuming the option expires worthless and you keep the shares. If-called return adds any capital gain or loss from the stock being sold at the strike price, giving you a more complete picture of total profit if assignment occurs.

How do I know if the annualized yield shown in a screener is realistic?

Annualized yield assumes you replicate the same trade every cycle for a full year, which rarely happens exactly. Treat it as a comparison tool, not a guarantee, and check the implied volatility rank to confirm you are selling into elevated premium rather than historically cheap options.

Does selling a covered call trigger a tax event right away?

No, collecting the premium is not immediately taxable in most cases, but it does create a tax obligation when the option closes — either by expiration, buyback, or assignment. The IRS requires you to report options income, and the OIC publishes a free tax guide covering covered-call treatment that is worth reviewing with your tax advisor.

Can Canadian investors use the same screeners as US traders?

Yes, US-based screeners like Barchart and Market Chameleon cover Canadian-listed options on major exchanges, though coverage of TSX-listed names is thinner. Canadian traders should also check CRA guidance on whether their options activity is taxed as capital gains or business income, since the distinction affects after-tax yield significantly.

What minimum open interest should I filter for when screening covered calls?

Most experienced retail traders filter for at least 500 contracts of open interest at the specific strike and expiration they are targeting. Higher open interest means tighter bid-ask spreads and easier exits, which directly protects the yield the screener is showing you.