Test how buy-and-hold, calendar, threshold, and calendar-plus-threshold strategies would have changed a portfolio’s return, risk, drift, turnover, and costs. Start with the ready 60/40 history—no data formatting required.
Review methodologyRuns locally in your browser. Historical results are not forecasts.
Backtest settings
1
Choose data
Annual total-return proxies from Aswath Damodaran’s NYU Stern dataset: S&P 500 includes dividends; 10-year Treasury returns include coupons and price changes. Data through 2024.
Ready: 20 annual observations (2005–2024).
Advanced: import returns or prices from CSV
Use Date, Asset 1, Asset 2. Headers and ISO dates are supported. Values can be decimal or percentage returns, prices, or adjusted prices. Use total-return or adjusted-price data to include dividends and distributions.
Blank return cells are treated as 0%; blank price cells are forward-filled. Malformed rows are reported and are never silently skipped.
No CSV loaded.
Parsed data preview
2
Set allocation
Weight total: 100.0%
Assets and target weights
Asset / series
Target weight (%)
Weights must total exactly 100%. Asset order matches the selected or imported data columns.
3
Compare policies
A combined policy checks the threshold only on the selected calendar dates. A 5/25 band is the smaller of 5 percentage points or 25% of an asset’s target.
Advanced assumptions, costs and cash flows
Taxes are not modeled. Results assume each observation’s closing value is received first, then expenses and cash flows, then any rebalance at that period’s close. Missing return observations are treated as 0%.
Run many paths instead of treating one random path as evidence. Historical block bootstrap resamples contiguous multi-asset blocks and therefore preserves observed cross-asset correlation.
Simulation has not run.
Policy
10th percentile end
Median end
90th percentile end
Chance of beating buy-and-hold
Rebalancing impact
Plain-language conclusion
Run the ready example to compare each policy with buy-and-hold.
Strategy metrics and changes versus buy-and-hold
Policy
End value
Δ end
CAGR
Δ CAGR
Volatility
Max drawdown
Turnover / yr
Rebalances
Total cost
CAGR is time-weighted when cash flows are used. Sharpe appears in the cards and uses annualized arithmetic excess return. Turnover is one-way: half the total absolute buys and sells divided by portfolio value.
Sensitivity matrix
One-click comparison using identical data and assumptions. Monthly and quarterly policies can only trade as often as the source observations permit.
Policy
CAGR
Volatility
Max drawdown
Turnover / yr
End value
Return rank
Drawdown rank
Turnover rank
Equity curves and rebalance markers
Allocation drift: first asset
Drawdowns
Cumulative trading and expense cost drag
Text chart summary will appear after calculation. The downloadable CSV contains every plotted value and rebalance event.
Advertisement
Worked 60/40 examples
Trending market: buy-and-hold can win
Start with £100,000: £60,000 stocks and £40,000 bonds. If stocks gain 20% and bonds are flat, the portfolio reaches £112,000 and drifts to 64.3% / 35.7%. Restoring 60/40 sells £4,800 of stocks and buys £4,800 of bonds. At 5 bps per traded leg, the modeled spread cost is £4.80. If stocks continue rising, the unrebalanced portfolio keeps more exposure to the winner and may finish higher.
Volatile market: rebalancing can help
Suppose stocks rise 20% while bonds are flat, then stocks fall 16.67% while bonds remain flat. Buy-and-hold returns roughly to £100,000. Rebalancing after year one puts £67,200 in stocks and £44,800 in bonds; after the reversal it holds about £100,800 before costs. The gain comes from selling part of the winner before a reversal—not from a guarantee that rebalancing raises returns.
5-point band trigger
For a 60% stock target, an absolute 5-point band is 55%–65%. A drift to 64.3% does not trigger; a drift above 65% does. For a 10% asset, the 5/25 rule uses ±2.5 points (25% of target), producing a 7.5%–12.5% range.
Methodology, formulas and assumptions
The engine applies each asset return to its opening holding: H(i,t) = H(i,t−1) × (1 + r(i,t)). Expenses and cash flows are then applied, followed by any rebalance at the observation’s close. Target trades are target weight × portfolio value − current holding. Closing prices are assumed; no intraperiod execution or market impact is modeled.
CAGR and volatility
CAGR = (end/start)^(periods/year ÷ periods) − 1 when there are no cash flows. With flows, CAGR is the geometric annualization of time-weighted period returns. Volatility is the sample standard deviation of those period returns times √periods/year.
Sharpe ratio
Sharpe = (arithmetic mean period return × periods/year − annual risk-free rate) ÷ annualized volatility. It deliberately does not use CAGR.
Drawdown
drawdown(t) = value(t) ÷ prior peak − 1. Maximum drawdown is the most negative observation.
Calendar conversion
rebalance periods = calendar months × observations/year ÷ 12, rounded to at least one observation. Thus 12 months equals 12 monthly, 4 quarterly, or 1 annual observation.
Thresholds
Absolute bands compare percentage-point drift; relative bands use |actual − target| ÷ target. The 5/25 rule uses min(5 points, 25% × target). Combined policies test this threshold only at calendar observations.
Turnover and cost
One-way turnover is Σ|buys and sells| ÷ (2 × portfolio value). Spread/slippage is charged once to each absolute buy and sell leg; it is not doubled again. Fixed commission is charged once per rebalance event.
Data and limitations
The built-in annual US series comes from Aswath Damodaran’s NYU Stern historical returns dataset. S&P 500 data includes dividends; Treasury bond returns include coupon income and price change. Gold is a price series. Uploaded price data is converted to close-to-close returns; use adjusted prices or total-return indexes to capture distributions. Missing return cells are 0%; missing prices are carried forward and disclosed. Dates must be unique and increasing.
Important limitations: taxes, tax lots, market impact, exchange rates, inflation, and intraperiod drift are not modeled. Backtests are sensitive to start date, observation frequency, timing luck, survivorship and proxy bias, correlations, and source quality. Annual built-in data cannot evaluate within-year monthly trades. Simulations simplify future return distributions. Historical and simulated results are not forecasts or investment advice.
Maintenance and reproducible checks
Calculator maintainer: Starlight Tools / Starlight Robotics. Calculation review and deterministic tests: 17 July 2026. No external financial-review credential is claimed.
Manual validation case: £100 split 50/50 across two assets, one annual period of +10% and 0%, no costs. Buy-and-hold ends at £105. Calendar rebalancing also ends at £105 before its closing trade; one-way turnover is 2.38% because £2.50 is sold and £2.50 bought, so £5 ÷ (2 × £105) = 2.38%.
Methodology version 2.0 change log: corrected calendar-frequency conversion; changed Sharpe to annualized arithmetic excess return; defined one-way turnover and per-leg costs; added cash flows, expense ratios, robust CSV handling, sensitivity analysis, reproducible simulation, accessible chart summaries, and auditable exports.
Not reliably. It can control risk and help in volatile, mean-reverting markets; buy-and-hold can finish higher in a persistent trend.
Calendar or threshold rebalancing?
Calendar rules are easy to administer. Threshold rules respond to drift but require monitoring. Combined rules check drift only on calendar dates.
Absolute or relative bands?
A 5-point absolute band around a 60% target means 55%–65%. A 5% relative band means 57%–63% because 5% of 60 points is 3 points.
How often should I rebalance?
No frequency is universally best. Use the sensitivity matrix to compare ending value, drawdown, turnover, and costs on the same data.
Are dividends and taxes included?
Built-in stock and bond total returns include distributions as described above. Uploads do only when you provide total-return or adjusted-price data. Taxes are not modeled.
What CSV format is required?
Use a date column followed by one column per asset. Headers, ISO dates, decimal or percentage returns, and price or adjusted-price levels are accepted.
Total return or price return?
Prefer total-return or adjusted-price data. Plain prices exclude dividends and distributions and can materially understate an investment’s return.
How are transaction costs treated?
The basis-point input applies once to each buy or sell leg. Optional fixed commission applies once per rebalance. Turnover is reported one-way.
Can contributions rebalance the portfolio?
Yes. New money can be directed to underweight assets first. Withdrawals are taken proportionally. Both remain optional.
What can a historical backtest prove?
It shows what rules would have done on one dataset under stated assumptions. It cannot forecast returns and remains subject to timing, selection, and data biases.