This prompt is for safety platform builders, trust-and-safety engineers, and ML ops teams who need to translate organizational policy severity definitions into a consistent, machine-actionable risk tier for every request category. The job-to-be-done is not just classification; it is creating a repeatable, auditable mapping from a policy document and a request description to a structured risk label, an escalation path, and required approval gates. Use this when you are building or calibrating a safety enforcement pipeline and need every request type—from 'harmless chitchat' to 'regulated financial advice'—to land in the correct tier with clear downstream handling instructions.
Prompt
Risk Tier Assignment Prompt Template

When to Use This Prompt
Define the job, reader, and constraints for the Risk Tier Assignment Prompt Template.
This prompt is most effective when you have a defined, written safety policy with severity levels (e.g., 'Low: minor policy violation,' 'Critical: illegal or life-threatening content') and a taxonomy of request categories that need assignment. It expects you to provide the policy context, the request category, and a set of tier definitions. The output is not a free-text justification but a structured object containing the assigned tier, a confidence score, the escalation path, and a consistency check against similar categories. Do not use this prompt for real-time, per-message classification in a high-throughput chat system; it is a design-time or batch-calibration tool for building the routing rules that those real-time systems will later execute.
Avoid using this prompt when the policy itself is ambiguous, unwritten, or under active debate. The model cannot invent policy boundaries; it can only apply the definitions you provide. If you feed it vague severity descriptions, you will get inconsistent tier assignments that create compliance gaps. Before running this prompt, ensure your policy document has concrete, mutually exclusive tier definitions with examples. After running it, always conduct a human review of the assignments, especially for categories near tier boundaries, and run the companion Policy Enforcement Consistency Check prompt across your results to detect drift or bias.
Use Case Fit
Where the Risk Tier Assignment prompt works, where it fails, and the operational preconditions required before deploying it in a production safety platform.
Good Fit: Policy-to-Code Translation
Use when: You have a written safety policy with defined severity levels and need to convert it into machine-enforceable risk tiers. Guardrail: Always provide the full policy text as [POLICY_DOCUMENT] and require the model to cite specific policy clauses for each tier assignment.
Bad Fit: Ambiguous or Unwritten Policies
Avoid when: The organization has no documented safety policy, or policy language is intentionally vague. Risk: The model will invent plausible-sounding but ungrounded tier definitions that create compliance gaps. Guardrail: Require policy documentation as a hard input gate before invoking this prompt.
Required Inputs
Must have: A complete [POLICY_DOCUMENT] with severity definitions, a [REQUEST_CATEGORY_LIST] to classify, and a [TIER_DEFINITION_SCHEMA] specifying required output fields. Guardrail: Validate that all three inputs exist before calling the model. Missing inputs produce hallucinated tier structures.
Operational Risk: Inconsistent Tiering
What to watch: The same request category may receive different tier assignments across multiple runs, especially for edge cases near tier boundaries. Guardrail: Run consistency checks by sampling the same category multiple times and flagging variance above a defined threshold for human review.
Operational Risk: Escalation Path Gaps
What to watch: The model assigns a risk tier but the corresponding escalation path or approval gate is undefined in your production system. Guardrail: Post-process every tier assignment against a known escalation registry. Flag any tier that maps to a missing or incomplete workflow.
Not a Replacement for Legal Review
Avoid when: The tier assignment has legal or regulatory consequences without human sign-off. Risk: Model-generated risk tiers carry no legal weight and may misclassify regulated activities. Guardrail: All tier assignments affecting user access, content removal, or compliance reporting must pass through a human approval queue.
Copy-Ready Prompt Template
A reusable prompt template for assigning risk tiers, escalation paths, and approval gates to request categories based on policy severity definitions.
This prompt template is designed for safety platform builders who need to classify request categories into consistent risk tiers. It takes a request category description and the relevant policy severity definitions as input, then produces a structured risk assignment with tier labels, escalation paths, required approval gates, and consistency checks against similar request types. The template uses square-bracket placeholders so you can swap in your own policy documents, request categories, and output schemas without rewriting the core instruction logic.
textYou are a safety policy classification engine. Your task is to assign a risk tier to a given request category based on the provided policy severity definitions. ## INPUT Request Category: [REQUEST_CATEGORY_NAME] Category Description: [REQUEST_CATEGORY_DESCRIPTION] ## POLICY CONTEXT Severity Definitions: [POLICY_SEVERITY_DEFINITIONS] Reference Classifications (similar categories already classified): [REFERENCE_CLASSIFICATIONS] ## OUTPUT SCHEMA Return a valid JSON object with these fields: { "risk_tier": "low" | "medium" | "high" | "critical", "tier_label": "string (human-readable label matching policy taxonomy)", "confidence": 0.0-1.0, "rationale": "string (explain which severity criteria matched and why)", "escalation_path": "string (who reviews this tier: none, human_review, legal_review, executive_review)", "required_approval_gates": ["string (list of approval steps before response is allowed)"], "consistency_notes": "string (flag if this classification conflicts with any reference classification, and why)", "policy_citations": ["string (specific policy sections or clauses that apply)"] } ## CONSTRAINTS - If the category matches criteria for multiple tiers, assign the highest applicable tier. - If the category is ambiguous or spans tier boundaries, set confidence below 0.8 and flag the ambiguity in rationale. - Compare against reference classifications. If your assignment conflicts with a similar category, explain the conflict in consistency_notes. - Do not invent policy rules. Cite only from the provided severity definitions. - If the category description is insufficient to classify, return confidence 0.0 and request more detail in rationale. ## EXAMPLES [EXAMPLES] ## TOOLS [TOOLS]
To adapt this template for your environment, replace the square-bracket placeholders with your actual policy content. The [POLICY_SEVERITY_DEFINITIONS] placeholder should contain your organization's tier definitions with clear criteria for each level (for example, what makes something 'critical' versus 'high'). The [REFERENCE_CLASSIFICATIONS] field is essential for consistency—populate it with at least 5-10 previously classified categories so the model can calibrate its assignments. The [EXAMPLES] section should include 2-3 worked examples showing correct tier assignments with full rationale. If your system supports tool calls, use [TOOLS] to provide a function schema that enforces the output structure rather than relying on JSON parsing alone. Before deploying, run this prompt against a golden dataset of 20-50 known classifications and measure inter-rater agreement against human-labeled tiers. Any category where confidence falls below 0.8 or where consistency_notes flags a conflict should route to human review rather than being accepted automatically.
Prompt Variables
Placeholders required by the Risk Tier Assignment Prompt Template. Each variable must be populated before the prompt is sent to the model. Missing or malformed variables are the most common cause of inconsistent tier assignments.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[REQUEST_CATEGORY] | The user request category or use-case label being evaluated for risk tier assignment | generate_medical_advice | Must match a category defined in the policy taxonomy. Reject null or empty string. Validate against allowed category enum before prompt assembly. |
[POLICY_DEFINITIONS] | The complete set of risk tier definitions, severity levels, and escalation rules from the organization's safety policy | Tier 1: Critical Harm - Immediate human escalation required. Tier 2: High Risk - Approval gate mandatory. Tier 3: Moderate Risk - Logged and sampled. Tier 4: Low Risk - Autonomous handling permitted. | Must be non-empty and contain at least one tier definition with a severity label and action rule. Validate that tier labels are unique and action rules are parseable. Reject if only whitespace or placeholder text remains. |
[SIMILAR_CATEGORY_ASSIGNMENTS] | Previously assigned risk tiers for related request categories, used for consistency checking | medical_diagnosis: Tier 1, health_tips: Tier 3, symptom_checker: Tier 2 | Optional but strongly recommended. If provided, must be a parseable mapping of category to tier. Validate that referenced tiers exist in [POLICY_DEFINITIONS]. Null allowed but will disable consistency checks. |
[OUTPUT_SCHEMA] | The exact JSON schema or structured format the model must return, including tier label, confidence, escalation path, and approval gate fields | {"tier": "string", "confidence": 0.0-1.0, "escalation_path": "string", "approval_required": boolean, "rationale": "string"} | Must be a valid JSON Schema or TypeScript interface definition. Validate parseability before prompt assembly. Reject schemas that lack required fields: tier, confidence, escalation_path, approval_required. |
[CONSTRAINTS] | Additional behavioral constraints such as confidence thresholds, tie-breaking rules, or mandatory human-review triggers | If confidence below 0.7, escalate one tier higher. If similar categories have conflicting tiers, flag for human review. Never assign Tier 4 to regulated domains. | Optional. If provided, each constraint must be a complete, unambiguous sentence. Validate that constraint references (tier names, thresholds) are consistent with [POLICY_DEFINITIONS]. Null allowed. |
[EDGE_CASES] | Specific boundary scenarios that must be tested against the assigned tier for calibration | Request for first-aid information vs. request for surgical instructions. Request for legal information vs. request for legal advice. | Optional. If provided, each edge case must describe a distinguishable scenario pair. Validate that edge cases reference categories present in [REQUEST_CATEGORY] or [SIMILAR_CATEGORY_ASSIGNMENTS]. Null allowed. |
[PREVIOUS_ASSIGNMENT] | The last known tier assignment for this category, used to detect drift or inconsistency across reassignments | Tier 2 assigned on 2025-01-15 with confidence 0.85 | Optional. If provided, must include a tier label and assignment date. Validate that the tier label exists in [POLICY_DEFINITIONS]. If the new assignment differs, flag for human review. Null allowed. |
Implementation Harness Notes
How to wire the Risk Tier Assignment prompt into a production safety platform with validation, retries, and audit trails.
The Risk Tier Assignment prompt is not a standalone chatbot interaction. It belongs inside a safety platform pipeline that classifies request categories before they reach a downstream model or agent. The typical integration point is a pre-processing step: a new request category definition arrives from a policy update or a product change, and the platform must assign a risk tier, escalation path, and approval gate before that category can be used in enforcement logic. Wire this prompt as a synchronous API call with a strict timeout, because risk tier assignment is a gating decision that blocks downstream configuration if it fails or returns ambiguous results.
Build the harness around three layers: input assembly, output validation, and audit persistence. For input assembly, populate [POLICY_DOCUMENT] from your policy registry, [REQUEST_CATEGORY] from the category definition queue, and [RISK_TIER_DEFINITIONS] from your organization's severity taxonomy. If your taxonomy includes numeric severity scores, legal review requirements, or data sensitivity levels, include those in the definitions block. For output validation, enforce a strict schema check: the response must contain a risk_tier field matching one of your defined tiers, an escalation_path array with at least one entry, and a required_approval_gates array. Reject any response that invents tiers not in your taxonomy or omits the escalation path. If validation fails, retry once with the validation error message appended to the prompt as [PREVIOUS_ERROR]. After a second failure, route to a human review queue rather than guessing. For audit persistence, log the full prompt, the model response, the validator result, the assigned tier, and the operator who approved or overrode the decision. This log becomes your evidence trail when auditors ask why a particular category was classified as low-risk.
Model choice matters here. Use a model with strong instruction-following and structured output support, such as GPT-4o or Claude 3.5 Sonnet, because the prompt requires precise adherence to a defined taxonomy and consistent reasoning across similar categories. Avoid smaller or older models that are more likely to hallucinate tier names or skip the escalation path. If you run this prompt in batch mode across dozens of new categories, add a consistency check as a post-processing step: after all categories are assigned, run a second pass that compares tiers across semantically similar categories and flags any that diverge by more than one severity level. This catches the most common production failure mode—inconsistent tier assignment across related request types—before the tiers are committed to enforcement configuration. Finally, never allow the model's output to directly update production policy enforcement rules without human approval. The prompt's required_approval_gates field should map to actual approval workflows in your policy management system, not just advisory text.
Expected Output Contract
Each risk tier assignment must conform to this contract before downstream routing or approval gating can proceed. Validate every field programmatically after the model responds.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
risk_tier | enum: low | medium | high | critical | unassignable | Must match one of the five enum values exactly. Reject any other string. | |
tier_rationale | string, 1-3 sentences | Must cite at least one policy clause from [POLICY_DOCUMENT]. Reject if rationale is empty or contains only generic language. | |
policy_clause_refs | array of strings, format POLICY-SECTION-NUMBER | Each element must match the pattern ^[A-Z]+-\d+(.\d+)*$. Reject if array is empty or any element fails the pattern. | |
escalation_path | enum: none | human_review | human_approval | block_and_report | Must be 'none' only when risk_tier is 'low'. Must be 'block_and_report' when risk_tier is 'critical'. Reject violations. | |
confidence_score | number, 0.0 to 1.0 | Must be a float between 0 and 1 inclusive. Reject if confidence is below [MIN_CONFIDENCE_THRESHOLD] when risk_tier is 'medium' or higher. | |
request_category | string from [ALLOWED_CATEGORIES] list | Must exactly match a value in the provided allowed-categories enumeration. Reject unknown or misspelled categories. | |
unassignable_reason | string or null | Required and non-null only when risk_tier is 'unassignable'. Must explain why classification failed. Reject if null when tier is 'unassignable'. | |
audit_timestamp | ISO-8601 UTC string | Must parse as a valid ISO-8601 datetime in UTC. Reject if timestamp is in the future or unparseable. |
Common Failure Modes
Risk tier assignment prompts fail in predictable ways that undermine safety enforcement. These cards cover the most common failure modes and how to guard against them before they reach production.
Tier Inflation Under Ambiguity
What to watch: When a request sits near a policy boundary, the model defaults to a higher risk tier to avoid being wrong. This creates false-positive escalations that flood review queues and erode trust in the system. Guardrail: Add explicit tie-breaking rules in the prompt that instruct the model to default to the lower tier when confidence is below a defined threshold, and flag the item for human sampling rather than automatic escalation.
Inconsistent Tier Assignment Across Similar Requests
What to watch: Two requests with nearly identical risk profiles receive different tier labels because the model latches onto surface-level wording differences rather than underlying intent. This breaks auditability and creates enforcement gaps. Guardrail: Include few-shot examples that pair semantically similar requests with identical tier assignments, and add a consistency check instruction that asks the model to compare the current request against its last assigned tier before finalizing.
Policy Scope Creep in Tier Definitions
What to watch: The model expands a tier's scope beyond what the policy document actually defines, pulling in adjacent request types that should be handled at a different tier or not flagged at all. This happens when tier descriptions use broad language like 'harmful' or 'sensitive' without concrete boundaries. Guardrail: Define each tier with explicit inclusion and exclusion examples in the prompt. Add a validation step that checks whether the assigned tier's definition actually covers the specific request category before accepting the output.
Missing Escalation Path for Edge Cases
What to watch: The model assigns a risk tier but fails to specify the correct escalation path, approval gate, or human-review trigger required by that tier. The output looks complete but is operationally broken because downstream systems don't know what to do with it. Guardrail: Require the output schema to include a mandatory escalation_path field for every tier above the lowest severity. Add a post-processing validator that rejects any assignment where the escalation field is null or doesn't match a known workflow.
Confidence Overstatement on Novel Request Types
What to watch: The model assigns a high-confidence tier label to a request pattern it hasn't seen before, masking uncertainty that should trigger human review. This is especially dangerous for emerging harm categories that weren't in the training data. Guardrail: Add an explicit uncertainty instruction that requires the model to output a confidence_score and a novelty_flag. When the novelty flag is true, force the output to the review queue regardless of the assigned tier. Calibrate with a held-out set of novel edge cases during eval.
Jurisdiction Mismatch in Multi-Region Deployments
What to watch: The model applies a single jurisdiction's risk framework to a request that should be evaluated under a different region's policy, producing a tier assignment that is legally incorrect for the user's location. This is common when the prompt doesn't include jurisdiction context or when the model ignores it. Guardrail: Require a jurisdiction input field and include jurisdiction-specific tier mappings in the prompt. Add a pre-validation check that confirms the assigned tier exists in the correct jurisdiction's policy before the output is accepted.
Evaluation Rubric
Use this rubric to test the quality and consistency of risk tier assignments before deploying the prompt into a production safety system. Each criterion targets a known failure mode in policy enforcement classification.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Tier Label Consistency | Identical request types receive the same tier label across 5 repeated runs | Tier label flips between adjacent levels without a change in request content | Run 5 identical requests; assert all output tier labels match exactly |
Escalation Path Validity | Escalation path matches the defined path for the assigned tier in the policy config | Escalation path references an undefined role, queue, or approval gate | Parse escalation field; validate against allowed escalation paths per tier in [POLICY_CONFIG] |
Approval Gate Accuracy | Approval gate is required when tier is high-risk or critical; optional or none for low-risk | High-risk tier assigned but approval gate set to none or missing | Cross-reference tier label with approval gate field; assert required gates are present for tiers above [RISK_THRESHOLD] |
Severity Alignment | Assigned tier severity matches the policy severity definition for the request category | Request matches a defined severe category but receives a low-risk tier | Map request category to expected severity in [POLICY_DEFINITIONS]; compare with assigned tier |
Confidence Score Calibration | Confidence score is 0.85 or higher for unambiguous policy matches; below 0.70 triggers escalation | High-confidence score assigned to a request that matches multiple conflicting policy categories | Run boundary-case requests from [EDGE_CASE_SET]; assert confidence drops below 0.70 for ambiguous cases |
Refusal Justification Completeness | Justification includes policy citation, specific violation description, and tier rationale | Justification is generic, missing policy reference, or copies the request text without analysis | Check justification field for presence of policy ID, violation type, and non-trivial rationale string |
Boundary Case Handling | Requests at policy boundaries are flagged for human review or assigned with explicit uncertainty | Boundary request receives a definitive tier without any uncertainty flag or review marker | Run [BOUNDARY_TEST_SET]; assert review_flag is true or confidence is below [BOUNDARY_THRESHOLD] |
Multi-Policy Conflict Resolution | When multiple policies apply, output includes conflict note, precedence decision, and audit trail | Conflicting policies result in an arbitrary tier pick without documentation of the conflict | Run [CONFLICT_TEST_SET]; assert conflict_note field is populated and precedence rationale is non-empty |
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
Use the base prompt with a frontier model and manual review of every output. Keep the policy definitions inline and accept a simple JSON structure without strict schema enforcement. Focus on getting tier labels and escalation paths correct before adding gates.
code[POLICY_DEFINITIONS] [REQUEST_CATEGORY] Assign a risk tier: low, medium, high, critical. Return JSON with tier, rationale, and escalation_path.
Watch for
- Inconsistent tier assignment across similar request types
- Missing escalation paths for high and critical tiers
- Overly broad "medium" assignments that avoid hard decisions

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