After the Copilot Rollout: Usage Reports, Dormant Licences and Proving ROI to the Board (2026)

After the Copilot Rollout: Usage Reports, Dormant Licences and Proving ROI to the Board (2026)

Every Copilot deployment has a month three. The pilot excitement has faded, the licences renewed at least once, and someone in a budget meeting asks the question the whole project has been avoiding: "so, is it working?" Most IT teams answer with an anecdote, because nobody set up measurement when the licences went out. This article is the measurement half of the Copilot story that my readiness content deliberately left for later: the four reporting surfaces Microsoft actually gives you (admin center usage reports, the Copilot Dashboard in Viva Insights, Purview audit logs, and agent analytics), which questions each one answers, the dormant-licence inventory you can script with Graph in twenty minutes, the licence reassignment play that pays for the exercise, and the one-page board report that survives a CFO's follow-up questions. The tone throughout is honest about the limits: some of Microsoft's impact numbers deserve caveats, per-user data has a privacy line you should not cross casually, and "assisted hours" is an argument, not a fact. Validate report names, roles and API surfaces against Microsoft Learn before you operationalise anything; this area is shipping changes monthly.

📅 July 2026 ⏱ 19 min read 🤖 Microsoft 365 Copilot 📚 Field Notes · Measurement Guide
📝
Scope of this guide. This is the post-deployment measurement guide for Microsoft 365 Copilot: usage reporting, adoption signals, licence hygiene and executive reporting, written for IT teams and MSPs in SMB and mid-market tenants. It does not cover pre-deployment readiness (my Copilot Readiness Scorecard covers that), prompt training, or Copilot Studio agent development. Report names, portal paths and API endpoints in this space change frequently; validate against Microsoft Learn before building processes on any of them.
Key Takeaways
📊
Microsoft gives you four reporting surfaces, and they answer different questions. The admin center usage report answers "who is using it". The Copilot Dashboard in Viva Insights answers "what is it changing". Purview audit logs answer "what exactly happened". Power Platform and Copilot Studio analytics answer "what are the agents doing and costing". Most tenants only ever open the first one.
👀
The Copilot Dashboard costs nothing and is chronically underused. It requires no paid Viva Insights licence to view, an AI Administrator can enable it and delegate access, and tenants with 50 or more Copilot licences get benchmarks, agent insights and group-level views. It is the closest thing to a ready-made ROI report Microsoft ships, and most admins have never opened it.
💰
Dormant licences are where the money is. The gap between licensed users and active users is the single most actionable number in the whole exercise. A scripted 60-day dormancy inventory (Graph, twenty minutes) routinely funds the entire measurement effort through reassignment. At circa 30 USD per user per month, ten dormant seats are 3,600 USD a year of shelf-ware.
⚖️
Per-user usage data has a privacy line. Admin center reports can conceal user names (and in some tenants do so by default), the Copilot Dashboard aggregates by design with minimum group sizes, and EU organisations may owe works-council or GDPR conversations before anyone builds a per-user league table. Measure adoption, not people.
📈
"Assisted hours" is an argument, not a fact. The dashboard's impact figures are model-based estimates. Use them, but present them as Microsoft's estimate with the methodology named, next to numbers you can defend independently: active percentage, habit formation, app mix, cost per active user. Boards forgive estimates; they do not forgive estimates dressed as facts.
🎯
The whole exercise is an afternoon a month. Fifteen minutes in the admin center, thirty in the dashboard, the Graph script on a schedule, and one page for the board each quarter. Measurement only fails when it is treated as a project instead of a habit.

The month-three question

Here is how the conversation actually goes. Finance sees a line item: fifty licences, circa 30 USD per user per month, renewing again. Someone asks what the company got for it. IT says "people like it". Finance asks which people, how much, and compared to what. And the project that was a strategic priority in January becomes a cost-cutting candidate by September, not because Copilot failed, but because nobody could say whether it succeeded.

