Antihero
Home Docs Spec News
GitHub Contact
AHDS-1 — Version 1.0

How to Underwrite AI Agent Risk: A Data Specification

The first formal schema defining what enforcement data insurers need to price, bind, and settle autonomous AI agent liability.

Published: March 2026 Authors: Antihero Research Status: Draft for Industry Comment

Conformance Language (RFC 2119): The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. Implementations claiming AHDS-1 conformance MUST satisfy all MUST-level requirements and SHOULD satisfy all SHOULD-level requirements.

1. Executive Summary

AI agents are taking autonomous actions—executing code, accessing databases, sending emails, managing infrastructure—with real-world consequences. When an agent causes harm, someone pays. Today, nobody knows who, because the liability exposure is unpriced.

Underwriting requires enforcement data, not monitoring data. Insurers don't need dashboards. They need structured, tamper-evident records of every action an agent attempted, every policy decision that governed it, and cryptographic proof that the audit trail hasn't been altered.

This specification defines that data pipeline, built on the Antihero enforcement platform. It is built on three principles:

  1. Enforcement, not observation. Every data point originates from a policy gate that blocked or allowed an action—not from passive monitoring that may miss events.
  2. Tamper-evidence, not trust. Every audit event is hash-chained (SHA-256 + RFC 8785 JCS canonicalization) with optional Ed25519 signatures. Insurers verify integrity independently.
  3. Standards alignment. Maps directly to SOC 2 Type II, HIPAA, EU AI Act, NIST AI RMF, and NAIC Model Bulletin requirements.

Why this matters: No standard exists today for AI agent underwriting data. ACORD has extensibility but no AI-specific extensions. The NAIC AI Model Bulletin (adopted by 24 states) mandates governance but not data schema. ASOP No. 23 predates AI/ML (last revised 2016). The EU AI Act and ISO 42001 create demand but don't specify underwriting data formats. This specification fills that gap.

2. The Problem: AI Agent Risk is Unpriced

Coverage Gaps

Current cyber insurance focuses on breach, ransomware, and infrastructure failures. It does not cover the novel liability classes that AI agents introduce:

The Measurement Problem

Insurers can't price what they can't measure. Today's AI security tools produce alerts and dashboards—useful for security teams, useless for underwriters. Underwriting requires:

Regulatory Momentum

The regulatory environment is accelerating demand for this data:

3. The Underwriting Data Pipeline

The specification defines three data layers, each serving a different function in the underwriting workflow:

Data flow: Agent attempts action → TCE (what it tried) → Policy engine evaluates → PDE (what was decided) → Outcome recorded → AEE (tamper-evident receipt) → Risk metrics computed → Claims filed and adjudicated.

Layer 1: Enforcement Evidence

Three envelope types form the core evidentiary record. Every gated action produces all three.

Tool Call Envelope (TCE)

An immutable description of what an AI agent attempted to do. Frozen at creation time.

FieldTypeDescription
idUUIDUnique envelope identifier
timestampdatetimeWhen the action was requested (UTC)
actionstringCanonical action name (e.g., file.write, shell.execute, web.fetch)
resourcestringTarget of the action (file path, URL, database table)
parametersobjectArguments passed to the tool call
contextobjectAdditional context: conversation snippet, risk signals, environment metadata
subject.agent_idstringUnique identifier of the AI agent (required)
subject.user_idstring?Human user who initiated the session
subject.session_idstring?Session or conversation identifier
subject.rolesstring[]Roles assigned to this agent
subject.delegation_depthintNumber of agent-to-agent delegation hops (0 = original agent)
subject.delegated_rolesstring[]Roles inherited from parent agent, attenuated by intersection
caller.typestringInvocation context: direct | programmatic | mcp | browser | cli
caller.container_idstring?Sandbox container ID (scopes risk budgets)

Policy Decision Envelope (PDE)

The gate decision rendered by the policy engine for a given TCE. Determines whether the action proceeds.

FieldTypeDescription
idUUIDUnique decision identifier
timestampdatetimeWhen the decision was rendered (UTC)
tce_idUUIDThe TCE this decision applies to
effectenumallow | deny | allow_with_requirements
risk_scorefloatPer-action risk score (0.0 – 1.0)
cumulative_riskfloatSession cumulative risk after this action (≥ 0.0)
matched_rulesMatchedRule[]Which policy rules contributed to this decision
requirementsRequirement[]Conditions that must be met before execution (e.g., confirm, mfa, redact, sandbox)
reasonstringHuman-readable explanation (required for deny decisions)
denied_bystring?Rule ID that caused the denial

Deny dominates: Conforming implementations MUST use a 4-tier composition model (baseline → org → app → user). If any tier denies, the action MUST be denied. Unknown actions MUST be denied by default (fail-closed). Implementations MUST NOT allow a lower-priority tier to override a deny from a higher-priority tier.

