Data quality is still the top problem for analytics teams: 56% of respondents to dbt Labs’ State of Analytics Engineering 2025 report named it one. In order to improve data management, data managers must track and monitor key performance indicators (KPIs) and optimize them over time.
Data management KPIs fall into four groups: quality, reliability, cost, and delivery and adoption. These 15 KPIs cover 5 quality, 6 reliability, 2 cost, and 2 delivery and adoption metrics, each with a formula, target, improvement lever and measuring tool.
What Are Data Management KPIs?
Data management KPIs measure the overall effectiveness and efficiency of data operations within an organization. All companies, from startups to large enterprises, should track these metrics.
Data managers rely on KPIs just like sales and marketing leaders use analytics to track daily performance within their departments. In other words, data management KPIs provide critical insights into how data is moving throughout the organization as well as its overall quality and usefulness.
Many data leaders are now using real-time dashboards to track data management KPIs and keep a pulse on what’s happening across the organization. Some compute the numbers themselves from dbt test results, warehouse system views and orchestrator run logs, while others use data observability tools that watch freshness, volume and schema changes automatically.
Data quality metrics score the data itself, including whether required fields are populated. Data management KPIs also measure the operation around it: whether pipelines deliver reliable data, what the warehouse costs, and how quickly reports reach your business.
Why Track Data Management KPIs?
Data management KPIs are important because businesses are increasingly relying on analytics to guide daily decisions and enhance workflows. But as companies look to become more data driven, they also require access to efficient and reliable data flows. Unreliable, inconsistent, and inaccurate data can lead to costly production errors that threaten operational stability and harm business operations. In its 2020 Magic Quadrant for Data Quality Solutions, Gartner put the average annual cost of poor data quality at $12.9 million per organization, an estimate drawn from its reference customers.
To illustrate, imagine a sales team that has inaccurate information about previous purchase histories or brand interactions. This could potentially disrupt their strategy and make it harder to close deals on the most favorable terms.
With this in mind, tracking data management KPIs can ensure that all teams throughout the organization have access to high-quality analytics. Plus, when team members trust their data, it increases the likelihood they will rely on it instead of making decisions based on gut instinct.
Remember that having trust in your data is one of the fundamental building blocks to becoming a data-driven organization. For this reason, tracking data management KPIs can enhance your data’s value and help the organization embrace automation.
Agree on each KPI’s formula and target before reporting it. Use the following table to select metrics whose thresholds reflect the decisions your stakeholders need to make, rather than treating every example as a universal goal.
Data Management KPIs at a Glance
Use these data management metrics to select checks. “Baseline” means no published benchmark: measure for 30 days, then set a target. Survey figures are vendor-commissioned context, not goals; see the reliability section.
| KPI | Group | Formula | Target |
|---|---|---|---|
| Data consistency | Quality | Records that match across systems / records compared x 100 | Baseline |
| Data uniqueness | Quality | Duplicate records / total records x 100 | 0 duplicate keys; baseline for entities |
| Data completeness | Quality | Populated records / total records x 100, per required field | Soda example: <5% missing; GX example: 99.9% |
| Data accuracy | Quality | Correct values / values checked against a reference x 100 | Vendor suggestion: 98% |
| Data validity | Quality | Values matching format, type and range / total values x 100 | Baseline |
| Freshness SLO attainment | Reliability | Periods with data age under the threshold / total periods x 100 | Example: 15 minutes; 99% attainment |
| Pipeline run success rate | Reliability | Successful runs / total runs x 100, rolling 30 days | Baseline |
| Data incident rate | Reliability | Incidents per month / (tables / 1,000) | Survey: 67 incidents/month; 642 tables |
| Time to detect (TTD) | Reliability | Sum of (detection time minus start time) / incidents | Survey: 68% take 4+ hours |
| Time to resolve (TTR) | Reliability | Sum of (resolution time minus detection time) / incidents | Survey: 15 hours |
| Data downtime | Reliability | Incidents x (TTD + TTR) | Baseline |
| Storage cost per TB-month | Cost | Storage bill / average TB stored | Baseline |
| Compute cost per query | Cost | Credits, bytes scanned or RPU-hours x unit price | Baseline |
| Report production cycle time | Delivery and adoption | Median of (delivery date minus request date) | Baseline |
| Data asset adoption rate | Delivery and adoption | Monthly active users / eligible users x 100 | Baseline |
Data Quality KPIs
A populated field can still contain the wrong value, so completeness alone cannot establish quality. These five data quality KPIs map to five of DAMA’s six dimensions. The remaining dimension, timeliness, appears as freshness in the reliability group below.
Data consistency
Data consistency lets you see how uniform data is within a specific database.
Formula: records that match across systems or rules / records compared x 100.
Target: no published benchmark; baseline for 30 days, then set a target.
Ideally, you should strive to eliminate inconsistent data from your repositories. Having even a few inconsistencies can open the door to major complications. For example, imagine using a data set that mixes imperial and metric measurements. This type of error could lead to incorrect calculations and costly repercussions.
Strong data starts at the input stage. Setting up digital forms and automating data collection can help you eliminate input errors and prevent rework down the line.
Measure consistency with:
- dbt relationships and accepted_values tests for declared rules.
- Soda reference checks for agreement with reference data.
- A Datafold data diff comparing a source table with its warehouse copy row by row.
Data uniqueness
The uniqueness KPI measures duplicate and unique records within a source system.
Formula: duplicate records / total records x 100.
This formula reports duplicate rate: lower values mean greater uniqueness.
Target: zero duplicates on primary keys; for entities such as leads or customers, no published benchmark; baseline for 30 days, then set a target.
Duplicate data is harmful because it leads to wasteful practices and higher storage costs.
Unfortunately, duplication is common in sales and marketing environments, where teams often receive databases with multiple instances of the same lead or customer. Finding and eliminating duplicates is critical for maintaining a lean and efficient data management strategy.
To improve data uniqueness, test for duplicate records frequently and remove unnecessary items from your databases. Practicing consistent data hygiene makes it easier to stay on top of duplication and prevents it from impacting operations.
Automate the scan: a dbt unique test fails on any duplicate key, and Soda’s duplicate_percent check alerts when duplicates in a column cross the threshold you set.
Data completeness
Data completeness measures how many accounts have missing or incomplete data.
Formula: populated records / total records x 100, per required field.
Target: Soda’s documentation uses missing_percent under 5% as an example threshold. Great Expectations’ not-null example uses mostly=0.999, equivalent to 99.9% populated. These are documentation examples, not universal targets for critical fields; set the threshold per field.
For example, a customer database may contain missing names, email addresses, and phone numbers. These types of errors can make it difficult or impossible to process transactions, leading to billing and processing delays.
Incomplete data often stems from faulty input in spreadsheets and online forms. Setting clear rules with mandatory fields can help reduce incomplete data, saving time and reducing headaches.
Measure required fields with:
- A dbt not_null test, which fails on any null in a column.
- Soda’s missing_percent check, which reports the missing share.
- Great Expectations, which applies a mostly threshold.
Data accuracy
Data accuracy measures whether values match real-world truth or a trusted reference, such as the system of record.
Formula: correct values / values checked against a reference x 100.
Target: Decube, a data observability vendor, suggests 98% correct values as a working target; set stricter targets for finance and billing fields.
Reconcile warehouse totals against the source of record on a schedule. For example, compare daily revenue in the warehouse with the billing system, then investigate differences before publishing reports. Validate values at entry to prevent incorrect data from loading.
Measure with dbt singular tests that join to a reference table, or Soda reconciliation checks.
Data validity
Data validity measures whether values conform to the expected format, type and range, such as an email that parses or a non-negative price.
Formula: values that match format, type and range rules / total values x 100.
Target: no published benchmark; baseline for 30 days, then set a target.
Put schema contracts at ingestion so an unexpected type change fails the load. Add accepted_values checks to enum columns and regex checks to identifiers; passing these rules establishes validity, not whether a value matches reality.
Measure validity with:
- dbt accepted_values tests.
- Great Expectations’ expect_column_values_to_match_regex.
- Soda’s invalid_percent check.
Reliability KPIs: Freshness, Pipelines and Incidents
A managed warehouse’s uptime SLA does not establish whether its data is fresh or correct. These six KPIs measure the failures your team owns. The survey references below come from Monte Carlo’s vendor-commissioned Wakefield Research survey of 200 data professionals in March 2023, which reported an average of 67 data incidents per month.
Freshness SLO attainment
Freshness SLO attainment is the share of time a table’s data is younger than its agreed freshness threshold.
Formula: periods with data age under the threshold / total periods x 100.
Target: set it per use case. An example SLO is data no more than 15 minutes old 99% of the time, with a 1% error budget. A daily revenue dashboard can use dbt thresholds of warn after 12 hours and error after 24 hours.
Schedule loads around source updates and alert on delays. Run freshness checks twice as often as the shortest SLA.
dbt source freshness compares loaded_at_field with warn_after and error_after; on Snowflake, it falls back to LAST_ALTERED without that field. Soda supports checks such as freshness under 1d.
Pipeline run success rate
Pipeline run success rate measures the share of scheduled pipeline runs that finish successfully.
Formula: successful runs / total runs x 100, over a rolling 30 days.
Target: no published benchmark; baseline for 30 days, then set a target.
Retry transient failures and make tasks idempotent so reruns do not duplicate rows. Alert on upstream schema changes before they break a load.
Apache Airflow exposes dagrun.duration.success and dagrun.duration.failed metrics, but no success-rate gauge. Compute the rate from run states; use dbt’s run_results.json for dbt execution outcomes.
Data incident rate
Data incident rate counts incidents in a period, normalized by the size of your data estate.
Formula: incidents per month / (tables / 1,000).
Target: the 2023 survey averaged 67 incidents a month for respondents managing 642 tables on average. Treat these raw averages as context, not a normalized goal.
Test more kinds of failure. In Monte Carlo’s 2022 survey, teams running at least three types of data tests weekly reported 46 incidents a month versus 61 for the rest; this association does not establish causation.
Use Elementary dbt test failures to build incident history, or count tickets in your incident tracker.
Time to detect
Time to detect is the average time from an incident’s start until your data team knows about it.
Formula: sum of (detection time minus start time) / number of incidents.
Target: in the 2023 survey, 68% took 4 hours or more to detect incidents, and 74% said stakeholders found issues first all or most of the time. Track the share your team catches before consumers do.
Automate monitoring for:
- Freshness delays.
- Unexpected volume changes.
- Schema changes.
Route alerts to the table owner rather than relying on a shared channel. Metaplane timestamps alerts; record incident start times separately to calculate detection delay.
Time to resolve
Time to resolve is the data version of mean time to repair: the average time from detecting an incident to having correct data back in front of its consumers.
Formula: sum of (resolution time minus detection time) / number of incidents.
Target: the 2023 survey average was 15 hours per incident, a reference point rather than a goal.
Use lineage to trace root causes. Assign an owner per table and maintain runbooks for common failures so responders know which repair to attempt.
Lineage graphs in DataHub or dbt docs show upstream dependencies and affected dashboards; calculate elapsed time from incident timestamps.
Data downtime
Data downtime is the total hours that data is wrong, missing or late.
Formula: incidents x (time to detect + time to resolve). This convention was popularized by Monte Carlo; it is not an industry standard.
Use average detection and resolution times across the counted incidents. For example, 8 hours to detect plus 4 hours to fix equals 12 hours per incident. At 5 incidents a month, that is 60 hours of downtime.
Target: no published benchmark; baseline for 30 days, then set a target.
Reduce incident count, detection delay or resolution time. Report downtime alongside incident count to explain changes.
Track downtime with Monte Carlo or calculate it from a spreadsheet containing incident start, detection and resolution timestamps.
Cost KPIs
Separate storage from compute costs so retained data does not obscure processing spend. Use warehouse system views and billing records; list prices are calculation inputs, not performance targets.
Storage cost per TB-month
Storage cost per TB-month is monthly storage spend divided by average volume stored.
Formula: storage bill for the month / average TB stored.
Target: no published benchmark; baseline for 30 days, then set a target.
| Storage input | List price |
|---|---|
| Amazon Redshift managed storage | $0.024 per GB-month in US East |
| BigQuery logical storage | Active: $0.000031507 per GiB-hour, about $0.023 per GiB-month. Long-term: about $0.016 per GiB-month. First 10 GiB free. |
| Snowflake storage | About $23 per TB-month |
Reduce retained storage:
- Drop unused tables after checking retention requirements.
- Shorten staging-table time travel retention.
- Let cold BigQuery tables age into long-term storage.
Measure through Snowflake ACCOUNT_USAGE storage views, BigQuery INFORMATION_SCHEMA.TABLE_STORAGE or AWS billing for Redshift.
Compute cost per query
Compute cost attributes processing spend to a query, pipeline or warehouse.
Formula:
- Snowflake credits attributed x price per credit.
- BigQuery bytes scanned, converted to TiB, x on-demand price per TiB.
- Redshift Serverless RPU-hours x $0.375.
Snowflake pricing starts from $2 per credit on Standard. BigQuery bills on-demand queries per TiB scanned, with the first 1 TiB per month free.
Target: no published benchmark; baseline for 30 days, then set a target.
Right-size warehouses and enable auto-suspend. Partition and cluster large tables; replace SELECT * in scheduled models.
Measure with:
- Snowflake QUERY_ATTRIBUTION_HISTORY, excluding idle time and potentially lagging by hours; reconcile against WAREHOUSE_METERING_HISTORY.
- BigQuery INFORMATION_SCHEMA.JOBS.
- Redshift system tables.
Delivery and Adoption KPIs
Track report delivery separately from BI usage logs: closing a request does not establish that its intended users opened the report.
Report production cycle time
Report production cycle time refers to the average amount of time it takes to fulfill a management request for a new report. This is typically a multistep process that requires receiving the request, gathering information, and visualizing the insights.
Formula: median of (delivery date minus request date) across report requests closed in the period, taken from ticket timestamps. Use the median as your reporting statistic.
Target: no published benchmark; baseline for 30 days, then set a target.
Business leaders today expect speedy access to reports and insights.
Despite this, businesses often struggle with reporting delays because they can’t connect their reporting engines to disparate data sources. It’s not that they lack the information. It’s that they don’t have the ability to access it. If your business is struggling with reporting delays, fix access first: load every source into the warehouse on a schedule, then build reusable models that new reports can start from.
Pull request and delivery dates from Jira or Linear. dbt exposures record dashboard dependencies, showing where model reuse could shorten the next request.
Data asset adoption rate
Data asset adoption rate measures the share of eligible users, or published dashboards and datasets, that are active.
Formula: monthly active users / eligible users x 100; for assets, dashboards viewed in the last 90 days / total dashboards x 100.
Target: no published benchmark; baseline for 30 days, then set a target.
Improve adoption through:
- Retiring dashboards with no views in 90 days after checking ongoing needs.
- Certifying reusable datasets.
- Training each department on its essential reports.
A quarterly trust survey scored from 1 to 5 can assess belief in the numbers.
Measure with BI usage logs, such as Metabase usage analytics (a paid-plan feature) or the Power BI admin activity log.
Which Five KPIs to Start With
A small analytics team should start with five KPIs available from tools it already runs, rather than buying monitoring software first.
- Freshness SLO attainment: Late data is a failure stakeholders notice directly. dbt source freshness supplies the underlying checks for sources with a load timestamp, so start with tables feeding business-critical reports.
- Pipeline run success rate: Your orchestrator already records run outcomes. Calculate the rolling rate from that history before adding another monitoring tool, and use failed runs to prioritize repair work.
- Data completeness on key tables: Add not_null tests to columns finance and sales depend on. Agree with those teams which fields must be populated before a report is usable.
- Data incident rate: Count incidents before expanding your incident dashboard. Those records support later calculations of detection delay and resolution time, which together feed data downtime.
- Compute cost per query: Use warehouse system views to answer finance’s cost questions. Keep attributed query compute separate from total warehouse billing so idle time does not disappear from the discussion.
Measure all five for 30 days before setting targets, then review them monthly with stakeholders who own the affected reports. Add time to detect and time to resolve once incident records include the necessary timestamps.
How to Track Data Management KPIs
Most of these numbers already exist in your team’s tools; collect their outputs in a dashboard with consistent reporting periods.
- dbt tests and source freshness: Feed quality metrics from not_null and unique tests, alongside accepted_values and relationships results. Source freshness results supply the timestamps and threshold outcomes needed to track freshness.
- Soda and Great Expectations checks: Use Soda missing_percent or duplicate_percent checks for completeness and uniqueness; invalid_percent checks measure validity. Great Expectations supports mostly thresholds. Preserve the threshold alongside each result.
- Warehouse system views: Pull costs from Snowflake ACCOUNT_USAGE or BigQuery INFORMATION_SCHEMA.JOBS and storage views. For Redshift, use system tables and billing records. Reconcile attributed compute against billing rather than assuming they match.
- Orchestrator run logs: Calculate pipeline run success rate from Airflow or Dagster run history. Use the same reporting window for successful and total runs.
- Data observability tools: Use incident records to calculate detection and resolution times, then downtime. Monte Carlo and Metaplane, or Bigeye, support observability workflows. Keep incident start and resolution definitions consistent.
- Ticket systems and BI usage logs: Use request and delivery timestamps for report production cycle time. Use dashboard views and eligible-user counts for adoption.
For a side-by-side comparison of catalog, quality and observability tools, see our roundup of the best data management tools.
FAQ
What are data management KPIs?
Data management KPIs measure how well your organization’s data operation works. The 15 metrics here span four groups: data quality, reliability, cost, and delivery and adoption. They connect the condition of your data with pipeline performance, warehouse spending and report use. See “Data Management KPIs at a Glance” for the formulas and target guidance, then select metrics tied to decisions your stakeholders actually make.
What is the difference between data quality metrics and data management KPIs?
Data quality metrics score the data itself; data management KPIs also score the operation around it. Completeness, for example, measures whether required values are populated, while accuracy checks them against a trusted reference. Management KPIs extend that view to pipeline success and incident handling, as well as cost and delivery. Use quality checks to diagnose data defects, not as a substitute for operational monitoring.
How do you measure data quality?
Measure data quality by selecting the dimensions that matter for a table and calculating the percentage of records that satisfy each rule. Run checks on a schedule with dbt tests, Soda or Great Expectations, then compare results against agreed thresholds. Soda’s documented under-5%-missing example is a starting point, not a universal requirement. Set stricter field-specific thresholds where missing values would block billing or other critical decisions.
What is data downtime?
Data downtime is the time data is wrong, missing or late. A common convention, popularized by Monte Carlo rather than established as a formal standard, is incidents x (time to detect + time to resolve). For example, 5 incidents at 12 hours each produce 60 hours a month. Record incident timestamps consistently, and treat this as accumulated incident-hours rather than necessarily distinct hours on the calendar.
Comments 0 Responses