How to use the DCA Scenario Explorer

Put a set amount into an asset on a schedule, or when a signal fires, and see what it would have grown to. Part 1 shows how to use the tool and its Portfolio mode. Part 2 shows how every figure is worked out. Every demo is the real tool, running live in your browser. Press Pause on one to try it yourself.

The short version

  1. Load the prices

    One click on a Quick Start loads an example. Or list tickers on the Data tab, or make up an asset from a return and a volatility, and set the Date Range.

  2. Set each scenario

    On Scenarios, each plan gets an asset, an Amount per top-up and an Investment Style: a fixed day, a price move, a technical signal, or a hindsight benchmark.

  3. Simulate and read

    Press ▶ Simulate. One sentence names the best plan; the Final Summary gives each one's value and ROI. Portfolio mode does the same for whole portfolios.

Nothing is uploaded. Prices come from Yahoo Finance through the site's own server and are kept in your browser; every run is worked out there. This guide is general information, not financial advice.

The screen

Inputs on the left, the answer and the charts beside them, the detail under the charts. Point at a part in the list to see where it is.

  1. Inputs

    Quick Start, save and open, then three tabs: Data, Scenarios and Assumptions. ▶ Simulate sits at the bottom. The chevrons fold the card to a slim Inputs rail.

  2. The answer

    One sentence: which scenario did best, and by how much. Under it, the Final Summary: a tile per scenario, and Advanced metrics.

  3. Charts

    Security Prices, with each buy marked if you like, and Portfolio Value Over Time against the money put in. Each has Share and ⟳.

  4. Details

    The Detailed Breakdown, every buy of one scenario, and What this assumes, both opening from their chevrons.

Portfolio mode, linked above the inputs as the Portfolio DCA Simulator, runs whole portfolios: several assets at target weights, rebalanced, with fees and a cash account.

  1. Inputs

    The same Data and Assumptions tabs. Portfolios holds a tab per portfolio, each with Top-Ups, Assets and Rebalancing.

  2. The answer

    Which portfolio ended highest, then a tile per portfolio: value, net gain, ROI, top-ups and the share left in cash.

  3. Portfolio Value Over Time

    A line per portfolio against the money topped up. In Optimise mode it becomes the sweep.

  4. Detailed Breakdown

    One portfolio at a time: its assets' prices, its Composition Over Time, and the Breakdown Table of every event.

Top right on both pages, Tour replays a one minute walk through the page, and Guide opens this page. The ticker reference lists the codes Yahoo Finance uses for shares, funds, indices, currencies and crypto.

Quick Start

Three worked comparisons on real prices: Monthly vs Weekly ($520 a month against $120 a week into SPY), Equity vs Money Market ($500 a month into DHHF.AX against AAA.AX) and Stock vs ETF ($500 a month into AAPL against SPY). One click replaces the scenarios and runs them.

On a phone, press Full screen under a demo and turn the phone sideways to read it.

Open the inputs, pick Monthly vs Weekly
  1. Open the inputs

    On a first visit the card is folded to a rail, so the answer has the room. Click Inputs to open it; it stays the way you leave it.

  2. Pick an example

    Hover a button to read what it compares. A click loads it and runs it.

  3. Read the answer

    $520 a month and $120 a week put in about the same money, so the sentence compares the return on it: 56.68% against 55.87%.

  • Every demo here runs 1 Oct 2021 to 30 Sep 2026, on prices saved with this guide. The tool opens on the last five years to today, so your own run of an example will differ.
  • A Quick Start is a fresh start. It clears the scenarios and settings first; prices already loaded stay, so no download is wasted.

The Data tab

What every scenario can buy, and the days it runs over. Load prices once here; scenarios then pick from them.

The loaded assets, a simulated asset, the dates
  1. Currency

    Currency Symbol is the label money wears. Nothing is converted.

  2. Loaded assets

    Folded to one line. Open it to see each ticker's name and dates, remove one, Refresh to today or Clear all.

  3. Real or Simulated

    Real: list Tickers and press ⤓ Load tickers. Simulated: an Asset name, a Return and a Standard deviation, then + Add Simulated Asset.

  4. Date Range

    Start and End. The run uses the trading days every scenario's asset shares.

  • Five loads a day, 25 tickers each. The data server is shared, so list everything at once. A ticker already loaded costs nothing, and both pages share the same prices.
  • Prices from 1990 on. A load fetches each ticker's whole history from 1 Jan 1990, so changing the dates within it needs no new load.

The Scenarios tab

A scenario is one plan: an asset, how much each top-up puts in, and when it buys. Add as many as you like; each runs on its own and they are compared.

