This page documents material corrections to methodology, calculations, and verifiable facts on OptionIncomeTools. Cosmetic fixes (typos, broken links, layout) are not logged here. For our editorial policy, see editorial policy.
Reporting a correction: email [email protected] with the URL and the specific claim you believe is incorrect.
2026
CALCULATIONMETHODOLOGY
Income Goal Planner: fixed CSP+CC double-count — now uses Sequential Wheel state model
2026-07-18 · Planner · /plan/income/ · severity: high (overstated income)
The Wheel branch of the Income Goal Planner previously summed CSP premium and CC premium in the same cycle when computing expected monthly income ((cspPremium + ccPremium) × 100 × cyclesPerYear / 12). In real wheel mechanics the same capital cannot be short a CSP and short a CC simultaneously — it alternates between a cash state (selling CSPs) and an assigned state (selling CCs). The old formula therefore roughly doubled expected income for a given collateral base.
The default behavior is now Sequential Wheel: expected annual premium = fcash · (cspPremium × 365 / cspDte) + fassigned · (ccPremium × 365 / ccDte), with fcash = fassigned = 0.5 as the baseline steady-state occupancy split. Users who explicitly fund CSP collateral and long-shares capital as separate buckets can pass wheelMode=dual-capital to keep the additive form. Documented in Methodology §9.
METHODOLOGY
Yield denominator now labeled on every percentage — five distinct metrics disambiguated
2026-07-18 · Calculator + methodology · severity: medium
Previously the site printed several yield percentages using the word “yield” without indicating whether the denominator was current market value, user cost basis, or contract strike. These are three legitimate but distinct metrics. Methodology §4 now publishes the full five-metric table (premium yield on current value; premium yield on cost basis; screen yield on strike value; total return if called; annualized screen yield) with explicit formulas. The selected denominator is now visible next to every displayed percentage.
DATA
Risk-free rate: hardcoded 4.5% replaced with live 3-month Treasury CMT (daily refresh)
2026-07-18 · Worker · getEffectiveRfr() · severity: medium
Six math paths in the Worker (Sharpe, Sortino, and multiple backtest / synthetic-price BSM callsites) previously fell back to a hardcoded 0.045 when no environment override was set. The actual 3-month Treasury constant-maturity yield was approximately 3.85% on 2026-07-17. All six callsites now consult a shared getEffectiveRfr(env) helper, which reads the KV-cached daily fetch from handleRiskFreeRate (populated by both request traffic and the daily Cron trigger). The endpoint at /api/rfr exposes rate, convention, observation date, fetch timestamp, and stale/fallback flags. Hardcoded 4.5% is now only a last-resort defensive default when both live and 30-day LKG slots are empty.
REMOVAL
Removed unsupported “15-22% realistic median” and “$400-$1,800 monthly” income projections
2026-07-18 · Income guides · /income/options-income-from-*/ · severity: high (YMYL)
The account-size income guides (all 10 dollar tiers) previously quoted specific realized-return ranges (e.g., “10-30% annualized on average”, “realistic median is 15-22% annualized”, “monthly income of $400-$1,800 is realistic”) without any reproducible study, sample period, or drawdown dataset behind them. Those figures have been replaced site-wide with the disclosure that actual returns vary substantially with underlying selection, market direction, volatility regime, assignment frequency, slippage, and position sizing, and that OptionIncomeTools has not published a reproducible wheel-return study yet. A valid study would require sample period, universe, entry/exit rules, assignment handling, slippage, drawdown, median + distribution, survivorship treatment, and benchmark before any figure could be quoted. Corresponding FAQ JSON-LD updated to match visible copy.
REMOVAL
Removed unsupported “real-world net yields typically run 40-70% of displayed” claim
2026-07-18 · Methodology §4 · severity: medium
Methodology §4 previously stated “real-world net yields typically run 40-70% of the displayed annualized number” without a supporting dataset, period, or strategy-specific evidence. That range has been replaced with a qualitative disclosure: realized returns may differ materially from the annualized screen yield because opportunities may not be continuously available and execution, assignment, underlying-price movement, commissions, and taxes affect results.
The homepage tile, 7 income guides, the Wheel Screener hub, the /learn/options-tools/ index, the Income Planner intro, and both competitor-comparison pages previously advertised a “30 tickers” scan while the underlying Core 54 registry, Worker DEFAULT_TICKERS, and Wheel Score normalization all use 54 tickers. All copy is now reconciled to 54, matching the registry source of truth.
REMOVAL
Fixed residual “live chain”, “live opportunities”, and “live yields” language on homepage + calculators
2026-07-18 · index.html, covered-call.html, cash-secured-put.html · severity: medium
The site-wide “live → delayed” sweep completed in 2026-06 missed a handful of user-visible surfaces: the homepage FAQ + CTA, the CC calculator subtitle + button label, the CSP calculator button label, and two JS-template snippets on the calculator pages. All corrected: chains, screener, and opportunities are consistently labeled as delayed (~15 min via Polygon Options Starter). “Real-time” is reserved for entitled user-connected providers only.
REMOVALMETHODOLOGY
SPY 5-year wheel backtest retracted — no supporting dataset
2026-06-23 · Research · /research/wheel-spy-5year-2020-2025/ · severity: high
The page at /research/wheel-spy-5year-2020-2025/ previously claimed to summarize a "5-year, 10,000-cycle SPY wheel backtest" with specific results by delta and DTE configuration. The supporting dataset did not exist. The page was generated programmatically without a real backtest run.
The page now displays a withdrawal banner, is noindex,follow, and has been removed from the sitemap. The URL is preserved for transparency. A proper replacement is being built as the transparent wheel benchmark study — observations are open for collection, and no return claims will be published until the dataset is sufficient.
This is the first published retraction. The research program now has explicit publication standards (15 requirements, including dataset link, observation count, dispersion/CI, and reviewer) documented at research workflow.
CALCULATIONMETHODOLOGY
Iron condor / iron butterfly expected monthly income now subtracts loss component
2026-06-23 · Income Goal Planner · /plan/income/ · severity: high
The Income Goal Planner previously displayed expected monthly income for iron-condor and iron-butterfly allocations using the formula POP × credit × cycles ÷ 12. This counted only the probability-weighted win component and ignored the loss component, which made borderline-POP setups (≤60%) appear positive when they were actually negative-EV.
The corrected formula is (POP × credit × 100 − (1 − POP) × maxLoss) × cycles ÷ 12. Candidates whose net EV per cycle is non-positive are now rejected and never appear in the allocation. Each defined-risk allocation row now shows the win-EV / loss-EV decomposition for transparency.
The change was prompted by a user-reported case where XLE @ POP 52% and XLF @ POP 49% were being recommended as $4,000+ monthly-income generators despite being negative-EV under honest math.
METHODOLOGY
Iron condor / iron butterfly contract counts now capped by liquidity
2026-06-23 · Income Goal Planner · /plan/income/ · severity: medium
The planner previously sized condor / butterfly allocations using only the capital budget. This produced unrealistic contract counts on illiquid underlyings (the most egregious case was a 990-contract INDA butterfly where the chain showed less than 10 contracts of daily volume per leg).
Contract counts are now capped at min(floor(minOI ÷ 10), 25) for condor / butterfly. Per-ticker capital is also reduced to 5% for these defined-risk strategies (versus 20% for the wheel). Allocations capped by liquidity carry a "⚠ size-capped" badge in the Liquidity column.
Author-experience claims have been standardized to "since 2019" in all marketing and editorial copy. The author began trading options-income strategies in 2019; longer-duration claims appearing on prior versions of certain pillar pages were unsupported and have been removed.
Removed fabricated sameAs URLs from Organization + Person JSON-LD
2026-06-23 · site-wide structured data · severity: high
Seven fabricated social-profile URLs (twitter.com/optionincometools, linkedin.com/company/optionincometools, crunchbase.com/organization/optionincometools, github.com/optionincometools, linkedin.com/in/akashdedhia, twitter.com/akashdedhia, github.com/akashdedhia) were removed from JSON-LD on all 388 pages. None of these profiles exist; including them as sameAs entries was fabricated social proof and has been corrected.
Per the editorial policy, sameAs entries will only be re-added when the corresponding profile is verifiable and owner-confirmed.
EDITORIAL
Replaced "live data", "real-time", and "live opportunities" with delayed-data language
2026-06-23 · site-wide · severity: high
Pages previously described market data as "live" or "real-time". The actual data provider (Polygon Options Starter) delivers quotes delayed approximately 15 minutes during market hours; the application cache then refreshes the snapshot every five minutes. All marketing, hero, CTA, and metadata copy has been corrected to: "Quotes are delayed approximately 15 minutes during market hours and refreshed in the application every five minutes."
EDITORIAL
Replaced ticker-page recommendation verdicts with neutral screening language
2026-06-23 · 70 ticker hubs · severity: high
Programmatically generated ticker hub pages previously used recommendation verdicts including "excellent wheel candidate," "solid wheel candidate," and "many income sellers would be comfortable being assigned." These were unsupported judgments. They have been replaced with model-scoring language ("scores well in our wheel-screening model," "may consider for potential assignment at the right strike").
CALCULATION
Annualized screen yield clearly labeled as a comparison metric, not a forecast
Annualized screen yield (premium ÷ capital at risk × 365 ÷ DTE) was previously displayed prominently without clarifying that it is a screening comparison metric — not a projected annual return or forecast. All indexable surfaces now carry the disambiguation language explicitly. The homepage hero, ticker hubs, and Income Planner each show the formula, calculation type (deterministic), and the explicit "not a forecast or projected annual return" caveat.
EDITORIAL
True 404 status for invalid ticker URLs (was: silent fallback to homepage)
2026-06-23 · routing · severity: high
Requests for unknown ticker symbols (e.g. /ticker/XXXXX/) previously fell back to the generic ticker-dashboard page and returned an HTTP 200 status. This is a soft-404 anti-pattern. The site now returns HTTP 404 with a dedicated 404 page for unknown symbols, via a Cloudflare Pages Function (functions/ticker/[symbol].js and functions/ticker/[[symbol]].js) that validates the symbol against the known-good list and rejects invalid combinations.