# `GEPA.CandidateProposal.SubsampleEvaluation`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/candidate_proposal.ex#L1)

Rich evaluation data captured for a proposal minibatch.

This mirrors upstream's `SubsampleEvaluation`: scores remain the compact
acceptance surface, while outputs, objective scores, and trajectories are
retained for callbacks, tracking, and custom acceptance logic.

# `t`

```elixir
@type t() :: %GEPA.CandidateProposal.SubsampleEvaluation{
  objective_scores: [%{required(String.t()) =&gt; float()}] | nil,
  outputs: [term()],
  scores: [float()],
  trajectories: [term()] | nil
}
```

---

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