Evaluate · tax-loss harvesting

Automated tax loss harvesting: how to test the harvester

Automated tax loss harvesting fails in two directions: it misses losses it should have taken, and it takes losses the wash sale rule then disallows. Two SEC cases put numbers on both. This guide turns them into a test any firm can run on a harvester before relying on it, and shows how Model Portfolio Rebalancing's tax checks are tested the same way.

Updated · 12 min read

Automated tax loss harvesting is software that scans taxable accounts for positions trading below cost, sells them to realize the loss, and replaces them with similar but not substantially identical holdings, so that the loss can offset gains while the portfolio's exposure stays roughly the same. Testing it means counting two different failures separately: harvests it should have made and did not, and harvests it made that the wash sale rule disallows. The SEC has sanctioned one firm for each: at Wealthfront, at least 31% of accounts in its harvesting program had wash sales it said it was preventing; at Betterment, coding errors and undisclosed changes cost over 25,000 accounts about $4 million of potential tax benefits. Botminds' Model Portfolio Rebalancing applies its tax checks to every sale a model change needs, household-wide, and an independent Checker re-runs every proposal before a person can approve it.

The cases are quoted from the SEC's own orders; both were settled, and their findings are not binding on anyone else. Product figures come from the solution's fictional sample firm, Quillfield Private Wealth. Nothing here is tax advice.

Ten test cases a tax-loss harvester should pass, each from a failure on the record

  1. A rebalance buys the harvested security back within 30 days

    Wealthfront: wash sales occurred or were permitted "including client directed transactions or rebalancing the client’s portfolio".

  2. The client places their own trade in the same security

    The same Wealthfront finding: client-directed trades were outside the check.

  3. A second strategy in the same account holds the same fund

    Betterment: a third-party model portfolio beside its own used overlapping ETFs.

  4. The client’s IRA or Roth IRA buys it

    IRS Publication 550 lists the IRA and Roth IRA purchase; Rev. Rul. 2008-5 denies any basis step-up there.

  5. The spouse buys it, in any account

    Publication 550: a spouse’s purchase is also a wash sale.

  6. The account has an unusual title, such as a joint trust

    Betterment: a coding error disabled harvesting for over 600 accounts titled as joint trust accounts.

  7. The client enabled harvesting in one system but another does not know

    Betterment: two databases did not interface for at least 150 accounts, which were not scanned until the error was fixed.

  8. The scanning schedule changes

    Betterment: daily scanning became alternate days in January 2016 while disclosures still said daily.

  9. The replacement is close to identical

    Same index, different share class or wrapper: the firm’s list of pairs it treats as substantially identical is applied.

  10. The harvest threshold is applied as written

    A loss just under and just over the firm’s threshold, such as $1,000 and 10% in the sample firm.

Test cases ours; failures from the SEC orders In re Wealthfront Advisers (Advisers Act Release 5086, December 2018) and In re Betterment (Release 6288, April 2023), and IRS Publication 550. Each case should be run on synthetic accounts with a known right answer.Source: SEC Release IA-5086; SEC Release IA-6288

What automated tax loss harvesting does

It turns market declines into deductions without changing the portfolio's risk much. FINRA's 2016 report on digital advice defines it as "a method to reduce capital gains tax exposure by selling one or more securities that can generate tax losses to offset capital gains", adding that "Typically, securities that are sold are replaced with securities that provide similar market exposure" (FINRA, Report on Digital Investment Advice, March 2016). The SEC's Betterment order describes the machinery: positions "are scanned to identify unrealized investment losses", and an eligible ETF "is sold and replaced with a closely correlated ETF with similar exposure" (SEC order, In re Betterment, 2023).

The value is real but bounded. Harvested losses offset realized gains first; beyond that, Publication 550 caps the deduction against other income at "$3,000 ($1,500 if you are married and file a separate return)" a year, with the rest carried forward (IRS Publication 550). And because the replacement is bought at the lower price, its basis is lower too: much of the benefit is deferral. The SEC's investor bulletin on robo-advisers puts it plainly: "The value of tax loss harvesting can depend on your particular tax situation in a given year" (Investor.gov, Robo-Advisers).

