Skip to content

NAB (Numenta Anomaly Benchmark)

What is this data? 58 short univariate streams collected by Numenta: AWS server metrics, machine temperature, city traffic, ad clicks and tweets. Labels are generous windows around known incidents. Designed for streaming detection with early-detection rewards.

  • Source: https://github.com/numenta/NAB (Lavin & Ahmad, ICMLA 2015)
  • Contents: 58 univariate series (AWS metrics, temperature sensors, ad clicks, …) plus anomaly-window labels
  • License: the NAB code is AGPL-3.0 — never copied (CLAUDE.md §10-2). The data files are free to use; this repository fetches only the data CSVs and the label JSON.
  • Download: tsad-forge download nab (a 5-file lite subset; clone the NAB repo for the full set)
  • Loader: load_nab(rel_path="realAWSCloudwatch/ec2_cpu_utilization_24ae8d.csv")

Known flaws

  • No train split: NAB was designed for streaming evaluation and has no official train/test split. This repository uses the NAB probationary convention (first 15%) as train — which means train may contain anomalies (contamination); this violation of the unsupervised assumption is recorded in the metadata.
  • Window labels: labels are wide windows rather than points, which makes point-level metrics lenient.
  • Wu & Keogh (TKDE 2021) criticize NAB's label quality itself — interpret with care.

Quick EDA (from local data)

Sample test channels with labeled anomalies shaded, plus the event-length distribution. Regenerate with tsad-forge viz after downloading the data.