Last updated: July 22, 2025
List of table level timeliness data quality checks
This is a list of timeliness table data quality checks supported by DQOps and a brief description of what data quality issued they detect.
table-level timeliness checks
Assesses the freshness and staleness of data, as well as data ingestion delay and reload lag for partitioned data.
data freshness
A table-level check that calculates the time difference between the most recent row in the table and the current time. The timestamp column that is used for comparison is defined as the timestamp_columns.event_timestamp_column on the table configuration. This check is also known as "Data Freshness".
Data quality check name | Friendly name | Check type | Description | Standard |
---|---|---|---|---|
profile_data_freshness |
Data freshness (Maximum age of the most recent row) | profiling | Calculates the number of days since the most recent event timestamp (freshness) | |
daily_data_freshness |
Data freshness (Maximum age of the most recent row) | monitoring | Daily calculating the number of days since the most recent event timestamp (freshness) | |
monthly_data_freshness |
Data freshness (Maximum age of the most recent row) | monitoring | Monthly monitoring calculating the number of days since the most recent event timestamp (freshness) |
data freshness anomaly
This check calculates the most recent rows value and the current time and detects anomalies in a time series of previous averages. The timestamp column that is used for comparison is defined as the timestamp_columns.event_timestamp_column on the table configuration. It raises a data quality issue when the mean is in the top anomaly_percent percentage of the most outstanding values in the time series. This data quality check uses a 90-day time window and requires a history of at least 30 days.
Data quality check name | Friendly name | Check type | Description | Standard |
---|---|---|---|---|
profile_data_freshness_anomaly |
Data freshness anomaly (Abnormal delay in data delivery) | profiling | Verifies that the number of days since the most recent event timestamp (freshness) changes in a rate within a percentile boundary during the last 90 days. | |
daily_data_freshness_anomaly |
Data freshness anomaly (Abnormal delay in data delivery) | monitoring | Verifies that the number of days since the most recent event timestamp (freshness) changes in a rate within a percentile boundary during the last 90 days. |
data staleness
A table-level check that calculates the time difference between the last timestamp when any data was loaded into a table and the current time. This check can only be use when a data pipeline, ETL process, or trigger in the data warehouse is filling an extra column with the timestamp when the data loading job was loaded. The ingestion column used for comparison is defined as the timestamp_columns.ingestion_timestamp_column on the table configuration. This check is also known as "Data Staleness".
Data quality check name | Friendly name | Check type | Description | Standard |
---|---|---|---|---|
profile_data_staleness |
Data staleness (Maximum number of days since the recent ingestion) | profiling | Calculates the time difference in days between the current date and the most recent data ingestion timestamp (staleness) | |
daily_data_staleness |
Data staleness (Maximum number of days since the recent ingestion) | monitoring | Daily calculating the time difference in days between the current date and the most recent data ingestion timestamp (staleness) | |
monthly_data_staleness |
Data staleness (Maximum number of days since the recent ingestion) | monitoring | Monthly monitoring calculating the time difference in days between the current date and the most recent data ingestion timestamp (staleness) |
data ingestion delay
A table-level check that calculates the time difference between the most recent row in the table and the most recent timestamp when the last row was loaded into the data warehouse or data lake. To identify the most recent row, the check finds the maximum value of the timestamp column that should contain the last modification timestamp from the source. The timestamp when the row was loaded is identified by the most recent (maximum) value a timestamp column that was filled by the data pipeline, for example: "loaded_at", "updated_at", etc. This check requires that the data pipeline is filling an extra column with the timestamp when the data loading job has been executed. The names of both columns used for comparison should be specified in the "timestamp_columns" configuration entry on the table.
Data quality check name | Friendly name | Check type | Description | Standard |
---|---|---|---|---|
profile_data_ingestion_delay |
Data ingestion delay (Maximum number of days between the last record has been created and loaded) | profiling | Calculates the time difference in days between the most recent event timestamp and the most recent ingestion timestamp | |
daily_data_ingestion_delay |
Data ingestion delay (Maximum number of days between the last record has been created and loaded) | monitoring | Daily calculating the time difference in days between the most recent event timestamp and the most recent ingestion timestamp | |
monthly_data_ingestion_delay |
Data ingestion delay (Maximum number of days between the last record has been created and loaded) | monitoring | Monthly monitoring calculating the time difference in days between the most recent event timestamp and the most recent ingestion timestamp | |
daily_partition_data_ingestion_delay |
Data ingestion delay (Maximum number of days between the last record has been created and loaded) | partitioned | Daily partitioned check calculating the time difference in days between the most recent event timestamp and the most recent ingestion timestamp | |
monthly_partition_data_ingestion_delay |
Data ingestion delay (Maximum number of days between the last record has been created and loaded) | partitioned | Monthly partitioned check calculating the time difference in days between the most recent event timestamp and the most recent ingestion timestamp |
reload lag
A table-level check that calculates the maximum difference in days between ingestion timestamp and event timestamp values on any row. This check should be executed only as a partitioned check because this check finds the longest delay between the time that the row was created in the data source and the timestamp when the row was loaded into its daily or monthly partition. This check detects that a daily or monthly partition was reloaded, setting also the most recent timestamps in the created_at, loaded_at, inserted_at or other similar columns filled by the data pipeline or an ETL process during data loading.
Data quality check name | Friendly name | Check type | Description | Standard |
---|---|---|---|---|
daily_partition_reload_lag |
Reload lag (Maximum delay to load the last record for each partition) | partitioned | Daily partitioned check calculating the longest time a row waited to be loaded, it is the maximum difference in days between the ingestion timestamp and the event timestamp column on any row in the monitored partition | |
monthly_partition_reload_lag |
Reload lag (Maximum delay to load the last record for each partition) | partitioned | Monthly partitioned check calculating the longest time a row waited to be loaded, it is the maximum difference in days between the ingestion timestamp and the event timestamp column on any row in the monitored partition |