How is tax loss harvesting not a wash sale?

By making sure nothing substantially identical is acquired, anywhere the rule looks, in the 30 days before or after the loss sale. The replacement security has to be different enough, and every other purchase by the client, the client's IRA and the client's spouse has to be checked too. Publication 550 gives the test for "substantially identical" only in general terms: "you must consider all the facts and circumstances in your particular case", and "Ordinarily, stocks or securities of one corporation are not considered substantially identical to stocks or securities of another corporation."

For funds the IRS has published no list, so the harvester's pairs are a policy choice the firm should write down and be able to defend. The behaviour the rule exists to stop is well documented: in Finland, Grinblatt and Keloharju found investors "buy back the same stocks they recently sold, with a repurchase rate that depends on the size of the capital loss" (NBER Working Paper 8745, published in the Journal of Financial Economics, 2004). A harvester is an engine for doing exactly that, minus the identical buy-back, so its replacement rules are where an examiner will look first.

Two SEC cases, and what each one measured

Wealthfront promised a check it had not built. From October 2012 to mid-May 2016, its harvesting white paper said that "Wealthfront monitors all the accounts it manages for each client to avoid any transactions that might trigger a wash sale." The SEC found the statement false: the software "was not programmed to monitor all the accounts it manages", and wash sales occurred "including client directed transactions or rebalancing the client’s portfolio" (SEC order, In re Wealthfront Advisers, December 2018). The firm consented to a censure and a $250,000 penalty (SEC press release 2018-300).

Betterment's problems were the opposite kind: harvests that should have happened and did not. Its scanning frequency was cut from daily to alternate days without telling clients; a design constraint stopped harvesting for clients who held two strategies; and two coding errors switched harvesting off for accounts whose owners had switched it on. "Collectively, these issues adversely impacted the value of TLH for over 25,000 client accounts, and as a result, clients lost approximately $4 million dollars in potential tax benefits." The civil penalty was $9 million (SEC order, In re Betterment, April 2023).

Two harvesters, two kinds of failure, in the SEC's numbers

31%

of accounts in Wealthfront’s harvesting program, at least, had some wash sales, Oct 2012 to mid-May 2016

2.3%

of tax losses harvested for Wealthfront clients were represented by wash sales, 2014–2016

25,000

Betterment accounts at least, "over 25,000" in the order, whose harvesting value was hurt

$4M

approximate potential tax benefits those Betterment clients lost

SEC orders In the Matter of Wealthfront Advisers, LLC (Advisers Act Release No. 5086, December 21, 2018) and In the Matter of Betterment LLC (Release No. 6288, April 18, 2023). Both settled without admitting or denying the findings.Source: SEC Release IA-5086; SEC Release IA-6288

Where the Betterment losses came from

The Betterment order is the closest thing on the public record to an error budget for a harvester, because it breaks the $4 million down by cause. Each cause is a different test a firm can run, and none of them is a wash sale.

Betterment: potential tax benefits lost to each failure the SEC found

Scanning cut from daily to alternate days, undisclosed
≈ $1.9M · ≈ 25,000 clients
Two coding errors switched harvesting off
≈ $1.1M · 700+ accounts
Undisclosed constraint for clients on two strategies
≈ $1M · 3,200+ accounts
SEC order In re Betterment LLC, Advisers Act Release No. 6288 (April 18, 2023), paragraphs 12, 17 and 21. The order's total is 'approximately $4 million' across 'over 25,000 client accounts'; account counts overlap between causes.Source: SEC Release IA-6288

Read the second bar closely. One coding error caused two client databases "to not interface properly" for certain accounts, so "for at least 150 accounts, TLH was disabled although clients had enabled it", for nearly three years. Another disabled harvesting for "over 600 client accounts that were titled as joint trust accounts". Neither would show up in a test that only checks whether harvests are correct; both show up in a test that checks whether every enrolled account was scanned.

