Published on
September 2, 2026
Updated on
September 2, 2026

How to Build an LLM Evaluation Framework

How to Build an LLM Evaluation Framework

Most AI content projects fail when someone asks what "good" means and nobody has written it down. I have seen this happen on enough projects to know the fix. An LLM evaluation framework decomposes quality into measurable dimensions, agrees on a representative evaluation set, and commits to pass rates on that set before building. That is how we approach every LLM project at NineTwoThree.

In short

  • Promise a system that clears a bar on a representative sample. Perfection on every future input is unprovable and unfair.
  • Split quality into objective dimensions (factual accuracy, requirement coverage) and subjective ones (writing, tone, depth) because they need different measurement methods.
  • Set thresholds as pass rates on an agreed evaluation set, with full marks on safety-critical dimensions and distributional targets on subjective ones, and gate commitments on input quality tiers.
  • Calibrate with stakeholders before building by rating borrowed samples blind, measuring inter-rater agreement, and setting the bar from observed scores.
  • Document what "done" means with named dimensions, methods, thresholds, and a statement that done means passing at threshold on the agreed set.

Why You Can't Promise "Good" AI Outputs

Two mistakes make quality feel impossible to define. First, treating "quality" as one thing instead of decomposing it. Second, implicitly promising that every output will be good. I have watched both happen on project after project.

The problem with the second mistake is mathematical. If your system takes human inputs, the input space is infinite. You cannot test every possible input, so you cannot promise every output will be good. What you can promise is that the system clears a bar on a representative sample. That bar is defined by the dimensions you decompose quality into, the measurement method for each, and the threshold you agree on.

This is the single most important move. It is how every serious LLM product is evaluated, and it is what makes the commitment both buildable and defensible.

The first mistake, treating quality as one thing, is what makes the second one feel inevitable. If "quality" is a single fuzzy concept, you cannot write a test for it. Once you decompose it into named dimensions, each one becomes testable. Factual accuracy is checkable. Requirement coverage is countable. Writing quality is gradable on a rubric. Each dimension gets its own definition, its own measurement method, and its own threshold.

We wrote about this in the context of our AI engineering SDLC, where evaluation suites are part of the build pipeline, not an afterthought.

How Do You Decompose Quality Into Measurable Dimensions?

The useful split is objective/checkable vs subjective/preference. They need fundamentally different measurement methods, and conflating them is where most teams get stuck.

Objective dimensions are binary or countable. Factual claims grounded in the source. No fabrication. All mandatory requirements addressed. Required sections present. Format constraints met. These can be checked programmatically or with a tight rubric. On an RFP automation project, a hallucinated capability statement is a compliance problem, not a style nit. That is the risk level.

Subjective dimensions are graded. Writing quality, tone, persuasiveness, depth. These need anchored rubrics with a written description per level, scored by humans or by an LLM judge calibrated against humans. The rubric is the shared definition of quality that you co-author with the team.

TypeExamplesHow to measureWhere the risk lives
Objective (binary or countable)Factual claims grounded in source, no fabrication, mandatory requirements addressed, required sections present, format constraints metProgrammatic checks or tight rubricA hallucinated capability in an RFP response is a compliance problem, not a style nit
Subjective (graded)Writing quality, tone, persuasiveness, depth/sufficiencyAnchored rubrics (1 to 5 with written descriptions per level), scored by humans or LLM judge calibrated against humansLower stakes but harder to agree on

Objective dimensions are where the real risk lives. We have seen AI failures stem from exactly this gap, where teams focused on style while factual accuracy went unchecked. We wrote about those patterns in our AI failures analysis.

What Measurement Method Fits Each Quality Dimension?

Four methods, each matched to a type of dimension. The method determines what you can promise and how you defend it.

MethodWhen to useWhat it measures
Programmatic checksObjective criteriaRequirement coverage, citation grounding, fabrication detection against the source
Anchored rubricsSubjective criteriaWriting quality, tone, depth. The rubric is the shared definition of quality, co-authored with the team
LLM-as-judge (calibrated)When you need scaleHave subject matter experts score a batch, tune the judge until it agrees at a reported rate, then evaluate at scale cheaply
Pairwise comparisonWhen absolute scoring is hard"Beats the current human first draft X% of the time" is easier to agree on and measure than an absolute score

