Strasmore Research

Wash Sale Rule and Options: 61-Day Window

Wash sale rule na 61 days, no be 30. See how calls, rolls, deep in the money puts, 1099-B gap, and IRA losses fit affect your tax position.

Wash sale rule no dey allow capital loss when you sell security at loss and acquire another one wey substantially identical inside 61-day window: the 30 days before the sale, the sale day itself, plus the 30 days after. Options enter this rule for two reasons: as replacement wey fit spoil stock loss, and as loss position by themselves. For taxable account, dem no destroy the disallowed loss. E move enter the cost basis of the replacement position and wait there.

This page explain how the mechanics work. E no be tax advice.

Why wash sale window na 61 days, no be 30

Add everything together: 30 days before, plus the sale day itself, plus 30 days after, na 61 calendar days. Na calendar days, no be trading days, and the count continue through weekends and market holidays. The panel below use the last trading session of each month as anchor, then count how many sessions dey inside that month’s 61-day window.

QueryTrading sessions wey fit enter 61 day wash sale window na how many
The exact SQL behind every number
WITH sessions AS
(
    SELECT DISTINCT date AS d
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2023-11-01'
),
month_ends AS
(
    SELECT
        toStartOfMonth(d) AS m,
        max(d)            AS anchor
    FROM sessions
    WHERE d >= '2024-01-01'
      AND d <  '2026-07-01'
    GROUP BY m
)
SELECT
    toString(me.m)                                            AS month,
    toString(me.anchor)                                       AS last_session,
    countIf(s.d >= me.anchor - 30 AND s.d <= me.anchor + 30)   AS sessions_in_window,
    61                                                        AS calendar_days_in_window
FROM month_ends AS me
CROSS JOIN sessions AS s
GROUP BY me.m, me.anchor
ORDER BY me.m
Run this yourself

The flat line na the rule’s 61 calendar days. The lower line show how many of those days the market open at all. The first month for the panel get 42 sessions inside its window, the most recent get 42, and the panel cover 30 months of anchors.

The front half of the window na the part wey many people forget. Most people count forward from the sale and mark day 31 on the calendar. But the 30 days before the sale count the same way. If you buy 100 more shares on the 10th while you dey average down, then sell your original lot at loss on the 20th, the purchase wey you already make dey inside the window. The loss on the lot wey you sell becomes disallowed even though you buy nothing afterward. Which lot leave the account matter well here, and na choice you make when you trade: see how cost basis methods pick the lot.

The December problem

Loss harvesting dey cluster for the last weeks of the year, and na there the window arithmetic dey cause the biggest problem. Sale on the final session of the year carry repurchase window deep into January. Buy in January fit disallow loss wey you already report for the previous year’s return.

QueryEvery December session and how far im wash sale window reach enter new year
The exact SQL behind every number
WITH sessions AS
(
    SELECT DISTINCT date AS d
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2025-10-20'
      AND date <  '2026-02-10'
)
SELECT
    toString(sale.d)                                                    AS session_date,
    concat(formatDateTime(sale.d, '%b'), ' ', toString(toDayOfMonth(sale.d))) AS sold_on,
    countIf(s.d >= sale.d - 30 AND s.d <= sale.d + 30)                   AS sessions_in_window,
    greatest(dateDiff('day', toDate('2025-12-31'), sale.d + 30), 0)      AS window_days_in_new_year
FROM
(
    SELECT d
    FROM sessions
    WHERE d >= '2025-12-01'
      AND d <  '2026-01-01'
) AS sale
CROSS JOIN sessions AS s
GROUP BY sale.d
ORDER BY sale.d
Run this yourself

Each row na one December session, fixed to December 2025 so the arithmetic no go change. For sale on Dec 1, 0 of the window’s days fall inside the new year. For sale on Dec 31, 30 of them do, and that window cover 42 trading sessions from beginning to end. December statement no flag anything. The disallowed loss attach to the January shares, and e only become deductible when you finally close that new position. That fit happen the following year or several years later.

Where options enter the wash sale rule

