Synthetic data is sold as a volume problem solved. It is really a variance problem: you get more rows of the kind you already had, and the mistakes get more confident.
That is not an argument against it. It is an argument for knowing which part of your set it should touch.
What it can and cannot do
Generation is good at coverage: more phrasings, more edge cases of a rule you already trust, more variants of a format. It is bad at judgment: whether a label is right, whether a scenario is plausible, whether a task is worth training.
Use it to widen a pattern. Do not use it to decide which pattern matters.
Keep the generator's fingerprints
Every generated row should carry: which model wrote it, when, from which seed, and with which instruction. Without that, a bad batch six months from now cannot be traced or rolled back.
The instruction matters most. Two prompts that look the same produce two different distributions, and the difference usually shows up in the tails.
Mix ratio is a product decision
Deciding that 20% of the set is generated is not a technical default. It decides how much the model's behavior is shaped by a model rather than by people.
Pick the ratio per task, write down why, and re-measure after each change. A ratio copied from a paper describes someone else's data.
The check before you scale
Take 200 generated rows and label them by hand, blind to whether they are real or generated. If your annotators cannot tell, the batch is clean enough to mix. If they can, the tell is a feature you are about to teach.
Zovda mixes these sets through Datuva, where every row keeps its origin, so a batch can be pulled back out. The corpus catalogue shows where generated rows sit in each stage.
Tell us the gap you are trying to fill. We reply within one business day.
