How accurate are RadarRewind rain totals?
A validation of radar-derived rainfall totals against rain gauges across 55 storms, 2020–2025.
Summary
RadarRewind's Rain Total adds up the National Weather Service's dual-polarization rain-rate product (DPR) from a single radar over a window you choose, and moves rain along with the storm between scans. We compared those totals with 1,458 rain gauges across 55 storms, from Pacific atmospheric rivers and desert monsoon storms to Gulf hurricanes and East Coast nor'easters.
Across all storms, radar totals come out about 14% below the gauges, with a typical one-hour error of 3.7 mm (0.15 in) and a correlation of 0.76. The error depends mostly on the kind of storm and where it is: totals run high in thunderstorms and especially in high-based desert storms, and low far from the radar, behind mountains, and in steady cool-season rain.
Each total comes with a likely gauge range. On storms held out of fitting, the actual gauge fell inside that 90% range 90.0% of the time. The range is not reliable when the radar has data gaps, and it is not built for snow.
1. What the rain total is
Rain rates. Each WSR-88D radar publishes an instantaneous rain-rate product, DPR (Level III product 176), once per volume scan (every 4–10 minutes). It is the NWS dual-polarization precipitation estimate: it combines reflectivity with differential reflectivity and specific differential phase, classifies hydrometeors, detects the melting layer, and uses the lowest unblocked beam at each location. It is more accurate than any reflectivity-only formula we could compute ourselves, so we use it directly.
Adding it up. Rates are placed on a 500 m grid around the radar and integrated over exactly the requested window. When two scans are more than 4 minutes apart, the rain is moved along the storm's motion between them rather than faded in place. Motion comes from optical flow (OpenCV's Farneback method) computed on each pair of scans, following the advection-correction approach used in operational multi-radar products. Without it, fast storms leave beaded, striped swaths because rain "skips" the ground between scans. Gaps longer than 20 minutes are not filled; they are left out of the total and reported.
What a gauge sees. A rain gauge is a single point, while each radar cell is 500 m wide and the radar beam is hundreds of metres to several kilometres above the ground. Some disagreement between the two is unavoidable even when both are working well.
2. Ground truth
- ASOS 1-minute precipitation (NWS/FAA stations, via the Iowa Environmental Mesonet), used when the 1-minute record covers at least 90% of the storm and agrees with the station's hourly reports.
- ASOS/AWOS hourly reports (METAR hourly precipitation), summed between consecutive routine observations so radar and gauge cover exactly the same interval. Hours with a sensor-outage remark or missing data are excluded, as are stations that report rain in their weather code but never an amount (no gauge).
- Oklahoma Mesonet 5-minute rainfall for the storms near Oklahoma radars, a dense research-grade network.
- MRMS Multi-Sensor QPE (Pass 2) from NOAA as a gridded reference. MRMS is itself corrected with many of the same gauges, so it is an upper bound on what is achievable, not an independent check.
Gauges flagged as dead (under 5% of a large radar total) or as disagreeing more than threefold with a neighbour within 5 km were excluded. Windows with frozen precipitation were excluded, since heated tipping-bucket gauges and radar both handle snow poorly. Gauges also under-catch in strong wind and very heavy rain, so part of any "radar high" signal is really gauge undercatch.
3. Storms
55 events from April 2020 onward (the start of the public DPR archive), each 4–24 hours long, chosen to span:
- Storm types: supercells, fast-moving lines and derechos, training storms and flash floods, desert monsoon storms around Las Vegas, Phoenix and Tucson, tropical storms and hurricanes, cool-season steady rain from the Plains to the East Coast, and atmospheric rivers over terrain.
- Regions: the Plains, Midwest, Southeast and Gulf Coast, Mid-Atlantic, Northeast, Desert Southwest, California and the Pacific Northwest.
- Seasons: 33 warm-season and 22 cool-season (November–April) events.
Only 9 of the 55 sit on the dense Oklahoma network. The full list is in the appendix.
4. Results
4.1 Radar versus gauges
Bias is the radar total divided by the gauge total, summed over all wet gauge windows (1.00 is perfect; below 1 means the radar is low). Only windows where the radar or the gauge measured at least 0.25 mm are counted.
| Window | Wet windows | Bias (radar/gauge) | RMSE | Correlation |
|---|---|---|---|---|
| 1 hour | 22,234 | 0.86 | 3.7 mm (0.15 in) | 0.76 |
| 3 hours | 8,622 | 0.85 | 7.5 mm (0.30 in) | 0.79 |
| 6 hours | 4,698 | 0.86 | 11.9 mm (0.47 in) | 0.77 |
| Whole storm | 2,309 | 0.88 | 23.1 mm (0.91 in) | 0.79 |
| MRMS, 1 hour (reference) | 9,273 | 1.00 | 1.6 mm | 0.96 |
| MRMS, whole storm (reference) | 1,130 | 1.01 | 5.8 mm | 0.98 |
4.2 Distance from the radar
The radar beam rises with distance and widens. Close in, it sees the heaviest rain (and hail) near the ground; far out, it overshoots shallow rain and samples the melting layer.
| Range from radar | Bias (1 h) | Bias (whole storm) | Correlation (1 h) |
|---|---|---|---|
| 0–50 km | 1.06 | 1.09 | 0.83 |
| 50–100 km | 1.02 | 1.01 | 0.80 |
| 100–150 km | 0.94 | 0.95 | 0.79 |
| 150–230 km | 0.63 | 0.66 | 0.70 |
4.3 Storm type
| Storm type | Events | Bias (whole storm) | Correlation |
|---|---|---|---|
| Pulse and desert monsoon storms | 9 | 1.24 | 0.84 |
| Training storms, flash floods | 8 | 1.20 | 0.83 |
| Supercells | 5 | 1.13 | 0.89 |
| Fast lines, derechos | 6 | 1.03 | 0.83 |
| Tropical | 7 | 0.90 | 0.72 |
| Stratiform with embedded storms | 2 | 0.69 | 0.79 |
| Steady (stratiform) rain | 12 | 0.62 | 0.74 |
| Atmospheric rivers over terrain | 4 | 0.61 | 0.72 |
Steady rain over flat terrain reads low even where nothing blocks the beam: eight cool-season storms from Chicago and Indianapolis to Washington, Philadelphia, New York and Boston came in at 0.50–0.72 of the gauges. Across all storms, cool-season events read 0.69 of the gauges and warm-season events 1.03.
4.4 High-based desert storms
Desert monsoon storms often have cloud bases 2–3 km up, with very dry air below. Rain the radar sees aloft can partly evaporate before reaching the ground. We added six monsoon days from the Las Vegas (KESX) and Phoenix (KIWA) radars to measure this.
| Storm | Radar | Gauges | Bias (radar/gauge) |
|---|---|---|---|
| Las Vegas, 1 Aug 2023 | KESX | 9 | 2.29 |
| Las Vegas, 28 Jul 2022 | KESX | 5 | 1.87 |
| Las Vegas, 1 Sep 2023 | KESX | 12 | 1.70 |
| Phoenix, 23 Jul 2021 | KIWA | 17 | 1.28 |
| Phoenix, 14 Aug 2021 | KIWA | 20 | 1.12 |
| Phoenix, 26 Sep 2025 (deep moisture) | KIWA | 20 | 1.01 |
| Tucson, 25 Jul 2021 (mountain blockage) | KEMX | 12 | 0.57 |
The Las Vegas storms read 1.7 to 2.3 times the gauges, consistent with strong evaporation below cloud base. Phoenix storms read somewhat high, and the humid late-September case not at all. Tucson reads low despite the same kind of storm, because mountains block that radar's lower beams. With only six storms, the uncertainty model does not yet have an input that recognizes a dry-based storm, so its likely range is centred too high for Las Vegas monsoon storms, although its lower end still covers what the gauges caught.
4.5 Moving rain with the storm
With every scan available, motion correction makes little difference at gauges: one-hour RMSE is 3.71 mm with it and 3.79 mm without. Its value shows when scans are sparse, as in clear-air scanning modes (about 10 minutes apart) or after missed scans. To test that without gauges, we recomputed every storm using only every second or third scan and compared with the full-rate total.
5. The likely gauge range
Hovering over a rain total, or opening the chart for a point, shows a likely gauge range: where a rain gauge at that spot would most likely have ended up, with 90% confidence. It answers "if I had a gauge here, what might it have caught?" It is a statement about the gauge, not a correction of the radar, which is why the range can sit partly or entirely below or above the radar total.
How it is built. A quantile-regression model predicts the ratio of gauge to radar from things the app knows at the time:
- the radar total and the window length;
- the distance from the radar;
- terrain blockage of that radar's low beams, computed once per radar from a terrain model by tracing the beam in every direction and finding how far the lowest usable tilt has to be raised (capped at the level seen in more than one validation storm);
- the season, since cool-season rain with a low melting layer reads low;
- the storm's character: the share of rain falling at convective rates (25 mm/h or more) and the 90th-percentile rain rate over raining areas.
The model was then widened using held-out storms (a conformal calibration) so that storms it had never seen are covered at the stated rate. Each input was chosen by leave-one-storm-out cross-validation; local variability, wet area, scan interval and data gaps were also tested and did not improve held-out predictions enough to include.
Width. The ranges are wide, because single-radar rain estimates genuinely are uncertain, and they are widest where the radar is least reliable. For a radar total of 1.00 in over 12 hours of cool-season steady rain, 90 km from the radar, the likely gauge range is about 0.22–2.75 in for an open, flat-terrain radar such as New York (KOKX), but 0.22–8.46 in for a radar ringed by mountains, where the beam can overshoot most of the rain.
5.1 Does the range hold up?
Each storm was predicted by a model fitted without it, using the same code the website runs. A well-calibrated 90% range should contain the gauge about 90% of the time.
| Held-out windows | Windows | Inside 90% range | Inside middle 50% |
|---|---|---|---|
| Wet (radar or gauge ≥ 0.25 mm) | 38,193 | 90.0% | 56.5% |
| All windows, including dry | 62,811 | 93.9% | 73.3% |
| 1-hour windows | 22,384 | 89.7% | 57.7% |
| 9–24 hour windows | 1,816 | 93.0% | 52.3% |
| 0–50 km from radar | 4,875 | 89.5% | 60.5% |
| 150–230 km from radar | 15,246 | 89.4% | 49.7% |
| Windows with radar data gaps | 459 | 70.4% | 33.6% |
6. Limitations
- Radar outages. Gaps longer than 20 minutes are not filled, so rain that fell during an outage is missing from the total, and the likely range is too narrow (70% coverage instead of 90%). The app says so when a window has gaps. In one Dallas flash flood a 75-minute outage left the total about six times below MRMS.
- Mountains and beam blockage. Where terrain blocks the lower beams the radar can badly underestimate: in the February 2024 Los Angeles storm it read about a quarter of what 29 gauges measured, a result MRMS confirmed independently. The likely range now accounts for each radar's terrain, which is why it is much wider for blocked radars, but only a handful of validation storms come from heavily blocked sites.
- Dry-based desert storms. Las Vegas monsoon storms read up to about twice the gauges, and the likely range does not yet shift down for them (section 4.4).
- Steady cool-season rain reads well below the gauges even over flat terrain (about 0.5–0.7). The likely range allows for this, but the displayed total does not correct it (section 7).
- Snow and mixed precipitation were excluded from validation and are not supported.
- Gauges are not perfect truth. They under-catch in wind and extreme rain, and a point can differ from its 500 m cell, especially in small storms.
- Coverage. DPR is archived publicly from April 2020, and only CONUS radars were tested.
7. Should the totals be bias-corrected?
Totals run high near the radar and in thunderstorms and low far from it and in steady rain, so a correction is tempting. We tested corrections by distance, season and convective fraction, fitting each on all storms but one and testing on the one left out. The best, distance combined with convective fraction, improved 44 of 55 held-out storms at the hourly scale and 41 of 53 over whole storms, and cut RMSE by about 4–7%. That case is stronger than it was with fewer storms, and a corrected total is something we may add. For now the app shows the radar total as measured and puts what we know about its error into the likely gauge range.
Appendix: storms
| Date (UTC) | Radar | Storm type | Hours | Gauges used |
|---|---|---|---|---|
| 2020-04-29 | KLOT | Stratiform | 24 | 58 |
| 2020-08-10 | KDVN | Fast MCS / derecho | 7 | 50 |
| 2020-09-16 | KMOB | Tropical | 12 | 7 |
| 2021-03-25 | KBMX | Supercells | 14 | 42 |
| 2021-06-26 | KVNX | Fast MCS / derecho | 11 | 104 |
| 2021-07-23 | KIWA | Desert monsoon | 24 | 18 |
| 2021-07-25 | KEMX | Desert monsoon | 18 | 12 |
| 2021-08-14 | KIWA | Desert monsoon | 24 | 21 |
| 2021-09-01 | KOKX | Tropical | 12 | 63 |
| 2021-10-24 | KDAX | Atmospheric river (terrain) | 24 | 39 |
| 2021-11-14 | KATX | Atmospheric river (terrain) | 24 | 24 |
| 2021-12-11 | KPAH | Supercells | 8 | 3 |
| 2022-05-12 | KFSD | Fast MCS / derecho | 6 | 28 |
| 2022-07-23 | KMLB | Pulse / monsoon storms | 4 | 31 |
| 2022-07-26 | KLSX | Training storms | 12 | 35 |
| 2022-07-28 | KJKL | Training storms | 12 | 32 |
| 2022-07-29 | KESX | Desert monsoon | 5 | 10 |
| 2022-08-11 | KESX | Desert monsoon | 24 | 0 |
| 2022-08-22 | KFWS | Training storms | 18 | 0 |
| 2022-09-28 | KTBW | Tropical | 24 | 34 |
| 2022-11-26 | KTLX | Stratiform | 16 | 131 |
| 2022-12-15 | KLWX | Stratiform | 24 | 21 |
| 2023-01-04 | KMUX | Atmospheric river (terrain) | 24 | 36 |
| 2023-01-22 | KFFC | Stratiform | 12 | 37 |
| 2023-02-27 | KTLX | Fast MCS / derecho | 6 | 144 |
| 2023-03-03 | KIND | Stratiform | 24 | 22 |
| 2023-04-12 | KAMX | Training storms | 21 | 18 |
| 2023-04-26 | KTLX | Stratiform | 12 | 138 |
| 2023-05-11 | KFTG | Stratiform | 24 | 28 |
| 2023-06-03 | KINX | Pulse / monsoon storms | 6 | 103 |
| 2023-06-29 | KILX | Fast MCS / derecho | 6 | 24 |
| 2023-07-02 | KLOT | Training storms | 12 | 52 |
| 2023-07-10 | KCXX | Training storms | 24 | 19 |
| 2023-08-01 | KESX | Desert monsoon | 24 | 9 |
| 2023-08-20 | KSOX | Tropical | 24 | 28 |
| 2023-09-01 | KESX | Desert monsoon | 24 | 13 |
| 2023-11-21 | KLWX | Stratiform | 24 | 46 |
| 2023-12-10 | KOKX | Stratiform | 24 | 54 |
| 2023-12-17 | KGYX | Stratiform + embedded storms | 24 | 20 |
| 2023-12-18 | KDIX | Stratiform | 24 | 55 |
| 2024-02-04 | KVTX | Atmospheric river (terrain) | 24 | 29 |
| 2024-03-23 | KOKX | Stratiform | 24 | 28 |
| 2024-04-27 | KFDR | Supercells | 9 | 88 |
| 2024-05-06 | KTLX | Supercells | 7 | 132 |
| 2024-05-16 | KHGX | Fast MCS / derecho | 4 | 29 |
| 2024-05-21 | KDMX | Supercells | 6 | 53 |
| 2024-07-08 | KHGX | Tropical | 12 | 35 |
| 2024-08-05 | KCLX | Tropical | 24 | 43 |
| 2024-08-11 | KTLX | Training storms | 12 | 136 |
| 2024-09-26 | KGSP | Tropical | 24 | 70 |
| 2024-11-08 | KINX | Stratiform + embedded storms | 16 | 112 |
| 2024-12-11 | KBOX | Stratiform | 24 | 31 |
| 2025-04-05 | KPAH | Training storms | 24 | 50 |
| 2025-07-04 | KEWX | Training storms | 16 | 40 |
| 2025-09-26 | KIWA | Desert monsoon | 24 | 21 |