Section 1091 cover stock or securities and, for the same provision, contract or option to acquire substantially identical stock. Congress expand am for 1988 to cover contracts and options to buy or sell. Four things follow for the trading screen:

  • If you buy call on stock wey you just sell at loss, na wash sale by itself. The call na contract to acquire the shares. You no need exercise am, and no strike far enough away to make the rule ignore am.
  • If you sell call at loss and buy the underlying stock inside the window, the same question arise in reverse. The answer depend on the substantially identical standard, no be any published safe harbor.
  • If you write put wey deep enough in the money that exercise look almost certain, dem fit treat am almost like buying the stock.
  • Loss on option na loss on security, and the rule also reach option-to-option replacement.

You fit measure how much stock one contract carry. Delta na the option’s price move for every one-dollar move in the underlying. When you multiply am by 100, e approximate the shares of exposure wey one contract represent. The panel sort AAPL contracts with 20 to 45 days to expiry through June 2026 into 5 bands, based on where the strike sit against the stock, then average delta for each band.

QueryAverage call and put delta by strike distance, AAPL, 20 to 45 days to expiry, June 2026
The exact SQL behind every number
SELECT
    bucket                                 AS strike_vs_spot,
    round(avgIf(delta, delta > 0), 3)      AS call_delta,
    round(avgIf(abs(delta), delta < 0), 3) AS put_delta_abs,
    count()                                AS contract_count
FROM
(
    SELECT
        delta,
        toFloat64(strike_price) / toFloat64(underlying_close) AS mny,
        multiIf(
            mny < 0.85, 'strike 15%+ below spot',
            mny < 0.95, 'strike 5-15% below spot',
            mny < 1.05, 'strike within 5% of spot',
            mny < 1.15, 'strike 5-15% above spot',
                        'strike 15%+ above spot'
        ) AS bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND underlying_close > 0
)
GROUP BY bucket
HAVING countIf(delta > 0) > 0
   AND countIf(delta < 0) > 0
ORDER BY min(mny)
Run this yourself

Read am from left to right. Calls with strikes well below the stock average delta of 0.937. That one dey close to one, so the contract dey track the shares nearly dollar for dollar. Calls with strikes well above average 0.017. Puts move the other way: puts with strikes farthest above the stock average 0.888 in absolute delta, while those with strikes farthest below average 0.015. That right-hand edge na the deep in the money put, a contract wey the writer dey carry almost like long position in the shares. For strike and expiration vocabulary, start with how to read an option chain.

IRS never set a number for “deep enough”. The working standard practitioners use ask whether, when the put dey written, any substantial chance dey say e go expire unexercised. Put for the far-right side of that panel and put for the middle no be the same claim.

Rolling a losing long call

The most common option-specific question get the least settled answer. You own call, e lose value, you sell am and buy another call on the same underlying with different strike or later expiration. The new contract substantially identical to the old one?

Treasury never issue regulations wey define when one option substantially identical to another. Na the honest position. What dey happen in practice na reporting convention: brokers match option positions by contract symbol. So roll to different strike or different expiration normally pass through 1099-B without flag. But convention no be ruling. The statutory standard ask whether the replacement leave you exposed to the same upward and downward moves. Call one strike away with same expiration fit answer that question differently from call six months out and far out of the money.

Two interpretations dey exist. The cautious one treat replacement with near strike and near expiration as exposed. The permissive one treat any change in contract terms as new security. Nobody don test either interpretation to a clear bright line.

What 61 days look like on the tape

Sixty-one calendar days remain abstract until you see am as trading sessions. The panel below show exactly one wash sale window, from December 1 through January 30. Na the full window for loss taken on the last session of December.

QueryOne complete 61 day wash sale window for tape: AAPL, Dec 1 2025 reach Jan 30 2026
The exact SQL behind every number
SELECT
    toString(t.date)                              AS session_date,
    round(t.close, 2)                             AS close,
    round(100 * (t.close / a.first_close - 1), 2) AS change_pct
FROM
(
    SELECT
        date,
        toFloat64(any(close)) AS close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'AAPL'
      AND date >= '2025-12-01'
      AND date <= '2026-01-30'
    GROUP BY date
) AS t
CROSS JOIN
(
    SELECT toFloat64(argMin(close, date)) AS first_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'AAPL'
      AND date >= '2025-12-01'
      AND date <= '2026-01-30'
) AS a
ORDER BY t.date
Run this yourself

Those 61 calendar days hold 42 AAPL sessions. The stock enter the window at close of $283.1 and leave am at $259.48, -8.34% from where e start. Person wey sell on the last December session and want claim the loss need avoid substantially identical exposure through every one of those sessions. The rule turn tax decision into market exposure decision for the whole window.

