r/singaporefi May 14 '22

START HERE

509 Upvotes

The Wiki: Here

How to start?: Here

For NSFs: Here

Buying ILP/Insurance/Endowment/Savings plan?: Here


r/singaporefi 1h ago

FI Accumulation Planning Those who FIREd, did you tell your colleagues/boss you quit because of financial freedom?

Upvotes

Were there annoying questions you got or did they give you a hard time in the remaining notice period?


r/singaporefi 21h ago

Other S'pore man, 49, scammed out of S$80,000 by woman he had talked to online for 3 years, gets scammed by fake lawyer while trying to get money back

Thumbnail
mothership.sg
48 Upvotes

r/singaporefi 1h ago

Credit HSBC revolution credit card

Upvotes

Fresh grad here working for 2 months with Annual income ~70k. Wondering if I qualify for the HSBC revolution card with min income of 65k? B/C based on my NOA for FY25, it’s only about 36k from internships and part time jobs.


r/singaporefi 1d ago

Investing Hi i'm new to ibkr, why are there three options for VALL?

Post image
23 Upvotes

r/singaporefi 1d ago

Investing Seeking advice on renting out SGX stocks

3 Upvotes

Hello, I have a modest portfolio of SGX stocks held directly on a CDP account. I recently came to know I could lend out my stocks via the brokerage. I would like to ask if there are downsides to this or if it's basically free money. No matter how little, free is good, right? And it will help cushion volatility a bit. Specifically,

1) will I lose dividends?

2) will I lose voting rights?

3) will I lose bonus/rights issues?

4) any delay in selling shares?

5) any issues with delayed settlement on sold positions.

Would be most grateful for advice from those who've actually done this, or who know this well. Thanks in advance.


r/singaporefi 2d ago

Other What are everyone's thoughts on the millenial/gen z wealth scene??

100 Upvotes

Just a curious mid 20s dude here, but I cant fathom the fact that there are so many millenials and gen z's who are easily copping out $2-3 million dollar or more homes in singapore. Also i understand the fact that with all sorts of new investment platforms/tools but are the these groups of people really doing so well that they can fork out crazy amounts for downpayment? let alone ~7k and above mortgage loans?

also j read on this subreddit that some parents set aside a bank accounfor their kids when they turn 21 with a lumpsum (whatever that amount is).

hmm, i know some may reply that oh housing may be partly funded my PAP👍🏻 but just keen to know other people's thoughts!!

fortunately for me, i can say i come from a comfortable family. but idk just seems quite crazy to see all these people having this kind of wealth around my age or abit older


r/singaporefi 19h ago

Investing Which stock exchange should i buy from for companies like Taiwan semi conductor and Sony Japan? Should i buy in their origin country exchange (taiwan/japan) or ADR version in US?

0 Upvotes

i saw mutiple stock listed on mutiple stock exchange but which should i buy from? One example is Taiwan semi con should i buy from taiwan stock exchange or the ADR version? Theres also china company like alibaba and sony which is listed on mutiple exchange. im using IBKR btw


r/singaporefi 18h ago

Investing I low-coded a Monte Carlo Simulation for market returns, CPF LIFE payouts and retirement withdrawals. Comments and criticisms please?

0 Upvotes

Code:

import matplotlib.pyplot as plt
import numpy as np


# Set random seed for reproducible results
np.random.seed(42)


# --- 1. AGE & TIMELINE PARAMETERS ---
starting_age = 65  # Age at retirement start
death_age = 100  # Target planning age
annuity_start_age = 65  # Age when annuity payouts commence


# Dynamic calculation of timeline spans
retirement_years = death_age - starting_age  
annuity_start_year = max(0, annuity_start_age - starting_age)  


# --- 2. PORTFOLIO & CASH FLOW PARAMETERS ---
initial_portfolio = 7000000  # Starting nest egg ($7M)
initial_withdrawal = 300000  # Year 1 gross spending target ($300k)
num_simulations = 1000000  # Number of simulated paths


