# Taxable KISS: after-tax methodology review

September 8, 2026. Research only; production rules, methodology versions, public targets, and Agora contracts are unchanged.

## Recommendation

Do not promote a new timing rule from this test. The most promising direction is a simpler annual concentration review, trimming only meaningful overweights with eligible long-term lots and recycling the proceeds into underweights. Its full-period result is better than annual rebalancing, but the benefit is not robust across starting dates and comes with more Bitcoin exposure.

The valuation chart's moving averages did not establish a reliable advantage. A confirmed 50-week trend rule sacrificed too much return. The 200-week rule moved less often but reacted late and still lagged annual rebalancing in the main test. Gating annual trims with the existing valuation zones added no benefit at all in the primary full-period tax scenario: it produced exactly the same trades as ordinary bands.

The useful immediate improvements are measurement and implementation: evaluate after-tax liquidation wealth, make holding-period checks explicit, recycle excess cash deliberately, and fix the unfinished-month signal boundary. Keep annual rebalancing as the reference strategy while observing the simpler alternative prospectively.

## What the current methodology is doing

The existing methodology (repository record: `taxable-kiss-methodology.md`) prioritizes drawdown reduction and describes its charts as pretax. That differs from the objective in this review: outperform annual rebalancing after tax. A strategy can succeed at reducing drawdowns while failing this return objective.

- Stocks already use a slow trend: two month-end closes below their 10-month average plus a 10% trailing-high drawdown reduce exposure from 60% to 12% of portfolio value. Two month-end closes above restore the stock target.
- Gold stays strategic, with no timing sale.
- Bitcoin uses a daily bearish cloud cross, extension above the 200-week average, and a recovery rule requiring a subsequent 200-week reset. This can keep exposure low through an extended recovery.
- Year-end Bitcoin concentration trims go to cash. The current performance implementation buys again only on a recovery transition; it does not automatically invest the excess cash at the next annual review.
- The public annual-rebalancing benchmark has no transaction-cost charge. The research charges both sides of the comparison the same 10 basis points per actual purchase or sale.
- “Less than one sell decision per asset per year” does not measure turnover or holding periods. One large sale can generate more turnover and taxable gains than several small adjustments.

In the main run, current Taxable KISS averaged **16.50% cash** and **44.42% stocks**, versus annual rebalancing's **0.28% cash** and **57.65% stocks**. It sold only six times, but gross annual turnover was **33.63%**, versus **15.65%** for annual rebalancing. Large stock exits and purchases explain why fewer sales did not mean less trading.

## Test design

The experiment register (repository record: `taxable-kiss-experiment-register-2026-09-08.md`) records the rules and sensitivities. Eleven strategies were tested without a parameter search. Subsequent arithmetic corrections and two additional tax/benchmark diagnostics are separately recorded there.

The full period is **January 2, 2019–September 4, 2026**, beginning after GLDM inception and Bitcoin's 200-week warmup. Each account begins with $100,000, has no contributions or withdrawals, and uses the same strategic 60/30/10 allocation. Timing portfolios initialize from signals already known before inception, so they can begin partly in cash. Each starting-year test opens fresh lots and applies those known states; it does not splice a segment of the original account's basis history.

