Icy Road Safety.com - Prepare for Weather's Most Underrated Hazard

LCR (vehicle Loss-of-Control Risk): A new winter weather parameter and scale (v1.1.6 Beta)

RSS/XML feed
Dan's YouTube Video Channel

The LCR scale is a tool for classifying, forecasting and warning the public about hazardous winter driving events. The value of the 15-point scale is calculated from observed or numerical model-derived meteorological data. Charts of LCR values can be plotted from either realtime or model data, allowing quick identification of geographical areas posing the highest risks to drivers. The LCR Scale is a nonprofit project, and the script/code is being released under a GNU license.

DISCLAIMER: The LCR project is currently experimental, is independently produced, and is not affiliated with or endorsed by any official government agency, NOAA or the National Weather Service.

Table of Contents

Sample LCR Forecast Chart

LCR forecast charts are generated daily during the winter weather season in the continental USA between September/October and May.

Video Presentation


LCR is designed to display the risk of a motor vehicle encountering a hazardous (reduced road surface friction) condition that can lead to a loss of control incident. Higher LCR values indicate a greater risk to a driver, as well as a corresponding increase in the following human impacts:
  • Number of accidents
  • Number of injuries
  • Number of fatalities
  • Demand on police/fire/EMS first responders
  • Road closures/restrictions
  • Property damage losses
  • Demand on towing services
  • Shipping and commerce impacts


The forecasting and warning of winter storm hazards has traditionally been based on the total precipitation amounts expected during the event. Accordingly, most National Weather Service watch and warning criteria are based on QPF thresholds being met. However, research increasingly shows that the highest number of vehicle loss-of-control incidents and corresponding injuries, deaths and property damage occur in events that don't meet warning or advisory criteria (for example, in less than 2" of snow).

The majority of hazardous road conditions develop when any type of precipitation falls with a surface temperature at or below the freezing point (32°F / 0°C). There are additional meteorological factors that can increase the risk from this baseline condition. No shorthand way to represent this risk has existed in publicly-available forecast tools. For example, discerning the simple condition where precipitation is falling at below-freezing surface temperatures has involved toggling back and forth between QPF (precipitation) and 2m temperature charts.

LCR consolidates all of the meteorological factors that produce and increase the hazardous road condition risk into a single, easy-to-understand parameter.

It is intended for LCR to be a complement, not a replacement, for other winter weather hazard assessment tools. The Winter Storm Severity Index, for example, is a product that consolidates ALL winter weather hazards such as extreme temperatures, travel impacts, property damage and power outages. LCR is a product that is focused solely on the danger to drivers losing control from a significant reduction in road surface friction.


  • LCR charts can be generated from realtime meteorological data
  • LCR forecast charts can be generated from numerical model data
  • LCR can be easily manually calculated for any in-progress event at a given location
  • LCR can be manually calculated for past events at a given location
  • LCR charts for past events can be generated from meteorological data archives

LCR Scale and approximate human impacts (v1.1.6 Beta)

Low 1 Isolated incidents, mainly involving vehicles traveling at speeds faster than 65mph.
Marginal 2 Scattered incidents, mainly involving vehicles traveling at speeds faster than 65mph. Isolated injury crashes.
Slight 4 Elevated number of incidents, mainly involving vehicles traveling at speeds faster than 55mph. Scattered injury crashes.
Enhanced 6 Numerous incidents, mainly involving vehicles traveling at speeds faster than 45mph. Some localized EMS/first responder strain. Multiple injuries. Isolated fatalities.
Moderate 8 Numerous incidents. Isolated multi-vehicle pileups. Multiple road closures. Regional EMS/first responder strain. Numerous injuries, multiple fatalities. Towing bans placed in effect.
High 10 Widespread incidents. Major multi-vehicle pileups. Widespread road closures. EMS/first responders overwhelmed. Numerous injuries and fatalities. Travelers stranded. Shipping, commerce and other economic impacts. Towing bans placed in effect.


LCR is calculated using a series of conditional statements that apply pre-set values in a cumulative (additive) fashion. LCR is intended to be an hourly value for a given location. 6, 12 and 24-hour period LCR maximum charts can also be derived from the hourly values.

Prerequesite data

LCR requires the following data for each gridpoint (latitude/longitude):

