Constraints
Do you have business rules in your dataset? These are deterministic rules that every single row in your data must follow in order to be considered valid. By default, SDV synthesizers are probabilistic so they may not learn to match your rule 100% of the time.
The good news is that you can input your business rules into your synthesizer using constraints. Our constraint-augmented generation ensures that your synthetic data meets the constraint — 100% of the time.
Constraint Example
One example of a business rule is when the values in one column always have to be greater than values in another column. This is true for every single row of data.

checkout_date
must be greater than the checkin_date
for all rows.You can supply this business rule to a synthesizer using using an Inequality constraint.
from sdv.cag import Inequality
my_constraint = Inequality(
table_name='hotel_guests',
low_column_name='checkin_date',
high_column_name='checkout_date'
)
my_synthesizer.add_constraints(constraints=[
my_constraint
])
Resources
Please refer to our Constraint-Augmented Generation guide for the API reference, a list of predefined constraints, and instructions for programming your own constraint.
Last updated