PositionSizeTool
Forex · Stocks · Crypto — size every trade from your risk, not from hope

DCA Calculator

The plan

Buying once today commits the whole pot up front, so both routes spend the same gross amount.

The asset you are buying into

The two inputs nobody else asks for. The table further down shows why they decide the answer.

What gets spent

Computed in your browser. No price file is loaded, nothing is uploaded and nothing is saved.

Expected share ratio R
—
—
Paths where periodic buying wins
—
—
Total contributed—
Fees, periodic route—
Fees, one-off route—
Net spent, periodic—
Net spent, one-off—
Horizon—
σ2, the tie line—
Paths simulated—

How to read the two numbers

R is a count of units, not a return. Both routes spend the same gross amount; R is simply how many more units the periodic route is expected to end up holding, divided by how many the one-off purchase bought. Above 1.00 the periodic buyer is expected to hold more units; below 1.00 fewer. It says nothing about the currency value of either holding, which is the same pot of money either way.

The second number answers a different question. Out of thousands of price paths drawn from the same drift and volatility, how many leave the periodic route with more units. It does not have to agree with R. Earlier on this page's own defaults — μ = 4%, σ = 20%, twelve months — R sits at exactly 1.0000 while only 47.1% of paths favour the periodic buyer: equal in expectation, less likely in any single life. That gap is the honest answer to "does dollar cost averaging win", and it is the reason both numbers are printed instead of one.

Everything here is derived, not retrieved. Nothing loads historical prices, so there are no calendar years, no ticker and no realised sequence — see what this page refuses to pretend further down.

The cost averaging formula behind R

The same six fields nearly every dollar cost averaging calculator asks for — amount, frequency, how long, expected return — and two that change the answer. Assume the price follows geometric Brownian motion with drift μ and volatility σ, then take the expectation of one over the price, which is what each contribution buys:

price path p(t) = p0 x exp( ( mu - sigma^2 / 2 ) t + sigma W(t) ) expected units E[ 1 / p(t) ] = ( 1 / p0 ) x exp( ( sigma^2 - mu ) t ) units, once Q_once = ( N x A - c ) / p0 units, schedule Q_dca = sum over i = 1..N of ( A - c ) / p(t_i) ratio R = [ ( A - c ) / ( N x A - c ) ] x sum exp( ( sigma^2 - mu ) t_i ) t_i = i / contributions per year tie mu = sigma^2 (sigma = 20% -> tie at mu = 4%)

The whole behaviour of the ratio is in that one exponent: (sigma^2 − mu) × t. When the drift is higher than the squared volatility, waiting costs you units, so buying once today wins. When the squared volatility is higher than the drift, buying into the noise returns extra units — this is the part a single expected return cannot show you, because it lives in the variance, not in the mean.

Worked example you can check by hand

Twelve monthly contributions of 500.00, μ = 0%, σ = 20%, no costs. Each term of the sum is exp(0.04 × i / 12):

Each contribution's expected units relative to buying at today's price, σ2 = 4% and μ = 0%.
Contributiont (years)exp((σ2 − μ) t)
10.08331.003339
60.50001.020201
121.00001.040811
Average of the twelve terms—1.0220

Average those twelve factors and you have R = 1.0220 at no drift: the schedule buys 2.20% more units than the one-off purchase, purely because volatility was above zero. Put μ = 8% in instead and the same table gives R = 0.9786 — the order reverses without a single input other than drift changing.

Why volatility belongs in the input row

Checked on 10 October 2026, the first page of results for this word takes a single expected return and draws one line from it. None of them takes volatility as an input, which means none of them can tell you that the answer flips when it changes. Holding μ at 7% and moving only σ, over twelve monthly contributions:

Twelve monthly contributions of 500.00 at μ = 7%, varying only volatility. σ2 is the tie line — once it passes μ = 7%, the periodic route takes the lead.
σσ2RPaths where periodic wins
10%1.00%0.968228.5%
20%4.00%0.983942.0%
30%9.00%1.010948.0%
40%16.00%1.050352.0%
60%36.00%1.174258.0%

The drift never moved. An asset expected to return 7% a year with 10% volatility hands you 3.18% fewer units by spreading the purchase; the same expected return with 40% volatility hands you 5.03% more. Without σ in the input row, both cases print the same number.

The horizon pulls the other way

Longer schedules are worse news for spreading, not better: each contribution buys further out, and further out means more compounding of the drift you gave up. Same defaults, μ = 7% and σ = 20%, monthly contributions of 500.00:

