Backtest settings
Shared source: src/data.js via historical-data.js (same returns SuperCalc Pro uses). Available: . “Length of trial” is the forecast/test horizon. “Years between trials” is exactly how far each rolling fit window advances (1, 5, 10, etc.). A final “current” projection is always added using the latest complete fit (through the last index year), so you always get the now → future required CAGR. After updating SuperCalc data, run node regression/sync-data.mjs.
Selected trial — logarithmic graph
Rolling trial results
| Fit start | Fit end | Test end | Trend CAGR | Actual vs trend | Required CAGR | Actual CAGR | CAGR error | Actual vs target | R² |
|---|
Calculation method and data notes
- A synthetic index starts at 100 in the first data year and compounds the selected annual total-return series.
- Each trial fits ordinary least squares to
ln(index level)over the selected period. This makes the fitted trend a straight line on the displayed log scale. - The fitted line is extended by the selected number of years. Required CAGR is the annual return from the actual index at the fit end to that future trend value.
- Actual CAGR compounds the observed index between the same dates. CAGR error is actual minus required, in percentage points.
- When inflation adjustment is selected, each annual return is converted using
(1 + nominal return) / (1 + Australian CPI) − 1. - “Years between trials” is used exactly as entered. Fit windows and test windows may overlap when the interval is shorter than the trial length — that is intentional for dense rolling backtests.
- A final current projection is always added using the latest complete fit through the last index year (data through 2025 → index at 2026). With a 50-year fit and 10-year trial that is 1976–2026 projected to 2036 — not 2025–2035, because the synthetic index is dated at year-end after each annual return.
- Projection rows show the required CAGR to reach trend, but Actual CAGR / error / vs target are blank because there is no future market data yet.
- A negative required CAGR does not mean the market must fall. It means the index is far enough above the fitted trend that getting back to the line by the trial end would require negative compounding on that timetable — an artifact of the fit window as much as a directional call.
- Short fit periods (for example 30 years) with short trials (for example 5 years) can produce outputs that look like crash calls but flip positive with a longer fit. Run at least two fit lengths before treating one cell as a planning number.
- Background: Regression to the Mean and Future Returns — backtests, sensitivity tables, and how to read the outputs.
- The shared data begins in 1928, not 1926. A 50-year analysis therefore begins with 1928–1978 unless older returns are later added to
src/data.js.