Annual Report Reader
A · Credit information
AI Act: minimal riskSynthetic
Reads each newly filed annual report (iXBRL), extracts revenue, result, equity, total assets and solidity, and checks that the balance sheet adds up before storing the figures.
- Runs per day
- 5
- p95 run time
- 9.7 s
- Tokens per day
- 60,190
- Failed runs
- 0.0 %
From the sample telemetry, 2026-09-18 – 2026-09-24, which includes the incident on 2026-09-22.
Facts
- service.name
safegrade-annual-report-reader- Model
claude-sonnet-5- Runs
- On each new filing that Registry Sync records
- Tools
fetch_ixbrlextract_key_figuresreconcile_balance_sheetstore_financials- Outcome to optimize
- Extraction accuracy: At least 99.5 % of reports reconcile on the first pass (
safegrade.financials.reconciled) - Human oversight
- Reports that fail reconciliation go to an analyst queue instead of being stored.
- EU AI Act
- Extracts published figures. Feeds a high-risk system, so its accuracy is logged as evidence for Scorekeeper.
- Reads from
- Registry Sync
- Read by
- Scorekeeper, Trust File Publisher
- Auga lenses
- Agent Health, Investigation
What can go wrong
Symptom: Equity comes out negative for healthy companies
Root cause: A new taxonomy version flipped the sign convention on one element
Telemetry
Each run is one trace. Besides the standard gen_ai.* attributes, the root span carries:
safegrade.orgnr | Company the report belongs to |
safegrade.financials.fiscal_year | Year of the report |
safegrade.financials.reconciled | Whether the balance sheet added up |
safegrade.financials.taxonomy | iXBRL taxonomy version |
Shape of one run:
{
"name": "invoke_agent Annual Report Reader",
"resource": {
"service.name": "safegrade-annual-report-reader",
"service.namespace": "safegrade"
},
"attributes": {
"gen_ai.operation.name": "invoke_agent",
"gen_ai.provider.name": "anthropic",
"gen_ai.agent.id": "annual-report-reader",
"gen_ai.agent.name": "Annual Report Reader",
"gen_ai.request.model": "claude-sonnet-5",
"safegrade.orgnr": "…",
"safegrade.financials.fiscal_year": "…",
"safegrade.financials.reconciled": "…",
"safegrade.financials.taxonomy": "…"
},
"children": [
"chat claude-sonnet-5",
"execute_tool fetch_ixbrl",
"execute_tool extract_key_figures",
"execute_tool reconcile_balance_sheet",
"execute_tool store_financials",
"chat claude-sonnet-5"
]
}