SKOOR Risk Money movement. Skoored by AI.

Metrics

The six numbers the platform reports on itself.

Calibration per band, coverage, hold-band precision and recall, auto-closed and overturned rates, time to decision by route, and dollars approved without waiting — each { value | null, n } over a window (default 30 days), persisted daily. The demo tenant's figures are public and labelled simulated.

Metrics

FieldTypeNotes
asOfstring (date-time)
windowDaysinteger
calibrationobjectPer band: labelled transfers that went bad ÷ labelled transfers.
calibration.clearMeasured
calibration.reviewMeasured
calibration.holdMeasured
calibration.unscoredMeasured
coverageobject
coverage.transfersMeasured
coverage.programsMeasured
holdBandobject
holdBand.precisionMeasured
holdBand.recallMeasured
holdBand.tpinteger
holdBand.fpinteger
holdBand.fninteger
autoClosedMeasured
overturnedMeasured
timeToDecisionHoursobject
timeToDecisionHours.automatedobjectClosed alerts routed automated.
timeToDecisionHours.automated.mediannumber | null
timeToDecisionHours.automated.p90number | null
timeToDecisionHours.automated.ninteger
timeToDecisionHours.reviewedobjectClosed alerts routed reviewed.
timeToDecisionHours.reviewed.mediannumber | null
timeToDecisionHours.reviewed.p90number | null
timeToDecisionHours.reviewed.ninteger
approvedWithoutWaitingobjectClear-band transfers that never raised an alert.
approvedWithoutWaiting.countinteger
approvedWithoutWaiting.centsstringInteger cents as a string (bigint-safe).
approvedWithoutWaiting.nintegerScored transfers.
eventCoverageobjectEvent families understood ÷ families known.
eventCoverage.valuenumber | null
eventCoverage.ninteger
eventCoverage.seenstring[]

Measured

A number with its n; value is null when nothing was measured.

FieldTypeNotes
valuenumber | nullnull when nothing was measured
nintegerobservations behind the value

Endpoints

get/api/metrics

The six numbers for the tenant

AuthBearer + X-Operator
OperationMetrics · GET /api/metrics

Parameters

NameInTypeNotes
tenant (optional)querystringTenant slug. Optional: the bearer token already proves the tenant. Pass it to be explicit.
days (optional)queryintegerWindow in days, 1–365 (default 30).

Responses

200 — Every metric with its n; also persisted as today's daily snapshot. Metrics

FieldTypeNotes
asOfstring (date-time)
windowDaysinteger
calibrationobjectPer band: labelled transfers that went bad ÷ labelled transfers.
calibration.clearMeasured
calibration.reviewMeasured
calibration.holdMeasured
calibration.unscoredMeasured
coverageobject
coverage.transfersMeasured
coverage.programsMeasured
holdBandobject
holdBand.precisionMeasured
holdBand.recallMeasured
holdBand.tpinteger
holdBand.fpinteger
holdBand.fninteger
autoClosedMeasured
overturnedMeasured
timeToDecisionHoursobject
timeToDecisionHours.automatedobjectClosed alerts routed automated.
timeToDecisionHours.automated.mediannumber | null
timeToDecisionHours.automated.p90number | null
timeToDecisionHours.automated.ninteger
timeToDecisionHours.reviewedobjectClosed alerts routed reviewed.
timeToDecisionHours.reviewed.mediannumber | null
timeToDecisionHours.reviewed.p90number | null
timeToDecisionHours.reviewed.ninteger
approvedWithoutWaitingobjectClear-band transfers that never raised an alert.
approvedWithoutWaiting.countinteger
approvedWithoutWaiting.centsstringInteger cents as a string (bigint-safe).
approvedWithoutWaiting.nintegerScored transfers.
eventCoverageobjectEvent families understood ÷ families known.
eventCoverage.valuenumber | null
eventCoverage.ninteger
eventCoverage.seenstring[]

401 — Bearer token missing or unknown. Error

FieldTypeNotes
errorstringWhat went wrong, in one sentence.
requestId (optional)stringPresent once the gateway is live: the X-Request-Id of the failed request.

Example

curl -s "https://skoor.ai/risk/api/metrics?tenant=demo&days=30" \
  -H "Authorization: Bearer test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "X-Operator: you@bank.example"

get/api/governance

The model-risk record (how the AI is governed)

