Use local replay completeness when analytics intentionally relies on stored webhooks

General lesson: when a durable webhook ledger is the explicitly accepted analytics source, provider-history reconciliation should not remain a global dashboard gate. Project stored events idempotently, expose independently trustworthy trigger and demand metrics, and gate only absence-dependent contact/SLA metrics on local replay completeness plus actor classification.

Applicability and limits: this design measures events the application received; it does not prove provider-side history is complete. Use it only when the product owner accepts that boundary, and keep missing human/automation classification visible rather than treating unknown actors as human support.

Evidence/example (2026-09-17): In the Team Ops analytics path, provider-list reconciliation was removed from the cron and dashboard runtime. Persisted communication events plus terminal local replay receipts now establish projection completeness, while human-contact/SLA measures remain fail-closed until actor classification is sufficient. Focused tests, type-check, lint, and formatting passed.