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.

14
rows in the Copilot report
3
seats with zero prompts in 28 days
1,467
prompts from the other 11
12.1
average active days of 28

"Last month" means 28 days now

You ask

Which Copilot seats in Fabrikam HQ sent zero prompts last month?

Claude calls
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
Claude answers

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?

You ask

Were the same three at zero in the first snapshot we have?

Claude calls
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
Claude answers

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?

WHERE EACH OF THE 14 COPILOT ROWS LANDS · FABRIKAM HQ (DEMO) · D28 14 report rows licensed in last 180 d Still holds it? check the assignment before counting money 0 prompts 1–6 days 7+ days 3 · reclaim candidates Ana, Elena, João · no activity ever 2 · ask before you decide Grace 4 days · Marta 6 days 9 · keep 7 to 28 active days Not licensed any more: the row is history, nothing to reclaim. Active days split the buckets, not prompt totals.

Active days beat prompt counts

You ask

And who barely uses it? Less than one day a week.

Claude calls
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
Claude answers

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

You ask

What are those three seats costing us?

Claude calls
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"
Claude answers

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:

What to do with the three
Confirm each still holds the licence. Ask each person, or their manager, whether they need it. If not, unassign it (directly, or by taking them out of the group that assigns it) and give it to someone on the waiting list. That saves the next purchase. Then lower the seat count at renewal, which is what saves money. Our NCE commitment article covers why that date matters, and the Copilot readiness check covers who should get the freed seat. Ask the same question in 28 days: Grace and Marta are the ones to watch.
Sources
GraphPaaS

Ask your own tenant which Copilot seats sent zero prompts this month.

Add the connector →

Newsletter

Get the next article by email

Practical M365 & Azure cost pieces like this one. No spam, unsubscribe anytime.