Changes to results
Rearview keeps a set of saved runs, searches and walk-forwards on its test data, its golden replays, and runs each one again before every release to check that every file it wrote comes out byte for byte the same. When a change to Rearview changes any of them, or changes the results on some kinds of data, the change is listed here, newest first, with the reason. If one of your own saved runs might be affected, check it with Check It Reproduces in the app, or rvw repro.
The entries dated 2026-11-06 and earlier were made before Rearview went on sale, so they affect no buyer's saved runs.
2026-11-06 · engine 0.9.0
The engine's version moves to 0.9.0, in step with the app's, and every run, search and walk-forward records it, so these files name 0.9.0. No figure changed.
adx_breakout(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
bollinger_reversion(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
breakout_atr(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
hull_trend(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
ibs_reversion(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
keltner_breakout(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
ladder_scale_out(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
long_short_decile(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
low_beta_rotation(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
low_volatility_rank(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
macd_regime(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
momentum_rotation(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
monthly_rebalanced_momentum(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
near_52w_high(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
pullback_scale_out(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
pyramid_breakout(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
rotation_with_buffer(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
rsi2_pullback(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
sector_momentum(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
short_meanrev(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
sma_cross_trend(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
stochastic_pullback(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
supertrend_trend(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
three_down_days(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
trend_timing_etf(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
uncorrelated_pullback(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
volatility_sized_trend(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
volatility_targeted_weights(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
weekly_rsi_trend(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
long_short_margin(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
short_meanrev_margin(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
same_close(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
volume_cap(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
fractional_rebalance(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
lockbox_sealed(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
shared(portfolio):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
sleeves(portfolio):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
sleeves_rebalanced(portfolio):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
sleeves_selling(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_grid(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_formula(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_genetic(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_cmaes(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_random(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_portfolio(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_weights(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_benchmark(search):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
walkforward_stop(walkforward):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
- oos/manifest.json: "engine_version" "0.1.0" → "0.9.0"
walkforward_genetic(walkforward):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
- oos/manifest.json: "engine_version" "0.1.0" → "0.9.0"
walkforward_portfolio(walkforward):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
- oos/manifest.json: "engine_version" "0.1.0" → "0.9.0"
walkforward_weights(walkforward):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
- oos/manifest.json: "engine_version" "0.1.0" → "0.9.0"
search_signals(derived):- manifest.json: line 3:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- manifest.json: line 3:
walkforward_signals(derived):- manifest.json: line 3:
"engine_version": "0.1.0",→"engine_version": "0.9.0", - oos/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- manifest.json: line 3:
report_run(derived):- report.html: line 57, from column 321:
class="mono">55b011f4</span> · engine 0.1.0</p><div class="hero"><div><b>+4.7%</b><span>CAGR</span></div><div><b>+9.4%<…→class="mono">55b011f4</span> · engine 0.9.0</p><div class="hero"><div><b>+4.7%</b><span>CAGR</span></div><div><b>+9.4%<…
- report.html: line 57, from column 321:
report_portfolio(derived):- report.html: line 57, from column 309:
class="mono">55b011f4</span> · engine 0.1.0</p><div class="hero"><div><b>+8.2%</b><span>CAGR</span></div><div><b>+16.9%…→class="mono">55b011f4</span> · engine 0.9.0</p><div class="hero"><div><b>+8.2%</b><span>CAGR</span></div><div><b>+16.9%…
- report.html: line 57, from column 309:
report_search(derived):- report.html: line 68, from column 327:
class="mono">55b011f4</span> · engine 0.1.0</p><h2>Is this result luck?</h2><p class="sub">The best of 36 trials, by Sh…→class="mono">55b011f4</span> · engine 0.9.0</p><h2>Is this result luck?</h2><p class="sub">The best of 36 trials, by Sh…
- report.html: line 68, from column 327:
report_search_benchmark(derived):- report.html: line 68, from column 330:
class="mono">55b011f4</span> · engine 0.1.0</p><h2>Is this result luck?</h2><p class="sub">The best of 4 trials, by Sha…→class="mono">55b011f4</span> · engine 0.9.0</p><h2>Is this result luck?</h2><p class="sub">The best of 4 trials, by Sha…
- report.html: line 68, from column 330:
report_search_genetic(derived):- report.html: line 68, from column 330:
class="mono">55b011f4</span> · engine 0.1.0</p><h2>Is this result luck?</h2><p class="sub">The best of 60 trials, by Sh…→class="mono">55b011f4</span> · engine 0.9.0</p><h2>Is this result luck?</h2><p class="sub">The best of 60 trials, by Sh…
- report.html: line 68, from column 330:
report_walkforward(derived):- report.html: line 68, from column 415:
class="mono">55b011f4</span> · engine 0.1.0</p><h2>Did it hold up out of sample?</h2><p class="sub">6 folds, 4 settings…→class="mono">55b011f4</span> · engine 0.9.0</p><h2>Did it hold up out of sample?</h2><p class="sub">6 folds, 4 settings…
- report.html: line 68, from column 415:
benchmark_run(run):- manifest.json: "engine_version" "0.1.0" → "0.9.0"
report_run_tries(derived):- report.html: line 57, from column 303:
class="mono">55b011f4</span> · engine 0.1.0</p><div class="hero"><div><b>+8.1%</b><span>CAGR</span></div><div><b>+16.7%…→class="mono">55b011f4</span> · engine 0.9.0</p><div class="hero"><div><b>+8.1%</b><span>CAGR</span></div><div><b>+16.7%…
- report.html: line 57, from column 303:
late_listing(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
search_late(derived):- search/manifest.json: line 3:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- search/manifest.json: line 3:
report_stress(derived):- report.html: line 57, from column 305:
class="mono">55b011f4</span> · engine 0.1.0</p><div class="hero"><div><b>+7.4%</b><span>CAGR</span></div><div><b>+15.1%…→class="mono">55b011f4</span> · engine 0.9.0</p><div class="hero"><div><b>+7.4%</b><span>CAGR</span></div><div><b>+15.1%…
- report.html: line 57, from column 305:
live_replay(derived):- acct/backtest/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0", - acct/replay/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- acct/backtest/manifest.json: line 2:
report_live(derived):- report.html: line 57, from column 41435:
le><tr><td>Engine</td><td class="mono">0.1.0</td></tr><tr><td>Data fingerprint</td><td class="mono">55b011f48d8d0a9bd1e2…→le><tr><td>Engine</td><td class="mono">0.9.0</td></tr><tr><td>Data fingerprint</td><td class="mono">55b011f48d8d0a9bd1e2…
- report.html: line 57, from column 41435:
coins_trend(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
stocks_and_coins(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
search_coins(derived):- search/manifest.json: line 3:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- search/manifest.json: line 3:
report_coins(derived):- report.html: line 57, from column 301:
class="mono">4f50212e</span> · engine 0.1.0</p><div class="hero"><div><b>+4.9%</b><span>CAGR</span></div><div><b>+61.6%…→class="mono">4f50212e</span> · engine 0.9.0</p><div class="hero"><div><b>+4.9%</b><span>CAGR</span></div><div><b>+61.6%…
- report.html: line 57, from column 301:
futures_trend(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
stocks_and_futures(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
report_futures(derived):- report.html: line 57, from column 303:
class="mono">12de05e6</span> · engine 0.1.0</p><div class="hero"><div><b>+7.6%</b><span>CAGR</span></div><div><b>+108.3…→class="mono">12de05e6</span> · engine 0.9.0</p><div class="hero"><div><b>+7.6%</b><span>CAGR</span></div><div><b>+108.3…
- report.html: line 57, from column 303:
aud_account_us_stocks(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
two_exchanges(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
forex_trend(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
sleeves_forex(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
report_currencies(derived):- report.html: line 57, from column 296:
class="mono">bd268026</span> · engine 0.1.0</p><div class="hero"><div><b>+0.6%</b><span>CAGR</span></div><div><b>+6.4%<…→class="mono">bd268026</span> · engine 0.9.0</p><div class="hero"><div><b>+0.6%</b><span>CAGR</span></div><div><b>+6.4%<…
- report.html: line 57, from column 296:
intraday_orb(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
intraday_vwap(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
intraday_overnight(derived):- run/manifest.json: line 2:
"engine_version": "0.1.0",→"engine_version": "0.9.0",
- run/manifest.json: line 2:
report_intraday(derived):- report.html: line 57, from column 300:
class="mono">4fcc87b2</span> · engine 0.1.0</p><div class="hero"><div><b>-47.6%</b><span>CAGR</span></div><div><b>-26.5…→class="mono">4fcc87b2</span> · engine 0.9.0</p><div class="hero"><div><b>-47.6%</b><span>CAGR</span></div><div><b>-26.5…
- report.html: line 57, from column 300:
2026-11-04 · engine 0.1.0
Analyses and run reports add how much of the closed trades' P&L the best five trades made, and the profit factor and expectancy without them. No figure changed.
report_run(derived):- report.html: line 57, from column 34881:
8 in interest and rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→8 in interest and rebates</p><div class="card"><p>The best 5 trades made 16528% of the closed trades' P&L; without t…
- report.html: line 57, from column 34881:
report_portfolio(derived):- report.html: line 57, from column 29350:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 149% of the closed trades' P&L; without the…
- report.html: line 57, from column 29350:
report_walkforward(derived):- report.html: line 68, from column 26808:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 71% of the closed trades' P&L; without them…
- report.html: line 68, from column 26808:
analyze_run(derived):- analyze.json: line 723:
"costs": {→"concentration": {
- analyze.json: line 723:
analyze_benchmark(derived):- analyze.json: line 535:
"costs": {→"concentration": {
- analyze.json: line 535:
analyze_tries(derived):- analyze.json: line 528:
"costs": {→"concentration": {
- analyze.json: line 528:
report_run_tries(derived):- report.html: line 57, from column 28676:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 76% of the closed trades' P&L; without them…
- report.html: line 57, from column 28676:
report_stress(derived):- report.html: line 57, from column 28677:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 82% of the closed trades' P&L; without them…
- report.html: line 57, from column 28677:
report_live(derived):- report.html: line 57, from column 24152:
deposited less withdrawn</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→deposited less withdrawn</p><div class="card"><p>The best 5 trades made 206% of the closed trades' P&L; without the…
- report.html: line 57, from column 24152:
report_coins(derived):- report.html: line 57, from column 113919:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 187% of the closed trades' P&L; without the…
- report.html: line 57, from column 113919:
report_futures(derived):- report.html: line 57, from column 105140:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 107% of the closed trades' P&L; without the…
- report.html: line 57, from column 105140:
report_currencies(derived):- report.html: line 57, from column 102520:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made 25803% of the closed trades' P&L; without t…
- report.html: line 57, from column 102520:
report_intraday(derived):- report.html: line 57, from column 12942:
from interest or rebates</p><div class="grid"><div class="card"><h3>By sector</h3><p class="def">Your data's sectors no…→from interest or rebates</p><div class="card"><p>The best 5 trades made $1,057, and all 954 closed trades -$26,471; wit…
- report.html: line 57, from column 12942:
2026-11-02 · engine 0.1.0
where the money came from: analyze and the run report add results by security and sector, the worst falls and figures against the benchmark
report_run(derived):- report.html: line 57, from column 34717:
$22,343</td></tr></table></div></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→$22,343</td></tr></table></div></div><h2>Where the money came from</h2><p class="sub">From $100,000 to $109,399: the tra…
- report.html: line 57, from column 34717:
report_portfolio(derived):- report.html: line 57, from column 29197:
</td><td>1.00</td></tr></table></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→</td><td>1.00</td></tr></table></div><h2>Where the money came from</h2><p class="sub">From $100,000 to $116,856: the tra…
- report.html: line 57, from column 29197:
report_walkforward(derived):- report.html: line 68, from column 26655:
$17,935</td></tr></table></div></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→$17,935</td></tr></table></div></div><h2>Where the money came from</h2><p class="sub">From $100,000 to $117,794: the tra…
- report.html: line 68, from column 26655:
analyze_run(derived):- analyze.json: line 2:
"costs": {→"benchmark": null,
- analyze.json: line 2:
analyze_tries(derived):- analyze.json: line 2:
"costs": {→"benchmark": null,
- analyze.json: line 2:
report_run_tries(derived):- report.html: line 57, from column 28523:
$16,747</td></tr></table></div></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→$16,747</td></tr></table></div></div><h2>Where the money came from</h2><p class="sub">From $100,000 to $116,665: the tra…
- report.html: line 57, from column 28523:
report_live(derived):- report.html: line 57, from column 23957:
n">$383</td></tr></table></div></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→n">$383</td></tr></table></div></div><h2>Where the money came from</h2><p class="sub">From $50,000 to $55,200: the trade…
- report.html: line 57, from column 23957:
report_coins(derived):- report.html: line 57, from column 113766:
</td><td>1.00</td></tr></table></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→</td><td>1.00</td></tr></table></div><h2>Where the money came from</h2><p class="sub">From $100,000 to $161,555: the tra…
- report.html: line 57, from column 113766:
report_futures(derived):- report.html: line 57, from column 104979:
</td><td>1.00</td></tr></table></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→</td><td>1.00</td></tr></table></div><h2>Where the money came from</h2><p class="sub">From $5,000,000 to $10,413,903: th…
- report.html: line 57, from column 104979:
report_currencies(derived):- report.html: line 57, from column 102360:
A$2,416</td></tr></table></div></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→A$2,416</td></tr></table></div></div><h2>Where the money came from</h2><p class="sub">From A$1,000,000 to A$1,064,480: t…
- report.html: line 57, from column 102360:
report_intraday(derived):- report.html: line 57, from column 12789:
$26,471</td></tr></table></div></div><h2>Returns by year and month</h2><p class="sub">Each period from the previous peri…→$26,471</td></tr></table></div></div><h2>Where the money came from</h2><p class="sub">From $100,000 to $73,529: the trad…
- report.html: line 57, from column 12789:
2026-10-31 · engine 0.1.0
Runs warn FILL_OVER_VOLUME when, with no volume cap, a fill is larger than all its bar traded. No figure changed.
intraday_vwap(derived):- run/warnings.json: line 1:
[]→[
- run/warnings.json: line 1:
2026-10-31 · engine 0.1.0
Runs warn SUSPECT_ACTION when a held position takes a split or dividend its prices don't back. No figure changed.
sleeves_selling(run):- warnings.json: "" [{"code":"DELIST_ASSUMED","date":"2017-01-09","id":20,"message":"delisting reason is OTHER or UNKNOWN; the exchange h…
2026-10-26 · engine 0.1.0
Searches record the Reality Check: whether the best setting's Sharpe ratio beats the benchmark's after counting every try, or why there's no comparison (no benchmark in the run settings). No figure changed.
search_grid(search):- luck.json: "reality_check" null → null; "reality_check_skipped" null → "no benchmark is set in the run settings"
search_formula(search):- luck.json: "reality_check" null → null; "reality_check_skipped" null → "no benchmark is set in the run settings"
search_random(search):- luck.json: "reality_check" null → null; "reality_check_skipped" null → "no benchmark is set in the run settings"
search_portfolio(search):- luck.json: "reality_check" null → null; "reality_check_skipped" null → "no benchmark is set in the run settings"
search_weights(search):- luck.json: "reality_check" null → null; "reality_check_skipped" null → "no benchmark is set in the run settings"
search_late(derived):- search/luck.json: line 29, from column 26:
ds at least 30 trials; this search has 4"→ds at least 30 trials; this search has 4",
- search/luck.json: line 29, from column 26:
2026-10-26 · engine 0.1.0
Run reports and analyses gain the trade order: the closed trades replayed in 2,000 other orders, for the drawdowns their order alone could give. No figure changed.
report_run(derived):- report.html: line 57, from column 45686:
n"><b>-14.6%</b></td></tr></table></div><h2>Trades</h2><p class="sub">103 closed trades: P&L over entry value</p><di…→n"><b>-14.6%</b></td></tr></table></div><p class="sub">The 103 closed trades one after another, each as a share of the e…
- report.html: line 57, from column 45686:
report_portfolio(derived):- report.html: line 57, from column 40247:
"n"><b>-8.1%</b></td></tr></table></div><h2>Trades</h2><p class="sub">127 closed trades: P&L over entry value</p><di…→"n"><b>-8.1%</b></td></tr></table></div><p class="sub">The 127 closed trades one after another, each as a share of the e…
- report.html: line 57, from column 40247:
report_walkforward(derived):- report.html: line 68, from column 33471:
"n"><b>-3.7%</b></td></tr></table></div><h2>Walk-forward folds</h2><p class="sub">Each window's best setting on its in-s…→"n"><b>-3.7%</b></td></tr></table></div><p class="sub">The 105 closed trades one after another, each as a share of the e…
- report.html: line 68, from column 33471:
analyze_run(derived):- analyze.json: line 1017:
"trades": {→"trade_order": {
- analyze.json: line 1017:
2026-10-23 · engine 0.1.0
Report axes give their ticks the decimals the step needs, as the app does: a scatter axis in 2.5% steps read -8% for -7.5%. Years and months on a time axis thin out as in the app, and a walk-forward under a year gives its length in trading days. No figure changed.
report_walkforward(derived):- report.html: line 68, from column 37982:
"8" y2="240"/><text x="121.9" y="255.0">-8%</text><line class="grid-line" x1="217.9" x2="217.9" y1="8" y2="240"/><text x…→"8" y2="240"/><text x="121.9" y="255.0">-7.5%</text><line class="grid-line" x1="217.9" x2="217.9" y1="8" y2="240"/><text…
- report.html: line 68, from column 37982:
2026-10-22 · engine 0.1.0
Reports label their charts better: an equity axis within one decade gets round dollar steps rather than a single label, and a run under a year gives its length in trading days and marks months or days along its dates. No figure changed.
report_run(derived):- report.html: line 57, from column 773:
ne class="grid-line" x1="0" x2="936" y1="145.1" y2="145.1"/><text x="942.0" y="149.1">$100,000</text><line class="grid-l…→ne class="grid-line" x1="0" x2="936" y1="251.3" y2="251.3"/><text x="942.0" y="255.3">$90,000</text><line class="grid-li…
- report.html: line 57, from column 773:
report_portfolio(derived):- report.html: line 57, from column 849:
00,000</text><line class="grid-line" x1="240.1" x2="240.1" y1="8" y2="260"/><line class="grid-line" x1="712.8" x2="712.8…→00,000</text><line class="grid-line" x1="0" x2="936" y1="122.7" y2="122.7"/><text x="942.0" y="126.7">$110,000</text><li…
- report.html: line 57, from column 849:
report_walkforward(derived):- report.html: line 68, from column 3627:
00,000</text><line class="grid-line" x1="616.8" x2="616.8" y1="8" y2="260"/><polyline class="s-strategy" points="0.0,218…→00,000</text><line class="grid-line" x1="0" x2="936" y1="160.3" y2="160.3"/><text x="942.0" y="164.3">$105,000</text><li…
- report.html: line 68, from column 3627:
2026-10-22 · engine 0.1.0
Runs now start on the first day a stock or ETF has a bar, not on the first day of the data's calendar (rule C78). None of the saved results changed. A run of your own changes only when its data has an index whose bars start before every stock and ETF, and the run has no later start date. It now starts later, so Check It Reproduces says it differs; run it again for the new figures.