The Operational Integrity Score (OIS) is a composite metric that quantifies the trustworthiness of a tenant's operations across six dimensions. This schema defines the JSON representation of an OIS score payload as computed by the HATS attestation pipeline.
The OIS is a number between 0.0 and 1.0 (inclusive). It is computed as a weighted sum of six dimension scores, each also between 0.0 and 1.0. The weights are configurable per tenant but MUST sum to 1.0.
OIS payloads are emitted at regular intervals and after degradation or recovery events. They are attested via H33-74 receipts and included in governance proof bundles.
| Field | Type | Required | Description |
|---|---|---|---|
score | number | Yes | Composite OIS score. Range: [0.0, 1.0]. |
dimensions | object | Yes | Six dimension scores. |
weights | object | Yes | Six dimension weights. Must sum to 1.0. |
computed_at | string (ISO 8601) | Yes | When the score was computed. |
tenant_id | string (UUID) | Yes | The tenant this score belongs to. |
attestation_hash | string (hex64) | Yes | SHA3-256 of the canonical payload serialization. |
degradation_events | array | No | Recent degradation events affecting this score. |
recovery_events | array | No | Recent recovery events affecting this score. |
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://h33.ai/schemas/ois-score/v1.0.0",
"title": "OIS Score Payload",
"type": "object",
"required": [
"score", "dimensions", "weights",
"computed_at", "tenant_id", "attestation_hash"
],
"properties": {
"score": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"dimensions": {
"type": "object",
"required": [
"cryptographic_integrity", "governance_completeness",
"attestation_freshness", "signature_coverage",
"chain_anchoring", "replay_consistency"
],
"properties": {
"cryptographic_integrity": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"governance_completeness": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"attestation_freshness": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"signature_coverage": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"chain_anchoring": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"replay_consistency": { "type": "number", "minimum": 0.0, "maximum": 1.0 }
}
},
"weights": {
"type": "object",
"required": [
"cryptographic_integrity", "governance_completeness",
"attestation_freshness", "signature_coverage",
"chain_anchoring", "replay_consistency"
],
"properties": {
"cryptographic_integrity": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"governance_completeness": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"attestation_freshness": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"signature_coverage": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"chain_anchoring": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
"replay_consistency": { "type": "number", "minimum": 0.0, "maximum": 1.0 }
}
},
"computed_at": { "type": "string", "format": "date-time" },
"tenant_id": { "type": "string", "format": "uuid" },
"attestation_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
"degradation_events": {
"type": "array",
"items": { "$ref": "#/$defs/DegradationEvent" }
},
"recovery_events": {
"type": "array",
"items": { "$ref": "#/$defs/RecoveryEvent" }
}
},
"$defs": {
"DegradationEvent": {
"type": "object",
"required": ["dimension", "delta", "cause", "timestamp"],
"properties": {
"dimension": { "type": "string" },
"delta": { "type": "number", "maximum": 0.0 },
"cause": { "type": "string" },
"timestamp": { "type": "string", "format": "date-time" }
}
},
"RecoveryEvent": {
"type": "object",
"required": ["dimension", "delta", "timestamp"],
"properties": {
"dimension": { "type": "string" },
"delta": { "type": "number", "minimum": 0.0 },
"timestamp": { "type": "string", "format": "date-time" }
}
}
},
"additionalProperties": false
}| Dimension | Key | Description | Default Weight |
|---|---|---|---|
| Cryptographic Integrity | cryptographic_integrity | Percentage of attestations with valid signatures and hashes. 1.0 means all attestations pass cryptographic verification. | 0.25 |
| Governance Completeness | governance_completeness | Percentage of governance decisions that have complete audit trails with no missing nodes or edges. | 0.20 |
| Attestation Freshness | attestation_freshness | Measure of how recent the latest attestation is. Decays toward 0.0 as time since last attestation increases. | 0.15 |
| Signature Coverage | signature_coverage | Percentage of attestations signed with all three PQ families. 1.0 means every attestation has ML-DSA + FALCON + SLH-DSA. | 0.20 |
| Chain Anchoring | chain_anchoring | Percentage of attestations anchored to a public chain. Measures the extent of on-chain binding. | 0.10 |
| Replay Consistency | replay_consistency | Percentage of replay frames that produce deterministic results when re-executed. | 0.10 |
The composite score is computed as: score = sum(dimensions[d] * weights[d]) for each dimension d. Weights MUST sum to exactly 1.0 (within floating-point tolerance of 1e-9).
attestation_hash is the SHA3-256 of the canonical payload serialization (sorted keys, no whitespace, UTF-8).attestation_hash binds the score payload to an H33-74 receipt, which in turn carries three PQ signatures. The OIS payload itself is not directly signed; trust flows through the receipt chain.{
"score": 0.926,
"dimensions": {
"cryptographic_integrity": 1.0,
"governance_completeness": 0.95,
"attestation_freshness": 0.88,
"signature_coverage": 1.0,
"chain_anchoring": 0.72,
"replay_consistency": 0.91
},
"weights": {
"cryptographic_integrity": 0.25,
"governance_completeness": 0.20,
"attestation_freshness": 0.15,
"signature_coverage": 0.20,
"chain_anchoring": 0.10,
"replay_consistency": 0.10
},
"computed_at": "2026-05-22T14:30:00Z",
"tenant_id": "a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6",
"attestation_hash": "d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8",
"degradation_events": [],
"recovery_events": []
}Verification: (1.0*0.25) + (0.95*0.20) + (0.88*0.15) + (1.0*0.20) + (0.72*0.10) + (0.91*0.10) = 0.25 + 0.19 + 0.132 + 0.20 + 0.072 + 0.091 = 0.935. The displayed score is 0.926 because dimension scores are continuous and may differ at higher precision than shown.
{
"score": 1.5, // ERROR: maximum is 1.0
"dimensions": {
"cryptographic_integrity": 1.0,
"governance_completeness": 0.95,
"attestation_freshness": 0.88,
"signature_coverage": 1.0,
"chain_anchoring": 0.72
// ERROR: missing replay_consistency
},
"weights": {
"cryptographic_integrity": 0.50,
"governance_completeness": 0.50,
"attestation_freshness": 0.15,
"signature_coverage": 0.20,
"chain_anchoring": 0.10,
"replay_consistency": 0.10
// ERROR: weights sum to 1.55, not 1.0
},
"computed_at": "yesterday", // ERROR: not ISO 8601
"tenant_id": "not-a-uuid", // ERROR: invalid UUID format
"attestation_hash": "short" // ERROR: not 64 hex chars
}| Score Range | Classification | Interpretation |
|---|---|---|
0.90 - 1.00 | Excellent | All dimensions are healthy. No degradation events pending. System is fully operational with complete cryptographic coverage. |
0.75 - 0.89 | Good | Minor degradation in one or two dimensions. System remains trustworthy but should be monitored. |
0.50 - 0.74 | Degraded | Significant gaps in one or more dimensions. Attestation freshness or chain anchoring may be lagging. Review required. |
0.25 - 0.49 | Critical | Multiple dimensions severely degraded. Governance completeness or signature coverage failures. Immediate action required. |
0.00 - 0.24 | Failed | System integrity cannot be verified. Cryptographic integrity or governance completeness near zero. Do not rely on attestations. |
Thresholds are guidance. Each tenant MAY define custom alert thresholds. The OIS score is a measurement, not a policy decision. Policy is encoded in the governance graph.
sum(dimensions[d] * weights[d]) and compare to score. Tolerance: 1e-6.attestation_hash itself). Compare to attestation_hash.attestation_hash.| Failure Code | Description | Severity |
|---|---|---|
SCHEMA_INVALID | Payload does not conform to the JSON Schema. | Fatal |
WEIGHT_SUM_ERROR | Weights do not sum to 1.0. | Fatal |
SCORE_MISMATCH | Recomputed score does not match score field. | Fatal |
HASH_MISMATCH | Recomputed attestation hash does not match attestation_hash. | Fatal |
DIMENSION_MISSING | One or more of the six required dimensions is absent. | Fatal |
DIMENSION_OUT_OF_RANGE | A dimension score is outside [0.0, 1.0]. | Fatal |
RECEIPT_UNBOUND | No H33-74 receipt references this payload's attestation hash. | Warning |
STALE_SCORE | computed_at is older than the configured freshness threshold. | Warning |