← Back to RadarRewind

How accurate are RadarRewind rain totals?

A validation of radar-derived rainfall totals against rain gauges across 55 storms, 2020–2025.

RadarRewind validation report · September 2026 · 55 events, 1,458 gauges, 60,000+ gauge comparisons

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

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:

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.

WindowWet windowsBias (radar/gauge)RMSECorrelation
1 hour22,2340.863.7 mm (0.15 in)0.76
3 hours8,6220.857.5 mm (0.30 in)0.79
6 hours4,6980.8611.9 mm (0.47 in)0.77
Whole storm2,3090.8823.1 mm (0.91 in)0.79
MRMS, 1 hour (reference)9,2731.001.6 mm0.96
MRMS, whole storm (reference)1,1301.015.8 mm0.98
Motion-corrected totals, as shown in the app. The 90% bootstrap interval on the one-hour bias is 0.79–0.95. MRMS rows are shown for context; MRMS is corrected with these gauges.

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 radarBias (1 h)Bias (whole storm)Correlation (1 h)
0–50 km1.061.090.83
50–100 km1.021.010.80
100–150 km0.940.950.79
150–230 km0.630.660.70

4.3 Storm type

Storm typeEventsBias (whole storm)Correlation
Pulse and desert monsoon storms91.240.84
Training storms, flash floods81.200.83
Supercells51.130.89
Fast lines, derechos61.030.83
Tropical70.900.72
Stratiform with embedded storms20.690.79
Steady (stratiform) rain120.620.74
Atmospheric rivers over terrain40.610.72
Thunderstorms read high (hail, gauge undercatch in heavy rain, evaporation below cloud base); steady and mountain rain reads low (the beam overshoots shallow rain, samples the melting layer, or is blocked by terrain). Event counts exclude one monsoon storm with a six-hour radar outage.

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.

StormRadarGaugesBias (radar/gauge)
Las Vegas, 1 Aug 2023KESX92.29
Las Vegas, 28 Jul 2022KESX51.87
Las Vegas, 1 Sep 2023KESX121.70
Phoenix, 23 Jul 2021KIWA171.28
Phoenix, 14 Aug 2021KIWA201.12
Phoenix, 26 Sep 2025 (deep moisture)KIWA201.01
Tucson, 25 Jul 2021 (mountain blockage)KEMX120.57
Whole-storm totals. A seventh monsoon day (Las Vegas, 11 Aug 2022) had a six-hour radar outage and is excluded.

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.

Error against the full-rate total when scans are dropped, with and without motion correction 0 2 mm 4 mm 6 mm 3.3 mm 1.7 mm 5.0 mm 2.8 mm streaks 1.54× streaks 0.93× streaks 2.13× streaks 1.03× Every 2nd scan (~10 min) Every 3rd scan (~15 min) Without motion With motion
Figure 1. Error of each storm's total against the same method using every scan (RMSE over cells with at least 1 mm, 54 storms). "Streaks" is small-scale structure relative to the full-rate total; above 1× means beading and striping that isn't really there. Motion correction halves the error and keeps the swaths smooth. At gauges, dropping to every third scan raises one-hour RMSE from 3.8 to 4.2 mm without motion correction, but only from 3.7 to 3.8 mm with it.

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 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 windowsWindowsInside 90% rangeInside middle 50%
Wet (radar or gauge ≥ 0.25 mm)38,19390.0%56.5%
All windows, including dry62,81193.9%73.3%
1-hour windows22,38489.7%57.7%
9–24 hour windows1,81693.0%52.3%
0–50 km from radar4,87589.5%60.5%
150–230 km from radar15,24689.4%49.7%
Windows with radar data gaps45970.4%33.6%
Leave-one-storm-out, 55 storms. Rows other than the second are wet windows only.
Share of gauges inside the 90% range, by storm type, on held-out storms 90% target 80%85%90%95%100% Pulse / monsoon storms Atmospheric rivers Steady (stratiform) rain Supercells Stratiform + embedded Training storms Fast lines, derechos Tropical 91.7% 91.3% 91.1% 90.2% 89.3% 89.2% 88.5% 88.1%
Figure 2. Share of wet held-out gauge windows inside the 90% range, by storm type. Every storm type lands within two points of the target.

6. Limitations

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)RadarStorm typeHoursGauges used
2020-04-29KLOTStratiform2458
2020-08-10KDVNFast MCS / derecho750
2020-09-16KMOBTropical127
2021-03-25KBMXSupercells1442
2021-06-26KVNXFast MCS / derecho11104
2021-07-23KIWADesert monsoon2418
2021-07-25KEMXDesert monsoon1812
2021-08-14KIWADesert monsoon2421
2021-09-01KOKXTropical1263
2021-10-24KDAXAtmospheric river (terrain)2439
2021-11-14KATXAtmospheric river (terrain)2424
2021-12-11KPAHSupercells83
2022-05-12KFSDFast MCS / derecho628
2022-07-23KMLBPulse / monsoon storms431
2022-07-26KLSXTraining storms1235
2022-07-28KJKLTraining storms1232
2022-07-29KESXDesert monsoon510
2022-08-11KESXDesert monsoon240
2022-08-22KFWSTraining storms180
2022-09-28KTBWTropical2434
2022-11-26KTLXStratiform16131
2022-12-15KLWXStratiform2421
2023-01-04KMUXAtmospheric river (terrain)2436
2023-01-22KFFCStratiform1237
2023-02-27KTLXFast MCS / derecho6144
2023-03-03KINDStratiform2422
2023-04-12KAMXTraining storms2118
2023-04-26KTLXStratiform12138
2023-05-11KFTGStratiform2428
2023-06-03KINXPulse / monsoon storms6103
2023-06-29KILXFast MCS / derecho624
2023-07-02KLOTTraining storms1252
2023-07-10KCXXTraining storms2419
2023-08-01KESXDesert monsoon249
2023-08-20KSOXTropical2428
2023-09-01KESXDesert monsoon2413
2023-11-21KLWXStratiform2446
2023-12-10KOKXStratiform2454
2023-12-17KGYXStratiform + embedded storms2420
2023-12-18KDIXStratiform2455
2024-02-04KVTXAtmospheric river (terrain)2429
2024-03-23KOKXStratiform2428
2024-04-27KFDRSupercells988
2024-05-06KTLXSupercells7132
2024-05-16KHGXFast MCS / derecho429
2024-05-21KDMXSupercells653
2024-07-08KHGXTropical1235
2024-08-05KCLXTropical2443
2024-08-11KTLXTraining storms12136
2024-09-26KGSPTropical2470
2024-11-08KINXStratiform + embedded storms16112
2024-12-11KBOXStratiform2431
2025-04-05KPAHTraining storms2450
2025-07-04KEWXTraining storms1640
2025-09-26KIWADesert monsoon2421
The 55 validation storms, April 2020 to September 2025. "Gauges used" counts gauges with a valid whole-storm total (zero for the Las Vegas storm of 11 Aug 2022, whose six-hour radar outage excluded the whole-storm window).