Audit Event Envelope (AEE)

The tamper-evident receipt. One per gated action. Hash-chained to form an append-only, cryptographically verifiable audit trail.

FieldTypeDescription
idUUIDUnique audit event identifier
timestampdatetimeWhen the event was recorded (UTC)
sequenceintMonotonic sequence number per organization (≥ 0)
tceobjectSerialized TCE snapshot
pdeobjectSerialized PDE snapshot
outcomeenumexecuted | blocked | requirements_pending | requirements_satisfied | error
execution_duration_msfloat?Wall-clock execution time in milliseconds
result_hashstring?SHA-256 of the tool's return value (non-sensitive results)
prev_hashstringSHA-256 of the previous AEE. Genesis event: 64 zero characters
this_hashstringSHA-256 of this AEE's canonical form (RFC 8785 JCS, excluding this_hash)
content_flagsobject[]DLP/PII findings from content inspection
signaturestring?Ed25519 signature over this_hash (enterprise profile)
signer_public_keystring?Hex-encoded Ed25519 public key of the signer

Hash chain verification: Conforming implementations MUST support independent chain verification. An auditor MUST be able to iterate events from sequence 0, recompute each this_hash using JCS canonicalization per RFC 8785 (excluding the this_hash field itself), and confirm that prev_hash matches the prior event's this_hash. The genesis event (sequence 0) MUST use 64 zero characters as prev_hash. Any discrepancy MUST be flagged as a chain integrity failure. Implementations SHOULD support Ed25519 signatures over this_hash for enterprise deployments.

Layer 2: Risk Metrics (Actuarial Inputs)

Computed from Layer 1 data. These are the inputs an actuary needs to price a policy.

Exposure Base Definition

Every insurance rating plan requires a defined exposure base—the unit of risk used to normalize premiums across insureds. AHDS-1 defines a composite exposure base with three components:

Exposure UnitDefinitionUse CaseWeight
Agent-MonthOne registered agent active for one calendar monthPrimary rating unit. Analogous to vehicle-year in auto insurance.Primary
Enforcement EventOne TCE→PDE evaluation cycle recorded in the audit chainVolume scaling. Captures activity intensity. Reported as events per agent-month.Secondary
Transaction ValueSum of monetary values in gated financial actions (cents)Severity scaling for agents handling payments, transfers, or purchases.Tertiary

The base premium MUST be quoted per agent-month. Event volume and transaction value act as rating factors that adjust the base rate, not as independent exposure units. This ensures rate stability while capturing the risk profile of high-volume or high-value agent deployments.

Rate filing note: For jurisdictions requiring rate filings (e.g., U.S. surplus lines), the exposure base MUST be stated as "agent-months" with event volume and transaction value as classification rating variables. This aligns with NAIC Statistical Handbook conventions for technology E&O policies.

RiskFactors

FieldTypeDescription
event_volume_30dintTotal enforcement events in the last 30 days
block_ratefloatFraction of events denied (0.0 – 1.0)
threat_detection_ratefloatFraction of events with risk_score > 0.5
avg_risk_scorefloatMean risk score across 30-day window
claims_count_90dintClaims filed in the last 90 days (frequency)
claims_paid_amount_90dintSum of approved claim amounts in cents (severity)
heartbeat_lag_riskfloatRatio of stale agents (heartbeat exceeds auto-quarantine threshold) to total monitored agents. Weight: 15% of composite.
velocity_anomaly_riskfloatRatio of agents with z-score > 3.0 (action rate anomaly vs 6-month average) to total monitored agents. Weight: 15% of composite.

Risk Multiplier Formula (Credibility-Weighted)

The risk multiplier MUST adjust the base premium using limited fluctuation credibility theory (Bühlmann model). Organizations with insufficient data are blended toward the class prior; those with deep enforcement histories earn full experience rating.

Credibility Factor (Z)

The credibility factor Z determines how much weight is given to an organization's own experience versus the class prior. Z is computed using the full credibility standard of 1,082 expected claims (CAS Exam 5, 90% confidence, ±5% accuracy):

# Credibility factor Z (Bühlmann limited-fluctuation)
# Full credibility standard: n_full = 1,082 expected claims
# For enforcement data: proxy via event volume (1 event ≈ 1 exposure unit)

n_full = 1082
Z = min(sqrt(event_volume_30d * 12 / n_full), 1.0)

# Example: 12,847 events/month → 154,164 annualized → Z = min(sqrt(142.5), 1.0) = 1.0
# Example: 50 events/month → 600 annualized → Z = min(sqrt(0.55), 1.0) = 0.74

Experience Rating

The experience multiplier blends the organization's own loss experience with the class prior:

# Class prior: industry average multiplier (starts at 1.0, updated annually)
M_class = 1.0

# Organization experience multiplier (from enforcement telemetry)
M_org = 1.0 (base)

