Financial goals methodology: how Portfolio Lab simulates a life plan
This financial goals methodology describes what lies behind the Financial goals page: a payment plan made up of savings, income, withdrawals and one-off goals runs month by month across thousands of simulated return paths, optionally with German taxes on every sale and a glide path from an equity portfolio into a bond portfolio. At the end, you see for each goal how often it is paid in full, and what savings rate is still missing.
The payment plan
Each row of the plan is a payment with a type, amount, frequency, period, inflation linkage, growth and priority; in addition, there are the starting assets (default €50,000). There are five types:
| Type | Direction | Effect |
|---|---|---|
| Savings rate | inflow | recurring, monthly, quarterly or annually |
| Deposit (one-off) | inflow | once, at the end of January in the “From” year |
| Income (recurring) | inflow | pension, rent or part-time work, net; directly covers expenses in the same month |
| Withdrawal (recurring) | outflow | may also be paid in part |
| Goal (one-off) | outflow | such as a down payment on a home or a car, at the end of January in the “From” year |
Amounts are in today's purchasing power and rise with the set inflation rate (default 2% p.a., selectable from 0 to 15%); without the tick, they stay fixed in nominal terms. Growth additionally increases the amount for each calendar year since the start year, for example a savings rate that grows with your salary. Quarterly payments fall in January, April, July and October, annual ones in January. The plan starts today; month 1 is the end of the current month and only counts with the remaining days (7 of 31 on 24 October), and one-off payments in the current year fall there. The end of the plan is the last year with a payment, but at least ten years from today. Rows without an amount or year are skipped and reported; a recurring payment without a “To” year only applies in the start year.
Amount_m = amount today × (1 + i)^(m/12) × (1 + g)^(year − start year)- i
- inflation p.a. (only with inflation linkage)
- g
- growth p.a.
- m
- months from today until the payment date: in the first month the remainder (7/31 on 24 October), then 1 more for each month
Return paths
The returns come from the selected portfolio in the grid, reset to the target weights every month, without costs. They are drawn with the methods of the Monte Carlo methodology; the default here is the block bootstrap with annual blocks, with 2,000 paths and a fixed seed, so that the same inputs give the same results. Your own assumptions for return and volatility are available with the parametric methods. With a glide path, the common history of both portfolios always applies: with the bootstrap, the same months are drawn for both, and with the parametric methods their historical covariance applies. This preserves the relationship between them.
What happens in a month
- In January: determine the Vorabpauschale (advance lump-sum taxation) for the previous year and renew the saver's allowance (Sparer-Pauschbetrag).
- Apply the monthly return to the portfolio, in the first month only pro rata for the remaining days: (1 + r)^(7/31) − 1 on 24 October.
- Make the month's inflows available as cash; from this, first pay the tax on the Vorabpauschale, selling assets if cash is short.
- In January, with a glide path: rebalance to the target share if the deviation is greater than 2 percentage points.
- Pay expenses: first High, then Medium, then Low, and within a level in the order of the plan; cash first, the rest by selling.
- Invest any remaining cash, with a glide path first in the underweight part.
The amount available for an expense is what would remain after tax if the entire portfolio were sold, plus the month's remaining cash. More is never paid; once the portfolio is empty, it stays empty, because there is no borrowing.
Priorities and reserve
Expenses with priority High are paid as long as there is money. Medium and Low only get their turn if enough remains afterwards to cover all future expenses of higher priority: for Medium, the reserve for High counts; for Low, the reserve for High and Medium. A one-off goal is then paid in full or not at all, while a recurring withdrawal can also be paid in part. In this way the model cancels the world trip before living costs in retirement are put at risk. Without priorities, all expenses are treated as High.
The reserve is the present value of future expenses, calculated backwards month by month. Future inflows only reduce it insofar as they arrive before the respective expense; surpluses in later years do not cover earlier gaps. Discounting uses the expected return of the simulated paths (geometric mean, annualised) minus a safety margin, by default 1 percentage point (selectable from 0 to 10).
Reserve_m = max(0, Reserve_(m+1) + expenses_(m+1) − inflows_(m+1)) / (1 + z)- z
- discount rate per month = (1 + expected return − margin)^(1/12) − 1
Taxes on sales
With taxes switched on, the simulation keeps, for each path, a portfolio with its value, cost basis, loss carryforward and remaining saver's allowance (€1,000 for single persons, €2,000 for jointly assessed couples). It uses average cost instead of FIFO: every euro sold contains the same gain portion 1 − cost basis / value. Of this, the partial exemption (Teilfreistellung), weighted across all securities, remains tax-free; the loss carryforward and the allowance reduce the remainder, which is subject to the flat-rate withholding tax (Abgeltungsteuer), the solidarity surcharge and church tax where applicable (EStG 2009). Withdrawals are sold gross in an amount large enough for the planned amount to arrive net. The cost basis of today's portfolio can be chosen: 70% means that 30% of the value is already price gains.
The Vorabpauschale falls due every January for the previous year: base rate × 0.7 on the value at the start of the year, at most the increase in value, reduced for purchases during the year by one twelfth for each full month before the purchase (InvStG 2016). It only affects investment funds and increases the cost basis. The current value is used as the base rate for all future years (2026: 3.2%). The rules for each type of security are described in the tax methodology.
For comparison, the page shows the success rate without taxes on the same paths. The gap is the price the plan pays for taxes.
Glide path between two portfolios
Optionally, the assets are held in two pots, such as an equity portfolio A and a bond portfolio B. The target share of A stays at the starting value until the “from” year, falls linearly until the “to” year and then stays at the end value; if both years are the same, it switches all at once. Inflows go first into the underweight pot, withdrawals come pro rata from both, and in January the portfolio is rebalanced if the share deviates from the path by more than 2 percentage points, with taxes on the sale. The Rule of thumb 110 minus age button sets the “from” year to today, the starting share to 110 − age and the end share to 110 − age in the “to” year.
Whether the equity allocation should fall with age is less clear than the rule of thumb suggests: for young people, labour income acts like a bond in their wealth (Cocco et al. 2005; Bodie et al. 1992), whereas in retirement an equity allocation that rises again can reduce the risk of early losses (Pfau and Kitces 2013). More on this in the article Equity allocation by age.
Results and savings rate calculator
- Success rate per goal: share of paths in which the payment was made in full in every month it was due; plus the average funded share and the year of the first gap (median).
- Overall rates: share of paths in which all expenses with priority High, or all expenses, were paid in full, and share of paths in which the assets run out at some point.
- Wealth fan chart with the percentiles 10 to 90, nominal or in today's purchasing power, plus taxes per year and the final assets after tax on sale.
The savings rate calculator looks for the additional monthly savings rate, in today's purchasing power, that achieves the target success rate (default 90%, selectable from 50 to 99%) for all expenses with priority High. The savings rate runs from today until the year before the first such expense. The search uses bisection on the same paths: first doubling from €100 until the target is reached, then narrowing down to within €1 and rounding up. If more than €1 million a month would be needed, the page reports the target as not reachable.
Limitations
- Inflation, base rate and tax rates are fixed over the entire period; the model does not know about changes in the law.
- One common loss carryforward for all securities: unlike in the backtest, there is no separate loss offset pot for equity losses. The simulation only knows the return of the whole portfolio, not that of individual stocks, so a separate pot could not be calculated.
- For the current year, today's assets count as the value at the start of the year, because the portfolio is an existing one: the Vorabpauschale next January is calculated on it, capped by the increase in value from today. If the portfolio was only bought this year, it would actually be lower (one twelfth less for each full month before the purchase).
- No transaction costs and no uncertain lifespan: the plan ends in a fixed year. Milevsky and Robinson (2000) show how longevity changes the risk of ruin.
- The reserve uses a fixed interest rate and ignores taxes on future sales. It is a rule for the order of payments, not a guarantee.
- As with any Monte Carlo calculation, the results are only as good as the history or the assumptions behind them (Glasserman 2003). Bengen (1994) provides comparison values for fixed withdrawal rates; more in the article Withdrawal rate.
Frequently asked questions
What does priority Medium or Low mean?
Such expenses are only paid if enough assets remain afterwards for all future, more important expenses. A one-off goal is then dropped entirely instead of being paid in part.
Why is the success rate lower with taxes?
Each withdrawal requires a larger gross sale so that the planned amount arrives net, and the Vorabpauschale costs something every year. The page shows both rates on the same paths.
Does income count like a savings rate?
Income is a recurring inflow that directly covers expenses in the same month. Only the remainder is withdrawn from the portfolio; any surplus is invested.
Until when does the calculator's additional savings rate run?
Until the year before the first expense with priority High. If there is no such expense, the first expense of any kind counts.
Which cost basis is correct?
The share of today's portfolio value that you actually paid in. For a new portfolio it is 100%; for an old one with large price gains it is less.
Literature
- Bengen, William P. (1994): Determining Withdrawal Rates Using Historical Data. Journal of Financial Planning. Source
- Bodie, Zvi; Merton, Robert C.; Samuelson, William F. (1992): Labor supply flexibility and portfolio choice in a life cycle model. Journal of Economic Dynamics and Control 16 (3-4), pp. 427–449. doi:10.1016/0165-1889(92)90044-f
- Cocco, João F.; Gomes, Francisco J.; Maenhout, Pascal J. (2005): Consumption and Portfolio Choice over the Life Cycle. Review of Financial Studies 18 (2), pp. 491–533. doi:10.1093/rfs/hhi017
- Deutscher Bundestag (2009): Einkommensteuergesetz (EStG), § 20 (Kapitalvermögen) und § 32d (Abgeltungsteuer). Bundesgesetzblatt; Fassung auf gesetze-im-internet.de. Source
- Deutscher Bundestag (2016): Investmentsteuergesetz (InvStG), §§ 16, 18, 19 und 20 (Investmenterträge, Vorabpauschale, Veräußerung, Teilfreistellung). Bundesgesetzblatt; Fassung auf gesetze-im-internet.de. Source
- Glasserman, Paul (2003): Monte Carlo Methods in Financial Engineering. Springer.
- Milevsky, Moshe Arye; Robinson, Chris (2000): Self-Annuitization and Ruin in Retirement. North American Actuarial Journal 4 (4), pp. 112–124. doi:10.1080/10920277.2000.10595940
- Pfau, Wade D.; Kitces, Michael E. (2013): Reducing Retirement Risk with a Rising Equity Glide-Path. SSRN. doi:10.2139/ssrn.2324930
This page describes how Portfolio Lab calculates; past results are not a forecast. All terms in the glossary.