Renee Cooper
01/30/2024, 1:15 AMThe last row_count value is 6244. The average for this metric is 67110.786.We got less than 10% of the normal amount of data. I have this on the model:
tests:
- elementary.volume_anomalies:
timestamp_column: page_view_time
seasonality: day_of_week
and this at the project level, under vars:
training_period:
period: day
count: 90
seasonality: day_of_week
detection_period:
period: day
count: 2
detection_delay: # <https://docs.elementary-data.com/data-tests/anomaly-detection-configuration/detection-delay>
period: day
count: 1 # we don't want to alert on "today" because it's partial
Any ideas on what I should set to ensure we get alerted? The range of values is upper 60k-lower 70ks every day, so there's not a wild variation on the daily volume normally.Renee Cooper
01/30/2024, 1:25 AMDaniel Pollak
01/31/2024, 12:56 PMDaniel Pollak
01/31/2024, 12:56 PMRenee Cooper
01/31/2024, 9:03 PMRenee Cooper
01/31/2024, 9:06 PMDaniel Pollak
02/01/2024, 10:06 AMRenee Cooper
02/01/2024, 4:07 PMDaniel Pollak
02/01/2024, 4:56 PMAdrian Oesch
04/12/2024, 1:00 PMAdrian Oesch
04/12/2024, 1:10 PMbetween unbounded preceeding and 1 preceding in these windows here?Caterina Andreu
08/08/2025, 3:11 PMJoost Boonzajer Flaes
08/11/2025, 1:03 PMCaterina Andreu
08/11/2025, 2:34 PMmodels:
- name: gold_ess_ingest
data_tests:
- elementary.schema_changes:
severity: warn
- elementary.volume_anomalies:
fail_on_zero: true
config:
elementary:
ignore_small_changes:
spike_failure_percent_threshold: 1
detection_delay:
count: 1
period: day
time_bucket:
count: 1
period: day
timestamp_column: partition_date
where_expression: DATE(partition_date) > DATE_SUB(CURRENT_DATE(), INTERVAL
14 DAY)
version: 2Joost Boonzajer Flaes
08/11/2025, 2:41 PMCaterina Andreu
08/11/2025, 2:48 PMCaterina Andreu
08/11/2025, 2:56 PManomaly_exclude_metrics , but I found that this configuration excludes that date not only from the training period, but the whole detection period as well - the datapoint is removed from the report.Joost Boonzajer Flaes
08/11/2025, 2:58 PMJoost Boonzajer Flaes
08/11/2025, 2:58 PMCaterina Andreu
08/11/2025, 3:13 PMJoost Boonzajer Flaes
08/12/2025, 12:46 PMignore_small_changes . I don't think in this case it is because of the detection period being part of the training period, but I would expect that this was anamolous on 08/02.
Not sure if you are currently hosting the edr report, but if you do, it might be nice to store and retain the last 7 days so we can debug these cases.Caterina Andreu
08/12/2025, 1:00 PMignore_small_changes is set to 1% and the drop was much larger, I’m not sure how it might have influencedJoost Boonzajer Flaes
08/12/2025, 1:26 PMignore_small_changes because I see you only have set the spike threshold (and also it's just 1%)Caterina Andreu
08/13/2025, 3:44 PMJoost Boonzajer Flaes
08/17/2025, 11:09 AMJoost Boonzajer Flaes
08/17/2025, 11:09 AMCaterina Andreu
09/01/2025, 4:11 PM{{ config(materialized="table") }}
with
thresholds as (
select *
from
(
values
('2025-08-14'::date, 10),
('2025-08-15'::date, 12),
('2025-08-16'::date, 12),
('2025-08-17'::date, 13),
('2025-08-18'::date, 10),
('2025-08-19'::date, 12),
('2025-08-20'::date, 10),
('2025-08-21'::date, 11),
('2025-08-22'::date, 9),
('2025-08-23'::date, 8),
('2025-08-24'::date, 10),
('2025-08-25'::date, 12),
('2025-08-26'::date, 12),
('2025-08-27'::date, 12),
('2025-08-28'::date, 12),
('2025-08-29'::date, 12),
('2025-08-30'::date, 20),
('2025-08-31'::date, 12),
('2025-09-01'::date, 10)
) as t(partition_date, max_value)
)
select t.partition_date, g.value
from thresholds t
cross join lateral generate_series(1, t.max_value) as g(value)
and the schema:
version: 2
models:
- name: test_model
columns:
- name: partition_date
data_type: DATE
data_tests:
- elementary.column_anomalies:
anomaly_direction: spike
column_anomalies:
- null_percent
- name: value
data_type: FLOAT64
data_tests:
- elementary.volume_anomalies:
fail_on_zero: true
config:
elementary:
time_bucket:
count: 1
period: day
detection_delay:
count: 1
period: day
timestamp_column: partition_date
Even though the row_count is 20 and almost doubles the avg, it's not considered anomalous, because the value 20 is included in the expected range calculation: