Detectors
Detectors analyze loaded series data and produce anomalies. Configure them on each data view Analysis tab (YAML). Validate behavior in Data Preview before enabling production schedules.
How detectors are defined
Detectors live in the data view Analysis tab as a YAML list under detectors:. You can:
- Edit the YAML directly in the editor
- Insert a starter snippet with Add detector (uses catalog defaults, including shared series filters)
- Define the same list inside the full data view YAML (
analysis.detectors) — see Data Views
At least one detector is required to deploy a data view. Multiple detectors on one data view run independently and can cover different aspects (quality, period comparisons, structural breaks, and so on).
YAML shape
detectors:
- type: dod
params:
percentualChange: 50.0
mode: both
maxGapAmount: 5
minValue: 1000
useSpecialDates: false
- type: gap
params:
longerThan: 3
shorterThan: 0
maxGapAmount: 5
minValue: 1000
useSpecialDates: false
| Field | Required | Description |
|---|---|---|
type |
Yes | Detector type key (for example dod, gap, peer). Must match a catalog type. |
params |
No | Detector-specific settings plus optional shared series filters. Omitted keys use runtime/catalog defaults. |
In the full data view document, the same list sits under analysis::
analysis:
fillGapMethod: zero
ignoreLastNDays: 1
scanInLastNDays: 1095
detectors:
- type: mom
params:
percentualChange: 40.0
mode: both
aggregateMode: sum
useSpecialDates: true
Special-date rules (specialDates, recurringRules, specialPeriods) are configured on the Special Dates tab (or under analysis in the full YAML). They apply only when a detector sets useSpecialDates: true. See Special settings.
Where results go
After load + process jobs, anomalies appear on Home and in Filters. Use Data Preview to dry-run a detector on selected series and see skip reasons before production.
Shared series filters
Most detectors accept these optional parameters in params. They decide whether a series is evaluated at all (or whether matching anomalies are suppressed for special dates):
| Parameter | Catalog default | Description |
|---|---|---|
maxGapAmount |
5 |
Skip the series when its gap amount (%) is above this. Use null / omit for no limit. |
minValue |
1000 |
Skip the series when its average value is below this. Use null / omit for no limit. |
maxValue |
omit / null |
Skip the series when its average value is above this. Omit or null = no upper limit. |
useSpecialDates |
false |
When true, suppress anomalies that overlap configured special dates (by impact direction). |
Add detector inserts maxGapAmount, minValue, and useSpecialDates with the catalog defaults above. Tune or remove them per detector as needed.
When a filter skips a series, Data Preview lists the reason (gap too high, average below minValue, or above maxValue).
Shared concepts
| Concept | Where | Description |
|---|---|---|
Direction mode |
Many detectors | Usually above, below, or both (quantile detectors: above / below only). Exact meanings are on each detector page. |
aggregateMode |
Period / target-style detectors | How weekly/monthly/quarterly values are built: sum or average. |
| Detector-specific params | Each type | Thresholds, windows, methods, and so on — documented on the detector page under Settings and Allowed values. |
Each detector page lists Allowed values for enum-like parameters (method, mode, granularity, targetMode, and so on) with meanings aligned to the runtime code.
Baseline detectors
peer, mix, and cardinality maintain shared baseline tables per data view. After changing their settings, use Recalculate baseline tables (ad-hoc) on the data view Management tab (or wait for the next load/process path that rebuilds them).
How it works
Each detector page includes a conceptual illustration plus a short explanation of the detection logic.
Catalog
Data quality & freshness
| Detector | Type | Summary |
|---|---|---|
| Gap | gap |
Missing-data intervals between consecutive dates |
| Bounds | bounds |
Values outside a hard [min, max] range |
| Stale | stale |
Last point older than a freshness SLA |
| Flatline | flatline |
Near-zero or stuck-constant runs |
| Zero Rate | zero_rate |
Elevated (or reduced) share of near-zero days |
Periodic comparisons
| Detector | Type | Summary |
|---|---|---|
| Day over Day | dod |
Today vs yesterday (% change) |
| Day Prior Year | dopy |
Today vs same calendar day last year |
| Week over Week | wow |
Current week vs previous week |
| Week Prior Year | wpy |
Current week vs same week last year |
| Month over Month | mom |
Current month vs previous month |
| Month Prior Year | mpy |
Current month vs same month last year |
| Quarter over Quarter | qoq |
Current quarter vs previous quarter |
Quantile thresholds
| Detector | Type | Summary |
|---|---|---|
| Quantile (daily) | qt |
Daily points vs historical percentile |
| Quantile (weekly) | qtw |
Weekly aggregates vs weekly percentile |
| Quantile (monthly) | qtm |
Monthly aggregates vs monthly percentile |
Adaptive & structural
| Detector | Type | Summary |
|---|---|---|
| Spike | spike |
Sudden isolated spikes or drops |
| Cluster Window | cw |
Level shifts between sliding windows |
| Dynamic Threshold | dt |
Adaptive baseline with optional seasonality |
| Volatility | volatility |
Regime shifts in variability |
| Sustained Shift | sustain |
Multi-day deviations from baseline |
| Seasonal Residual | sr |
Trend + seasonality residual outliers |
| Changepoint | changepoint |
Structural breaks (IID/SSA + preprocessing) |
Business comparisons
| Detector | Type | Summary |
|---|---|---|
| Target / Budget | target |
Actuals vs explicit targets |
| Peer Group | peer |
Series vs peer cohort |
| Mix / Share | mix |
Child share of parent aggregate |
| Cardinality | cardinality |
Unusual distinct counts in a group |