If I were implementing from an API it I would take the average of the national weather station and two other personal stations other than the one being requested. I would change the API to include the actual reading of the station being used, this average of 3 other stations and/or a percent difference from the reading being used.
Rachio could then use a threshold to flag readings as likely erroneous at say 25%. i.e if the current reading is 25% different (higher or lower) than mark it questionable. From rachio’s perspective I would want to control what the threshold is in cause you want to change it to 50% or 100% or whatever based on what you’re seeing in the data, but not have the end user play this this threshold, that might get ugly.
From the end users perspective I would want an option in my rachios settings for the app to;
1)silently ignore erroneous data (no notification, but the rainfall measurement is not used in calculations)
2)notify and ignore erroneous data. (notify you station reported 23 inches of rainfall yesterday we’re ignoring it)
3)notify and ask if measurement should be ignored.
I would probably use 2 or 3.