Execute a complete tax-loss harvesting workflow from candidate identification through post-harvest monitoring. Use when the user asks about finding TLH candidates, gain/loss budgeting, replacement security selection, wash-sale compliance, or harvest execution planning. Also trigger when users mention 'unrealized losses in my portfolio', 'swap ETFs for tax purposes', 'harvest losses before year-end', 'substantially identical security', 'wash-sale window', 'NIIT offset', 'loss carryforward', or ask how much tax they can save by harvesting.
Execute a complete tax-loss harvesting (TLH) workflow from candidate identification through post-harvest monitoring. Provides decision criteria, quantitative thresholds, replacement security selection logic, wash-sale compliance tracking across accounts, and household-level coordination that go beyond the overview in the tax-efficiency skill.
5 — Policy and Planning
both
Scan the portfolio for positions with unrealized losses that meet all three filters:
Before harvesting, build the year-to-date tax budget:
The replacement must maintain market exposure without being "substantially identical":
The wash-sale rule (IRC Section 1091) disallows a loss if a substantially identical security is acquired within the 61-day window (30 days before + sale date + 30 days after):
Translate candidates into an actionable trade list:
Quantify the dollar value of each proposed harvest:
After executing the harvest:
TLH across a household with multiple accounts requires centralized tracking:
| Formula | Expression | Use Case |
|---|---|---|
| Tax Benefit | Benefit = Realized_Loss * Applicable_Tax_Rate | Dollar value of a single harvest |
| Net Tax Alpha | Alpha = Tax_Savings - Tracking_Error_Cost - Transaction_Costs | True value after implementation costs |
| Break-Even Holding Period | T_be = Tax_Savings / (Annual_Tracking_Error_Cost + Annual_Expense_Delta) | How long replacement can be held before costs exceed benefit |
| Wash-Sale Adjusted Basis | New_Basis = Replacement_Purchase_Price + Disallowed_Loss | Cost basis when wash sale is triggered |
| Annual TLH Capacity | Capacity = Portfolio_Value * Expected_Volatility * Loss_Capture_Rate | Estimate of harvestable losses per year |
| Target Harvest Amount | Target = Realized_Gains_YTD + Planned_Gains - Loss_Carryforward - 3000 | Minimum harvest to zero out current-year tax |
Given:
Calculate: Tax benefit, net tax alpha, and break-even holding period for the replacement.
Solution:
Given:
Calculate: Target harvest amount, prioritized trade list, and total tax savings.
Solution:
Given:
Calculate: Wash-sale impact and corrected cost basis.
Solution: