Copilot seats never used
23 Oct 2026
Which Copilot seats were never used?
Copilot is often the most expensive seat in the tenant, and the one bought on the most optimism. For months the usage report could only say when someone last touched it. It now says how often: prompts submitted and active days, per user, which is the honest test of whether a seat is earning its price.
We put the question to the GraphPaaS connector for Claude on Fabrikam HQ, our demo tenant (synthetic people, real tool calls, data collected on 18 October at 05:45 UTC). Five questions, five receipts.
"Last month" means 28 days now
Which Copilot seats in Fabrikam HQ sent zero prompts last month?
describe_domain(domain="copilot_usage", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e")
→ available · 14 rows · daily
get_metrics(domain="copilot_usage", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
where={"prompts": 0},
columns=["display_name", "last_activity", "prompts", "active_days"])
→ 3 rows
Three of the 14: Ana Dias, Elena Fonseca and João Yilmaz. None of them submitted a prompt in the last 28 days, and none has a last activity date at all.
"Last month" became 28 days on purpose. The per-user report is
getMicrosoft365CopilotUsageUserDetail,
and its default is now version 2. Version 1 took D30; version 2 takes
D7, D28, D90 and D180. A script
that still asks for D30 gets an error back instead of a report, which is
how we found out. Version 2 is also the one that added the two columns
this article lives on: Prompts submitted for all apps and Active Usage Days
for all apps. Same Reports.Read.All permission, so nothing to
re-consent.
An empty last activity date means more than "quiet lately". Microsoft's usage report page says that date stays fixed whatever window you pick. A blank one means no recorded Copilot action ever, except in one rare case the same page names: someone who used it within 24 hours of getting the licence and never again.
Was it a quiet week, or a pattern?
Were the same three at zero in the first snapshot we have?
get_metrics(domain="copilot_usage", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
date="2026-10-14", where={"prompts": 0},
columns=["display_name", "prompts", "active_days"])
→ 3 rows
Yes. On 14 October, the oldest stored day, the zero-prompt list was the same three people.
Each snapshot is its own rolling 28-day window, so two of them agreeing means no prompt from those three in roughly the last month and a few days. That's more than one quiet week, and still not proof they never will. It's enough to call them and ask. Is the seat sitting with someone on leave? Was it bought for a pilot that ended? Did nobody show them where Copilot is?
Active days beat prompt counts
And who barely uses it? Less than one day a week.
get_metrics(domain="copilot_usage", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
where={"active_days": {">": 0, "<": 7}},
columns=["display_name", "prompts", "active_days", "apps_used"])
→ 2 rows
get_metrics(domain="copilot_usage", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
aggregate=["sum:prompts", "avg:active_days"])
→ sum:prompts 1467 · avg:active_days 12.1429
Two: Grace Dias, 40 prompts on 4 days in 4 apps, and Marta Dias, 120 prompts on 6 days in 3 apps. Across all 14 seats it's 1,467 prompts, and 12.1 active days on average out of 28.
Sort by prompts and Marta looks like a solid user: 120 is three times Grace's 40 and more than Carla's 108. Sort by active days and she drops to 6, against Carla's 24. Prompt totals reward bursts. One afternoon drafting a proposal can produce a hundred of them. Active days ask a better question: is Copilot part of how this person works, or something they tried once?
Two definitions from Microsoft decide what these numbers mean. Opening the Copilot pane in Word doesn't count. A user is active only after an intentional action such as submitting a prompt. And an active day, in Microsoft's definition, is a day the user submitted a prompt. So zero really is zero: nobody in those three rows asked Copilot anything.
The price Claude wouldn't guess
What are those three seats costing us?
licence_advisor(tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e", limit=5) → catalogue: sample · prices Microsoft 365 E3 (€432/yr), EMS E3 (€120/yr), … no Copilot plan · "keeps copilot from a licence outside the catalogue"
I can't give you a figure from your data. Your organisation's price catalogue prices Microsoft 365 E3 and EMS E3, but no Copilot plan. The cost is three times what you pay per Copilot seat, for every month the seats stay assigned. Add your Copilot price to the catalogue and I can total it.
That refusal is the feature. The connector only prices from the catalogue the organisation uploaded, because what you pay depends on your agreement, your reseller and your term. A list price pulled from memory would be confidently wrong for most readers. Three seats, times the real number on your invoice, times the months until you act.
A row is not a seat
One more detail from Microsoft's report page decides whether any money comes back. The user table lists everyone licensed for Copilot at any point in the past 180 days, including people whose licence was later removed. A zero-prompt row can be a seat someone already took back. Check the assignment before you count it as waste.
And taking a licence away doesn't lower the bill. It frees a seat. To pay for fewer, you reduce the licence count on the subscription, and on an MCA billing account that's only possible within seven days of buying or renewing. Outside that window the reduction lands on the first invoice after renewal. The honest sequence for the three seats:
- copilotReportRoot: getMicrosoft365CopilotUsageUserDetail — v2 is the default, takes D28 not D30, and adds prompts and active usage days; licensed users only.
- Microsoft Copilot usage report — what counts as active, the fixed last activity date, the 180-day scope of the user table.
- Assign or unassign licenses for users — unassigning per user or per product, and how group-based assignments show up.
- Buy or remove licenses for a Microsoft business subscription — unassign first, then reduce the count; the seven-day window on MCA accounts.