Inferensys

Prompt

Risk Metric and Model Output Verification Prompt

A practical prompt playbook for using Risk Metric and Model Output Verification Prompt in production AI workflows. Covers VaR, expected shortfall, probability of default, and risk score validation with harness notes for tail risk underestimation and model assumption violations.
Risk analyst performing AI risk assessment on laptop, risk matrices visible, casual office risk session.
PROMPT PLAYBOOK

When to Use This Prompt

Understand the job-to-be-done, ideal user, required context, and when not to use this prompt for risk metric and model output verification.

This prompt is designed for risk, compliance, and model validation teams who need to verify quantitative risk metrics and model outputs against source data, methodology documentation, and regulatory expectations. Use it when you have a specific risk claim—such as a reported VaR figure, an expected shortfall estimate, or a probability of default score—and the underlying data, model documentation, or backtesting results to check it against. The prompt forces structured reasoning about model assumptions, data quality, tail risk, and backtesting performance rather than producing a simple pass/fail answer. It is appropriate for second-line validation, audit evidence preparation, and pre-committee review of risk numbers.

This is not a prompt for generating risk metrics from raw data; it verifies claims that have already been produced by a model or analyst. You should avoid using this prompt when you lack access to the underlying methodology documentation, input data samples, or backtesting results—without these, the verification output will be speculative rather than evidence-based. The prompt assumes you can provide the claim itself, the model type and assumptions, a description of the input data, and any available validation or backtesting evidence. If you only have the final risk number with no supporting context, start by gathering that documentation before invoking this verification workflow.

Before using this prompt, confirm that the risk claim is stated precisely with its time horizon, confidence level, and methodology. Vague claims like 'the portfolio is low risk' cannot be verified with this prompt; you need specific, falsifiable assertions such as 'the 1-day 99% historical simulation VaR is $2.3M as of Q3 close.' The prompt works best when you can provide structured inputs including the claim statement, model documentation excerpts, data quality notes, and backtesting summary statistics. If your workflow involves multiple risk metrics or a full model validation report, run this prompt once per claim to maintain verification granularity and audit trail clarity. For production deployments, always route outputs through a human reviewer when the verification flags model assumption violations, data quality issues, or backtesting failures that could affect regulatory capital or risk limits.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Risk Metric and Model Output Verification Prompt works and where it introduces operational risk. Use these cards to decide if this prompt fits your workflow before integrating it into a production pipeline.

01

Good Fit: Model Validation Reports

Use when: you have a complete model documentation package including methodology, input data summaries, and backtesting results. Why: the prompt cross-references claims against provided evidence and flags assumption violations. Guardrail: always attach the full model doc as [MODEL_DOCUMENTATION] and the raw backtesting output as [BACKTEST_DATA].

02

Bad Fit: Live Trading Decisions

Avoid when: the output directly triggers trades, position changes, or automated risk limits without human review. Risk: the prompt verifies documentation claims, not real-time market conditions, and may miss regime shifts. Guardrail: route verified outputs through a human risk officer before any execution action.

03

Required Input: Structured Evidence Package

What to watch: the prompt cannot verify claims from memory or training data alone. Guardrail: require [MODEL_DOCUMENTATION], [BACKTEST_DATA], [STRESS_TEST_RESULTS], and [INPUT_DATA_QUALITY_REPORT] as mandatory inputs. If any are missing, abort verification and request the missing artifact.

04

Operational Risk: Tail Risk Underestimation

What to watch: the prompt may accept VaR or expected shortfall claims that pass backtesting but fail under unseen tail events. Guardrail: add a [STRESS_TEST_COVERAGE] check that explicitly flags gaps in extreme scenario coverage and requires a human sign-off for any model with fewer than three stress scenarios.

05

Operational Risk: Model Assumption Drift

What to watch: the prompt may verify claims against stated assumptions without detecting that those assumptions no longer hold in production. Guardrail: include an [ASSUMPTION_VALIDITY_CHECK] step that compares documented assumptions against recent market or portfolio data, and escalate any mismatch to a model risk manager.

06

Operational Risk: Input Data Quality Blindness

What to watch: the prompt may verify model output correctness while accepting flawed input data. Guardrail: require a pre-verification [INPUT_DATA_QUALITY_REPORT] and configure the prompt to refuse verification if completeness, freshness, or accuracy thresholds are breached.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A copy-ready prompt for verifying risk metrics and model outputs against source data, assumptions, and regulatory expectations.

