Corrections log

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

CALCULATION METHODOLOGY

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.

DATA

Ticker-scan universe count reconciled from 30 → 54 (matches registry Core 54)

2026-07-18 · Site-wide · severity: medium

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.

REMOVAL METHODOLOGY

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.

CALCULATION METHODOLOGY

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.

EDITORIAL

Removed unsupported "since 20 years" / "two decades" author-experience claims

2026-06-23 · site-wide · severity: high

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.

Authoritative bio: see About.

REMOVAL

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

2026-06-23 · homepage + ticker hubs + calculators · severity: medium

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.

EDITORIAL

Noindex on 210 thin ticker strategy-child pages

2026-06-23 ·