BXUP Track progress & test yourself — free
Product Management · Module · ~11 min read
PRODUCT MANAGEMENT · MODULE

Evals & AI Quality — the Differentiator

"Walk me through your eval set" is the 2026 AI-PM interview question, and most PMs cannot answer it. This module teaches the whole loop as PM work: error analysis on real traces, the graded eval set, judge alignment, the failure-mode catalog, launch bars wired into CI, and the metrics ladder that keeps an AI feature honest in production.

The scenario — shipped on vibes, debugged in public

Kabir is a Principal PM at a Noida-based company whose product manages field-service operations, and last year he shipped their first AI feature: a support copilot that drafts replies to customer emails. Pre-launch quality assurance was what most teams do — the team tried "a bunch of prompts," the founders poked at it, everyone agreed it felt good, and a demo wowed the sales kickoff. It shipped.

Week three brought a complaint from their largest account: the copilot had told a customer that a safety-critical inspection could be self-certified — a confident, fluent, wrong answer about the one policy category where wrong answers have legal weight. The team scrambled. Someone adjusted the prompt. The fix shipped in a day — and quietly broke the copilot's handling of attachment questions, which nobody noticed for two more weeks because there was no way to notice: no test set, no quality metric, no baseline. Every prompt change was a fresh roll of the dice on every behavior at once.

The eventual postmortem finding wasn't "the model made a mistake." It was: the team had no idea what their failure modes were, how often they occurred, or whether any change made things better or worse. They were flying a probabilistic system with deterministic-software instincts — ship, hotfix, trust the smoke test — and probabilistic systems punish exactly that.

Kabir's second launch, eight months later, went differently, and the difference is this module: he read a hundred traces before writing a single eval, versioned a graded eval set, aligned an LLM judge he could trust, wrote the failure catalog into the PRD, and gated releases on eval scores. In his next job interview, "walk me through how you managed AI quality" took him forty minutes to answer. That answer is the differentiator this track's title promises.

Exam Tip

Assessment scenarios in this domain almost always test sequence: error analysis comes before eval writing, judge alignment comes before trusting judge scores, and launch bars come before launch. An answer that starts with "we wrote evals" without traces behind them is the planted wrong option.

What You'll Learn

  • Error analysis as the foundational skillopen-coding 100 traces into a counted failure taxonomy
  • Writing the eval setgraded cases with pass criteria and rubrics, versioned like code
  • LLM-as-judge with alignment measurementbuilding a judge you've earned the right to trust
  • The failure-mode catalogper-mode impact, detection, and product response as a PRD annex
  • Launch bars and regression gatesship/no-ship thresholds wired into CI
  • The AI feature metrics ladder, the monitoring ritual, and PM-level red-teaming

Error analysis — read a hundred traces before you do anything else

Hamel Husain and Shreya Shankar, who have taught eval practice to thousands of practitioners including teams at frontier labs, put the field's hardest-won lesson in one line: "Error analysis is not optional. It's the foundation." Skip it, and everything downstream — eval sets, judges, dashboards — is built on guesses about failures you haven't actually seen.