This prompt template is designed to verify a single risk metric or model output claim against provided source data, model documentation, and specified constraints. It forces the model to act as a verification analyst, not a risk modeler. The prompt requires the model to check calculation methodology, input data quality, assumption validity, and backtesting alignment before returning a structured verification result. Use this template when you have a specific quantitative claim from a risk report, model output, or compliance filing that must be validated against evidence.

text
You are a risk model verification analyst. Your task is to verify a single risk metric or model output claim against provided evidence. You must not generate new risk calculations or substitute missing data. If evidence is insufficient, you must flag the claim as unverified rather than guessing.

## CLAIM TO VERIFY
[CLAIM]

## SOURCE DATA
[DATA]

## MODEL DOCUMENTATION
[MODEL_DOCS]

## VERIFICATION CONSTRAINTS
- Tolerance window for numerical comparison: [TOLERANCE]
- Required confidence level for verification: [CONFIDENCE_LEVEL]
- Regulatory framework to check against: [REGULATORY_FRAMEWORK]
- Time period alignment requirement: [TIME_PERIOD]

## VERIFICATION STEPS
1. Extract the precise quantitative claim, including units, time period, and confidence level if stated.
2. Identify the calculation methodology implied by the claim (e.g., historical simulation VaR, parametric ES, through-the-cycle PD).
3. Check input data completeness, freshness, and alignment with the claim's time period.
4. Verify the calculation by reproducing it from the source data using the stated or implied methodology.
5. Compare the reproduced value against the claimed value using the specified tolerance window.
6. Check model assumptions stated in the documentation against the data characteristics (e.g., normality, stationarity, independence).
7. If backtesting results are provided, check whether the claim is consistent with backtesting outcomes.
8. Flag any assumption violations, data gaps, or methodology deviations.

## OUTPUT SCHEMA
Return a JSON object with this exact structure:
{
  "claim_summary": "string summarizing the claim",
  "verification_status": "VERIFIED | UNVERIFIED | CONTRADICTED | PARTIALLY_VERIFIED",
  "reproduced_value": number or null,
  "claimed_value": number or null,
  "deviation": number or null,
  "within_tolerance": boolean,
  "methodology_check": {
    "methodology_identified": "string",
    "methodology_applied_correctly": boolean or null,
    "methodology_notes": "string"
  },
  "data_quality_check": {
    "data_complete": boolean,
    "data_fresh": boolean,
    "data_aligned_with_period": boolean,
    "data_issues": ["string"]
  },
  "assumption_check": {
    "assumptions_stated": ["string"],
    "assumptions_violated": ["string"],
    "assumption_notes": "string"
  },
  "backtesting_alignment": {
    "backtesting_provided": boolean,
    "claim_consistent_with_backtest": boolean or null,
    "backtesting_notes": "string"
  },
  "regulatory_alignment": {
    "framework_checked": "string",
    "regulatory_concerns": ["string"]
  },
  "evidence_gaps": ["string"],
  "overall_confidence": "HIGH | MEDIUM | LOW",
  "recommendation": "string summarizing next steps or required remediation"
}

## CRITICAL RULES
- If source data is missing fields needed for verification, set verification_status to UNVERIFIED and list missing fields in evidence_gaps.
- If the claim involves tail risk (VaR, ES), explicitly check for tail risk underestimation due to assumption violations.
- If model assumptions are violated, downgrade overall_confidence and explain why in assumption_notes.
- Do not invent data, assumptions, or methodology details not present in the provided inputs.
- If the tolerance window is not specified, default to ±5% for value comparisons and flag this default in your output.

After pasting this template, replace each square-bracket placeholder with concrete values before execution. The [CLAIM] should be a single, atomic quantitative assertion (e.g., 'One-day 99% VaR is $2.3M as of 2024-12-31'). The [DATA] placeholder should contain the raw data needed to reproduce the calculation, not summaries. For [MODEL_DOCS], include the relevant sections of model documentation that describe methodology, assumptions, and limitations. Set [TOLERANCE] based on your organization's materiality thresholds—tighter for regulatory reporting, wider for exploratory analysis. If backtesting results are not available, the prompt will handle this gracefully by marking backtesting_provided as false. Always route HIGH or MEDIUM confidence results with regulatory concerns to human review before using them in compliance filings.

IMPLEMENTATION TABLE

Prompt Variables

Every placeholder the Risk Metric and Model Output Verification Prompt expects, why it matters for production verification, and what valid inputs look like.