The irony is that Microsoft ships more measurement tooling for Copilot than for almost any other product in the suite, most of it at no extra cost. The failure mode is not missing data. It is that nobody was assigned to look at it, and by the time the question arrives, there is no baseline, no trend and no story. This article fixes the mechanics; assigning an owner is on you.

The four reporting surfaces, mapped

SurfaceWhereRole neededThe question it answers
Usage + readiness reportsMicrosoft 365 admin center > Reports > Usage > Microsoft 365 CopilotAI AdministratorWho is using Copilot, in which apps, how recently. Includes top agents. Data lands within about 72 hours.
Copilot Dashboard (Copilot Analytics)Viva Insights app in Teams, or Viva Insights webAI Administrator enables and delegates; no paid Viva licence needed to viewWhat Copilot is changing: adoption trends, usage patterns, impact estimates, sentiment. Benchmarks and group views at 50+ licences.
Purview audit logsPurview portal > Audit; filter by operation, record type and workload values such as CopilotInteraction, ConnectedAIAppInteraction, AIAppInteraction, Copilot, ConnectedAIApp and AIAppAudit ReaderWhat exactly happened: per-interaction records, including prompts, for compliance and investigations. Not an adoption tool.
Agent analyticsPower Platform admin center (consumption) and Copilot Studio (per-agent)System Administrator / Copilot Studio authorsWhat agents are doing and, for pay-as-you-go, what they cost. The meter lives here.
🔍
Role hygiene note: all four surfaces are readable without Global Administrator. AI Administrator for the reports and dashboard, Audit Reader for Purview. If your measurement process currently requires borrowing a GA account, fix that first; my Admin Roles guide covers the least-privilege model.

The admin center usage report: your first fifteen minutes

Start here, not because it is the best surface, but because it is the fastest route to the three numbers every other conversation depends on: licensed users, active users, and the trend line between them.

What to pull from it, in order:

  1. Active users versus enabled users. This ratio is your headline. Write it down monthly; the trend matters more than the level.
  2. Last activity per user. The raw material for the dormancy inventory. Exportable, and the same data is available through Graph (next section) for scripting.
  3. App mix. Which apps people actually use Copilot in: Teams, Outlook, Word, Excel, chat. A tenant where usage is 90% Teams meeting summaries has a different training gap (and a different ROI story) than one living in Excel.
  4. Top agents. Newer additions to the report surface agent usage. If agents are appearing here that IT never deployed, that is a governance conversation, not a reporting one.
⚠️
The pseudonymisation gotcha: Microsoft 365 usage reports can display concealed user names, and depending on tenant settings this is the default. If your export shows hashed identifiers instead of names, the setting lives in the admin center report settings ("display concealed user, group, and site names"). Changing it is an organisational decision with privacy implications, not a casual toggle; in EU tenants, involve whoever owns data protection before flipping it. The dormancy workflow below can run either way, but reassignment conversations need names.

The Copilot Dashboard: the free report nobody opens

The Copilot Dashboard, part of what Microsoft now brands Copilot Analytics, is the closest thing to a ready-made executive report in the entire stack, and in most tenants I look at, nobody has ever enabled it. Three facts worth internalising:

  • It costs nothing to view. No paid Viva Insights licence is required for the dashboard itself. An AI Administrator enables it and can delegate access to specific people, which is exactly how you get it in front of the sponsor without giving them admin rights.
  • It is organised around the questions executives ask: readiness (who could use Copilot), adoption (who does), impact (what is changing in meeting time, email time, document work) and sentiment (survey data where available).
  • Scale unlocks depth. Tenants with at least 50 Copilot licences (or 50 Viva Insights licences) get benchmarks, agent insights, intelligent summaries and scoped group-level views. Below that threshold the dashboard still works; it is just quieter.

For deeper cuts, the Analyst Workbench in Viva Insights Advanced Insights offers custom Copilot queries and prebuilt Power BI templates (the adoption and impact report templates are the useful ones). That path does require the Insights Analyst role and setup effort; for a lean team, my honest advice is to exhaust the dashboard and the Graph route first. Most 200-seat tenants never need the workbench.