Generated from the live record and the running code, in the shape of SR 11-7 and NIST AI RMF: model inventory, the automated-or-reviewed boundary per program, eval-set validation and live calibration, the six metrics, change control (policy and rule versions, hash chain), human oversight (attribution, clocks, overturns, the language model's role), data rules, and a requirement-to-evidence mapping. Every number carries n; unmeasured is null. Rendered for people at /governance.

AuthBearer + X-Operator
OperationMetrics · GET /api/governance

Parameters

NameInTypeNotes
tenant (optional)querystringTenant slug. Optional: the bearer token already proves the tenant. Pass it to be explicit.
days (optional)queryintegerWindow in days, 1–365 (default 30).

Responses

200 — The record. GovernanceRecord

FieldTypeNotes
recordVersionstringgovernance-v1
asOfstring (date-time)
tenantstring
simulatedboolean
windowDaysinteger
inventoryobject[]
inventory[].idstring
inventory[].namestring
inventory[].versionstring
inventory[].kind"deterministic" | "llm" | "rules"
inventory[].decidesboolean
inventory[].purposestring
inventory[].inputsstring
inventory[].outputstring
inventory[].whereUsedstring
inventory[].validationstring
inventory[].evidencestring
boundaryobjectPolicy version, auto-closable detectors and bands, minimum program history, always-reviewed and never-automated detectors, two-approver actions, hold-band rule, bands, autonomy eligibility, and each program's tier, version and granted detectors.
validationobjectEval reports for the transaction Skoor, typologies and actor Skoors (cases, band accuracy, precision/recall with n, failures by case id), failuresTotal, and live calibration, hold-band precision/recall and coverage.
monitoringMetrics
changeControlobjectStored policy versions (scope, version, active, createdAt), rule versions and the activation gate, the hash-chain report, and how the schema changes.
oversightobjectAttribution rule, decision clocks, decisions in window (total, by a person, under policy, overturned drafts, overturn rate with n), second-approver actions, the language model's role, model and whether it is configured.
dataobjectEvent coverage with the event types seen, the null rule, the no-fabrication test, retention.
mappingobject[]
mapping[].framework"SR 11-7" | "NIST AI RMF"
mapping[].sectionstring
mapping[].requirementstring
mapping[].whereInSkoorstring
mapping[].evidencestring

401 — Bearer token missing or unknown. Error

FieldTypeNotes
errorstringWhat went wrong, in one sentence.
requestId (optional)stringPresent once the gateway is live: the X-Request-Id of the failed request.

Example

curl -s "https://skoor.ai/risk/api/governance?tenant=demo&days=30" \
  -H "Authorization: Bearer test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "X-Operator: you@bank.example"

get/api/public/metrics

The demo tenant's six numbers, public

AuthNone (public)
OperationMetrics · GET /api/public/metrics

Parameters

NameInTypeNotes
days (optional)queryintegerWindow in days, 1–90 (default 30; only the 30-day answer is cached for 60 s).

Responses

200 — Metrics for the demo tenant, labelled simulated. object & Metrics

FieldTypeNotes
tenantstring
simulatedconst true
asOfstring (date-time)
windowDaysinteger
calibrationobjectPer band: labelled transfers that went bad ÷ labelled transfers.
calibration.clearMeasured
calibration.reviewMeasured
calibration.holdMeasured
calibration.unscoredMeasured
coverageobject
coverage.transfersMeasured
coverage.programsMeasured
holdBandobject
holdBand.precisionMeasured
holdBand.recallMeasured
holdBand.tpinteger
holdBand.fpinteger
holdBand.fninteger
autoClosedMeasured
overturnedMeasured
timeToDecisionHoursobject
timeToDecisionHours.automatedobjectClosed alerts routed automated.
timeToDecisionHours.automated.mediannumber | null
timeToDecisionHours.automated.p90number | null
timeToDecisionHours.automated.ninteger
timeToDecisionHours.reviewedobjectClosed alerts routed reviewed.
timeToDecisionHours.reviewed.mediannumber | null
timeToDecisionHours.reviewed.p90number | null
timeToDecisionHours.reviewed.ninteger
approvedWithoutWaitingobjectClear-band transfers that never raised an alert.
approvedWithoutWaiting.countinteger
approvedWithoutWaiting.centsstringInteger cents as a string (bigint-safe).
approvedWithoutWaiting.nintegerScored transfers.
eventCoverageobjectEvent families understood ÷ families known.
eventCoverage.valuenumber | null
eventCoverage.ninteger
eventCoverage.seenstring[]

404 — No demo tenant on this deployment. Error

FieldTypeNotes
errorstringWhat went wrong, in one sentence.
requestId (optional)stringPresent once the gateway is live: the X-Request-Id of the failed request.

Example

curl -s "https://skoor.ai/risk/api/public/metrics?days=30"

← All objects