# `GEPA.Strategies.EvaluationPolicy`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/strategies/evaluation_policy.ex#L1)

Behavior for validation evaluation policies.

Determines which validation examples to evaluate and how to score programs.

# `get_best_program`

```elixir
@callback get_best_program(GEPA.State.t()) :: non_neg_integer()
```

Get the index of the best program given current evaluations.

# `get_eval_batch`

```elixir
@callback get_eval_batch(GEPA.DataLoader.t(), GEPA.State.t(), non_neg_integer() | nil) ::
  [term()]
```

Get validation batch IDs to evaluate for a program.

# `get_valset_score`

```elixir
@callback get_valset_score(non_neg_integer(), GEPA.State.t()) :: float()
```

Get the validation score for a specific program.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