The delegation move that changes the politics: delegate dashboard access to the business sponsor in week one. When the CFO's analyst can open the adoption trend themselves, the month-three question arrives pre-answered, and IT stops being the bottleneck for a conversation it never wanted to own.

Reading the signals: what the numbers actually mean

Numbers without interpretation are how measurement projects die. The four signals I actually read, and what they tell you:

SignalHow to compute itWhat it tells you
Active percentageActive users in the last 28 days ÷ licensed usersThe headline. Low and falling means a training or fit problem; low and flat means the wrong people got licences. High is table stakes, not victory.
Habit formationUsers active in each of the last 4 weeks ÷ active usersThe difference between a toy and a tool. One-off usage spikes after training sessions; habitual usage survives them. This is the number I trust most.
App mixShare of activity per app from the usage reportWhere the value story lives. Meeting summaries and email drafting are the usual entry drugs; spreadsheet and document usage is where deeper workflow change shows up.
DormancyLicensed users with no activity in 60+ daysThe money. Every name on this list is circa 360 USD a year of shelf-ware, and also a person whose licence someone on a waitlist would use.

Resist the urge to publish benchmark comparisons you cannot source. The dashboard's built-in benchmarks (at the 50-licence tier) are the defensible ones because Microsoft owns the methodology. "Industry average adoption is X%" from a vendor webinar is not a number to put in front of a board.

The Graph script: dormant licences in twenty minutes

Everything above is portal work. This is the part you script once and schedule. The Microsoft Graph reports API exposes Copilot usage detail per user, including last activity dates per app; joined against your licensed-user list, it produces the dormancy inventory that drives the reassignment play.

PullCopilot usage detail per user, via Graph
# Requires Microsoft Graph PowerShell
# Scope: Reports.Read.All
Connect-MgGraph -Scopes "Reports.Read.All"

# Current Microsoft 365 Copilot usage reports endpoint
# (note the /copilot/reports path; the old /reports/
# path is legacy). Validate endpoint, period values and
# response schema before scheduling.
$uri = "https://graph.microsoft.com/v1.0/copilot/reports/" +
       "getMicrosoft365CopilotUsageUserDetail(period='D90')" +
       "?`$format=application/json"

$response = Invoke-MgGraphRequest -Method GET -Uri $uri
$usage = $response.value

$usage | Select-Object -First 3 |
  Select-Object userPrincipalName, displayName,
    lastActivityDate,
    microsoftTeamsCopilotLastActivityDate,
    wordCopilotLastActivityDate,
    excelCopilotLastActivityDate,
    outlookCopilotLastActivityDate,
    copilotChatLastActivityDate |
  Format-List
# Returns data for users with a Microsoft 365 Copilot
# licence; unlicensed Copilot Chat use is not included.
            
ActBuild the 60-day dormancy list
$cutoff = (Get-Date).AddDays(-60)

$dormant = $usage | Where-Object {
  $lastRaw = $_.lastActivityDate

  if ([string]::IsNullOrWhiteSpace($lastRaw)) {
    $true   # licensed, never active
  }
  else {
    ([datetime]$lastRaw) -lt $cutoff
  }
}

$dormant |
  Select-Object userPrincipalName, displayName,
    @{n='LastCopilotActivity'; e={ $_.lastActivityDate }} |
  Sort-Object LastCopilotActivity |
  Export-Csv .\copilot-dormant-60d.csv -NoTypeInformation

Write-Host ("Dormant 60d+: {0} of {1} licensed users" -f
  $dormant.Count, $usage.Count)

# Each row is ~360 USD/year of shelf-ware and a
# reassignment candidate. Review by hand before acting:
# leavers, long leave and role changes all look dormant.
            
⚠️
Templates, not gospel. Validate the endpoint path, period values and response property names against current Graph documentation: the report moved from the legacy /reports/ path to /copilot/reports/, and schemas here have changed before. Note also that the API returns data only for users holding a Microsoft 365 Copilot licence, which is exactly the universe you want for a dormancy inventory, but means unlicensed Copilot Chat activity is invisible to it. If your tenant conceals user names in reports, userPrincipalName will be pseudonymised and the reassignment workflow needs the display-setting conversation from the admin center section first. And run the review by hand: parental leave, sabbaticals and recent joiners all look like dormancy to a script.

