Documentation Get help

How AI data arrives in Flowstate

Every AI figure in Flowstate comes from one of three places. Knowing which one tells you why two screens can show different numbers for the same month.

The three sources

SourceWhat it tells youHow it arrivesWhere you see it
Provider billsWhat each AI provider charged, and for whom where the provider reports itYou connect each provider under Settings → Integrations. Flowstate brings in past bills straight away, then checks every hourDashboard (Provider spend), Breakdown, Adoption, AI caps, spend alerts
Cloud Proxy sessionsEach AI conversation on a company Mac: who, which tool and model, what for, and its estimated costThe Flowstate agent on your Macs sends covered AI traffic through the Cloud ProxyAgent sessions, My AI → My sessions, spend by project, initiative and task, AI impact
AI service accountsThe AI use of your own services, such as a support chatbotYour engineers add the Flowstate SDK to the service, with the account’s keySettings → AI → AI Service Accounts, agents’ actual spend

Set them up: Connect AI providers, Cloud Proxy, AI service accounts.

Matching provider spend to people

  1. Flowstate matches each provider’s users to your employees by email address, ignoring capitals, then to your contractors.
  2. Anyone who doesn’t match shows as Unlinked — followed by their email or username, and isn’t counted in any team’s total.
  3. Flowstate tries again every time it checks the provider, so adding the person or correcting their email in Flowstate fixes it.

Some providers only send a total for the whole organisation, so there’s nobody to match. Connect AI providers shows which.

Tying sessions to people

  1. Each Mac reports its assigned user’s email from your device management tool.
  2. Flowstate matches it to an employee’s or contractor’s work email, ignoring capitals.
  3. If the email doesn’t match anyone in Flowstate, the session isn’t added.

If the person was signed in to the AI tool with an account Flowstate doesn’t recognise — a personal ChatGPT account, for example — the session is kept but shows the person as Unknown.

Tying sessions to work

Title, summary and category. Flowstate reads each session and gives it a short title, a one-line summary and a category: Feature, Architecture, Refactor, Testing, Bug Fix, Debugging, Investigation / Spike, Dependency / Maintenance, Documentation, Personal / Sidetracked or Unclassified. A Personal / Sidetracked session keeps no title or summary and shows as Personal session.

Project. Flowstate ties each session to a project from the work it was part of, such as the tickets and code it relates to. A session’s project shows Pending… until this is done, then a project or No project.

Initiative. A session takes the initiative of its project.

Pull requests. Flowstate links sessions to the GitHub pull requests they helped with. That’s what feeds Engineering insights → AI impact.

Fixing a session’s project

  • In Insights → Agent insights → Agent sessions, open the session, then Session actions → Reassign project. You can do this for your own sessions, or for anyone’s if you administer AI governance.
  • Anyone can pick a project for their own sessions: in My AI → My sessions, filter to Needs a project and choose one.
  • You can’t change a session’s category. What decides where a session’s cost goes is its project, so if a session is counted in the wrong place, reassign its project.

A reassigned session’s cost counts towards its new project.

How AI costs land

Cost formulas are on How costs are calculated.

WhereFrom provider billsFrom sessions
PersonThe matched employee or contractorThe employee who had the session
TeamThe person’s current teamThe person’s current team
Project— bills don’t say what the spend was forThe session’s project. A session’s whole cost goes to one project
Initiative—The project’s initiative
AI service account—Its own line, not on any person or team

Copilots and agents. A copilot is an AI tool a person uses, such as Cursor or Claude Code. Its spend belongs to that person, never to a separate worker. An agent is an AI worker you plan in Resourcing → Agents & copilots. Its spend is its own line, from the AI service account it runs under. The same tool can be either: Claude Code used by an engineer is copilot use; Claude Code running on its own under a service account is agent work. See The AI cost model.

Seat-based and usage-based tools

In Agent sessions, the Billing model filter picks out sessions by how their tool charges:

Billing modelWhat it meansWhat a session’s cost shows
Metered usageYou pay for what’s used, such as API tokensAn estimated cost and the tokens used
Flat seatA fixed monthly price per personThe seat’s monthly price, followed by “/mo seat”. The session is covered by the seat
Hybrid (seat + overage)A seat, plus charges above an allowance”Seat +”, the overage amount, then “overage”
UnmeasuredFlowstate can’t measure the costNot measured

Seat charges come through in provider spend, from the provider’s bill.

What “Spend accounted for” means

Spend accounted for, on the Agent insights Dashboard, compares the two for each month:

  • Billed: provider spend for the month.
  • Accounted for: the cost of that month’s sessions, with or without a project.

A low share means much of your AI spend happens where the Cloud Proxy can’t see it — tools it doesn’t cover, computers without the agent, or services calling providers directly without an AI service account. It rises as you roll out the Cloud Proxy and add AI service accounts. Months with no bill aren’t shown.

Spend by task, next to it, splits session spend by category. It needs AI attribution.