What your 1099-B know, and wetin e no fit know

Brokers compute wash sales one account at a time and one security identifier at a time: CUSIP for stock and contract symbol for option. Na wetin broker reporting rules require from dem, and e narrower than the law wey your return must follow. Section 1091 apply per taxpayer, across every account. That include spouse accounts and entities wey you control.

The gap cause most of the surprises readers report:

  • Sell at loss with broker A, then buy back inside the window with broker B. Neither 1099-B show wash sale. The taxpayer still get one.
  • Sell stock at loss, then buy call on am in the same account. Whether dem match depend on broker software, no be the statute.
  • Sell at loss in your account, then buy back inside your spouse account. No broker see both sides.
  • Roll losing call to new strike. The identifier change, so the form come back clean. The substantially identical question still remain open.

Treat 1099-B as input, no be final determination. Funds get the same problem in another form because two funds tracking one index na separate securities on paper: selling mutual funds at a loss explain that case.

The one wey never come back: repurchasing inside an IRA

Every ordinary wash sale na deferral. The disallowed loss add to the basis of the replacement position. The old holding period join the new one. The deduction come later, when you close the position for good.

Buying the replacement inside an IRA break that chain. Revenue Ruling 2008-5 hold say loss from taxable account sale becomes disallowed when substantially identical stock or securities are bought inside your IRA or Roth IRA during the window. The basis adjustment get nowhere to land because section 1091(d) no provide a way to increase IRA basis. Nothing carry forward. The deduction disappear permanently.

That difference make IRA the one case wey you need map before the trade, no be when tax time reach. All 61 days apply, and Roth get the same treatment as traditional IRA.

Holding periods and the loss wey move

When loss dey deferred instead of erased, two things move with am. The disallowed amount add to the basis of the replacement shares. The holding period of the position wey you sell add to the holding period of the replacement. That fit make replacement wey you hold for only few days become long term on paper. Holding period arithmetic also control dividend treatment: see the qualified dividend holding period.

One family of contracts dey outside this framework. Broad-based index options dey marked to market at year end under their own regime and split 60/40 between long term and short term. So year-end loss on them settle through that mark, no be repurchase window: why index options are taxed 60/40.

FAQ

Wash sale window na 30 days or 61 days?

Sixty-one calendar days. The rule cover 30 days before the sale, the sale day itself, and 30 days after. If you count only forward from the sale, you miss half of am. Purchase made before the loss sale count as replacement just like later purchase.

Buying call option fit create wash sale?

Yes, when you buy the call inside the window on stock wey you sell at loss. Section 1091 reach contract or option to acquire substantially identical stock, and the wash sale stand even if you never exercise the call.

Wash sale rule apply across two different brokerage accounts?

Yes. Brokers compute wash sales per account and security identifier, while the rule apply to taxpayer across all accounts, including spouse account. Clean 1099-B from each broker no mean say wash sale no happen.

Call with different strike substantially identical to the one I sell?

No regulation answer that question. Treasury never define when one option substantially identical to another. Broker reporting match contracts by symbol, no be by economics, so roll normally show without flag. The exposure standard inside the statute broader than the reporting convention.

Wetin happen if I buy the stock back inside my IRA?

The loss becomes disallowed and e disappear permanently. Revenue Ruling 2008-5 hold say section 1091(d) no provide way to add the disallowed loss to IRA basis. So unlike ordinary wash sale, nothing recover later.

Data notes

Session counts come from the daily record of SPY, wey stand in for the days US equity markets hold regular session. The first panel anchor on the last session of each month and count every session inside the 61 calendar days around am. The December panel pin to December 2025, and the tape panel to December 1 2025 through January 30 2026, so neither one refresh. The delta panel read only contracts with converged implied volatility and non-zero volume, 20 to 45 days to expiry, averaged across June 2026, with strikes bucketed against that day’s underlying close. Front-edge data get ingest lag of one or two days, and na only the rolling monthly panel e affect. None of this na tax advice, and substantially identical determination na facts question wey tax professional need to review completely.


Every panel above come with the SQL wey produce am, so you fit open one and recount the sessions yourself. To map 61-day window across your own dates, ask for am in plain English on the Strasmore terminal.