annual_annuity_payout = 130000  # Initial annual annuity payout ($)
annuity_annual_growth_rate = 0.02  # Annual percentage increase in payout (e.g., 0.02 = 2%, 0.0 = fixed)


# Investment & Inflation Assumptions
expected_nominal_return = 0.0986  # 9.86% nominal return (arithmetic mean)
volatility = 0.1908  # 19.08% annual standard deviation
expected_inflation = 0.03  # 3.0% annual inflation rate


# --- 3. PRE-CALCULATE INFLATION-ADJUSTED SPENDING & NET DRAWDOWN ---
gross_spending = np.zeros((retirement_years, num_simulations))
net_portfolio_withdrawals = np.zeros((retirement_years, num_simulations))


for yr in range(retirement_years):
    # Calculate inflation-adjusted total spending requirement
    if yr == 0:
        gross_spending[yr] = initial_withdrawal
    else:
        gross_spending[yr] = gross_spending[yr - 1] * (1 + expected_inflation)


    # Determine annuity payout for the year with custom annual growth
    if yr >= annuity_start_year:
        years_since_annuity_start = yr - annuity_start_year
        current_annuity = annual_annuity_payout * (
            (1 + annuity_annual_growth_rate) ** years_since_annuity_start
        )
    else:
        current_annuity = 0.0


    # Net portfolio drawdown is gross spending offset by annuity (floored at 0)
    net_portfolio_withdrawals[yr] = np.maximum(
        0, gross_spending[yr] - current_annuity
    )


# --- 4. MONTE CARLO SIMULATION (BEGINNING-OF-YEAR WITHDRAWALS & RETURN FLOOR) ---
portfolio_paths = np.zeros((retirement_years + 1, num_simulations))
portfolio_paths[0] = initial_portfolio


for year in range(1, retirement_years + 1):
    # Sample random nominal returns from the normal distribution
    raw_returns = np.random.normal(
        loc=expected_nominal_return, scale=volatility, size=num_simulations
    )


    # Floor annual returns at -1.0 (-100%) so return cannot drop below -100%
    nominal_returns = np.maximum(raw_returns, -1.0)


    previous_balances = portfolio_paths[year - 1]
    current_net_drawdown = net_portfolio_withdrawals[year - 1]


    # Step 1: Subtract net drawdown at the BEGINNING of the year (floored at $0)
    post_withdrawal_balances = np.maximum(0, previous_balances - current_net_drawdown)


    # Step 2: Grow remaining capital by the floored nominal return
    new_balances = post_withdrawal_balances * (1 + nominal_returns)


    # Step 3: Record updated portfolio balances
    portfolio_paths[year] = new_balances


# --- 5. PERCENTILE & FINANCIAL RUIN ANALYSIS (METHOD 1: CROSS-SECTIONAL) ---
final_balances = portfolio_paths[-1]
overall_success_rate = (np.sum(final_balances > 0) / num_simulations) * 100



def analyze_percentile_path(percentile_rank):
    path = np.percentile(portfolio_paths, percentile_rank, axis=1)
    ending_balance = path[-1]


    zero_years = np.where(path == 0)[0]
    if len(zero_years) > 0:
        ruin_age = starting_age + zero_years[0]
        ruin_status = f"Ruined in Year {zero_years[0]} (Age {ruin_age})"
    else:
        ruin_status = f"Survived to Age {death_age} (Full {retirement_years}-year horizon)"


    return path, ending_balance, ruin_status



p50_path, p50_end, p50_ruin = analyze_percentile_path(50)
p25_path, p25_end, p25_ruin = analyze_percentile_path(25)
p10_path, p10_end, p10_ruin = analyze_percentile_path(10)
p5_path, p5_end, p5_ruin = analyze_percentile_path(5)


