The mechanism
pass@1 is the share of tasks the agent gets right on one try. It is the headline. The brackets after it are a 95% confidence interval: the range the true rate very likely sits in, given how many tasks you ran. The library computes it by resampling the tasks many times with replacement and reading off where the middle 95% of the results land. That method is the bootstrap, and it is done over tasks, not over the four tries of a task, because four tries of the same ask are not four independent facts. Four tries per task give two more numbers for free.
The bigger question is how many tasks you need. Fewer tasks, wider
interval, and a wide interval swallows real gains.
holdout_size answers
it: to see a 10-point gain from a 60% base with four tries per task, you
need about 89 tasks. Most evals people run are smaller than that, which
is why most “it got better” claims are noise.
Run it
Where it comes from
- Chen, M. et al. Evaluating Large Language Models Trained on Code. arXiv:2107.03374, 2021. The pass@k estimator.
- Miller, E. Adding Error Bars to Evals. arXiv:2411.00640, 2024. Why an eval number needs an interval, and why it is over questions, not samples.
- Efron, B., Tibshirani, R. J. An Introduction to the Bootstrap. Chapman and Hall, 1993.
- Lambert, N. Reinforcement Learning from Human Feedback. arXiv:2504.12501, 2025. Chapter Evaluation.