Momentum Rebalance Frequency Study
Study overview
Price momentum is one of the most replicated findings in quantitative finance, yet most published backtests assume a single rebalance calendar — typically the last trading day of each month. Systematic managers in practice often refresh books weekly to capture fresher ranking information.
This project asks a practical question: when the signal is held constant (standard 12-1 momentum on US large caps), does rebalance frequency materially change risk-adjusted outcomes once turnover and trading frictions are accounted for?
We run two parallel simulations on the same universe and signal:
- Semi-annual sleeve — rebalance on the last trading day of June and December.
- Quarterly sleeve — rebalance on each calendar quarter-end.
- Monthly sleeve — rebalance on the last trading day of each month.
- Weekly sleeve — rebalance every Friday.
- Shared rules — 12-1 momentum score, decile sorts, equal-weight top decile (long-only) and D10 −D1 spread (long-short).
The interactive section at the bottom reports gross performance, turnover, cost-adjusted metrics, regime behaviour, and formal hypothesis checks generated from the live data pipeline.
Why rebalance frequency matters
Rebalance cadence sits at the intersection of signal decay, execution cost, and operational complexity. Faster updates can, in theory, react to cross-sectional shifts sooner — but each refresh consumes capital in spreads, commissions, and market impact.
For momentum specifically, the trade-off is non-obvious. The ranking signal itself is slow-moving (twelve months of history, skipping the most recent month). Updating weights weekly may therefore re-trade similar names without meaningfully changing the information set.
Implementation teams care about several downstream effects:
- Turnover and capacity — higher frequency raises annualized turnover and lowers assets under management the strategy can run before moving prices.
- Net Sharpe — gross alpha must survive realistic cost assumptions; small gross edges are often erased by friction.
- Operational load — weekly workflows require tighter trade scheduling, compliance checks, and cash management than monthly programs.
- Tax and cash drag — more frequent realization of gains and higher cash segmentation (not modeled here) can further favour slower rebalancing for taxable accounts.
Research design
The study follows a controlled A/B implementation test: identical data, signal, and portfolio rules; only the rebalance calendar differs. That isolates frequency effects from universe or signal changes.
Universe and prices. S&P 500 names via Yahoo Finance adjusted closes. The pipeline reuses an expanded ticker panel (current members plus historical index changes) for broader coverage. Survivorship bias remains — point-in-time CRSP membership would be the publication-grade upgrade.
Sample window. Empirical results currently span 2000–present (limited by cached daily history). The framework supports extension to earlier decades once the price panel is refreshed.
Momentum signal. For each stock on rebalance day :
This is the familiar 12-1 specification: twelve months of past return with the most recent month omitted to reduce short-term reversal noise.
Portfolio construction.
- Rank all eligible stocks on .
- Long-only: equal-weight the top decile (winners).
- Long-short: long top decile, short bottom decile, each leg 50% gross exposure.
- Rebalance A (semi-annual): last trading session of June and December.
- Rebalance B (quarterly): last trading session of each calendar quarter.
- Rebalance C (monthly): last trading session of each calendar month.
- Rebalance D (weekly): every Friday.
Testable hypotheses
Four pre-registered hypotheses structure the empirical comparison:
- H1 (gross return): Weekly rebalancing earns higher gross returns because portfolios incorporate ranking changes sooner.
- H2 (turnover): Weekly rebalancing generates materially higher annual turnover than monthly rebalancing.
- H3 (cost drag): Transaction costs penalize the weekly sleeve more severely because costs scale with traded notional.
- H4 (net efficiency): Monthly rebalancing delivers a superior net Sharpe ratio once frictions are applied.
A paired daily-return test supplements these checks, asking whether the mean return difference between sleeves is statistically distinguishable from zero.
Metrics and frictions
Performance is summarized with standard return and risk statistics computed on daily portfolio returns between rebalance dates (252 trading-day annualization).
Core metrics include:
- CAGR — compound growth of the wealth index.
- Sharpe & Sortino — excess return per unit of total and downside volatility.
- Maximum drawdown & Calmar — peak-to-trough loss and return-to-drawdown ratio.
- Hit rate — fraction of positive daily returns.
- Turnover — summed across rebalance events, expressed on an annualized basis.
Transaction costs enter as a linear charge on turnover: . We stress-test five cost assumptions:
- 0 bps (frictionless baseline)
- 10 bps (institutional)
- 25 bps (retail)
- 50 bps (conservative)
- 100 bps (stress)
Regime and robustness checks
Aggregate averages can hide state dependence. We therefore slice long-short returns by market regime, classifying days using SPY relative to its 200-day moving average:
- Bull regime — SPY at or above its 200-DMA (risk-on environments).
- Bear regime — SPY below its 200-DMA (drawdown or recovery phases).
The hypothesis is that weekly updates might help more when trends rotate quickly (volatile or bear segments), while monthly updates avoid churn during stable bull markets. Sparse bear samples can make regime Sharpe ratios noisy — interpret them as directional, not definitive.
Future extensions on the same codebase include alternative lookbacks (3-1, 6-1), volatility-scaled momentum, sector-neutral sorts, liquidity filters, and dynamic rebalance rules that slow trading when expected alpha per turnover falls below a threshold.
How to read the dashboard
The interactive block below is organized for implementation decisions, not just academic comparison.
Start with the verdict banner. It summarizes which cadence delivers the best Sharpe-per-turnover and net efficiency.
Use frequency ranking cards for quick winners on Sharpe, turnover, net Sharpe (10 bps), and implementation efficiency.
Switch portfolio tabs between long-only and long-short. Long-only reflects how many asset managers actually run momentum; long-short highlights pure factor exposure and cost sensitivity.
Compare all four frequencies in the performance table and wealth chart — semi-annual, quarterly, monthly, and weekly.
Review frequency rankings for best Sharpe, lowest turnover, and Sharpe-per-turnover efficiency.
Read grouped insights for return, turnover ladder, transaction costs, and implementation guidance.
Regenerate data after market updates with npm run data:momentum-rebalance-frequency.
Limitations and scope
This is a research sandbox, not a product specification or investment recommendation.
Known limitations:
- Survivorship bias from using an expanded panel anchored on today's index membership.
- Price source — Yahoo adjusted closes may differ from CRSP/Compustat corporate-action handling.
- Shorting frictions — borrow fees and locate constraints are not modeled; long-short results understate live short costs.
- Flat cost model — real market impact rises with participation rate; high-turnover weekly books face nonlinear slippage.
- Sample start — cached prices begin in 2000; earlier crisis episodes (1998 LTCM, 1987) are excluded until data are refreshed.
Closing perspective
Momentum's existence in the cross-section does not automatically imply that more frequent rebalancing improves investor outcomes. When the signal is slow-moving, weekly updates may chiefly increase trading without expanding the information edge.
The empirical section tests that proposition directly. For allocators, the practical takeaway is to compare net risk-adjusted return per unit of turnover — not gross backtest curves alone — when choosing between monthly institutional cadence and weekly systematic refresh cycles.
Empirical results
Charts, tables, and hypothesis summaries below are generated from the latest pipeline run. Toggle between long-only and long-short views, inspect cost sensitivity, and compare regime-conditional Sharpe ratios side by side.
Results
| Data through | 2026-06-05 |
| Sample | 2000-01-03 – 2026-06-05 |
| Universe | 647 names · S&P 500 (yfinance, current constituents) |
| Signal | 12-1 momentum, equal-weight deciles, four rebalance calendars (semi-annual → weekly) |
| Return basis | Performance tables are gross of frictions. Net returns apply commission + slippage on each rebalance (see cost model below). |
Transaction cost model
| Component | Detail |
|---|---|
| Included in scope | Commission (explicit bps per turnover unit) · Slippage / market impact (explicit bps per turnover unit) · Rebalance transaction costs (charged on each rebalance date) |
| Commission | 5 bps per turnover unit |
| Slippage | 5 bps per turnover unit |
| Default all-in | 10 bps (= institutional scenario) |
| Application | On each rebalance date: portfolio daily return -= turnover × (cost_bps / 10,000). Performance tables are gross (cost_bps=0). cost_scenarios re-simulate with all-in bps applied at rebalance. |
| Excluded | Securities borrowing fees on short legs · Taxes and stamp duty · Non-linear market impact at large AUM · Cash drag and dividend withholding |
| Scenario | All-in bps | Notes |
|---|---|---|
| Frictionless | 0 | No frictions |
| Institutional | 10 | Total all-in (commission + slippage + execution) |
| Retail | 25 | Total all-in (commission + slippage + execution) |
| Conservative | 50 | Total all-in (commission + slippage + execution) |
| Stress test | 100 | Total all-in (commission + slippage + execution) |
Frequency rankings
| Ranking | Leader | Value |
|---|---|---|
| Best long-only gross Sharpe | Weekly (Fridays) | 0.871 |
| Best long-only CAGR | Monthly (month-end) | 0.225 |
| Lowest turnover | Semi-annual (Jun / Dec) | 1.25× |
| Best net Sharpe (10 bps) | Monthly (month-end) | -0.189 |
| Best Sharpe / turnover | Semi-annual (Jun / Dec) | 0.658 |
Detailed insights
| Category | Insight |
|---|---|
| Return & risk | Highest long-only gross Sharpe: Weekly (Fridays) (0.87) — all four cadences cluster tightly, so gross risk-adjusted returns are largely insensitive to rebalance speed on this 12-1 signal. |
| Top long-only CAGR: Monthly (month-end) at 22.5% compound growth. Spread between slowest and fastest cadence is small relative to standalone momentum premia. | |
| Max drawdown on long-only winners ranges from -64.0% (semi-annual) to -56.9% (weekly) — faster refresh does not clearly reduce crash exposure here. | |
| Turnover ladder | Long-short turnover forms a clear frequency ladder (annualized): semi-annual 1.25× → quarterly 1.77× → monthly 3.16× → weekly 6.49×. |
| Weekly books turn over 2.1× more than monthly — quarterly sits at 56% of monthly intensity. | |
| Moving from weekly to semi-annual cuts turnover by roughly 81%, a major capacity and cost relief for large mandates. | |
| Transaction costs | Transaction cost scope includes commission (5 bps) and slippage (5 bps) per turnover unit, applied on each rebalance date. Main performance tables are gross; net scenarios re-simulate with costs at rebalance. |
| Not modeled: Securities borrowing fees on short legs, Taxes and stamp duty, Non-linear market impact at large AUM. | |
| At 10 bps per unit of turnover (long-short), net Sharpe ranks: Semi-annual (Jun / Dec) -0.2368, Quarterly (quarter-end) -0.2105, Monthly (month-end) -0.1886, Weekly (Fridays) -0.2105. | |
| Best net Sharpe after frictions: Monthly (month-end) (-0.189). Slower cadences preserve more alpha once trading costs enter. | |
| Weekly net Sharpe (-0.210) vs semi-annual (-0.237) — the weekly sleeve retains the post-cost edge, but gross long-only results differ much less than turnover suggests. | |
| Implementation efficiency | Sharpe per unit of turnover peaks at Semi-annual (Jun / Dec) (0.658). This metric rewards slow refresh when the 12-1 signal is sticky. |
| Quarterly rebalancing delivers long-only Sharpe 0.82 vs monthly 0.86 with ~44% lower turnover — a practical compromise for funds that rebalance on calendar quarters. | |
| Because the 12-1 score updates slowly, semi-annual and quarterly schedules capture most of the ranking information while avoiding the trade churn of weekly programs. | |
| Practical guidance | Institutional default: monthly or quarterly rebalance for long-only momentum — gross performance is similar across cadences while turnover stays manageable. |
| Weekly refresh only makes sense if operational infrastructure already supports it *and* marginal gross alpha covers ~2× monthly turnover at your cost assumptions. | |
| Semi-annual suits large-capacity, low-touch mandates willing to accept slightly stale rankings in exchange for minimal trading. | |
| Long-short spreads on this survivorship-biased panel underperform — use them for cost/turnover comparisons, not as standalone alpha forecasts. | |
| Results rely on Yahoo Finance adjusted closes; CRSP point-in-time membership would be required before production deployment. |
Gross portfolio performance by frequency
| Metric | Semi-annual | Quarterly | Monthly | Weekly |
|---|---|---|---|---|
| CAGR (gross) | 22.00% | 21.60% | 22.50% | 22.50% |
| Sharpe (gross) | 0.83 | 0.82 | 0.86 | 0.87 |
| Sortino | 1.19 | 1.20 | 1.25 | 1.26 |
| Calmar | 0.34 | 0.37 | 0.41 | 0.40 |
| Max drawdown | -64.00% | -58.50% | -55.20% | -56.90% |
| Ann. volatility | 25.70% | 25.30% | 24.80% | 24.50% |
| Hit rate | 55.10% | 55.40% | 55.50% | 55.90% |
| Annual turnover | 1.3× | 1.8× | 3.3× | 6.8× |
Cumulative wealth (gross, rebased to 100)
Turnover ladder (long-short, annualized)
| Frequency | Annual turnover | vs monthly |
|---|---|---|
| Semi-annual | 1.25× | 0.40× |
| Quarterly | 1.76× | 0.56× |
| Monthly | 3.16× | 1.00× |
| Weekly | 6.49× | 2.05× |
Net performance after transaction costs (long-short)
Re-simulated with commission + slippage charged on each rebalance date (turnover × bps / 10,000).
| Scenario | bps | Semi-annual CAGR | Quarterly CAGR | Monthly CAGR | Weekly CAGR |
|---|---|---|---|---|---|
| Frictionless | 0 | -1.50% | -1.50% | -1.10% | -1.20% |
| Institutional | 10 | -1.60% | -1.60% | -1.50% | -1.80% |
| Retail | 25 | -1.80% | -1.90% | -1.90% | -2.80% |
| Conservative | 50 | -2.10% | -2.30% | -2.70% | -4.40% |
| Stress test | 100 | -2.70% | -3.20% | -4.20% | -7.40% |
| Scenario | bps | Semi-annual Sharpe | Quarterly Sharpe | Monthly Sharpe | Weekly Sharpe |
|---|---|---|---|---|---|
| Frictionless | 0 | -0.23 | -0.20 | -0.17 | -0.16 |
| Institutional | 10 | -0.24 | -0.21 | -0.19 | -0.21 |
| Retail | 25 | -0.25 | -0.23 | -0.22 | -0.28 |
| Conservative | 50 | -0.28 | -0.26 | -0.28 | -0.40 |
| Stress test | 100 | -0.33 | -0.33 | -0.40 | -0.64 |
Hypothesis tests
| ID | Hypothesis | Result | Verdict |
|---|---|---|---|
| H1 | Higher rebalance frequency raises long-only gross CAGR | Supported | Weekly CAGR 22.48% vs semi-annual 22.00% |
| H2 | Turnover increases monotonically as rebalance frequency rises | Supported | Turnover ladder: semi-annual 1.25× → quarterly 1.77× → monthly 3.16× → weekly 6.49× |
| H3 | Weekly rebalancing loses more net Sharpe to transaction costs than quarterly | Not supported | At 10 bps: weekly net Sharpe -0.2105 vs quarterly -0.2105 |
| H4 | Semi-annual cadence maximizes Sharpe-per-turnover (implementation efficiency) | Supported | Best Sharpe/turnover: Semi-annual (Jun / Dec) (0.658) |
| H5 | Monthly and weekly long-only gross Sharpe are economically similar | Supported | Monthly Sharpe 0.8628 vs weekly 0.8712 (Δ +0.008) |
| H6 | Quarterly rebalancing is a viable middle ground between monthly and semi-annual turnover | Supported | Quarterly turnover 1.77× vs monthly 3.16×; long-only Sharpe 0.8231 |
| stat | Daily long-short return difference (weekly − monthly) is statistically significant | Not supported | Paired t-statistic: -0.21 |
Regime-conditional long-short performance
Bull/bear split: SPY vs 200-day moving average. Metrics computed on regime-filtered daily returns (min 60 obs).
| Regime | Frequency | Sharpe | CAGR | Ann. return | Ann. vol | Max DD | Days |
|---|---|---|---|---|---|---|---|
| Bull market | Semi-annual | -0.10 | 0.40% | 0.90% | 10.40% | -29.90% | 4779 |
| Bear market | Semi-annual | -0.53 | -7.90% | -6.90% | 16.60% | -61.40% | 1392 |
| Bull market | Quarterly | -0.03 | 1.10% | 1.70% | 10.90% | -26.00% | 4747 |
| Bear market | Quarterly | -0.48 | -8.00% | -6.70% | 17.90% | -63.80% | 1487 |
| Bull market | Monthly | -0.01 | 1.20% | 1.80% | 11.30% | -30.00% | 4750 |
| Bear market | Monthly | -0.44 | -7.40% | -6.10% | 18.30% | -63.50% | 1506 |
| Bull market | Weekly | 0.08 | 2.20% | 2.90% | 11.30% | -32.00% | 4747 |
| Bear market | Weekly | -0.62 | -10.90% | -9.80% | 18.90% | -68.90% | 1526 |