How much did you make selling options last month?
Most sellers answer with the premium they collected. It is the easiest number to find and the best one to say out loud. I sell the wheel too, and for years my spreadsheet had a proud little column for it. That column was lying to me.
Premium collected ignores two things. It ignores what you later paid to close positions, and it ignores the capital you had to lock up to earn it. ROCAR accounts for both.
The question ROCAR answers
ROCAR stands for return on capital at risk. It answers one question. What return am I earning on the capital I put at risk to sell these options?
Every option you sell ties up money. A cash-secured put reserves the cash to buy shares at the strike. A covered call commits shares you already paid for. That capital is working the whole time the position is open, whether the trade goes well or badly. ROCAR measures what that capital earned you.
Why premium collected flatters you
Say you collect $250 selling puts in a month. The trade moves against you and you buy the contracts back for $90. The premium column still says $250. You kept $160.
Now the second problem. That $250 did not appear out of thin air. You had to hold enough cash to take assignment if it came. A return needs a denominator. $250 on what?
Skip either correction and the number gets rosier. Skip both and you are quoting yourself a fantasy.
The formula
Two inputs. Both are stricter than they sound.
What goes in the numerator
The numerator is your net realized P&L. Premium you collected goes in. Premium you paid on buybacks comes out. If an assignment cost you money, that loss is in there too. Only realized money counts, so a paper gain on an open contract adds zero.
What counts as capital at risk
The denominator depends on the strategy, because the capital works differently in each one.
- For a cash-secured put, capital at risk is the strike times the number of contracts times 100. That is the cash you set aside to buy the shares if you get assigned.
- For a covered call, it is the cost basis of the shares backing the contracts. Those shares are committed while the call is open, and the money you paid for them is the capital doing the work. When the cost basis is unavailable, OMM falls back to the current share price.
- For a position that has already closed, OMM uses the strike times contracts times 100 as the proxy.
A worked example
The numbers here are made up to keep the math easy.
You sell two cash-secured puts at the $50 strike and collect $1.25 per share, so $250 in premium. Your capital at risk is $50 × 2 contracts × 100 shares, which is $10,000. Three weeks later you buy both contracts back for $0.45 per share, $90 in total.
Realized P&L is $250 minus $90. You kept $160.
ROCAR is $160 divided by $10,000, times 100. That is 1.6% for the period.
Compare that with the number most sellers quote. Premium collected over the same collateral would read 2.5%. The gap between 2.5% and 1.6% is the gap between what you collected and what you kept. On one trade it looks small. Compounded across a year of trades, it is the difference between knowing your strategy works and hoping it does.
One month is one month
ROCAR is a period figure. OMM does not annualize it.
You have seen the screenshots claiming 40% annualized from one good week. Multiply any small number by 52 and it looks heroic. It also assumes you can repeat that trade every week at the same premium, with no assignments and no bad months, forever. Selling options does not work like that. Some months you give premium back.
So OMM shows your average monthly ROCAR over the window you pick. If your average month is 1.6%, that is the number. The compounding daydreams are yours to run. The app will not do the flattering for you.
Where ROCAR shows up in OMM
OMM computes ROCAR from positions that closed in the period, using the trades you record. You see it three ways. At the portfolio level. Split by strategy, so you can tell whether your covered calls or your cash-secured puts are pulling the weight. And per ticker, which is where the surprises live. The name you enjoy trading and the name that earns are often two different tickers.
One formula, computed in one place in the code, so the number on your overview matches the number in your analytics.

If you run the wheel, record your positions in OMM and it does this math for you, next to your dividend income and your honest total return. Then check it against your own spreadsheet. That is how I found out mine was lying.