A team came to us last year after burning $2.3M in compute. Their model was underperforming — not catastrophically, just persistently mediocre. They'd tuned hyperparameters for weeks. Swapped architectures twice. Added 40% more data. Nothing moved the needle.
The problem was in the first 10,000 annotations. Nobody had checked inter-annotator consistency. Their labeling guidelines had three ambiguous edge cases that annotators resolved differently. The model had learned a confused average of conflicting signals from day one.
The Invisible Tax
By the Numbers
Here's what makes data quality problems insidious: they don't show up in your loss curves. The model trains fine. Loss decreases. Perplexity improves. Everything looks healthy. But the ceiling is lower than it should be, and you won't know until you compare against a properly-trained baseline — which you don't have.
Where Quality Breaks Down
Data quality issues are rarely obvious at the individual sample level. They're statistical patterns that compound:
Inconsistent Labeling
When annotators disagree on edge cases without a resolution protocol, you inject noise. The model doesn't learn "this is ambiguous" — it learns a muddled average. We've seen teams where annotator agreement on complex tasks was below 55%. That's barely better than random for binary choices.
Domain Mismatch
A junior developer can tell you if code compiles. They can't tell you if it's production-quality, secure, or maintainable. When you use annotators who lack domain expertise, you get labels that are technically defensible but miss professional nuance. Your model inherits that gap.
Systematic Bias
Underspecified guidelines create space for personal heuristics. Annotator A always prefers verbose responses. Annotator B likes conciseness. Without explicit priority ordering, these become systematic biases your model amplifies. (We cover how to prevent this in Designing Reward Models That Work.)
Stale Data
Training on outdated examples teaches deprecated patterns. For code, where best practices shift every 6-12 months, this is critical. We've seen models confidently recommend libraries that were abandoned years ago.
The Cost Multiplier
Watch Out
- Training cost (1.5-2x): More compute burned on noisy gradients. Models need more epochs to converge.
- Debugging cost (3-6 months): You investigate architecture, hyperparameters, and training dynamics before suspecting data. Engineering time wasted.
- Opportunity cost (immeasurable): Your model ships as "good" instead of "great." Competitors who invested in data quality ship better products.
- Re-training cost (full pipeline): When you finally find the data issue, you often retrain from scratch. All prior compute is sunk.
What We Do Differently
After seeing this pattern across dozens of projects, here's the protocol we follow:
- Pilot batches of 100-200 samples before committing to scale. Test guidelines, measure agreement, resolve ambiguities.
- Domain experts for tasks requiring professional judgment. (See our breakdown of when experts beat crowds.)
- Real-time consistency monitoring — not just at delivery, but as annotators work. We flag drift within hours, not weeks.
- Explicit consensus protocols with documented tie-breaking rules for every known edge case.
Key Insight
The Bottom Line
Data quality isn't glamorous. It doesn't produce a paper or a viral demo. But it's the difference between a model that benchmarks well and one that works in production. We've watched teams waste millions learning this the hard way.
You don't have to.
Figure: Key concept visualization