Options trading income strategies — such as selling covered calls, cash-secured puts, and credit spreads — generate premium income that must be carefully tracked to understand true profitability. Unlike buying stocks where returns are straightforward (buy low, sell high), options income involves premiums received, assignment events, rolling costs, expiration outcomes, and complex tax implications. Without a disciplined tracking system, it is nearly impossible to know whether your options income strategy is actually profitable.
In this guide, you will learn how to build a comprehensive options trading income tracker in Excel using MarketXLS formulas. We cover everything from recording individual trades to analyzing overall performance, monitoring open positions with live data, and understanding the tax considerations unique to options income.
Why Track Options Trading Income in Excel
Many brokers provide basic trade confirmations and account statements, but they rarely present options trading income in a format optimized for analysis. Here is why building your own tracker in Excel is essential:
- Premium income visibility — See exactly how much premium you have collected across all strategies, time periods, and underlying stocks.
- Win rate calculation — Know what percentage of your trades expire worthless (profitable for sellers) versus getting assigned or closed at a loss.
- Risk-adjusted returns — Calculate your return on capital at risk, not just raw P&L.
- Strategy comparison — Compare the profitability of covered calls versus cash-secured puts versus credit spreads.
- Tax preparation — Options trades generate short-term capital gains that must be reported. A clean spreadsheet simplifies tax filing.
- Pattern recognition — Identify which underlying stocks, strike selections, and expiration cycles produce the best results.
Understanding Options Trading Income Strategies
Before building the tracker, let us review the primary strategies that generate options trading income.
Covered Calls
You own 100 shares of a stock and sell a call option against them. You collect the premium upfront. If the stock stays below the strike price at expiration, you keep the premium and your shares. If the stock rises above the strike, your shares may be called away at the strike price.
Income: Premium received Risk: Opportunity cost if the stock rallies past the strike; downside risk on the stock itself
Cash-Secured Puts
You sell a put option and set aside enough cash to buy the stock if assigned. You collect the premium. If the stock stays above the strike price, you keep the premium. If it falls below, you buy the stock at the strike price minus the premium received.
Income: Premium received Risk: Being assigned stock at a price above current market value
Credit Spreads
You sell one option and buy another at a different strike price. The premium received from the sold option exceeds the cost of the bought option, creating a net credit. Your maximum risk is the difference between strikes minus the net credit.
Income: Net credit received Risk: Limited to spread width minus premium
Iron Condors
A combination of a bull put spread and a bear call spread on the same underlying. You collect premiums from both sides and profit when the stock stays within a range.
Income: Combined net credit from both spreads Risk: Limited to wider spread width minus total premium
Setting Up Your Options Trading Income Tracker
Sheet 1: Trade Log
The trade log is the core of your options trading income tracker. Record every trade here.
Column Layout
| Column | Header | Description |
|---|---|---|
| A | Trade Date | Date the trade was opened |
| B | Underlying | Stock ticker (e.g., AAPL) |
| C | Strategy | Covered Call, Cash-Secured Put, Credit Spread, etc. |
| D | Option Type | Call or Put |
| E | Strike Price | Strike price of the option sold |
| F | Expiration | Expiration date |
| G | Contracts | Number of contracts |
| H | Premium Received | Total premium collected (credit) |
| I | Commission | Trading commissions paid |
| J | Net Credit | =H - I (premium minus commissions) |
| K | Close Date | Date position was closed (blank if still open or expired) |
| L | Close Cost | Cost to buy back the option (0 if expired worthless) |
| M | Net P&L | =J - L (net credit minus close cost) |
| N | Outcome | Expired, Assigned, Closed Early, Rolled |
| O | Days Held | =K - A (or =F - A if expired) |
| P | Annualized Return | =(M / Capital_At_Risk) * (365 / O) |
| Q | Notes | Free-text notes about the trade |
Capital At Risk Calculation
For different strategies, capital at risk varies:
- Covered Call: Cost basis of 100 shares per contract
- Cash-Secured Put: Strike price × 100 × contracts
- Credit Spread: (Wide strike difference × 100 × contracts) minus net credit
- Iron Condor: Maximum of put spread risk or call spread risk
Example Entries
| Trade Date | Underlying | Strategy | Type | Strike | Exp | Contracts | Premium | Comm | Net Credit |
|------------|------------|-----------------|------|--------|------------|-----------|---------|------|------------|
| 2025-01-06 | AAPL | Covered Call | Call | 195 | 2025-02-21 | 1 | $320 | $1.30| $318.70 |
| 2025-01-06 | MSFT | Cash-Secured Put | Put | 370 | 2025-02-21 | 1 | $485 | $1.30| $483.70 |
| 2025-01-13 | SPY | Credit Spread | Put | 575/570| 2025-02-14 | 2 | $180 | $2.60| $177.40 |
Sheet 2: Open Positions Dashboard
This sheet shows your currently open positions with live data from MarketXLS.
Getting Live Option Prices
Use MarketXLS formulas to monitor your open positions in real time:
=QM_GetOptionChain("AAPL")
Retrieves the full option chain for a stock, showing all available strikes and expirations with current bid/ask prices, volume, and open interest.
=QM_GetOptionChain("AAPL")
This returns a comprehensive table of all available AAPL options that you can reference in your tracker.
=OptionSymbol()
Constructs the standardized option symbol for a specific contract:
=OptionSymbol("AAPL", "2026-03-21", "C", 200)
Returns: @AAPL 260321C00200000
This symbol can then be used to get the current price of that specific option.
=QM_Last() for Option Pricing
Once you have the option symbol, get its current price:
=QM_Last("@AAPL 260321C00200000")
Returns the current last traded price of that specific option contract.
=Last() for Underlying Stock Price
Monitor the underlying stock price alongside your option positions:
=Last("AAPL")
Open Positions Layout
| Column | Header | Formula / Description |
|---|---|---|
| A | Underlying | Stock ticker |
| B | Stock Price | =Last(A2) |
| C | Option Symbol | =OptionSymbol(A2, F2, D2, E2) |
| D | Type | Call or Put |
| E | Strike | Strike price |
| F | Expiration | Expiration date |
| G | Option Price | =QM_Last(C2) |
| H | Contracts | Number of contracts |
| I | Premium Received | Original premium per contract |
| J | Current Value | =G2 × 100 × H2 |
| K | Unrealized P&L | =(I2 × 100 × H2) - J2 |
| L | Days to Expiry | =F2 - TODAY() |
| M | Distance to Strike | =(E2 - B2) / B2 (for puts) |
This dashboard gives you a live view of every open position. You can see at a glance which positions are profitable, how close the stock is to your strike, and how many days remain until expiration.
Sheet 3: Performance Analysis
Aggregate your trade log data to analyze overall options trading income performance.
Key Metrics to Calculate
| Metric | Formula |
|---|---|
| Total Premium Collected | =SUM(TradeLog[Net Credit]) |
| Total Trades | =COUNTA(TradeLog[Trade Date]) |
| Winning Trades | =COUNTIFS(TradeLog[Net P&L], ">0") |
| Losing Trades | =COUNTIFS(TradeLog[Net P&L], "<0") |
| Win Rate | =Winning / Total |
| Total Net P&L | =SUM(TradeLog[Net P&L]) |
| Average Win | =AVERAGEIFS(TradeLog[Net P&L], TradeLog[Net P&L], ">0") |
| Average Loss | =AVERAGEIFS(TradeLog[Net P&L], TradeLog[Net P&L], "<0") |
| Profit Factor | =SUM(Wins) / ABS(SUM(Losses)) |
| Average Days Held | =AVERAGE(TradeLog[Days Held]) |
| Monthly Income | =SUMIFS(TradeLog[Net P&L], TradeLog[Close Date], ">="&start, TradeLog[Close Date], "<="&end) |
Strategy Breakdown
Create a summary table comparing each strategy type:
| Strategy | Trades | Win Rate | Total P&L | Avg P&L | Avg Days |
|---|---|---|---|---|---|
| Covered Call | =COUNTIFS(Strategy, "Covered Call") | ... | ... | ... | ... |
| Cash-Secured Put | =COUNTIFS(Strategy, "Cash-Secured Put") | ... | ... | ... | ... |
| Credit Spread | =COUNTIFS(Strategy, "Credit Spread") | ... | ... | ... | ... |
Use SUMIFS and AVERAGEIFS with the Strategy column as the criteria to populate each row.
Monthly Income Chart
Create a pivot-style summary of monthly options trading income:
- Add a helper column: =TEXT(CloseDate, "YYYY-MM")
- Use SUMIFS to total Net P&L by month.
- Create a bar chart showing monthly income over time.
This visualization quickly reveals whether your income is growing, shrinking, or staying consistent.
Using MarketXLS Formulas for Options Analysis
MarketXLS provides powerful functions specifically designed for options traders managing income strategies.
Analyzing the Option Chain
=QM_GetOptionChain("AAPL")
This function returns the full option chain including:
- Strike prices
- Expiration dates
- Bid and ask prices
- Last traded price
- Volume and open interest
- Implied volatility
Use this to identify the best strikes and expirations for your next income trade. High open interest and tight bid-ask spreads indicate liquid contracts that are easier to enter and exit.
Evaluating Greeks
=QM_GetOptionQuotesAndGreeks("AAPL")
This returns option data including the Greeks (Delta, Gamma, Theta, Vega) for each contract. For income strategies, key Greeks to monitor are:
- Theta — The daily time decay you earn as an option seller. Higher theta means faster premium decay in your favor.
- Delta — Your directional exposure. For covered calls, aim for 0.20-0.35 delta. For cash-secured puts, similar range.
- Vega — Your exposure to volatility changes. As a seller, you benefit when volatility decreases.
Constructing Specific Option Symbols
When you need to track a specific contract:
=OptionSymbol("MSFT", "2026-02-11", "C", 412.50)
Returns: @MSFT 260211C00412500
Then get the current price:
=QM_Last("@MSFT 260211C00412500")
Monitoring the Underlying
Always track the underlying stock price alongside your options:
=Last("AAPL") → Current stock price
=Last("MSFT") → Current stock price
Risk Management for Options Trading Income
Options trading income strategies are not risk-free. Proper risk management is essential to long-term profitability.
Position Sizing Rules
- Maximum position size — Never allocate more than 5% of your portfolio to a single underlying.
- Maximum portfolio exposure — Keep total options exposure (capital at risk) below 30-50% of portfolio value.
- Diversification — Spread trades across multiple sectors and underlying stocks.
Managing Losing Trades
When a trade moves against you, have a plan:
- Rolling — Close the current position and open a new one at a later expiration and/or different strike. Record both legs in your trade log.
- Stop-loss — Close the position if the loss reaches 2× the premium received.
- Assignment — If assigned on a cash-secured put, you now own the stock. Record the cost basis as strike price minus premium received.
Tracking Risk in Your Spreadsheet
Add a risk summary section to your dashboard:
| Metric | Formula |
|---|---|
| Total Capital at Risk | =SUM of capital at risk for all open positions |
| Portfolio Allocation | =Total Capital at Risk / Portfolio Value |
| Largest Single Position | =MAX of individual position risk |
| Number of Underlyings | =COUNT of unique tickers in open positions |
Tax Considerations for Options Trading Income
Options trading income has specific tax implications that your tracker should help you manage. The following is general information — consult a tax professional for advice specific to your situation.
Short-Term vs. Long-Term
- Options held for less than one year generate short-term capital gains, taxed at your ordinary income rate.
- Most income strategies (selling monthly or weekly options) produce short-term gains.
Recording Tax-Relevant Data
Your trade log should capture:
- Proceeds — Premium received (this is your sale proceeds for tax purposes).
- Cost basis — Cost to close the position (0 if expired worthless).
- Holding period — Date opened to date closed/expired.
- Wash sale flag — If you sell at a loss and re-enter a substantially identical position within 30 days.
Assignment Tax Treatment
When a cash-secured put is assigned:
- The put premium reduces your cost basis in the acquired stock.
- The holding period for the stock starts on the assignment date.
When a covered call is assigned:
- The call premium is added to your sale proceeds.
- Your gain/loss is calculated from your stock cost basis to (strike price + premium received).
Export for Tax Filing
Create a summary tab that aggregates:
- Total short-term gains
- Total short-term losses
- Net short-term gain/loss
- Number of transactions
This can be exported to CSV for import into tax software.
Building Your Monthly Options Trading Income Report
Create a monthly report template that summarizes your activity:
Monthly Summary
| Metric | Value |
|---|---|
| Month | January 2026 |
| Trades Opened | 12 |
| Trades Closed | 10 |
| Premium Collected | $3,450 |
| Close Costs | $620 |
| Net Income | $2,830 |
| Win Rate | 80% |
| Average Days Held | 28 |
| Capital Deployed | $85,000 |
| Monthly Return on Capital | 3.3% |
| Annualized Return on Capital | 39.9% |
Outcome Breakdown
| Outcome | Count | % |
|---|---|---|
| Expired Worthless | 7 | 70% |
| Closed Early (Profit) | 1 | 10% |
| Closed Early (Loss) | 1 | 10% |
| Assigned | 1 | 10% |
Best and Worst Trades
Highlight the best and worst trades of the month for review. Understanding why certain trades worked and others did not is key to improving your strategy.
Advanced Tracking Features
Rolling Trade Chains
When you roll an option (close one and open another), link the trades together:
Add a "Chain ID" column to your trade log. All rolls of the same original position share the same Chain ID. This lets you calculate the cumulative P&L of the entire chain, not just individual legs.
Implied Volatility at Entry
Record the implied volatility when you open each trade. Over time, you can analyze whether entering at higher IV levels produces better results:
=QM_GetOptionQuotesAndGreeks("AAPL")
Extract the IV for your specific strike and expiration at the time of entry.
Dividend Awareness
If you sell covered calls, be aware of ex-dividend dates. Use MarketXLS to track:
=DividendPerShare("AAPL") → Annual dividend per share
=DividendFrequency("AAPL") → How often dividends are paid
Selling calls just before an ex-dividend date increases assignment risk for in-the-money calls.
Earnings Calendar Integration
Selling options through earnings is risky due to volatility expansion. Track earnings dates and flag any open positions with upcoming earnings in your dashboard.
Comparison of Options Income Tracking Methods
| Feature | Manual Spreadsheet | Brokerage Reports | MarketXLS Excel Tracker |
|---|---|---|---|
| Customization | Full control | None | Full control |
| Live data | Manual entry | Delayed | Real-time via formulas |
| Strategy analysis | Build your own | Basic | Build your own + formulas |
| Tax reporting | Build your own | 1099 only | Build your own |
| Option chain data | None | In platform | =QM_GetOptionChain() |
| Greeks monitoring | None | In platform | =QM_GetOptionQuotesAndGreeks() |
| Cost | Free (your time) | Included with broker | MarketXLS subscription |
| Portability | Excel file | Locked to broker | Excel file |
Frequently Asked Questions
How do I calculate my options trading income win rate?
Divide the number of profitable trades by the total number of closed trades. In your trade log: =COUNTIFS(Net_PnL, ">0") / COUNTA(Close_Date). A win rate above 70% is typical for well-managed income strategies.
Should I track options trading income by underlying or by strategy?
Track both. Your trade log should include both the underlying ticker and the strategy type. Use SUMIFS and pivot tables to analyze income from both perspectives. Some stocks may be better for covered calls while others work well for cash-secured puts.
How do I handle rolled options in my tracker?
Record each leg as a separate trade with a shared Chain ID. The original trade is closed at the cost to buy it back. The new trade is opened with its own premium. Your total P&L for the chain is the sum of all legs.
What is a good target for monthly options trading income?
This depends entirely on your capital base, risk tolerance, and market conditions. Many income-focused options traders target 1-3% monthly return on capital at risk. Track your actual results in your spreadsheet and let the data guide your expectations.
Can I automate my options trading income tracker with MarketXLS?
Yes. MarketXLS formulas like =QM_Last(), =Last(), and =QM_GetOptionChain() automatically pull live data into your spreadsheet. The manual part is entering your trade details (open/close dates, premiums, etc.), but the market data and position monitoring are fully automated.
How do options trading income strategies perform in bear markets?
Covered call writers benefit from premium income but face losses on the underlying stock. Cash-secured put sellers may get assigned at prices above the current market. Credit spread sellers face higher assignment risk. Track your performance across different market environments to understand how your strategy behaves in each.
Getting Started with MarketXLS for Options Income Tracking
Building a comprehensive options trading income tracker is straightforward with MarketXLS. The add-in provides real-time option chain data, individual contract pricing, Greeks, and underlying stock prices — all the data you need to monitor and manage your income strategy.
- Visit MarketXLS.com and explore the pricing plans.
- Download and install the MarketXLS add-in.
- Use =QM_GetOptionChain(), =OptionSymbol(), and =QM_Last() to build your live dashboard.
- Start recording trades and tracking your options trading income today.
Disclaimer: None of the content published on marketxls.com constitutes a recommendation that any particular security, portfolio of securities, transaction, or investment strategy is suitable for any specific person. The author is not offering any professional advice of any kind. The reader should consult a professional financial advisor to determine their suitability for any strategies discussed herein.