# Demos


<a href="../examples/getting-started/advanced-validation.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/advanced_validation.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Advanced Validation


A validation with a comprehensive set of rules.


<a href="../examples/getting-started/starter-validation.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/starter_validation.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Starter Validation


A validation with the basics.


<a href="../examples/results-and-reporting/data-extracts.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/data_extracts.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Data Extracts


Pulling out data extracts that highlight rows with validation failures.


<a href="../examples/results-and-reporting/step-report-column-check.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/step_report_column_values.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Step Reports for Column Data Checks


A step report for column checks shows what went wrong.


<a href="../examples/results-and-reporting/step-report-schema-check.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/step_report_column_schema.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Step Report for a Schema Check


When a schema doesn't match, a step report gives you the details.


<a href="../examples/results-and-reporting/sundered-data.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/sundered_data.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Sundered Data


Splitting your data into 'pass' and 'fail' subsets.


<a href="../examples/actions-and-thresholds/validation-with-actions.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/validation_with_actions.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Step-Level Actions


Configure actions to trigger when validation thresholds are exceeded, such as logging warnings or errors.


<a href="../examples/actions-and-thresholds/validation-with-final-actions.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"><img src="img/validation_with_final_actions.png" class="section-card-img" style="width: 100%; border-radius: 0.375rem; margin-bottom: 0.75rem;" /></a>


Final Actions


Execute actions after validation completes, such as sending alerts or generating summary reports.


------------------------------------------------------------------------


<a href="../examples/actions-and-thresholds/failure-thresholds.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Set Failure Threshold Levels


Set threshold levels to better gauge adverse data quality.


<a href="../examples/column-value-checks/apply-checks-to-several-columns.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Apply Validation Rules to Multiple Columns


Create multiple validation steps by using a list of column names with columns=.


<a href="../examples/column-value-checks/checks-for-missing.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Checks for Missing Values


Perform validations that check whether missing/NA/Null values are present.


<a href="../examples/column-value-checks/col-vals-custom-expr.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Custom Expression for Checking Column Values


A column expression can be used to check column values. Just use col_vals_expr() for this.


<a href="../examples/column-value-checks/comparisons-across-columns.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Comparison Checks Across Columns


Perform comparisons of values in columns to values in other columns.


<a href="../examples/column-value-checks/custom-validation-specially.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Custom Validation with specially()


Create bespoke validations using specially() to implement domain-specific business rules.


<a href="../examples/column-value-checks/expect-no-duplicate-rows.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Expect No Duplicate Rows


We can check for duplicate rows in the table with rows_distinct().


<a href="../examples/column-value-checks/expect-no-duplicate-values.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Checking for Duplicate Values


To check for duplicate values down a column, use rows_distinct() with a columns_subset= value.


<a href="../examples/column-value-checks/expect-text-pattern.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Expectations with a Text Pattern


With col_vals_regex(), check for conformance to a regular expression.


<a href="../examples/column-value-checks/numeric-comparisons.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Numeric Comparisons


Perform comparisons of values in columns to fixed values.


<a href="../examples/column-value-checks/set-membership.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Set Membership


Perform validations that check whether values are part of a set (or not part of one).


<a href="../examples/advanced-topics/check-for-freshness.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Validating Data Freshness


Use date-based validations to ensure your data is current and recent.


<a href="../examples/advanced-topics/check-row-column-counts.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Verifying Row and Column Counts


Check the dimensions of the table with the \*\_count_match() validation methods.


<a href="../examples/advanced-topics/cli-interactive.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


CLI Interactive Demos


These CLI demos showcase practical data quality workflows that you can use!


<a href="../examples/advanced-topics/column-selector-functions.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Column Selector Functions: Easily Pick Columns


Use column selector functions in the columns= argument to conveniently choose columns.


<a href="../examples/advanced-topics/datetime-validations.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Date and Datetime Validations


Comprehensive examples of date, datetime, and timezone-aware datetime comparisons.


<a href="../examples/advanced-topics/mutate-table-in-step.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Mutate the Table in a Validation Step


For far more specialized validations, modify the table with the pre= argument before checking it.


<a href="../examples/advanced-topics/schema-check.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Check the Schema of a Table


The schema of a table can be flexibly defined with Schema and verified with col_schema_match().


<a href="../examples/advanced-topics/using-parquet-data.html" class="section-card" style="display: block; padding: 1.25rem 1.5rem; border: 1px solid #dee2e6; border-radius: 0.5rem; color: inherit; text-decoration: none;"></a>


Using Parquet Data


A Parquet dataset can be used for data validation, thanks to Ibis.