# Loss-based adjustments
if block_rate > 0.10:     M_org += 0.30   # Elevated denial rate
if threat_rate > 0.05:    M_org += 0.50   # Elevated threat detection
if claims_count_90d > 0:  M_org += min(claims_count_90d * 0.10, 0.50)

# Good behavior discount (earned via enforcement hygiene)
if block_rate < 0.01 AND claims_count_90d == 0 AND event_volume_30d > 100:
    M_org -= 0.20

# Credibility-weighted blend
multiplier = Z * M_org + (1 - Z) * M_class

# Bounds (MUST be enforced)
multiplier = clamp(multiplier, floor=0.8, cap=2.5)

adjusted_premium = base_premium * multiplier

Loss Ratio

loss_ratio = claims_paid_3mo / premiums_collected_3mo

Actuarial note: The credibility standard of 1,082 claims follows the CAS Exam 5 limited-fluctuation approach (90% probability within ±5% of true mean, assuming Poisson frequency). As the AHDS-1 loss database matures, this specification SHOULD be updated with empirical variance parameters derived from actual AI agent loss data, transitioning from limited-fluctuation to Bühlmann-Straub credibility.

Loss Development & IBNR Reserves

Insurers MUST account for Incurred But Not Reported (IBNR) claims when computing ultimate losses. AI agent incidents have a characteristic reporting lag: boundary violations may not surface until downstream damage is detected (hours to weeks).

Loss Development Triangle

A loss development triangle tracks how reported losses mature over time. Each cell represents cumulative paid + reserved losses at a given development age for a given accident quarter:

# Loss Development Triangle (quarters)
#
# Accident    Development Age (months)
# Quarter     3        6        9        12       Ultimate
# ─────────────────────────────────────────────────────────
# Q1 2026     $12,400  $18,200  $21,100  $22,000  $22,440
# Q2 2026     $15,800  $22,900  $26,500  ...      ...
# Q3 2026     $11,200  $16,100  ...      ...      ...
# Q4 2026     $14,600  ...      ...      ...      ...
#
# Age-to-Age Factors (link ratios):
#   3→6:   1.468    6→9:   1.159    9→12:  1.043    12→Ult: 1.020
#
# Cumulative Development Factor (CDF) at 3 months:
#   CDF_3 = 1.468 × 1.159 × 1.043 × 1.020 = 1.810
#
# IBNR for Q4 2026 = ($14,600 × 1.810) - $14,600 = $11,826
ParameterTypeDescription
development_agesint[] (months)Column headers: [3, 6, 9, 12] for quarterly evaluation
link_ratiosfloat[]Age-to-age factors computed from historical triangles
cdffloat[]Cumulative development factors (product of remaining link ratios)
ibnr_estimate_centsintIBNR reserve = (reported losses × CDF) − reported losses
ultimate_loss_centsintReported losses + IBNR estimate
methodenumchain_ladder | bornhuetter_ferguson | cape_cod

Method selection: For immature accident periods (≤ 6 months of development), implementations SHOULD use the Bornhuetter-Ferguson method, which blends actual losses with an a priori expected loss ratio. The chain-ladder method SHOULD be used for mature periods (≥ 12 months). The Cape Cod method MAY be used as a reasonableness check. All three methods MUST be available in the actuarial data export (see Section 6).

PricingResult

FieldTypeDescription
base_premium_centsintBase monthly premium in cents
risk_multiplierfloatComputed risk adjustment factor (0.8x – 2.5x)
adjusted_premium_centsintFinal monthly premium after risk adjustment
loss_ratiofloatClaims paid / premiums collected (3-month rolling window)
risk_factorsRiskFactorsThe underlying risk factor computation
explanationstring[]Human-readable breakdown of pricing decisions

Layer 3: Claims & Fraud Detection

When an incident occurs, the claims pipeline uses enforcement data to adjudicate and detect fraud.

InsuranceClaim

FieldTypeDescription
idUUIDClaim identifier
org_idUUIDOrganization that filed the claim
statusenumsubmittedunder_reviewapproved | deniedpaid
incident_typestringCategory: hallucination, boundary_violation, data_breach, etc.
incident_datedatetimeWhen the incident occurred
affected_agent_idstring?Agent involved in the incident
related_event_idsUUID[]Linked audit event IDs (evidence)
estimated_damages_centsintClaimed amount in cents
approved_amount_centsint?Reviewer-approved amount
attestation_hashstring?SHA-256 of signed attestation statement
chain_verifiedbool?Hash chain integrity verification result
fraud_flagsFraudFlag[]Results of 7-layer fraud analysis
coverage_gap_detectedbool?Whether enforcement gaps were found
auto_approvedboolWhether the claim was auto-approved

CoverageTerms

