Data validation checks that the result meets expected rules: types, value ranges, key uniqueness, absence of missing values, consistency between columns. It is expressed through automatic checks (assert, tests) run after cleaning. A failure flags a problem before the analysis rather than after.
Example
assert df['id'].is_unique
assert df['age'].between(0, 120).all()