Metric

Admina Score

The Admina Score is the headline metric on the dashboard — a live-runtime composite (0–100) that answers a single question: right now, how well is this Admina instance actually governing the traffic it sees? It is not a marketing number and not a static checklist — it is recomputed on every read from the proxy's current state.

Live runtime 0–100 GET /api/dashboard/score Recomputed per request

What it measures

The Admina Score is a weighted sum of five independent governance signals. Each signal is a boolean or proportional check against the proxy's current runtime state — not a stored value, and not a promise about future behaviour.

87/100
Example live score
Data Residency +25
Interactions Audited +25
EU AI Act Coverage +25
No Recent Attacks +15
Forensic Chain Valid +10
Total 100

Formula

Implemented in admina/proxy/api/dashboard.py::_compute_governance_score.

# pseudocode
score  = 0
score += 25  # data residency (constant — always awarded)
score += 25  # interactions audited (forensic box has events)
score += round(eu_ai_act_compliance_score / 100 * 25)  # up to +25
score += 15  # no blocked attacks recorded (cumulative counter)
score += 10  # forensic chain past GENESIS
# → 0 <= score <= 100

The five components

Data Residency

+25
SignalThe governance proxy is running — this component is a constant, not a measurement
Formula+25 unconditionally, hard-coded in _compute_governance_score
How to improveNothing moves this one — it is a flat +25 for any running proxy. No admina.yaml key feeds it, and the ResidencyEnforcer class is never instantiated by the proxy pipeline. Runtime residency enforcement is an SDK feature instead — GovernedData(connector=..., residency_zone="eu") raises on ingest or query outside the allowed zones — but that enforcement does not feed this component.

Interactions Audited

+25
SignalForensic black box is active with at least one recorded event
Formula+25 when forensic_box.record_count > 0, else 0
How to improveSend at least one request through /mcp, /api/v1/audit, or /v1/chat/completions to seed the chain — traffic is the only thing that moves this component. The forensic box is always instantiated (in-memory when no backend is set), so a persistent backend (filesystem or s3) is not what earns the points; it is what keeps the record count from dropping back to 0 on restart.

EU AI Act Coverage

+25
SignalLatest EU AI Act assessment is close to full Article 9–15 coverage
FormulaProportional to the latest assessment: round(compliance_score / 100 × 25)
How to improveRun POST /api/compliance/gap-analysis with risk_category set to high or unacceptable — only a gap analysis records an assessment, and any other risk category returns applicable: false without recording one, so this stays at 0 until you run a qualifying analysis. (POST /api/compliance/report counts too, but only when its own risk classification lands on high or unacceptable — it classifies first, then feeds that category to the same gap analysis.) Then close the gaps it surfaces (risk management, data governance, logging, transparency, human oversight, accuracy/robustness).

No Recent Attacks

+15
SignalZero requests blocked on the MCP proxy path since the process started
Formula+15 if metrics.requests_blocked == 0, else 0
How to improveA zero here is good — it means no malicious traffic has been blocked on /mcp since the proxy started. The counter is cumulative for the process lifetime, so it resets on restart, and only the /mcp path increments it — blocks on the gateway and on the REST integration API are not counted. If the score dropped to 0, inspect the blocked-action events in the live feed.

Forensic Chain Valid

+10
SignalSHA-256 hash chain has moved past its genesis (i.e. the chain is real and verifiable)
Formula+10 when forensic_box.chain_head != "GENESIS", else 0
How to improveSend real governed traffic through the proxy so the forensic logger appends at least one record past GENESIS.

Admina Score vs OISG Score

Admina surfaces two 0–100 scores on the dashboard. The Admina Score (this page) is a live runtime composite. The OISG Score is a static capability assessment. They answer different questions and should be read together.

→ Full side-by-side comparison, a 2×2 interpretation matrix (high/low × high/low), and scenario-based guidance on which score to consult first: Admina Score vs OISG Adequacy.

API response

curl http://localhost:8080/api/dashboard/score \
  -H "X-API-Key: $ADMINA_API_KEY"
{
  "score": 87,
  "max_score": 100,
  "breakdown": {
    "data_residency": 25,
    "interactions_audited": 25,
    "eu_ai_act_coverage": 12,
    "no_recent_attacks": 15,
    "forensic_chain_valid": 10
  },
  "computed_at": "2026-05-21T09:30:00Z"
}