Monthly vs Weekly: the monthly plan copied into AAPL
  1. A tab per scenario

    Click a tab to edit it, double-click to rename it. + adds one, the icons copy or remove the one open.

  2. Pick the asset

    Asset lists the loaded tickers and simulated assets. Type a ticker or part of its name.

  3. Name it

    The name and the colour beside it are labels only: changing them never sends the results out of date.

  4. Top-ups

    Amount per top-up, then Yearly increase: 10 makes year 2 +10% and year 3 +21%.

  5. Simulate

    Any change greys the results and lights ▶ Simulate, so a chart never shows numbers the form no longer holds.

  • The amount is per purchase. A weekly style buys 52 times a year, a monthly one 12. Switching between them restates the amount so a year's money stays the same: $500 a month becomes $115.38 a week.

Investment Style

When a scenario buys. Four families, each opened by its pill: only the options of the open family, and the settings of the style picked, show.

The four families, then RSI with its indicator on the chart
  1. Date

    Monthly (Fixed Date) on a Day of month, or Weekly (Fixed Day) on a Day of week. A holiday moves it to the closest trading day.

  2. Momentum

    Buy the Dip or Buy the Peak: once the price has moved the Threshold from the period's first close. Invest at End of Month if target not reached buys anyway on its last day.

  3. Technical

    MA Crossover, RSI Oversold Buy, Bollinger Band Dip, MACD Bullish Cross, MACD Histogram Recovery, ADX Trend Filter, each with its own settings. At most one buy a month or a week, by Frequency.

  4. Forward

    The month's or week's highest or lowest price day. They need tomorrow's prices, so they are benchmarks: the best and worst a plan on that cadence could have done.

  5. Run it

    Show Indicators draws the signal behind a technical style, Show Buy Date marks each buy under the price.

  • A signal that never fires buys nothing. With the end-of-period box off, a month without a signal is skipped, so less money goes in. Compare such a plan on ROI, not on its final value.
  • Indicators start from the first date. They are worked out on the prices in the Date Range alone, so a 200-day average gives no signal in the first 200 trading days.

The Assumptions tab

Three settings every scenario shares.

Monthly vs Weekly, filled at the same day's close
  1. Trade at

    Every rule decides on a day's close. The order fills at Same day's close, Next day's open (the default: decide in the evening, buy next morning) or Next day's close.

  2. Risk-Free Rate

    What money earns without risk, a year. It only feeds Sharpe and Sortino and moves no money.

  3. Simulation Seed

    Fixes the random path of a simulated asset, so one seed always gives the same prices.

  4. Simulate

    A fill at the close here moves the result by about $24 on $48,884: when you buy within a day hardly matters.

The answer and the charts

The sentence at the top is the whole answer. Under it, the figures behind it and two charts.

Monthly vs Weekly: the answer, the tiles, the charts
  1. The answer

    The same money in: the highest final value wins. Different money in: the highest return on it does.

  2. Final Summary

    Each tile: the final value, ROI, Topped up and Trades. Advanced metrics adds Sharpe, Sortino, CAGR (TWR) and CAGR (MWR).

  3. Security Prices

    The price of the first scenario's asset; click a legend entry to add another, scaled to 100 so they compare. Candlesticks shows each day's open, high, low and close.

  4. Portfolio Value

    What each scenario holds, day by day, over the dashed Total deposited. The gap between them is the gain.

  • Blue and gold are options, not good and bad. Scenarios take the site's neutral colours; red is kept for a price falling.
  • Zoom and pan a chart with the wheel or a drag; ⟳ resets it. Hover to read every scenario on that day.

Detailed Breakdown and What this assumes

Under the charts, the working behind the answer.

Every buy, then what the run rests on
  1. Detailed Breakdown

    Opens from its chevron: a row per buy with the day it filled, the day it was Decided, the price, the units, the running totals and the return so far.

  2. Pick a scenario

    The menu picks whose buys show. ⬇ CSV saves them.

  3. What this assumes

    The figures and rules this run used, from your own inputs: the price source, the dates, the fills, the top-ups.

Optimise

The gold gauge beside a setting sweeps it: the scenario on screen runs once for every value in a range, up to two settings at once, so you see how the answer moves and where it peaks.

The day of the month, swept from the 1st to the 28th
  1. Pick a setting

    Click the gauge beside it. Any amount, day, threshold or indicator setting has one.

  2. Set the range

    Start value, End value and Steps, or a pick from a list. The line under it counts the runs.

  3. Optimise

    The button reads ▶ Optimise and Cancel sits beside it. Only this scenario runs, so its tabs stay locked until you cancel.

  4. Read the sweep

    The answer names the best value against yours; the tiles show Best, Your current setting and Worst. Two settings draw a surface.

  5. Show a run below

    Shown in the charts below picks the tested value the charts and the breakdown show. A click on the chart does the same.

  • Show picks what the sweep ranks by: ROI, Final value, Net, Sharpe, Sortino, CAGR (TWR) or CAGR (MWR).
  • Up to 625 runs. 50 values for one setting, or 25 by 25 for two.
  • The best is the best for these past prices, not a forecast. Here every day from the 1st to the 28th lands within a few hundred dollars.

