# Measuring a workplace AI assistant

> How Roiva values the time an assistant such as Copilot, Gemini or Glean gives back, where its users come from, and what a license count misses.
>
> Source: https://roiva.ai/docs/measuring-a-workplace-ai-assistant
> Checked against the product on October 25, 2026

A workplace AI assistant, such as Microsoft 365 Copilot, Claude Enterprise, ChatGPT Enterprise, Gemini, Glean or Amazon Quick, is licensed to many people for many tasks. This page covers how Roiva values the time it gives back, where its figures come from, and where they mislead.

#### How the value is worked out

The AI Assistant Rollout template values the assistant as freed capacity: the people who used it in the month × the timed tasks each does with it a month × the minutes it saves on one × your blended hourly rate. The minutes come from your own [time study](https://roiva.ai/docs/running-a-time-study): its without-AI mean is the baseline and its with-AI mean the reading. Tasks per user is a figure you set, for the account or for one initiative.

Roiva supplies neither the tasks nor the minutes, so the formula books nothing until both are set. Only a task your study timed counts, however often people use the assistant for anything else. Freed capacity is reported beside cash value and counts in no ROI until a document shows the time became cash. See [How Roiva calculates value](https://roiva.ai/docs/how-value-is-calculated).

Vendors publish their own estimates of an assistant's value, built from usage and their research averages. Keep them as context. They aren't a measurement of your team's work, and Roiva doesn't read them.

#### Where the active users come from

Connect **Microsoft 365 Copilot** and Roiva reads Microsoft's Copilot usage report every night: who holds a license, and the last day each of them used Copilot. Names are replaced by a digest Roiva makes before anything is saved. From those, it counts each month's active users and licensed users.

- **History starts with the first sync.** Microsoft gives only each user's latest day, so Roiva counts a month's users night by night. Months before the first sync aren't counted.
- **A month settles a few days after it ends.** The report usually runs two or three days behind.
- **The connection becomes the source once it finds a license.** Until its sync finds one, it isn't offered as the account's AI assistant source. It becomes the source on its own only if no other connection is, an AWS connection counting Amazon Quick seats included, and nobody chose one in **Organization Settings → Metric Sources**. To read Copilot instead, choose it there once it has found a license. See [Managing a connection](https://roiva.ai/docs/managing-a-connection).

Connect **ChatGPT Enterprise** and Roiva reads OpenAI's daily usage for each member every night, and the workspace's member list. A member counts as active in a month if they sent at least one ChatGPT message in it. Using only Codex doesn't count; Codex is measured as a coding assistant. Roiva keeps a digest it makes of each member's ID, never an email or name, and counts the members holding a ChatGPT seat.

- **History reaches back about three months.** The first sync counts every whole month in the last 90 days that OpenAI's report covers. A month the report covers only in part, such as the month it was turned on for your workspace, isn't counted. Seats are counted from the first sync on, since OpenAI lists only who holds a seat now.
- **Deleted members drop out.** OpenAI leaves members it has deleted out of the daily usage per member, so a past month can count a few people fewer than used it.
- **The key needs two permissions.** Enterprise analytics usage and Users, both set to Read. Without Users, Roiva counts active users but no seats, and the connection isn't offered as the AI assistant source until a sync has counted a ChatGPT seat.
- **A key made for Codex analytics stops on December 15, 2026.** OpenAI retires that endpoint then. Until that date the connection still reads Codex with it, reads no ChatGPT users, and asks for a new key.
- **The connection becomes the source once it finds a ChatGPT seat,** if no other connection is the source and nobody chose one in **Organization Settings → Metric Sources**. It never replaces another connection, AWS counting Amazon Quick seats included; choose it there instead.

Connect **Claude Enterprise** and the same Analytics API key that reads Claude Code also reads Claude chat. Every night Roiva reads each member's activity for the day and the organization's assigned seats. A member who sent at least one message in Claude chat in the month, including Chat and Cowork unified, counts once as an active user; members who only used Claude Code or Cowork sessions don't. Each member is kept as a digest Roiva makes, never a name or email.

- **History goes back three months.** Unlike Copilot's report, Anthropic's analytics give every day, so the first sync counts the last three months whole. They start on January 1, 2026, and run about a day behind.
- **It's built from Anthropic's beta docs.** The chat figures come from Anthropic's Claude Enterprise Analytics API, which is in beta. An AI agent (Claude) built Roiva's reading of them from Anthropic's published docs, and it hasn't yet been checked against a live Claude Enterprise organization. If Anthropic's answer doesn't match those docs, Roiva records no chat from it, keeps syncing Claude Code, and says what was missing on the connection's page and in the initiative's **Health** tab, rather than count no one.
- **It becomes the source once it finds seats,** as Copilot does with a license, and only the same way: if no other connection is the source and nobody chose one. Roiva never moves the source between AWS, Copilot, ChatGPT Enterprise and Claude Enterprise on its own: the first to find seats keeps it, even once its seats are gone, until someone chooses in **Organization Settings → Metric Sources**.

Connect **Gemini in Google Workspace** and Roiva reads Google's Gemini audit log every night: an entry for each thing someone did with Gemini, in the Gemini app and in Gmail, Docs, Sheets, Meet and the other Workspace apps. A person who used Gemini at least once in the month, in any of them, counts once as an active user. Only uses Google marks as active count; a suggestion nobody took up doesn't. The log says who used Gemini and in which app, never what they asked or what it wrote, and Roiva replaces each person with a digest it makes of their Google profile ID before anything is saved, keeping no email or name.

- **The first sync reads back 180 days.** Google keeps the log that long. The oldest month it reaches usually began before then, so it gets no monthly figure; each month after it is counted whole. Months are UTC calendar months.
- **An admin connects it.** A super admin, or an admin whose role has the Reports privilege, signs in and allows Roiva to read the audit log. It's a separate connection from Google Workspace, which reads the calendars one person chooses.
- **Licenses stay yours to enter.** Gemini comes with most Business and Enterprise editions, and Google gives no API for a Gemini license count. Enter the eligible Gemini licenses from the Admin console's Gemini usage report by hand each month.
- **The connection becomes the source once someone has used Gemini in the last 30 days,** if no other connection is the source and nobody chose one in **Organization Settings → Metric Sources**. It never replaces another connection, AWS counting Amazon Quick seats included; choose it there instead.

Connect **Glean** and Roiva reads Glean's Insights every night: for each calendar month, how many people used Glean's Assistant (Chat) at least once in it, each counted once. People who only searched with Glean don't count. That's why the figure reads lower than Glean's own monthly active users, which count any activity in Glean, search included, over a rolling 28 days. Roiva asks Glean to list no one, reads one count a month and keeps no name or email.

- **The first sync reads each month that began inside Glean's 270 days.** Glean guarantees that much of its Insights. The month that began before them isn't counted, so the oldest month can be up to about nine months back. Roiva asks Glean for each UTC calendar month.
- **A month settles a few days after it ends.** Glean refreshes its Insights once a day, around 01:00 UTC, and leaves out the current UTC day. Roiva reads the current month every night except its first day, which Glean doesn't have yet, and reads a finished month again until a read lands three days after it ended from Insights Glean refreshed after it.
- **The token needs the INSIGHTS scope.** A Glean admin makes a user-scoped Client API token with it, for a user who holds Glean's Insights Moderator role. A global token won't work. Glean's scopes can't be changed once a token is made.
- **It's built from Glean's API reference.** An AI agent (Claude) built Roiva's reading of Glean's Insights from Glean's published API reference, and it hasn't yet been checked against a live Glean instance. If Glean's answer doesn't match that reference, Roiva records nothing for the month and says what was missing on the connection's page, rather than count no one.
- **Seats stay yours to enter.** Glean's API has no seat count, and the signups its Insights show are people in your org chart who signed in, not your contract's seats. Enter the seats in your Glean contract by hand.
- **The connection becomes the source once the latest month it reads counts someone using the Assistant** (in a month's first week, the month before counts too), if no other connection is the source and nobody chose one in **Organization Settings → Metric Sources**. It never replaces another connection; choose it there instead.

Roiva reads one assistant at a time and never adds two assistants' users together: a person using both would be counted, and valued, twice. For an assistant Roiva doesn't read, such as Claude Team or ChatGPT Business, record each month's active users by hand, from the assistant's own admin report.

#### One initiative or one per use

AI Assistant Rollout measures the whole assistant as one initiative. It's a fair way to start, but it can't say which teams' use pays for the licenses. The templates that start **Assistant for** each time one task, such as support research or variance commentary, and take a share of the license by seats. See [How much one initiative should cover](https://roiva.ai/docs/how-much-one-initiative-covers).

#### Pitfalls

- **A license isn't a user.** Licensed users and the people who used the assistant in a month are different numbers. Cost follows licenses, value follows use.
- **Active once isn't active every day.** A person counts as active if they used the assistant once in the month, however little. Set tasks per user across those same people, light users included.
- **People picked for licenses flatter the comparison.** Licenses usually go to people chosen for them. Say so, or pick the first group at random.
- **Reclaimed seats are a lower cost, not value.** Taking back licenses nobody uses lowers the cost line. Don't also book it as value.
- **A Copilot license on a Microsoft invoice with others.** When the bill carries other licenses too, take the initiative's cost from Copilot's part only.

Each figure has its own entry in the [Metric registry](https://roiva.ai/docs/reference/metrics), with what to watch out for when you read it.