Prices and distributions come from captured Yahoo daily histories: raw split-adjusted VT and GLDM prices for units and basis, actual VT cash distributions, and direct BTC prices. Stock signals use adjusted VT history. Gold moving-average history uses the existing GLD/GLDM overlap chain. Residual cash earns lagged [DGS3MO](https://fred.stlouisfed.org/series/DGS3MO), less the modeled interest tax. Source dates and SHA-256 hashes are in the results (repository record: `research/taxable-kiss-after-tax-2026-09-08.json`).

Signals use completed observations and fill at the next common portfolio close. The Bitcoin quote is a daily-close proxy rather than a synchronized US stock-market quote. The replay therefore is not an IBIT execution backtest. An additional-close delay is tested. The current-rule control excludes an unfinished final stock month and final Bitcoin week; there are no omitted BTC transitions in the final partial week of this sample.

The main illustrative federal rates are **40.8% on short-term gains and interest, 23.8% on other long-term gains and dividends, and 31.8% on long-term gold gains**. These are constant scenarios, not historical tax-law reconstruction or a personalized rate estimate. The IRS distinguishes holdings of more than one year from shorter holdings and describes ordinary-rate treatment of short-term gains; qualifying taxpayers can also owe 3.8% NIIT. See [IRS capital gains guidance](https://www.irs.gov/taxtopics/tc409) and [NIIT guidance](https://www.irs.gov/taxtopics/tc559). GLDM's physical-gold trust treatment is documented in its [2025 tax statement](https://www.spdrgoldshares.com/media/GLD/file/GLDM/SPDR-Gold-MiniShares-Tax-Data-12-31-25-Final.pdf).

Lots are sold in this order: losses, highest-basis long-term gains, then highest-basis short-term gains if the strategy allows them. Purchase costs enter basis; sale costs reduce proceeds. Taxes are paid from the account at realization. The **LT guard** prohibits discretionary sales of appreciated short-term lots and retries deferred orders at subsequent month ends while still justified. It does not prohibit short-term losses or the separately modeled final liquidation. Specific-lot identification and actual account circumstances remain necessary; see [IRS Publication 550](https://www.irs.gov/publications/p550).

The primary model gives **no loss credits**, netting, or carryforwards. Actual US taxation allows loss offsets subject to applicable rules; this simplification can disadvantage active strategies. An intentionally optimistic immediate-loss-credit sensitivity tests that limitation. Neither case is a complete tax-return model.

## Main results

“Ongoing CAGR” deducts trading costs and taxes already paid. “Liquidated CAGR” additionally sells all remaining holdings at the end, paying their modeled gains taxes and transaction costs. Maximum drawdown measures ongoing daily account value, not a hypothetical liquidation every day. Trade days and sell orders exclude initial purchases and final liquidation. Gross turnover is purchases plus sales divided by account NAV, annualized; it is not half-turnover.

| Strategy | Ongoing CAGR | Liquidated CAGR | Max drawdown | Trade days | Sell orders | Gross turnover / year |
|---|---:|---:|---:|---:|---:|---:|
| Annual rebalancing | 20.17% | 17.70% | −29.47% | 7 | 9 | 15.65% |
| Annual + LT guard | 19.84% | 17.36% | −29.45% | 9 | 10 | 15.26% |
| Buy and hold, annual cash additions | 22.39% | 18.97% | −49.46% | 7 | 0 | 0.56% |
| Current Taxable KISS | 16.12% | 13.81% | −22.87% | 12 | 6 | 33.63% |
| Current + LT guard | 16.12% | 13.81% | −22.87% | 12 | 6 | 33.63% |
| Current + annual cash recycling + LT guard | 16.72% | 14.27% | −23.00% | 15 | 6 | 37.78% |
| BTC cap + cash recycling + LT guard | 21.25% | 18.52% | −32.84% | 7 | 3 | 10.04% |
| All-asset annual bands + LT guard | 21.25% | 18.52% | −32.84% | 7 | 3 | 10.04% |
| 50-week confirmed trend + LT guard | 16.84% | 14.51% | −26.01% | 17 | 8 | 39.91% |
| 200-week confirmed trend + LT guard | 19.90% | 17.24% | −33.38% | 11 | 6 | 11.22% |
| Valuation-gated bands + LT guard | 21.25% | 18.52% | −32.84% | 7 | 3 | 10.04% |

!Account values, drawdowns, annual selling, and starting-year sensitivity (repository record: `research/taxable-kiss-after-tax-2026-09-08.png`)

Annual bands ended with **$438,615** in the account and **$368,127** after liquidation. Annual rebalancing ended with **$409,505** and **$349,151**, respectively. Current Taxable KISS ended with **$314,725** and **$269,694**. The apparent bands advantage falls from $29,110 to $18,976 when the remaining tax liability is paid.

The bands rule extends the existing Bitcoin odds cap to all assets: annual caps of 69.23% stocks, 39.13% gold, and 14.29% Bitcoin. It sells only a breached sleeve down to the cap and uses available after-tax cash to refill strategic underweights. It does not sell other assets just to restore every target. Cash recycling in defensive strategies retains the cash reserve implied by their defensive targets.

Only Bitcoin required band sales in the full-period account. The all-asset rule and BTC-only cap are therefore **not independent confirmations** of an idea. The valuation gate also happened to permit all three sales, producing identical holdings. Its additional moving-average condition has not earned its complexity here.

## What changes in rebalancing

The bands account sold BTC on just three dates:

| Execution | BTC sold | Modeled gains tax |
|---|---:|---:|
| January 4, 2021 | $52,086 | $10,854 |
| January 3, 2022 | $9,015 | $1,961 |
| January 2, 2025 | $32,281 | $7,103 |

It still invested distributions annually, so seven trading days should not be described as three rebalances. Annual rebalancing sold assets in every reviewed year, with nine sell orders in total. Current Taxable KISS generated twelve trading days, including the large stock exit on April 1, 2020 and purchase on August 3, 2020, and a second stock exit on May 2, 2022 followed by recovery buying on March 1, 2023. Full lot-level trade records (repository record: `research/taxable-kiss-after-tax-trades-2026-09-08.json`) include dates, basis, gains, and tax.

The annual benchmark realized **$4,621 of appreciated short-term gains** across the full period. Current Taxable KISS realized only **$55**; all guarded strategies realized zero on discretionary trades. Short-term tax avoidance therefore is not the main reason the current strategy lags. Missing market exposure matters much more in this sample.

Holding periods must use the actual calendar anniversary. An annual rebalance can occur exactly one year after acquisition, when the lot is still short-term. Monthly retries can then impose an unnecessary month-long delay. Allowing the guarded annual benchmark to retry each session raised its liquidated CAGR from **17.36% to 17.67%**, with no appreciated short-term sales. This is an implementation improvement with a clear reason independent of the historical return result.

## Why the full-period winner is not a robust winner

After-liquidation CAGR for accounts started in each January and held through September 4, 2026:

| Start year | Annual | Annual bands | 50-week trend | 200-week trend | Valuation-gated bands |
|---|---:|---:|---:|---:|---:|
| 2019 | 17.70% | 18.52% | 14.51% | 17.24% | 18.52% |
| 2020 | 16.50% | 16.19% | 15.58% | 14.81% | 16.19% |
| 2021 | 12.52% | 11.79% | 13.36% | 10.38% | 11.79% |
| 2022 | 12.76% | 11.55% | 12.98% | 10.40% | 11.55% |
| 2023 | 21.33% | 22.06% | 20.18% | 19.09% | 23.38% |

Bands beat both ordinary and monthly-guarded annual rebalancing in only **two of five** start years. These overlapping tests are not independent observations and do not establish a 40% future win probability.

The site's standard performance history starts in 2020. On that matching starting-year test, current Taxable KISS returned **13.27%**, annual bands **16.19%**, and annual rebalancing **16.50%** after liquidation. The longer 2019 comparison does not overturn the weaker result on the site's own starting period.

Bands also averaged **14.50% BTC**, versus annual rebalancing's **11.96%**, and BTC reached **35.80%** between annual reviews, versus **28.14%** under annual rebalancing. An annual 14.29% review cap is not a continuous risk limit. Buy-and-hold's 18.97% liquidation CAGR came with a 49.46% drawdown and a 59.52% peak BTC weight; it is a useful concentration control, not a free tax-efficiency improvement.

The neighboring parameters do not resolve the uncertainty. At odds multipliers of 1.25, 1.5, and 2.0, ordinary bands returned **17.19%, 18.52%, and 18.68%** after liquidation. Drawdowns deepened from **31.28% to 35.59%** as the bands widened. Choosing the widest band because it won would select more historical Bitcoin risk. For the 200-week trend, one/two/three confirmations returned **16.23% / 17.24% / 17.87%**. The small advantage at three confirmations is insufficient reason to retune the rule. The 50-week neighbors all lagged annual rebalancing substantially.

## Tax and execution sensitivities

These are liquidation CAGRs for the full period; complete metrics are in the results JSON.

| Scenario | Annual | Current | Annual bands | 50-week | 200-week |
|---|---:|---:|---:|---:|---:|
| Zero tax, same costs | 22.21% | 17.59% | 22.78% | 18.99% | 21.48% |
| Moderate federal rates | 19.28% | 15.12% | 20.05% | 16.15% | 18.74% |
| High federal rates, primary | 17.70% | 13.81% | 18.52% | 14.51% | 17.24% |
| Opening lots have 50% basis | 17.08% | 13.43% | 17.92% | 14.10% | 16.59% |
| 25 bp per purchase/sale | 17.64% | 13.74% | 18.46% | 14.40% | 17.18% |
| One additional close of delay | 17.75% | 13.97% | 18.63% | 14.55% | 17.28% |
| All VT dividends at ordinary rate | 17.47% | 13.65% | 18.26% | 14.31% | 17.00% |
| Optimistic immediate loss credit | 17.74% | 14.25% | 18.52% | 15.20% | 17.25% |

The moderate scenario uses 24% ordinary, 15% other long-term/dividend, and 24% gold long-term rates. The low-basis scenario begins with two-year-old positions already sized to the model; it does not include the tax cost of migrating an existing portfolio. The optimistic-loss scenario ignores wash-sale and deduction restrictions and is only a sensitivity. It improves the current strategy's result but does not close its gap.

Bands already outperform in the zero-tax full-period run. Their taxed advantage therefore cannot be attributed entirely to tax management. Concentration, exposure, and the timing of annual purchases also matter.

## Correctness issue found in the existing code

`monthEndRows()` in `src/lib/kiss/taxable.js` takes the last available observation in every month, including the unfinished current month. Calling the production helper on inputs truncated at **March 20, 2020** produces a defensive stock transition dated March 20. The complete historical reconstruction dates the corresponding month-end signal **March 31**, implemented April 1 in this close-fill research. An incomplete month should not satisfy a rule that promises two completed month-end closes.

The weekly helpers similarly treat the final available row of a week as that week's close. For the chart this can be a useful live preview, but a preview must not be consumed as a completed-week allocation signal. Separate provisional chart observations from actionable completed-period observations, with explicit as-of dates. Add a regression test comparing daily truncated inputs with the eventual full history at completed boundaries. This review documents the issue; it does not silently change the published methodology or rebuild history.

## Limits and next steps

The available common history is short, dominated by a few Bitcoin cycles, and has been inspected before. It contains neither a 1970s inflation episode nor the 2000 or 2008 stock bears with these actual holdings. The [prior stock-proxy study](/research/studies/taxable-kiss-stock-research.md) can inform tail-risk discussion, but it is not an after-tax 60/30/10 validation and should not be combined into a claimed long Bitcoin backtest.

VT distributions are credited on ex-date because the captured provider data lacks payable dates. Qualified-dividend fractions, foreign tax credits, and dividend-specific holding periods are not reconstructed; the ordinary-rate sensitivity tests one side of that uncertainty. Gold fund expenses are reflected in prices, but the taxable internal bullion sales and associated basis adjustments are omitted; those are described in the [GLDM FAQ](https://www.spdrgoldshares.com/media/GLD/file/GLDM/GLDM-FAQs-December-2025.pdf). State taxes, tax brackets over time, complete Schedule D netting, wash-sale basis adjustments, contributions, gifts, withdrawals, and investor behavior are outside this model. Taxes are paid immediately rather than on an investor's actual estimated-tax schedule.

Proposed next steps, in order:

1. Make after-tax ongoing and liquidation wealth, turnover, appreciated short-term sales, and concentration standard research metrics. Keep the public account-independent chart labeled pretax.
2. Fix completed-period signal handling and make an account's anniversary-aware lot guard explicit. A permanent blanket prohibition on short-term gains can leave a defensive target unfilled; the account needs a stated policy for that risk.
3. Observe the BTC-cap-plus-cash-recycling rule alongside annual rebalancing prospectively, with its current 1.5 odds multiplier frozen. The all-asset extension has too few actual non-BTC trades here to claim separate validation. Record full targets and decisions as they occur.
4. Treat cash recycling within the current method as an operational improvement worth considering, not a demonstrated solution to the return gap: it raised liquidation CAGR from 13.81% to only 14.27%.
5. Keep 50-week/200-week values as context for now. Do not add valuation gates or tune confirmations to this sample. Before promotion, extend account-specific tax modeling and decide whether the extra concentration and drawdown from wider bands are acceptable.

## Reproduction and validation

```sh
node scripts/test-taxable-kiss-research.mjs
node scripts/analyze-taxable-kiss-after-tax.mjs
node scripts/test-taxable-kiss.mjs
node scripts/test-valuation-charts.mjs
```

The commands above use the frozen input archive and do not require network access or a local provider cache. To collect a new capture separately, run `node scripts/collect-taxable-kiss-research-inputs.mjs`. The collector reuses cached full public Yahoo responses and the existing research DGS3MO history, stripping all provider headers. `--network` refetches Yahoo; `--rates=PATH` accepts another captured research input containing `fred.dgs3mo`. Recaptured data may have revisions and a different hash. The exact sanitized input for this run is archived in the frozen inputs (repository record: `research/taxable-kiss-after-tax-inputs-2026-09-08.json`), with the original bytes preserved to match the result’s SHA-256 hash. Daily account paths (repository record: `research/taxable-kiss-after-tax-daily-2026-09-08.json`), results, the full trade ledger, and the chart are also preserved under `docs/research/`. Source metadata retains the original capture locations as provenance; reproduction uses the archived inputs. The collector writes new captures to `.cache/taxable-kiss-research/inputs.json`; pass that path explicitly to the analyzer to use a new capture instead of the archive.

The chart uses Matplotlib 3.11.1. To regenerate it in a fresh checkout:

```sh
python3 -m venv .cache/taxable-kiss-research/plot-venv
.cache/taxable-kiss-research/plot-venv/bin/pip install matplotlib==3.11.1
.cache/taxable-kiss-research/plot-venv/bin/python scripts/plot-taxable-kiss-research.py
```

Validation passed: hand-calculated self-financing rebalancing, explicit next-close delay, calendar holding periods including leap years, loss/gain lot ordering, cost-basis arithmetic, gold taxation, distributions, forced liquidation, zero discretionary short-term gains for guarded strategies in all rate scenarios, and completed-signal prefix checks at three historical cutoffs. Existing Taxable KISS and valuation-chart tests also passed. No production source files or package dependencies changed.
