This prompt is for evaluation leads, AI engineers, and QA teams who need to grade model outputs when a set of prioritized constraints cannot all be satisfied simultaneously. The core job-to-be-done is producing a structured, defensible report on which constraints were sacrificed, whether the model's trade-off was appropriate given the defined precedence rules, and an overall judgment of the output's quality. You should use this prompt when you have a list of ranked requirements, a model output that had to navigate conflicts between them, and a need for an audit trail explaining the model's prioritization behavior.
Prompt
Multi-Constraint Priority and Trade-Off Evaluation Prompt

When to Use This Prompt
Defines the job, ideal user, and constraints for the Multi-Constraint Priority and Trade-Off Evaluation Prompt.
This is not a prompt for simple pass/fail checks on independent constraints. If your constraints are non-conflicting and can be evaluated in isolation, use the Multi-Constraint Instruction Adherence Grading Prompt instead. This prompt assumes you have already defined constraint precedence rules—either as an explicit ranking, a weighting scheme, or a policy document—and are now evaluating whether the model respected those rules when forced to choose. The prompt requires you to provide the original instructions given to the model, the prioritized constraint list with precedence rules, the model's output, and any context about the task's risk tolerance. Without clear precedence rules, the evaluation becomes subjective and the prompt's output will be unreliable.
Before using this prompt, ensure your constraint precedence is documented and agreed upon by stakeholders. The prompt will not invent priorities for you; it will only judge whether the model's trade-offs align with the rules you provide. For high-risk domains such as healthcare, legal, or finance, always include a human review step after the automated evaluation, as trade-off judgments can have downstream consequences that require domain expertise to validate.
Use Case Fit
Where the Multi-Constraint Priority and Trade-Off Evaluation Prompt works and where it introduces risk. Use this to decide if the prompt fits your evaluation pipeline before you invest in constraint weighting and precedence rules.
Good Fit: Conflicting Constraints
Use when: outputs must satisfy multiple constraints that cannot all be met simultaneously, and you need a structured report on which constraints were sacrificed and why. Guardrail: define explicit precedence rules and constraint weights before running the evaluation so the judge has a clear priority hierarchy.
Good Fit: Pre-Deployment Gate
Use when: you need an automated gate that decides whether a trade-off was acceptable before an output reaches production. Guardrail: pair this prompt with a human review step for high-severity trade-offs where the model deprioritized a safety or compliance constraint.
Bad Fit: Single-Constraint Checks
Avoid when: you only need to verify one constraint at a time. This prompt adds unnecessary complexity and token cost. Guardrail: use a simpler pass/fail or format compliance prompt for single-constraint verification and reserve this prompt for multi-constraint conflict scenarios.
Bad Fit: No Precedence Rules Defined
Avoid when: your team has not agreed on which constraints take priority over others. Without precedence rules, the judge's trade-off assessment will be arbitrary. Guardrail: document and version your constraint precedence rules alongside the prompt template before running evaluations at scale.
Required Inputs
What you need: the original output under evaluation, the full list of constraints with weights and precedence rules, and the input context that generated the output. Guardrail: missing context leads to false compliance judgments because the judge cannot assess whether a trade-off was contextually appropriate.
Operational Risk: Judge Drift
Risk: the LLM judge may apply different trade-off standards across evaluation runs, especially as constraint lists grow. Guardrail: calibrate the judge against a golden dataset of known trade-off decisions and monitor inter-rater reliability across evaluation batches to detect drift early.
Copy-Ready Prompt Template
A reusable judge prompt for evaluating how well a model output navigates conflicting constraints, with placeholders for your specific evaluation context.
This template is designed to be copied directly into your evaluation harness. It instructs a judge model to assess a candidate output against multiple constraints that may conflict, requiring the judge to identify which constraints were prioritized, which were sacrificed, and whether the trade-off was appropriate given the precedence rules you define. Replace every square-bracket placeholder with your specific constraints, precedence rules, and evaluation context before sending this to the judge model.
textYou are an expert evaluation judge. Your task is to assess a candidate model output against multiple constraints that may conflict with each other. You must determine which constraints were satisfied, which were sacrificed, and whether the trade-off decisions were appropriate given the defined precedence rules. ## CONSTRAINTS AND PRECEDENCE RULES Below are the constraints the model was required to follow, listed in priority order from highest to lowest. When constraints conflict, higher-priority constraints must be satisfied at the expense of lower-priority ones. [CONSTRAINT_LIST_WITH_PRIORITIES] Example format: 1. [HIGHEST_PRIORITY_CONSTRAINT] - Must be satisfied even if it breaks lower-priority constraints. 2. [MEDIUM_PRIORITY_CONSTRAINT] - Should be satisfied unless it conflicts with constraint 1. 3. [LOWEST_PRIORITY_CONSTRAINT] - Satisfy if possible without breaking higher-priority constraints. ## CANDIDATE OUTPUT TO EVALUATE
[CANDIDATE_OUTPUT]
code## INPUT CONTEXT (if applicable) [INPUT_CONTEXT] ## EVALUATION INSTRUCTIONS 1. For each constraint, determine whether it was SATISFIED, PARTIALLY SATISFIED, or VIOLATED. 2. For any constraint that was VIOLATED or PARTIALLY SATISFIED, identify whether the violation was: - JUSTIFIED: The constraint was sacrificed to satisfy a higher-priority constraint. - UNJUSTIFIED: The constraint was violated without a valid higher-priority reason. - AVOIDABLE: The constraint could have been satisfied without breaking higher-priority constraints. 3. Assess the overall trade-off quality: - APPROPRIATE: All trade-offs correctly followed the precedence rules. - MOSTLY APPROPRIATE: Minor deviations from ideal trade-offs, but overall priority order was respected. - INAPPROPRIATE: Higher-priority constraints were sacrificed for lower-priority ones, or unnecessary violations occurred. 4. Provide a final judgment: PASS or FAIL. - PASS: All highest-priority constraints are satisfied, and any violations are justified by the precedence rules. - FAIL: A highest-priority constraint was violated, or unjustified/avoidable violations occurred. ## OUTPUT FORMAT Return a JSON object with this exact structure: { "overall_judgment": "PASS" | "FAIL", "trade_off_quality": "APPROPRIATE" | "MOSTLY_APPROPRIATE" | "INAPPROPRIATE", "constraint_results": [ { "constraint_id": "string", "priority_level": number, "description": "string", "status": "SATISFIED" | "PARTIALLY_SATISFIED" | "VIOLATED", "violation_type": "JUSTIFIED" | "UNJUSTIFIED" | "AVOIDABLE" | null, "explanation": "string explaining the assessment with specific evidence from the output" } ], "trade_off_analysis": "string summarizing which trade-offs were made and whether they respected the precedence rules", "failure_mode": "string describing the primary failure if judgment is FAIL, or null if PASS" } ## ADDITIONAL GUIDANCE - If the candidate output found a creative way to satisfy conflicting constraints simultaneously, note this in the trade-off analysis and treat it as a positive outcome. - If the candidate output ignored all constraints entirely, mark all as VIOLATED with violation_type UNJUSTIFIED and judgment FAIL. - If the precedence rules themselves contain ambiguity, note this in the trade-off analysis but still apply your best interpretation. - Base your assessment strictly on the output provided. Do not speculate about what the model might have intended.
To adapt this template, replace [CONSTRAINT_LIST_WITH_PRIORITIES] with your actual constraints ordered by importance. Each constraint should be a clear, verifiable statement—avoid vague instructions like "be helpful" in favor of testable conditions like "response must include a citation for every factual claim." Replace [CANDIDATE_OUTPUT] with the text you are evaluating, and [INPUT_CONTEXT] with any user query, retrieved documents, or system context that the model received. If your use case requires different output fields, modify the JSON schema in the OUTPUT FORMAT section, but preserve the per-constraint status tracking and violation-type classification—these are essential for diagnosing whether failures were acceptable trade-offs or genuine errors.
Before deploying this prompt into an evaluation pipeline, test it against at least three hand-labeled examples: one where the model correctly prioritized constraints, one where it made an unjustified trade-off, and one edge case where constraints are in direct tension. Verify that the judge's PASS/FAIL decisions and violation-type classifications match your human judgments. If the judge consistently disagrees with human raters on borderline cases, refine the constraint descriptions or add examples of acceptable versus unacceptable trade-offs to the ADDITIONAL GUIDANCE section. For high-stakes evaluation contexts—such as regulated outputs, safety-critical decisions, or customer-facing content—always maintain a human review step for FAIL judgments before taking automated action.
Prompt Variables
Inputs the prompt needs to work reliably. Validate each before sending to the judge model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CONSTRAINTS] | Ordered list of constraints with precedence rules |
| Parse as JSON array of objects with 'priority', 'rule', and 'type' fields. Reject if empty or missing P0 constraint. |
[OUTPUT_TO_EVALUATE] | The generated text or structured output being judged for constraint compliance | {"summary": "Market conditions remain volatile...", "disclaimer": "This is not financial advice."} | Non-null string or object. Truncate if over 32k characters. Validate encoding is UTF-8. Reject binary or empty payloads. |
[TRADE_OFF_POLICY] | Explicit instruction for how the judge should resolve conflicts between constraints | Always prioritize safety constraints (P0) over stylistic constraints (P2). A missing disclaimer is a hard fail even if tone is perfect. | Must be a non-empty string. Check for presence of priority resolution language. If null, default to strict precedence ordering. |
[OUTPUT_SCHEMA] | Expected structure of the judge's compliance report | {"overall_judgment": "PASS|FAIL|PARTIAL", "constraint_results": [...], "trade_off_analysis": "...", "severity": "BLOCKER|WARNING"} | Validate against JSON Schema. Required fields: overall_judgment, constraint_results, trade_off_analysis. Reject if schema is not valid JSON. |
[PRECEDENCE_RULES] | Explicit ordering for constraint priority when conflicts are detected | P0 > P1 > P2. Safety constraints override all others. Format constraints override stylistic constraints. | Parse as ordered array or map. Must define total ordering. Reject if circular references or undefined priority levels are detected. |
[FAILURE_THRESHOLD] | Minimum number or severity of constraint violations that trigger an overall FAIL judgment | Any single P0 violation = FAIL. Two or more P1 violations = FAIL. P2 violations alone = PARTIAL. | Must be a parseable rule definition. Validate threshold logic is deterministic. Reject ambiguous or contradictory threshold rules. |
[CONTEXT] | Optional background information that helps the judge understand the domain or intent of the output | This summary was generated for a regulated financial services dashboard viewed by retail investors. | Null allowed. If provided, must be under 2000 tokens. Strip any PII or sensitive data before passing to judge model. |
Implementation Harness Notes
How to wire the Multi-Constraint Priority and Trade-Off Evaluation Prompt into an application as a secondary evaluation step.
This prompt is designed to run as a secondary evaluation step after a primary model generates its output. It should be wired into an evaluation pipeline, not a real-time user-facing flow. The typical harness pattern is: primary generation → output capture → constraint evaluation → compliance report → gating decision. The evaluation prompt receives the original instructions, the constraint precedence rules, and the generated output, then returns a structured compliance report that your application can parse and act on.
For implementation, wrap the prompt in a function that accepts primary_output, constraints (an ordered list with id, description, priority, and precedence_rule fields), and trade_off_policy (a string describing acceptable sacrifice rules). Validate inputs before calling the model: ensure constraints are non-empty, priorities are numeric and unique, and the primary output is a non-empty string. On the model response, parse the JSON output and validate the schema—check that overall_judgment is one of PASS, FAIL, or CONDITIONAL_PASS, that each constraint has a compliance field with FULL, PARTIAL, or FAILED, and that any PARTIAL or FAILED constraint includes a trade_off_rationale. If parsing fails, retry once with a repair prompt that includes the raw response and the expected schema. Log every evaluation result with the prompt version, model used, timestamp, and constraint set for auditability.
Model choice matters here. Use a model with strong instruction-following and structured output capabilities—GPT-4o, Claude 3.5 Sonnet, or equivalent. Avoid smaller models that may conflate priority levels or produce inconsistent JSON. For high-stakes domains like healthcare or finance, route CONDITIONAL_PASS and FAIL results to a human review queue before blocking deployment. Store evaluation results alongside the primary output in your observability system so you can track constraint compliance drift over time. Never use this prompt as the sole gate for safety-critical constraints without human-in-the-loop confirmation.
Expected Output Contract
Define the exact shape, types, and validation rules for the judge model's priority-aware compliance report. Use this contract to build a parser, validator, and retry harness before integrating the judge into an evaluation pipeline.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
overall_judgment | enum: ['PASS', 'FAIL', 'CONDITIONAL_PASS'] | Must be one of the three allowed values. Reject any other string. | |
overall_score | number (0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Parse check: JSON number type, not string. | |
constraint_results | array of objects | Must be a non-empty array. Each element must match the constraint_result schema below. | |
constraint_results[].constraint_id | string | Must match one of the constraint IDs provided in [CONSTRAINT_DEFINITIONS]. No unknown IDs allowed. | |
constraint_results[].priority_rank | integer | Must be a positive integer corresponding to the precedence order in [PRIORITY_RULES]. No duplicate ranks across constraints. | |
constraint_results[].compliance | enum: ['FULL', 'PARTIAL', 'NONE'] | Must be one of the three allowed values. Reject any other string. | |
constraint_results[].trade_off_explanation | string or null | Required when compliance is 'PARTIAL' or 'NONE'. Must be null when compliance is 'FULL'. String must be 10-500 characters. | |
trade_off_summary | string | Must be present. Length between 20 and 1000 characters. Must reference at least one constraint_id from constraint_results. |
Common Failure Modes
When evaluating multi-constraint priority and trade-offs, these failure modes surface first. Each card identifies a specific breakdown and the guardrail that catches it before it reaches production.
Silent Constraint Dropping
What to watch: The model ignores a low-weight constraint entirely rather than deprioritizing it, producing output that appears compliant but is missing a required dimension. This happens most often when constraints are implied rather than explicit. Guardrail: Require the evaluator prompt to list every constraint from the input and explicitly mark each as satisfied, partially satisfied, or violated—never omitted.
Precedence Inversion Under Pressure
What to watch: When constraints conflict, the model elevates a lower-precedence constraint above a higher one because the lower-precedence constraint is easier to satisfy or more familiar. The output looks reasonable but violates the explicit priority order. Guardrail: Include a precedence verification step in the eval prompt that checks the highest-weight violated constraint against the lowest-weight satisfied constraint and flags inversions.
False Balance in Trade-Off Scoring
What to watch: The judge assigns middling scores across all constraints to avoid making a hard call, masking that a critical constraint was sacrificed for a trivial one. This produces a passing score for a failing output. Guardrail: Require the judge to produce a binary pass/fail on the top-weighted constraint before computing any aggregate score, and fail the output if that constraint is not met regardless of other scores.
Weight Dilution Across Many Constraints
What to watch: When too many low-weight constraints are satisfied, the aggregate score passes even though a single high-weight constraint failed. The scoring formula hides the critical failure. Guardrail: Use a weighted minimum or threshold-gated scoring function rather than a simple weighted average, so that any high-weight failure caps the maximum possible score.
Undefined Constraint Interaction Surprises
What to watch: Two constraints interact in an unanticipated way—satisfying one makes the other impossible—and the model picks one without documenting the interaction. The output passes individual checks but fails the combined intent. Guardrail: Include a constraint-interaction detection pass before scoring that identifies mutually exclusive or zero-sum constraint pairs and requires the model to acknowledge the conflict explicitly in its reasoning.
Judge Overfitting to Surface Features
What to watch: The LLM judge scores based on fluency, formatting, or keyword presence rather than actual constraint satisfaction, especially when the output is well-written but substantively non-compliant. Guardrail: Include counterexample calibration in the judge prompt—show a fluent but non-compliant example that should fail, and a clumsy but compliant example that should pass—to anchor the judge to substance over style.
Evaluation Rubric
How to test the judge prompt's output quality before relying on it in production. Run these checks against a golden dataset of 20-50 examples with known trade-off outcomes.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Constraint Identification Accuracy | All declared constraints from [CONSTRAINT_LIST] appear in the output with correct IDs | Missing constraint ID or hallucinated constraint not present in input | Parse output JSON; extract constraint_ids set; compare to input constraint_ids set; assert set equality |
Priority Order Adherence | Top-ranked constraint in [PRIORITY_ORDER] is never sacrificed for a lower-ranked constraint unless [PRECEDENCE_RULES] explicitly allow it | Output shows a P1 constraint sacrificed while a P3 constraint is satisfied with no precedence override documented | For each sacrificed constraint, verify its priority rank is lower than all satisfied constraints; flag any inversion |
Trade-Off Justification Quality | Every sacrificed constraint has a justification field with a non-empty reason referencing the conflicting constraint ID | Sacrificed constraint has null, empty, or generic justification like 'not possible' without naming the conflict | Iterate sacrificed_constraints array; assert justification is present, length > 20 chars, and contains a reference to another constraint ID |
Overall Judgment Consistency | Overall judgment matches a deterministic rule: pass if all P0 constraints satisfied; fail if any P0 sacrificed; warn otherwise | Output shows pass when a P0 constraint is sacrificed, or fail when only P2 constraints are sacrificed | Apply decision rule to per-constraint results; compare to overall_judgment field; assert match |
Confidence Score Calibration | Confidence score is between 0.0 and 1.0 and correlates with number of sacrificed constraints (more sacrifices = lower confidence) | Confidence is 0.95 when 5 constraints are sacrificed, or confidence is outside 0-1 range | Assert 0.0 <= confidence <= 1.0; compute Pearson correlation between confidence and sacrifice_count across golden set; assert r < -0.3 |
Output Schema Validity | Output parses as valid JSON matching [OUTPUT_SCHEMA] with all required fields present and correct types | JSON parse error, missing required field, or field type mismatch (e.g., string where array expected) | Validate against JSON Schema; assert no parse errors and all required fields present with correct types |
Golden Dataset Agreement | Judge output agrees with human-labeled trade-off outcome on >= 85% of golden examples | Agreement rate below 85% or systematic disagreement on specific constraint types | Run judge on full golden dataset; compute exact match on overall_judgment; assert agreement_rate >= 0.85; review per-constraint-type accuracy for bias |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a small set of 3-5 constraints with explicit priorities. Use a single LLM call without schema validation. Manually review 10-20 outputs to calibrate whether the priority logic matches your intent.
Simplify the output format to a plain-text summary before investing in structured JSON. Replace the full constraint weighting harness with inline priority labels like [P1], [P2], [P3] directly in the constraint list.
Watch for
- The model ignoring priority order and treating all constraints equally
- Trade-off justifications that sound reasonable but don't match your actual precedence rules
- Overly verbose explanations that bury the actual compliance verdict

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us