Why Evaluation Is the PM's Most Important Job
In traditional software, quality assurance is binary. The button either submits the form or it does not. The API either returns the correct data or throws an error. You write test cases with expected outputs, and the software either passes or fails. LLM products do not work this way. Quality exists on a spectrum, and two different outputs to the same prompt can both be acceptable, or both be unacceptable, for completely different reasons.
The PM is the person who defines what 'good enough' looks like for an LLM feature. This is not a technical decision. It is a product decision that requires understanding user expectations, business requirements, and risk tolerance. A customer service chatbot that gives a slightly imperfect but helpful answer might be acceptable. The same chatbot giving a slightly imperfect answer about a billing dispute might not be. You need to define these quality bars, and you need to define them before engineering starts building.
Without an evaluation framework, you are shipping based on vibes. You ask a few questions, the responses look reasonable, and you decide it is good enough to launch. This approach fails at scale. You will miss systematic failure patterns. You will not notice when a prompt change that improves one use case degrades another. You will have no way to quantify whether a model upgrade actually improved your product. Evaluation infrastructure is not a nice-to-have. It is the foundation of a reliable LLM product.
The Three Types of LLM Evaluation
Automated evaluations are the fastest and cheapest. At the simplest level, you check if the output contains specific strings, matches a regex pattern, or falls within expected constraints (e.g., the output is valid JSON, the response is under 500 tokens, the answer contains a required disclaimer). More sophisticated automated evals use another LLM as a judge: you pass the original prompt, the output, and a rubric to a judge model and ask it to rate the output on specific dimensions. Model-graded evals are surprisingly effective for dimensions like helpfulness, relevance, and tone consistency. They correlate with human judgments at roughly 80-90% agreement rates when the rubric is well-written.
Human evaluations are more expensive and slower but necessary for high-stakes quality dimensions. You assemble a team of reviewers (3-5 for most tasks), give them a rubric with clear scoring criteria, and have them independently rate model outputs. The key metric to track is inter-rater reliability: how often do your reviewers agree with each other? If they frequently disagree, your rubric is ambiguous and needs refinement. Human evals are essential for dimensions that are difficult to automate: factual accuracy in domain-specific contexts, cultural sensitivity, nuanced tone, and whether the output would actually help a real user.
Production evaluations measure quality using real user behavior. A/B tests compare two model versions or prompt variants on actual traffic. Implicit signals like user engagement, follow-up questions, thumbs up/down ratings, and whether users copy the output or ignore it all provide quality data. The challenge with production evals is that they are lagging indicators. By the time your production metrics show a problem, real users have already been affected. Use production evals for ongoing monitoring and optimization, but do not rely on them as your only quality gate before launch.
Building Your Evaluation Dataset
A golden dataset is a curated set of inputs paired with high-quality reference outputs (or at minimum, clear criteria for what a good output looks like). This is the foundation of your evaluation infrastructure. Without it, you have no consistent way to measure whether changes improve or degrade your product.
Start by collecting 50-100 representative examples from your target use case. These should cover the normal cases that make up 80% of expected traffic. Then add 20-30 edge cases: unusual inputs, ambiguous queries, multi-step requests, inputs in unexpected formats. Finally, add 10-20 adversarial examples: inputs designed to trip up the model, including prompt injection attempts, requests for harmful content, and queries that require the model to say 'I do not know' rather than fabricate an answer.
Diversity of inputs matters more than sheer volume. One hundred examples that cover ten distinct categories are more valuable than 500 examples that all look the same. Make sure your eval set reflects the actual distribution of inputs you expect in production, including different user personas, varying levels of complexity, and multiple languages if your product supports them.
Version your evaluation datasets the same way you version code. When you add new examples or modify existing ones, track the change. This lets you compare model performance across time on a consistent basis. A common mistake is continuously updating your eval set without versioning, which makes it impossible to tell whether an improvement in scores reflects a better model or easier test questions.
Choosing the Right Metrics
The biggest mistake PMs make with LLM metrics is trying to reduce everything to a single number. An overall quality score of 4.2 out of 5 tells you almost nothing. You need disaggregated metrics across multiple dimensions, broken down by use case, user segment, and input type.
For summarization tasks, measure faithfulness (does the summary contain only information from the source?), conciseness (is it the right length?), and coverage (does it include the most important points?). A summary can score high on faithfulness but low on coverage if it accurately captures one minor detail while missing the main point. You need all three dimensions to understand quality.
For question-answering features, measure accuracy (is the answer correct?), citation quality (does it reference the right sources?), and completeness (does it address all parts of the question?). If your product answers questions about company policies, accuracy might need to be above 98%, while for general knowledge questions, 90% might be acceptable.
For content generation (drafting emails, writing marketing copy, generating reports), measure coherence (does it flow logically?), brand voice adherence (does it match your company's tone?), and factual accuracy (are any claims verifiable and correct?). These dimensions often trade off against each other. Strict factual accuracy might produce dry, qualified prose. Strong brand voice might lead the model to make confident claims that are not verifiable. As a PM, you decide which tradeoff is right for your product.
Setting Quality Bars
A quality bar is the minimum acceptable score on each evaluation dimension for your product to ship or for a change to go live. Setting quality bars requires understanding the risk level of your specific use case. A casual creative writing assistant has different quality requirements than a clinical decision support tool.
Define three tiers of quality bars based on risk. Low-risk features (brainstorming suggestions, draft text that users will edit, internal tools) might require 80% accuracy and 85% helpfulness. Medium-risk features (customer-facing support, content recommendations, search results) should target 90%+ accuracy and 90%+ relevance. High-risk features (financial advice, medical information, legal document analysis) need 95%+ accuracy with mandatory human review for any output below a confidence threshold.
Negotiate quality bars with stakeholders early, using data rather than opinions. Run your evaluation suite and present the results: 'On our 200-example test set, the model achieves 88% accuracy for intent classification. To reach 95%, we estimate 6 additional weeks of fine-tuning and data collection. Here is the error analysis showing where it fails.' This framing gives stakeholders a concrete cost-benefit decision rather than an abstract quality debate.
Quality bars should be per-dimension, not aggregate. A model that averages 90% quality but scores 60% on safety-related outputs is not production-ready, even though the average looks acceptable. Always set separate, non-negotiable minimum thresholds for safety-critical dimensions regardless of your overall quality targets.
Building an Eval Pipeline
An evaluation pipeline is infrastructure that runs your eval suite automatically on every prompt change, model update, and on a scheduled cadence (weekly at minimum). It stores results in a structured format, tracks trends over time, and alerts the team when quality regresses below your defined thresholds.
The practical architecture is straightforward. You need: a test runner that can execute your eval suite against any model or prompt version, a scoring mechanism (automated metrics plus model-graded evals), a results database that stores scores with metadata (timestamp, model version, prompt version, eval set version), a dashboard that visualizes trends, and an alerting system that notifies the team when scores drop below quality bars.
Many teams build custom eval harnesses because their needs are specific to their product. This is reasonable, especially if your evaluation criteria are domain-specific. But there are frameworks that can accelerate the process. Promptfoo is an open-source tool for testing and evaluating LLM prompts. Braintrust provides eval tracking and dataset management. LangSmith offers tracing and evaluation for LLM applications. These tools handle the infrastructure plumbing so your team can focus on defining the evaluation criteria that matter for your product.
Integrate evals into your deployment process. A prompt change that reduces accuracy by 3% on your eval set should be caught before it reaches production, just like a code change that breaks unit tests. This requires treating eval runs as a CI/CD gate, not a periodic manual check.
The Eval Flywheel
The most valuable property of a good evaluation system is that it improves itself over time. Every production failure that a user reports or that your monitoring catches becomes a new eval case. Every piece of user feedback, whether positive or negative, informs your understanding of what quality means for your users.
Here is how the flywheel works in practice. A user reports that your chatbot gave an incorrect answer about a refund policy. Your support team logs this as a quality issue. You add the specific input and the expected correct answer to your golden dataset. The next time you evaluate the model, this case is included. If the model still gets it wrong, you know there is a gap to fix. If a prompt change fixes it, you can verify the fix persists over time.
Over months, your eval dataset grows from 100 examples to 500 to 2,000. Each example represents a real scenario that matters to your users. Your evaluation coverage expands to include edge cases you never would have anticipated during initial development. This compounding dataset becomes one of your most valuable product assets, because it represents ground truth about what your users need and what quality means in your specific domain.
The flywheel only works if you actively maintain it. Assign ownership of the eval dataset. Review new additions for quality and deduplication. Remove examples that are no longer relevant (deprecated features, changed product behavior). Update expected outputs when your product requirements change. Treat your eval set as a living product artifact, not a static test suite.
Common Eval Mistakes
Evaluating on training data is the ML equivalent of teaching to the test. If your eval examples were included in the model's training data or fine-tuning data, your scores will be inflated and will not predict real-world performance. Always maintain a strict separation between training data and evaluation data. If you fine-tune a model, hold out at least 20% of your labeled data exclusively for evaluation.
Using a single aggregate score hides critical information. An overall quality score of 88% might mean the model is excellent at common queries (95%) and terrible at edge cases (45%). Disaggregate your metrics by use case category, input complexity, and user segment. Look for the failure clusters, not the averages.
Not testing adversarial inputs leaves you vulnerable to the scenarios most likely to cause public embarrassment. Users will try to jailbreak your model. They will ask questions in unexpected languages. They will paste in malicious content. They will find the one prompt that makes your model produce something offensive. Test for these scenarios before your users find them.
Letting evaluation become someone else's job is a structural mistake. The PM should own the eval framework the same way the PM owns the product roadmap. You can delegate the execution (running eval suites, building infrastructure) to engineering. But the PM must define the evaluation criteria, set the quality bars, and make the ship/no-ship decision based on eval results. If you are not reviewing eval results weekly, you are not doing your job as an AI PM.