The licence reassignment play

This is the part of the exercise that pays for itself, and the part most organisations fumble by treating it as a punishment. The play, in five steps:

  1. Set the policy before the first list. Sixty days of no activity triggers a conversation; ninety days triggers reassignment. Announce it once, kindly, to all licence holders. A policy announced after the list exists feels like an ambush; announced before, it feels like stewardship.
  2. Review the list by hand. Strip leavers (that licence removal is a different, faster process), people on leave, and anyone whose role changed. What remains is genuine non-adoption.
  3. Offer the exit ramp first. A two-line message: "your Copilot licence shows no use since April; want a 30-minute refresher, or should we pass it to someone on the waitlist?" A surprising number of people opt out gracefully, and a few become your best users after the refresher. Both outcomes are wins.
  4. Reassign, do not return. Keep a waitlist from the start (there is always a waitlist once people know licences move). Reassignment converts dead spend into a motivated user; returning licences at renewal converts it into a smaller project. Note the commercial reality: most agreements bill the committed seat count until renewal, so mid-term removal saves nothing by itself. Moving the seat to someone who wants it is what changes the value.
  5. Report the motion. "Twelve licences reassigned this quarter, waitlist of eight" is one of the strongest lines a board report can carry. It says the asset is managed, demand exists, and IT is paying attention. No adoption percentage communicates that.

The board report: one page, five numbers, no screenshots

Dashboards do not survive contact with a board. A page does. The structure I use:

LineNumberSourceHonesty note
AdoptionActive users / licensed, with 3-month trend arrowAdmin center usage reportDefensible as-is.
Habit% of active users active every week of the monthUsage report exports / GraphDefensible as-is. The trend is the story.
WhereTop 3 apps by Copilot activityUsage reportPairs with one sentence on what that means for training focus.
ImpactDashboard impact figures (meeting hours, email time)Copilot DashboardPresent explicitly as "Microsoft's model-based estimate". Name the methodology. This caveat costs you nothing and buys you credibility for every other number on the page.
StewardshipLicences reassigned + waitlist depth + cost per active userYour dormancy processDefensible as-is, and usually the line that lands hardest with finance.

Cost per active user deserves a sentence, because it is the number finance actually wants and almost nobody computes it: total Copilot spend divided by 28-day active users, not by licences. When adoption rises, this number falls, which gives the board a metric that rewards exactly the behaviour you want funded. A licence at circa 30 USD per month costs the same whether it is used or not; cost per active user makes that visible without a lecture.

Agents and the meter

Agent usage is the newest wrinkle and the one that will dominate this conversation by next year. Three things to wire up now:

  • Top agents in the usage report: already there. If agents appear that IT did not deploy, route that to your governance process rather than your reporting one.
  • Consumption billing lives in the Power Platform admin center: pay-as-you-go and message-pack agents are metered there (Licensing > Copilot Studio). If anyone in the tenant builds agents on consumption billing, someone in IT needs eyes on that meter monthly, because consumption pricing turns a pilot into a procurement surprise quietly and quickly.
  • Cost insights are arriving in Viva: Microsoft added Copilot cost management insights (mid-2026) to track credit usage across AI services. Check current availability for your tenant; if present, it belongs in the same monthly review.

The privacy line

A measurement programme that turns into surveillance poisons adoption faster than any licensing cost. The lines I hold:

  • Measure adoption, not individuals. The dormancy list is an asset-management artefact, not a performance one. The moment usage data reaches a people manager as an individual metric, users notice, and usage goes quiet in the worst way: people stop using Copilot for anything they would not want read aloud.
  • Respect the pseudonymisation setting and make changing it a documented, deliberate decision with the data-protection owner in the room. EU tenants: in several countries this is works-council territory. Have the conversation before the export, not after.
  • Purview audit logs record prompts. That is their compliance job, and access is rightly role-gated. Do not use audit data for adoption analytics; the aggregate surfaces exist precisely so nobody has to read anyone's prompts to answer a budget question.
  • Sentiment beats surveillance. If you want to know why adoption is low in a team, the dashboard's survey data (where available) or a fifteen-minute conversation outperforms any amount of log forensics.