Save, export and share

The tool keeps your scenarios in this browser between visits. The rest makes something to keep or send.

Save, open and Share
  1. Save or open a file

    The two icons beside Quick Start write every scenario and setting to a file, and read one back. Prices are not saved; a load fetches them again.

  2. Share a chart

    As SVG or PNG, a copy to the clipboard, a link that opens your scenarios, or an embed for a web page.

  • An embed carries its own prices, just the dates it draws, so it shows the same chart on any site without loading anything. A link opens the tool on your scenarios and loads prices as a visit does.

Same inputs, two screens

Portfolio mode runs the same kind of plan on the same prices: a tab per plan, an amount per top-up, a yearly increase, a day it buys on. A plan there holds several assets instead of one. Point at a field in the list to see it on both.

DCA Scenario Explorer: one asset per scenario.
Portfolio DCA Simulator: several assets per portfolio.
  1. A tab per plan

    A scenario there, a portfolio here: click to edit, double-click to rename, copy or remove.

  2. Amount per top-up

    The same field: the money each top-up puts in.

  3. Yearly increase

    The same field, compounding once a year.

  4. When it buys

    The Investment Style there; the Top-up period and its Schedule here.

DCA Scenario ExplorerPortfolio DCA SimulatorWhat differs
Currency Symbol, Tickers, Simulated, Date RangeThe same Data tabNothing: both pages share the loaded prices and the simulated assets.
Scenario tabsPortfolio tabsA portfolio holds several assets; a scenario holds one.
Amount per top-up, Yearly increaseAmount per top-up, Yearly increase (Top-Ups)None.
Investment Style: Monthly (Fixed Date), Weekly (Fixed Day)Top-up period, ScheduleWeekly, fortnightly, monthly, quarterly or yearly, on one or several days.
Investment Style: Momentum, TechnicalRule-Based Triggers, a trigger per asset (Rebalancing)Top-ups wait in a reserve, earning the risk-free rate or held in an asset, until each asset's own trigger fires.
Investment Style: ForwardNoneThe hindsight benchmarks are on the main page only.
AssetAssets, Target Weights, MethodSeveral assets, each with a weight, and a rule for how top-ups and rebalances share the money out.
NoneBuying fee, Selling feeThe main page charges no fees.
Risk-Free Rate (Assumptions)Risk-Free Account: Rate or Ticker (Top-Ups)Here it is real money: cash waiting to be invested earns it. It also sets each portfolio's Sharpe and Sortino.
Trade at, Simulation SeedTrade at, Simulation SeedNone.
Final Summary, Advanced metrics, OptimiseThe sameA tile adds Net and the share in cash; weights can be swept too.
  • What it adds. Several assets in one plan, kept at their weights or not, with fees on every trade and interest on idle cash.
  • What it holds fixed. The engine: a portfolio of one asset at 100%, with no fees, topped up on the same day, gives the main page's figures, buy for buy, metric for metric.

Portfolio mode: Quick Start

Three Quick Starts: 80/20 vs 60/40 (DHHF.AX shares and AAA.AX cash), Rebal Monthly vs Quarterly and Rebal vs Constant Alloc (both 50/50 SPY and GOVT bonds). Each tops up $1,000 a month.

Portfolio mode: 80/20 against 60/40
  1. Pick a comparison

    Hover a button to read what it compares; a click loads it and runs it.

  2. Read the answer

    The same $60,000 went in, so the final values compare: 80/20 ends $3,311 ahead, and the ★ marks it.

Portfolio mode: assets and weights

Each portfolio holds its own list of assets, and a target share for each.

Rebal vs Constant Alloc: AAPL added at 20%
  1. A tab per portfolio

    Click to edit, double-click to rename. Each portfolio has its own assets, schedule, method and fees.

  2. Add an asset

    On Assets, pick a loaded ticker or simulated asset and press + Add. Drag a row to reorder.

  3. Target Weights

    On Rebalancing: each asset's share, which must add up to 100%. The ring shows the mix.

  4. Simulate

    The Constant Weight portfolio now holds SPY, GOVT and AAPL at 40/40/20.

Portfolio mode: rebalancing and fees

The Method decides how a top-up becomes units, and whether anything is ever sold to stay on target.

80/20 vs 60/40: 80/20 rebalanced every quarter
  1. Method

    Towards Weight, Constant Weight, Constant Allocation, Trend Following or Rule-Based Triggers. The pencil reopens the list.

  2. Rebalance Timing

    Constant Weight rebalances At top-up, or on a Separate schedule, its own Rebalance period, with top-ups waiting in cash until then.

  3. Fees

    Buying fee and Selling fee, a % of every trade.

  4. Simulate

    The answer and the tiles follow.

Portfolio mode: top-ups and cash

How much goes in, when, and what money earns while it waits to be invested.

