Investment Journey Simulator
Decisions compound too.
Investment Journey Simulator is an open-source Python investment planning simulator with a Streamlit interface.
It models how contributions, lump sums, pauses, withdrawals, timing, rebalancing, goals, taxes and uncertain return paths can change a long-term investment journey - and helps explain why two journeys finish differently.
Project website | Try it online | Source code | Documentation
Install
pip install investment-journey-simulator
Launch
investment-journey
This starts the Streamlit application locally and opens the simulator in your browser.
What it can model
Investment journeys
- SIPs and recurring contributions
- lump-sum investments
- contribution step-ups
- pauses, resumes and restarts
- one-off and recurring withdrawals
- full exits and later restarts
- multi-fund portfolios
Portfolio decisions
- target allocations and portfolio drift
- portfolio rebalancing
- multiple rebalancing policies
- fees and expense-ratio effects
Goals and returns
- goal planning and goal seek
- XIRR and post-tax XIRR
- nominal and inflation-adjusted values
- drawdowns
- contribution-versus-growth analysis
Risk and history
- historical replay
- rolling backtests
- sequence-of-returns risk
- Monte Carlo and stochastic simulation
- block-bootstrap paths
Compare journeys
- side-by-side scenario comparison
- timing-effect analysis
- Shapley-based attribution when several decisions change together
Outputs and audit
- interactive charts
- PDF reports
- Excel exports
- JSON scenarios and results
- visible assumptions
- validation and audit information
Global core, regional depth
The core contribution, portfolio, rebalancing, risk and scenario engine does not assume a particular country or currency.
Additional tax depth is available for the supported Indian resident-individual scope, including lot-level capital-gains treatment and related statutory rules.
Validation
The published validation record includes:
- 2,488 tests passing
- 93% statement coverage
- Ruff clean
- mypy clean
- approximately 29,000 untaxed randomized independent cross-checks
- approximately 4,800 taxed randomized independent cross-checks
See the detailed evidence and limitations:
Statutory parameters and modelling conventions:
Important
Investment Journey Simulator is a simulation and educational tool.
Future returns are assumptions, not forecasts or guarantees. Historical data is used for replay, backtesting, sequence-risk analysis, stochastic simulation and validation - not to claim that past returns predict future returns.
Tax and regulatory treatment can change and may depend on individual circumstances.
This software is not financial, investment, tax or legal advice.
You define the assumptions. It shows you their consequences.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file investment_journey_simulator-4.4.4.tar.gz.
File metadata
- Download URL: investment_journey_simulator-4.4.4.tar.gz
- Upload date:
- Size: 547.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f2da479b9b994be4573504658f6cb66483965041fb5df9c3aeb9215bafa2134
|
|
| MD5 |
8fe3fd0f88b77586f03f4d8738eca57f
|
|
| BLAKE2b-256 |
a23e46f87f03859ef687d783a9f06b1a8c3906f256ed3011f8d6864ada04a422
|
File details
Details for the file investment_journey_simulator-4.4.4-py3-none-any.whl.
File metadata
- Download URL: investment_journey_simulator-4.4.4-py3-none-any.whl
- Upload date:
- Size: 405.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf6c7b0e89232a8c98b6df7a5d29a121c38bc58f214d98fd4c3e10daf6137198
|
|
| MD5 |
07d03f33194be6d83f6650eea265bfbb
|
|
| BLAKE2b-256 |
a3b774bcf9d47b4689362fc6f0869439b1a8956d9557ee68b591167fa45642b1
|