Count missed harvests and triggered wash sales separately

The two failures have different causes, different victims and different fixes, so an accuracy test that blends them into one score hides both. A missed harvest is a loss that met the firm's own criteria and was not taken: the client paid more tax than the program promised. A triggered wash sale is a loss that was taken and then disallowed: the client got a deduction on paper that the return cannot use, and, if the replacement landed in an IRA, may never get.

The two errors an automated tax-loss harvester makes

Missed harvestTriggered wash sale
What happened

Missed harvest: An eligible loss was not realized.

Triggered wash sale: A realized loss was disallowed by a purchase within 30 days.

Typical cause

Missed harvest: Accounts not scanned, scanning too infrequent, constraints that switch harvesting off.

Triggered wash sale: Purchases the harvester does not see: rebalances, client trades, other strategies, IRAs, spouses.

Measured as

Missed harvest: Value of eligible losses not harvested, by account and by day.

Triggered wash sale: Share of harvested losses disallowed, and share of accounts with any wash sale.

The SEC case

Missed harvest: Betterment, 2023: about $4 million over 25,000+ accounts.

Triggered wash sale: Wealthfront, 2018: 31%+ of enrolled accounts; about 2.3% of losses harvested.

Fixed by

Missed harvest: Coverage tests: every enrolled account, every scheduled scan.

Triggered wash sale: Household-wide purchase checks, 30 days back and forward.

Our framing of the two failure types, using the SEC orders' own measures.

A good test reports four numbers: the share of enrolled accounts actually scanned on each scheduled day; the value of eligible losses missed; the share of harvested losses later disallowed; and the share of accounts with any wash sale. The last two are the measures the SEC itself used for Wealthfront, which makes them easy to explain to a compliance committee.

How to run the test: four measures, and how to get each

MeasureHow to compute itWhat a bad result means
Scan coverageEnrolled accounts scanned on each scheduled day ÷ enrolled accountsAccounts silently left out, as in Betterment’s coding errors
Missed-harvest valueLosses above the firm’s threshold on scan days that were not harvested, replayed from historyClients paid tax the program said it would save
Wash-sale share of lossesHarvested losses disallowed ÷ harvested losses, household-wideThe harvester cannot see purchases the rule counts
Accounts with any wash saleAccounts with at least one disallowed harvest ÷ enrolled accountsThe failure is systematic, not a one-off
Our method. Replay the harvester on a past year of real positions and household purchases, including held-away IRAs and spouse accounts, and compare its trades with a reference computed by hand on a sample.

How often should a harvester scan accounts?

Often enough to catch the losses the program promises, and exactly as often as the disclosure says. Betterment cut scanning from daily to alternate days in January 2016 because of trading volume; the SEC found it "did not perform any contemporaneous analysis to evaluate the potential impact of the change on clients", and that "Reducing TLH’s scanning frequency can reduce the benefit of the service, depending on a number of client and market specific factors" (SEC order, 2023). About 25,000 clients lost about $1.9 million in potential tax benefits from that change alone.

The lesson is less about the right frequency than about change control. Any change to a harvester's schedule, thresholds or constraints changes what clients get, and should trigger the same test before it goes live and a check that the disclosures still match. The Betterment order records that the firm later required "annual review of its product disclosures involving both the compliance function and subject-matter experts such as software engineers".

Is tax-loss harvesting worth it?

For a client with realized gains or a high tax rate, usually; for a client in the 0% capital gains bracket, or whose accounts are mostly tax-deferred, little or nothing. The benefit is the tax deferred, at the client's rate, for as long as the lower basis is carried. A harvester that also triggers wash sales hands part of that back; one that misses harvests never delivers it. That is why the honest pitch for automated harvesting is a tested one: so many losses taken, so much of it allowable, so many accounts covered.

How Model Portfolio Rebalancing's tax checks are tested