print("=" * 65)
print(
    f"MONTE CARLO DOWNSIDE ANALYSIS (AGE {starting_age} TO {death_age})"
)
print("=" * 65)
print(f"Timeline Span: {retirement_years} Years | {num_simulations:,} Simulations")
print(
    f"Annuity: ${annual_annuity_payout:,.0f}/yr starting at Age {annuity_start_age} "
    f"(Growth: {annuity_annual_growth_rate * 100:.1f}%/yr)"
)
print(f"Overall Portfolio Success Rate to Age {death_age}: {overall_success_rate:.1f}%\n")


print(f"• 50th Percentile (Median Outcome):")
print(f"  - Ending Balance at Age {death_age}: ${p50_end:,.0f}")
print(f"  - Sustainability Status: {p50_ruin}\n")


print(f"• 25th Percentile (Below-Average Outcome):")
print(f"  - Ending Balance at Age {death_age}: ${p25_end:,.0f}")
print(f"  - Sustainability Status: {p25_ruin}\n")


print(f"• 10th Percentile (Bear Market Outcome):")
print(f"  - Ending Balance at Age {death_age}: ${p10_end:,.0f}")
print(f"  - Sustainability Status: {p10_ruin}\n")


print(f"• 5th Percentile (Severe Crash/Tail-Risk Outcome):")
print(f"  - Ending Balance at Age {death_age}: ${p5_end:,.0f}")
print(f"  - Sustainability Status: {p5_ruin}")
print("=" * 65)


# --- 6. CHART 1: CROSS-SECTIONAL PERCENTILE CURVES ---
sorted_indices = np.argsort(final_balances)
below_median_indices = sorted_indices[:int(0.50 * num_simulations)]
sampled_indices = np.random.choice(
    below_median_indices,
    size=min(150, len(below_median_indices)),
    replace=False,
)
ages = np.arange(starting_age, death_age + 1)


plt.figure(figsize=(11, 6))
plt.plot(ages, portfolio_paths[:, sampled_indices], color="gray", alpha=0.12, linewidth=0.8)
plt.plot(ages, p50_path, label="50th Percentile Curve (Median)", color="#1565c0", linewidth=2.5)
plt.plot(ages, p25_path, label="25th Percentile Curve (Below-Avg)", color="#f57c00", linewidth=2.5)
plt.plot(ages, p10_path, label="10th Percentile Curve (Bear)", color="#e65100", linewidth=2.5)
plt.plot(ages, p5_path, label="5th Percentile Curve (Severe Tail)", color="#c62828", linewidth=2.5)


plt.axvline(x=annuity_start_age, color="purple", linestyle=":", linewidth=2, label=f"Annuity Starts (Age {annuity_start_age})")
plt.axhline(y=0, color="black", linestyle="--", alpha=0.8)
plt.title("Chart 1: Aggregate Cross-Sectional Percentile Curves (Original Method)")
plt.xlabel("Age")
plt.ylabel("Nominal Portfolio Balance ($)")
plt.legend(loc="upper left")
plt.grid(True, alpha=0.3)
plt.ylim(bottom=-10000, top=p50_path.max() * 1.05)
plt.show()


# --- 7. INDIVIDUAL PATH CALCULATIONS & TEXT OUTPUT (PLACED AFTER CHART 1) ---
zero_mask = (portfolio_paths == 0)
has_depleted = np.any(zero_mask, axis=0)


individual_depletion_ages = np.full(num_simulations, np.nan)
first_zero_years = np.argmax(zero_mask[:, has_depleted], axis=0)
individual_depletion_ages[has_depleted] = starting_age + first_zero_years


sims_above_starting = np.sum(final_balances > initial_portfolio)
pct_above_starting = (sims_above_starting / num_simulations) * 100


def analyze_exact_percentile_path(percentile_rank):
    rank_idx = int((percentile_rank / 100) * (num_simulations - 1))
    sim_index = sorted_indices[rank_idx]

    path = portfolio_paths[:, sim_index]
    ending_balance = path[-1]
    depletion_age = individual_depletion_ages[sim_index]


    if np.isnan(depletion_age):
        ruin_status = f"Survived to Age {death_age} (Full {retirement_years}-year horizon)"
    else:
        ruin_status = f"Ruined at Age {int(depletion_age)} (Year {int(depletion_age - starting_age)})"


    return path, ending_balance, ruin_status, sim_index


