The scorecard is only as good as the inputs you score against. Start by collecting real prompts from the workflow you plan to put the models into: extraction requests, classification calls, record creation, anything where the output lands in a database or an API. Aim for a set wide enough that a single unusual edge case cannot swing the result: even a modest fixture set of 50 to 200 inputs will separate models whose compliance rates differ by more than a few points, though a difference of one or two cases is noise either way.
For each input, store three things: the instruction text, the JSON schema the output must satisfy, and a fixture ID. Keep the schema minimal. The MLflow guidance on structured output patterns recommends keeping schemas small, with required fields, strict types and enums, because ambiguous schemas produce ambiguous outputs and make validation noisy. Every schema keyword you add is a keyword the model can fail on, so only constrain fields your downstream code actually reads.
Include a deliberate mix in the fixture set:
| Fixture type | Example | What it tests |
|---|---|---|
| Simple flat object | Customer record with 5 required fields | Basic field presence and types |
| Nested object | Invoice with a line-item array | Path handling and array element schemas |
| Enum-constrained field | Priority set to low, medium or high | Whether the model invents values |
| Numeric bounds | Price with a minimum of 0 | Whether constraints are respected |
| Ambiguous instruction | Request with a missing detail | Whether the model guesses or asks |
The last row matters more than it looks. A schema-conforming output that fills a missing detail with a plausible invention passes your validator and corrupts your data, which is the silent failure mode that the collinwilkins.com guide on schema validation describes as the real danger: the output parses, the field is wrong. Schema validation catches shape, not truth. Note in your fixture set which inputs are ambiguous so you can review those outputs by hand rather than trusting the pass rate.