Rebal Monthly vs Quarterly: idle cash earning 4%
  1. Contribution

    Amount per top-up and Yearly increase, as on the main page.

  2. When it tops up

    Top-up period, then its Schedule: weekdays, days of the month, the months of a quarter, or a month and day. The line under it says it in words.

  3. Risk-Free Account

    Cash waiting to be invested earns a Rate, or follows a money market Ticker.

  4. Simulate

    The quarterly portfolio holds each top-up in cash for up to three months; at 4% that cash now earns.

Portfolio mode: the results

The same answer and tiles as the main page, then one portfolio at a time in detail.

80/20 vs 60/40: the results
  1. Final Summary

    A tile per portfolio. Advanced metrics shows that 60/40 earned less but scored the higher Sharpe: less return, a smoother ride.

  2. Portfolio Value

    A line per portfolio over the dashed top-ups. Show Top-Ups hides them.

  3. One portfolio in detail

    Portfolio picks whose prices, composition and events show below.

  4. Composition

    Cash and each asset stacked to the total, in $ Value or % of Portfolio.

  5. Breakdown Table

    The start, every top-up, rebalance and trigger, and the end, with cash, interest and fees so far. ⬇ CSV (full daily) saves every day.

  • Optimise works here too, from the gauges beside the amount, the schedule, the fees, the risk-free rate, trigger settings and the weights.
  • Every portfolio runs on the trading days all of them share, the risk-free ticker included.
Part 2

How the numbers work

What each field means, where it enters the sums, and what moving it does to the answer and why. All of it is read from the tool's own code (script.js on each page, the indicators and fills in shared.js).

The model in one picture

Dollar-cost averaging (DCA) means putting a set amount in on a schedule, whatever the price. Each top-up buys as many units as its money buys that day, in fractions where needed. The holding is worth its units at each day's close. At the end the tool asks two things: what is it worth, and what did it return on the money put in?

Units bought ui = aipieach top-up
Final value V = U × Pend, with U = Σ ui
ROI = V − DD = Pendaverage cost − 1average cost = D ÷ U
  • aithe money in top-up i
  • pithe price it fills at (Trade at)
  • Uunits held at the end
  • Pendthe close on the last day
  • DTopped up: the sum of every ai

The last form is the whole of DCA in one line: your return is the last price over the average price you paid. And a fixed amount pays less than the average price, because it buys more units when the price is low and fewer when it is high. With equal top-ups the average cost is the harmonic mean of the fill prices, which is never above their ordinary mean:

Average cost = n × aΣ a ÷ pi = nΣ 1 ÷ pi ≤ Σ pin
  • In the example below, SPY's 60 fills averaged $512.90, but $520 a month paid $486.74 a unit on average: 5% less, from buying more in the 2022 fall.
  • The answer compares like with like. When every scenario put in about the same money (within 0.5%), the highest final value wins. When they did not, more money in is not a better plan, so the sentence ranks them by ROI.
  • DCA against a lump sum. The tool has no lump-sum scenario. A lump sum puts all the money to work on day one; a monthly plan has, on average, about half of it at work. In a market that rose, as SPY did (from $406 to $763 over the window, up 88%), the lump sum ends ahead. What DCA buys is protection from putting everything in at a peak. CAGR (TWR), below, is the nearest stand-in for the lump sum's rate.

The prices include dividends. Yahoo Finance's adjusted close folds every dividend and split into the price, so a holding grows as if dividends were reinvested. A ticker that falls back to Stooq is unadjusted: it shows ⚠️ in the loaded list, and What this assumes says its dividends are left out.

Data: the prices and the dates

A real ticker is its daily prices. A simulated asset is one random path built from a yearly return and a volatility, by geometric Brownian motion: each weekday's price is the last one times a random factor.

Simulated price Pt+1 = Pt × exp((μ − σ²÷2) Δt + σ √Δt zt)P0 = 100, Δt = 1 ÷ 252
  • μReturn, a year
  • σStandard deviation, a year
  • zta random draw, close to a standard normal (the sum of three uniform draws)
FieldWhat it isIn the mathsRaise it
Currency SymbolThe symbol every amount wears.A label only. A ticker is read in the currency it is quoted in, so DHHF.AX is in Australian dollars and SPY in US dollars, whatever the symbol.no effect
TickersThe assets to load, by their Yahoo Finance codes.Their daily adjusted closes, and opens, highs and lows scaled to match, from 1990 on.more to choose from
Asset nameA simulated asset's name.In Portfolio mode, part of the random seed: the same name, return and volatility give the same path in every portfolio. On the main page the seed takes the scenario's name instead (see the warning below).a label and a seed
ReturnThe yearly growth the simulated path is built around.μ. One path is one draw: its own growth lands above or below μ.▲ final value
Standard deviationHow hard the simulated price swings in a year.σ. The middle path grows at eμ − σ²÷2 − 1 a year: at a 10% return and 18%, about 8.7%.▲ swings▲ DCA's discount on average cost
Start, EndThe Date Range.Every scenario runs on the trading days all of their assets share, from the first on or after Start to the last on or before End.earlier Start: more top-upsmoves the answer most

