Inferensys

Prompt

Risk Tier Assignment Prompt Template

A practical prompt playbook for safety platform builders assigning risk levels to request categories based on policy severity definitions. Produces tier labels, escalation paths, and required approval gates with consistency checks across similar request types.
Risk analyst performing AI risk assessment on laptop, risk matrices visible, casual office risk session.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, reader, and constraints for the Risk Tier Assignment Prompt Template.

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.

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

PROMPT PLAYBOOK

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.

text
You 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.

IMPLEMENTATION TABLE

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.

PlaceholderPurposeExampleValidation 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.

PROMPT PLAYBOOK

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.

IMPLEMENTATION TABLE

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 ElementType or FormatRequiredValidation 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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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

ADAPTATION OPTIONS

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
Prasad Kumkar

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.