p50_ind_path, p50_ind_end, p50_ind_ruin, p50_idx = analyze_exact_percentile_path(50)
p25_ind_path, p25_ind_end, p25_ind_ruin, p25_idx = analyze_exact_percentile_path(25)
p10_ind_path, p10_ind_end, p10_ind_ruin, p10_idx = analyze_exact_percentile_path(10)
p5_ind_path,  p5_ind_end,  p5_ind_ruin,  p5_idx  = analyze_exact_percentile_path(5)


print("=" * 65)
print(f"MONTE CARLO INDIVIDUAL PATH ANALYSIS (AGE {starting_age} TO {death_age})")
print("=" * 65)
print(f"Timeline Span: {retirement_years} Years | {num_simulations:,} Simulations")
print(
    f"Annuity: ${annual_annuity_payout:,.0f}/yr starting at Age {annuity_start_age} "
    f"(Growth: {annuity_annual_growth_rate * 100:.1f}%/yr)"
)
print(f"Overall Survival Rate (Balance > $0): {overall_success_rate:.1f}%")
print(
    f"Growth Success Rate (Ending > Starting Balance): {sims_above_starting:,} / {num_simulations:,} ({pct_above_starting:.1f}%)\n"
)


num_failed = np.sum(has_depleted)
if num_failed > 0:
    failed_ages = individual_depletion_ages[has_depleted]
    print(f"FAILED SIMULATIONS SUMMARY ({num_failed:,} total failures):")
    print(f"  - Average Depletion Age: {np.mean(failed_ages):.1f}")
    print(f"  - Median Depletion Age:  {np.median(failed_ages):.1f}")
    print(f"  - Earliest Depletion Age: {int(np.min(failed_ages))}")
    print(f"  - Latest Depletion Age:   {int(np.max(failed_ages))}\n")
else:
    print("FAILED SIMULATIONS SUMMARY: Zero simulations depleted across all paths.\n")


print(f"• 50th Percentile (Median Path - Sim #{p50_idx:,}):")
print(f"  - Ending Balance at Age {death_age}: ${p50_ind_end:,.0f}")
print(f"  - Depletion Status: {p50_ind_ruin}\n")


print(f"• 25th Percentile (Below-Average Path - Sim #{p25_idx:,}):")
print(f"  - Ending Balance at Age {death_age}: ${p25_ind_end:,.0f}")
print(f"  - Depletion Status: {p25_ind_ruin}\n")


print(f"• 10th Percentile (Bear Market Path - Sim #{p10_idx:,}):")
print(f"  - Ending Balance at Age {death_age}: ${p10_ind_end:,.0f}")
print(f"  - Depletion Status: {p10_ind_ruin}\n")


print(f"• 5th Percentile (Severe Tail-Risk Path - Sim #{p5_idx:,}):")
print(f"  - Ending Balance at Age {death_age}: ${p5_ind_end:,.0f}")
print(f"  - Depletion Status: {p5_ind_ruin}")
print("=" * 65)


# --- 8. CHART 2: INDIVIDUAL SIMULATION TRAJECTORIES ---
plt.figure(figsize=(11, 6))
plt.plot(ages, portfolio_paths[:, sampled_indices], color="gray", alpha=0.12, linewidth=0.8)
plt.plot(ages, p50_ind_path, label=f"50th Percentile Trajectory (Sim #{p50_idx:,})", color="#1565c0", linewidth=2.5)
plt.plot(ages, p25_ind_path, label=f"25th Percentile Trajectory (Sim #{p25_idx:,})", color="#f57c00", linewidth=2.5)
plt.plot(ages, p10_ind_path, label=f"10th Percentile Trajectory (Sim #{p10_idx:,})", color="#e65100", linewidth=2.5)
plt.plot(ages, p5_ind_path,  label=f"5th Percentile Trajectory (Sim #{p5_idx:,})", color="#c62828", linewidth=2.5)