FieldTypeDescription
coverage_limit_centsintMaximum coverage per incident in cents. Tiered defaults: Sentinel = 10,000,000 ($100K), Sovereign = 100,000,000 ($1M). Custom limits up to $10M available via carrier negotiation.
aggregate_limit_centsintMaximum total coverage per policy period in cents. MUST be ≥ 2× per-incident limit. Default: 3× per-incident limit.
deductible_centsintPer-incident deductible in cents (default: 500,000 = $5,000). Self-insured retention for Sovereign tier.
premium_monthly_centsintMonthly premium in cents, adjusted by risk multiplier. Sentinel base: 9,900 ($99). Sovereign: custom-quoted.
effective_datedatetimeCoverage start date
expiry_datedatetime?Coverage end date
partner_idstringInsurance carrier identifier
statusenumactive | suspended | cancelled

7-Layer Fraud Prevention

Every claim undergoes seven automated fraud checks before adjudication:

#CheckWhat It DetectsSeverity
1Chain IntegrityHash chain linkage verification — detects tampered or deleted audit eventsCritical
2Coverage ContinuityEnforcement gaps > 1 hour in the 24 hours before incident — detects disabled securityWarning
3Policy Version PinSnapshot of all org policies at incident time — detects post-incident policy modificationInfo
4Enforcement TelemetryCount of linked audit events — detects claims without enforcement evidenceWarning
5Honesty AttestationWhether a signed attestation was provided with the claimInfo
6Bypass ExclusionPolicy weakened within 48 hours before incident — detects intentional security weakeningCritical
7Cross-Claim CorrelationAnomalous claim patterns: 3+ claims in 30 days, same agent in 2+ claims, claim > 50% coverage limitWarning

Auto-approval criteria: A claim MAY be auto-approved when: chain is verified, no critical fraud flags, no coverage gaps, and claimed amount ≤ 10% of per-incident coverage limit. All other claims MUST require human review. Implementations MUST NOT auto-deny claims—automated systems MAY approve but MUST NOT deny (denial MUST involve human adjudication). This follows the "AI approves, never denies" principle established in parametric insurance automation.

4. Compliance Mapping

The enforcement data pipeline maps directly to existing regulatory frameworks. Organizations collecting AHDS-1 data satisfy multiple compliance requirements simultaneously.

SOC 2 Type II

  • CC6.1 Logical Access Controls — TCE subject fields prove identity and authorization
  • CC6.3 Authorization Enforcement — PDE effect/matched_rules prove policy evaluation
  • CC7.2 Security Monitoring — AEE events with risk_score > threshold prove detection
  • CC8.1 Change Management — AEE events for write/modify actions prove change tracking

HIPAA Security Rule

  • §164.312(b) Audit Controls — AEE hash chain provides tamper-evident audit trail
  • §164.312(d) Authentication — TCE subject.agent_id + subject.user_id prove identity
  • §164.312(c) Integrity Controls — AEE hash chain + signatures prove data integrity
  • §164.312(e) Transmission Security — AEE events for network actions prove encrypted transit

EU AI Act (2024/1689)

  • Art. 9 Risk Management — PDE risk_score + RiskBudget prove continuous risk assessment
  • Art. 12 Record-Keeping — AEE hash chain provides complete, tamper-evident logs
  • Art. 14 Human Oversight — PDE requirements (confirm, MFA) prove human-in-loop controls
  • Art. 15 Accuracy & Robustness — PDE matched_rules + fail-closed architecture prove defense

NIST AI RMF (100-1)

  • GOVERN — Policy rules + composition tiers prove governance structure
  • MAP — TCE action/resource classification maps AI system capabilities
  • MEASURE — PDE risk_score + RiskFactors provide quantitative risk metrics
  • MANAGE — PDE deny/requirements + Incident quarantine prove active mitigation

Additionally, the NAIC AI Model Bulletin (24 U.S. states) requirements for data lineage, data quality, data integrity, bias analysis, and decision rationale documentation are all satisfied by the TCE→PDE→AEE pipeline, which captures the full provenance of every AI agent decision.

5. Formal Schema Reference

Machine-readable JSON Schema definitions for all AHDS-1 data types. These schemas can be used for validation, code generation, and interoperability testing.

ToolCallEnvelope

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/tce.json",
  "title": "ToolCallEnvelope",
  "type": "object",
  "required": ["envelope_type", "id", "timestamp", "subject", "action", "resource"],
  "properties": {
    "envelope_type": { "const": "tce" },
    "id": { "type": "string", "format": "uuid" },
    "timestamp": { "type": "string", "format": "date-time" },
    "action": { "type": "string", "examples": ["file.write", "shell.execute", "web.fetch"] },
    "resource": { "type": "string" },
    "parameters": { "type": "object", "default": {} },
    "context": { "type": "object", "default": {} },
    "subject": {
      "type": "object",
      "required": ["agent_id"],
      "properties": {
        "agent_id": { "type": "string" },
        "user_id": { "type": ["string", "null"] },
        "session_id": { "type": ["string", "null"] },
        "roles": { "type": "array", "items": { "type": "string" } },
        "delegation_depth": { "type": "integer", "minimum": 0, "default": 0 },
        "delegated_roles": { "type": "array", "items": { "type": "string" } },
        "metadata": { "type": "object" }
      }
    },
    "caller": {
      "type": ["object", "null"],
      "properties": {
        "type": { "enum": ["direct", "programmatic", "mcp", "browser", "cli"] },
        "container_id": { "type": ["string", "null"] },
        "tool_id": { "type": ["string", "null"] },
        "sandbox_ttl_seconds": { "type": ["integer", "null"] }
      }
    }
  }
}

