The workflow before
Sunrock tracked each solar project in two separate Excel models: a banking model for financing projections and an operational model for actual performance. Versions drifted, errors crept in, and nobody could reliably reproduce the what-if scenario that sat behind a past decision. Every forecast was a single number, with no view of how solar output or financial variables might swing.
What we built
We merged the banking and operational models into one version-controlled financial twin. Every calculation input and output is captured and versioned, so the team can recall the exact scenario behind any past decision.
We extended Sunrock's deterministic Python model with PyMC. Fixed inputs such as solar yield and financing terms became probability distributions, and the model now runs thousands of Monte Carlo scenarios to show the range of outcomes, not one guess.
We designed the target architecture on Microsoft Fabric: Lakehouses for the raw and cleaned layers and a Warehouse for the reporting layer, with the Python models running next to the data.
Before and after
| Measure | Before | After |
|---|---|---|
| Models to reconcile | 2 Excel files | 1 versioned financial twin |
| Forecast output | One deterministic number | Full probability range across 10,000 scenarios |
| Recalling a past what-if | Rebuild from old spreadsheet versions, often days | Exact recall in minutes |
What's next
With every scenario versioned in one place, the next step is letting finance ask the model questions directly, such as which projects carry the widest downside, instead of waiting on an analyst to rerun it.