For numerical model data forecast charts:

  • 2m temperature
  • 2m dewpoint
  • 2m relative humidity
  • 6-hour 2m temperature history
  • Hourly QPF
  • Hourly QPF (freezing rain/drizzle)
For realtime analysis:
  • Latitude/longitude
  • ASOS or AWOS observations of:
    • 2m temperature
    • 6-hour 2m temperature history
    • 2m dewpoint
    • 2m relative humidity
    • Precipitation rate/type
  • NWS-issued winter watch/warning/advisory in effect (yes/no):
    • winter weather advisory
    • winter storm watch
    • winter storm warning
    • freezing rain advisory
    • freezing fog advisory
    • ice storm warning
    • blizzard warning
    • snow squall warning
The LCR script code contains a function to calulate the 2m wet bulb temperature with a standard formula using 2m temperature, 2m dewpoint and 2m surface pressure.

Baseline LCR (v1.1.6 Beta)

Non-activated gridpoints have a LCR value of zero (0). LCR is activated at a gridpoint where precipitation of any type (hourly QPF above zero) is falling where both of the following conditions are present:
  • 2m temperature at or below 38°F AND
  • 2m wet bulb temperature at or below 34°F
If the above conditions are met for a gridpoint, the baseline LCR value is set as follows:
  • For hourly liquid-equivalent QPF of less than 0.1" (or 1" of snow or below) LCR is set to 1.
  • For temperature at or below 36°F, wet-bulb temperature below 33°F, hourly liquid-equivalent QPF of more than 0.1" and less than 0.25" (or between 1" and 2" of snow), LCR is set to 2.
  • For temperature at or below 36°F, wet-bulb temperature below 33°F, hourly liquid-equivalent QPF of more than 0.25" and less than 0.5" (or between 2" and 3" of snow), LCR is set to 3.
  • For temperature at or below 36°F, wet-bulb temperature below 33°F, hourly liquid-equivalent QPF of 0.5" or more (or 3" of snow or above), LCR is set to 4.
For realtime LCR analysis, if ASOS/AWOS observations indicate:
  • Light precipitation, LCR is set to 1.
  • Moderate precipitation, LCR is set to 2.
  • Heavy precipitation, LCR is set to 3.

Factors that increase LCR (v1.1.6 Beta)

Each of the following condition factors, when true, add to the baseline LCR value. The script does not apply these factors if the baseline LCR is zero (a no-QPF condition).

  • Below-freezing factor: If the 2m temperature is at or below freezing, the gridpoint's LCR value is increased by 1. Justification: Well-bonded ice layer begins forming on road surfaces when temperatures fall below freezing.
  • Below-freezing temperature history factor: If the average 2m temperature of the previous 6 hours is below freezing, the gridpoint's LCR value is increased by 1. Justification: A longer period of below-freezing temperatures allows road surfaces to cool enough to support the efficient development of hazardous conditions.
  • Temperature "sweet spot" range factor: If the 2m temperature is between 24°F and 29°F, the gridpoint's LCR value is increased by 2. Justification: A more solid bonding of an ice layer to a road surface occurs during temperatures below 29°F. With temperatures between 24°F and 29°F, vehicle traffic introduces a melting-refreezing cycle of falling/fallen precipitation on a road surface. The result is a uniform, well-bonded ice layer that is significantly more hazardous to drivers. NOTE: the 24°F lower bound is not used if the precipitation type is freezing rain.

  • Freezing rain/freezing drizzle factor: If the precipitation type is freezing rain or freezing drizzle, the gridpoint's LCR value is increased by 2. Justification: Freezing rain and freezing drizzle produce a treacherous road surface lacking in visual cues for drivers.
  • Regional de-icing capacity factor: If the gridpoint's location is at or south of the 35° latitude, the LCR value is increased by 1. If the gridpoint's location is at or south of the 34° latitude, the LCR value is increased by 2. If the gridpoint's location is at or south of the 33° latitude, the LCR value is increased by 3. Justification: Regions with reduced de-icing capacity suffer the greatest and most widespread hazardous conditions during subfreezing precipitation. The driving public in these regions is also much less experienced with hazardous winter driving conditions.

  • Surprise event factor (realtime analysis only): If the gridpoint's location has not been under an active winter weather watch/warning/advisory for at least 3 hours, the gridpoint's LCR value is increased by 3. Justification: Short-fuse "surprise" events suffer from fewer available de-icing crews and equipment, resulting in greater and more widespread hazardous conditions as well as reduced preparedness from the public. This factor is not applied to LCR forecast charts derived from model data, therefore model charts will have a maximum LCR value of 12.