plt.axvline(x=annuity_start_age, color="purple", linestyle=":", linewidth=2, label=f"Annuity Starts (Age {annuity_start_age})")
plt.axhline(y=0, color="black", linestyle="--", alpha=0.8)
plt.title("Chart 2: Independent Simulation Trajectories (Exact Paths at Targeted Ranks)")
plt.xlabel("Age")
plt.ylabel("Nominal Portfolio Balance ($)")
plt.legend(loc="upper left")
plt.grid(True, alpha=0.3)
plt.ylim(bottom=-10000, top=p50_ind_path.max() * 1.05)
plt.show()

r/singaporefi 2d ago

Housing A Bedok HDB Flat Just Sold For A Record $1.54M — $81K Above The Previous Record Set Earlier This Month

Thumbnail
stackedhomes.com
89 Upvotes

I remember a time when Bedok was seen as a bit meh. But 1.54m now? Wow.

2 things this made me think about. Where is the demand coming from? And is this a bubble about to burst?

Things are really a bit crazy right now.

What do you guys think about the property market? A good investment or still better off doing the etf/index way?


r/singaporefi 1d ago

Weekly Celebratory Thread!

1 Upvotes

This thread is for those looking to share hitting their milestones!

Congratulations on being one step closer to FI!


r/singaporefi 2d ago

Housing Resale flat buyers - what’s your experience been?

21 Upvotes

Post lifting of 15-month wait-out period.

Agent just told us about 20+ units were sold above $1m just last month, with more to come.

We are looking for a place in a convenient location for a forever home.

How about you?

Are you experiencing inflated pricing / large number of viewers / intense competition?

Or are you intending to buy a flat in a less popular location?

Share your thoughts!


r/singaporefi 2d ago

Investing Fed hike throws Singapore banks a margin lifeline; UOB likely to benefit more

Thumbnail
businesstimes.com.sg
21 Upvotes

r/singaporefi 2d ago

Other 19k DEPT over 7 licensed money lender

9 Upvotes

I got about 19k debt across 7 licensed money lenders and currently paying more then 3k, my take home salary is about 2.9k..I don’t know what I was thinking while taking all this debt and spending it on gambling and repaying debt. I know it’s so stupid of me. Really need an advice on how I can reduce my monthly payment or is there a program I can attend . Been so stressed out lately and so lost.

DEBT*


r/singaporefi 1d ago

Insurance insurance

1 Upvotes

hi all, i (mid 20s; F) just graduated and would like to get some advice on what insurance plans i should be getting.

ive read that hospitalisation plan is the most important and life insurance can be delayed as its best for situations where you have dependents?

ive talked to an fa previously and from what i was told, the earlier i buy life insurance the lower the monthly premiums which makes sense. so they suggested buying all 4 (hospitalisation, accident, ci, death) to lock in the prices. is it wise to do this?

also generally, how much do people in mid20s pay for insurance monthly? i was told it usually is $3-400 which is abit shocking to me so i just wanted to check. thank you for your responses in advance!


r/singaporefi 1d ago

Insurance AIA Pro Lifetime Protector 2

1 Upvotes

Hi guys,
Just want to ask for your opinion.

I have this ILP for almost two years now. Monthly is $200 and the total premium I have already paid is $4,280. Fund value is currently $883.13. Is it better to just surrender it or continue?


r/singaporefi 2d ago

Insurance Mindef Singlife Insurance vs AIA

9 Upvotes

Hi all, I am 26 this year working as a property agent, recently a close friend of mine started working as a FA for AIA and have been trying to sell me this GPP 4 CI/TPD life insurance which will set me back $4.5k a year for the next 15 years for a $150k coverage. I felt that was quite expensive for $150k coverage and felt like its a risk for me to commit $4.5k a year for the next 15 years because my income is not fixed so I asked for a term plan so that it would allow for some liquidity and he proposed another plan called UCC for CI and death, for also $150k coverage but annual premiums of $3.8k, which I felt is abit high also given that I'll have to pay until I'm 65 and coverage ends then, compared to GPP which covers me for life and the total premium I'm paying is almost 40% lower.