The mistakes I keep seeing

  1. Deploying licences with no measurement owner.The data was always there. Nobody was assigned to look. By month three the question arrives and the answer is an anecdote. Name an owner on deployment day, even if the owner is you and the process is fifteen minutes a month.
  2. Answering the CFO with a dashboard screenshot.Screenshots say "we have data". A page with five numbers and a trend says "we manage this". The second one gets renewals funded.
  3. Presenting assisted-hours estimates as measured fact.One sceptical board member asking "how is that computed" undoes the whole report. Caveat it yourself, first, visibly. Credibility compounds.
  4. Building a per-user league table.It feels like insight and lands like surveillance. Adoption data aggregates up well and weaponises badly. Keep individual data inside the licence-hygiene process.
  5. Ignoring the 50-licence dashboard tier.Tenants at 45 licences are five seats away from benchmarks, group views and agent insights. Sometimes the cheapest analytics upgrade is a slightly bigger deployment, and the waitlist you built has the candidates.
  6. Letting consumption agents run unmetered.Seat licensing fails predictably; consumption billing fails interestingly. If agents are on pay-as-you-go, the Power Platform meter is a monthly appointment, not a quarterly surprise.
  7. Measuring once.A single snapshot answers nothing; every number in this article only means something against last month. The habit is the deliverable.

Copilot measurement FAQ

Do I need Viva Insights licences to see the Copilot Dashboard?

No. The dashboard is viewable without a paid Viva Insights licence; an AI Administrator enables it and delegates access. The richer tier (benchmarks, agent insights, group-level views) unlocks for tenants with at least 50 Copilot or Viva Insights licences. The Advanced Insights Analyst Workbench is the part that carries real setup weight, and most SMB tenants never need it.

How fresh is the usage data?

Admin center usage data generally lands within about 72 hours of the activity day. That is fine for monthly measurement and useless for real-time arguments; do not promise same-day numbers to anyone.

Can I see what users are actually asking Copilot?

Prompts are recorded in Purview audit logs for compliance purposes, gated behind audit roles, and that is where that capability should stay. For adoption measurement you never need prompt content, and reaching for it converts a measurement programme into a trust problem. Aggregate signals answer the budget question.

What is a good adoption number?

The honest answer: the one that is higher than last quarter. Published benchmarks vary wildly with deployment quality and licence targeting, and most numbers quoted in vendor decks are unsourced. Use the dashboard's built-in benchmarks if you have the 50-licence tier, and otherwise compete with your own baseline. A tenant that licensed the right people and trained them will beat any industry average; a tenant that sprayed licences will not, and no benchmark fixes targeting.

Does removing a dormant licence save money immediately?

Usually not mid-term: most agreements bill committed seats until renewal. What reassignment does immediately is convert dead spend into a motivated user, and what the dormancy process does at renewal is give you a defensible, evidenced number to re-commit at. Both beat discovering the same information during renewal week.

We are an MSP. What does this look like across customers?

Standardise the afternoon: the Graph pull per tenant, the same five-number page per customer, quarterly. It is one of the easiest recurring-value deliverables in the current stack, it is built almost entirely on no-cost reporting surfaces, and it reliably starts the "should we adjust seats" conversation that keeps licensing revenue honest and customers feeling managed.

Fifty licences and no story for the board?

Setting up the measurement habit is work I do with small IT teams: the reporting surfaces, the dormancy process and the one-page report, running without you thinking about it. If the month-three question is heading your way, get in touch. It is easier to answer before it is asked.

Talk to me
Previous
Previous

AI Agent Governance in Microsoft 365: Agent 365, Entra Agent ID and the First 30 Days (2026)

Next
Next

Copilot Governance Operating Model: Who Owns Permissions, Labels, DLP and Oversharing After Go-Live (2026)