The problem
Our client had the payoff math right, but it was trapped in a spreadsheet only they understood. No interface, no accounts, no way to put it in front of real users.
What we built, and why
- Split the system cleanly: a FastAPI service owns the optimization math behind a typed API, and a React/TypeScript front end owns the experience. The boundary kept the financial logic testable and the UI free to move.
- Modeled each payoff strategy (avalanche, snowball, custom) as a pure, deterministic function, so every number on screen is reproducible and auditable.
- Designed the inputs to tolerate messy real-world data (partial balances, irregular rates) without breaking the model or blaming the user.
The result
We shipped a working product the client could put in front of users: accounts, saved scenarios, and a clear side-by-side of payoff strategies. (Quantified outcomes pending the client's sign-off.)
Stack
FastAPI · Python · React · TypeScript · PostgreSQL