Watch out: two markets share only their common days. Put an ASX fund beside a US one and each skips the other's holidays; a seven-day crypto series loses its weekends. The run says how many days it used under the dates.

Watch out: on the main page a simulated path follows the scenario's name. Its seed is the Simulation Seed with the scenario's name, return and volatility, so two scenarios on one simulated asset, named differently, buy into two different paths, and renaming a scenario redraws its path at the next Simulate. To compare two styles on one simulated path, compare them in Portfolio mode, or give each scenario the asset's own name.

Scenarios: the top-ups and the asset

A scenario's money is its amount on each buy day, stepped up once a year if you ask. Nothing waits in cash: a top-up is deposited on the day it buys.

Top-up on day t at = A × (1 + g)⌊y⌋
  • AAmount per top-up
  • gYearly increase
  • yyears since the run's first day; ⌊ ⌋ keeps the whole years
FieldWhat it isIn the mathsRaise it
Scenario name, colourWhat the plan is called and drawn in.Labels, for a real ticker. For a simulated asset the name is part of its random seed (see Data, above).no effect on a ticker
Amount per top-upThe money each buy puts in.A. Units, deposits and the final value all scale with it; ROI does not move.▲ final valueROI unchanged
Yearly increaseHow much the amount grows each year, compounding.g: year 2 buys A(1 + g), year 3 A(1 + g)². Later money has less time to grow, so ROI usually dips.▲ final value▼ ROI, usually
AssetThe loaded ticker or simulated asset this plan buys.The price series p and Pend. Every other field only decides when, and how much, to buy it.the biggest choice

Watch out: no fees and no tax here. Each top-up buys its whole amount. That flatters a weekly plan most, which trades four times as often. Portfolio mode charges a fee on every trade.

Investment Style: the day it buys

Every style names a decision day, and the order fills by Trade at. Date styles buy every period. Momentum and technical styles buy at most once a period: the first day their rule holds, or the period's last trading day if Invest at End of Month (or Week) is ticked.

Momentum movet = CtCfirst − 1Buy the Dip when move ≤ −θ, Buy the Peak when move ≥ θ
RSI = 100 − 1001 + Gn ÷ Lnaverage daily gain over loss, Wilder smoothing over n days
  • Ctthe day's close
  • Cfirstthe close on the period's first trading day
  • θThreshold
  • nRSI period
FieldWhat it isIn the mathsRaise it
Monthly (Fixed Date): Day of monthBuy once a month on this day.The trading day whose date is closest to it, so the 31st buys on a short month's last trading day.barely moves it
Weekly (Fixed Day): Day of weekBuy once a week on this weekday.The closest trading day in that week; Saturday and Sunday land on Friday.barely moves it
Buy the Dip, Buy the Peak: ThresholdThe move from the period's first close that triggers a buy.θ, tested each day as above. A bigger dip is rarer, so with the end-of-period box off fewer months buy.fewer buys on signal
FrequencyMonthly or Weekly: the window a momentum or technical style buys in at most once.The period above. A switch restates the amount so a year's money stays the same: × 12 ÷ 52, or back.weekly: more, smaller buys
Invest at End of Month (or Week) if target not reachedA buy on the period's last trading day when the rule never held.On: every period buys, so the money in matches a date plan. Off: a quiet period is skipped and its money never goes in.off: ▼ money in
MA Crossover: Fast MA, Slow MAA type (SMA or EMA) and a length in days for each.Buys the day the fast average closes above the slow one after being at or below it (a golden cross).longer: rarer signals
RSI Oversold Buy: RSI period, Oversold <The RSI's length, and the level it must fall below.Buys on a day RSI(n) is under the level.higher level: more signals
Bollinger Band Dip: MA period, Deviations, TriggerThe bands: an SMA of n days ± k standard deviations.Close below lower band: a close under SMA − kσ. Reclaim above lower band: the day it closes back above it.more deviations: rarer signals
MACD Bullish Cross: Fast EMA, Slow EMA, Signal EMAMACD is the fast EMA less the slow one; its signal is an EMA of MACD.Buys the day MACD crosses above its signal line.longer: slower signals
MACD Histogram Recovery: Hist >The histogram is MACD less its signal.Buys the day it rises above the level after being at or below it. The level is in the price's own units.rarer signals
ADX Trend Filter: ADX period, Trend >Trend strength, 0 to 100, and the bar it must clear.Buys on a day ADX is above the bar. Worked from closes alone, with the high and the low taken as the close.higher bar: rarer signals
Monthly (Top), (Bottom); Weekly (Top), (Bottom)The Forward styles: the period's highest or lowest close.The day is picked after the period is over, so no one could follow it. It brackets what any timing rule on that cadence could do.a benchmark

