This triggered a lot of online chatter from many Singaporeans. Much of the sentiment is that Singaporeans are always in "survival mode", because price has risen but income has not.
Personally, I do also feel and worry about the financial burden of living in Singapore. This motivated me to do an analysis of the income earned by Singaporeans.
Hunting down the data
First, we need to find the relevant datasets to work with. Usually that means searching on the amazing data.gov.sg. However, that not yield any datasets related to what we are looking for.
Well, the next best alternative is to Google, and I was not disappointed. It led me to MOM's site, specifically here.
There are a lot of amazing data sets here! It would be worth revisiting some of the data sets here in the future for analysis.
Cleaning the data set
It's time to use a bit of Python magic to clean up the data.
Firstly, the data set is available in excel. Since the data set is small, let's convert it to a csv file by hand for analysis using Python.
We will read in the data set using the pandas library in Python.
Value in Thousands (Exclude Full-Time National Servicemen) Aged fifteen years and over
Limitations
While we have found a good data set to work with, there are a few limitations that we need to consider in our analysis.
The data is presented in ranges/buckets. This means that the true value might be obfuscated within the ranges provided. i.e. $3,001 and $3,998 are all within the income group of $3,000 to $3,999, even if they are quite different.
This data set excludes CPF contributions.
CPI is not factored into our analysis (until later).
Now that we have the raw data and understood our limitations, let's do a few data visualisation to look for patterns and trends.
Analysing Gross Monthly Income
Firstly, let's take a look at the breakdown of the raw number of population per monthly income group in Singapore.
We will look at the comparison of all the values using a stacked bar chart. It should give us an understanding of the breakdown of each income group by year, and at the same time allow us to compare the differences per year.
Gross Monthly Income Bar Chart
Using the bar chart is still a little messy given that there are many gross monthly income ranges in the dataset. We will improve on the charts and visualisation later.
Next, we will also try and take a look at the breakdown by year for each income range. We will use a sunburst chart to group up the data for visualisation, broken down to a pie chart for per income range breakdown.
Gross Median Income Sunburst Chart in 2020
Selected Year: 2020
2020
Visualising Change By Year
We will inspect the changes of each income group by year using a line chart for each income group.
Monthly Median Income Line Chart
Measuring Rate of Change
A better approach would be to express each cell as a percentage of change based on the preceding time period. This will give us a sensing of the rate of change in each income group by year.
1
# 1. get rid of 'total' row
2
# 2. convert cells to percentage change from previous row using pct_change()
Heat Map of Gross Monthly Income Percentage Change By Time Period
By visualising the heat map data set in a yearly period, we could see that most of the reds (decrease) are located in the lower income ranges, while most of the greens (increase) are located in the higher income groups.
That is a good sign! It means we have fewer people in the lower income groups each year (pre 2020), and more workers in Singapore entering the higher income groups. Particularly in the period from 2016 to 2019, the data shows sustained percentage decrease across each of the income ranges below $2,500.
However, 2020 has reversed the trend (definitely due to COVID-19). We could see percentage increases for all income groups below $2,000. In particular, there is a worrying 20.25% increase in the under $500 earners from year 2019 to 2020. On a side note, I'm now interested to analyse the impact of COVID 19 on Singaporean's income in a separate article.
If we take a look at the heatmap in a 10 year period (from 2010 to 2020), the data set is definitely healthy. We could see a decrease in the lower income groups that are under $3,000, and an increase in growth from $3,000 and above. This means that there are more Singaporeans are earning $3,000 and above.
But, it does seem like the percentage growth increase in the higher income groups is disproportionate to the percentage decrease in the lower income brackets. This could be a sign of income inequality, which we could try to explore later.
Gross Monthly Income Group of Singaporeans by Percentile
Great, we should also analyse the income buckets by percentile. This should give us a sense of income changes in each percentage group of Singaporeans.
Gross Monthly Income Range by Percentage of Singapore Population
Bottom 5%
Bottom 10%
Bottom 25%
Median (50%)
Top 25%
Top 10%
Top 5%
2010
$500 - $999
$500 - $999
$1,000 - $1,499
$2,500 - $2,999
$4,000 - $4,999
$7,000 - $7,999
$10,000 - $10,999
2011
$500 - $999
$500 - $999
$1,500 - $1,999
$2,500 - $2,999
$4,000 - $4,999
$8,000 - $8,999
$11,000 - $11,999
2012
$500 - $999
$500 - $999
$1,500 - $1,999
$2,500 - $2,999
$5,000 - $5,999
$8,000 - $8,999
$12,000 - $12,999
2013
$500 - $999
$500 - $999
$1,500 - $1,999
$3,000 - $3,999
$5,000 - $5,999
$9,000 - $9,999
$12,000 - $12,999
2014
$500 - $999
$1,000 - $1,499
$1,500 - $1,999
$3,000 - $3,999
$5,000 - $5,999
$9,000 - $9,999
$13,000 - $13,999
2015
$500 - $999
$1,000 - $1,499
$1,500 - $1,999
$3,000 - $3,999
$5,000 - $5,999
$9,000 - $9,999
$13,000 - $13,999
2016
$500 - $999
$1,000 - $1,499
$1,500 - $1,999
$3,000 - $3,999
$5,000 - $5,999
$9,000 - $9,999
$13,000 - $13,999
2017
$500 - $999
$1,000 - $1,499
$1,500 - $1,999
$3,000 - $3,999
$5,000 - $5,999
$10,000 - $10,999
$14,000 - $14,999
2018
$500 - $999
$1,000 - $1,499
$1,500 - $1,999
$3,000 - $3,999
$6,000 - $6,999
$10,000 - $10,999
$14,000 - $14,999
2019
$500 - $999
$1,000 - $1,499
$2,000 - $2,499
$3,000 - $3,999
$6,000 - $6,999
$10,000 - $10,999
$15,000 - $19,999
2020
$500 - $999
$1,000 - $1,499
$2,000 - $2,499
$3,000 - $3,999
$6,000 - $6,999
$10,000 - $10,999
$15,000 - $19,999
So far, we have not used CPI (consumer price index) in our analysis of the data. We will take a look at CPI in the next section.
CPI
Consumer Price Index (CPI) is designed to measure the average price changes of a fixed basket of consumption goods and services commonly purchased by the resident households over time. It is widely used as a measure of consumer price inflation.
Quite simply put, it helps us to measure the relative value of money between different years, i.e. what can $500 get you in 2010 vs in 2020.
In our analysis, let's make use of CPI to calculate the income earned by each percentile relative to the value of money in year 2020.
Calculating Income Ranges of Different Percentiles using CPI
We start by getting the CPI values from data.gov.sg. We will convert the indexes to switch the base year from 2019 to 2020.
CPI Value with 2020 as Base Year
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
CPI
87.567
92.163
96.38
98.654
99.664
99.143
98.615
99.185
99.619
100.182
100
To calculate the adjusted wage, we can make use of the following formula:
Gross Monthly Income Range by Percentage of Singapore Population using CPI with 2020 as Base Year
Bottom 5%
Bottom 10%
Bottom 25%
Median (50%)
Top 25%
Top 10%
Top 5%
2010
$570.99 - $1,140.84
$570.99 - $1,140.84
$1,141.98 - $1,711.83
$2,854.96 - $3,424.81
$4,567.93 - $5,708.77
$7,993.88 - $9,134.72
$11,419.83 - $12,560.67
2011
$542.52 - $1,083.95
$542.52 - $1,083.95
$1,627.55 - $2,168.98
$2,712.59 - $3,254.02
$4,340.14 - $5,424.09
$8,680.27 - $9,764.22
$11,935.38 - $13,019.32
2012
$518.78 - $1,036.52
$518.78 - $1,036.52
$1,556.34 - $2,074.08
$2,593.90 - $3,111.64
$5,187.80 - $6,224.32
$8,300.48 - $9,337
$12,450.72 - $13,487.24
2013
$506.82 - $1,012.63
$506.82 - $1,012.63
$1,520.47 - $2,026.27
$3,040.93 - $4,053.56
$5,068.22 - $6,080.85
$9,122.79 - $10,135.42
$12,163.72 - $13,176.35
2014
$501.69 - $1,002.37
$1,003.37 - $1,504.05
$1,505.06 - $2,005.74
$3,010.11 - $4,012.48
$5,016.86 - $6,019.22
$9,030.34 - $10,032.71
$13,043.83 - $14,046.20
2015
$504.32 - $1,007.64
$1,008.64 - $1,511.96
$1,512.97 - $2,016.28
$3,025.93 - $4,033.57
$5,043.22 - $6,050.86
$9,077.80 - $10,085.43
$13,112.37 - $14,120.01
2016
$507.02 - $1,013.03
$1,014.04 - $1,520.05
$1,521.07 - $2,027.07
$3,042.13 - $4,055.16
$5,070.22 - $6,083.25
$9,126.40 - $10,139.43
$13,182.58 - $14,195.61
2017
$504.11 - $1,007.21
$1,008.22 - $1,511.32
$1,512.33 - $2,015.43
$3,024.65 - $4,031.86
$5,041.08 - $6,048.29
$10,082.17 - $11,089.38
$14,115.04 - $15,122.25
2018
$501.91 - $1,002.82
$1,003.82 - $1,504.73
$1,505.74 - $2,006.65
$3,011.47 - $4,014.29
$6,022.95 - $7,025.77
$10,038.25 - $11,041.07
$14,053.54 - $15,056.36
2019
$499.09 - $997.19
$998.18 - $1,496.28
$1,996.37 - $2,494.46
$2,994.55 - $3,991.74
$5,989.10 - $6,986.28
$9,981.83 - $10,979.02
$14,972.75 - $19,962.67
2020
$500 - $999
$1,000 - $1,499
$2,000 - $2,499
$3,000 - $3,999
$6,000 - $6,999
$10,000 - $10,999
$15,000 - $19,999
Median (50th Percentile) Earner
Looking at the median (50th percentile), there is definitely an increase from $2,854.96 - $3,424.81 in 2010 to $3,000 - $3,999 in 2020.
The increase is not as big as I had imagined, but it's a clear sign that Singaporeans are earning more than before.
Another thing to note is that the growth seems to have stagnated from 2013 onwards to 2020. However, it should also be noted that the data is presented in ranges. So there might be growth, for example from $3,001 to $3,998, but is not readily represented by the data set.
Income Inequality
Taking inflation into account, the data doesn't look good for the 5th and 10th percentile in Singapore. The bottom 5% population has in fact regressed from 2010 to 2020.
On the other hand, the 95th (top 5%) percentile has seen a huge increase in the income range from $11,419.83 - $12,560.67 in 2010 to $15,000 - $19,999 in 2020.
This is definitely a clear sign of growing income inequality in Singapore, with the rich getting richer and the poor becoming poorer.
Conclusion
The data looks worrying for the population earning under the median. Income growth has largely stagnated, and you could even argue that it has regressed when you take CPI into account.
On the other hand, everybody above the 50th percentile has seen their income levels soar. You could see sustained income growth for each of the percentile groups (25%, 10%, 5%).
Afterword
Well, that's all for now. This is actually the first article I have written. I've decided to start this blog to express my thoughts on technology, data science and politics (to a lesser degree).
If you are interested in articles like this, I would really recommend you subscribe to my telegram channel. It's completely anonymous, and you will receive instant notifications when I have new articles.
Also, if you are interested to learn coding and data science, I teach at UpCode Academy in Singapore. Courses can be fully covered under Skillsfuture. Check out the website for more information!
Lastly, if you have any leads or interesting things that you think I might be able to analyse and write about, feel free to reach out to me on my social media! Any feedback is also welcomed!
Subscribe to my telegram channel (anonymously) to get updates when I post.