PolicyDecisionEnvelope

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/pde.json",
  "title": "PolicyDecisionEnvelope",
  "type": "object",
  "required": ["envelope_type", "id", "timestamp", "tce_id", "effect"],
  "properties": {
    "envelope_type": { "const": "pde" },
    "id": { "type": "string", "format": "uuid" },
    "timestamp": { "type": "string", "format": "date-time" },
    "tce_id": { "type": "string", "format": "uuid" },
    "effect": { "enum": ["allow", "deny", "allow_with_requirements"] },
    "risk_score": { "type": "number", "minimum": 0.0, "maximum": 1.0, "default": 0.0 },
    "cumulative_risk": { "type": "number", "minimum": 0.0, "default": 0.0 },
    "matched_rules": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["rule_id", "policy_tier", "effect"],
        "properties": {
          "rule_id": { "type": "string" },
          "policy_tier": { "enum": ["baseline", "org", "app", "user"] },
          "effect": { "enum": ["allow", "deny", "allow_with_requirements"] },
          "priority": { "type": "integer", "default": 0 }
        }
      }
    },
    "requirements": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": { "enum": ["confirm", "mfa", "redact", "sandbox", "rate_limit", "log", "custom"] },
          "params": { "type": "object" },
          "satisfied": { "type": "boolean", "default": false }
        }
      }
    },
    "reason": { "type": "string", "default": "" },
    "denied_by": { "type": ["string", "null"] }
  }
}

AuditEventEnvelope

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/aee.json",
  "title": "AuditEventEnvelope",
  "type": "object",
  "required": ["envelope_type", "id", "timestamp", "sequence", "tce", "pde", "outcome", "prev_hash"],
  "properties": {
    "envelope_type": { "const": "aee" },
    "id": { "type": "string", "format": "uuid" },
    "timestamp": { "type": "string", "format": "date-time" },
    "sequence": { "type": "integer", "minimum": 0 },
    "tce": { "type": "object", "description": "Serialized ToolCallEnvelope snapshot" },
    "pde": { "type": "object", "description": "Serialized PolicyDecisionEnvelope snapshot" },
    "outcome": { "enum": ["executed", "blocked", "requirements_pending", "requirements_satisfied", "error"] },
    "error": { "type": ["string", "null"] },
    "execution_duration_ms": { "type": ["number", "null"] },
    "result_hash": { "type": ["string", "null"], "description": "SHA-256 of tool return value" },
    "prev_hash": { "type": "string", "minLength": 64, "maxLength": 64 },
    "this_hash": { "type": "string", "minLength": 64, "maxLength": 64 },
    "content_flags": { "type": "array", "items": { "type": "object" }, "default": [] },
    "signature": { "type": ["string", "null"], "description": "Ed25519 signature over this_hash" },
    "signer_public_key": { "type": ["string", "null"], "description": "Hex-encoded Ed25519 public key" }
  }
}

RiskFactors

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/risk-factors.json",
  "title": "RiskFactors",
  "type": "object",
  "properties": {
    "event_volume_30d": { "type": "integer", "minimum": 0, "default": 0 },
    "block_rate": { "type": "number", "minimum": 0.0, "maximum": 1.0, "default": 0.0 },
    "threat_detection_rate": { "type": "number", "minimum": 0.0, "maximum": 1.0, "default": 0.0 },
    "avg_risk_score": { "type": "number", "minimum": 0.0, "maximum": 1.0, "default": 0.0 },
    "claims_count_90d": { "type": "integer", "minimum": 0, "default": 0 },
    "claims_paid_amount_90d": { "type": "integer", "minimum": 0, "default": 0, "description": "Amount in cents" }
  }
}

