Back to all projects

LLM Evaluation Playbook

A practical guide and small Python toolkit for turning evaluation requirements into explicit criteria, tolerance checks, and reviewable task packages.

Sources reviewed: 2026-09-12

EVALUATION / METHODMETHOD OVERVIEW
01 / MAKE THE TASK JUDGEABLE

One claim.
A traceable reason.

01Define the input and deliverable
02Specify rules and tolerances
03Separate references. Check the package.
Task specification → rubric → executable checks
01 / CONTEXT

The problem

Evaluation becomes unreliable when reviewers interpret a criterion differently, rounding changes a verdict, or reference answers reach the model being evaluated.

02 / OWNERSHIP

My contribution

  • Led the task-design requirements and selected the checks worth making explicit.
  • Used AI-assisted drafting and implementation, then reviewed synthetic examples, scoring boundaries, and validation results.
Working approach: product-led, AI-assisted implementation, followed by review and iteration.
03 / ENGINEERING JUDGMENT

Decisions & tradeoffs

01

Write observable criteria before grading

The choice
Separate hard requirements from graded quality dimensions and define concrete scoring anchors.
The tradeoff
The template is one scoring design; a benchmark’s own rules still determine the rubric.
How it is checked
The rubric linter flags vague wording, and the synthetic task shows criteria beside an answer.
02

Represent tolerances as data

The choice
Use explicit absolute, relative, percentage-point, interval, or set specifications.
The tradeoff
A validator can enforce the stated band but cannot decide whether that band is appropriate for the task.
How it is checked
Passing, failing, and boundary cases exercise the tolerance checker.
03

Check the package as well as the answer

The choice
Declare agent and judge assets separately, then check required files and references together.
The tradeoff
Filename and table checks catch known packaging mistakes; they do not detect every semantic leak.
How it is checked
The package checker and synthetic example run in CI alongside the automated tests.
04 / A CLOSER LOOK

See the work

Explore the work

See why an answer passes or fails

SYNTH-SaaS-001 is fully fictional. This public teaching example shows judge material openly; real evaluation packages keep it separate from model inputs.

Build the revenue bridge

Calculate next-quarter monthly recurring revenue (MRR), identify exactly two cohorts driving the most churn in dollars, and state when expansion is booked.

The two public CSVs, joined by cohort; rates are fractions of MRR.
CohortMRR (USD)ChurnExpansion
C1Enterprise1,800,0000.030.02
C2Growth1,200,0000.040.025
C3MidMarket900,0000.080.03
C4SMB Legacy700,0000.140.01
C5SMB New250,0000.060.04
C6Startup100,0000.090.05
C7Edu30,0000.050.02
C8Nonprofit20,0000.040.01

What the work shows

The v0.2.0 release contains methodology chapters, reusable templates, three command-line checks, and a complete synthetic SaaS task. Its 17 automated tests run in CI on Python 3.9, 3.11, and 3.12.

FROM CLAIM TO SOURCE

Follow the evidence

What this does not establish

  • All public examples are synthetic; client tasks, rubrics, and private feedback records are excluded.
  • Passing local checks does not establish benchmark quality, judge calibration, or model capability.

Tools & methods

PythonEvaluation designNumeric tolerancesTask validation