A long-term projection can look authoritative simply because it contains a precise number. We built ETF Compass so that precision can be traced back to visible assumptions, and we test the calculation sequence at the places where a small ordering mistake would materially change the result.
Start with a trace, not an attractive endpoint
The validation question is not “does the final number look plausible?” It is “can each stage be reconciled from the inputs?” ETF Compass separates gross contributions, conversion cost, broker cost, invested principal, portfolio growth, annual fund cost, selected taxes, terminal stress and inflation adjustment. That sequence lets a test isolate one boundary instead of accepting a final value that may hide offsetting errors.
The calculator compares an annual lump-sum path with a quarterly contribution path. Both are simplified timing models. An initial amount enters at the start of the first year; regular contributions then follow the selected path. The model does not reconstruct a real broker statement or a daily market path, so the validation target is the documented algorithm—not a promise that reality will follow it.
Check one deposit before checking thirty years
A focused deposit test uses €1,000, a 0.25% conversion fee, a €2.30 fixed broker fee and a 0.50% variable broker fee. The conversion cost is €2.50, leaving €997.50. The variable broker cost is calculated on that remainder, so it is €4.9875 and exceeds the fixed minimum. The amount entering the portfolio is therefore €992.5125.
This checkpoint proves the order and the maximum-fee rule independently of market growth. Separate cases cover a fixed fee that wins, a deposit consumed by costs and a zero-fee deposit. Keeping the deposit function isolated also makes it possible to compare the displayed fee breakdown with the value used by every projection path.
- Normalize the gross deposit before applying percentages
- Deduct conversion cost before calculating the variable broker fee
- Use the larger of fixed and variable broker cost
- Never allow costs to create a negative net deposit
Reproduce a ten-year example and change one assumption
Enter €1,000 initially, €100 per month and ten years. Select ACC with a dividend yield of 0%. Set conversion, fixed and variable broker fees, dividend tax, capital-gains tax, municipality surtax and terminal currency stress to zero. Select the quarterly DCA result. The starting comparison uses 5% annual market growth, a 0.20% TER and 2% inflation. These are invented sensitivity inputs, not a recommended ETF, forecast or statement that your taxes are zero.
The €100 monthly input is grouped into €300 at the beginning of each quarter, not twelve monthly purchases. Total contributions are €1,000 + (€100 × 12 × 10) = €13,000 in every row. Change only the named assumption from the starting comparison. The values below were reproduced with the calculation service and rounded to cents.
A flat market still leaves €12,848.97 after fund costs, below the €13,000 contributed. Raising TER from 0.20% to 1% reduces the nominal result by €831.68; that difference includes lost compounding, not just fees charged. Raising inflation to 4% leaves the nominal balance unchanged but reduces its purchasing power. The real column discounts only the final balance: subtracting nominal contributions from it is not a valid real investment return.
| Assumptions | Nominal euros | Today’s euros |
|---|---|---|
| 0% growth · 0.20% TER · 2% inflation | €12,848.97 | €10,540.58 |
| 5% growth · 0.20% TER · 2% inflation | €16,987.42 | €13,935.54 |
| 5% growth · 1% TER · 2% inflation | €16,155.74 | €13,253.28 |
| 5% growth · 0.20% TER · 4% inflation | €16,987.42 | €11,476.44 |
Place taxes, stress and purchasing power at their documented boundaries
The model deducts the selected total expense ratio at each year end. For a distributing ETF scenario it applies the selected dividend-tax input during each compounding period before reinvesting the remainder. A capital-gains input is applied once at the end and only to a positive calculated gain; a municipality surtax input increases that selected tax amount. These are configurable model rules, not a determination of tax liability.
After the nominal projection, ETF Compass applies the entered terminal stress adjustment and then converts the result to today-money terms using the entered inflation rate and horizon. Tests keep those operations separate: zero inflation must leave the nominal value unchanged, a stress percentage must move the terminal value in the stated direction, and a higher positive inflation assumption must reduce the displayed real value.
Boundary cases protect against confident nonsense
The test set includes zero contributions, zero growth, zero fees, positive dividends with no market growth, a fifty-year horizon and contribution periods shorter than the projection. It also checks that outputs remain finite and that financial values use the product’s four-decimal internal normalization before the interface formats them for reading.
These checks catch regressions in arithmetic and sequencing. They do not prove that an assumed return is sensible, that a selected ETF will track its index, that a broker will charge the entered fee, or that a tax rule applies to a particular person. Those questions require current product documents, official information and, where appropriate, regulated professional advice.
Evidence, reproducibility and correction path
Readers can open the calculator, set a deliberately simple case, and compare principal, fees, taxes, nominal value and real value. The public ETF Compass methodology describes the sequence in user language; this note explains how we challenge the implementation. If the two disagree, that is a product issue to correct—not a reason to reinterpret the wording after the fact.
External references define the financial concepts, while the product documentation defines the scope of this particular model. Lambda Software maintains the calculation code, automated checks and correction channel. Sources were reviewed on 30 August 2026.
Key takeaways
- Validate each calculation boundary before trusting the endpoint.
- Treat model tests as evidence of implementation behaviour, not evidence of future returns.
- Use the documented limits and correction path whenever product behaviour and explanation diverge.