Freezing Fog

Freezing fog is indicated when QPF is zero, 2m temperature is at or below 31°F and 2m relative humidity is 99 percent or greater. Freezing fog LCR values are not applied if QPF is greater than zero. At this time, the Regional de-icing capacity factor and Pre-existing winter weather watch/warning/advisory factor are not applied to a freezing fog LCR value.

Numerical models:

  • For 2m RH at or greater than 92% and temperature at or below 32°F, LCR is set to 1.
  • For 2m RH at or greater than 98% and temperature at or below 29°F, LCR is set to 2.
  • For 2m RH at or greater than 99% and temperature at or below 27°F, LCR is set to 3.
Realtime analysis: ASOS/AWOS reporting heavy fog or freezing fog and temperature at or below:
  • 31°F, LCR is set to 1.
  • 29°F, LCR is set to 2.
  • 27°F, LCR is set to 3.
Maximum LCR value

The maximum LCR value is 15, which would occur during the following conditions:
  • 0.25" or greater of freezing rain in one hour
  • 6-hour average 2m temperature below freezing
  • 2m temperature between 24°F and 29°F
  • Occurring at or south of the 33° latitude (as in the far southern US)
  • Surprise event (No NWS winter watch, warning or advisory in effect for at least 3 hours)
Since model forecast charts do not incorporate the "pre-existing NWS watch/warning/advisory in effect" factor, the maximum possible LCR value on model charts is 12 (which would occur during the same set of above conditions).

LCR values for select past events

  • February 11, 2021 - Fort Worth, Texas: LCR = 10
  • December 16, 2016 - St. Louis, MO: LCR = 10
  • February 15, 2021 - Houston, Texas: LCR = 10
  • January 6, 2017 - Birmingham, AL: LCR = 10
  • January 18, 2015 - New Brunswick, NJ: LCR = 9
  • November 27, 2021 - Dubuque, IA: LCR = 8
  • November 1, 2021 - North Platte, NE: LCR = 4

Summary of LCR calculation (v1.1.6 Beta)

At a gridpoint, LCR is zero unless all of the following conditions are true:
  • 2m temperature at or below 38°F
  • 2m wet bulb temperature at or below 34°F
  • Precipitation of any type (QPF) is greater than zero
If those conditions are true for a gridpoint, then LCR is:

Baseline LCR
Hourly liquid-equivalent QPF LCR Base Value
Less than 0.1" (or up to 1" of snow) 1
More than 0.1" and less than 0.25" (or between 1" and 2" of snow)
(& temperature of 36°F or below)
More than 0.25" and less than 0.5" (or between 2" and 3" of snow)
(& temperature of 36°F or below)
0.5" or more (or 3" or more of snow)
(& temperature of 36°F or below)
LCR Increments
Condition increases LCR by
2m temperature at/below freezing 1
Average of 2m temperatures over past 6 hours is below freezing 1
2m temperature between 24°F and 29°F 2
Ptype is freezing rain or freezing drizzle 2
Location with reduced deicing capability:
At/south of 35° latitude: +1
At/south of 34° latitude: +2
At/south of 33° latitude: +3
1,2 or 3
Surprise event - No NWS advisory or warning in effect for 3 hours
(not used in model forecasts of LCR)

Color scale values (v1.1.6 Beta)

1 BCE1BF 188,225,191
2 71B963 113,185,99
3 518543 81,133,67
4 EDF274 237,242,116
5 DAE131 218,225,49
6 E2B177 226,177,119
7 D68937 214,137,55
8 EA777A 234,119,122
9 D73737 215,55,55
10 F17BDC 241,123,220
11 EB49D2 235,73,210
12 E61EC9 230,30,201
13 C315AA 195,21,170
14 94127F 148,18,127
15 740e64 116,14,100

BFP - Below-Freezing Precipitation

