Scorekeeper
A · Credit information
AI Act: high riskSynthetic
Combines key figures, debts, payment remarks and company age into the Safegrade score (rule rating-v0) and writes a plain-language explanation of the main factors. Every score change is logged with its inputs.
- Runs per day
- 4
- p95 run time
- 8.7 s
- Tokens per day
- 46,359
- Failed runs
- 3.6 %
From the sample telemetry, 2026-09-18 – 2026-09-24, which includes the incident on 2026-09-22.
Facts
- service.name
safegrade-scorekeeper- Model
claude-sonnet-5- Runs
- Nightly for all companies, and on demand when Debt Watch or Annual Report Reader requests it
- Tools
load_company_graphcompute_ratingexplain_ratingstore_score- Outcome to optimize
- Score disputes: Fewer than 1 upheld dispute per 1 000 score changes (
safegrade.score.delta) - Human oversight
- A drop of 3 or more steps waits for analyst sign-off before it is published.
- EU AI Act
- Creditworthiness assessment (Annex III, point 5(b)) whenever the company is a sole trader. Safegrade treats every score as high-risk.
- Reads from
- Registry Sync, Annual Report Reader, Debt Watch
- Auga lenses
- EU AI Act, Investigation, Oversight Inbox
What can go wrong
Symptom: A cluster of 3-step score drops
Root cause: Scored on last year’s figures because Registry Sync had not yet recorded the new filings
Telemetry
Each run is one trace. Besides the standard gen_ai.* attributes, the root span carries:
safegrade.orgnr | Company scored |
safegrade.score.value | New score, 1–12 |
safegrade.score.delta | Change from the previous score |
safegrade.score.rule_version | Scoring rule used (rating-v0) |
safegrade.input.financials_age_days | Age of the key figures used |
safegrade.oversight.required | Whether sign-off was required |
Shape of one run:
{
"name": "invoke_agent Scorekeeper",
"resource": {
"service.name": "safegrade-scorekeeper",
"service.namespace": "safegrade"
},
"attributes": {
"gen_ai.operation.name": "invoke_agent",
"gen_ai.provider.name": "anthropic",
"gen_ai.agent.id": "scorekeeper",
"gen_ai.agent.name": "Scorekeeper",
"gen_ai.request.model": "claude-sonnet-5",
"safegrade.orgnr": "…",
"safegrade.score.value": "…",
"safegrade.score.delta": "…",
"safegrade.score.rule_version": "…",
"safegrade.input.financials_age_days": "…",
"safegrade.oversight.required": "…"
},
"children": [
"chat claude-sonnet-5",
"execute_tool load_company_graph",
"execute_tool compute_rating",
"execute_tool explain_rating",
"execute_tool store_score",
"chat claude-sonnet-5"
]
}