The calculator on this website is a browser-based version of the engine that this financial advice practice has been using in its own work for some time now. The calculator does not retrieve its own market data. The website transmits the data files to the calculator, the calculator performs the calculations, and the page displays the result. This page sets out what data the calculator contains, what fees it charges and how it applies tax. It also explains how the calculator selects its time periods and how many checks are involved.
| Class | In the code | Income assumption for the tax split | Fund fee the site applies |
|---|---|---|---|
| Australian sharesgrowth | AusEq | 4.0% a year of the balance, 77% of it franked at a 30% company rate from FY1988 | 0.053%mean of VAS 0.07, A200 0.04, IOZ 0.05 |
| International sharesgrowth | IntEq | 2.5% a year, unfranked | 0.117%mean of VGS 0.18, BGBL 0.08, IWLD 0.09 |
| US sharesgrowth, optional | USEq | 1.5% a year, unfranked | 0.035%mean of VTS 0.03, IVV 0.04 |
| Australian listed propertygrowth, optional | AusProp | 5.0% a year, split five ways for tax. See "The A-REIT distribution" below | 0.230%VAP 0.23 |
| Australian bondsdefensive | AusFI | the financial year's average 10 year government bond yield, from its own series, plus the credit premium. See "The credit premium on the bond component" below | 0.130%mean of VAF 0.10, IAF 0.10, OZBD 0.19 |
| Cashdefensive | Cash | the whole return is income, unfranked | 0.125%mean of AAA 0.18, BILL 0.07 |
| Term depositsdefensive | TermDep | the whole return is income, unfranked | none. A term deposit is money with a bank, not a fund, so there is no management cost to subtract and the flat fee override doesn't reach it |
Fund names appear here as the basis of a fee assumption, not as recommendations.
There are currently 23 data series in use. The engine reads 21 of these, while the other two provide figures mentioned elsewhere in this section without any calculations being carried out. The full list is on the data and licences page. Each entry there contains the conditions set by the publisher, as well as the source reference that the series must include.
| Series | Publisher | What the engine does with it |
|---|---|---|
| Asset class total returns, as published | Vanguard Investments Australia | the financial year returns for shares and property, in data/fy_returns_full.csv, 56 financial years from FY1971 to FY2026 |
| Asset class total returns, the underlying compilation | Andex Charts Pty Ltd | the same numbers, one step upstream. Recorded separately because the compilation and the publication carry different terms |
| S&P/ASX accumulation indices and the S&P 500 | S&P Dow Jones Indices LLC | the indices underneath the Australian and US share returns |
| MSCI World ex-Australia | MSCI Inc. | the index underneath the international share returns |
| Bloomberg AusBond Composite and Bank Bill indices | Bloomberg Index Services Limited | the indices underneath the incumbent bond and cash returns. This practice has built free substitutes for both from Reserve Bank data, so this dependency can be dropped |
| 124 year Australian share return table | Fintech Equity Pty Ltd | the Australian share years before FY1971, in data/fy_returns_extended.csv, FY1951 onward. The same file carries the bond and cash years of that era, and the rebuilt Reserve Bank series are built to take those over |
| Australian government bond yields, table F2 | Reserve Bank of Australia | the 10 year yield that sets the bond income assumption, in data/bond_yield_fy.csv. It is also the input to the rebuilt bond return series |
| Historical interest rates and bond yields | Reserve Bank of Australia, Occasional Paper 8 | the bond yields before FY1970, in data/bond_yield_fy_extended.csv |
| Term deposit and retail deposit rates, table F4 | Reserve Bank of Australia | the published one year term deposit rate, which is what the term deposit series is built from |
| Term deposit rates, rolling one year | In Your Interest Financial Planning, computed from Reserve Bank data | the term deposit return for each financial year, in data/term_deposit_rates_fy.csv, FY1983 to FY2026 |
| Consumer price index | Australian Bureau of Statistics, through Reserve Bank table G1 | the actual inflation rate for each financial year, in data/cpi_fy.csv, FY1923 onward. This is the one series that reaches every figure on the site |
| Lifestage glide paths | Australian Prudential Regulation Authority, Quarterly MySuper Statistics, Table 1b | the growth share by age of the published MySuper lifecycle products, reduced to five anonymous percentile curves in data/lifestage_glide_paths.json, read only when a visitor ticks the lifestage strategy on tool 8 |
| Dwelling prices | OECD analytical house price indicators, Australia, from ABS sources | the nominal house price index averaged over each financial year, FY1971 to FY2025, in data/dwelling_price_fy.csv, the home's value path in rent or buy |
| Rents | Australian Bureau of Statistics, Consumer Price Index, Rents expenditure class, weighted average of eight capital cities | the rent index averaged over each financial year, FY1973 to FY2025, in data/rent_index_fy.csv, the rent path in rent or buy |
| Earnings by qualification | Australian Bureau of Statistics, Employee Earnings, August 2025 | the level of the career-paths tab's wage profiles (a bachelor degree about 1.70 times, a certificate about 1.40 times no post-school qualification), in data/earnings_paths.json |
| Income by age | Australian Bureau of Statistics, Personal Income in Australia, 2022-23 | the shape by age of the same wage profiles; the cross of the two is a construction the assumptions page names |
| Housing loan rate | Reserve Bank of Australia, Statistical Table F5, series FILRHLBVS | the banks' standard variable owner-occupier rate averaged over each financial year, in data/housing_rate_fy.csv, the loan rate of tool 8's SMSF property scenario plus its margin |
| Housing rates actually paid | Reserve Bank of Australia, Statistical Table F6, from APRA's Economic and Financial Statistics | the owner-occupier variable rate on outstanding loans from July 2019, the source of the discount schedule's recent years in data/mortgage_discount_fy.csv, which the mortgage decision reads |
| Wage growth by financial year | Australian Bureau of Statistics (Average Weekly Earnings, 6302.0), with the years before FY1983 from the ABS data the Reserve Bank compiled in Occasional Paper 8 | each financial year's growth in average weekly ordinary time earnings, in data/awote_fy.csv, FY1971 onward, read for every stretch to index the concessional cap, and to grow the yearly amount when the contribution growth is "Wage growth (AWOTE)", the default in every account type since 10 October 2026; the method and the splice are in data/AWOTE_SERIES.md |
| Tax rules, rates and thresholds | Australian Taxation Office | the rates, caps, and thresholds in the tax section that follows |
| Legislation | Office of Parliamentary Counsel, Federal Register of Legislation | the primary text behind the same rules, and the pension minimum drawdown factors |
The numbers of these two series are not used in any calculation on this site at the moment. Their conclusions appear in explanatory pages and they are listed here for completeness.
| Series | Publisher | Where it appears |
|---|---|---|
| SPIVA Australia Scorecard figures | S&P Dow Jones Indices LLC | the share of active funds that trailed their index, on the active and passive page. That page is reached from the professionals section and is deliberately not linked from here: the scorecard is published for institutions only |
| Australia Persistence Scorecard figures | S&P Dow Jones Indices LLC | how rarely a top quarter fund stayed there, on the same page |
The calculator engine includes four types of costs. Tax treatments differ depending on the type of account (investment, super, pension). It charges every layer on the average of the opening balance and the pre-fee closing balance.
| Layer | Default | How the tax treats it |
|---|---|---|
| Fund fee, per class | the per-class figures in the preceding class table | no credit and no deduction inside super, either kind of super. Deductible at the marginal rate outside super. Subtracted from the gross index return, because the return series is before fees. The fee lowers the fund's taxable earnings, so a super fund's 15% tax falls by about 15% of the fee; the engine gives no such benefit in super accumulation, a difference of about 0.03% a year on a 0.2% fund fee |
| Advice cost | 1.0% a year before goods and services tax (GST), so 1.1% with it; selectable at 0.9, 1.0, 1.1, or 1.2, or turned off | advice costs receive a tax credit of 15% as they count as an expense to the superannuation fund. No credit in a pension. Outside super this tool allows no deduction for advice, because only the part of the advice cost that relates to tax advice is deductible, and most advisers do not state any part of their fee as tax-deductible |
| Platform fee | 0.25% a year before GST, so 0.275% with it | 15% credit in super accumulation, no credit in a pension, deductible at the marginal rate outside super |
| Fixed amount in dollars | none by default | held in start-year dollars and indexed along the same inflation path as everything else in the window. Super accounts only: it gets the 15% credit in accumulation, none in a pension, and outside super it is not charged at all |
The engine applies 10% GST to the advice cost and the platform fee, and to nothing else. The code holds that as a factor of 1.10.
Each class has an assumed cash income yield. That yield sets the part of the return that is taxed each year. Of the Australian share income, 77% is treated as franked at a company rate of 30%. That applies from FY1988 onward, the first full year of imputation. Before that year the credit is zero.
Australian listed property has multiple income streams. An A-REIT is a trust, and a trust pays no company tax and therefore has few, if any, franking credits. The engine splits the distribution five ways rather than taxing all of it at the marginal rate.
| Component | Share | How the engine taxes it |
|---|---|---|
| Ordinary incomenet rent, interest, unfranked dividends | 44.3% | assessable in full |
| Capital gains distributed | 46.7% | assessable at half outside super and two thirds inside it, which is the CGT discount each account type receives |
| Franked dividends | 4.3% | assessable in full, and it carries the credits below |
| Foreign income | 4.3% | assessable in full. The foreign income tax offset the notices report is not modelled |
| Not assessable | 0.4% | not taxed, and not deducted from the cost base either. See the note on tax-deferred amounts below |
| Franking creditsattributed on top of the cash | 2.25% | of the cash distribution, from FY1988 like every other credit here. These credits come on top of the cash and are not one of the five shares. Normally a credit is 30/70 of the franked dividend it comes with. The credits in Vanguard's notices are higher than that rule gives, so the engine uses the reported figure. |
The above five income streams are cash-weighted over the nine financial years FY2018 to FY2026. They come from Vanguard's own 36 available quarterly distribution tax estimate notices for its Australian Property Securities Index ETF. The year-to-year variation is wide. The capital gains share alone ran from 6.5% to 73.2% over those nine years. Therefore the percentage split assumed is an average of multiple years.
More details:
The default growth block does not include any A-REIT weighting. This split therefore only affects a result if the user puts together a growth mix that includes listed property.
The bond series consists of government bonds. The index it tracks, the standard Australian bond index, consists of 90.6% government and quasi-government bonds and approximately 9% corporate bonds. This corporate component provides an additional return. The engine adds it as a value that can be set by the user, rather than integrating it into the series.
The calculation engine does not model capital gains tax for shares on a year-by-year basis, as an index fund distributes almost no realised gains. Australian listed property forms the exception here. Its gains are treated as income in the section above and not here, as they are distributed rather than realised on a sale.
This section deals with capital gains tax at disposal, for accounts outside super only. The calculation engine calculates this twice: once under current law and once under the 2027 rules. Both calculations use the same cost-base layers, one per financial year. Each layer consists of that year's contribution plus the net income reinvested in it.
| Current law | 2027 rules | |
|---|---|---|
| The gain | sale value less the cost base as it stands | sale value less a cost base with every layer indexed by inflation from its own financial year to the sale |
| The discount | 50% on every layer held more than twelve months. The final year's addition is under twelve months old and is taxed undiscounted | none |
| The rate | the rate at sale selected | the rate at sale, or 30%, whichever is higher. The minimum applies at every marginal rate |
| A loss | no tax, and no refund implied | no tax. Indexation cannot create a loss or make one bigger |
The model applies these same two tax regimes to a panic sell-off in the middle of a time window, specifically in the view that shows what a complete sell-off would cost. The comparison between selling and holding therefore includes the tax on the sale.
Inflation is factored into the model at exactly one point. A running deflator starts at 1.0. At the end of each financial year, the model multiplies this value by one plus that year's inflation rate. If an inflation rate is selected, the model uses that. Otherwise, the published rate for the relevant financial year is used.
The tool replays the historical data rather than simulating it. It holds the user's portfolio mix through every stretch of history that the data can cover. It provides one result per starting year.
Term deposits work differently from all other products tracked by the engine, as the interest rate set for the year constitutes the annual return.
The same calculation exists in two places: in this browser-based engine and in the desktop tools this practice uses in its own work. A fixed results file is located alongside the code, and the browser engine's results are checked against this file. This amounts to a total of 361,621 checks, spread across 30 scenarios, a per-year grid of 180 windows, and 2,770 sell-out cases. Today, 0 of these checks disagree with the fixed file.
This was not the case during the reprogramming. Between 21 August and 4 September 2026, this engine differed from the desktop engine on five occasions. Each deviation was intentional and has been logged here along with the number of checks affected. The inflation rate for 2026 was finalised from 4.0942% to 3.9419% (2,022 checks). Fixed-term deposits were included in this engine, while the desktop engine does not include them (none, as the fixed file cannot recognise them). The A-REIT distribution split was added on 27 August (2,468; all in the single scenario holding listed property). The credit premium on the bond component was added on the same day and affected every scenario holding a bond (100,982). The contribution caps of 4 September were indexed to wages and rounded down to the nearest step, as the law requires (18,592). These four counts add up to the 124,064 discrepancies reported on this page on 4 September. On 5 September, the desktop engine adopted all of these with the exception of fixed-term deposits. Fixed-term deposits remain outside the fixed file and are instead checked according to their own rules (233 checks, all passed). On the same day, the fixed file was re-derived from the reconciled desktop engine, and the shared default-path fixture was locked again. Neither engine owns this fixture, and it was only locked again after both engines had matched the proposed file to the cent. Each of the five had been attributed the same way before the reconciliation. Putting the old value back made the checks it moved agree again exactly.
This reconciliation was a prerequisite for the launch of this website and was successfully completed. A future change to either engine is expected to change the fixed file again. The rule is now as follows: the two engines must match before a change is published; otherwise, this paragraph will describe the nature of the discrepancy and the reason for it.
Since September 2026, a visitor has been able to increase the annual amount either in line with wages or in line with inflation plus a margin. The wage series is AWOTE, average weekly ordinary time earnings. Since 10 October 2026, growth based on wages has been the default setting for every account type. The desktop engine increases a contribution exclusively by a fixed rate. The fixed file checks this fixed rate, and none of its scenarios take wages into account. The figures displayed by the tools by default are therefore based on a method that is not common to both engines. The checks mentioned above do not test it. Both engines read the same wage series to index the concessional cap.
| Suite | Checks | Disagreeing | What it holds |
|---|---|---|---|
| tests/run_default_path.mjs | 2,426 | 0 | the shared fixture. Three account types, the site's own first-load inputs, every valid 25 year window |
| tests/run_golden.mjs | 359,195 | 0 | the expanded grid: ending balances, contributions, tax paid, both capital gains regimes, money-weighted returns, the before-inflation pair, and every sell-out case |
| tests/check_term_deposits.mjs | 233 | 0 | term deposits: that the default is unchanged, that the sleeve computes, and that a window the series cannot cover is refused |
| tests/check_areit_and_credit.mjs | 123 | 0 | the A-REIT distribution split and the credit premium on the bond component: that the split is a split, that the default mix cannot see it, and that each parameter moves a figure in the direction and by the amount the research behind it measured |
These are the limitations of the calculator:
Designed and produced by Dr Christoph Schnelle, In Your Interest Financial Planning. In Your Interest Financial Planning Pty Ltd, ABN 28 094 300 464 is Authorised Rep. No 308161 of Fiduciary Duty Advisers Pty Ltd AFSL No 527434. Nothing on this page is advice to you or to your clients. Corrections are welcome and very much appreciated – contact us.