Watch out: the Forward styles look ahead. The tool says so in amber, and What this assumes calls them hindsight. Even so, in the example below perfect hindsight within each month moved the result by only about $1,300 either way on $31,200.

Assumptions: the fill, the seed and the risk-free rate

Every rule decides on a day's close, using only prices up to that close (Forward styles aside). Trade at sets where the order fills.

Fill price p = Cd, or Od+1, or Cd+1same day's close, next day's open, next day's close
  • dthe decision day
  • O, Ca day's open and close
FieldWhat it isIn the mathsRaise it
Trade atWhen an order fills.The fill price above. A missing open fills at the last close, and the run says so; a decision on the last day with a next-day fill never fills.barely moves it
Simulation SeedThe starting point of the random numbers.Each simulated asset's path is seeded by this and its name, return and volatility. A new seed is a new path, the same spread of outcomes.another path
Risk-Free RateWhat money earns with no risk, a year.Rf in Sharpe and Sortino only. No money earns it on this page.▼ Sharpe and Sortinono money moves

The figures: ROI, CAGR (TWR), CAGR (MWR), Sharpe and Sortino

ROI is the plain gain on what went in. The rest come from the daily value, starting on the first day money is at work, and turn the result into a rate a year and a reward for the risk taken.

Daily return rt = Vt − FtVt−1 − 1the day's top-up taken out
CAGR (TWR) = (Π (1 + rt))1 ÷ Y − 1
CAGR (MWR): the rate x with Σ ai(1 + x)ti = V(1 + x)Tthe internal rate of return (XIRR)
Sharpe = mean(r − rf)sd(r) × √252Sortino: the same over the downside deviation, √mean(min(0, r − rf)²)
  • Ftthe money topped up that day
  • Yyears from the first buy to the last day
  • ti, Tyears from the first buy to top-up i, and to the end
  • rfthe daily risk-free rate, (1 + Rf)1÷252 − 1
FigureWhat it isIn the mathsRead it
Final valueWhat the holding is worth on the last day.U × Pend.▲ better, for the same money in
ROIThe gain as a share of the money put in.(V − D) ÷ D. It ignores when the money went in.▲ better
Topped up, TradesThe money put in, and how many buys.D, and the number of fills.context
CAGR (TWR)The holding's own growth rate a year, whatever you put in when.The chained daily returns, top-ups taken out. Close to the asset's own growth from the first buy.▲ better asset
CAGR (MWR)Your own money's growth rate a year.The rate that makes the top-ups grow into the final value, found by bisection.▲ better timing
SharpeReturn above the risk-free rate per unit of swing.As above, from daily returns, scaled to a year.▲ smoother return
SortinoSharpe counting only the falls as risk.As above.▲ fewer deep falls
  • TWR against MWR is the timing test. TWR grades the asset; MWR grades your money. A monthly plan holds little in year 1 and the most at the end, so MWR leans on the later years. For SPY $520 a month, TWR was 14.21% and MWR 18.06%: the 2022 fall hit only the first few thousand dollars, and most of the money was at work in the strong years after.
  • The display switches (Advanced metrics, Candlesticks, Show Buy Date, Show Indicators, Show Total Deposited) change what you see, never a figure.

Watch out: no drawdown, and Sharpe is daily noise. The tool does not report the deepest fall. And with daily returns a few large days dominate Sharpe and Sortino; over five years they rank plans, they do not promise the next five.

Optimise: a sweep, not a forecast

Optimise copies the scenario, writes each tested value in where the form would, and runs the very engine Simulate uses. One setting runs its values; two run every pair.

Runs = n1 × n2 ≤ 625n ≤ 50 values a setting
Values vk = start + (end − start) × kn − 1rounded to what the field takes, repeats dropped
FieldWhat it isIn the mathsRaise it
The gaugeBeside every setting that changes nothing else on the form.The amount, its increase, the day, the weekday, a threshold, Frequency, the end-of-period buy and every indicator setting. Not the asset, the style, Trade at, the seed, the dates or the risk-free rate.up to two at once
Start value, End value, StepsThe range, and how many values in it, ends included.As above. A list (a weekday, a type) runs the options you pick.more steps: ▲ runs
ShowWhat the sweep is ranked and drawn by.Best and Worst are its highest and lowest; a tie, within rounding, goes to the first tested.ranking only
Shown in the charts belowThe tested value the charts and the breakdown show.That run again, in full.reading only

Watch out: a rate can be won by putting less in. A threshold that rarely fires buys less, and its ROI can top the sweep. When the best run topped up a different amount, the answer says so; rank by Final value or Net to compare the money. And the best setting is the best for these past prices: the next stretch can differ.

Portfolio mode: weights, rebalancing, cash and fees

A portfolio is cash plus units of each asset. A top-up lands in cash, and the Method decides how cash becomes units. Cash waiting earns the risk-free account every trading day; every trade pays its fee.

