This is an educational tool, not financial advice. Read the disclaimer →
Methodology

How it's calculated — and what it can't tell you.

This site is a side project — a place to test investing ideas against real data and share what comes out. This page lays out exactly how every number on the site is calculated, where the data comes from, and — just as important — what the backtests deliberately don't model.

1. Where the data comes from

Every backtest is built from historical adjusted-close prices from Yahoo Finance. "Adjusted close" means the price is already corrected for dividends and stock splits, so a buy-and-hold line reflects total return — price growth plus reinvested distributions — not just the share price.

Two honest caveats about the data:

2. How a backtest is calculated

A backtest is deterministic: the same inputs always produce the same result. Starting from your chosen capital and weights, the engine walks forward day by day using the real price series, applies your contribution or withdrawal schedule, and rebalances back to target weights on the cadence you pick (annual, quarterly, or monthly) — only when a sleeve has drifted past your tolerance band. Trading costs are deducted on every rebalance using the per-side fee you set.

For the lazy-portfolio pages, the math runs entirely in your browser. Nothing about the scenario you build is sent anywhere — there are no accounts, no logins, and the only network call is the one-time price lookup. The strategy trackers run the same kind of deterministic engine through the site's own calculation endpoints.

3. The metrics, defined

Every metric on the site has a plain-English tooltip where it appears. The short reference:

The most honest single reading is CAGR and max drawdown together: a higher return isn't worth much if it came with a far deeper hole.

4. Monte Carlo projections

The Monte Carlo chart runs 2,000 simulated versions of the future by replaying the portfolio's real historical daily returns in randomized blocks. Using blocks (rather than shuffling single days) preserves the way crashes and rallies tend to cluster, and it does not assume returns follow a tidy bell curve — real markets have fatter tails than that.

What Monte Carlo is and isn't

It maps a realistic range of outcomes — lucky to unlucky — from history. It is not a prediction. The future can fall outside any historical range, and past return patterns are not guaranteed to repeat.

5. Stress tests

Unlike Monte Carlo, which simulates imaginary futures, the stress tests show what actually happened to the portfolio across real historical crises — the 2008 financial crisis, the 2020 COVID crash, the 2022 drawdown, and others — when every asset in the mix has price data covering that window. If one of your chosen ETFs launched after a given crisis, that period is hidden, because there's no real data to test it against.

6. What the numbers do not model

This is the part most backtest tools bury, so it goes here in plain sight. The returns you see are before several real-world frictions that will make your actual results lower:

Not included in the backtest

  • Taxes. Capital gains, and the fact that every rebalance in a non-registered account is a taxable event, are not modelled.
  • Foreign withholding tax. The U.S. withholds 15% on dividends paid to foreign investors; how much you recover depends on the account type. Backtests using dividend-adjusted prices don't subtract this.
  • Currency conversion. Returns are shown in the listing currency of the tickers. Holding U.S.-listed funds from Canada adds CAD/USD swings that aren't reflected.
  • Real-world fills. Bid-ask spreads beyond the flat cost you enter, partial fills, and cash drag between contributions are simplified away.

None of this makes a backtest useless — it makes it a study of strategy mechanics, not a promise of after-tax dollars. Read it for "how did this kind of mix behave," not "this is what I'll have."

7. The code behind it

The heavy lifting — price fetching, the Monte Carlo bootstrap, the historical stress periods — lives in small, deterministic Python tools that are kept separate from the website itself and covered by an automated test suite (170 tests). That separation matters: it means the calculations can be checked in isolation, and a change can't quietly break the math without a test failing first. Same inputs, same outputs, every time.

The tools are designed to be auditable and deterministic by default — not black boxes. They're intentionally modular so individual pieces can be inspected, tested, or even run outside this site. Every metric calculation has a test. Every edge case is documented. If you want to verify the math independently or even use the same logic in your own models, there's nothing proprietary standing in the way.

8. Built with AI, checked by hand

A lot of this site — code, copy, and analysis — is built with AI tools. That's part of the point of the project, not something to hide. But AI makes confident mistakes, so nothing ships purely on its say-so: the math is pinned down by tests, the methodology is written out so it can be scrutinized, and the numbers are sanity-checked against known reference points. If you ever find a figure that looks wrong, that's a bug worth reporting — see below.

9. Independence & what this is not

Dad Finance is independent. It isn't affiliated with any brokerage or fund company, and it doesn't take money to feature a product. If a link is ever an affiliate link, it's labelled as one, right where it appears.

Educational, not advice

This content is for educational and/or entertainment purposes only. It is not financial, investment, or tax advice, and it isn't a recommendation to buy or hold anything. Always consult a registered financial advisor before making any investment decision. Any investment decisions you make are your own — you alone are responsible for them, and you cannot hold this website or its creator accountable for any resulting gains or losses.

The strategies studied here — especially the leveraged-ETF ones — can lose money, sometimes a lot of it. Past performance does not guarantee future results. See the full disclaimer.

Spotted something wrong?

If a number looks off or a method seems flawed, I want to know — that's how the site gets more trustworthy, not less. Send it through the contact form.