R and the path win rate as the schedule lengthens, at μ = 7% and σ = 20% with monthly contributions.
ScheduleContributionsRPaths where periodic wins
1 year120.983942.0%
2 years240.969438.7%
3 years360.955136.6%
5 years600.927532.5%
10 years1200.862926.5%

Stretching five years of contributions rather than investing the pot on day one costs 7.25% of the units at these inputs. That is the common case, and the tool is built to say so rather than to flatter the schedule.

Costs are asked for in money, not percent

A percentage commission does not separate the two routes: both pay the same rate on the same gross amount, so the ratio is untouched. A flat charge per purchase does separate them, because the schedule pays it N times and the one-off purchase pays it once. That is why the box takes currency.

Twelve monthly contributions of 500.00 at μ = 4% and σ = 20% — the case where the two routes tie before costs.
Cost per purchasePaid by the schedulePaid onceRPaths where periodic wins
0.000.000.001.000047.1%
1.0012.001.000.998246.6%
2.5030.002.500.995445.6%
5.0060.005.000.990844.4%

Eleven extra tickets at 1.00 each undo about 0.18% of the unit advantage here, and 5.00 a ticket takes nearly a percent off. If your broker charges a percentage instead, enter it as the equivalent flat amount per purchase — or enter zero and note that this tool deliberately does not hide the effect.

Stocks, funds and crypto: the same arithmetic, different volatility

Nothing in the formula knows what you are buying, so you can run this as a stock DCA calculator, a fund version, or a crypto DCA calculator — the only inputs that change are σ and the cost per purchase. That is exactly the point: an index fund near 15% volatility and a large-cap token near 60% do not belong in the same row of the table above, and no single expected return will separate them. Use a volatility you can defend from the asset's own daily moves, not a figure taken from a marketing page.

What wrinkles: in a volatile asset σ2 often exceeds any drift you would dare assume, so the schedule buys more units in expectation — and it still loses in most individual paths. Both numbers move together, and neither is a promise about the one future that actually happens.

Note also what this is not. Spreading entries into a position you already hold, because the price moved against you, is averaging down — a different decision with a different risk budget, covered in adding to a position. A dollar average calculator is another name for the tool above; a cost average calculator usually means the averaging-down kind.

What this page does not do

Once a plan exists, the practical question is how much of the account each contribution should be — that is the same arithmetic covered in how much to risk per trade, and the effect of compounding contributions in the compounding calculator.

Questions people ask

What does the expected share ratio tell me?

How many units each route is expected to finish with, expressed as a ratio: periodic units divided by units bought today with the same gross money. Above 1.00 the schedule is expected to hold more units, below 1.00 fewer. It is a count of units, not a return, and it moves only with your drift, volatility, schedule and costs.

When does dollar cost averaging beat lump sum?

In expectation, when the squared volatility exceeds the drift: mu exceeds sigma squared means waiting costs units, so buying once wins. At 20% volatility the tie sits at 4% drift. The second number tells you something the expectation hides — even at a dead-even ratio, fewer than half of price paths favour the schedule, because a minority of paths carry most of the gain.

Is a dollar average calculator the same thing?

Yes by another name, and this page also runs as a cost averaging calculator for stocks, funds or crypto. The one distinction worth keeping: an average-down calculator is different — that one spreads entries into a losing position you already hold, which is a separate risk decision rather than a calendar plan.

Why ask for volatility instead of just an expected return?

Because the expected units per contribution depend on the variance, not just the mean: E[1/p(t)] = (1/p0) exp((sigma squared - mu) t). At a fixed 7% drift, moving volatility from 10% to 40% flips R from 0.9682 to 1.0503. A single expected return cannot show either number, let alone the flip between them.

Why is the cost entered in money rather than percent?

A percentage rate is charged on the gross amount either way, so it changes nothing about the comparison. A flat charge per purchase is paid N times by the schedule and once by the single purchase, which does move the ratio: eleven extra tickets at 1.00 cost about 0.18% of the units in this page's example.

Is this a backtest?

No. No historical prices are loaded and no real calendar years appear in the output. R comes from a closed-form expectation, and the win rate comes from simulated paths drawn from your own drift and volatility. Treat both as descriptions of a model, not as a result measured from history.

How should I pick sigma and mu?

From the asset itself, and then distrust both. Annualise the standard deviation of its own daily returns for sigma; use a drift you can argue for rather than a historical average you remember being higher. Then move them — 3% and 8% drift, 15% and 40% volatility — and see whether the decision survives. If it flips, the honest answer is that it depends on inputs you cannot know.

Related guides

Last updated 11 October 2026