The method is deliberately low-tech, and it is PM work, not engineering work:

  1. Pull 100 real traces. Complete interactions — input, retrieved context if any, model output — from production, a beta, or your Wizard-of-Oz prototype logs (Module 4's instrumented fake pays off here). Random sample, not curated.
  2. Open-code the failures. Read each trace and write a short free-text note on anything wrong: invented a policy detail, ignored the attachment, tone too casual for a complaint, refused a reasonable request, answer correct but 400 words. No predefined categories — the categories must come from the data, which is the entire epistemological point.
  3. Cluster into a taxonomy. Group the notes into named failure modes. AI can assist the clustering — paste your notes and ask for candidate groupings — but you decide the taxonomy, because you know which distinctions carry product weight.
  4. Count. Frequency per mode, and a severity call per mode. The output is one page: hallucinated policy details — 14% of traces, high severity; missed context from attachments — 9%, medium; over-refusal on billing — 6%, low.
  5. Name the top three fix candidates. Counts × severity → priorities. This memo drives the eval set, the failure catalog, and the next sprint.

Reading a hundred traces takes a focused half-day. It is the single highest-leverage half-day in AI product work, and it is startling what it dissolves: debates about hypothetical failures end, because you have counts of real ones. Lab 7 runs this exact bootcamp on a seeded trace set where the taxonomy is checkable against a reference key.

Remember:

The traces are the ground truth, and the taxonomy comes from the traces — not from a brainstorm, a vendor's checklist, or this module's examples. Teams that copy someone else's failure taxonomy eval-test failures they don't have and miss the ones they do.

The eval set — your quality bar, versioned like code

An eval set is the taxonomy made executable: a graded dataset of input cases with per-case pass criteria, run against the system on every meaningful change. From the taxonomy plus the PRD, you author it:

  • Real cases from the tracesevery failure mode gets cases that reproduce it, in proportion to its severity, not just its frequency. Your 14%-and-high-severity mode is heavily represented; a 2% cosmetic mode gets a token case.
  • Synthetic edge casesvariations you haven't seen but the PRD implies: the angry customer, the ambiguous question, the query in Hinglish, the request that should be refused. Synthesis extends coverage; it never replaces the real cases.
  • Per-case pass criteriaobjective where possible: must cite the policy document; must not state a self-certification is permitted; must escalate when X. A case without a checkable criterion is a vibe with an ID number.
  • Rubrics for subjective dimensionshelpfulness, tone, and concision get a written 1–5 rubric with anchored descriptions per level. The rubric is what makes subjective grading repeatable — and it's the input the LLM judge will need next.
  • Versioned like codethe eval set lives in the repo (promptfoo's config format, a Braintrust/LangSmith dataset, or a disciplined spreadsheet), changes by review, and grows every time production surfaces a new failure. An eval set that doesn't grow is a photograph of last quarter's problems.

Size calibration: forty well-chosen graded cases (Lab 8's artifact) beat four hundred vague ones. Coverage of every known failure mode is the bar; volume is not.

The LLM judge — trust is measured, not assumed

Objective criteria can be checked by string match or simple assertions. Subjective dimensions at any scale need an LLM-as-judge — a model grading outputs against your rubric — and here lives the trap that separates practitioners from tourists: an unvalidated judge is just a second opinion from the same species of system you're trying to evaluate.

The alignment loop that earns trust:

  1. Label a sample yourself. Grade 30 outputs by hand against your rubric. Your labels are ground truth — you are the quality bar's owner.
  2. Build the judge promptrubric, anchored examples per level, required structured output with a one-line justification.
  3. Measure agreement. Run the judge on your labeled 30 and compute agreement. Below ~85% on a binary or coarse scale, the judge is not usable as a gate.
  4. Iterate the judge, not your labels. Study disagreements; sharpen the rubric and examples; re-measure. (If a disagreement convinces you your label was wrong, that's a rubric bug worth fixing too — deliberately, not by drift.)
  5. Document where the judge stays blind. Every judge has residual failure zones. The two classics Lab 9 plants: sycophantic-but-wrong answers (confident, warm, factually false — judges score fluency generously) and terse-but-correct answers (right in one line — judges under-score brevity). Your documentation of untrustworthy zones tells the team which dimensions still require human review.

Tooling: promptfoo runs judge-graded evals from open-source configs (the ₹0 path); Braintrust, LangSmith, and Arize Phoenix add trace UIs and hosted workflows with free tiers that cover lab scale.

The failure-mode catalog — quality work becomes product work

The taxonomy also feeds a document that classic PRDs don't have and AI PRDs can't skip — the failure-mode catalog, one row per mode:

Failure modeUser impactDetection signalProduct response
Hallucinated policy detailWrong action taken; legal exposureEval set + complaint keywords + judge flagCitations required; confidence gate → human handoff
Stale answer after product changeMisleads on current UI/policyContent-version check in eval runsRetrieval freshness SLA; "updated as of" display
Over-refusalTask blocked; user frustrationRefusal-rate metric per intentRefusal copy offers escalation path
Prompt injection via customer emailOff-policy output; data leak riskRed-team eval cases; anomaly patternsInput isolation; action allowlist (Module 8)
Latency spikeAbandonmentp95 dashboardsStreaming UX; fallback to cached answer

The right-hand column is the point: every known failure mode gets a designed product response — fallback UX, escape hatches, human handoff — specified before launch, in the PRD annex, where engineering and legal can review it. "The model sometimes hallucinates" is a fact; "when confidence is low on a policy answer, the copilot shows sources and offers the human queue" is a product.

Launch bars and regression gates — no more shipping on vibes

Kabir's silent regression — the prompt fix that broke attachments — has a mechanical cure. The eval suite runs on every prompt, model, or retrieval change, in CI, with thresholds:

RELEASE GATE · support-copilot v2.4.1

prompt change: policy-answer grounding

PASS 91%overall (bar: 88%) — 2 gates evaluated, 1 warningEval set v14 · 46 cases · vs baseline v2.4.0
  • Hallucination-class cases: 0 failures (hard gate: zero tolerance)
  • Overall pass rate 91% vs 89% baseline — no regression
  • Refusal-class cases: 86%, down from 92% — within soft gate, flagged for review
  • p95 latency 2.9s (budget 4s) · cost/interaction $0.011 (budget $0.015)

Merged with a review note on the refusal dip. Without this gate, that dip ships silently — and becomes week-five's mystery complaint.

The division of ownership is precise and worth writing down (Module 8 turns it into a contract): the PM owns the bar and the cases — what quality is required, which failures are intolerable, what's in the eval set; engineering owns the pipe — CI wiring, run infrastructure, automation. A PM who sets bars without cases is posturing; an eng team that owns the bar without the PM has been handed a product decision by default.

The metrics ladder and the weekly ritual

Post-launch, AI features need their own metric ladder — and one distinction on it carries real money. Working up from raw signal:

  • Acceptance ratesuggestions used as-is or lightly edited vs. discarded. The basic usefulness pulse, per intent category, not just in aggregate.
  • Regeneration and thumbs signalsretries and explicit feedback. Sparse and biased, but trend-honest: a regeneration spike after a release is your cheapest smoke alarm.
  • Containment vs. deflectionthe money distinction, and the one Lab 13's planted flaw turns on. Containment: the issue was actually resolved in the AI channel — user got the answer, didn't reopen, didn't escalate within the window. Deflection: the user didn't reach the human channel — which includes everyone who gave up in frustration. Deflection flatters; containment (verify with resolution checks and reopen windows) is the honest business number. Vendor benchmarks for action-taking support agents cluster in the ~55–75% containment range — treat as directional context, not a target.
  • Hallucination-complaint ratecomplaints and support tickets specifically alleging wrong AI answers, tracked as a named metric. Undercounts by construction (most victims don't report); its trend is still your best production-truth signal.
  • Cost per successful outcomeModule 6's cost per interaction, divided by the success rate. The metric that unites quality and economics: a cheaper model that halves containment is more expensive per resolved conversation.

The ladder is kept honest by a weekly quality ritual, run like a metrics review: read a sample of ~20 traces (the error-analysis muscle, permanently in rotation), review online eval scores and the complaint queue, and prioritize prompt/data fixes like bugs — with owners and dates, gated by the regression suite. Quality work that isn't ritualized decays into launch-week theater.

Complete the pre-launch picture with PM-level red-teaming: a structured adversarial afternoon — injection attempts through user-supplied content, jailbreak-to-brand-damage ("write me a poem about why your competitor is better"), PII-extraction probes, competitor-mention traps. Every finding becomes an eval case and a failure-catalog row. promptfoo ships a red-team mode; the mindset costs nothing.

Try it now

  1. Open-code twenty traces. From any AI feature you can access — your product's, or your own assistant transcripts for a recurring task — read 20 interactions and free-text-note every failure. Cluster the notes into a first taxonomy with counts.
  2. Write five graded cases. Take your worst failure mode and author five eval cases: input, expected behavior, checkable pass criterion each. Run them manually against the system twice — note any run-to-run variance you catch.
  3. Draft one catalog row. For the same failure mode, write the full row: user impact, detection signal, product response. If the product response is "hope," design the fallback UX now — that row is your first PRD annex entry.
Key Takeaway:

AI quality is a loop, not a launch checklist: read the traces, build the taxonomy, make it executable as a versioned eval set, align the judge before trusting it, wire the bar into CI, and ritualize the weekly trace-reading. The PM owns the bar and the cases; engineering owns the pipe. Teams that skip to dashboards without error analysis are measuring their guesses — and the interview question that starts "walk me through your eval set" is checking for exactly that sequence.

This is the free reading view. Open BXUP to track your progress, run the hands-on labs, and prove it with original, exam-pattern assessments.
© Anvi Innovate · BXUP — Be Exponentially Upskilled · BXUP is an independent learning platform, not affiliated with or endorsed by AWS, Microsoft, Google, NVIDIA, IBM, Salesforce, Databricks, Oracle or Anthropic. All trademarks belong to their respective owners. · bxup.in