Modern Snowflake pipelines can succeed operationally while silently delivering inaccurate, stale, or incomplete data. Native Data Metric Functions automate checks for freshness, nulls, duplicates, and accepted values, but effective data quality also requires ownership, alert routing, lineage, governance, and remediation workflows. Combining Snowflake monitoring with observability and governance practices helps organizations build reliable analytics, compliant reporting, and trustworthy AI-driven decision-making.
Your Snowflake pipeline runs green. The dashboard loads on time. The numbers look wrong.
A 2025 IBM Institute for Business Value report found that 43% of COOs now rank data quality as their top data priority, and over a quarter of organizations estimate losses exceeding $5 million annually due to poor data quality, with 7% reporting losses of $25 million or more.
Most of that damage happens quietly, long after the pipeline finishes. A table can refresh on schedule and still carry null customer IDs, duplicate transaction records, stale dimensions, or schema changes that silently break downstream reports.
That's the real challenge with Snowflake data quality. A successful pipeline run no longer means the data is usable.
Snowflake addresses this through Data Metric Functions (DMFs), native, SQL-based checks that measure nulls, duplicates, freshness, row counts, and accepted values directly inside Snowflake. More recently, Snowflake introduced Cortex Data Quality to suggest checks using metadata and AI, reducing the manual effort of getting started.
This guide covers how Snowflake data quality monitoring works, how to implement DMFs, when third-party tooling adds value, and how to connect checks with ownership, everything you need to build or mature a quality pipeline inside Snowflake.
Snowflake data quality is the process of profiling, validating, monitoring, and governing data inside Snowflake so teams can trust it for reporting, analytics, AI, and compliance.
Snowflake makes it easier to scale and share data across teams, but without strong quality controls, that scale can spread poor-quality data faster. A bad customer table doesn't stay isolated. It can affect executive reporting, segmentation models, compliance datasets, and AI features simultaneously.
At its core, data quality in Snowflake is about validating whether production data remains usable for the downstream business and AI workflows that depend on it, not just whether the pipeline ran successfully.
In practice, data quality in Snowflake comes down to seven dimensions:
|
Dimension |
What it means in Snowflake |
|
Completeness |
No null customer IDs or missing required fields |
|
Freshness |
Revenue table updated by expected time each day |
|
Uniqueness |
No duplicate transaction IDs in a payments table |
|
Validity |
The status column contains only approved values |
|
Consistency |
The same metric is defined the same way across tables |
|
Accuracy |
Data reflects the actual source system correctly |
|
Integrity |
Schema changes don't silently break downstream dashboards |
The goal isn't to check every column immediately; it's to define what "trusted" means for your most important tables and monitor those expectations consistently.
Snowflake data quality monitoring works through Data Metric Functions (DMFs): reusable, SQL-native functions that measure the quality of tables and columns directly inside Snowflake and store results for review, alerting, and governance workflows.
DMFs are functions you attach to a Snowflake table, view, or column to measure a specific quality attribute. Once attached, they run on a defined schedule and log results automatically, replacing ad hoc SQL checks with a consistent, repeatable monitoring layer.
|
Did you know: Bayview, a Florida-based financial services company, manages data arriving from multiple vendors, sources, and formats inside Snowflake, and for a long time, quality issues only surfaced after a client inquiry, by which point the damage was already done. After implementing OvalEdge alongside Snowflake, Bayview put automated monitoring and scheduling in place that could identify and resolve data errors in minutes. OvalEdge's automated ticket raising and routing meant the right people were alerted to the right issues immediately, a critical capability for a regulated financial services business where data quality directly affects compliance. |
Snowflake provides two types of DMFs depending on what you need to validate:
|
DMF type |
Best for |
Example |
|
System DMFs |
Standard checks |
Null count, duplicate count, freshness, row count |
|
Custom DMFs |
Business rules |
Invalid email format, invalid status values, late-arriving dimensions |
System DMFs cover the most common quality checks out of the box. Custom DMFs are useful when validation depends on business logic that Snowflake can't anticipate.
Snowflake's built-in system DMFs cover the quality attributes most teams need to monitor first:
NULL_COUNT: counts null values in a column
BLANK_COUNT: counts empty string values
DUPLICATE_COUNT: identifies duplicate values or combinations across columns
UNIQUE_COUNT: counts distinct values in a column
ROW_COUNT: measures total rows in a table
FRESHNESS: returns the time elapsed since the table was last modified
ACCEPTED_VALUES: flags values outside an approved list
DMF results are stored inside Snowflake and designed to feed into broader monitoring and governance workflows, queryable directly, surfaced in Snowsight, connected to dashboards, fed into alerting workflows, and used as audit evidence for compliance reviews. Snowflake also supports AI-suggested checks through Cortex Data Quality, though ownership, scheduling, and remediation still need engineering input.
The key is treating results as operational signals, not just metrics. A failed freshness check without context or an assigned owner doesn't help anyone. Results need to trigger the right person, with the right severity, and a clear path to resolution.
Adding checks everywhere creates noise without improving trust. Before writing a single DMF, decide which tables matter most, what quality means for each one, where checks should run, and who owns failures.
Prioritize tables where a failure creates immediate business impact: revenue reporting, customer analytics, executive dashboards, compliance reports, AI feature tables, and operational reporting assets. Everything else can wait until ownership and workflows are stable.
|
Data SLA |
Validation Rule |
|
Freshness SLA |
Table updated by 8 AM daily |
|
Completeness SLA |
Customer ID null count equals zero |
|
Uniqueness SLA |
No duplicate transaction IDs |
|
Validity SLA |
Status values match the approved list |
|
Volume SLA |
Row count stays within the expected range |
SLAs make it easier to prioritize incidents. A missed freshness SLA on a revenue table is a critical failure. A completeness warning on an optional field is not.
Snowflake DMFs — Best for ongoing monitoring of tables and columns in production, covering nulls, duplicates, freshness, row counts, and accepted values
dbt tests — Best for checks that should run at transformation time, before data reaches production tables
Great Expectations / Soda — Best for rule-based validation during development or CI/CD pipelines
Observability tools — Best when you need anomaly detection, schema-change monitoring, or cross-platform pipeline visibility
A layered approach, matched to where failures actually occur, works better than consolidating everything into one tool.
According to a 2024 Gartner prediction, 80% of data and analytics governance initiatives will fail by 2027, and unclear ownership is cited as a primary reason. Before any rule goes live, define the owner, severity level, threshold, and remediation path. Without this, even a well-designed pipeline produces alerts that get ignored.
A Snowflake data quality framework gives teams a repeatable way to define, run, monitor, and improve checks, moving quality from a one-time cleanup task to a sustainable operational layer.
Profiling before building checks is what separates realistic rules from arbitrary ones. Before attaching a single DMF, review the actual state of your data: null rates, duplicate values, row counts, freshness patterns, distinct values, and schema structure.
This matters more than most teams expect. A customer phone number field may look incomplete at first glance, but the business may not require it for every customer segment. A consent flag, on the other hand, may need near-zero null tolerance because it directly affects compliance and outreach eligibility. Without profiling, you risk building thresholds that either fire constantly or miss real issues entirely.
Start with your highest-priority tables and document what you find. Profiling output becomes the baseline for every rule you define in the next step.
Not all quality rules come from the same place, and they shouldn't be managed the same way. Separating technical rules from business rules makes it easier to assign ownership, route failures correctly, and avoid misrouted alerts.
|
Rule type |
Example |
|
Technical rule |
Customer ID should not be null |
|
Technical rule |
The orders table should refresh daily |
|
Business rule |
Closed orders cannot have a pending payment status |
|
Business rule |
An active customer must have the consent flag set to true |
Technical rules are owned by data and analytics engineers. They govern whether data is structurally sound and pipeline behavior is on track. Business rules are owned by data stewards or domain leads. They govern whether data makes sense in the context of how the business actually operates.
This separation also prevents a common failure mode: a business-rule violation getting routed to a data engineer who has no context on why the rule exists or what the remediation path should be.
Once rules are defined, the next decision is where each check should run. There is no single right answer; the best approach is usually layered.
Use system DMFs for standard Snowflake-native checks: null counts, duplicate counts, row counts, freshness, blank counts, unique counts, and accepted values. These cover the majority of production monitoring needs for most tables.
Use custom DMFs when validation depends on business logic that system DMFs can't handle. For example, checking that every record with a "closed" order status also has a non-null payment completion timestamp requires a user-defined function that encodes that relationship.
Use external tools when checks need to happen at a different layer:
dbt tests for transformation-time validation before data reaches production
Great Expectations or Soda for CI/CD pipeline validation during development and deployment
Monte Carlo or Anomalo for anomaly detection, schema-change monitoring, and cross-platform observability
OvalEdge for connecting checks with lineage, ownership, glossary context, and governance workflows
The practical mistake most teams make is trying to consolidate everything into one layer. DMFs catch production issues. dbt tests catch transformation issues. Observability tools catch what both miss. Each layer serves a different moment in the data lifecycle.
Scheduling is where many implementations quietly break down. Snowflake allows DMF schedules through the DATA_METRIC_SCHEDULE parameter, with a default interval of one hour. Schedules can also use minute intervals or cron expressions for more precise timing.
The rule is straightforward: checks should run after data is expected to be ready, not before. If your ingestion pipeline completes at 7:30 AM and your freshness DMF runs at 7:00 AM, it will fail every day for the wrong reason, eroding trust in monitoring and creating alert fatigue before the system has a chance to prove its value.
Align every check schedule to the pipeline it monitors. A table that refreshes daily needs a daily freshness check timed after the load window closes. A high-frequency transaction table may need checks on shorter intervals. Avoid applying a generic schedule across all tables; it rarely reflects how any individual pipeline actually behaves.
Running checks without a clear way to review results is the equivalent of setting up smoke detectors with no one in the building. DMF results need to be visible, contextual, and actionable.
At a minimum, monitoring should surface:
Rule status — passed, failed, or warning
Metric value — the actual measured result
Threshold — what value defines a failure
Owner — who is responsible for this check
Severity — how urgent a response is needed
Trend — whether the issue is new, recurring, or improving
Snowsight supports native review of DMF results without additional tooling. Custom dashboards can go further, giving data teams a view across all critical tables, helping governance teams identify which domains need stronger ownership, and surfacing whether recurring failures point to a deeper upstream problem rather than a one-time anomaly.
A failed check that sits in a dashboard without triggering action is not data quality monitoring, it's data quality theater. Every failure needs a defined routing path based on the type of rule that failed.
Technical failures — pipeline freshness, row count drops, schema changes, route to data engineers or analytics engineers
Business-rule failures — invalid status values, consent flag violations, referential integrity issues, route to data stewards or domain owners
Compliance-related failures — anything touching regulated data, route to data governance leads with appropriate escalation paths.
Severity determines urgency. A freshness failure on a regulatory reporting table is a critical incident. A completeness warning on a low-priority reference table is a scheduled follow-up. Treating every alert the same is one of the fastest ways to train your team to ignore the monitoring system entirely.
The final step is what separates teams that maintain quality from teams that chase it. Lineage and incident history together turn reactive monitoring into prevention.
Lineage shows which dashboards, reports, semantic models, or AI workloads depend on a given table. When a DMF fails, lineage answers the question that matters most: what else is affected? This makes triage faster, communication to stakeholders more accurate, and remediation more focused.
Incident history shows which rules fail repeatedly. If the same duplicate transaction issue surfaces every month, the fix doesn't belong in an alert; it belongs upstream in the pipeline that creates the duplicates. Recurring failures are signals that a process needs to change, not just a check that needs to be reset.
Together, lineage and incident history give teams the context to make checks smarter over time, refining thresholds, retiring rules that no longer reflect reality, and building a quality layer that improves with every incident rather than just accumulating more of them.
Snowflake is not a complete governance or observability platform by itself. Most enterprise teams still require additional tooling for lineage, stewardship, incident workflows, governance orchestration, and cross-platform observability.
Use native Snowflake DMFs when you need SQL-native checks directly on Snowflake tables and columns, nulls, duplicates, freshness, row counts, and accepted values.
Use data testing tools when validation needs to happen during development, deployment, or CI/CD before data reaches production. Great Expectations and Soda fit this layer well.
Use data observability tools when you need anomaly detection, schema-change monitoring, and incident workflows. In a 2025 Press Release, Gartner predicts that through 2026, organizations will abandon 60% of AI projects unsupported by AI-ready data, and data observability is one of the practices explicitly called out as essential to achieving that readiness. Rule-based checks inside Snowflake alone are not sufficient at enterprise scale.
Use data governance or catalog tools when you need ownership, lineage, glossary context, stewardship workflows, and trusted data discovery connected to your quality checks. OvalEdge and Atlan fit here.
|
OvalEdge connects Snowflake data quality checks with lineage, ownership, and governance workflows, so failed checks trigger the right action, not just an alert. See how it works → |
Use a combined approach when Snowflake supports business-critical reporting, regulated data, or AI workloads.
Most Snowflake data quality rollouts don't fail because of bad checks. They fail because of poor prioritization, unclear ownership, and monitoring setups that generate more noise than signal. Here is what separates implementations that hold up in production from ones that quietly get ignored.
Start with critical tables and a focused check set: freshness, row count, null count, duplicate count, and accepted values. Expand only after thresholds are validated, ownership is assigned, and the alert workflow has been tested end-to-end.
Use four levels: critical, high, medium, and low, and only alert when someone can act on it. An alert with no clear owner or remediation path is noise with a timestamp.
A generic schedule applied across all tables is one of the most common sources of false alerts. If ingestion completes at 7:30 AM and your freshness check runs at 7:00 AM, it will fail every day for the wrong reason. Align every schedule to the pipeline it monitors and treat scheduling as a design decision, not a default setting.
All DMFs on a table share the same schedule; individual intervals per check aren't possible on the same object
Custom DMFs require more engineering effort to build and maintain
Serverless compute for DMF execution contributes to Snowflake credit consumption at scale
Multi-table validation requires external tooling or custom logic
Every production rule should include the table and column it monitors, the owner, the threshold, the severity level, the schedule, the business purpose, and the remediation path. Documentation turns individual checks into governed controls.
As teams build on Cortex AI, semantic models, RAG pipelines, and AI agents inside Snowflake, poor-quality data doesn't just produce wrong numbers. It produces wrong decisions at scale, and unlike a broken dashboard, a flawed AI output isn't always immediately visible.
Snowflake Cortex Analyst answers business questions using natural language, which means it depends entirely on the consistency of the data underneath. If revenue, customer, or churn definitions differ across tables, a validity or consistency check failure isn't just a data engineering problem. It's an AI accuracy problem. Snowflake data quality controls, specifically accepted values, consistency checks, and governed definitions, are what keep semantic layer outputs trustworthy.
RAG systems and AI agents retrieve data at query time, which makes freshness and completeness checks non-negotiable. A stale dimension table or a column with a high null rate doesn't just affect a report; it shapes an automated answer or decision. Governed access inside Snowflake does not automatically mean every dataset is complete, fresh, or valid. DMF-level freshness and null count checks need to run on the tables AI systems actually consume.
Standard BI pipelines can tolerate a delayed refresh. AI pipelines often cannot. A stale customer table skews recommendations. A schema change breaks feature inputs silently. A value consistency failure produces summaries built on conflicting definitions. Freshness, schema stability, and value consistency checks need to be applied closer to the AI workload, not just at the ingestion layer where most Snowflake DMFs are first deployed.
When an AI output looks wrong, the investigation starts with the data: which tables were used, which transformations were applied, and whether any upstream DMF checks had recently failed. In Snowflake, lineage connects quality check results to downstream AI workloads, making it possible to trace a misleading output back to a specific freshness failure, schema change, or null rate spike.
For AI workloads, lineage is not just a technical map. It becomes part of explainability and accountability.
Snowflake DMFs provide a strong native foundation for data quality monitoring covering nulls, duplicates, freshness, row counts, and accepted values across production tables.
But checks alone don't make data trustworthy. Mature teams need ownership, alert routing, lineage, documentation, and remediation workflows wrapped around those checks. Without that operating layer, monitoring detects problems but doesn't help anyone resolve them.
The practical question isn't whether a table passed a check. It's whether the right team knows what failed, why it matters, which downstream assets are affected, and what to do next.
Book a Demo with OvalEdge to see how it connects Snowflake data quality checks with cataloging, lineage, ownership, glossary context, and governance workflows, so quality signals translate into action.
Yes. Snowflake provides built-in data quality monitoring through Data Metric Functions. Teams can use DMFs to check nulls, duplicates, freshness, row counts, and accepted values directly inside Snowflake without additional tooling for standard checks.
Snowflake Data Metric Functions are reusable, schedulable functions that measure the quality or state of data in a table, view, or column. They automate recurring quality checks instead of requiring teams to write and run one-off SQL queries manually.
System DMFs are Snowflake-provided functions for standard checks, null count, duplicate count, row count, freshness, and accepted values. Custom DMFs are user-defined functions built to validate business-specific rules that system DMFs don't cover.
System DMFs are Snowflake-provided functions for standard checks like null count, duplicate count, and freshness. Custom DMFs are user-defined functions built for business-specific validation rules.
Use third-party tools when you need capabilities beyond native Snowflake checks, such as CI/CD validation, anomaly detection, schema-change monitoring, incident management workflows, lineage tracking, or governance context across multiple platforms and data domains.
Define a freshness SLA for each critical table specifying when data should be ready. Then apply Snowflake's FRESHNESS DMF and configure alerts to notify the table owner when data misses its expected update window.
Data governance tools connect quality checks with ownership, lineage, glossary definitions, stewardship workflows, and remediation steps. This gives teams the context to act on failed checks, rather than simply viewing quality scores without knowing what to do next.
No. DMFs are effective for SQL-native checks inside Snowflake, but they don't replace observability tools. Teams still need external tooling for anomaly detection, schema-change monitoring, cross-platform pipeline visibility, and structured incident management workflows.