Hybrid Asset Allocation (HAA)
Wouter Keller and JW Keuning's Hybrid Asset Allocation. TIPS act as the canary: while their momentum is positive it holds the four strongest of eight asset classes, replacing any with negative momentum by the stronger of Treasury bills and intermediate Treasuries; when TIPS weaken it holds only that cash choice.
Designed by Wouter Keller and JW Keuning, 2023. Implemented and tracked by Tactfolio.
| Jul 2008 – Sep 2026 | Strategy | SPY |
|---|---|---|
| Annual return (CAGR) | 10.2% | 12.6% |
| Worst drawdown | -15.6% | -47.2% |
| Sharpe ratio | 0.93 | 0.70 |
| Volatility | 11.1% | 19.7% |
| Annual return since publication (Mar 2023) | 10.6% | 22.3% |
| Dec 1970 – Sep 2026 | Strategy | SPY |
|---|---|---|
| Annual return (CAGR) | 15.2% | 11.2% |
| Worst drawdown | -18.5% | -55.2% |
| Sharpe ratio | 1.47 | 0.70 |
| Volatility | 10.0% | 17.3% |
| Annual return since publication (Mar 2023) | 10.6% | 22.3% |
Hybrid Asset Allocation (HAA) is a monthly strategy published in 2023 by Wouter Keller and JW Keuning. It was written after 2022, when stocks and bonds fell together and many older tactical strategies found nowhere safe to hide. HAA's answer is a single canary that watches inflation: Treasury Inflation-Protected Securities (TIPS).
The idea#
Earlier canary strategies watched stocks and bonds. HAA watches TIP, the TIPS fund, alone. Its price reflects both real interest rates and inflation expectations. When TIP's momentum turns negative, it is often a sign that rising rates or inflation are about to squeeze both stocks and bonds.
The strategy is "hybrid" because it combines two kinds of momentum filter. The canary decides the regime for the whole portfolio. On top of that, each holding must also have positive momentum of its own, or it is replaced with cash.
How it works#
At the close of the last trading day of each month, every fund's momentum is measured with Keller's 13612U score: the simple average of the 1-, 3-, 6-, and 12-month returns.
- Check the canary. If TIP's momentum is zero or negative, hold 100% of the stronger of BIL (Treasury bills) and IEF (7–10 year Treasuries).
- Pick the holdings. Otherwise, rank eight funds: SPY, IWM, VEA, VWO, VNQ, DBC, IEF, and TLT. Take the top four at 25% each.
- Replace weak picks. Any of those four with zero or negative momentum of its own gets swapped for the stronger of BIL and IEF.
This page covers HAA Balanced, the version the authors present first. The paper also names a one-asset version, HAA Simple.
What the backtest shows#
Over the ETF era HAA Balanced had one of the best risk-adjusted returns of the classic strategies we track, with a worst drawdown about a third of the S&P 500's. It gained in 2008 and in 2022. The TIP canary did what it was designed to do in 2022, when a 60/40 portfolio had its worst year in decades.
Its record since publication is short: the paper appeared in early 2023. In that time it has made money, but it has trailed a very strong stock market by a wide margin. The live record on Tactfolio will show whether the TIP canary keeps earning its place.
When it struggles#
- Strong equity bull markets. Four of eight diversified assets will trail US large-cap stocks.
- Inflation scares that pass. When TIP weakens without real damage to stocks, the strategy sits in cash or Treasuries through the recovery.
Using it on Tactfolio#
The live strategy above implements the canary and the cash replacement exactly. The replacement is written as a count of positive-momentum assets, so the tree may look different from the paper, but it holds the same funds. Open it to see how, or copy it and try a different canary.
Year by year
| Year | Strategy | SPY |
|---|---|---|
| 2026* | 17.5% | 14.0% |
| 2025 | 11.2% | 17.7% |
| 2024 | 1.8% | 24.9% |
| 2023 | 8.4% | 26.2% |
| 2022 | 3.4% | -18.2% |
| 2021 | 24.1% | 28.7% |
| 2020 | 19.4% | 18.3% |
| 2019 | 7.5% | 31.2% |
| 2018 | 7.0% | -4.6% |
| 2017 | 11.7% | 21.7% |
| 2016 | 9.7% | 12.0% |
| 2015 | -3.5% | 1.2% |
| 2014 | 2.0% | 13.5% |
| 2013 | 10.0% | 32.3% |
| 2012 | 12.6% | 16.0% |
| 2011 | 2.4% | 1.9% |
| 2010 | 20.8% | 15.1% |
| 2009 | 16.1% | 26.4% |
| 2008* | 7.3% | -27.1% |
| Year | Strategy | SPY |
|---|---|---|
| 2026* | 17.5% | 14.0% |
| 2025 | 11.2% | 17.7% |
| 2024 | 1.8% | 24.9% |
| 2023 | 8.4% | 26.2% |
| 2022 | 3.4% | -18.2% |
| 2021 | 24.1% | 28.7% |
| 2020 | 19.4% | 18.3% |
| 2019 | 7.5% | 31.2% |
| 2018 | 7.0% | -4.6% |
| 2017 | 11.7% | 21.7% |
| 2016 | 9.7% | 12.0% |
| 2015 | -3.5% | 1.2% |
| 2014 | 2.0% | 13.5% |
| 2013 | 10.0% | 32.3% |
| 2012 | 12.6% | 16.0% |
| 2011 | 2.4% | 1.9% |
| 2010 | 20.8% | 15.1% |
| 2009 | 16.1% | 26.4% |
| 2008 | 6.7% | -36.8% |
| 2007 | 11.6% | 5.1% |
| 2006 | 27.6% | 15.8% |
| 2005 | 12.6% | 4.8% |
| 2004 | 18.2% | 10.7% |
| 2003 | 37.9% | 28.2% |
| 2002 | 6.4% | -21.6% |
| 2001 | 4.1% | -11.8% |
| 2000 | 7.4% | -9.7% |
| 1999 | 13.0% | 20.4% |
| 1998 | 10.1% | 28.7% |
| 1997 | 16.3% | 33.5% |
| 1996 | 18.5% | 22.5% |
| 1995 | 23.8% | 38.0% |
| 1994 | 7.5% | 0.4% |
| 1993 | 15.4% | 9.7% |
| 1992 | 8.4% | 7.6% |
| 1991 | 20.6% | 30.3% |
| 1990 | 5.1% | -3.2% |
| 1989 | 18.1% | 31.5% |
| 1988 | 13.8% | 16.4% |
| 1987 | 28.0% | 5.1% |
| 1986 | 41.9% | 18.6% |
| 1985 | 35.1% | 31.6% |
| 1984 | 21.6% | 6.2% |
| 1983 | 16.6% | 22.4% |
| 1982 | 29.1% | 21.6% |
| 1981 | 14.9% | -4.9% |
| 1980 | 30.4% | 32.4% |
| 1979 | 36.0% | 18.3% |
| 1978 | 15.5% | 6.5% |
| 1977 | 11.9% | -7.2% |
| 1976 | 29.4% | 23.8% |
| 1975 | 5.9% | 37.1% |
| 1974 | 19.9% | -26.5% |
| 1973 | 8.1% | -14.7% |
| 1972 | 35.3% | 18.9% |
| 1971 | 8.4% | 14.1% |
| 1970* | -0.1% | 0.1% |
* Partial year.
The rules as implemented
This is the exact tree Tactfolio runs, rebalanced monthly with signals and trades at the close. Open it to inspect or copy it.
- StrategyKeller HAA Balanced
- WeightEqual
- If1/3/6/12-month unweighted momentum of TIP is above 0Then
- WeightEqual
- IfAt least 4 of 8 conditions
- 1/3/6/12-month unweighted momentum of SPY is above 0
- 1/3/6/12-month unweighted momentum of IWM is above 0
- 1/3/6/12-month unweighted momentum of VEA is above 0
- 1/3/6/12-month unweighted momentum of VWO is above 0
- 1/3/6/12-month unweighted momentum of VNQ is above 0
- 1/3/6/12-month unweighted momentum of DBC is above 0
- 1/3/6/12-month unweighted momentum of IEF is above 0
- 1/3/6/12-month unweighted momentum of TLT is above 0
Then- WeightEqual
- RankTop 4 · 1/3/6/12-month unweighted momentum
- TickerSPY
- TickerIWM
- TickerVEA
- TickerVWO
- TickerVNQ
- TickerDBC
- TickerIEF
- TickerTLT
- RankTop 4 · 1/3/6/12-month unweighted momentum
Otherwise- WeightEqual
- IfAt least 3 of 8 conditions
- 1/3/6/12-month unweighted momentum of SPY is above 0
- 1/3/6/12-month unweighted momentum of IWM is above 0
- 1/3/6/12-month unweighted momentum of VEA is above 0
- 1/3/6/12-month unweighted momentum of VWO is above 0
- 1/3/6/12-month unweighted momentum of VNQ is above 0
- 1/3/6/12-month unweighted momentum of DBC is above 0
- 1/3/6/12-month unweighted momentum of IEF is above 0
- 1/3/6/12-month unweighted momentum of TLT is above 0
Then- WeightSpecified
- RankTop 3 · 1/3/6/12-month unweighted momentum75%
- TickerSPY
- TickerIWM
- TickerVEA
- TickerVWO
- TickerVNQ
- TickerDBC
- TickerIEF
- TickerTLT
- RankTop 1 · 1/3/6/12-month unweighted momentum25%
- TickerBIL
- TickerIEF
- RankTop 3 · 1/3/6/12-month unweighted momentum75%
Otherwise- WeightEqual
- IfAt least 2 of 8 conditions
- 1/3/6/12-month unweighted momentum of SPY is above 0
- 1/3/6/12-month unweighted momentum of IWM is above 0
- 1/3/6/12-month unweighted momentum of VEA is above 0
- 1/3/6/12-month unweighted momentum of VWO is above 0
- 1/3/6/12-month unweighted momentum of VNQ is above 0
- 1/3/6/12-month unweighted momentum of DBC is above 0
- 1/3/6/12-month unweighted momentum of IEF is above 0
- 1/3/6/12-month unweighted momentum of TLT is above 0
Then- WeightSpecified
- RankTop 2 · 1/3/6/12-month unweighted momentum50%
- TickerSPY
- TickerIWM
- TickerVEA
- TickerVWO
- TickerVNQ
- TickerDBC
- TickerIEF
- TickerTLT
- RankTop 1 · 1/3/6/12-month unweighted momentum50%
- TickerBIL
- TickerIEF
- RankTop 2 · 1/3/6/12-month unweighted momentum50%
Otherwise- WeightEqual
- IfAt least 1 of 8 conditions
- 1/3/6/12-month unweighted momentum of SPY is above 0
- 1/3/6/12-month unweighted momentum of IWM is above 0
- 1/3/6/12-month unweighted momentum of VEA is above 0
- 1/3/6/12-month unweighted momentum of VWO is above 0
- 1/3/6/12-month unweighted momentum of VNQ is above 0
- 1/3/6/12-month unweighted momentum of DBC is above 0
- 1/3/6/12-month unweighted momentum of IEF is above 0
- 1/3/6/12-month unweighted momentum of TLT is above 0
Then- WeightSpecified
- RankTop 1 · 1/3/6/12-month unweighted momentum25%
- TickerSPY
- TickerIWM
- TickerVEA
- TickerVWO
- TickerVNQ
- TickerDBC
- TickerIEF
- TickerTLT
- RankTop 1 · 1/3/6/12-month unweighted momentum75%
- TickerBIL
- TickerIEF
- RankTop 1 · 1/3/6/12-month unweighted momentum25%
Otherwise- WeightEqual
- RankTop 1 · 1/3/6/12-month unweighted momentum
- TickerBIL
- TickerIEF
- RankTop 1 · 1/3/6/12-month unweighted momentum
- IfAt least 1 of 8 conditions
- IfAt least 2 of 8 conditions
- IfAt least 3 of 8 conditions
- IfAt least 4 of 8 conditions
Otherwise- WeightEqual
- RankTop 1 · 1/3/6/12-month unweighted momentum
- TickerBIL
- TickerIEF
- RankTop 1 · 1/3/6/12-month unweighted momentum
- WeightEqual
- If1/3/6/12-month unweighted momentum of TIP is above 0
- WeightEqual
Sources and caveats
- Wouter Keller and JW Keuning, Dual and Canary Momentum with Rising Yields/Inflation: Hybrid Asset Allocation (2023)
- Allocate Smartly, Hybrid Asset Allocation
- Offensive universe SPY, IWM, VEA, VWO, VNQ, DBC, IEF, TLT with top 4, as in the source.
- Momentum is 13612U, the equal-weighted average of 1-, 3-, 6-, and 12-month returns, on every universe; cash is the stronger of BIL and IEF.
- Signals and trades use the close of the last trading day of each month, as in the source.
Common questions#
What is Hybrid Asset Allocation?#
It is a monthly strategy by Wouter Keller and JW Keuning (2023). A single canary, TIP, decides between risk-on and fully defensive. While risk-on, it holds the four strongest of eight asset classes, replacing any with negative momentum by cash.
Why does HAA use TIP as a canary?#
TIPS prices reflect real yields and inflation expectations. Falling TIP momentum tends to signal the rate and inflation pressure that hurt both stocks and bonds in 2022.
What is 13612U momentum?#
It is the equal-weighted average of the 1-, 3-, 6-, and 12-month total returns. Keller's 13612W instead weights the recent months more heavily.
What does HAA hold as cash?#
Whichever of BIL (Treasury bills) and IEF (intermediate Treasuries) has the stronger 13612U momentum.