This last spring break, I had a ton of fun! Why?

I had the good fortune of catching a powder day with powder skis this spring break! While riding the Born Free chair at Vail, I wondered what the chances of this happening in a given trip1?

A naïve approach is to simply count up the number of powder days in a season and divide by the number of weeks in a season (assuming a week-long trip)… but that doesn’t capture any of the time dependence. In the depths of winter, it is more likely for big storms. When I typically go, during spring break I believe it’s less likely for a powder day to occur.

To estimate the probability of a probability occurring during our trip, let’s plot the number of powder days of the last 31 years using the data from NOAA weather station 058575 in Eagle County, CO, the location of my ski trips.

How does this information help us determine the probability of a powder day? At first, this seems like a challenging problem. If you live in Colorado, you’ll certainly see a powder day, a clue that the chance of a powder day is not just adding up the probabilities on each day.

Fortunately, probabilists have spent time developing frameworks for exactly this type of problem. The method that naturally lends itself to waiting for a powder day is a Poisson process. Quoting Wikipedia,

[a Poisson process can model] customers arriving and being served or phone calls arriving at a phone exchange.

This seems perfect framework for powder days! But first, how much snow do we need before we declare a powder day? Speaking from experience, probably 1.5 inches or about 38mm. Because the weather station is in the valley, this is reasonable. If the bottom of the valley sees 1.5 inches, the peak might see 4-5 inches.

Luckily, this threshold doesn’t matter for our end use case: in practice, I’m more interested in when to book my trip. This means I want the highest probability of a powder day, which tends to remain fairly constant with different thresholds.

The weather station reports the amount of snow each day. Using this definition of a powder day, we can graph the number of powder days that occur on (for example) January 4th over 31 years.

We have when powder days occur, and Poisson processes have some nice properties that align with powder days. Most importantly, the value that characterizes Poisson processes, $\lambda$, is characterized by the number of events seen in a time interval. We can define $N(a, b)$ to be the number of events we see between days $a$ and $b$, and Poisson processes have the property that

$$ \E{N(a, b]} = \lambda (b - a) $$

or the expected value in an interval is just some number times the length of time. This means that we can easily compute $\lambda$ in a time range: it’s just the number of snow storms that we observe. This parameter corresponds to the frequency of events. Given a high $\lambda$, the chances of a powder day are much higher.

In this sense, waiting for a powder day is definitely not Poisson process. The probability of a powder day changes over time. During the summer, a powder day definitely won’t happen. We can get around this because weather is a slow changing system. We can model each week as a stationary homogeneous Poisson process that follows the equation above.

When estimating $\lambda$, we have to choose an amount of time that the system can be modeled as a homogeneous Poisson process, or how long does the weather stay the same? We’ll decide on two weeks/14 days for this.

To generate this graph, I did use some physical intuition. I said that the probability of a power day couldn’t change too quickly over time, and smoothed out this curve over time. This corresponds to taking some [Bayesian prior] on the likelihood of a powder day.

This plot just tells us when it snows, and it doesn’t say anything about how much it snows. We know that in January, Colorado receives more snow (as indicated by the first plot), but here $\lambda$ is lower.

But now we have the value of $\lambda$. Let’s see how probable powder days are throughout the year! This will definitely depend on how long our trip to Colorado is – if we lived out there, we’d definitely see a powder day.

To calculate the probability that at least 1 powder day will occur on a 5 day trip and given the value of $\lambda$ in the graph above, we compute

$$ \Align{ \prob{N(a, b] > 1} &= 1 - \prob{N(a, b] = 0}\\ &=1 - \Exp{\lambda (b - a)} } $$

which is directly related to the Poisson random variable probability density function (which means that it’s easy to implement and found in scipy.stats).


This is of great practical important! I’m planning on taking a weekend trip to Mt. Bohemia in Michigan to tap that lake effect snow. Using NOAA weather station 201789, we can find out when to book a trip.

It looks like I’ll schedule my trip to be in early January or mid-February!

  1. The source for this post is available on GitHub at stsievert/powder-day-probability