#Analytics & Usage
The Analytics & usage page is the partner Monitor view for call performance and usage trends across an assigned client. It is a selected-client surface: it reports figures at client grain, rechecked server-side against your partner assignments. The figures are client-grain estimates and are distinct from invoice or billing truth.
#Who Can Use It
| Role | Access |
|---|---|
partner_admin | View call performance, caller sentiment, call outcomes, upset caller reason groups, diagnostic driver display labels, diagnostic driver IDs, and the consumption & cost card for a selected client. |
partner_user | View call performance, caller sentiment, call outcomes, and upset caller reason groups. Cost, consumption, driver display labels, and raw driver IDs are not returned for this role. |
Both partner roles use the same selected-client view, but the BFF projection differs by role. Navigation visibility is not the security boundary: the /analytics route is restricted to partner roles, and any other role receives a generic not-found that does not reveal whether the surface exists.
#Selecting A Client
Analytics is reported at client grain, so you must have a single client selected through the client context selector. There is no reviewed cross-client aggregate, so the page does not show portfolio totals or trends.
When your scope is set to all assigned clients, the page shows a "Portfolio roll-up not available" empty-state with a picklist so you can drill into a single client and reach the working selected-client view.
If your confirmed scope is degraded, has no assigned clients, or the selected client cannot be confirmed, the page shows the matching honest state rather than guessing or showing another client's data.
#Filters
In selected-client scope the page offers three filters:
- Project — choose a project that belongs to the selected client, or leave it on the default project. The project list is scoped to the selected client; a project that is not in your authorised set for that client is rejected.
- Period — Last 7 days, Last 14 days, or Last 30 days. The default is Last 14 days.
- Metric view — All metrics, Volume, Consumption, or Outcomes. This toggles which sections render; it does not change the underlying scope.
#What The Page Shows
When the selected client has matching calls for the chosen filters, the page renders the sections enabled by the metric view:
- Volume metrics — Call volume (total calls), Answer rate, Transfer rate, and Caller sentiment (positive share) as stat tiles.
- Consumption & cost — a client-grain estimate card with minutes for the period, estimated cost, and plan headroom. This card is
partner_admin-only (see below). - Call outcomes — the call-outcome breakdown for the selected client and project.
- Upset caller diagnostics — negative-call reason groups from the scoped analytics aggregate.
partner_adminalso sees driver display labels and a clearly labelled diagnostic driver ID line.partner_usersees group trends only.
If the selected client has no projects yet, or no calls match the filters, the page shows a calm empty-state instead of metrics.
No-context history is shown separately as "Context not captured". It is not treated as the raw unknown driver. "Reason not determined" is used only for analyzed upset calls whose driver is unknown.
#Cost Visibility Differs By Role
Cost, consumption, and plan headroom are billing-grade figures, so they are gated to partner_admin.
- For
partner_admin, the Consumption & cost card shows minutes, an estimated cost, and plan headroom. The card is explicitly labelled a client-grain estimate, and the page repeats that estimated usage is distinct from invoice or billing truth. Per-project cost appears only once a reviewed project-grain aggregate exists. - For
partner_user, cost is never requested and never returned. In place of the card, the page shows a "Not available for your role" note explaining that partner users cannot view costs.
This is a server-side boundary: for partner_user the cost block is omitted from the response and the billing source is never read, so the read-only note is what the surface returns, not a hidden-but-present value.
#Sentiment Diagnostic Visibility
Upset caller diagnostics are selected-client and selected-project analytics. They are fetched from the scoped API aggregate; the browser does not derive them from a paginated call list.
partner_adminreceives thepartner_driverprojection: group labels, driver display labels, and raw driver IDs in diagnostic metadata only.partner_userreceives thepartner_groupprojection: group labels and counts only. Driver arrays and raw IDs are omitted from the wire.- Internal roles use the internal-only negative-driver BFF/API projection rather than this partner Monitor route. Internal raw visibility remains separate from partner and client surfaces.
#Estimates, Not Billing Truth
Every figure on this page is a client-grain estimate intended for monitoring and trend review. These figures are distinct from invoice or billing truth. Use Client Billing (available to partner_admin) for billing overview, invoices, and entitlements when you need billing-grade numbers.
#When Sources Are Degraded
The page reads several sources to build the view. If some are temporarily unavailable, it shows the metrics it could load and a notice that the missing sections will return when the source recovers. If the billing source specifically did not respond, the Consumption & cost card shows a "temporarily unavailable" state while the performance metrics still render. If the core analytics sources fail, the page shows a load-error state with a Retry control.
#Safety Boundaries
Analytics is a monitoring view, not a data-export surface. Do not treat client-grain estimates as billing figures, and do not put internal host access, secret-management paths, raw provider credentials, or customer secrets into support requests about this page. When a question needs production work or billing-grade reconciliation, use Escalation Boundaries and provide safe context to AiDial support.