How we calculate your returns

Last updated: July 2026

Your dashboard shows two return figures: the lime badge under your total, and the “Return per year” card in the row below it. Both come straight from your own transaction history — every buy, sell and dividend, with its date. Nothing is estimated. There are two because they answer two different questions.

Your return per year

We take every deposit and withdrawal with its exact date, plus what your portfolio is worth today. Then we look for the one yearly interest rate that would have turned exactly those cash flows into exactly today’s value. There is no simple formula for this — the computer tries rates until one fits precisely. (Spreadsheet users know this as the XIRR function.)

1 Jan 2025You deposit€1,000
1 Jul 2025You deposit€500
TodayYour portfolio is worth€1,730

Profit: €230 on €1,500 put in — that is the “+15.3% vs. money in” on the card. But the €500 only arrived halfway, so the one rate that reproduces this outcome is about +11% per year. That per-year figure is the number you can put next to a savings rate or the box 3 assumed return.

Rules we hold ourselves to
  • Portfolios younger than a year never get a per-year figure — a lucky quarter would read as a huge yearly rate.
  • This number always covers your full history. A per-year rate over a short, hand-picked window swings wildly and invites the wrong conclusions.
  • If the math has no stable answer (it can happen with unusual cash flows), we show your plain total return instead of a nonsense percentage.
  • Dividends paid in another currency without a euro amount are left out of this calculation.

The finance term: XIRR, or money-weighted return.

The period return in the badge

Your chart is built from weekly snapshots of your portfolio. For each week we measure how much your holdings gained or lost — deposits and withdrawals set aside — and link the selected period’s weeks together. The result is your return as if no money had moved in or out.

You start a month with €10,000. Mid-month it has grown to €10,200 (+2%). You deposit €2,000, and by month-end the €12,200 has grown to €12,566 (+3%). Linked together: 1.02 × 1.03 ≈ +5.1% for the month.

Good to know
  • A simpler calculation would divide the month’s gain by your starting €10,000 and report +5.7% — as if the month had earned the growth on money that arrived halfway. Every deposit would make that error bigger, which is exactly why we don’t do it.
  • Because money moving in and out is set aside, this is the only number that can fairly stand next to an index.
  • Deposits count from the start of the week they land in — the chart works in weekly steps.

The finance term: TWR, or time-weighted return.

Why the two can differ

The period return grades your investments; the per-year rate grades your money — including your timing. Deposit just before a rally and your per-year rate climbs above your investments’ own return; deposit just before a dip and it falls below. The gap between the two is exactly what your timing added or cost.

The same timing effect explains why the all-time badge usually sits above the “vs. money in” figure on the dashboard: in that figure every euro counts fully, however recently it arrived — a euro deposited last month has had no time to grow, but still weighs down the average.

What we deliberately don’t do

  • Draw the index as a “what if you had started at the same point” percentage line. That kind of comparison flatters or punishes you depending on when you happened to deposit. Instead, our index line buys the same euros on the same days you did.
  • Turn anything shorter than a year into a per-year figure.
  • Count your uninvested cash when comparing against an index. Cash doesn’t drop when the market does, so including it would make your results look steadier than your investments really are.