Free primer: wash sale and the $3,000 cap. One number: harvest calculator. A gain you meant to take is the capital-gains calculator — do not rebuild it here. Paid steps are the order: which lots, which substitute, which accounts are inside the 61 days, and when to stop. They are not a second essay on those three pages.
Do this in order
Export the lots before you click sell. Broker report, one row per lot: ticker, acquired date, quantity, cost basis, the price you type today, unrealized dollars, and whether the lot is more than one year old. Sort by loss dollars, not percent. A price you paste from a headline is not a lot. This page does not scrape quotes.
Split harvest from exit. A harvest is a loss on something you still want to own, replaced the same day. An exit is a position you are done with. Circle only the harvests. Selling a stock you should not have bought is a sale. It does not need a substitute, a 31-day reunion, or this checklist.
Write the gains you already locked, including the ones you did not click. Two columns: short-term and long-term. A December mutual-fund capital-gains distribution is a realized gain. So is the winner you sold in March. The harvest is aimed at those columns, not at “the market was red.”
Name the substitute the same afternoon, in your own words. One line per harvest: sell this, buy that, why it is not substantially identical. A total-market ETF to a different total-market ETF is the usual taxable cousin. A single-stock loser becomes a sector fund only if you still want the industry; otherwise buy nothing. “Same index, different ticker” is a facts-and-circumstances sentence you have to be willing to defend. Do not leave the substitute for after the sell.
Map the 61 days before the order. IRC §1091(a): the window begins 30 days before the sale and ends 30 days after. Treas. Reg. §1.1091-1 calls that the 61-day period. It includes shares you already bought, a DRIP, and a contract or option to acquire substantially identical stock or securities. Count those lots first. A harvest into a purchase you made on day −12 is already a wash.
IRAs and a spouse’s account are inside that window. IRS Publication 550 (2025) lists acquiring substantially identical stock for your IRA or Roth IRA as a wash, and it says a purchase by your spouse or a corporation you control is one too. Revenue Ruling 2008-5: the taxable loss is disallowed, and your basis in the IRA or Roth IRA is not increased. The loss does not come back later inside the IRA. Turn off automatic buys in every account that can see that ticker, for 31 days after the sale, and look 30 days back.
Specific identification, instructions in before the trade. Tell the broker which lot. Highest basis first when the point is the loss. Default FIFO can sell the cheap shares you meant to keep and leave the loser on the books. A screenshot of the lot ID is the record. “I think I sold the right one” is not.
Stop when the bucket you need is full. IRC §1211(b): a net capital loss offsets ordinary income only up to $3,000 ($1,500 if married filing separately). The rest carries forward; it is not deleted. You do not have to liquidate the account to feel thorough. Short-term gains are the expensive bucket. Do not spend a long-term loss solely to offset long-term gains that are already inside the 2026 0% band (Rev. Proc. 2025-32: taxable income through $49,450 single, $98,900 married filing jointly, $66,200 head of household). In that band the federal long-term offset is worth $0 this year. Use the loss on ordinary income, or carry it.
Worked lots — typed prices, not a quote. Already realized: short-term gain $1,500, long-term gain $800. Harvest A: 40 shares, basis $180 ($7,200), typed price $142 ($5,680), long-term loss $1,520. Harvest B: 20 shares, basis $95 ($1,900), typed price $61 ($1,220), short-term loss $680. Schedule D keeps character. Short-term loss $680 eats short-term gain. Long-term loss eats the $800 long-term gain and then $720 of what is left of the short-term gain. Leftover short-term gain: $100. At 24% ordinary, 15% long-term, and 5% state — rates you type, not a scraped table — tax saved versus not harvesting is $566: $680 × 29% = $197.20, $800 × 20% = $160, $720 × 29% = $208.80. No ordinary-income slice. No carryforward. If you do not want the stock’s exposure, B is an exit, not a harvest, and you only run A.
Prove the single number in the calculator before you believe a vibe. The harvest tool does not keep short-term versus long-term character. It applies the one loss you type to short-term gains, then long-term gains, then the §1211 cap. Its own defaults — loss $4,200, short-term gains $1,500, long-term gains $2,000, ordinary 24%, long-term 15%, state 5%, cap $3,000 — offset $1,500 / $2,000 / $700, carry $0, tax saved $1,038. Change only the filing status and the inputs to loss $8,000, short-term $1,000, long-term $1,000: the $3,000 cap saves $1,360 and carries $3,000; married filing separately ($1,500 cap) saves $925 and carries $4,500. The $435 gap is $1,500 × 29%. A mismatch with your sheet means the bucket you typed is wrong. It does not mean the Code moved. The capital-gains calculator is the gain. Do not net a loss in it.
December 20, not December 31. And do not launder a coin through this file. Settlement and “was it substantially identical” do not belong on New Year’s Eve. If you want the original ticker back, the earliest buy is day 32. IRC §1091 is stock or securities. IRS Notice 2014-21 treats convertible virtual currency as property, so the statute’s text does not name a coin held directly. On September 16, 2026 the House Ways and Means Committee advanced a bill that would extend wash-sale limits to many digital assets. It is not law on September 30, 2026. Do not harvest a coin as if it were a share, and do not treat the headline as the rule.
January is the close, not a new plan. Match every 1099-B lot to the sheet. A disallowed wash should have moved into the replacement shares’ basis — except the IRA case in step 6, where Revenue Ruling 2008-5 says the basis does not move and the loss is gone. Hard stops: buying the same ticker in any IRA inside the window, harvesting inside a 401(k) (no 1099-B; that trade is not a harvest), a $200 loss that exists to feel busy, two substitutes you cannot explain, and raising lifestyle with a refund you have not computed. The freed attention after the sheet balances goes to April’s return, not to a new position on December 30.
One-page decision
Export lots. Separate harvests from exits. Write the gains already realized. Name a substitute you can defend, then check 30 days back and 30 days forward in the taxable account, the IRA, and a spouse’s account. Specific-ID the high-basis lot. Stop at the bucket you need: §1211(b) allows $3,000 against ordinary income, $1,500 if married filing separately. On the labeled lots — $1,520 long-term and $680 short-term against $1,500 short-term and $800 long-term already booked — character netting leaves a $100 short-term gain and saves $566 at 24% / 15% / 5%. The calculator’s own defaults save $1,038 and use $700 of the $3,000 ordinary cap. An $8,000 loss against $1,000 and $1,000 of gains saves $1,360 at the $3,000 cap and $925 at the $1,500 cap. Trade by December 20. Read the 1099-B in January. Educational, not a quote and not tax advice.