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.
- Gross premium collected — every short-option opening credit, before closing debits or fees. A running total of what hit the account.
- Realized option P&L — for options that have settled (expired, assigned, called away, or bought to close): opening credit minus closing debit and option fees. This is the only part that is actually yours.
- Open premium at risk — the opening credit on an option that has not settled. It is not realized P&L. Until that contract expires or is closed, part or all of this credit can be handed back.
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).
| 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:
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.
Why the mistake survives in spreadsheets
- 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.
- 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.
- 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:
- Collected = sum of
cash_effectonsell_to_openrows. - Realized = sum of
realized_pnl. - Open at risk = sum of opening credits on legs whose
statusisopen.
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