How Mutual Fund Cost Basis Works for Loss Sales
If you sell mutual fund at a loss, cost basis dey include reinvested distributions. Learn how tracking method and wash sale rule fit affect your capital loss.
Selling mutual funds at a loss fit turn paper decline to realized capital loss. Na the cost basis set how big the loss go be, no be the price wey you remember say you pay.
Basis include every distribution wey the fund reinvest for you. The tracking method for the account — average cost or specific share identification — fit change the figure wey go enter your Form 1099-B.
Wetin follow na how the mechanics work under US federal rules as of August 2026. E also cover the wash sale trap wey automatic reinvestment fit cause, even when you no place any order at all.
Wetin dey happen when you sell mutual fund at a loss
Mutual fund order no dey fill at price wey you fit see when you place am. Dem price am at the next net asset value wey the fund calculate once every day after market close. The figure wey you sell at go settle hours after you make the decision (when mutual fund orders actually trade explain how that timing dey work).
Once the shares comot from the account, the loss don realize. The calculation na proceeds minus cost basis. Paper decline no dey affect tax return. Realized loss first offsets capital gains. After that, e fit offset up to $3,000 of ordinary income for US federal filer that year. Any balance wey remain go carry forward.
Holding period dey determine the type of loss. If you hold am more than one year, na long term loss. If you hold am one year or less, na short term loss. Mutual funds get one extra rule wey stock investors rarely face. For shares wey you hold six months or less, dem treat the loss as long term to the extent of any long term capital gain distribution wey you receive on those shares, under Internal Revenue Code section 852(b)(4).
Wetin dey really inside your cost basis?
Basis na the money wey you put inside plus every dollar wey the fund reinvest for you. Every distribution wey dem reinvest na purchase: new shares for that day price, with their own basis and their own holding period clock. Investor wey count only the cash wey e wire go understate basis. This one go overstate gain and understate loss.
How much dem go add depend on how often the fund dey pay. Every cash distribution wey dem record for one group of index and income funds during the twelve months reach June 30, 2026:
The exact SQL behind every number
SELECT ticker,
count() AS distributions,
round((max(ex_dividend_date) - min(ex_dividend_date)) / (count() - 1), 0) AS avg_days_between,
round(sum(cash_amount), 3) AS total_per_share_usd
FROM global_markets.stocks_dividends
WHERE ticker IN ('JEPI', 'QYLD', 'BND', 'AGG', 'SCHD', 'VNQ', 'VTI', 'VOO', 'SPY')
AND ex_dividend_date >= toDate('2025-07-01')
AND ex_dividend_date <= toDate('2026-06-30')
AND cash_amount > 0
GROUP BY ticker
HAVING count() > 1
ORDER BY avg_days_between ASCAGG make 12 distributions across the year, with average gap of 30 days, and total of $3.928 per share. For the other end of the panel, SPY pay 4 times, with 91 days between payments, $7.525 per share. Exchange traded funds na wetin the public record cover. Mutual fund schedule dey for its own statements and its 1099-DIV, and the basis arithmetic na the same. Actively managed funds too dey distribute realized capital gains, usually for December. Capital gain distribution wey dem reinvest add basis the same way dividend dey add am.
Ten years of reinvested quarterly payments na forty separate purchases. Each one get its own cost and its own clock. The 8-4-3 rule na one popular shorthand for the horizon wey fund investors dey plan around. Every extra year of reinvestment add another rung to the ladder of lots.
Average cost abi specific share identification?
Suppose one buyer put the same dollar amount for US total market fund on the last trading day of every month for one and half years. The panel set that period for 2021 and 2022, so the numbers no dey change. Each month's closing price na one lot, beside the running average cost of everything wey dem don buy reach that point.
The exact SQL behind every number
WITH monthly AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'VTI'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2022-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
)
SELECT formatDateTime(month_start, '%Y-%m') AS month,
formatDateTimeInJodaSyntax(month_start, 'MMMM yyyy') AS month_label,
round(close_price, 2) AS lot_price_usd,
round(avg(close_price) OVER (ORDER BY month_start
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 2) AS average_cost_usd
FROM monthly
ORDER BY month_startBy December 2022, the position get 18 lots for 18 different prices. The last row carry the two figures wey sale depend on: market price of $191.25 against average cost of $213.64. The first lot enter at $226.72 for July 2021.
Average cost dey combine the whole position: total dollars invested, including reinvestments, divided by total shares. Every share wey dem sell reports that same basis. Na the default for many fund companies, and na the method wey easiest to administer.
Specific share identification dey keep the lots separate. Before settlement, the seller writes down which lots to sell and keeps the confirmation. See the same lots, ranked by wetin each one does at the final month's price:
The exact SQL behind every number
WITH monthly AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'VTI'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2022-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
),
sale AS (
SELECT argMax(close_price, month_start) AS sale_price
FROM monthly
)
SELECT formatDateTimeInJodaSyntax(m.month_start, 'MMM yyyy') AS label,
round(m.close_price, 2) AS cost_per_share_usd,
round(s.sale_price - m.close_price, 2) AS per_share_result_usd
FROM monthly AS m
CROSS JOIN sale AS s
ORDER BY per_share_result_usd ASCThe spread na the main lesson. The Dec 2021 lot cost $241.48 per share and comes to -50.23 per share against the sale price. The Sep 2022 lot cost $179.37 and comes to 11.88. If dem sell 100 shares from one end of that ledger, the reported figure go different from selling 100 shares from the other end. Average cost no report either one. E report the blend. The fund and the sale date na the same. But the reported basis no be the same.
The method na an account-level election, not a choice wey dem make when filing. Any change generally applies to shares bought afterwards. The fund company's paperwork controls the process, and the 1099-B states which method produced the reported number.
The wash sale trap wey belong to funds
The wash sale rule no allow loss if person acquire substantially identical securities within 30 days before or 30 days after the sale. Na 61-day window be that, with the sale date for middle. The disallowed amount join the basis of the replacement shares, and the old holding period continue. This one defer the deduction instead of destroying am.
Funds get one extra problem. Reinvestment dey happen automatically and quietly. When distribution go ex inside that 61-day window (the ex-dividend date decide who go receive am) and the account get reinvestment switched on, those new shares na replacement shares. The part of the loss wey match them no go count. Nobody place any order.
Read the cadence panel again with 61 days for mind. Fund wey dey distribute every 30 days on average go put one reinvestment inside almost any window of that length. Quarterly payer wey get 91 days between payments leaves real gaps, but the window still wide enough to catch payment plenty times.
- Partial replacement means say only part of the loss no go count. A $40 reinvestment against a 500-share sale no go disallow the whole loss. E go disallow only the part linked to the shares wey that $40 buy.
- Replacement shares wey person buy inside an IRA na the harsher version. Revenue Ruling 2008-5 disallows the loss without any basis adjustment anywhere, so the deduction disappear instead of being deferred. One taxable account sale paired with automatic reinvestment inside an IRA holding the same fund na the kind case people discover later.
Two index funds fit be substantially identical?
The law talk say “substantially identical,” but nobody don publish clear-cut rule for two index funds wey dey track the same benchmark. Wetin person fit measure na how closely dem dey move together. We compare the daily percentage moves for some broad US equity funds against SPY, for every trading session during the first half of 2026, using basis points of difference. One basis point na one hundredth of one percentage point.
The exact SQL behind every number
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'VOO', 'IVV', 'SPLG', 'VTI', 'RSP')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session_date
),
with_prior AS (
SELECT ticker,
session_date,
close_price,
lagInFrame(close_price) OVER (PARTITION BY ticker ORDER BY session_date) AS prior_close
FROM daily
),
moves AS (
SELECT ticker, session_date, close_price / prior_close - 1 AS daily_move
FROM with_prior
WHERE prior_close > 0
),
benchmark AS (
SELECT session_date, daily_move
FROM moves
WHERE ticker = 'SPY'
)
SELECT m.ticker AS ticker,
round(avg(abs(m.daily_move - b.daily_move)) * 10000, 2) AS avg_daily_gap_bps,
round(max(abs(m.daily_move - b.daily_move)) * 10000, 2) AS max_daily_gap_bps
FROM moves AS m
INNER JOIN benchmark AS b ON m.session_date = b.session_date
WHERE m.ticker != 'SPY'
GROUP BY m.ticker
ORDER BY avg_daily_gap_bps ASCVOO dey 1.44 basis points away from SPY for an average session, while the biggest difference for one session na 32. For the other end of the panel, RSP averages 40.88 basis points of daily difference. All 4 funds hold broad US equity portfolios. The gap between tracking one index and tracking another part of the same market dey show for one column.
None of this answer the tax question by itself. Some ETFs na share classes of the mutual fund itself. VOO and the Admiral shares VFIAX, for example, na two share classes of one Vanguard 500 Index Fund. Na one portfolio wey get two names. Other pairs track the same index from different sponsors. A tax professional must decide based on the facts and circumstances, after checking the documents for your own account. How wey dem dey measure monthly returns explains the measurement side, while dollar cost averaging explains how a regular buyer first builds a ladder of lots.
Mutual funds loss wey you sell: FAQ
Selling mutual fund wey lose money fit reduce my tax bill?
Capital loss wey you realize go first offset capital gains. For US federal filer, up to $3,000 of any loss wey remain fit offset ordinary income for that year, and the balance go carry forward. The amount na proceeds minus basis, and the 1099-B from the fund na the reported record.
Reinvested dividends dey increase my cost basis?
Yes. Every reinvested distribution dey use that day price buy shares, and those dollars dey form part of basis. If you leave them out, you go overstate gain and understate loss. Na this be the most common basis error for fund position wey person hold for long.
Automatic dividend reinvestment fit create wash sale?
Yes. Reinvestment inside the 61-day window na purchase of the same fund. So, the matching part of the loss go become disallowed, even if you no place any order. Fund companies allow you collect distributions as cash instead, and the cadence panel above shows how often the payments dey come.
Wetin be the difference between average cost and specific share identification?
Average cost dey report one blended basis for every share wey dey the account. Specific share identification dey report the basis of the exact lots wey you name before settlement. Across the 18 lots above, the per share results dey range from -50.23 to 11.88. Na this range the blend dey average away.
How long wash sale window dey for mutual fund?
Thirty days before the sale and thirty days after. Na 61 days when you count the sale date itself. E apply across all your accounts. Purchase inside an IRA during that window go disallow the loss permanently under Revenue Ruling 2008-5.
Data notes and jurisdiction
The distribution and price panels dey read exchange traded funds, where every payment and every session price dey public record. Mutual fund price histories and distribution schedules dey with the fund company. The mechanics wey we describe here — basis, holding period, and the 61-day window — apply to both. Prices na regular session closes for Eastern time. The 2021 and 2022 panels dey fixed to past dates, so those figures no dey change when you regenerate them. The tax rules wey we cite na US federal rules as of August 2026, and dem fit change. This page na for education and e no be tax advice. Your own 1099-B and tax professional na the authorities for your position.
Every number above come from stored query over filed distribution records and real session prices. Open any panel to read the SQL, or run the same lot arithmetic on fund wey you hold for the Strasmore terminal.