InsuranceClaim

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/insurance-claim.json",
  "title": "InsuranceClaim",
  "type": "object",
  "required": ["id", "org_id", "incident_type", "incident_date", "description"],
  "properties": {
    "id": { "type": "string", "format": "uuid" },
    "org_id": { "type": "string", "format": "uuid" },
    "status": { "enum": ["submitted", "under_review", "approved", "denied", "paid"], "default": "submitted" },
    "incident_type": { "enum": ["hallucination", "boundary_violation", "data_breach", "unauthorized_action", "financial_loss", "compliance_violation", "model_drift", "data_poisoning"] },
    "incident_date": { "type": "string", "format": "date-time" },
    "description": { "type": "string" },
    "affected_agent_id": { "type": ["string", "null"] },
    "related_event_ids": { "type": "array", "items": { "type": "string", "format": "uuid" } },
    "estimated_damages_cents": { "type": "integer", "minimum": 0 },
    "approved_amount_cents": { "type": ["integer", "null"] },
    "attestation_hash": { "type": ["string", "null"], "description": "SHA-256 of signed attestation" },
    "chain_verified": { "type": ["boolean", "null"] },
    "fraud_flags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "check_name": { "type": "string" },
          "severity": { "enum": ["info", "warning", "critical"] },
          "passed": { "type": "boolean" },
          "detail": { "type": "string" }
        }
      }
    },
    "coverage_gap_detected": { "type": ["boolean", "null"] },
    "auto_approved": { "type": "boolean", "default": false },
    "auto_approval_reason": { "type": ["string", "null"] }
  }
}

FraudReport

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/fraud-report.json",
  "title": "FraudReport",
  "type": "object",
  "properties": {
    "flags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "check_name": { "type": "string" },
          "severity": { "enum": ["info", "warning", "critical"] },
          "passed": { "type": "boolean" },
          "detail": { "type": "string" }
        }
      }
    },
    "chain_verified": { "type": ["boolean", "null"] },
    "chain_errors": { "type": "array", "items": { "type": "string" } },
    "coverage_gap": { "type": "boolean", "default": false },
    "auto_approvable": { "type": "boolean", "default": false },
    "auto_approval_reason": { "type": "string", "default": "" },
    "has_critical_flags": { "type": "boolean" }
  }
}

ComplianceReport (SOC 2 Example)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/compliance-report.json",
  "title": "ComplianceReport",
  "type": "object",
  "required": ["report_type", "generated_at", "chain_integrity"],
  "properties": {
    "report_type": { "type": "string", "examples": ["SOC 2 Type II", "HIPAA", "EU AI Act", "NIST AI RMF"] },
    "generated_at": { "type": "string", "format": "date-time" },
    "organization": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "id": { "type": "string", "format": "uuid" }
      }
    },
    "chain_integrity": {
      "type": "object",
      "properties": {
        "valid": { "type": "boolean" },
        "total_events": { "type": "integer" },
        "errors": { "type": "array", "items": { "type": "string" } }
      }
    },
    "summary": {
      "type": "object",
      "properties": {
        "total_evaluations": { "type": "integer" },
        "total_blocked": { "type": "integer" },
        "total_allowed": { "type": "integer" },
        "total_errors": { "type": "integer" }
      }
    },
    "framework_criteria": { "type": "object", "description": "Framework-specific criteria (varies by report_type)" }
  }
}

PricingResult

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/pricing-result.json",
  "title": "PricingResult",
  "type": "object",
  "required": ["base_premium_cents", "risk_multiplier", "adjusted_premium_cents", "risk_factors"],
  "properties": {
    "base_premium_cents": { "type": "integer", "minimum": 0, "description": "Base monthly premium in cents before risk adjustment" },
    "risk_multiplier": { "type": "number", "minimum": 0.8, "maximum": 2.5, "description": "Credibility-weighted risk adjustment factor" },
    "credibility_factor": { "type": "number", "minimum": 0.0, "maximum": 1.0, "description": "Buhlmann credibility factor Z (0 = full class prior, 1 = full experience)" },
    "adjusted_premium_cents": { "type": "integer", "minimum": 0, "description": "Final monthly premium after credibility-weighted risk adjustment" },
    "loss_ratio": { "type": ["number", "null"], "minimum": 0.0, "description": "Claims paid / premiums collected (3-month rolling). Null if no premium history." },
    "loss_development": {
      "type": ["object", "null"],
      "description": "IBNR and loss development data (null if insufficient history)",
      "properties": {
        "method": { "enum": ["chain_ladder", "bornhuetter_ferguson", "cape_cod"] },
        "ibnr_estimate_cents": { "type": "integer", "minimum": 0 },
        "ultimate_loss_cents": { "type": "integer", "minimum": 0 },
        "development_age_months": { "type": "integer", "minimum": 0 },
        "cdf": { "type": "number", "minimum": 1.0, "description": "Cumulative development factor at current age" }
      }
    },
    "risk_factors": { "$ref": "https://antihero.systems/schemas/ahds-1/risk-factors.json" },
    "exposure_base": {
      "type": "object",
      "properties": {
        "agent_months": { "type": "number", "description": "Primary exposure: active agent-months in rating period" },
        "events_per_agent_month": { "type": "number", "description": "Secondary: event intensity rating factor" },
        "transaction_value_cents": { "type": "integer", "description": "Tertiary: total gated financial transaction value" }
      }
    },
    "explanation": { "type": "array", "items": { "type": "string" }, "description": "Human-readable breakdown of pricing decisions" }
  }
}

