Creating a holdout
From any dataset, click Split → Create holdout. Options:- Random N% — take a random 20% (default).
- By tag — hold out everything with certain tags (e.g., hold out
hardexamples). - By date range — hold out examples added after a cutoff (evaluates future-proofness).
- Manual pick — check individual examples.
Holdout enforcement
Once marked, the Improvement flow’s proposal generation cannot read the holdout examples. Diagnosis, root-cause analysis, and lever selection use only the non-holdout portion. Simulation, however, runs proposals against both portions:- Train portion — where the improvement was designed. Shows the “in-distribution” improvement.
- Holdout portion — the honest signal. Shows generalization.
The overfitting warning
If a proposal massively improves train performance but doesn’t budge holdout performance, Nora warns:This proposal moved train score +12% but holdout +0.5%. Likely overfits to the failing examples used in the improvement flow. Consider broadening the improvement pattern.Warnings don’t block — you can still ship — but they’re a strong hint.
Rotation
Holdouts should rotate. If the same examples are always the holdout, they become stale — the Improvement flow can’t cover the patterns they test. Recommended:- Rotate the holdout monthly (or per quarter).
- Add new holdout examples as new failures are fixed.
- Retire holdout examples when they become trivial (always passing).
Holdout ≠ regression suite
Both are test-only. Difference:- Holdout — general representative sample of your traffic. Broad coverage.
- Regression suite — specific known failures you want to guard against forever. Narrow, defensive.
Enterprise: production holdout
For high-stakes Flows, you can configure Nora to sample a percentage of production traffic as an ongoing holdout. Runs land in the dataset automatically, get human-annotated (or judge-annotated) offline, and expand the holdout organically. Turn on in Flow settings → Sampling → Production holdout.Splits and simulation
Simulation reports separately for each portion:- Train: 47/50 pass.
- Holdout: 18/20 pass.
- Overall: 65/70 pass.