Calculation is separated from presentation
Every financial calculation on this site lives in a pure module: a function that takes inputs and returns numbers, with no interface code, no network access and no hidden state. The React components that draw the calculators call those modules and format what comes back. They never perform arithmetic of their own.
This is not a stylistic preference. It means the mathematics can be tested directly rather than inferred from what appears on a screen, and it means two calculators that share a concept — an annuity factor, a compounding rule — share the same implementation rather than two similar ones that drift apart.
Frequency normalisation
Contribution frequency and compounding frequency are separate inputs, and they are frequently different in real accounts. A nominal annual rate compounded monthly is converted to an effective annual rate, and that effective rate is then expressed per contribution period. The same rule is applied everywhere on the site, so a monthly deposit against quarterly compounding produces a consistent answer in every tool.
This is also the most common source of discrepancy against other calculators. A tool that silently divides the annual rate by the number of contributions will differ from one that normalises properly, and neither is wrong so long as it states what it does. Quantus states it.
Contribution and withdrawal timing
Where timing is a choice, it is exposed as an input rather than buried in the implementation. Contributions can be made at the beginning or the end of each period, and the difference is exactly one period of growth applied to every deposit.
Withdrawals in the drawdown model are taken at the start of each period, before growth. That is the conservative convention for a spending plan, because the money leaves the account before it can earn a return it never actually earned.
Rounding policy
Money is carried at full floating-point precision through every schedule and rounded only at the boundary, to two decimal places, half away from zero. Rounding intermediate steps would accumulate error across a 360-row amortization schedule; rounding once at the edge does not.
Displayed figures are rounded to whole dollars in most tables and to cents where the precision matters — a loan payment, a required contribution, a closed-form check. Percentages are shown to one or two decimals depending on how sensitive the underlying figure is.
The test suite asserts the rounding policy directly: money outputs are checked to carry no more than two decimal places, and amortization schedules are checked to end at a zero balance within a cent.
What the tests cover
Every calculation module ships with automated tests. Each one covers, at minimum: a known mathematical case verified against an independently computed closed form, a zero-rate case, a single-period case, invalid input, boundary behaviour and the rounding policy.
Several tests are deliberately cross-model. The savings goal reverse solve is verified by feeding its answer back through the future value engine. The retirement projection is verified against the same engine. The amortization schedule is verified to repay exactly the amount borrowed. The Roth break-even rate is verified by re-running the full comparison at the solved rate and confirming the advantage vanishes.
Screenshots and manual checks are not treated as evidence of mathematical correctness. If a number is not covered by a test, it is not considered verified.
Assumptions are inputs, not defaults we hide
Every calculator states the assumptions it applies, in full, on the page. Where a figure is genuinely uncertain — a rate of return, an inflation rate, a future tax rate — it is an input you control rather than a constant baked into the tool.
Default values exist so a page is useful on arrival. They are illustrative starting points, not recommendations, and none of them should be read as a Quantus view about what any rate will be.
What these models deliberately do not do
Every projection here uses a constant rate. None models volatility, none runs Monte Carlo simulations, and none can express sequence-of-returns risk — the danger that poor returns arrive early in a drawdown. A constant-return model is optimistic in exactly that respect, and each affected calculator says so.
None of these tools applies tax brackets, contribution limits, means testing or jurisdiction-specific rules. Where a calculation touches tax or insurance, it applies the rates you supply and states plainly that it is not advice.
Sources and data
The calculators use no external data feeds. They compute from the inputs you enter, which is why every result is reproducible offline and why nothing you type leaves your browser.
Where a calculator touches external rules or published statistics — retirement account taxation, published education costs, price inflation — the relevant primary sources are listed on that page. Quantus does not restate figures from those sources inside a calculator, because published data changes and a stale number embedded in a tool is worse than no number at all.
Corrections
If a calculation is wrong, the fix is a change to the calculation module and a test that fails without it. Content is updated alongside the tool so that worked examples on a page always match what the tool now produces.
Every worked example published on this site was generated by running the calculators themselves, not typed by hand from memory. If you find a figure that does not reproduce, that is a defect worth reporting.