Botminds' Model Portfolio Rebalancing is not a stand-alone harvester; its Tax agent applies the firm's tax rules to every sale a model change or drift run needs, which is where most household wash sales start. In the sample firm those rules are settings: avoid wash sales across the household, taxable, IRA and held-away accounts included; harvest losses over $1,000 and 10%; skip tax logic for IRAs and tax-exempt trusts; realize short-term gains only inside an account's gain budget, and above it only with a portfolio manager's approval.

The harvesting threshold and household wash-sale rule in Model Portfolio Rebalancing, as settings

Admin and settings, Bands and tax. Tax rules: avoid wash sales across the household (taxable, IRA, held-away); avoid short-term gains unless inside the account's gain budget; lot order losses first, then long-term, highest cost; harvest losses over $1,000 and 10%; skip tax logic for IRAs and tax-exempt trusts; realize short-term gains above budget only with a PM's approval. A note: changes to an agent, its model or its instructions go through a change request that compliance approves, and are replayed on past model changes first.
Model Portfolio Rebalancing, fictional sample firm settings. A change to the tax rules or the agents is replayed on past model changes before it applies: the change control Betterment's order found missing.

Every proposal is checked twice. The Checker re-runs each proposed portfolio on a second model, independently, against every rule, band and list, and an open disagreement blocks its group from approval. On the sample change, wash sales avoided in 87 accounts kept $418,600 of losses allowable and the group created none; one of those households had a purchase in a spouse's IRA at another custodian, which the household test walks through.

The tax group on one model change: why each account differs

Model change MC-2026-118, Balanced Growth 60/40. Tax lot adjusted, 87 accounts, Tax agent: Arclight was bought here on 1 October, 19 days ago; selling older loss lots would be a wash sale, so the Tax agent sells the 1 October and long-term lots and holds the 2025 loss lots; losses kept allowable $418,600; 84 bought Oct 1 here, 3 through a spouse's IRA; ready for approval, $128.4M, 174 orders. Beside it, the Checker reports a disagreement resolved on another account.
Model Portfolio Rebalancing on the fictional sample firm. The test cases above are the ones to replay on a group like this before relying on it; the figures are sample data, not a measured result.

A firm evaluating it should run the ten test cases on its own past changes, with its own households and held-away data, and count the four measures. The same discipline applies to which lot the agent picks and to any rebalancing software under evaluation.

Questions people ask

What is tax loss harvesting software?

Software that scans taxable accounts for unrealized losses, sells eligible positions and buys similar replacements. FINRA's 2016 report lists tax-loss harvesting among the core activities of digital advice tools, alongside rebalancing; the SEC's Betterment order describes an algorithm that scans positions and replaces a sold ETF with "a closely correlated ETF with similar exposure".

What is the wash sale rule in tax-loss harvesting?

A loss is disallowed if substantially identical securities are acquired within 30 days before or after the sale, by the client, the client's IRA or Roth IRA, or the client's spouse, per IRS Publication 550. A harvester must therefore check purchases across the household, not just in the account it is harvesting.

What can go wrong with automated tax loss harvesting?

Two things: missed harvests and disallowed ones. The SEC found both: wash sales in at least 31% of one robo-adviser's enrolled accounts, and coding errors, an undisclosed scanning change and undisclosed constraints that cost another's clients about $4 million.

How much tax loss can you deduct in a year?

Harvested losses first offset capital gains; any net loss beyond that can reduce other income by up to $3,000 a year ($1,500 if married filing separately), per Publication 550. The rest carries forward to later years.

Does tax-loss harvesting work in an IRA?

No: sales inside an IRA have no tax effect, so there is nothing to harvest. An IRA can still spoil a harvest elsewhere, because an IRA purchase within 30 days of a taxable loss sale is a wash sale and the loss is not added to the IRA's basis.

Model Portfolio Rebalancing.
See it on your own files.

An agentic solution from Botminds. Agents propose model-driven rebalancing trades within each account's restrictions; PMs approve Book a demo, or explore how it works.