Excessive rainfall adjustment

I can confirm this — we log every obs_st WebSocket observation to a database across a collection of Tempest devices, and can see the exact moment each correction happens at the minute level.

What we’re seeing

On February 19th, one of our stations recorded 60 minutes of rain. Summing the per-minute precipitation_amount_mm (index 12) values give 12.72 mm (0.50 in) for the day. But the final precipitation_amount_local_day_mm (index 18) was 7.88 mm (0.31 in) — matching the WeatherFlow app. That’s a 61% overcount from per-minute sums.

The daily accumulator was adjusted downward five separate times during the day, both during active rain and during dry periods afterward. All timestamps UTC:

During active rain:

Time (UTC) precipitation_amount_mm precipitation_amount_local_day_mm
17:05:00 0.503085 3.489566
17:06:00 0.493703 2.896266 (−0.59 mm)
17:07:00 0.577019 3.473285

At 17:06, the station reported 0.49 mm of rain that minute — local_day should have gone UP to ~3.98. Instead, it dropped to 2.90.

Time (UTC) precipitation_amount_mm precipitation_amount_local_day_mm
17:20:00 0.593057 6.876617
17:21:00 0.668407 5.065174 (−1.81 mm)
17:22:00 0.785958 5.851132

During dry periods:

Time (UTC) precipitation_amount_mm precipitation_amount_local_day_mm
19:00:00 0 10.599377
19:01:00 0 7.113013 (−3.49 mm)
19:02:00 0 7.113013

The largest adjustment — 3.49 mm removed from the daily total while no rain was falling.

Two smaller corrections followed at 21:21 UTC (−0.07 mm) and 22:24 UTC (−0.10 mm).

It’s not station-specific

We checked all 15 Tempest devices in our collection that have recorded rain over the past 90 days:

Metric Value
Devices with rain data 15
Devices showing mid-day local_day_mm drops 15 (100%)
Total downward adjustments (90 days) 757
Largest single drop −41.21 mm
Average drop −2.10 mm

Every device that has recorded rain shows this pattern. The corrections happen on every rainy day, multiple times per event.

The nearcast/analysis fields are redundant now

On all 757 drops across all 15 devices, precipitation_analysis_type (index 21) is always 0, and the nearcast fields (indices 19, 20) are identical copies of the base fields (indices 12, 18). This lines up with what was discussed in the Changes to precipitation API thread — all four precipitation fields now return the same RainCheck-corrected data. The analysis type flag and nearcast fields appear to be vestigial.

For anyone building integrations

The per-minute precipitation_amount_mm is corrected at the time of emission but never retroactively adjusted when RainCheck later revises its estimate downward. The running daily total precipitation_amount_local_day_mm is adjusted in real-time. So:

  • Don’t sum precipitation_amount_mm for daily totals — it will overcount.
  • Use precipitation_amount_local_day_mm — It’s the authoritative value and matches the WeatherFlow app.
  • Raw, uncorrected data is only available via UDP from the local hub.