Premium collected vs realized P&L in covered calls

You sell covered calls. Credits land in the account, your spreadsheet adds them up, and the total keeps growing. That total is the most misleading number in an options-income workflow, because it mixes three things that behave completely differently: money that is settled and yours, money that is still at risk, and money you already gave back to close positions.

This guide works one ordinary covered-call roll by hand and splits the total into the three numbers that actually matter. Every figure is auditable with the arithmetic shown.

Three definitions, used consistently

These are the exact definitions the yourfinance engine uses. The labels matter less than using some fixed set of definitions consistently — most spreadsheet errors come from switching definitions mid-ledger.

The worked example: one roll

A made-up ticker, DEMO. You own 300 shares. Standard equity options, multiplier 100. No fees, to keep the arithmetic bare (your ledger should include them).

The same scenario the yourfinance read-only demo replays.
Step Action Cash Status Realized P&L
1 Sell to open 3 calls, strike 22.00, credit 0.60/share
3 × 100 × 0.60
+180.00 Open —
2 Buy to close those 3 calls at 0.10/share (the first half of a roll)
3 × 100 × 0.10
−30.00 Settles step 1 +150.00
3 Sell to open 3 replacement calls, strike 23.00, credit 0.80/share, 30 days later
3 × 100 × 0.80
+240.00 Open —
Totals +390.00 net cash +150.00

Now split the sheet total the way the definitions demand:

Gross premium collected 420.00 180.00 + 240.00 — every opening credit
Realized option P&L 150.00 180.00 credit − 30.00 closing debit, settled
Open premium at risk 240.00 the replacement call has not settled

A sheet that sums credits reports 420.00 of “income.” What you actually have is 150.00 realized and 240.00 still exposed to the market for another month. If DEMO runs past 23.00, some or all of that 240.00 goes back — and the 420.00 figure will have overstated your result by nearly three times.

The one-sentence version: a roll is two transactions, not one magic credit. The closing debit settles the old leg (realizing its P&L), and the new credit opens a brand-new risk.

Why the mistake survives in spreadsheets

  1. Credits are events, settlement is a state. Rows record what happened; almost nobody maintains a column for whether each leg has settled, so the sheet cannot distinguish 150 realized from 240 open.
  2. Rolls get netted. “Rolled for a 2.10 net credit” collapses a settlement and a new opening into one row, and the realized 150.00 disappears into it.
  3. Month boundaries lie. A credit collected in August on an option expiring in September is not August income under any settled-only definition.

Do it in your own sheet

The worksheet below is the three-row ledger from this guide as a CSV template: one row per option event, with a status column for open/settled and a realized_pnl column that is only ever filled on the row that settles a leg. The three totals fall out of it directly:

Download the premium ledger worksheet (CSV) Pre-filled with the example above. Replace the rows with your own legs.

What this method does not mean

  • It is not tax accounting. Tax treatment of option premium varies by jurisdiction and often disagrees with strategy accounting. Keep the books separately and give your tax preparer the raw ledger.
  • It is not a performance claim. The 420/150/240 example is demo data on a made-up ticker, chosen because the arithmetic is easy to audit — not because the trade is good, typical, or recommended.
  • “Realized” here means realized option P&L. Stock P&L from assignment or shares being called away is tracked separately and is not in these numbers.
  • The example omits fees. Real ledgers must subtract option fees inside realized P&L, per the definition.

See the same roll in the product

The yourfinance read-only demo replays exactly this scenario — gross premium next to realized, raw basis next to adjusted — in the real application, in your browser, with nothing to install.

Run the interactive demo