The workflow before#
Varde Partners is a global alternative investment firm managing about $13B, much of it in credit. Its investment team built credit and cash flow models in R and Excel. A complex Monte Carlo simulation took 4 to 6 hours, large datasets crashed Excel, and overnight batch jobs often weren't finished when analysts sat down in the morning. With runs that slow, each deal got a few hundred scenarios at most. Models lived in individual analysts' files, so reproducing last quarter's result, or handing a model to a colleague, meant reverse-engineering someone else's spreadsheet.
What we built#
We moved Varde's modeling out of desktop spreadsheets and into a cloud analytics environment on Snowflake and AWS SageMaker. Every data source feeds one warehouse, the core models run as Python in SageMaker, and analysts own the code. A simulation that used to eat a working morning now finishes in 5 to 10 minutes, with more than 10,000 scenarios per analysis.
One warehouse for every input
Bloomberg and Refinitiv market data, the portfolio management system, accounting and third-party research all feed a single Snowflake warehouse with raw, cleansed and modeled layers. Analysts no longer assemble inputs by hand before each run. Snowflake's time travel lets them rerun an analysis against the data as it stood on a past date, which helps when the investment committee asks why a view changed.
Models rebuilt in Python
We converted the core Excel and R models to Python, working side by side with Varde's analysts so the logic matched what they already trusted. Control variables moved into central configuration, so changing an assumption is a setting, not a formula hunt. Old and new ran in parallel during the transition until the outputs agreed.
Simulation at scale
SageMaker runs Monte Carlo cash flow simulation, default prediction, credit spread analysis and portfolio risk as distributed jobs. Each analysis now covers more than 10,000 scenarios instead of a few hundred, default prediction accuracy rose 15% and return forecast error fell 20%. Outputs are explainable, so analysts can show the investment committee what drove a number.
How we delivered it
Delivery ran six months, from architecture through production cutover. Data migration and cleanup came first, then model migration, with our data scientists pairing with Varde's analysts on each model. Code and notebooks live in Git. We trained the investment team in Python, SageMaker and Snowflake through hands-on workshops on live deals, and analysts now own and extend the models themselves.
Before and after#
| Measure | Before | After |
|---|---|---|
| Complex model runtime | 4 to 6 hours | 5 to 10 minutes |
| Scenarios per analysis | 100 to 500 | 10,000+ |
| Default prediction accuracy (AUC) | Baseline | 15% higher |
| Return forecast error (MAE) | Baseline | 20% lower |
| Model ownership | Individual analysts' files | Shared Python code in Git |
What's next#
With models and data in one governed environment, Varde can automate more of the diligence work around them. The next step is an agent that assembles the first draft of the diligence pack from the models and data, with an analyst reviewing the exceptions before anything goes to committee.




