Home

Advanced Forecasting - Procore

Customers needed a way to predict costs month-to-month across the lifecycle of a project. While some expenses follow predictable patterns, others trend up or down, and being able to forecast these curves helps project managers spot budget issues before they happen. Advanced Forecasting extended the Configurable Budget framework to let users distribute costs over time using multiple spread models: Front-loaded, Back-loaded, Bell Curve, or Linear.

Editing Start Date, End Date, and Curve in the Advanced Forecasting Tool

Tech Stack: Ruby Rails HATEOAS React Redux redux-sagas redux-modules RubyStats
My Role
  • Designed and built the cost distribution engine to model how expenses spread over time.
  • Implemented algorithms for bell-curve, front-loaded, back-loaded, and linear forecasts.
  • Introduced the RubyStats gem to generate normal distributions.
  • Collaborated closely with PMs, UX, and key customers (including billion-dollar projects) to shape the solution.
  • Acted as lead engineer on v1, handling most of the backend implementation.
Impact
  • Helped land a major deal with Boston Children’s Hospital via Suffolk Construction.
  • Strengthened adoption of the Configurable Budget tool, as Advanced Forecasting became a natural extension under the same umbrella.
  • Pushed forward Procore’s vision for predictive financial insights in construction software.
Technical Highlights
  • Built forecasting logic using normal distributions: partitioned the area under the curve into segments, then scaled values proportionally to simulate bell-shaped spending.
  • Created variants by skewing the distribution to produce front- or back-loaded models.
  • Established a framework for distributing costs that was extensible for future models.
A Story
While the project was still in its early stages, I was unexpectedly asked to present the feature to Procore’s CEO, Tooey Courtemanche. With only two days to prepare, I worked closely with a UX designer to build a working prototype. Nervous but prepared, I demoed the feature in-person. The CEO immediately saw its value for financials customers and gave the project his enthusiastic support — one of my most memorable moments as a young engineer.
Docs