Retirement Planning with Monte Carlo Simulation

AUG 20, 2020

Financial planning is a powerful tool that can help manage your life. It helps you to be financially prepared for your master’s degree, housing, dream trips, marriage, as well as retirement. However, most financial plans are done on spreadsheets where many important variables, such as salary growth, portfolio returns, and rate of saving, are assumed to be constant; such scenario is unlikely in the real world.

In this article, I would like to introduce a simulation method for retirement planning, where all assumption variables are turned into random variables with corresponding probability distributions. This work aims to answer a very simple question — how much do you need to save per month from now on, in order to be financially sufficient for your retirement? 

Let’s start from a very simple case. If you need 20,000 Baht a month for living and you plan to live for 20 years after retirement, you will need 4.8 Million Baht at retirement. And let’s assume that you have 30 more years to work and accumulate savings, you need to set aside 13,333 Baht a month from now on, in order to meet your retirement cash required. However, this saving plan is only reasonable in the world without inflation and investment.

With inflation, you need more money in the future to buy similar goods and services than you need now. And with investment, you can expose yourself to the market uncertainties, so called the risks in financial terms, that can grow or reduce your accumulated savings. These realistic uncertainties make our simple question a lot more complex, and they can better be understood through a numerical simulation.


To see the impact of inflation [1], the prices of goods and services are expected to double in 35 years, assuming 2% constant inflation. It will reduce to 23 years in case we have 3% constant inflation. In reality, however, there are fluctuations in the Consumer Price Index [2], which cause inflation or even deflation in some periods as illustrated in Figure 1. Therefore, assuming a constant inflation can be too simplistic and a simulation of inflation is required.

Screen Shot 2563-08-20 at 08.42.31.png

To take into account uncertainties, we introduce the random variable [3],  


, for

inflation, which is distributed as a normal distribution with the mean of 1.5% and the standard deviation of 1.5%. This reflects the historical 12-month change of the consumer price index in Thailand during the past 10 years (see Figure 2). With this random variable, we can simulate future inflation rates by sampling from the underlying distribution. 

To illustrate further, we can randomly generate 1,000 possible next-year inflation rates which represent 1,000 possible futures. With 1.5% mean and 1.5% standard deviation, around 600 out of the 1,000 generated inflation rates will be around 0% - 3%, the remaining 400 generated rates will either be less than 0% or more than 3%. We can use this method to do multiple-year projections for both inflation and investment returns in order to understand the best case and the worst case we may face.  

The technique is called Monte Carlo Simulation [4], the process of repeated sampling to visualize potential outcomes under uncertainties. It is widely used in risk management, project management, but it is not so common in the field of personal finance. We will also use this method to gain understanding of how our investment plan impacts our saving and retirement plan.


Another important component is the rate of return of your investment. The higher the rate of return you get, the less savings required to meet your financial target. However, as the majority of active investors cannot consistently outperform the market, the higher expected return always comes with the higher risk. To understand the investment risk, let’s look at the actual data in Thai financial market from 2010 to 2020. [5][6][7]

Screen Shot 2563-08-20 at 09.03.10.png

The Figure 3 shows a return distribution where we randomly select timing and invest in each investment option for 1 year. According to these statistics, the probability of making profit from risky investment, in this case SET Index and Mixed Fund, is only around 40%. Holding the assets longer can reduce the risk, but buying the right assets at the right time is still the key, which is unlikely for anyone to consistently do.

Screen Shot 2563-08-20 at 09.06.46.png

As the market can be extremely unpredictable, it is also more appropriate to use a random variable instead of a constant assumption when it comes to financial planning. Different choices of investment require different assumptions. If you are a risk taker and plan to put all of your retirement portfolio in stock, then your assumptions should be around 8% expected return with 16% standard deviation, according to the statistics from Stock Exchange of Thailand illustrated in Figure 4.

We represent the uncertain quantities with random variables. For example,


 for 1.5%

for inflation rate and

CodeCogsEqn (1).gif

for 5% expected investment return with 6% SD. For

expected inflation with 1.5% SD and

CodeCogsEqn (4).gif
CodeCogsEqn (5).gif
CodeCogsEqn (3).gif
CodeCogsEqn (2).gif

, respectively, then divide by 12 as the simulation will be done on a monthly

for investment return by sampling from the

, we generate

CodeCogsEqn (6).gif

each of the future month



distribution underlying

If you prefer not to take risks, you can also invest in government bonds where you can expect 2.5% of return with 0.5% standard deviation. Many people prefer to invest in a combination of assets, so investing a mixed fund can also be a good option.    



To calculate the amount of cash required at retirement and monthly saving, the concept of time value of money [8] must be applied. If we need 20,000 Baht per month now, we will need 20,000 * (1 + inflation) to live a similar lifestyle next year, e.g. 20,200 if next year’s inflation is 1%. If you expect to generate 5% of investment return next year, you need to save only 19,238 Baht today, which is equivalent to CashRequired / (1 + return), in order to have 20,200 next year.

