How does the Trading Friction toggle work?

Strategy results which ignore trading costs overstate what you would have actually earned. The Trading Friction toggle (on by default) deducts an estimated cost from each month's return based on how much the strategy actually traded that month.

The model is turnover-weighted. Each month, the strategy's new target ETF weights are compared against what it was already holding as the month opened. The sum of the absolute weight changes is the turnover, and each traded slice is charged a one-way cost for that fund in that month:

cost = the higher of (the fund's own cost, the era minimum) x a market-stress multiplier

1. The fund's own cost. Every US ETF publishes its 30-day median bid/ask spread. Each fund is charged its full spread on every buy and every sell. A patient limit order at the midpoint would pay only half of it, but real trades placed at the open or the close, or as market orders, often pay more, and the median sits below the average because bad days skew it. Charging the full spread covers that, and commissions with it. Some typical figures:

Fund typeExampleOne-way cost
Large, liquid ETFs (stocks, Treasuries, gold)VOO, QQQ, IEF, TLT, BILabout 1 bp (0.01%)
Liquid leveraged ETFsSSO, QLD, UPRO, TQQQ1 to 2 bps
Smaller or specialist fundsCAOS, DBMF, CLSE, TMF4 to 6 bps
Thinly traded funds20 bps or more

Leverage is not what drives trading cost; liquidity is. TQQQ trades on a one-cent spread most days, while a thinly traded fund can cost twenty times that. A fund with no figure on file is charged 10 bps.

2. The era minimum. Today's penny-wide spreads did not exist in the past, so every trade pays at least the minimum for its time:

PeriodMinimum, one wayWhy
Before May 197550 bpsFixed brokerage commissions
May 1975 to 199225 bpsNo ETFs yet; these years use index data
1993 to mid-199715 bpsFirst ETFs, prices quoted in eighths of a dollar
Mid-1997 to 20008 bpsSixteenths, early online brokers
2001 to 20073 bpsDecimal pricing, $8 to $10 commissions
2008 onward2 bpsModern spreads

These minimums are estimates built from those market milestones, not measured figures.

3. The market-stress multiplier. Spreads widen when the whole market panics, and tactical strategies tend to trade most at exactly those times. Each month's cost is multiplied by the VIX at the close of the prior month divided by 20, never less than 1x and capped at 4x. Normal markets (VIX 12 to 20) pay 1x; late 2008 and March 2020 paid about 3x. Before 1990, when there is no VIX, a stand-in built from the stock market's own recent volatility is used, so 1974 and 1987 are charged for their crashes too. The multiplier applies on top of the era minimum.

Two examples:

So a month that rotates 50% of a modern portfolio out of one large ETF and into another costs roughly 0.02% (2 bps on the 50% sold + 2 bps on the 50% bought) in calm markets.

Holdings that are left alone still move. This is the subtle part, and it is why the comparison is against what the strategy was holding rather than against last month's published percentages. If you hold 50% stocks and 50% bonds and stocks gain 10% while bonds are flat, you are holding roughly 52.4% / 47.6% a month later without having placed a single trade. Those percentages changed, but nothing was bought or sold and nothing was owed to a broker.

Two consequences follow:

Other points

Where the estimate is approximate

If you want to see the "frictionless" academic version of a backtest, switch the toggle off - just remember nobody earns those returns in a real account.