🌱 Pomona Sensor Data Checker

Upload a sensor log from a greenhouse, grow tent or hydroponic system and see which readings you shouldn't trust: missing, impossible, broken, stuck, drifting or badly timed.

🔒 Runs entirely in your browser. Your file is never uploaded.

1. Your data

Drop a .csv file here or .

Or try an example: ·

…or paste CSV text

Which CSV layouts work?

One row per reading time, with columns like time, temperature, humidity, pH, EC, soil_moisture, water_temp (common names and units in brackets are recognised). Optional device_id/zone_id columns split the file into devices.

One row per measurement (Pomona's SD logger and many databases): columns timestamp_utc (or timestamp), measurement, value, and optionally device_id, zone_id, boot_id.

Timestamps need a timezone (…Z or …+04:00); without one a reading can't be placed in time and is flagged. EC is expected in mS/cm; values in µS/cm will show as impossible.

How it works

Every reading is checked with the exact rules Pomona uses before any model or person acts on sensor data (source). This page runs a JavaScript copy that matches the Python rules on 9,242 test cases, including timestamp parsing quirks. Each reading is also compared with the 11 readings before it from the same device, to spot stuck, flat, noisy or drifting sensors.

Only the latest reading of each device is judged "stale" against the check time; older rows in a log are judged at their own time. Rules check that data is trustworthy, not whether conditions are good for your plants.

Why rules and not an AI model? We measured it: fine-tuned small models scored 0.34–0.68 on this job; the rules score 1.00. See the Agri Telemetry Sanity Bench.