Can one taxable household get a calibrated interval for its direct-indexing tax benefit, in milliseconds, in place of an average?
Read the paper on SSRN ↗ CiteKey results
- On 150 held-out configurations the amortized posterior matches a 1,500-path reference to a normalized 1-Wasserstein distance of 0.06 and a median error of 2.7 basis points.
- Raw intervals were overconfident; after a one-parameter temperature recalibration at T=1.34, stated 50, 80 and 90 percent intervals cover at 50, 80 and 91 percent.
- Inside quintile bins of every input the raw network fails 9 of 9; the global temperature fails 2 of 9, and a conditional temperature raises worst-bin coverage from 0.875 to 0.903.
- Integrating volatility and dispersion out of the conditioning set widens the median configuration's 90 percent interval by a factor of 1.31.
- Retraining under four seeds moves posterior medians by 2.5 basis points, about the size of the method's own error.
Summary
An average that fits almost no one
Ask how much tax-loss harvesting through direct indexing is worth and the usual reply is a range: roughly 0.5 to 2 percent a year, front-loaded, higher in volatile and dispersed markets. That range comes from averaging over many accounts and many market histories. It answers the field's question well. It answers a particular household's question badly.
Why? Because the benefit hinges on things that differ from one household to the next, among them the ordinary tax rate, the horizon, whether there are outside gains to shelter, and how the account will eventually be unwound. Picture someone with no outside gains who plans to sell everything at the end; harvesting may do almost nothing for them, or slightly worse once the bigger embedded gain it leaves behind is counted. Someone else, with short-term gains arriving every year and a step-up exit, might get several times the headline figure.
So we ask for the whole distribution of one household's after-tax benefit, given what is known about it. As far as we know the tax-aware literature has not framed the benefit this way before.
Training once, answering in milliseconds
We wrote a forward simulator of a harvesting account holding 80 names. Nine inputs drive it: seven describe the household and two describe the market, its volatility and its dispersion. The market path is random, so a fixed set of inputs yields a random benefit. You could rerun the simulator a few thousand times every time someone asks, which is accurate and slow. Instead we trained one mixture-density network on simulated pairs. Afterwards the posterior for any new household comes out of a single forward pass, and Figure 1 shows the median across a grid of horizons and outside gains without a single fresh simulation.
Speed matters here. A 1,500-path reference takes 0.45 seconds per household; the network needs 1.6 milliseconds for a median and a 90 percent interval, roughly 270 times faster.
Is it right, though? On 150 held-out configurations the network sits a normalized 1-Wasserstein distance of 0.06 from the slow reference, with a median error of 2.7 basis points a year (Table 2, Figure 2). A nearest-neighbour mixture baseline scores 0.347 and 11.6. Figure 3 overlays whole densities, skew included.
Coverage, overall and segment by segment
As first trained, the intervals were too narrow. Table 3 shows the problem: a stated 90 percent interval covered 0.84 of outcomes, and the 50 percent interval covered 0.45. One temperature parameter, T=1.34, widens them. After that the 50, 80 and 90 percent intervals cover at 0.50, 0.80 and 0.91, and Figures 4 and 5 show the calibration before and after.
Averages can hide things. Promise too much to one kind of household and too little to another, and the book as a whole may still look fine. To check, we cut the evaluation set into quintile bins of every input, 600 points per bin, and tested each bin against a critical value of 0.055 (Table 5, Figure 6). Before the fix all 9 of 9 inputs had a failing bin. Every miss leaned the same way, toward overconfidence, with worst-bin coverage between 0.815 and 0.840. With the global temperature in place only 2 of 9 fail, which is about what chance produces. We also fitted a conditional temperature with ten parameters; it narrows the spread of worst-bin coverage from 0.875 to 0.932 down to 0.903 to 0.930.
Here is what that looks like for two of the profiles in Table 4. The Foundation household has $300k taxable, few outside gains and a partial liquidation planned, and its median is 22 bps/yr with a 90 percent interval from -5 to 25. Compare the Legacy household, with $5M, high dispersion and a step-up exit: median 80 bps/yr, interval 52 to 92.
Without a market forecast
The main model conditions on a forecast of volatility and dispersion. Some people will not want to commit to one. We therefore trained a companion model that averages over market regimes instead. For the median configuration the 90 percent interval widens from 36 to 48 bps/yr, a factor of 1.31. The profiles also move. Legacy drops from 80 to 70 with an interval of 35 to 90, and Foundation rises from 22 to 24 with an interval of 3 to 30, because each had been priced against a particular regime.
What we would not lean on
Everything above is calibrated to the simulator. Its tax model is stylized, and if that model is wrong the intervals will be wrong with confidence; no coverage test run against the same simulator could reveal it. That is where we would work next, with a real lot-level tax engine.
Retraining under four seeds moves posterior medians by 2.5 basis points, about the size of the method's own error. Push dispersion to 45 to 65 percent, outside the training range, and 90 percent coverage slips from 0.91 to 0.82, so the fit worsens gradually once it leaves the range it learned from. All of it runs offline from a fixed seed on a laptop, with no proprietary data.
Who this is for: Researchers working on simulation-based inference, and CPAs, tax professionals and journalists who meet direct-indexing claims in their work.
Figures
Tables
| Input | Symbol | Range | Reading |
|---|---|---|---|
| Horizon (years) | H | 3 – 25 | planning horizon |
| Ordinary rate | τST | 0.30 – 0.45 | short-term / income marginal rate |
| Long-term rate | τLT | 0.15 – 0.28 | long-term capital-gains rate |
| Market vol | σm | 0.10 – 0.24 | annual systematic volatility |
| Dispersion | δ | 0.15 – 0.45 | annual idiosyncratic volatility |
| Outside gains | Gann | 0.00 – 0.15 | annual gains to shelter / portfolio |
| Short-term share | gST | 0.00 – 1.00 | fraction of gains that are short-term |
| Wash disallowance | w | 0.00 – 0.40 | fraction of harvested loss disallowed |
| Terminal forgiveness | f | 0.00 – 1.00 | embedded gain forgiven at exit |
| Metric | Amortized MDN | numpy kNN-GMM |
|---|---|---|
| 1-Wasserstein to gold (median, στ units) | 0.063 | 0.347 |
| KS to gold sample (median) | 0.131 | n/a |
| Posterior-median error (mean abs., bps/yr) | 2.7 | 11.6 |
| Rank corr. of medians vs gold (Spearman) | 0.995 | n/a |
| Nominal central level | 50% | 60% | 70% | 80% | 90% | 95% |
|---|---|---|---|---|---|---|
| Empirical coverage, raw | 0.45 | 0.54 | 0.63 | 0.74 | 0.84 | 0.91 |
| Empirical coverage, recalibrated | 0.50 | 0.60 | 0.71 | 0.80 | 0.91 | 0.96 |
| Client | Median | 90% interval |
|---|---|---|
| Foundation ($300k taxable, few outside gains, part-liquidation) | 22 bps/yr | -5 to 25 |
| Advanced ($3M, large short-term outside gains, liquidation exit) | 60 bps/yr | 39 to 77 |
| Legacy ($5M, high dispersion, step-up exit) | 80 bps/yr | 52 to 92 |
| Recalibration | Aggregate KS | Worst-bin KS | Inputs with a bin over the critical value | Worst-bin 90% coverage, range across inputs |
|---|---|---|---|---|
| none (T=1) | 0.040 | 0.072 | 9 of 9 | 0.815 – 0.840 |
| global T=1.34 | 0.020 | 0.057 | 2 of 9 | 0.875 – 0.932 |
| conditional Tη(x) | 0.023 | 0.062 | 2 of 9 | 0.903 – 0.930 |
| Client | Conditioned: median (90% interval) | Marginal: median (90% interval) |
|---|---|---|
| Foundation | 22 (-5 to 25) | 24 (3 to 30) |
| Advanced | 60 (39 to 77) | 55 (24 to 71) |
| Legacy | 80 (52 to 92) | 70 (35 to 90) |
Abstract
Advisors sell tax-loss harvesting with a brochure number. "Direct indexing adds roughly one to two percent a year" is true on average and close to useless for a particular household, because the realized benefit depends on that household's bracket, horizon, outside gains, exit plan, and the volatility of the market it happens to live through. This paper replaces the brochure number with a calibrated distribution. We build a forward simulator of a direct-indexing harvesting account whose inputs are the client-and-market characteristics an advisor already collects, and we train one amortized posterior estimator, a mixture-density network, that maps those characteristics to a full posterior over after-tax benefit. Inference for a new client is a single forward pass of a few milliseconds rather than a fresh Monte-Carlo run. On 150 held-out configurations the amortized posterior matches a slow 1,500-path reference to a normalized 1-Wasserstein distance of 0.06 and a median error of 2.7 basis points, and after a one-parameter temperature recalibration its stated 50, 80 and 90 percent credible intervals cover at 50, 80 and 91 percent. Calibration is then audited where the aggregate test cannot see: within quintile bins of every conditioning input. The raw network fails that audit in all nine directions at once, always on the overconfident side; the single global temperature survives it with exceedances at the level chance would produce, and a log-linear conditional temperature narrows the worst client segment's 90 percent coverage from 0.875 to 0.903. We also quote the price of humility about the market itself: integrating volatility and dispersion out of the conditioning set, so the interval no longer leans on a regime forecast, widens the median client's 90 percent interval by a factor of 1.31 while recentring clients whose assumed regime was extreme. Retraining under four seeds moves posterior medians by 2.5 basis points, so the fit itself is not the fragile step. The framing, an amortized posterior over after-tax value conditioned on the client, lets a firm hand each investor an interval it can defend rather than an average it cannot.
Keywords: tax-aware investing, direct indexing, tax-loss harvesting, after-tax alpha, simulation-based inference, amortized posterior, mixture density network, simulation-based calibration, uncertainty quantification, wealth management
How to cite
Majumdar, A. (2026). Amortized Tax Alpha: Simulation-Based Inference for the After-Tax Value of Direct Indexing. SSRN Working Paper No. 7316618. https://ssrn.com/abstract=7316618
@techreport{majumdar_amortized_tax_alpha_sbi,
author={Majumdar, Anirban},
title={Amortized Tax Alpha: Simulation-Based Inference for the After-Tax Value of Direct Indexing},
institution={SSRN},
number={7316618},
year={2026},
url={https://ssrn.com/abstract=7316618}}