# Provider reconciliation capability decision Decision date: 2026-07-16. The external UsageEvent v1 endpoint remains limited to `callback_final`. Current OpenAI and Anthropic organization usage APIs return time-bucketed aggregates; neither response includes the provider request ID needed to match an individual EvoScientist model call. - OpenAI: `GET /v1/organization/usage/completions` groups by project, user, API key, model, batch, or service tier and returns bucket totals. - Anthropic: `GET /v1/organizations/usage_report/messages` groups by API key, workspace, model, service tier, or context-window dimensions and returns bucket totals. Official references: - https://platform.openai.com/docs/api-reference/usage/completions - https://docs.anthropic.com/en/api/admin-api/usage-cost/get-messages-usage-report Because these sources cannot identify a single request, the WebUI stores them as internal `aggregate-report-v1` observations and produces an exact decimal difference report for the same deployment/provider/model/window. Aggregate reports never update `model_usage`, never synthesize `provider_only` calls, and never enter `/api/usage/events`. A future connector may enable per-request reconciliation only after its official response includes a stable request ID; that change requires a new event schema and projection policy.