Introduction
A few months ago, I found myself pondering a question that many of us ask—
“Am I doing enough to secure my financial future?”
I had already chosen the National Pension Scheme (NPS) as part of my investment portfolio. It’s low-cost, tax-efficient, and offers a disciplined approach to wealth creation. But as someone who prefers to take an active role in managing investments, I wasn’t entirely convinced that I was making the most of it.
The Challenge?
While NPS provides flexibility in asset allocation, I wasn’t sure if I was picking the best allocation to maximize returns over the long term. And I knew that market fluctuations could create opportunities to boost my corpus if I timed my top-ups wisely. But intuition alone wasn’t going to cut it—I wanted a data-driven strategy.
💡 That’s when an idea struck:
“Why not simulate multiple scenarios and let the data guide my decisions?”
So, I decided to embark on an exercise that would solve a real-world problem for me while:
✅ Exploring GenAI to write and optimize Python code efficiently.
✅ Polishing my Product Management skills by breaking down a complex problem into manageable steps.
✅ Simulating real-world scenarios to identify the best NPS strategy using top-ups and rebalancing.
Breaking Down the Problem
To approach this systematically, I broke the problem into three key steps:
- Analyze the Impact of Top-Ups on Market Dips
Top-ups during market dips allow you to invest more when prices are low. But how much should you top up, and at what dip level?
- Optimize Asset Allocation to Maximize Returns
NPS allows you to choose an active allocation across Equity, Corporate Bonds, Government Bonds, and Alternative Assets—but what’s the ideal mix?
- Combine Top-Ups and Dynamic Rebalancing
Could a strategy that dynamically rebalances allocations while adding top-ups during dips outperform a passive strategy?
📚 Defining Key Variables: Building a Realistic Simulation
To make the simulation as close to real life as possible, I carefully defined a set of variables that control how the corpus evolves over 30 years. Here's a quick rundown of the key ingredients:
🎛️ Asset Classes & Allocation Limits
NPS offers 4 asset classes, and I followed the "active strategy", where I get to decide the allocation:
Equity: 20% to 75%, with higher long-term returns but higher volatility.
Corporate Bonds: 5% to 40%, offering stability with moderate returns.
Government Bonds: 5% to 40%, providing a safer cushion.
Alternative Assets: 0% to 20%, adding a dash of diversity.
🎯**Why this matters:** The asset allocation directly influences risk and return. Staying within these limits ensures compliance with NPS regulations.
📈 Market Returns & Volatility
To simulate real-world returns, I modeled monthly returns for each asset class using a **normal distribution** with realistic mean and volatility values:
Equity: Avg 12% annual return (~1% monthly), with 20% volatility.
Corporate Bonds: Avg 8% annual return (~0.65% monthly).
Government Bonds: Avg 6% annual return (~0.45% monthly).
Alternative Assets: Avg 10% annual return (~0.75% monthly).
💡 **Why this matters:** Markets don’t grow linearly. Factoring in volatility helps capture market dips and surges.
💸 Top-Up Logic: Buying the Dip with Dynamic Scaling
A dynamic top-up strategy was introduced where additional investments are triggered during market dips:
Dip Thresholds: Initially between -10% to -50%, ensuring top-ups only during significant downturns.
Top-Up Amount: Scaled with the Dip Magnitude— the deeper the dip, the higher the top-up.
For every **1% additional dip beyond 10%,** the top-up amount increases by 10%.
This way, a 20% dip triggers a 2x top-up.
A guardrail is put to stop the top-up if the market dips more than 30%.
⚡ Why this matters: Larger dips offer greater opportunities to accumulate assets at lower prices. Scaling the top-up dynamically ensures we capitalize on these moments.
🔁 Rebalancing Rules: Staying in Control
To prevent the equity portion from exceeding limits (75%), rebalancing was done when:
Equity Allocation Crosses 70%: Proactive rebalancing was triggered.
🔄 **Why this matters:** Rebalancing prevents the portfolio from becoming too equity-heavy, protecting against excessive risk.
📅 Contribution Dynamics: Reflecting Salary Growth
Since real-world salary grows over time, I factored in a **10% annual increase** in the monthly contribution, allowing the corpus to grow in sync with future income.
💡 **Why this matters:** Consistently increasing contributions helps maximize the power of compounding over 30 years.
Each of these factors was meticulously incorporated into the simulation. You can explore the complete GitHub repository here.
I am happy & eager to hear your views on the approach, the assumptions & parameters I chose. Its a fun exercise and happy to keep refning it based on your comments.
🚀 Next Up: Lessons Learned from Cracking the Simulation
While building the simulation, I hit some unexpected roadblocks that revealed hidden complexities. The process of debugging and refining the model led to insights that transformed the outcome.
➡️ In the next blog, I’ll share the unexpected challenges I faced and how a mix of critical thinking and AI efficiency helped me crack them.
Stay tuned for Part 2! 🎉

0 Comments