The most honest eval is real users
Offline evals tell you what your test set says. Online A/B tests tell you what your users do. Both matter, but online is the closest thing to ground truth — and the only way to measure things you cannot label offline (engagement, retention, monetization).
What online A/B tests measure that offline cannot
- Engagement — did users keep talking to the new variant longer?
- Task completion — what fraction completed their actual goal?
- Satisfaction — explicit thumbs-up/down or implicit (no follow-up needed).
- Latency tolerance — did users wait for slower-but-better responses, or churn?
- Long-term retention — do users come back?
The methodology fundamentals
- Random assignment at the user (not session) level.
- Pre-registered metric — declare the primary metric before the test runs. Otherwise you'll find a metric that "won" by chance.
- Sample size calculation — power analysis up front; don't peek at results.
- Long enough to capture novelty effects — first-week effects often don't generalize.
- Monitor guardrail metrics — even if your primary metric wins, check that latency, error rate, and cost didn't blow up.
Principle: Offline evals propose; online A/B tests dispose. Never ship a major change on offline numbers alone.
Statistical significance, not just direction
"Variant B was 2% better" means nothing without confidence intervals. With 1,000 users per arm, the noise floor on most metrics is ±5%. Compute the p-value (or the confidence interval) before declaring a winner. Tools like statsmodels, ABBA, or your platform's built-in stats handle this.