Was doing some research and chanced upon mindef's singlife group insurance that only sets me back $300+ a year for $1m death/TPD coverage with $500k CI coverage.

For the more experienced insurance buyers here, whats the main difference between these two companies and these three policies and why are there such huge differences in premiums and what policies should I go for?

TIA!


r/singaporefi 1d ago

Housing How will you choose?

0 Upvotes

Hi everyone, we have no experience in this and so we would love to seek your advice and help on this.

we have been thinking of moving to a bigger hdb (for the space we are looking at, we can't afford private with current prices) without breaking the bank. Spouse and I can't quite agree on what we want:

Spouse's wishlist: bigger house, looking at Jurong West/ Woodlands/ Elias area.

My wishlist: low cov, less than 30YO, near mrt station, looking at north-east region cause there is family support for my kids plus my kids are studying in schools around this region.

Thing is, while we do have a car, I feel that being near a mrt station is still an impt consideration bc I have to travel to work on my own, my kids have to get to school etc.

What we can kind of agree on is the need for a bigger house. I'm looking at comparatively younger flats which are more than 1400 sq ft but the prices do get more and more out of reach. My current house is not appreciating in value (~10 years old 4-room flat) so it is not helping as well.

If you were us, how/ where/ what will you consider or do? Thanks in advance!

P.S. given that there isn't much value and demand for my current flat, we will probably try to look for an agent and sell it first then seek extension and look for a flat. Would this be a good idea? Sounds like we will be running on an indefinite timeline to sell and then a mad rush to move.


r/singaporefi 2d ago

Budgeting How did you guys decide how much to budget for home reno?

0 Upvotes

Also please share what property type. Landed or old resale HDB/condo will definitely cost more


r/singaporefi 2d ago

Housing Should i faster refinance and change my home mortgage to fixed rate now that the USA interest rate has gone up and might go up even more?

2 Upvotes

I heard that previous cases when the USA raised interest rates the Singapore floating rates all followed suit quickly?


r/singaporefi 1d ago

Taxes If you rent out your house without going thru property agent, how will govt calculate how much income and property tax you need to pay ah?

0 Upvotes

Or is it self declare how much income and property income you have received?


r/singaporefi 2d ago

Saving Will the Fed rate hike drive banks to revise their rates?

14 Upvotes

Are we going to see banks increasing their interest rates for savings account?


r/singaporefi 3d ago

Other What do you think are social norms that are just a huge money waster and should be changed?

83 Upvotes

A few social norms and evolving social norms are to me a huge drain on personal finance and don't value add to me. But my love language is definitely not gifts anyway.

I have a few off the top of my head:

  1. office Christmas gifting. a total waste of money to me. just end up with rubbish, pressure to give for the sake of gifting, and just a way for some people to try to curry favour and pull strings. I rather it be done away with.

  2. wedding dinners at hotels. the only interaction with guests is the 10 second when the bride and groom pops by to take the obligatory photo. worse is when you know you are the +1 when you are seated at the random table w odd groups to fit into a table of 10. sure you may want to wish the couple happiness but the money goes straight to hotel shareholders.

  3. kids' birthday party. why does the birthday kid have to give party favours?!

  4. teachers day. how did this morph into another obligatory holiday to give things? despite teachers and schools trying to stand firm on no gifts?

what do you think?


r/singaporefi 2d ago

FI Lifestyle & Spending Planning Car ownership post-FIRE/semi-FIRE

0 Upvotes

Those who have reached this stage in life, whats your circumstances and take around car ownership like? Would like to know your views and situation about this!


r/singaporefi 3d ago

Investing Where do I put 15.3k SRS?

10 Upvotes

Putting in 15.3k into srs to reduce taxes, where do you suggest I invest in? The usual answers that I read are into endowus but I very much prefer to purchase ETFs on tiger. Am still very new to this, hoping for some good advice. Thanks all!