A wheel strategy income calculator needs to track four things: premium collected at each stage, adjusted cost basis after assignment, capital deployed over time, and true annualized return accounting for both wins and losses. Here's how to build one from scratch.

The Core Spreadsheet Layout

Your tracker should have two tabs: a Trade Log and a Summary Dashboard.

Trade Log Columns

| Column | What It Tracks | Example | DateTrade entry date2026-01-15 StockTicker symbolAMD ActionSell Put / Sell Call / Assignment / Called AwaySell Put StrikeOption strike price$120 ExpirationOption expiry date2026-02-14 PremiumPer-share premium received$3.20 ContractsNumber of contracts1 Total PremiumPremium × 100 × Contracts$320 StatusOpen / Expired / Assigned / ClosedExpired Close PricePrice paid to close (if rolled or bought back)$0.85 | Net Premium | Total Premium - Close Cost | $235 |

Every trade gets one row. When you get assigned, add a row for the assignment. When shares are called away, add a row for that too.

Key Formulas

Adjusted Cost Basis

This is the formula most people get wrong. Your cost basis isn't just the assignment price — it includes all premium collected since you started wheeling that stock.

Adjusted Cost Basis = Assignment Strike - Total Put Premium Collected - Total Call Premium Collected

Example: You sold three rounds of puts on AMD before getting assigned:

  • Put 1: $2.40 premium (expired)
  • Put 2: $1.80 premium (expired)
  • Put 3: $3.10 premium (assigned at $120 strike)
  • Adjusted cost basis = $120 - $2.40 - $1.80 - $3.10 = $112.70

    That's a much better picture than the raw $120 assignment price.

    True Annualized Return

    The formula that accounts for time and capital:

    Annualized Return = ((Total Net Premium + Stock Gains) / Average Capital Deployed) × (365 / Total Days)

    Where:

  • Total Net Premium = sum of all net premium received
  • Stock Gains = proceeds from called-away shares minus assignment cost
  • Average Capital Deployed = weighted average of capital committed each day
  • Total Days = first trade date to last trade date
  • Monthly Income Tracking

    For each month, sum all net premiums:

    Monthly Income = SUM of Net Premium where month matches

    Then calculate:

    Monthly Yield = Monthly Income / Capital at Start of Month

    Summary Dashboard Formulas

    Your dashboard should show at a glance:

  • Total premium collected (all time): SUM of all Net Premium
  • Total stock gains/losses: SUM of all Called Away proceeds minus Assignment costs
  • Net P&L: Total premium + Total stock gains
  • Current open positions: Filter for Status = "Open" or "Assigned"
  • Capital deployed right now: SUM of all open position notional values
  • Annualized return: Use the formula above
  • Win rate: Count of profitable cycles / Total completed cycles
  • Tracking a Complete Wheel Cycle

    Here's how a full cycle looks in your spreadsheet:

    | Date | Action | Strike | Premium | Net | Running P&L | Jan 5Sell $48 Put$48+$1.30+$130+$130 Jan 19Put expires———+$130 Jan 22Sell $47 Put$47+$1.10+$110+$240 Feb 5Assigned$47——+$240 Feb 8Sell $49 Call$49+$0.90+$90+$330 Feb 22Call expires———+$330 Feb 25Sell $50 Call$50+$1.05+$105+$435 | Mar 14 | Called away at $50 | $50 | — | +$300 | +$735 |

    Cycle summary: $435 in premium + $300 stock gain ($50 - $47) = $735 total profit on ~$4,700 capital over 68 days = 84% annualized for this cycle.

    Of course, not every cycle works this smoothly. Your spreadsheet will also capture the bad cycles where you're underwater for months, giving you an honest picture of performance.

    OptionsPilot automatically tracks your wheel cycles and calculates these metrics, but having your own spreadsheet is valuable for tax preparation and deeper analysis.