Value V = cash + Σ uk Pk = top-ups + interest − fees + market gain
Cash each trading day cash × (1 + R)1÷252or × the risk-free ticker's day-on-day change
Towards Weight spendk = max(0, wkT − Vk) × min(1, cashΣ shortfalls)
A buy units += spend × (1 − fb)Pka sale returns value × (1 − fs) to cash
  • uk, Pkunits and price of asset k
  • wkits Target Weight
  • Tcash plus everything held, that day
  • Vkwhat asset k is worth
  • RRisk-free rate
  • fb, fsBuying fee, Selling fee
FieldWhat it isIn the mathsRaise it
Amount per top-up, Yearly increaseAs on the main page.Lands in cash on each top-up day.▲ final value
Top-up period, ScheduleWeekly, fortnightly, monthly, quarterly or yearly, on the weekdays, days, months or week picked.The closest trading day to each. Several days a month means several top-ups. A switch of period restates the amount.more days: ▲ money in
Risk-Free Account: Rate, Ticker; Risk-free rate, Risk-free tickerWhat waiting cash earns: a fixed yearly rate (0% unless you set one), or a money market ticker's price.The cash line above. It also sets the portfolio's own rf in Sharpe and Sortino.▲ interest▼ Sharpe
AssetsThe loaded tickers and simulated assets the portfolio holds.Each Pk, on the days every portfolio's assets share.the biggest choice
Method: Towards WeightTop-ups buy only what is below target. Never sells.The formula above: the whole top-up goes to the shortfalls, in proportion.no selling fees
Method: Constant WeightKept on target by selling what is over and buying what is under.Sells Vk − wkT of each asset above target, then buys the shortfalls with the cash.▲ feesholds the risk you chose
Rebalance Timing, Rebalance period, Rebalance scheduleAt top-up, or a Separate schedule (Constant Weight).At top-up: buy the shortfalls, then rebalance, on every top-up. Separate: top-ups wait in cash, earning the rate, until each rebalance day.rarer: ▲ cash waiting
Method: Constant AllocationEach top-up split by the weights. Never rebalances.spendk = wk × cash. The holdings drift with the prices.the winner grows its share
Method: Trend Following; Momentum lookback, Rank WeightsEach top-up split by rank of trailing return.Each asset's return over the lookback (21 trading days a month) on the decision day; Rank 1, the best, gets the first rank weight. Never sells.longer lookback: slower to switch
Method: Rule-Based Triggers; Reserve, Deploy TriggersTop-ups wait in a reserve until an asset's own trigger fires.A firing asset is bought up to wkT, from cash or by selling the reserve asset. Trigger: Invest at Top-up, Price % move (Direction, Amount, From a month or week open or a previous top or bottom over a Lookback), or a technical signal as on the main page, each with Frequency and the end-of-period buy.rarer triggers: ▲ cash waiting
Target WeightsEach asset's share; they must add up to 100%.wk: of the whole portfolio for Towards Weight, Constant Weight and Rule-Based; of each top-up for Constant Allocation.more in shares: ▲ return and swings
Buying fee, Selling feeA % of every buy and every sale (0.1% each to start).fb, fs as above, counted in Fees in the table.▼ final value
  • How return and risk combine. On a day with no trades, the portfolio's return is its holdings' returns weighted by their value: rp = Σ wkrk, cash at its rate. Its swing is less than the weighted swings whenever the assets do not move together. The tool measures that from the portfolio's own daily values, so the benefit shows up in its Sharpe.
  • 80/20 against 60/40. More in shares earned more: $78,915 against $75,604 on $60,000, CAGR (TWR) 8.42% against 7.19%. But 60/40 had the higher Sharpe, 1.08 against 0.96: per unit of swing, the cash-heavy mix paid better.
  • Rebalancing costs and helps. Over these five years, splitting each top-up 50/50 and never rebalancing ended $1,720 ahead of keeping SPY and GOVT at 50/50: shares beat bonds, and the unrebalanced mix let the winner grow.

Watch out: waiting cash earns nothing unless you set a rate. The Risk-free rate starts at 0%. A quarterly rebalance or a rare trigger can leave real money idle; the tile's Cash share and the table's Interest show how much.

Worked example: SPY, $520 on the 1st of every month

The first scenario of the Monthly vs Weekly Quick Start, 1 Oct 2021 to 30 Sep 2026, filled at the next day's open (the default). The figures are the tool's own, from its Detailed Breakdown and Final Summary.

What $520 a month grew to

