Summary
The Summary screen lets you see the spend of your tenant over a period, grouped by day, agent, model, provider,
usage type, project or tenant, with the estimated, measured and billed cost side by side. Portal path:
/finops/summary (menu FinOps > Summary, page title FinOps summary). FinOps analysts, tenant
administrators and auditors use it to follow the spend and find the agents or models that cost the most.
What the screen shows
| Area | Content |
|---|---|
| Group by | Grouping of the spend: Day (default), Agent, Model, Provider, Usage type, Project, Tenant. Sent as the group_by parameter. |
| From and To | Optional dates. The portal sends from at 00:00:00 UTC and to at 23:59:59 UTC of the chosen days. An empty date sets no bound. |
| Total card | Sum of the Measured cost of the groups shown, in the tenant currency returned by the server (currency of the response, set in FinOps settings). |
| Spend section | Bar chart with three bars per group: Estimated, Measured and Billed. |
| Table | One row per group. Columns: the group (labelled with the grouping chosen), Events, Tokens, Estimated, Measured, Billed. |
| Empty state | No spend in this period: usage appears once the gateway serves requests. |
The three costs come from the cost ledger: Estimated is computed before a call, Measured after the call from the price cards, and Billed is filled by the reconciliation with the provider export.
Actions
| Button or action | What it does | API call | Roles |
|---|---|---|---|
| Group by | Reloads the chart and the table with the new grouping. | GET /v1/finops/summary (group_by, from, to) | Readers of the FinOps section |
| From / To | Reloads the chart and the table for the new period. | GET /v1/finops/summary | Readers of the FinOps section |
| Retry (error panel) | Sends the request again after an error. | GET /v1/finops/summary | Readers of the FinOps section |
The screen is read only: it creates or changes nothing.
Roles
| Role | Access |
|---|---|
finops, tenant_admin, auditor | Open the screen (FinOps section of portal/src/lib/nav-access.ts) and read the summary (READ_ROLES of services/control-plane/src/eai/domains/finops/__init__.py). |
platform_admin | Opens the screen and passes every role check, but the route needs a tenant context: without a tenant the server answers tenant_required. |
developer, viewer, security_officer | Allowed by the API (READ_ROLES), but the portal menu does not open the FinOps section for them: the page shows Your roles do not open this page. |
The menu hides what your roles cannot open, but the Control Plane stays the authority: every call is checked again on the server.
Typical tasks
Find the most expensive agents of the month
- Open the screen. The summary is the entry point of the spend analysis. Go to FinOps > Summary.
Expected result: the chart shows the spend grouped by Day.
If it fails: if the page shows Your roles do not open this page, ask an administrator for the
finopsrole. - Group by agent. Choose Agent in Group by to get one row per agent.
Expected result: the first column of the table is labelled Agent and lists the agent identifiers.
If it fails: an error panel with the code
forbiddenmeans your token has no FinOps reading role. - Limit the period to the month. Set From to the first day of the month and leave To empty, so the period runs until now. Expected result: the Total card shows the measured spend of the month. If it fails: if No spend in this period appears, check that the gateway served requests in this period.
- Read the table. Compare the Measured column between agents to spot the most expensive ones, then open Usage events filtered on the agent id to see the calls. Expected result: the usage events of the agent are listed. If it fails: check the agent id copied from the table.
Compare estimated, measured and billed cost per day
- Keep the Day grouping. It shows one bar group per day. Choose Day in Group by. Expected result: one bar group per day with the three costs. If it fails: click Retry in the error panel.
- Look at the Billed bars. A missing Billed bar means that the provider export of that day has not been reconciled yet. Expected result: Billed is close to Measured on the days already reconciled. If it fails: import the provider export and run the reconciliation in Reconciliation.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Your roles do not open this page | Your roles are not among platform_admin, tenant_admin, finops, auditor. | Ask a tenant administrator for the finops role in Members and roles. |
Error forbidden (HTTP 403): "You do not have the required role for this operation." | The token has no role of READ_ROLES. | Sign in again with an account that holds a FinOps reading role. |
Error tenant_required (HTTP 403): "This operation requires a tenant context." | You are a platform administrator without a tenant. | Sign in to a tenant to read its spend. |
Error finops_group_by_invalid (HTTP 400) | A group_by value outside tenant, project, agent, model, provider, usage_type, day (only possible through the API). | Use one of the values of Group by. |
| No spend in this period | No usage event in the period. | Widen From and To, or check the gateway in Usage events. |
| Billed stays at zero | No provider export has been reconciled for the period. | Run the reconciliation in Reconciliation. |