PlaceholderPurposeExampleValidation Notes

[RISK_METRIC_CLAIM]

The full text of the risk metric assertion to verify, including the metric name, value, and any qualifying statements

Portfolio VaR at 99% confidence is $2.3M over a 1-day horizon

Must contain a numeric value and a metric type identifier; reject empty strings or purely qualitative statements

[MODEL_OUTPUT_CONTEXT]

Supporting model documentation including methodology description, parameter settings, and output format specification

Historical simulation with 500 scenarios, equally weighted, 2-year lookback window

Must include methodology identifier and at least one parameter; null allowed if verification is purely calculation-based

[SOURCE_DATA_SCHEMA]

Schema definition for the input data used in the risk calculation, including field names, types, and expected ranges

{"fields": [{"name": "pnl_vector", "type": "float64[]", "constraints": {"min_length": 500}}]}

Must be valid JSON schema; validate field count matches model input expectations; reject if missing required fields

[BACKTEST_RESULTS]

Structured backtesting output including realized vs predicted exceedances, Kupiec test statistic, and coverage ratio

{"expected_exceedances": 5, "actual_exceedances": 12, "kupiec_pvalue": 0.003, "periods": 500}

Must contain actual_exceedances and periods fields; validate that actual_exceedances <= periods; reject negative values

[STRESS_TEST_SCENARIOS]

Array of stress scenario definitions with shock magnitudes, affected risk factors, and correlation assumptions

[{"scenario": "2008-style credit spread widening", "shocks": {"credit_spread": "+300bps"}}]

Must be a non-empty array; each scenario must have a name and at least one shock definition; validate shock magnitude format

[ASSUMPTION_CHECKLIST]

List of model assumptions to verify, each with expected condition and tolerance for deviation

[{"assumption": "normality_of_returns", "expected": false, "test": "jarque_bera", "tolerance": "p < 0.01 rejects normality"}]

Must be a non-empty array; each entry requires assumption name and test method; reject if test method is unrecognized

[TOLERANCE_WINDOWS]

Acceptable deviation ranges for each verification dimension, expressed as absolute or relative thresholds

{"var_backtest_coverage": {"absolute_tolerance": 0.02, "relative_tolerance": null}}

Must specify at least one tolerance type per dimension; reject if both absolute and relative are null; validate numeric ranges are positive

[OUTPUT_SCHEMA]

Target JSON schema for the structured verification result, defining required fields and their types

{"required": ["claim_verified", "metric_value_match", "backtest_result", "assumption_violations"]}

Must be valid JSON schema with required field array; validate that all required fields have type definitions; reject circular references

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Risk Metric and Model Output Verification Prompt into a production verification workflow with appropriate safeguards, retries, and human review gates.

This prompt is not a standalone chat interaction. It is a verification node inside a risk governance pipeline. The harness must enforce that every model output claim—VaR, expected shortfall, probability of default, stress test coverage—is checked against a known source of truth before it reaches a report, dashboard, or regulator. Wire the prompt so that it receives structured inputs (model metadata, backtesting results, stress test scenarios, input data quality flags) and returns a structured verification record, never free text alone. The application layer owns data retrieval, unit normalization, and tolerance window configuration; the prompt owns the reasoning about whether the claim holds within those tolerances.

Validation and retry logic. Parse the model's JSON output immediately. Validate that every required field is present, that claim_verdict is one of the allowed enum values (SUPPORTED, UNSUPPORTED, PARTIALLY_SUPPORTED, INCONCLUSIVE), and that any tolerance_violation entries include both the expected and actual values with units. If validation fails, retry once with the validation error injected into the prompt as additional [CONSTRAINTS] context. If the second attempt also fails, escalate to a human review queue with the raw output and validation errors attached. Do not silently accept malformed verification records.

Human review gates. For any claim where claim_verdict is UNSUPPORTED or INCONCLUSIVE, or where risk_level is HIGH, route the verification record to a human reviewer before the claim is used downstream. Package the review packet with: the original claim, the model's verification output, the source evidence snippets, and a pre-filled review form that asks the reviewer to confirm or override the verdict. Log every review decision for audit. For tail risk claims (VaR at 99%+, expected shortfall, stress test breach flags), consider requiring human review regardless of the model's confidence, given the asymmetric cost of underestimation.