The LCR script also generates BFP, the Below-Freezing Precipitation value. BFP shows the amount of precipitation of any type occurring where 2-meter temperatures are at or below freezing. These two ingredients are the basic conditions present during the vast majority of hazardous winter road conditions.

Below is a 24-hour maximum chart of BFP. The sensitivity of the BFP chart color scale (zero to 0.1" and above) is highly amplified due to the fact that it only takes very light amounts of precipitation to create hazardous road conditions.

Script Downloads & Development

LCR v1.1.6 Beta (Updated December 26, 2022)
The LCR scripts are designed to run in the NCO toolkit. The scripts are being released under a GNU license.

To download, right-click on the following files and choose "Save As".

McIDAS color table files: Download and import into the McIDAS color table editor:

Linux shell scripts (view instructions)

You can also download the script from Github.


  • Numerical model chart script (Phase I): The first functional LCR script for numerical model charts was released in December 2022. This code is being made available under a standard GNU license to any and all outlets that display numerical model data charts.
  • Realtime analysis script (Phase II): Realtime LCR chart generation will be possible using METAR (surface) observations and mesonets. Development of this code is scheduled, but no date of completion has been set. Mesoanalysis charts can be generated using the numerical model data script.

Running the LCR script on model data

The LCR script runs using NCO Toolkit commands in Linux. To run the script, you will need a Linux machine (or a virtual machine running Linux in Windows or Mac). Both the NCO Toolkit and Ubuntu Linux are free and open-source. You can use the free Windows Subsystem for Linux (WSL) to install and run Ubuntu Linux within Windows (you will need to enable virtualization both in Windows and in your BIOS).
  1. Install the NCO toolkit and related functions in Linux. From a fresh Linux install, type and run the following commands in sequence:

    sudo apt-get update

    sudo apt-get install nco

    sudo apt-get install netcdf-bin

    sudo apt-get install cdo

    sudo apt-get install lynx

  2. Download the LCR script to your Linux installation. You can do this with Lynx with the following command:

    lynx https://icyroadsafety.com/lcr/lcr-v-1-1-6.nco

    Once the script loads in Lynx, press P to save it.

  3. Download model data and run the scripts: There are two ways to do this: using shell (bash) scripts or using manual commands.

    Using bash scripts: The easiest way to generate LCR and BFP data is to use the bash scripts, which automate the downloading of the model data, execute the LCR script and create the Day 1 and Day 2 data files. Follow these instruactions to run the bash scripts:

    • Download each .sh file into Linux (links above). These need to be downloaded into the same Linux folder as the LCR nco script file.
    • chmod each .sh file to 755 by typing the following command and pressing enter:

      chmod 755 scriptname.sh
    • Edit the date and model run time in each script. The date format is YYYYMMDD and the model run times are HHz.
    • Run the bash script by typing the following command and pressing enter:

    Manual steps: Follow these steps to do the process manually:

    • Download model data with the ncks command. The following command will download the necessary parameters in model output from the NOAA Nomads server:

      ncks -v tmp2m,dpt2m,rh2m,apcpsfc,cfrzrsfc OpenDap-Model-URL outputfile.nc

      OpenDap-Model-URL is the location of the OpenDAP data file on the NOMADS server. This will be different for each model. Go to the NOMADS home page and click the OpenDAP link for the model you need.

      Constrain data by latitude/longitude: You may want to limit the download of data to a specific region like the CONUS or an even smaller geographic area. For example, the full global GFS data download for the LCR-required variables will be over 2GB. To save time and limit the data download to CONUS gridpoints only, use the following:

      ncks -d lat,20.0,60.0 -d lon,210.0,310.0 -v tmp2m,dpt2m,rh2m,apcpsfc,cfrzrsfc OpenDap-Model-URL outputfile.nc

    • Run the LCR script on the downloaded model data file. Run the following command to calculate LCR and BFP from the downloaded data:

      ncap2 -4 -S lcr-v-1-1-5.nco downloaded-model-data-file.nc outputfile-lcr.nc

      downloaded-model-data-file.nc is the outputfile.nc from the previous download step, outputfile-lcr.nc here is the final file containing the LCR and BFP calculations.

    • Generate 24-hour maximum charts: The ncwa command can generate a new .nc file containing maximum LCR or BFP values over a specified time period.

      ncwa -v lcr -d time,startframe,endframe -a time -y max inputfile-lcr.nc outputfile-lcrmax.nc

      Replace startframe with the time step number where you want the maximum value calculation to begin, replace endframe with the time step number where you want it to end.

      For 1-hour models like the HRRR, there are 24 timesteps in a day. For models like the GFS which use 3-hour time steps, there are 8 timesteps in a day. If you wanted to perform a maximum calculation for the 00z HRRR for the 24-hour period ending at 00z the following day, the startframe would be 1 and the endframe would be 24. For the same situation with the 00z GFS, the startframe would be 1 and the endframe would be 8. If you wanted to do a "Day 2" forecast for tomorrow (00z tonight through 00z tomorrow) from the 18z HRRR, you would make the startframe 6 and the endframe 30.

      Example: 24-hour maximum LCR chart from the 00z HRRR:

      ncwa -v lcr -d time,1,24 -a time -y max inputfile-lcr.nc outputfile-lcrmax.nc

      Example: Day 2 24-hour maximum BFP chart from the 18z HRRR:

      ncwa -v bfp -d time,6,30 -a time -y max inputfile-bfp.nc outputfile-bfpmax.nc

  4. Copy the final LCR data files to Windows (in WSL): Type the following command to open the Linux directory in a Windows File Explorer window (note the space and period after exe):

    explorer.exe .

    You can drag-and-drop or copy the .nc data files over to Windows this way. This folder also does not auto-refresh, you'll need to manually refresh it to see new/changed Linux files. Note: This file transfer menthod only works in one direction, Linux > Windows. Files copied from Windows to Linux this way are often not readable in Linux.

  5. Use the data viewer of your choice to generate charts from the resulting files. The free software McIDAS-V is a good way to generate charts of the resulting data. Choose the "color shaded plan view" and download the XML files to import the color scale for LCR or BFP, and set the scale range from 0 to 12 for LCR or 0 to 0.1 for BFP.

Script Version Notes

Version 1.1.6/1.1.5
  • Increased the wet bulb temperature threshold for baseline LCR by 1 degree: At or below 34°F for LCR-1 and at or below 33°F for LCR-2 through LCR-4. This was done so that a greater number of heavy snow events in above-freezing 2m temperatures can attain values up to LCR-4. v1.1.5 has the same modification for models without asnowsfc.
Version 1.1.4 (asnowsfc-inclusive models only)
  • Added a 4th baseline LCR value for heavy snow events. This assigns a baseline LCR value of 4 for events with 3 inches or greater snowfall in 1 hour (asnowsfc models only) and/or liquid-equivalent 1-hour precipitation of 0.5" or greater. This ensures that heavy snow events will attain a value of at least LCR-4, even if 2m temperatures are above freezing. v1.1.3 is for models without asnowsfc (meaning only the liquid-equivalent precipitation factor is used).
Version 1.1.2 (asnowsfc-inclusive models only)
  • Added snowfall thresholds to the baseline LCR value functions. The liquid-equivalent thresholds for baseline LCR remain the same, but now the script looks at the 1-hour snowfall (decumulated asnowsfc variable) and assigns LCR-1 for snowfall from greater than 0 to 1 inch, LCR-2 for snowfall between 1 and 2 inches, and LCR-3 for snowfall above 2 inches.

    This change was necessary because impactful events with high snow ratios (meaning very low liquid-equivalent precipitation) were sometimes not assigned baseline LCR values higher than 1. This resulted in events that should be LCR-4 or LCR-5 ending up at only LCR-3.

    Since the asnowsfc variable is not available in all models, version 1.1.4 of the script can only be used with models that include that variable (such as the HRRR). Deriving hourly snowfall in models without the asnowsfc variable will involve additional development to incorporate Kuchera snow ratio (to be completed at a future time).

Version 1.1.1
  • Removed the lower temperature bound of the "sweet spot" range for freezing rain events. The script will now apply the 2-point "sweet spot" increase for all temperatures at 29°F and below if the precipitation type is freezing rain. This is because there is no decrease in the hazard level of freezing rain road icing occurring at temperatures below 24°F.
Version 1.1
  • Fixed an error with the temperature history factor variable not converted to Fahrenheit. Since the threshold of this factor is 32, the value being in Celsius meant that it would always trigger the temperature history factor LCR increment. This caused LCR to be 1 point higher everywhere on the map and causing all LCR-activated gridpoints to start at 2 instead of 1.
  • Rewrote the LCR processing section to add the lcron variable as the "master" control in the conditional factor "where" statements. This ensures the incremental factors don't activate at a gridpoint when LCR is zero.
  • Increased the temperature threshold of LCR-1 to 38°F and a wet bulb temp of 33°F. This should help ensure that the vast majority of above-freezing heavy snow events trigger LCR at a gridpoint.
  • Lowered the relative humidity thresholds for the freezing fog factors to 92 percent for LCR-1 and 98 percent for LCR-2. This should help to catch more of the lower-end freezing fog events that can initiate at lower RH levels.
  • Added freezing rain precipitation type to the below-freezing temperature factor. This is meant to maintain increased LCR for freezing rain events occuring at temperatures above freezing.

Future Development Goals

Planned updates to the LCR data processing script include:
  • De-Icing Capacity refinements. Currently, the 35°, 34° and 33° latitudes are used as proxies for demarcating regions of adequate vs reduced de-icing capacity (salt/brine trucks, plows and crews). Future plans call for a detailed county-by-county database of de-icing capacity across the US that can be used to apply a granular GIS-based De-Icing Capacity factor in LCR calculations. This data will also allow for a multiple-step grading of de-icing capacity that will allow application of this factor in an incremental manner.
  • RWIS integration. Current realtime analysis will use AWOS/ASOS observations. Later editions of the script will include RWIS (Roadway weather information systems) data, where available.
  • Radar integration. The possibility of using radar reflectivity for realtime LCR calculations is being investigated. Radar may be used to augment or replace the QPF/precipitation rate factor for realtime LCR analysis.


LCR does not address lingering hazardous road impacts. Several factors can cause a hazardous road condition to persist for some time after the event is over. These include:
  • Temperatures remaining below freezing with no road treatment applied. As long as roads remain untreated and temperatures remain below freezing, the hazardous condition will remain at is previous LCR maximum until either of those factors has changed. It will remain possible for LCR values calculated in the time following an event to not show this ongoing hazard.
  • Temperatures rising above freezing immediately following a high-LCR event. Road surfaces can remain hazardous for an interval of time even if temperatures rise above freezing immediately afterward.
Significant accumulations (snowstorms) and blizzards: LCR does not consider non-road-surface-friction hazards from significant winter storms (cold temperatures, blowing snow, reduced visibility), nor road impassability due to large snow accumulations or drifts. In other words, LCR does not consider the risk of a vehicle getting stuck. Such hazards are already well-covered by the current watch, warning and advisory products. Vehicle loss-of-control incidents are also less of a factor during significant snowfall events (+5") due to these accumulations inherently limiting vehicles' top speeds.

LCR does not take into account rain (wet road) impacts. Rain does correlate with an increase in accident rates, but only at a marginal level compared to the increase during winter precipitation conditions. Rain, a very common condition in most locations, rarely results in the acute, widespread impacts that winter precipitation produces. The presence of precipitation during the warm season is already well-represented using radar and model QPF charts. In addition, including rain in the LCR equation would create unneccessary noise in the data. These all influenced the decision to not include a LCR factor for rain.


Assistance in development, refining and implementation of the LCR Scale would be welcome! Please email Dan Robinson at [email protected].

Special Thanks To

Henry Butowsky - Script programming and technical assistance

Educational Winter Driving Videos - Watch for Free:

Video: How to correct a slide on an icy road (and how to prevent them)Video: Icy Bridges: Weather's underrated killerVideo: Deadliest Weather: Freezing Rain

Home | Risk | Stats | Accident Video | Icy Bridges | Tips | Warning Signs | If You Slide | If You Wreck

Average annual
deaths in the US
from icy roads

Average annual
injuries in the US
from icy roads

[ More Statistics ]

All content © Dan Robinson. All usage, with limited exception, requires a paid license - please see usage options or contact Dan for inquiries.

Web Site Design and Internet Marketing by CIS Internet