You've been selling covered calls for a few months now. Premiums are coming in. Your spreadsheet is a mess. You're not entirely sure if you're making 8% annualized or 14%—or if you're actually losing money when you account for opportunity cost.
This is where most covered call traders stall. They can execute individual trades, but they can't answer the most basic question: Is this working?
Covered call portfolio tracking separates the pros from the hobbyists. It's not enough to collect premium; you need to know what kind of premium you're collecting relative to your risk. You need to spot which positions are dragging down returns and which are carrying weight. Most importantly, you need to optimize for the metric that actually matters to your financial goals.
Portfolio Income Calculator
Diversify income across multiple stocks for steady monthly cash flow
The Four Critical Metrics You Must Track
1. Yield on Cost (YoC)
This is the premium you collected divided by your original stock purchase price—not the current market price.
YoC = (Premium Collected ÷ Original Cost Basis) × 100
Example:
- Bought 100 shares at $40 = $4,000 cost basis
- Sold covered call for $2 premium = $200 collected
- YoC = ($200 ÷ $4,000) × 100 = 5%
YoC tells you something the market price can't: whether you're getting paid fairly for the risk you took at entry. If you paid $40 and the stock is now $50, YoC stays at 5% because it's anchored to your entry.
Why it matters: YoC is your ground truth. It answers the question: "Am I getting paid well enough given what I originally risked?"
2. Yield on Current Value (YoCV)
This is premium divided by current market value of your position.
YoCV = (Premium Collected ÷ Current Stock Price × 100) × 100
Using the same example:
- Stock now trades at $45
- Premium collected: $200
- YoCV = ($200 ÷ $4,500) × 100 = 4.44%
YoCV shows you what return you're getting on today's capital. It's lower than YoC because your unrealized gains have inflated the position value.
Why it matters: YoCV reveals whether your capital is overdeployed. As stocks run up, YoCV drops, signaling that you might want to trim or redeploy cash elsewhere.
3. Assignment-Adjusted Return (AAR)
If a call is assigned, you're selling at the strike price—not the current market price. This matters for return calculation.
AAR = (Premium Collected + (Strike Price - Cost Basis)) ÷ Cost Basis × 100
Example (assuming assignment at $42 strike):
- Cost basis: $40
- Premium: $2
- Strike price: $42
- AAR = ($2 + ($42 - $40)) ÷ $40 = $4 ÷ $40 = 10% return
Compare to if the stock never got called away (unrealized loss at current $45):
- Unrealized gain: $5 (= 12.5% without premium)
- But the call capped it—your actual gain if assigned is 10%
Why it matters: AAR shows your expected return if assigned. It forces you to ask: "Is 10% return attractive for the capital I deployed?" Often the answer is no, revealing positions you should close rather than hold.
4. Portfolio Yield (Monthly and Annualized)
This is the total premium collected divided by total capital deployed, expressed monthly and annualized.
Monthly Portfolio Yield = (Total Premium This Month ÷ Average Capital Deployed) × 100
Annualized = Monthly Yield × 12
Example:
- Total capital: $100,000
- Premium collected this month: $900
- Monthly yield = ($900 ÷ $100,000) = 0.9%
- Annualized = 0.9% × 12 = 10.8%
Why it matters: This is the metric that determines your real cash flow. If you're averaging 0.7% monthly ($840/month on $100K), you can forecast your income stream. Most covered call sellers target 0.8–1.5% monthly (9.6%–18% annualized).
Building Your Tracking Dashboard
You need to track three tiers:
Tier 1: Individual Position Level
- Stock symbol and quantity
- Entry price (cost basis) and entry date
- Current stock price and current position value
- Call strike and premium collected
- Days to expiration
- Probability of assignment
- YoC, YoCV, and AAR
- Status (open, assigned, expired, closed)
Tier 2: Portfolio Aggregate Level
- Total capital deployed (sum of all cost bases)
- Total premium collected this month and YTD
- Current portfolio value (unrealized gains/losses + premium)
- Portfolio yield (monthly and annualized)
- Upcoming expirations (next 7 days, 30 days, 60 days)
Tier 3: Performance Analysis Level
- Best-performing positions (highest YoC)
- Worst-performing positions (lowest YoC or underwater)
- Assignment frequency (how often are you getting assigned?)
- Capital efficiency (deployed vs. available cash)
- Drag calculation (premium foregone if held without call)
A Real Portfolio Example: $50K Account
Let's say you have 5 covered call positions:
| Stock | Shares | Entry Price | Current Price | Call Strike | Premium | Days to Exp | Cost Basis | YoC (%) | Current Value | YoCV (%) | AAR (%) | Status |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VTSAX | 100 | $140 | $145 | $148 | $1.50 | 28 | $14,000 | 10.7% | $14,500 | 10.3% | 14.6% | Open |
| VTI | 200 | $210 | $215 | $220 | $2.00 | 35 | $42,000 | 9.5% | $43,000 | 9.3% | 12.4% | Open |
| SPY | 50 | $380 | $382 | $385 | $0.80 | 14 | $19,000 | 5.1% | $19,100 | 4.2% | 6.8% | Open |
Portfolio Aggregate:
- Total capital deployed: $50,000
- Premium collected this month: $450
- Monthly portfolio yield: 0.9%
- Annualized yield: 10.8%
Analysis:
- VTSAX is your best performer (10.7% YoC). Continue this pattern.
- VTI is solid (9.5% YoC). Good diversification.
- SPY is dragging (5.1% YoC). This position might be overvalued or you're being too conservative with the strike. Consider exiting and redeploying to VTSAX or VTI calls.
Common Tracking Mistakes
1. Confusing YoC with Current Return
You paid $40, it's now $50, you collected $2 premium. Your "return" feels like ($2 + $10) = $12, or 30%. But your YoC is only 5% because it's locked to your entry point. YoC is what matters for forward-looking decisions.
2. Not Accounting for Forgone Dividend
If your underlying stock pays a dividend, and it's ex-dividend before your call expires, the option holder gets the dividend—not you. This reduces your effective return. Always check ex-dividend dates when planning call expirations.
3. Ignoring Assignment Cascades
You have 5 covered calls expiring on the same day. If they all get assigned, you're forced to sell 500 shares simultaneously—potentially buying back into the position or holding cash. The aggregated impact is worse than individual tracking suggests.
4. Tracking Unrealized Gains as If They Were Real
Your stock is up $1,000 unrealized. You also collected $500 in premium. Your "profit" feels like $1,500, but if the call assignment pins you at the strike, you might only realize $500 + limited stock gains. Track premium collected (real) separately from unrealized stock gains (speculative).
Optimization: Using Your Data
Once you're tracking properly, optimization becomes mechanical:
1. Double Down on High-YoC Positions If VTSAX consistently delivers 10%+ YoC and SPY delivers 5%, allocate more to VTSAX.
2. Prune Low-Performers If a position has been below your target yield for 3 months, exit it. That capital can work harder elsewhere.
3. Match Strike Selection to Your Yields If your portfolio average is 9%, and one position is 12%, study what you did differently (strike selection, expirations, etc.) and replicate it.
4. Adjust Portfolio Mix If your portfolio yield is drifting from target (should be 12% but you're at 10%), you can shift to more aggressive call selection rather than changing your underlying holdings.
The Tracking Tech Stack
Spreadsheet Solution:
- Google Sheets or Excel with basic formulas
- Works great for 5–15 positions
- Limited to manual data entry (stock prices, expirations)
Mid-Range Solution:
- Specialized tools like Tastytrade's analytics
- Or Portfolio Lab / OptionStrat
- Semi-automated, pulls from your broker
- Good for 15–50 positions
Enterprise Solution:
- Custom Python scripts pulling from Interactive Brokers API
- Full automation, real-time tracking
- Overkill for most retail traders but necessary at scale
Start with a spreadsheet. Move to a specialized tool once managing it becomes a 2-hour weekly task.
The Bottom Line
Tracking isn't optional—it's the foundation of sustainable income. The traders making consistent 10–15% annualized returns on covered calls aren't guessing; they're measuring. They know exactly which positions are carrying their portfolio and which are dead weight. They know whether they're hitting their yield targets and where the drag is coming from.
Build your tracking system now, even if you have just 3 positions. By the time you have 15 positions and are managing $200K, you'll have the discipline and visibility to optimize ruthlessly. That discipline is what separates part-time traders from professionals.