Ninad Thorat
08/21/2025, 6:20 AMkapa.ai
08/21/2025, 6:20 AMkapa.ai
08/21/2025, 6:20 AMNinad Thorat
08/21/2025, 6:24 AMkapa.ai
08/21/2025, 6:24 AMkapa.ai
08/21/2025, 6:24 AMNinad Thorat
08/21/2025, 7:51 AMkapa.ai
08/21/2025, 7:52 AMkapa.ai
08/21/2025, 7:52 AMdata_monitoring_metrics table. This table accumulates metric values (such as row count, freshness, etc.) over time for each anomaly detection test. The anomaly detection logic uses these historical values to compute the expected range for the monitored metric, typically using statistical measures like average and standard deviation over a training period [Dbt package models - Anomaly detection](https://docs.elementary-data.com/dbt/package-models#anomaly-detection). To determine if the current test result is an anomaly, Elementary uses the metrics_anomaly_score view. This view runs the anomaly detection logic, comparing the latest metric value to the expected range (derived from data_monitoring_metrics) and calculating the anomaly score. If the score exceeds the configured threshold, the result is flagged as an anomaly [Dbt package models - Anomaly detection](https://docs.elementary-data.com/dbt/package-models#anomaly-detection). In summary: - Expected range calculation: data_monitoring_metrics - Anomaly decision: metrics_anomaly_score view This is also supported by community responses, which confirm that data_monitoring_metrics holds the historical metrics and metrics_anomaly_score provides visibility into anomaly detection results [Slack discussion](https://slack.com/archives/C02CTC89LAX/p1666376716952649).