# KISS allocation-signal review — September 7, 2026

Research recommendation: improve the construction and interpretation of the signals before changing confirmation. Keep the macro layer, investigate a simpler asset-trend model, and strengthen credit and stress evidence. Preserve 60/30/10 strategic maxima and the current confirmation policy during those comparisons. More indicators and faster trading are not objectives in themselves.

Implementation follow-up: the owner authorized this research program. See the [KISS 2.4 construction and signal experiment decision](/research/studies/kiss-2-4-signal-validation.md) for completed changes, measured outcomes, rejected hypotheses, and remaining data dependencies. The recommendations below are the pre-experiment record, not claims that the proposed replacements subsequently succeeded.

This review follows the confirmation and strategy review (repository record: `kiss-strategy-review-2026-09-07.md`). At the owner's request, signal research now precedes that review's proposed confirmation experiment. Neither proposal has been promoted. Production formulas, allocations, JSON contracts, and `kiss-2.3.0` remain unchanged.

## What the performance comparison establishes

The supplied August 19 Macro Voices presentation reports approximately 16% CAGR and a 12% maximum drawdown for hypothetical 42 Macro KISS performance since January 2018. Our current reconstruction starts in 2020. Those are different windows, and the presentation does not disclose sufficient proprietary rules or daily targets to reproduce its result. The source discussion and relevant PDF pages are recorded in the earlier review.

There is also a useful correction to the premise: in the repository's older, date-aligned [2018–2025 comparison](/research/studies/kiss-2018-comparison.md), 42 Macro reported about 17% CAGR and a 13% drawdown; our then-current KISS 2.0 reconstruction returned 11.6% with a 10.4% drawdown. Our reconstruction sacrificed substantial return for a smaller drawdown. The evidence supports investigating excessive defensiveness; it does not establish that 42 Macro dominates our current model on both measures. Different benchmark returns in that comparison also leave instrument, execution, and calculation differences unresolved.

To locate the current tradeoff, I removed each allocation gate separately while retaining production confirmation and the same prices, cash proxy, and simulator. These are deliberately extreme diagnostic controls, not candidate portfolios.

| January 2, 2020–September 4, 2026 | CAGR | Maximum drawdown | Annualized volatility | Rebalance events |
|---|---:|---:|---:|---:|
| Current KISS 2.3 | 15.11% | -8.07% | 9.45% | 144 |
| Remove macro allocation caps; retain sleeve VAMS | 15.02% | -12.07% | 10.77% | 109 |
| Remove sleeve VAMS scaling; retain macro caps | 20.64% | -14.12% | 13.11% | 52 |

In this sample, macro caps provided meaningful drawdown protection with almost no CAGR sacrifice. Sleeve VAMS provided further protection at a substantial return cost. That makes VAMS the highest-priority **model hypothesis**, while signal-construction corrections come first. It does not justify removing VAMS. Its risk protection may be particularly valuable outside this window. Also, the macro calculation itself uses VAMS-derived evidence; the third row removes only the separate sleeve allocation multiplier.

The current row reproduces the saved production snapshot. All 1,678 archived target rows agree with rebuilt asset signals and the existing macro map. Full results, assumptions, hashes, and structural checks are in the research JSON (repository record: `research/kiss-signal-structure-2026-09-07.json`).

These are retrospective, current-methodology reconstructions using already-inspected history, not live returns or untouched holdout results. Macro history is frozen from the snapshot. Source data are current vintage. The simulator assigns trades to the following session but uses prior-close prices before applying the next close-to-close return; this does not establish attainable next-open fills. None of the table establishes that a proposed new signal improves performance.

## 1. Correct signal construction before seeking new predictors

**Preserve neutral evidence in sector participation.** The code counts Bullish sectors among seven ETFs. At least 60% Bullish produces Bullish; at most 40% Bullish produces Bearish. Consequently, seven available Neutral sectors produce a Bearish aggregate. I reproduced this with seven copies of the actual September 4 Neutral gold series. This is a confirmed asymmetry, not an estimate of its historical cost.

A proposed replacement should count positive and negative evidence separately. An initial symmetric rule is Bullish when at least 60% of available sectors are Bullish, Bearish when at least 60% are Bearish, and Neutral otherwise, subject to a separately declared coverage requirement. Missing data must remain unavailable. Freeze that interpretation before examining returns. The present seven-sector universe also omits technology and materials, among others; it should either be explicitly described as a subset or expanded under a consistent historical-universe policy. Do not choose sectors because they performed well recently.

**Remove arbitrary share-price weights from composite baskets.** `averageBasketSeries` averages ETF price levels before taking the long/short ratio. That makes higher-priced shares more influential without an explicit economic weighting decision. In a synthetic example, multiplying EFA's entire history by 100 leaves its own returns and VAMS state unchanged but flips the regional aggregate from Bullish to Bearish. This confirms dependence on price units; it does not prove a particular historical trade was wrong.

Use explicitly weighted return indexes with a fixed rebalancing convention, or aggregate the constituents' individual relative-trend signals. Require invariance to rescaling any constituent's entire price series. Do not merely normalize to a new arbitrary starting date and leave unspecified how weights drift thereafter.

**Resolve the commodity proxy's meaning.** DBC is excluded from `ADJUSTED_PRICE_SYMBOLS`, so its raw ETF close is treated as an economic commodity level. Cash distributions can create price declines unrelated to a deterioration in total-return trend. Use adjusted DBC for an investable commodity trend, or a separately identified commodity index for economic price pressure. Those answer different questions. Audit that choice before changing the commodity vote; do not splice the two concepts without explanation.

**Make time horizons comparable.** On September 4, the 252-observation lookback reaches September 4, 2025 for VT but December 26, 2025 for Bitcoin: 365 versus 252 calendar days. VAMS nevertheless labels these as comparable horizons and uses a 252-day volatility annualizer. Define horizons in elapsed calendar time, then apply the correct observation calendar and annualization convention. Separately define the decision cutoff and the tradable instrument's execution calendar. Bitcoin can inform a weekend decision even when the retirement account's ETF cannot trade.

These are correctness and specification candidates. They should be assessed individually; changing all four and attributing the result to one would obscure the cause.

## 2. Test a simpler interpretation of asset trend

Current VAMS mixes weighted 21/63/126/252-observation returns, realized volatility, a trailing z-score of volatility-adjusted momentum, and five overlapping trend votes. The z-score asks whether momentum is strong relative to that asset's own past momentum distribution. It does not directly ask whether holding the asset is preferable to cash. Positive absolute momentum can have a negative z-score after an unusually strong period. A negative z-score alone does **not** force an exit: the current formula also requires trend conditions and has trend-based overrides.

My preferred first alternative is a transparent multi-horizon excess-return vote. The research rationale is time-series momentum: an asset's own trailing excess return can contain information about its subsequent direction. The foundational evidence covers diversified futures and forwards, not this exact three-asset, long-only portfolio or Bitcoin. It supports investigating the concept, not importing an expected Sharpe ratio. [Moskowitz, Ooi and Pedersen, *Time Series Momentum*](https://www.aqr.com/Insights/Research/Journal-Article/Time-Series-Momentum).

Freeze this first specification before testing its returns:

- Compute trailing total returns over 1, 3, 6, and 12 calendar months, each compared with compounded cash over the same dates. Use only observations available at the decision cutoff.
- Give the four horizons equal votes. Three or four positive excess returns mean Bullish, two mean Neutral, and zero or one mean Bearish. Require all four horizons to be available.
- Preserve the existing 100%/50%/0% sleeve multipliers, macro allocation map, VAMS state memory, and 2-out/5-in target confirmation for this isolated experiment.
- Use the same specification for stocks, gold, and Bitcoin. Resolve calendars explicitly; do not search separate best lookbacks for each asset.

This is a proposed baseline, not an established optimum. The horizons still overlap and are not four independent observations. Long horizons can retain exposure during an abrupt crash; short horizons can whipsaw. Record both failures. Compare with the repository's simple trend baseline as well as current VAMS. If the simpler model fails, retain that result rather than searching thresholds until it wins.