Programmatic checks handle objective criteria. Requirement coverage, citation grounding, fabrication detection. These are binary or countable, and you can automate them.

Anchored rubrics handle subjective criteria. A rubric with a written description per level is the shared definition of quality. You co-author it with the team. Level 4 on writing means specific things, not a vibe.

LLM-as-judge lets you evaluate at scale. Have subject matter experts score a batch of outputs, then tune the judge until it agrees with them at a reported rate. That agreement rate is the evidence the judge is trustworthy. Below 0.6 Cohen's Kappa, the evaluation task itself is ambiguous. That insight comes from Galileo AI's research on calibrating LLM judges, and it matches what we have seen in practice.

Pairwise comparison works when absolute scoring is hard. "Beats the current human first draft X% of the time" is easier to agree on and measure than an absolute score. The baseline is usually the team's current human process.

How Do You Set Quality Thresholds That Hold Up?

Thresholds are pass rates on an agreed evaluation set, not promises about every future output. The shape matters.

On the agreed evaluation set: 90% or more of outputs address 100% of mandatory requirements. 80% or more score 4 out of 5 on depth and writing. 0 contain ungrounded factual claims.

Note the asymmetry. 100% on the safety-critical objective dimension. Distributional targets on the subjective ones. This is deliberate. A single hallucinated factual claim can cause real damage. A writing score that occasionally dips to 3 out of 5 is tolerable if the distribution holds.

Then tier inputs by quality and tie commitments to the tier. On a content creation project, we discovered that input quality varied wildly and you only find its problems over time. Garbage-in cannot be a quality miss you own. Define input quality tiers and state that targets hold for tier 1 to 2 inputs. Below that, the deliverable is flagging the input as insufficient.

This is the same principle we wrote about in our data quality analysis. The quality of what goes in determines what comes out. If you do not tier inputs, you are implicitly promising results regardless of what people feed the system.

How Do You Evaluate Human-in-the-Loop Systems Without Grading Every Interaction?

Evaluating dozens of individual interactions is the trap. I fell into it early on and learned to avoid it. The unit of measurement becomes the checkpoint, not the keystroke.

Define 3 to 5 checkpoint outputs in the workflow: outline, first draft, post-edit draft, final. Put an acceptance gate at each. The gate is what the AI must deliver for the human to accept and proceed.

Then measure the AI's contribution at each gate:

  • Acceptance rate (did the human accept the gate output and proceed?)
  • Edit distance (how much did the human have to change?)
  • Regeneration cycles (how many tries before acceptance?)
  • Time-to-accept (how long from input to accepted output?)

The honest metric is responsiveness to direction. Given this input and these human instructions, did the AI produce a checkpoint output that met the bar? These metrics map directly to value. "The AI gets you to an acceptable draft in N fewer cycles" is the thing people are buying.