CoverageTerms

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://antihero.systems/schemas/ahds-1/coverage-terms.json",
  "title": "CoverageTerms",
  "type": "object",
  "required": ["coverage_limit_cents", "aggregate_limit_cents", "deductible_cents", "premium_monthly_cents", "effective_date", "partner_id", "status"],
  "properties": {
    "coverage_limit_cents": { "type": "integer", "minimum": 0, "description": "Per-incident coverage limit in cents. Sentinel default: 10,000,000 ($100K)." },
    "aggregate_limit_cents": { "type": "integer", "minimum": 0, "description": "Per-period aggregate limit. MUST be >= 2x per-incident limit." },
    "deductible_cents": { "type": "integer", "minimum": 0, "description": "Per-incident deductible in cents. Default: 500,000 ($5,000)." },
    "premium_monthly_cents": { "type": "integer", "minimum": 0, "description": "Monthly premium in cents, adjusted by risk multiplier." },
    "effective_date": { "type": "string", "format": "date-time", "description": "Coverage start date." },
    "expiry_date": { "type": ["string", "null"], "format": "date-time", "description": "Coverage end date. Null for continuous coverage." },
    "partner_id": { "type": "string", "description": "Insurance carrier identifier." },
    "status": { "enum": ["active", "suspended", "cancelled"], "description": "Coverage status. Suspended coverage MUST trigger enforcement-only mode (logging continues, insurance claims disabled)." },
    "incident_types_covered": {
      "type": "array",
      "items": { "enum": ["hallucination", "boundary_violation", "data_breach", "unauthorized_action", "financial_loss", "compliance_violation", "model_drift", "data_poisoning"] },
      "description": "Covered incident categories. Carriers MUST specify covered types at binding."
    },
    "exclusions": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Policy exclusions in human-readable text."
    }
  }
}

6. Integration Guide

How Carriers Consume This Data

Insurance carriers MUST access AHDS-1 data through the Partner API, authenticated with X-Partner-Key headers. Implementations MUST support API key rotation without service interruption. See the technical documentation for full API authentication and SDK details. The API MUST provide:

EndpointMethodDescription
/api/v1/partner/orgsGETList insured organizations
/api/v1/partner/orgs/{id}/risk-factorsGETCurrent RiskFactors for an org
/api/v1/partner/orgs/{id}/pricingGETComputed PricingResult
/api/v1/partner/orgs/{id}/claimsGETClaims history with fraud reports
/api/v1/partner/orgs/{id}/chain/verifyPOSTIndependent hash chain verification
/api/v1/partner/orgs/{id}/compliance/{framework}GETCompliance report export (soc2, hipaa, eu_ai_act, nist_ai_rmf)
/api/v1/partner/orgs/{id}/eventsGETPaginated audit event stream (JSONL)

Data Export Formats

Retention Requirements

FrameworkMinimum RetentionNotes
SOC 212 monthsAudit period evidence
HIPAA6 years§164.530(j) retention requirement
EU AI ActDuration of system operation + 10 yearsArt. 12(2) record-keeping
Insurance claimsStatute of limitations + 3 yearsVaries by jurisdiction

Reinsurance Treaty Modeling

AHDS-1 data supports three reinsurance structures:

7. Adoption Path

Phase 1: Reference Implementation (Complete)

Antihero has implemented the full AHDS-1 specification in production code: 2,200+ lines across the policy engine, enforcement layer, audit chain, insurance claims pipeline, fraud detection, and compliance exports. All schemas in this document are derived from running production code, not theoretical designs.

Phase 2: Carrier Pilot

Engagement with cyber insurance carriers (Coalition, At-Bay, Corvus) to validate the data specification against their existing underwriting workflows. The Partner API provides real-time access to enforcement data in a format compatible with actuarial modeling tools.

Phase 3: ACORD Working Group Submission

ACORD's extensibility framework allows industry-specific data standards. AHDS-1 is designed as an ACORD extension for AI agent liability—the first schema that bridges AI security enforcement data and insurance underwriting workflows.

Phase 4: ISO/IEC Contribution

ISO 42001 (AI management systems) establishes the governance framework. AHDS-1 provides the data specification that makes that governance insurable. The path runs through ISO/IEC JTC 1/SC 42 (Artificial Intelligence), building on the compliance mapping to existing ISO standards.

8. Appendix: Full Schema Examples

Example: ToolCallEnvelope (Dangerous Shell Command)

