Appearance
Attribution
One screen, every level of zoom. Open the AI section in your sidebar and you land on Attribution at org scope. From there you can drill: org → cost centre → team → project → person → individual session. The same dashboard layout renders at every level, just scoped by what you clicked.
What's on the screen
The dashboard is a chart carousel sitting above a sessions table. Both are scoped by the same date-range and cost-mode toggles at the top.
Date range. 7d, 30d, QTD, 1Y.
Cost mode. INCREMENTAL (only what you actually paid above the baseline plan) or MARKET (what the same usage would cost at standard list prices). Most orgs sit on INCREMENTAL.
The carousel groups its charts into three tabs:
| Tab | Charts |
|---|---|
| Spend | Summary card with per-provider totals, spend by project bars, cost by cost centre |
| Usage | Top spenders, frustration by model |
| Adoption | Telemetry coverage — what fraction of your headcount is sending data |
Below the carousel is the sessions table. It paginates server-side, supports the standard sort and filter chrome, and each row is a single captured AI session with its model, token counts, project, and cost. Click any row to inspect the prompt and response (Enterprise pathway only).
How attribution rolls up
Each captured session carries:
- A subject (employee or contractor) — resolved from the telemetry key on the session.
- A project — inferred from the working context the agent observed, or marked manually by the engineer in My AI Usage.
- Token counts and the provider's per-model rate at the time of the call.
From the subject, Flowstate joins to the workforce model — the subject's allocations across teams, the team's parent in the tree, the cost centre, the value stream. So a single session contributes upward to:
- The subject (1 row in "Top spenders").
- Their primary team (split by allocation FTE if they're across multiple teams).
- The team's cost centre.
- The project.
- The org total.
Drill-down is the inverse — click a team and the same dashboard re-renders with that team's subject set as the universe.
Attribution is modality-agnostic — a coding session, an image-gen call, a sales-copilot conversation and a legal-research query all roll up the same way. The honest caveat: Flowstate only attributes what it sees. If a provider isn't connected and the agent isn't watching its traffic, that spend is invisible to this screen. See Catalog for the four coverage states across the AI estate.
Sessions and projects
A "session" is one logical conversation with an AI tool — typically one chat thread, one Cursor edit window, one Copilot inline-completion sequence. Sessions group turns. The session, not the turn, is what attribution and reconciliation operate on.
If a session can't be matched to a project automatically, it shows up in the engineer's My AI Usage → Sessions tab as unmatched. They can mark it from there, which feeds back into both the attribution rollup and the classifier feedback loop.
What you do from here
- Investigate a spike. Sort the sessions table by cost descending, drill into the offending team, then into the person.
- Compare cost centres. Switch to org scope, open the cost-by-cost-centre chart, hover for the contribution per team.
- Find quiet seats. Drop into Adoption tab, look for teams with telemetry coverage well below the org average — usually a sign the agent didn't roll out or those engineers genuinely aren't using AI yet.
- Reconcile against the bill. Open Spend reconciliation for the same period and work the unreconciled queue.
Discovery banner
If your org is in the discovery lifecycle stage (the agent has been deployed but Flowstate hasn't seen enough data to compute stable rollups yet), Attribution renders an amber banner at the top of the screen explaining what's missing. It clears automatically once the data backlog crosses the threshold.