Model choice and temperature. Use a model with strong reasoning capabilities and low temperature (0.0–0.1) for this verification task. The prompt requires precise numerical comparison, assumption checking, and methodological reasoning—not creative generation. If your deployment supports it, run the same verification with two different model families and compare verdicts; disagreement on high-severity claims should trigger human review. Cache verification results keyed by claim hash plus evidence version to avoid re-verifying identical claims across pipeline runs.

Logging and observability. Log every verification attempt with: prompt version, model identifier, input claim, evidence sources, raw output, parsed verdict, validation status, retry count, and reviewer decision if escalated. These logs become your audit trail when a risk metric claim is later challenged. Include the full prompt payload in logs so you can reproduce any verification result. Set up monitoring alerts on verification failure rate spikes, which often indicate upstream data quality issues or model behavior drift rather than prompt problems.

What to avoid. Do not use this prompt as a real-time risk calculator. It verifies claims that have already been computed by a risk engine; it does not compute VaR or expected shortfall itself. Do not skip the tolerance window configuration—numerical verification without explicit tolerances produces false negatives from floating-point differences. Do not treat the model's verdict as a final risk decision; the harness must enforce that verification outputs inform human judgment or downstream system gates, not replace them.

IMPLEMENTATION TABLE

Expected Output Contract

The exact JSON structure the Risk Metric and Model Output Verification Prompt returns. Each field includes the validation rule your application should enforce before accepting the output as verified.

Field or ElementType or FormatRequiredValidation Rule

verification_id

string (UUID v4)

Must parse as valid UUID v4. Reject if missing or malformed.

claim_summary

string

Must be non-empty and contain the original risk metric claim. Reject if null or whitespace only.

metric_type

enum: VaR, ExpectedShortfall, ProbabilityOfDefault, RiskScore, StressTestResult, BacktestStatistic, Other

Must match one of the allowed enum values. Reject unknown types.

model_assumptions_check

object

Must contain 'assumptions_verified' (boolean) and 'violations' (array of strings). Reject if 'assumptions_verified' is true but 'violations' is non-empty.

input_data_quality

object

Must contain 'completeness_score' (number 0-1), 'staleness_days' (integer >= 0), and 'anomalies_detected' (boolean). Reject if completeness_score is outside [0,1].

backtesting_result

object

Must contain 'test_passed' (boolean) and 'p_value' (number 0-1) if applicable. If 'test_passed' is false, 'failure_reason' (string) is required.

tail_risk_assessment

object

Must contain 'underestimation_risk' (enum: Low, Medium, High, Critical) and 'evidence' (string). Reject if risk is Critical but no escalation flag is present.

verification_conclusion

enum: Verified, PartiallyVerified, Unverified, Rejected

Must match one of the allowed enum values. If Rejected, 'rejection_reasons' (array of strings) must be non-empty.

PRACTICAL GUARDRAILS

Common Failure Modes

Risk metric and model output verification fails silently when assumptions are hidden, data is stale, or tail risk is underestimated. These cards cover the most common production failure patterns and how to catch them before they reach a report or a decision.

01

Tail Risk Underestimation

What to watch: The model reports a 99% VaR that looks plausible but ignores extreme tail events because the calibration window was too calm or the distribution assumption was wrong. Guardrail: Require the prompt to explicitly state the distribution assumption, calibration window, and stress-test scenario. Add a secondary check that compares the output against a non-parametric historical drawdown.

02

Stale or Mismatched Input Data

What to watch: The prompt receives market data, risk factors, or default probabilities that are days or weeks old, producing a risk score that no longer reflects current conditions. Guardrail: Include a [DATA_FRESHNESS_TIMESTAMP] variable in the prompt and instruct the model to refuse or flag any calculation where the input timestamp is older than a defined threshold.

03

Model Assumption Drift

What to watch: The prompt assumes normality, constant volatility, or uncorrelated defaults when the real environment has shifted to high-vol, fat-tail, or high-correlation regimes. Guardrail: Add an explicit [ASSUMPTION_CHECK] step that asks the model to list its working assumptions and compare them against a provided [MARKET_REGIME_INDICATOR] before producing the final metric.

04

Backtesting Blind Spots

What to watch: The model reports a clean backtest because it was tested on the same data used for calibration, or the backtest window conveniently excludes known stress periods. Guardrail: Require the prompt to separate calibration and testing windows explicitly. Add an instruction to flag any overlap and to report performance specifically during the worst N periods in the dataset.

05

Unit and Currency Mismatch