With computer programming and simulation, we can make multiple-year financial projections. After one projection for both inflation rates and investment returns, we get a single cash required at retirement and monthly saving plan. To complete the simulation, we do multiple projections to generate multiple possible results so that we understand the range from minimum to maximum savings we need.


Screen Shot 2563-08-20 at 09.26.31.png

We can then calculate the amount of cash required

CodeCogsEqn (7).gif

for each of the future month

CodeCogsEqn (2).gif

after retirement month

CodeCogsEqn (8).gif

and before expected death month

CodeCogsEqn (9).gif

as follows.

CodeCogsEqn (10).gif

Then we can get total savings at retirement,

retirement time.

CodeCogsEqn (11).gif

, by discounting the future cash flows back to the value at the

Screen Shot 2563-08-20 at 09.46.55.png
Screen Shot 2563-08-20 at 09.53.03.png

, as the future saving target. And from that we can calculate fixed

CodeCogsEqn (11).gif

, in order to reach the target.

We can think of savings at retirement,

CodeCogsEqn (12).gif

savings per month,

Screen Shot 2563-08-20 at 10.03.24.png

However, in reality, we tend to save based on a certain percentage of our earnings. Therefore, it is also a good idea to consider a saving plan where we can increase our savings each year. For those who are interested in the full calculation, the full Python code is provided in the following Git repository.

, we complete a simulation with a

CodeCogsEqn (11).gif

single sample. To complete the simulation, we repeat the similar method multiple times, e.g. 1,000 times, to arrive with 1,000 possible saving targets and saving amounts required each month.

CodeCogsEqn (13).gif

, and a saving amount each month,

Once we arrive with a saving target,

Screen Shot 2563-08-20 at 10.21.49.png

We can then look at certain percentile thresholds to understand how much we need to save, with respect to certain confidence intervals. From the example in Figure 5, if we look at the 95th percentile, meaning that we are 95% confident that our savings will reach our retirement goal, we have 15.5 Million Baht as the target amount and, from Figure 6, we need to save 17,600 Baht monthly from now until retirement.

For simplicity, the results of the simulation technique proposed in this article is based on an assumption that future inflations and investment returns are normally distributed. With this particular assumption, it may be possible to solve the final cash required and savings using  analytical methods. However, as the actual distributions of our random variables, especially investment, can be more complex as illustrated in Figure 3, there may be no closed-form solutions to the problem. Therefore, for scalability, a simulation method is still more preferable.



Now, to create your own simulation-based retirement plan, I have created a Line Bot as a channel to receive your inputs, perform all the calculations, and display the results. 

Screen Shot 2563-08-20 at 10.25.04.png

The simulation already assumes the distribution of inflation rates, which has 1.5% mean with 1.5% SD. You need to input your basic profile including your age, expected retirement age, life expectancy after retirement in years, and retirement spending. Remember that retirement spending is per month and is in present value, the simulation already accounts for inflation. Next, input your investment assumptions according to your risk appetite (see Risk and Return Profile in the Investment as a Wealth Management Tool part above). Then type ‘run’ to see the simulation results.



It is important to understand that the results of the proposed simulation underestimate the impact of many risk variables, such as an economic crisis and a pandemic, which can cause unemployment. The simulation also underestimates the cost of healthcare, which may reduce your savings significantly. Therefore, living a healthy lifestyle can be a good investment. It can make you not only happier but also wealthier in the long term. On top of that, you can also consider using insurance as a wealth protection tool. 

From my observation, many people tend to underestimate the amount of cash they need in order to live after retirement. Even if we expect only a minimal living standard after retirement, multiple million baht is still required. Inability to meet your retirement goal will result in either work after retirement or relying on someone else, such as your children or the government, in order to sustain your life. Thus, retirement planning is undoubtedly very important. And as we are living in the world full of uncertainties, simulation-based planning is one solution that allows you to realistically see the future.    


References :

[1] Chen, James. “Inflation.” Investopedia, 16 Mar. 2020,

[2] “Thailand Consumer Price Index (CPI).” Trading Economics,, accessed 3 Aug. 2020.

[3] Porter, Theodore M. “Random Variables and Probability Distributions.” , Encyclopædia Britannica, inc.,

[4] Kenton, Will. “Monte Carlo Simulation Definition.” 29 Jun. 2020,

[5] “SET Index (SETI).”,, accessed 3 Aug. 2020.

[6] “TISCO Aggressive Growth Fund (TISCOAGF).”, TISCO Asset Management Co., Ltd., 30 Jun. 2020.

[7] “Thailand 5-Year Bond Yield.”,, 
accessed 3 Aug. 2020.

[8] Chen, James. “Time Value of Money (TVM).” Investopedia, 21 Apr. 2020,

Written By
Supanut Jamta
Data Scientist
Sertis Co.,Ltd.

Related Posts