{
  "envelope_type": "tce",
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "timestamp": "2026-03-03T14:30:00.000Z",
  "action": "shell.execute",
  "resource": "rm -rf /",
  "parameters": { "shell": "bash", "timeout": 30 },
  "context": { "conversation_id": "conv-789" },
  "subject": {
    "agent_id": "gpt-4-agent-prod",
    "user_id": "user-42",
    "session_id": "sess-abc123",
    "roles": ["developer"],
    "delegation_depth": 0,
    "delegated_roles": [],
    "metadata": {}
  },
  "caller": {
    "type": "programmatic",
    "container_id": "ptc-sandbox-001",
    "tool_id": "bash_executor",
    "sandbox_ttl_seconds": 270
  }
}

Example: PolicyDecisionEnvelope (Deny)

{
  "envelope_type": "pde",
  "id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "timestamp": "2026-03-03T14:30:00.003Z",
  "tce_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "effect": "deny",
  "risk_score": 0.95,
  "cumulative_risk": 1.12,
  "matched_rules": [
    {
      "rule_id": "deny-destructive-shell",
      "policy_tier": "baseline",
      "effect": "deny",
      "priority": 100
    }
  ],
  "requirements": [],
  "reason": "shell.execute denied by baseline policy (fail-closed). Resource matches destructive command pattern.",
  "denied_by": "deny-destructive-shell"
}

Example: AuditEventEnvelope (Hash-Chained Receipt)

{
  "envelope_type": "aee",
  "id": "c3d4e5f6-a7b8-9012-cdef-345678901234",
  "timestamp": "2026-03-03T14:30:00.005Z",
  "sequence": 48,
  "tce": { "...": "(serialized TCE above)" },
  "pde": { "...": "(serialized PDE above)" },
  "outcome": "blocked",
  "error": null,
  "execution_duration_ms": null,
  "result_hash": null,
  "prev_hash": "e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5",
  "this_hash": "7a3f9b2e1c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8c41d",
  "content_flags": [],
  "signature": "a1b2c3d4...ed25519...f5e6d7c8",
  "signer_public_key": "04a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456"
}

Example: RiskFactors

{
  "event_volume_30d": 12847,
  "block_rate": 0.034,
  "threat_detection_rate": 0.012,
  "avg_risk_score": 0.08,
  "claims_count_90d": 0,
  "claims_paid_amount_90d": 0
}

This organization has healthy metrics: 12,847 events/month, only 3.4% blocked, 1.2% threat detection rate, zero claims. Risk multiplier: 0.8x (good behavior discount applies).

Example: FraudReport

{
  "flags": [
    { "check_name": "chain_integrity", "severity": "critical", "passed": true, "detail": "Hash chain verified: 49 events, 0 gaps" },
    { "check_name": "coverage_continuity", "severity": "warning", "passed": true, "detail": "No enforcement gaps in 24h before incident" },
    { "check_name": "policy_version_pin", "severity": "info", "passed": true, "detail": "Policy snapshot preserved: 3 active policies" },
    { "check_name": "enforcement_telemetry", "severity": "warning", "passed": true, "detail": "12 linked audit events found" },
    { "check_name": "honesty_attestation", "severity": "info", "passed": true, "detail": "Signed attestation provided" },
    { "check_name": "bypass_exclusion", "severity": "critical", "passed": true, "detail": "No policy modifications in 48h window" },
    { "check_name": "cross_claim_correlation", "severity": "warning", "passed": true, "detail": "No anomalous claim patterns detected" }
  ],
  "chain_verified": true,
  "chain_errors": [],
  "coverage_gap": false,
  "auto_approvable": true,
  "auto_approval_reason": "All 7 fraud checks passed. Chain verified. Amount within 10% of coverage limit.",
  "has_critical_flags": false
}

Example: SOC 2 Compliance Report

{
  "report_type": "SOC 2 Type II - AI Agent Audit Evidence",
  "generated_at": "2026-03-03T15:00:00.000Z",
  "organization": { "name": "Acme Corp", "id": "org-12345" },
  "audit_period": { "start": "2025-09-03", "end": "2026-03-03" },
  "chain_integrity": { "valid": true, "total_events": 49382, "errors": [] },
  "summary": {
    "total_evaluations": 49382,
    "total_blocked": 1641,
    "total_allowed": 47689,
    "total_errors": 52
  },
  "trust_services_criteria": {
    "CC6.1_logical_access_controls": {
      "description": "AI agent identity and authorization verified for every action",
      "evidence_count": 49382
    },
    "CC6.3_authorization": {
      "description": "Policy evaluation enforced on every tool call",
      "evidence_count": 1641
    },
    "CC7.2_monitoring": {
      "description": "Continuous risk scoring with threat detection",
      "evidence_count": 589
    },
    "CC8.1_change_management": {
      "description": "Write and modify operations tracked in audit chain",
      "evidence_count": 8234
    }
  }
}

AHDS-1 is open for industry comment. Insurance carriers, actuaries, compliance professionals, and AI developers are invited to review and contribute. Contact us for enterprise implementation, follow latest updates, or visit antihero.systems.