Each top-up buys $520 ÷ the fill price. The units add up; the last close values them.

  1. First buyDecided at the close on Fri 1 Oct 2021, filled at Monday's open, $404.99: $520 ÷ $404.991.283995 units
  2. Second buyDecided 1 Nov, filled 2 Nov at $430.44: $520 ÷ $430.441.208052 units
  3. All 60 buysOne a month to 2 Sep 2026, fills from $353.58 (4 Oct 2022) to $760.56 (2 Sep 2026)64.099753 units
  4. Topped up60 × $520$31,200
  5. Average cost$31,200 ÷ 64.099753. The 60 fill prices average $512.90: the harmonic mean is lower$486.74
  6. Final value64.099753 × $762.63, the close on 30 Sep 2026$48,884
  7. ROI($48,884 − $31,200) ÷ $31,200, or $762.63 ÷ $486.74 − 1. The tool's tile: ROI 56.68%56.68%
  • The rates a year. Advanced metrics: CAGR (TWR) 14.21%, CAGR (MWR) 18.06%, Sharpe 0.63, Sortino 0.91 at the 4% Risk-Free Rate.
  • Its twin, $120 a week, bought 264 times for $31,680 and ended at $49,379: more money, a little less on it (ROI 55.87%). Same money a year, nearly the same result.
  • The amount does not change the rate. The Stock vs ETF example puts $500 a month into SPY over the same dates: $47,004 on $30,000, the same 56.68%.

What moves the answer

Each input moved on its own from the worked example, on the tool itself, with the prices this guide ships.

Final value of SPY, $520 a month, when one input movesBase case: the Monthly vs Weekly Quick Start's monthly scenario, 1 Oct 2021 to 30 Sep 2026, next day's open: $48,884 on $31,200. Each bar moves one input and keeps the rest: a year on the start date, 10% on the amount, 5 points on the yearly increase, the buy day within the month, the fill.
Input lowered (earlier, less, sooner)Input raised (later, more)
  1. Start date1 Oct 2021 → 1 Oct 2020 / 1 Oct 2022+$13,145−$11,789
  2. Amount per top-up$520 → $468 / $572 a month−$4,888+$4,889
  3. Yearly increase0% → none lower / 5% a year$0+$4,386
  4. Buy day in the monththe 1st → the lowest / highest close (hindsight)+$1,321−$1,393
  5. Day of monththe 1st → the 10th / the 20th−$81−$199
  6. Trade atnext day's open → same day's close / next day's close−$24−$118

Read it from the top: the longest bar is the input your answer rests on most. The Risk-Free Rate would be a bar of zero: it moves no money. Measured by guides/_sensitivity.mjs.

  • When you start, and how much you put in, are the answer. A year either way on the start date moves the result by $12,000 to $13,000: more top-ups, and a different stretch of market. The amount moves it in proportion.
  • Timing within the month hardly matters. The 10th or the 20th instead of the 1st: under $200. A fill at the close instead of the open: $24. Even perfect hindsight, buying every month at its lowest close, adds only $1,321.
  • ROI tells a different story from value. Starting a year earlier lifted ROI from 56.68% to 65.68%, starting later cut it to 48.62%; the amount left it unchanged; a 5% yearly increase put $3,280 more in but cut ROI to 54.50%, because later money had less time to grow.
  • So spend your effort on the plan, not the day. Choose an asset and an amount you can keep up through a fall; a clever buy day is worth a rounding error by comparison.
The start date a year earlier, then a year later
  1. The base case

    SPY, $520 a month from 1 Oct 2021: $48,884 on $31,200.

  2. A year earlier

    From 1 Oct 2020: 72 top-ups, $37,440 in, $62,029 out. ROI 65.68%.

  3. A year later

    From 1 Oct 2022, near the bottom of the fall: 48 top-ups, $24,960 in, $37,095 out. ROI 48.62%.

  4. Back to the base

    1 Oct 2021 again. Try it yourself: press Pause and change a date.

What it leaves out

What the answer rests on, beyond the figures you enter. What this assumes, under the results, lists the ones your run uses.

  • The past only. Every real run replays prices that already happened. A plan that won over five years can lose over the next five.
  • No tax, and no fees on the main page. Portfolio mode charges a % fee on every trade; neither page has tax, brokerage minimums or spreads.
  • One currency, never converted. The symbol is a label; mixing an ASX and a US ticker adds Australian and US dollars as if they were one.
  • Dividends ride in the adjusted price, as if reinvested on the day, with no tax or delay. A Stooq series leaves them out.
  • Fractional units at the fill price. Every top-up buys its whole amount at the open or close, whatever its size.
  • Nothing is sold on the main page, and the holding is valued, not sold, on the last day.
  • A simulated asset is one random path with a constant return and volatility: a what-if, not a forecast. Change the seed to see another.
  • Indicators see only the Date Range. A long average needs months of the window to warm up before it can signal.
  • No drawdown or worst-case figure. Read the Portfolio Value chart for the falls.

Do not lean on it when the best plan topped up a different amount from yours, a winning style is a Forward one, a sweep's best value sits alone on a spike, or your money is in a different currency from the ticker.

This guide and the tool are general information, not financial advice. Past returns do not predict future ones; talk to a licensed adviser before you invest.

Ready to run your own?

Open the tool Or compare whole portfolios in Portfolio mode