Monte Carlo financial simulation that shows you the probability of hitting your goals.
Traditional budgeting tools give you single-point estimates. Drift runs 100,000 simulations to show probability distributions instead.
- Connect bank accounts via Nessie API
- Enter a goal in plain English ("Save $50k for a house in 3 years")
- Get success probability, percentile outcomes, and what-if scenarios
- Natural language goal parsing via Gemini
- Real banking data from Capital One Nessie API
- Parallel Monte Carlo simulation (100k runs in ~500ms)
- Sensitivity analysis and what-if scenarios
- Voice narration of results via ElevenLabs
- Frontend: Next.js 14, TypeScript, Tailwind, Recharts, Three.js
- Backend: Express.js, TypeScript
- Simulation: Python, NumPy, multiprocessing
- APIs: Nessie (Capital One), Google Gemini, ElevenLabs
- Node.js 18+
- Python 3.11+
- npm or yarn
# Clone and install
git clone https://github.com/aadit2805/drift.git
cd drift
# Install dependencies
npm install
# (Optional) Set up Python environment for faster simulations
cd simulation
python3 -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
pip install -r requirements.txt
cd ..Add your API keys to .env:
NESSIE_API_KEY- Capital One Nessie API keyGEMINI_API_KEY- Google Gemini for goal parsingELEVENLABS_API_KEY- For voice narration (optional)
npm run devRuns both the API (port 3001) and web app (port 3000) via Turborepo.
drift/
├── apps/
│ ├── web/ # Next.js frontend
│ └── api/ # Express backend
├── simulation/ # Python Monte Carlo engine
├── scripts/ # Utilities (data seeding, testing)
└── docs/ # API and simulation documentation
The Python engine uses NumPy vectorization and multiprocessing to run 100k simulations across CPU cores. Models include income growth variance, spending volatility, investment returns, emergency events, and inflation.