For reference, here’s the post that triggered the following forecast post-mortem analysis. To start, here’s my forecast and the verified totals.
My Forecast High: 70°F | Low: 58°F | Max sustained winds: 30 mph | Total precipitation: 0.10″
Verification High: 76°F | Low: 56°F | Max sustained winds: 24 mph | Total precipitation: 0.16″
Since I did decently at forecasting the low temperature and total precipitation, this analysis will focus primarily on why I missed the mark on the high temperature and maximum sustained winds.
How I Verify Forecasts For an explanation of how I verify my own forecasts, see the methodology outlined in this prior post-mortem post
Post-Mortem Analysis On this forecast, I ended up handling total precipitation and low temperatures but missed the mark on the high temperature badly and to some extent the max sustained winds. Let’s look at what happened here.
High Temperature When I was putting together my forecast on the high temperature, the MOS output for both primary models (GFS and NAM) suggested the day would be largely overcast. Forecast soundings also suggested a deck of low clouds would be present for nearly the entirety of the day before the onset of an initial round of precipitation in the late evening/early overnight hours. Indeed, morning soundings at 8AM seemed to bear out what forecast models were calling for.
Above the low level clouds, though, there was a noticeable dry layer up to about 500 mb, where high clouds were present. For temperatures, the biggest impact that’s hardest to pick up in advance is a low, thin, but optically thick layer of overcast clouds. Such a layer would suppress temperatures, whereas the lack of such a layer would allow for higher temperatures.
In this event, where we were already in the warm sector of a low, any breaks in the clouds allowed for a dramatically warmer high temperature. As it turns out, there was a period of a couple hours in the afternoon during peak heating hours for this time of year that the skies were basically clear over NYC. In the spring, as the angle of the sun’s rays becomes ever more direct, even a small span of time like this with clear skies can result in significantly warmer temperatures. The small geographic scale of this pocket of clear skies, which was largely surrounded by cloudy conditions, shows you how difficult it is to predict something on a small scale like this, even just a day before the event itself!
Max Sustained Winds On max sustained winds, I was off by 6 mph. That’s not too bad in the grand scheme of things. However, looking back at it, I should have realized that my own forecast calling for a small potential for precipitation would likewise mean a lower possibility for strong winds mixing down from 850 mb to the surface.
For reference, here’s the post that triggered the following forecast post-mortem analysis. To start, here’s my forecast and the verified totals.
My Forecast High: 48°F | Low: 17°F | Max sustained winds: 35 mph | Total QPF: 1.40″ | Total snow accumulation: 1.00″
Verification High: 40°F | Low: 15°F | Max sustained wind: 38 mph | Total precipitation: 0.80″ | Total snow: 0.00″
Since I did decently at forecasting maximum sustained winds and the low temperature, this analysis will focus primarily on why I missed the mark on both total precipitation and the high temperature.
How I Verify Forecasts I haven’t explained in previous posts like this how I go about verifying the results of my own forecasts, though I do talk about METARs (hourly weather reports) and daily climate summaries from the National Weather Service as sources for verification data. There’s a reason why I choose to use the 06Z Day 1 to 06Z Day 2 (1AM/2AM Day 1 to 1AM/2AM Day 2 depending on Daylight Saving Time) time window to forecast, and that’s because this lines up well with METAR synoptic reports that occur every 6 hours (00Z, 06Z, 12Z, 18Z). This is something I picked up from my Weather Forecasting Certificate Program at Penn State World Campus. So, when I’m looking at the METAR data, I’m looking for specific data points at these synoptic times:
I won’t bore you with details of how to read METARs, which you can learn about here, but from these entries, I can get the maximum temperature from the highest value 1 group, low temperature from the lowest 2 group, and total precipitation from summing up the 6 groups for these synoptic times. So in this case, “10044” indicates a maximum temperature of 4.4C, which is converted from 40F. “21094” shows a minimum temperature of -9.4C, converted from -15F. “60060” translates to 0.60″ and “60020” likewise is 0.20″, and the sum gives us 0.80″ total precipitation.
Last, with max sustained wind, and in this case snow, I checked the NWS daily climate reports for LGA (see red outlined boxes).
Post-Mortem Analysis On this forecast, I ended up handling the low temperature and max sustained winds well, however, I was much too high on both the high temperature and total precipitation. So what happened here?
High Temperature In my forecast, I had confidence based on various model data that NYC would spend a decent amount of time in the warm sector of the low that would be responsible for the storm. Unfortunately, this simply just did not happen, and as a result, we never got into that warm southerly/southwesterly flow that would have propelled temperatures into the upper-40s. Instead, looking at the METARs for that day reveals that winds stayed consistently east-northeast to north-northeast overnight into the early morning hours before almost immediately shifting to the northwest by 11AM. This makes sense, given the orientation and location of the warm front just to our south to start.
Click the images below to see the Weather Prediction Center’s surface analyses at 7AM, 10AM, 1PM respectively for Sunday, January 20.
In the end, I should have heeded some signals that there was enough uncertainty in the storm track even on Saturday that we could miss the warm sector. The local forecast office for the NWS also indicated that there was a potential for this, which would keep temperatures suppressed due to persistent, cool, northeasterly flow. Their forecast high, which I believe was 42°F, factored this in, and ended up being a lot more accurate. The takeaway here for me is to not completely buy into model consensus even if there’s good agreement, when there’s a possibility of storm tracks shifting. I don’t think I would have gone as low as 40°F even with this in mind, but I might have forecast something like 44°F, which would have been closer.
Total Precipitation I missed the total precipitation forecast by more than 0.50″ – objectively a bad outcome. In this case, I think there were a couple reasons behind my own forecast bust. First, the storm progressed faster than data on Saturday suggested, resulting in heavier precipitation earlier in the overnight period, also meaning that the strongest frontogenesis/isentropic lift moved through quicker than anticipated. Secondly, the best moisture convergence stayed just offshore, leading us to miss out on some of the heavier rain.
Click the images below for enlarged versions of the archived radar image for 8AM Sunday, January 20, and the Storm Prediction Center’s moisture convergence analysis for the same time.
The fact that we never ended up in the warm sector for too long during the day Sunday also meant that the best moisture didn’t quite make it up to NYC. Note how the areas of strongest moisture convergence are also coincide well with the most intense radar echos. For precipitation with strong storms like this, it can always be a hit-or-miss proposition to pinpoint precipitation totals for one spot. My own personal forecast bias leads me to over forecast precipitation quite often. I should have consulted the daily average for precipitation to factor climatology into this as well before doing the forecast. For reference, the record precipitation total for KLGA on January 20th was 1.41″ – so I was, in essence, forecasting a near record-breaking precipitation event. That usually doesn’t pan out, as you see.