Keep volatility as a risk measurement distinct from directional conviction. A bounded portfolio volatility cap is a later candidate, after the directional model is understood. Combining a new trend rule, volatility scaling, stress veto, and confirmation policy in one trial would make any improvement uninterpretable. A volatility cap can also cut exposure after losses and delay recovery, so it is not automatically a better way to retain upside.

## 3. Improve the macro evidence within existing domains

**Credit is too narrow for the authority it receives.** Four macro domains receive equal weight. The entire credit domain currently consists of the 30-day A2/P2-minus-AA nonfinancial commercial-paper premium. That is a useful short-term funding measure, but it is not a broad measure of corporate default and refinancing risk. One series therefore has as much domain authority as the entire risk-appetite basket.

Research broad high-yield credit spreads alongside the existing commercial-paper measure. Use spread widening and elevated stress levels as distinct features; a tight spread is not itself a reason to sell risk assets. Keep the domain's total weight fixed so adding correlated credit series does not silently increase its influence. Avoid treating HYG/IEF as pure credit: its return also reflects duration and carry.

The earlier removal of ICE OAS was a real data constraint, not an oversight. FRED now limits the ICE high-yield OAS series to three years of observations, and its notes restrict redistribution. A licensed historical feed, including appropriate public-output rights, is the direct route to evaluating that measure across crises. The existing long-history decision (repository record: `kiss-long-history-rebuild.md`) explains why the commercial-paper fallback was selected. [FRED/ICE series notes](https://fred.stlouisfed.org/series/BAMLH0A0HYM2).

**Use stress-specific transformations for volatility.** Applying the same investment-momentum formula to VIX that we apply to VT gives a volatility index the semantics of an asset trend. Test a substitution within the funding domain: trailing VIX stress percentile and change, or VIX relative to its three-month implied-volatility counterpart. Distinguish a persistent high-volatility environment from an abrupt funding shock. Retain MOVE's existing specialized treatment initially. Cboe provides historical volatility-index data; verify coverage and usable rights for each chosen series before replay. [Cboe historical data](https://www.cboe.com/tradable_products/vix/vix_historical_data).

OFR's Financial Stress Index is a useful public comparator or source of domain-specific credit/funding evidence. It combines 33 variables and supplies category contributions, but arrives with a two-business-day lag and can be corrected. Do not add the full composite as another independent vote on top of all its overlapping inputs, or treat it as a same-day crash alarm. [OFR methodology and release timing](https://www.financialresearch.gov/financial-stress-index/).

**Separate real rates from inflation compensation.** A nominal ten-year yield increase can accompany improving growth, rising inflation compensation, or tighter real financial conditions. One signed nominal-rate change cannot distinguish them. Evaluate the ten-year TIPS real yield, alongside the breakeven series already used in dashboard context, as a replacement decomposition inside the rates/inflation domain. Use basis-point changes and economically meaningful levels, rather than percentage momentum on yields. [Federal Reserve ten-year real-yield series](https://fred.stlouisfed.org/series/DFII10).

For gold, real yields and the dollar should inform context or a bounded macro adjustment, rather than become unconditional sell vetoes. Their relationship with gold can change; CME's discussion includes both historical real-rate relationships and their breakdown. The current blanket half-cap for gold in Inflation deserves a separate test once regime construction is settled. Gold's own positive trend should have a clear route to participation. [CME, *Through the Lens of Gold*](https://www.cmegroup.com/articles/2024/through-the-lens-of-gold.html).

**Align classification with the allocation decision.** The current system chooses the largest individual quadrant score, then maps it to risk-on/off exposure. Risk-on evidence can split between Goldilocks and Reflation while one risk-off quadrant wins. For example, scores 50/50/60/0 choose Inflation despite aggregate risk-on scores of 100 versus 60 risk-off. The saved history contains 34 non-Mixed rows where the selected quadrant's risk family disagrees with the summed family evidence, excluding floating-point ties.

That is a design inconsistency to investigate, not proof that all 34 classifications were wrong. Test a hierarchy that first resolves aggregate risk permission, then resolves inflation direction for asset-specific treatment. Normalize evidence carefully; these scores are not probabilities, and some votes support multiple quadrants. Preserve uncertainty when evidence is close. In particular, do not assign high confidence merely because one quadrant beats another while the portfolio-level evidence is nearly balanced.

## Data sources worth evaluating

The first useful expenditure is dependable, correctly timestamped data for a defined hypothesis. Buying more features without a decision rule will not establish an edge.

| Source | Proposed use | Practical constraint and priority |
|---|---|---|
| Existing adjusted ETF prices and a consistent BTC reference clock | Repair baskets, calendars, and trend measurements | Highest priority; archive inputs and corporate-action corrections before seeking extra predictors |
| [ICE high-yield OAS through FRED/source](https://fred.stlouisfed.org/series/BAMLH0A0HYM2) | Broader corporate credit evidence | Strongest paid macro-data candidate; obtain sufficient history and appropriate use rights rather than relying on FRED's three-year window |
| [OFR Financial Stress Index](https://www.financialresearch.gov/financial-stress-index/) | Public stress comparator; credit/funding category research | Publicly accessible, two-business-day delay, revisions; review underlying-data terms before displaying constituents |
| [Cboe historical volatility indexes](https://www.cboe.com/tradable_products/vix/vix_historical_data) | Stress and volatility-term-structure measurements | Verify each index's history, close definition, and permissible use; substitute within the existing domain |
| [Fed real yields](https://fred.stlouisfed.org/series/DFII10) and existing breakevens | Distinguish real-rate pressure from inflation pricing | Low acquisition burden; join on publication availability, not merely the observation label |
| [New York Fed SOFR](https://www.newyorkfed.org/markets/reference-rates/sofr) | Funding-rate dislocations relative to an appropriate policy/reference rate | Useful secondary research; overnight transactions are published the next business morning. Handle quarter ends, benchmark changes, and short live history explicitly ([Fed guide](https://resources.newyorkfed.org/medialibrary/microsites/arrc/files/2019/Guide_to_SOFR.pdf)) |
| [Norgate historical membership data](https://norgatedata.com/data-package-faq.php) | True constituent breadth: share of then-members above trend, including delisted securities | Paid candidate for survivorship-aware research; validate index coverage, platform compatibility, and derived-output rights. Current constituents projected backward are unacceptable |
| [Coin Metrics reference rates](https://gitbook-docs.coinmetrics.io/market-data/reference-rates-overview/reference_rate) | Consistent multi-venue Bitcoin price and an explicit New York cutoff | Evaluate required historical frequency and entitlement; do not assume the free tier supplies the complete desired history |
| [Fed excess bond premium](https://www.federalreserve.gov/econres/notes/feds-notes/updating-the-recession-risk-and-the-excess-bond-premium-20161006.html) | Slow credit-risk-appetite cross-check | Monthly research series with revisions; useful context, unsuitable as a same-day exit trigger |

ETF relative strength is an inexpensive participation proxy, but it is not constituent breadth. RSP/SPY can weaken during profitable mega-cap leadership without forecasting a market-wide decline. Adding true breadth could help distinguish concentrated leadership from widespread deterioration; its incremental value must be measured rather than assumed.

I would defer on-chain valuation, Bitcoin derivative crowding, global-money-supply leads, and machine-learning regime classifiers. They add revision, venue, publication, or model-selection problems before the simpler hypotheses above are resolved. The dashboard can retain economic forecasts and liquidity measures as context. Evidence for diversified macro-momentum strategies is a reason to research fundamental trends, but does not establish a daily exit rule for our three long-only sleeves. [AQR, *A Half Century of Macro Momentum*](https://www.aqr.com/Insights/Research/White-Papers/A-Half-Century-of-Macro-Momentum).

## Availability must be part of the signal

The broad dollar index DTWEXBGS has **daily observations**, distributed through the H.10 release process. It should not be called a weekly-observation series merely because publication is batched. Conversely, joining all those daily values to their observation dates can grant a reconstruction information not yet published. [FRED broad-dollar series](https://fred.stlouisfed.org/series/DTWEXBGS).

For each input, store observation time, publication/availability time, retrieval time, vintage, and transformation convention internally. Preserve the actual live decisions separately from recalculated history. Use vintage data where available; otherwise impose documented release lags and label remaining revision bias. ALFRED's real-time-period API distinguishes historically available data from today's revised history. [FRED/ALFRED real-time periods](https://fred.stlouisfed.org/docs/api/fred/realtime_period.html).

Coverage should reflect missing domain authority as well as missing series counts. Losing the sole credit measure removes an entire 25%-weighted domain while only removing one of sixteen available-input counts. This deserves an explicit uncertainty rule. Missing data should not masquerade as a bearish observation or silently shift the relative influence of other domains.

## A research sequence that limits fitting

1. **Establish the control and data contract.** Freeze the current methodology, source hashes, cutoffs, cash return, costs, instruments, and execution convention. Correct the claim of attainable next-session fills with real next-open data or a conservatively delayed execution sensitivity. Do not rank candidates using a timing advantage unavailable live.
2. **Evaluate construction changes one at a time.** Sector neutrality, explicit basket weighting, DBC convention, and comparable calendars each need their own decision record and invariance checks. Fix economically indefensible behavior because of its meaning, even when that lowers historical returns; then quantify the consequences.
3. **Run the frozen asset-trend baseline.** Replace only the sleeve directional calculation with the specified excess-return vote. Keep the macro map and all confirmation settings fixed. Attribute results by sleeve, cash exposure, lost rebound participation, avoided losses, and turnover.
4. **Test distinct macro hypotheses separately.** Broader credit, stress-specific volatility treatment, real-rate decomposition, and hierarchical risk classification are separate experiments. Preserve domain weights. Add paid constituent breadth only when its data requirements are met. Combine changes only after identifying their individual and overlapping contributions.
5. **Test confirmation afterward.** Use the signal specification supported by the prior work, then revisit the earlier single-stage confirmation proposal. This distinguishes signal quality from trade timing and prevents choosing a lucky combination of both.

Register the rule, rationale, expected failure mode, and rejection criteria before each return comparison. Use economic stress episodes for diagnosis, longer available histories for component tests, and block-based uncertainty estimates that respect serial dependence. Do not fabricate a full Bitcoin portfolio before investable history exists. Historical periods already reviewed in this project are development or robustness evidence, even when an existing report calls a split a holdout. Reserve genuinely unexamined data or a prospective shadow record for out-of-sample evaluation.

The objective is not simply a higher CAGR or the smallest drawdown. Require evidence of better participation for comparable downside risk, or materially better downside protection for comparable participation. Report drawdown duration, worst periods, expected shortfall, upside/downside capture, recovery lag, exposure, and costs alongside CAGR and maximum drawdown. Check whether any advantage comes from one asset, one recovery, or simply more average invested capital. A candidate that only increases both return and risk is a tradeoff requiring an explicit objective, not a proven improvement.

## Reproduce and version

```sh
node scripts/analyze-kiss-signal-structure.mjs \
  .cache/tmd-responsiveness-review/inputs.json \
  .cache/tmd-responsiveness-review/snapshot.json \
  > docs/research/kiss-signal-structure-2026-09-07.json
```

The saved input cache is local and ignored by Git. The research JSON records its SHA-256 hashes and snapshot ID; another checkout needs those exact inputs for exact reproduction. A fresh provider download may contain revisions. The script asserts control reproduction, all archived targets, the two structural counterexamples, and unchanged allocation confirmation. It does not implement or backtest the proposed replacement signal.

Follow the KISS versioning policy (repository record: `kiss-versioning-policy.md`): signal-source, formula, and allocation-timing refinements that preserve Agora's contract belong in a minor KISS 2.x release. Adding a signal input is not the same as adding an investable asset class. A new asset class or another change requiring Agora to change belongs in a major release. Historical allocation revisions alone do not make a release breaking. This research introduces no methodology bump.
