Save, load or export a setup
Setups stay in this browser. Export a file to back them up or move them between devices.
Paste your portfolio or open a CSV
Copy two columns from a spreadsheet, or put a ticker or exact asset-class name and its percentage on each line. Review the matches before replacing your holdings.
Percentages must total 100; use 60 for 60%. Up to 40 holdings per import. No balances or extra columns. To distinguish a ticker from an asset name, use ticker:GOLD or asset:Gold.
The paste and file are read in your browser. Reviewing tickers requests their names and history from our server; your percentages and raw file are not sent with those requests or to analytics. We count ticker requests to improve coverage, without recording your allocation.
Holdings
100.0% of 100%Cashflows, fees and rebalance bands
A zero band disables that trigger. Bands are checked at month end alongside the regular schedule. Costs are charged to both purchases and sales.
Recurring cashflows
Positive amounts add money; negative amounts withdraw. Percentage legs must be negative. Growth is measured from the backtest start. Flows occur at month end in the listed order, before rebalancing.
One-time cashflows
Allocation glidepath
Add dated target allocations to move gradually from the starting mix. Weights interpolate each month and rebalance at every month end, including trading costs. Each anchor must total 100% using the active holdings.
Calculated in your browser. Your allocation stays with you.
Free email alerts
Save this setup as an opt-in monthly backtest alert to your verified account email. Checks use available cached history and are processed periodically; this is not a live market alert. No paid plan is required. Custom series remain fixed until replaced. Clear any final-month limit before enabling an alert.
Custom monthly data & portfolio tickers
Import consecutive month-end total returns with CSV columns month,return_percent. These series stay in your browser and are included when you explicitly save, export or share this setup. No missing months are invented.
A captured portfolio ticker uses returns excluding external cashflow jumps, with its captured fees and rebalancing. It is a fixed history and does not update automatically.
Daily ticker study & custom data
A separate daily study with its own inputs. Use listed tickers or import your own daily history. All holdings must share a quote currency and trading calendar. Bundled monthly asset classes cannot supply daily observations.
Import a custom daily series
CSV columns: date,close,adjusted,dividend,split. Use YYYY-MM-DD dates, positive prices, cash distributions per share and a split factor of 1 on ordinary days. Adjusted prices must include splits and reinvested distributions. Your file stays in this browser session.
Additional cashflows and glidepath
Recurring cashflows
Positive amounts add money; negative amounts withdraw. Percentage legs must be negative. Growth is measured from the backtest start. Flows occur at month end in the listed order, before rebalancing.
One-time cashflows
Allocation glidepath
Add dated target allocations to move gradually from the starting mix. Weights interpolate each month and rebalance at every month end, including trading costs. Each anchor must total 100% using the active holdings.
The simple month-end flow runs first, followed by additional recurring legs and one-time legs. Glidepath targets are applied at confirmed month ends. The rules above still govern daily fees, bands and calendar rebalances.
Portfolio tickers and synthetic series
A portfolio ticker captures its flow-neutral return index, including the captured study’s fees and rules. It does not refresh automatically or carry separate distribution payments.
Leverage, cash and expense modifiers
Uses adjusted total returns and resets leverage each observed day. Uninvested cash earns the chosen rate. Borrowed exposure above 1× pays the spread; short positions also pay the spread on their short notional. Fees accrue over calendar time. This is a synthetic scenario, without margin calls, slippage or changing borrowing availability. SEC explanation of daily resets.
Convert a series with daily exchange rates
Select the source in the modifier controls above, then upload date,rate. Every rate must be target-currency units per one source-currency unit, for example USD per GBP. Each source observation needs an actual rate; no rates are filled or interpolated.
Zero-coupon bond from a yield history
Upload dated annual effective yields as date,yield_percent. The model reprices a zero-coupon bond using a flat yield curve and rolls back to the chosen maturity at each close. It excludes coupons, credit defaults, spreads and transaction costs. This is a model built from your inputs, not an observed fund history. Treasury explanation of zero-coupon securities.
Worked example: choose an allocation on earlier data, then check the later period
How far back it goes
A backtest reaches as far as its shortest holding, which is usually the constraint people trip over. One fund launched in 2015 caps the whole portfolio at 2015 however old everything else is.
Older mutual funds often solve it. VFINX has tracked the S&P 500 since February 1990 and VBMFX the US aggregate bond market for as long, so a two-fund portfolio built from those reaches back thirty-six years, through 2000, 2008 and 2020, where the ETF equivalents would start in the 2000s.
The 57 asset classes use the app’s documented historical series. Coverage differs by asset and currency; the result names the holding that limits your window. Use an asset class when you want broad exposure without picking a specific fund.
What a backtest cannot tell you
Every backtest describes one sequence of events that happened once. The period you test largely determines the answer you get: run 2009 to 2021 and equities look unbeatable, run 2000 to 2010 and they look broken. Neither is a forecast.
It is also silently biased toward whatever survived. The funds available to test today are the ones that lasted, and the strategies that look best in hindsight are frequently the ones that were most uncomfortable to hold.
That is why the same portfolio is worth running forwards as well, against published capital market assumptions rather than the past, and through a Monte Carlo simulation that shows the range of outcomes rather than the single one history dealt.