How to detect anomalies
Upload time-series data, choose its time and value fields, set the scoring options, and the analysis updates automatically. The tool flags unusual existing observations from CSV, TSV, JSON, JSONL, XLSX, or XLS input. It does not forecast, repair, interpolate, or modify the source data.
Use a CSV, TSV, JSON, JSONL, XLSX, or XLS file. Drop it into the upload area or click browse files. Then configure the timestamp, series, duplicate handling, gap threshold, and detection method; the analysis updates automatically.
- Choose the time field in Timestamp column.
- Select one or more series in Value columns (series).
- Set the remaining controls; the analysis updates automatically.
- Review the summary, charts, flagged rows, and exports.
Configure timestamps and series
Use Timestamp column to choose the field that orders the records. In Timestamp display, choose Parse as-is (literal ISO instant), Interpret & display as UTC, or Interpret & display in browser local time. Results are formatted as ISO UTC strings for the first two modes; the local mode uses your browser's local time. Literal mode does not preserve the source text exactly.
Choose the numeric fields under Value columns (series). The tool may auto-detect a numeric column when at least 60% of its present values are numeric. For JSON, provide an array of records; the parser also accepts a nested array. For XLSX or XLS, the first sheet is used.
Use Duplicate timestamps to Keep first occurrence, Keep last occurrence, Average duplicate values, or Flag every duplicate as an anomaly.
Set gap handling and detection method
Set Flag gaps larger than (x typical interval) to define the gap threshold. The tool counts qualifying gaps in the summary; it does not show each gap as a separate result. A flagged point immediately after a qualifying gap may include a note about that gap.
Choose a Method, set Threshold, and configure Rolling window (prior points). Rolling z-score uses the mean and standard deviation of prior points. Rolling IQR uses the prior window's quartiles and interquartile range.
For Seasonal residual, set Season period (points per cycle) and the displayed Prior cycles to compare setting. The tool compares a point with values at the same phase in those prior cycles, then calculates MAD from those prior values. This method needs at least two periods of data. Every method scores against prior observations only.
Review flagged results and exports
The summary includes Gaps detected. Charts show each series with flagged points highlighted. The results table includes the timestamp, series, observed value, expected value, score, threshold, and reason. It shows up to 500 flagged points; when more exist, a truncation note tells you to export the complete set. Click Export CSV or Export JSON for all flagged results. The exported data also includes a Method field, which is not a visible table column.
Points and series that are not scored
Some data is excluded from scoring. Invalid timestamps and missing, blank, or non-numeric values are left out. Points without enough prior history are skipped, as are constant baseline windows with zero spread. A series with too few usable points may be skipped entirely. These cases may appear under Skipped (not scored).
Privacy & Security
Parsing and calculations run in the browser. The page does not specify a usage limit.
Frequently Asked Questions
Does this tool forecast future values or fix anomalies?
No. It only scores existing observations against a baseline built from prior history and reports the ones that look unusual. It never forecasts future points, never fills gaps, and never repairs, interpolates, or otherwise modifies your source data.
Which detection method should I use?
Rolling z-score uses the mean and standard deviation of prior points. Rolling IQR uses prior-window quartiles. Seasonal residual compares the same phase in prior cycles and calculates MAD from those prior values; it needs at least two periods of data and the configured Prior cycles to compare setting.
How are duplicate and missing timestamps handled?
You choose how duplicate timestamps are resolved - keep the first, keep the last, average the values, or flag every duplicate as an anomaly outright. Gaps are never filled or interpolated; the tool counts qualifying gaps and can note when a flagged point immediately follows one.
How is this different from the Outlier Detector?
The Outlier Detector scores unordered rows against a dataset-wide or grouped statistic and has no concept of time. This tool requires a timestamp column, processes each series in time order, builds rolling or seasonal baselines from prior history, and explicitly handles timezones, duplicate timestamps, and gaps.