What to watch: Risk metrics are computed in different currencies, notional units, or time scales without normalization, producing outputs that are off by orders of magnitude. Guardrail: Include a [UNIT_NORMALIZATION] block in the prompt that forces the model to declare the output unit, conversion rates used, and any scaling factors before emitting the final number.

06

Overconfident Point Estimates

What to watch: The prompt returns a single risk number without a confidence interval, sensitivity range, or stress scenario result, giving a false sense of precision. Guardrail: Add an output schema requirement that every risk metric must be accompanied by a 95% confidence interval, the worst-case stress scenario value, and a list of the top three factors that would change the estimate.

IMPLEMENTATION TABLE

Evaluation Rubric

Score each dimension on a 1-5 scale before shipping the Risk Metric and Model Output Verification Prompt. A passing score is 4 or above on all dimensions. Use this rubric in CI, pre-release QA, and periodic production audits.

CriterionPass StandardFailure SignalTest Method

Model Assumption Identification

Prompt correctly identifies and lists all stated model assumptions (distribution, correlation, stationarity) from [MODEL_DOCUMENTATION] with explicit citations

Missing assumptions, hallucinated assumptions not present in source, or conflation of model assumptions with input data characteristics

Run prompt against 5 model documentation samples with known assumption sets; require exact match on assumption count and source grounding

Backtesting Period Completeness

Prompt verifies that backtesting covers all required periods specified in [BACKTESTING_REQUIREMENTS] and flags gaps with specific date ranges

Silent acceptance of incomplete backtesting windows, failure to detect missing stress periods, or vague gap descriptions without dates

Provide backtesting results with deliberate period omissions; check that output enumerates each missing window with start-end dates

Stress Test Scenario Coverage

Prompt maps each stress scenario in [STRESS_TEST_SPEC] to model output behavior and flags untested scenario types with severity classification

Overlooking scenario categories, treating partial coverage as complete, or failing to distinguish historical from hypothetical stress tests

Supply stress test results missing 2 of 5 required scenario types; verify output identifies both missing types and assigns severity

Input Data Quality Assessment

Prompt evaluates completeness, staleness, outlier presence, and known data issues from [DATA_QUALITY_REPORT] and links each issue to affected risk metrics

Generic data quality statements without metric-level impact mapping, ignoring documented data gaps, or accepting stale data without flagging

Feed data quality report with 3 known issues; confirm output names each issue, links it to specific risk metrics, and recommends remediation

Tail Risk Estimation Audit

Prompt detects when tail risk measures (VaR at extreme percentiles, expected shortfall) rely on distributional assumptions that break in the tail and flags alternative approaches

Accepting parametric tail estimates without checking empirical tail behavior, missing fat-tail indicators, or failing to compare with non-parametric alternatives

Provide model outputs where parametric VaR diverges from empirical tail by >20%; verify prompt flags the divergence and suggests empirical check

Risk Metric Calculation Verification

Prompt independently recalculates key risk metrics from [INPUT_DATA] and [MODEL_SPEC] and reports discrepancies exceeding [TOLERANCE_THRESHOLD]

Blind acceptance of reported metrics, calculation errors in verification step, or failure to report discrepancy magnitude and direction

Supply risk report with 3 intentionally incorrect metric values; confirm output recalculates, identifies all 3, and reports deviation amounts

Confidence and Uncertainty Communication

Prompt produces calibrated confidence language for each verification finding, distinguishing between verified, likely, uncertain, and unverifiable claims

Binary true/false language on uncertain findings, overconfident statements on thin evidence, or missing confidence qualifiers on model-dependent results

Evaluate output against 10 claims with known ground truth and evidence strength; require confidence labels match evidence sufficiency in 9 of 10 cases

Human Review Escalation Criteria

Prompt correctly applies [ESCALATION_RULES] to route findings above risk threshold, below evidence threshold, or with model assumption violations to human review queue

Auto-resolving findings that meet escalation criteria, missing assumption violation triggers, or routing without complete review packet

Inject 5 findings that meet escalation criteria per [ESCALATION_RULES]; verify all 5 appear in human review output with required context fields

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a single model output and a known reference value. Focus on getting the structure right before adding tolerance windows or multi-model comparison. Replace [MODEL_OUTPUT] and [REFERENCE_VALUE] with hardcoded test data. Drop the backtesting and stress test sections initially.

Watch for

  • Missing unit normalization causing false mismatches
  • Overly strict equality checks instead of tolerance-based comparison
  • Prompt accepting model assumptions without flagging them
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.