Stochastic Optimization of Ski Resort Operations
Stochastic Optimization of Ski Resort Operations
Stochastic Optimization of Ski Resort Operations
Modeling & Optimization
Across 1,000 simulated seasons the optimized plan returns a mean profit of $33.7M, with 90% of outcomes between $26.0M and $41.5M. The model says stay closed through October and November.
Across 1,000 simulated seasons the optimized plan returns a mean profit of $33.7M, with 90% of outcomes between $26.0M and $41.5M. The model says stay closed through October and November.
Across 1,000 simulated seasons the optimized plan returns a mean profit of $33.7M, with 90% of outcomes between $26.0M and $41.5M. The model says stay closed through October and November.
The problem
Ski resort profitability depends mostly on things management does not control: snowfall, temperature, dew point, and how many people feel like driving up. The decisions it does control are few and expensive. Optimizing them against an average season gives you a plan that is wrong in every season that is not average, which is most of them. I worked on this with a team of five.
What the model decides
Three binary decisions each month: whether to open the resort, whether to produce artificial snow, and whether to host a special event. Five inputs are treated as random variables with distributions drawn from historical data. Snow depth is normal, temperature and dew point are triangular, and event and snowmaking costs are uniform. Demand is calculated from those inputs rather than assumed, using a demand index built from snow depth, temperature, and whether an event is held, with peak pricing adding 15% once the index reaches 1.1.
The constraints that did the work
The resort only opens if total snow depth reaches 20 inches. Snowmaking is only permitted when the wet bulb temperature is at or below 28 degrees Fahrenheit, which is a temperature and humidity problem rather than just a temperature one, and getting that right changed which months the model was willing to open. Snowmaking capacity is capped at 500 acres, the target base is 35 inches, and base monthly profit is $6.4M when open and zero when closed. The VBA macro that ran 1,000 Oracle Crystal Ball trials per scenario, and we used Excel Solver to find the monthly decision set that maximized expected seasonal profit inside those constraints.
What it recommends
Open in December, January, February, and March. Produce artificial snow in December only. Host events in all four open months. October and November stay closed, because snow depth in those months rarely clears the 20 inch threshold and making enough snow to get there costs more than the demand it brings back.
Why the distribution beats the average
A single expected profit figure would say the season is worth about $33.7M and stop there. The actual spread runs from $25.0M to $45.4M with a standard deviation of $3.7M, and 90% of outcomes land between $26.0M and $41.5M. Management planning against the mean alone is under reserved in the one season out of twenty that comes in below $26.0M, which is exactly the season you needed the reserve for.
Limits
The model uses monthly averages rather than daily conditions, so it does not capture short term volatility. It leaves out staffing, capacity, and maintenance. And it treats each month independently, which means it misses anything that carries across months, like early season snow build up and pre-bookings.
The problem
Ski resort profitability depends mostly on things management does not control: snowfall, temperature, dew point, and how many people feel like driving up. The decisions it does control are few and expensive. Optimizing them against an average season gives you a plan that is wrong in every season that is not average, which is most of them. I worked on this with a team of five.
What the model decides
Three binary decisions each month: whether to open the resort, whether to produce artificial snow, and whether to host a special event. Five inputs are treated as random variables with distributions drawn from historical data. Snow depth is normal, temperature and dew point are triangular, and event and snowmaking costs are uniform. Demand is calculated from those inputs rather than assumed, using a demand index built from snow depth, temperature, and whether an event is held, with peak pricing adding 15% once the index reaches 1.1.
The constraints that did the work
The resort only opens if total snow depth reaches 20 inches. Snowmaking is only permitted when the wet bulb temperature is at or below 28 degrees Fahrenheit, which is a temperature and humidity problem rather than just a temperature one, and getting that right changed which months the model was willing to open. Snowmaking capacity is capped at 500 acres, the target base is 35 inches, and base monthly profit is $6.4M when open and zero when closed. The VBA macro that ran 1,000 Oracle Crystal Ball trials per scenario, and we used Excel Solver to find the monthly decision set that maximized expected seasonal profit inside those constraints.
What it recommends
Open in December, January, February, and March. Produce artificial snow in December only. Host events in all four open months. October and November stay closed, because snow depth in those months rarely clears the 20 inch threshold and making enough snow to get there costs more than the demand it brings back.
Why the distribution beats the average
A single expected profit figure would say the season is worth about $33.7M and stop there. The actual spread runs from $25.0M to $45.4M with a standard deviation of $3.7M, and 90% of outcomes land between $26.0M and $41.5M. Management planning against the mean alone is under reserved in the one season out of twenty that comes in below $26.0M, which is exactly the season you needed the reserve for.
Limits
The model uses monthly averages rather than daily conditions, so it does not capture short term volatility. It leaves out staffing, capacity, and maintenance. And it treats each month independently, which means it misses anything that carries across months, like early season snow build up and pre-bookings.
The problem
Ski resort profitability depends mostly on things management does not control: snowfall, temperature, dew point, and how many people feel like driving up. The decisions it does control are few and expensive. Optimizing them against an average season gives you a plan that is wrong in every season that is not average, which is most of them. I worked on this with a team of five.
What the model decides
Three binary decisions each month: whether to open the resort, whether to produce artificial snow, and whether to host a special event. Five inputs are treated as random variables with distributions drawn from historical data. Snow depth is normal, temperature and dew point are triangular, and event and snowmaking costs are uniform. Demand is calculated from those inputs rather than assumed, using a demand index built from snow depth, temperature, and whether an event is held, with peak pricing adding 15% once the index reaches 1.1.
The constraints that did the work
The resort only opens if total snow depth reaches 20 inches. Snowmaking is only permitted when the wet bulb temperature is at or below 28 degrees Fahrenheit, which is a temperature and humidity problem rather than just a temperature one, and getting that right changed which months the model was willing to open. Snowmaking capacity is capped at 500 acres, the target base is 35 inches, and base monthly profit is $6.4M when open and zero when closed. The VBA macro that ran 1,000 Oracle Crystal Ball trials per scenario, and we used Excel Solver to find the monthly decision set that maximized expected seasonal profit inside those constraints.
What it recommends
Open in December, January, February, and March. Produce artificial snow in December only. Host events in all four open months. October and November stay closed, because snow depth in those months rarely clears the 20 inch threshold and making enough snow to get there costs more than the demand it brings back.
Why the distribution beats the average
A single expected profit figure would say the season is worth about $33.7M and stop there. The actual spread runs from $25.0M to $45.4M with a standard deviation of $3.7M, and 90% of outcomes land between $26.0M and $41.5M. Management planning against the mean alone is under reserved in the one season out of twenty that comes in below $26.0M, which is exactly the season you needed the reserve for.
Limits
The model uses monthly averages rather than daily conditions, so it does not capture short term volatility. It leaves out staffing, capacity, and maintenance. And it treats each month independently, which means it misses anything that carries across months, like early season snow build up and pre-bookings.