Buy-and-hold SPY vs the covered call, per-share value over 7 weeks
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-07-16, from Covered Calls: Income on Your Shares.
| date | buy_hold | covered_call |
|---|---|---|
| 2026-05-01 | 720 | 720 |
| 2026-05-04 | 717.76 | 718.99 |
| 2026-05-05 | 726.46 | 725.55 |
| 2026-05-06 | 733 | 726.94 |
| 2026-05-07 | 731.44 | 726.86 |
| 2026-05-08 | 737.82 | 730.54 |
| 2026-05-11 | 739.28 | 730.89 |
| 2026-05-12 | 736.67 | 729.79 |
| 2026-05-13 | 743.57 | 733.52 |
| 2026-05-14 | 747.65 | 734.39 |
| 2026-05-15 | 737.34 | 730.84 |
| 2026-05-18 | 738.89 | 733.09 |
| 2026-05-19 | 734.25 | 731.17 |
| 2026-05-20 | 738.3 | 731.54 |
| 2026-05-21 | 744.13 | 736.87 |
| 2026-05-22 | 743.73 | 735.33 |
| 2026-05-26 | 750.85 | 739.67 |
| 2026-05-27 | 750.05 | 739.45 |
| 2026-05-28 | 755.1 | 741.62 |
| 2026-05-29 | 755.64 | 741.55 |
| 2026-06-01 | 756.58 | 741.3 |
| 2026-06-02 | 759.63 | 743.35 |
| 2026-06-03 | 750.55 | 739.37 |
| 2026-06-04 | 754.56 | 741.78 |
| 2026-06-05 | 735.36 | 735.31 |
| 2026-06-08 | 738.72 | 738.09 |
| 2026-06-09 | 735.7 | 736.19 |
| 2026-06-10 | 722.88 | 726.93 |
| 2026-06-11 | 739.48 | 739.68 |
| 2026-06-12 | 742.45 | 742.58 |
| 2026-06-15 | 753.91 | 745.72 |
- Rows × columns
- 31 × 3
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
date |
date | 2026-05-01 to 2026-06-15 | |
buy_hold |
number | 717.76 to 759.63 | |
covered_call |
number | 718.99 to 745.72 |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH prem AS (
SELECT avg(option_close) AS p
FROM global_markets.options_greeks
WHERE ticker = 'O:SPY260618C00740000' AND date = '2026-05-01' AND implied_volatility > 0.02
)
SELECT g.date,
round(avg(g.underlying_close), 2) AS buy_hold,
round(avg(g.underlying_close) + any(prem.p) - avg(g.option_close), 2) AS covered_call
FROM global_markets.options_greeks g, prem
WHERE g.ticker = 'O:SPY260618C00740000' AND g.date BETWEEN '2026-05-01' AND '2026-06-17' AND g.implied_volatility > 0.02
GROUP BY g.date ORDER BY g.date
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.