Realized return across a price-move scenario sweep
Strike and premium held at your inputs; only the expiry price moves. Each row is one cycle's actual NAV change — not annualized, since a single cycle's outcome doesn't repeat every week.
| Price move | Spot at expiry | Status | Cycle return |
|---|
The quoted APY and the realized APY are two different numbers
For the single-trade payoff behind one cycle, see the covered call and cash-secured put calculators; for the full cash-secured-put → assignment → covered-call cycle, see the wheel strategy calculator. This tool is the vault-level view: what happens to the advertised APY once cap or assignment risk actually shows up.
Why the DOV headline number is a best case, not an estimate
A DeFi options vault — Ribbon Finance's Theta Vault was the template, and dozens of forks now run the same mechanic on Aevo, Friktion-successors and various L2 vault protocols — automates a single trade: sell a short-dated, out-of-the-money option against a deposit every cycle (usually weekly), collect the premium, and roll into the next cycle. The APY shown on the vault's dashboard is that premium rate, compounded as if it repeats every single cycle for a year. It is a real number, but it is a best case: it's only earned in full if every option in the sequence expires worthless, which by construction never happens 100% of the time — the strike is picked to be OTM most of the time, not all of the time.
What actually happens to the vault's NAV each cycle is a payoff, not a rate. For a covered-call vault, NAV at expiry equals the quantity of underlying held, multiplied by whichever is lower — the expiry spot price or the strike — plus the premium collected. When the underlying stays below the strike, that's identical to just holding the asset plus a small premium cushion, and the quoted APY and the realized return are close. The moment the underlying rallies past the strike, the position is capped: the vault still keeps 100% of the premium, but every dollar of upside beyond the strike belongs to whoever bought the call, not the vault. That's an opportunity cost, not a cash loss versus the vault's own starting balance — but it's real underperformance versus simply holding, and it's the reason a bull run is the worst environment for a covered-call DOV's relative return even though the vault rarely shows a negative NAV print from it alone.
Put-selling vaults invert the risk. They hold stablecoins, sell puts, and never give up upside beyond the premium — a rally just means the vault keeps the premium and starts a new cycle. But a crash through the strike gets the vault assigned: it must buy the underlying at the strike price with the collateral it set aside, even though the market price is now lower. From that point the vault's downside is effectively the underlying's downside from the strike, offset only by the premium already collected — which in a fast, deep drawdown is a rounding error against the loss. A handful of weeks of 1-2% premium can be erased by a single cycle that gets assigned into a 30% crash. That asymmetry — small, steady gains most cycles, occasional sharp drawdowns on the cycles that don't cooperate — is the actual risk profile a DOV depositor is underwriting, and it's the gap this calculator is built to show between the number on the dashboard and the number that shows up in the wallet.