This cleanly separates our accountability (the AI hits the gate given reasonable direction) from theirs (the human's choices shape the final piece). We wrote about this separation in our human-in-the-loop analysis.

How Do You Agree on "Acceptable" Before the System Exists?

There is an apparent chicken-and-egg problem. You want to agree on "acceptable" before you have built a testable thing. It dissolves once you see what calibration rates.

Calibration doesn't measure our system. It measures whether the humans agree with each other on what "acceptable" means.

Calibration does not measure your system. It measures whether humans agree with each other on what "acceptable" means. You only need outputs to judge, and those do not have to come from your pipeline. You manufacture the sample.

Three sources for pre-build samples. First, existing work. The team already produces these artifacts today. Have their experts blind-rate a batch of their own historical output. This reveals the bar their real-world process clears. On a client project, we found their own "good" work scored a 3.5, not a 5. That reset the target honestly before we had promised anything.

Second, a hand-built spectrum. Deliberately assemble 15 to 20 samples spanning clearly great to clearly bad, including some near the boundary. The boundary cases are where the rubric gets sharpened.

Third, competitor or comparable outputs where available. These give you a range of quality that exists in the wild, which helps calibrate expectations.

How Do You Run a Calibration Session?

Frame it as defining the answer key before the exam. A teacher writes the rubric and grades sample essays before students sit the test. The calibration samples exist to pin down the grading standard, and it is better that they are not yours, because nobody can accuse the standard of having been reverse-engineered to make your system pass.

  1. Rate blind and independently. Experts score each sample on each rubric dimension without seeing each other's scores or who produced the sample. Independence is what makes the agreement number meaningful.
  2. Measure inter-rater agreement and surface disagreements. If the experts do not agree with each other, that is a discovered ceiling on what "quality" can mean. It forces the criteria to tighten before you are on the hook.
  3. Resolve disagreements into rubric language. The argument over whether a sample is a 3 or a 4 is where the written anchors get sharpened.
  4. Anchor each scale point with a real example. For each dimension, a sample that exemplifies a 2, a 3, a 4, a 5. These become the reference standard.
  5. Set the threshold from observed scores, not aspiration. If the team's own best work clusters at 4 out of 5 on writing, "4 or above" is a credible bar. "5 every time" is not.

The honest caveat: this first bar is a v1, set on proxy samples. You will re-confirm it against real system outputs at the first milestone. That is why the revision checkpoint matters.

How Do You Document What "Done" Means?

The full sequence: calibrate on borrowed or built samples, lock the rubric and the scored reference examples, build against that bar, run system outputs through the agreed rubric, and re-confirm the bar against real outputs at the first milestone. The agreement on acceptable happens entirely in the human-judgment phase, before a single batch goes through the pipeline.

Write it down. The documentation should include:

  • Named dimensions with definitions
  • Measurement method for each dimension
  • Thresholds expressed as pass rates
  • Input quality tier definitions
  • Checkpoint definitions and gate criteria
  • A statement that "done" means passing at threshold on the agreed set
  • A revision checkpoint at the first milestone, because the first bar is a v1

The evaluation suite is a living artifact you refine together at checkpoints. That is more credible than claiming you can fully specify quality before you have seen the data. We have seen teams skip this step and pay for it later, when the lack of written agreement turns into a disagreement about what was promised. We wrote about the upstream version of this problem in our data preparation guide.

What Does This Look Like in Practice?

Two real projects show how the framework adapts to different content types and quality risks.

Content creation projectRFP automation project
DimensionsCheckpoint gates: outline, first draft, post-edit, finalCoverage-across-topic, coverage-within-topic, accuracy, writing
MethodsAcceptance rate and edit distance per gateProgrammatic requirement check, depth rubric, grounding check (zero tolerance), pairwise vs past winners
Input tiersYes. Variable source content tieredYes. Past solicitations held out as evaluation set
Headline metricCycles and time saved at an acceptable quality barSME-acceptable-with-minimal-edits or win rate
What we promiseThe system hits each gate given reasonable directionThe system passes the eval suite at threshold on the agreed set

On the content creation project, we used checkpoints with acceptance gates. Per-gate metrics were acceptance rate and edit distance. Input tiers protected us on variable source content. The headline value was cycles and time saved at an acceptable quality bar.

On an RFP automation project for a healthcare company, we decomposed quality into named dimensions. Coverage-across-topic was a programmatic requirement-coverage check against the solicitation. Accuracy was a grounding and fabrication check against the knowledge base, with zero tolerance. We evaluated on a held-out set of past solicitations with known good answers. The ultimate proxy metric was SME-acceptable-with-minimal-edits or win rate.

Define quality relative to a baseline, not in absolutes. "As good as a competent junior's first draft, in a fraction of the time" is honest, achievable, and measurable. Absolute perfection is none of those things. Relative bars are easier to agree on, easier to measure against the baseline, and more defensible.

NineTwoThree by the numbers: 97% project success rate. 24 of 27 projects ROI-positive. 150+ AI projects shipped.

If you are evaluating an AI partner for a content or document automation project, ask how they define quality before they build. The answer should include named dimensions, measurement methods, and pass-rate thresholds. We bring that framework to every engagement, across 150+ projects with a 97% success rate. Talk to us about your project.

written by
Share on

Read more from

Generative AI