Skip to content

Coding · Evaluator card

MBPP

2021Jacob Austin et al. (Google)Paper (opens in a new tab)

Mostly Basic Python Programming contains 974 crowd-sourced Python programming tasks designed to be solvable by entry-level programmers. It complements HumanEval with more problems but at a similar or lower difficulty level.

Evidence notes pending review. The verdicts on this card are drafts derived from the benchmark's documentation and published sources; no reviewer has checked them against those sources yet.

Headline claim

MBPP pass@1 supports a basic check that small or specialized models can write short, entry-level Python functions that pass three example tests; it does not support ranking current models or broader claims about programming skill.

At a glance

Mechanism
Execution / effect checkerPrior: execution feedback, rung 2 of 4
Item format
Code
Size
974 problems (sanitized: 427)
Typical uses
Measure
Saturation
Saturated
Contamination
High risk
Year
2021

1Claim

What property are we trying to infer, over what world, and for what decision?

Construct
Entry-level Python function generation from a short natural-language description
Population
974 crowd-sourced, entry-level Python tasks (427 in the hand-verified sanitized subset)
Measures
  • Basic Python programming ability on short, self-contained tasks
  • Code generation consistency across a larger set of problems than HumanEval
  • Ability to translate natural language task descriptions into working Python functions
Does not measure
  • Software engineering competence — tasks are elementary and isolated from real-world complexity
  • Any capability beyond basic function-level Python code generation
  • Code quality, design patterns, error handling, or production-readiness
  • Ability to work with existing code, understand APIs, or navigate large codebases

2Instrument

How is the judgment actually produced?

Mechanism

Execution / effect checker

The generated code runs against the three asserts; any failure, error, or timeout fails the sample. Three cases rule out few wrong programs.

Hierarchy prior: execution feedback, rung 2 of 4. A prior over expected grounding, not a verdict on validity: the evidence notes under Validation say what has been measured.

Item format
Code
Specification
A sample passes when the generated function passes all three assert-based test cases for the task.
Anchor
Three crowd-written assert test cases per task
Evidence view
The generated function, executed against the three test cases, which the standard prompt also shows to the model
Signal
Binary pass/fail per sample
Resolution
Final function per sample
Aggregation
pass@1, or pass@k (at least one of k samples passes), averaged over tasks; the sanitized subset is reported separately
Metrics
pass@1, pass@10
Size
974 problems (sanitized: 427)
Methodology
Contains 974 programming tasks described in natural language, each with 3 automated test cases. The sanitized subset (MBPP-S) of 427 problems filters for quality and correctness of the original test cases. Models generate Python functions and are evaluated by running the generated code against the test suite. Primary metric is pass@1 accuracy.

3Regime

What causal role does the signal play, and what happens when a system adapts to it?

Typical uses
  • Measure · supports inference and decision
Exposure
Public since 2021 with train, validation, test, and few-shot prompt splits; tasks and tests are widely available online, so contamination risk is significant. In the standard prompt format the grading tests are shown to the model, so the anchor is exposed on every item.

4ValidationDraft

Why should we believe that the signal means what we claim it means — before and after the system adapts to it?

MBPP's evidence supports a larger version of HumanEval's claim, not a harder or more relevant one. Crowd-sourced task quality is lower than HumanEval's hand-written problems and three-test suites make pass rates unreliable, so it no longer supports claims about modern models; SWE-bench and continuously refreshed benchmarks such as LiveCodeBench support more relevant coding claims.

Evidence notes2 partially supported · 1 not supported

  1. Partially supported

    Passing the three tests implies a correct general solution

    Three cases rule out few wrong programs, and the standard prompt shows them to the model, so a solution can special-case the visible tests; extended test suites (MBPP+) lowered pass rates.

    Sources: Austin et al., 2021; Liu et al., 2023 (EvalPlus)

  2. Partially supported

    Task statements and tests are correct

    Some crowd-sourced tasks are ambiguous or have incorrect test cases; the hand-verified sanitized subset (427 tasks) reduces this.

    Source: Austin et al., 2021

  3. Not supported

    Separates current models

    Frontier systems score above 90% even on the sanitized subset.

5Lifecycle

Does the validity survive over time, and are we still evaluating the right thing?

Saturation
Saturated

Whether top systems still differ, or crowd the ceiling.

Contamination
High risk

How likely test items, or close variants, have leaked into training data.

Last reviewed
Not yet reviewed · card updated October 12, 2026

Limitations

  • Saturated for modern models, with frontier systems scoring above 90% even on the sanitized subset
  • Crowd-sourced task quality is uneven — some problems are ambiguous or have incorrect test cases
  • Only 3 test cases per problem means solutions can pass by accident or by handling only common cases
  • Entry-level difficulty provides no signal about advanced programming capabilities
  • Significant contamination risk from widespread online availability

When to use

  • Evaluating basic code generation in smaller models or specialized fine-tunes
  • Complementing HumanEval when a larger problem set is needed at a similar difficulty level

When not to use

  • Assessing real-world coding ability or software engineering competence
  • Differentiating between any competitive modern models
  • Evaluating anything beyond basic Python function generation

Handbook case studies