---
title: M365 Copilot license economics
canonical: "https://cloudmonitor.ai/docs/using-cloudmonitor/reports/m365-copilot-licence-economics/"
description: "Check current M365 Copilot license health, named placement, and selected-period cost using existing CloudMonitor data."
---

**M365 Copilot License Economics** explains the current license balance and the
charges behind selected-period cost. Use it to check license health, reconcile
gross charges and refunds to net cost, compare that cost with the immediately
preceding period, and inspect the mapped charge evidence for either period. The
**Copilot seats to review** section at the top lists the seats nobody uses. The
rest of the screen does not measure M365 Copilot usage or ROI.

Open it from **Microsoft 365** ▸ **Copilot**. Its menu location groups Microsoft 365 work in one
place; its existing Tokenomics module entitlement is unchanged.

:::note[Tenant-wide report]
This screen uses tenant-wide license and cost facts. It is available through the tenant-wide
Tokenomics access boundary and does not become a Cost Group report when a group is selected.
:::

:::note[Not everyone has this]
**Tokenomics** is an optional module. If you can't see it in the menu, it isn't switched on for
your workspace: ask an admin to turn it on under Settings ▸ Features.
:::

## Copilot seats to review

**Copilot seats to review** answers one question: which Copilot licenses are paid
for and unused. It lists each person who holds a seat and shows no Copilot
activity in the usage report, with the evidence for the call.

The tier explains why a seat is listed. **No Microsoft 365 activity for 30 days
or more** leads, because that account shows no use of Microsoft 365 at all.
**Account in use, no Copilot activity** follows: the person works in Microsoft
365 and has not opened Copilot. Within a tier the longest gap since the last
Copilot activity comes first, and people who never used Copilot come last. Hover
over a last-activity date for the number of days before the report.

The **Seat check** says whether the license assignment data confirms the person
still holds a Copilot license. Only confirmed seats are listed here and become
recommendations in [Savings & Waste](/docs/using-cloudmonitor/reports/savings-and-waste/),
where **Open evidence** on that recommendation brings you to this section. Seats
the check cannot confirm appear under **Seat not confirmed** for information.
People with light Copilot use appear under **Light use**, which helps you plan
training and never leads to a recommendation.

People appear by name, with the address on hover. If your tenant conceals user
names in Microsoft 365 reports, they appear as short codes and the section says
so. Turning concealment off in the Microsoft 365 admin center is your decision.
People on long leave can appear in the list, so postpone the recommendation for
them.

CloudMonitor reads license and usage data and cannot change licenses. Revoke a
seat in the Microsoft 365 admin center. The section reads the latest Copilot
usage report, which Microsoft publishes about three days behind, so Period, Cost
basis, Provider, Cost Group and Tags do not change it.

## Latest license snapshot

The license cards use only the explicitly mapped M365 Copilot product in the
current subscribed-license snapshot:

- **Enabled** is prepaid capacity currently enabled.
- **Suspended** is prepaid capacity currently suspended.
- **Warning** is prepaid capacity in the warning state.
- **Locked-out** is prepaid capacity in the locked-out state. It is shown
  separately and is not included in purchased seats.
- **Purchased seats** is Enabled plus Suspended plus Warning.
- **Assigned seats** is the count currently assigned.
- **Unassigned seats** is purchased minus assigned.
- If assigned seats exceed purchased seats, **Unassigned seats** remains negative
  to show the over-assigned state. CloudMonitor does not replace it with zero.
- **Assignment rate** is assigned divided by purchased. It is **Unavailable**
  when purchased seats are absent or zero.

If a source license-state value is missing, that state is **Unavailable**.
CloudMonitor does not replace a missing state with zero.

This is a current tenant-wide snapshot. It does not change with Period, Cost
basis, Provider, Cost Group, or Tags. Assignment rate measures allocation, not
M365 Copilot adoption.

The source stores the product as the raw SKU `Microsoft_365_Copilot`.
CloudMonitor matches that explicit source value and renders the product name as
**M365 Copilot**.

## Review signals from current data

The review panel turns facts already visible on this screen into a short work
queue. It can flag over-assigned, warning, locked-out, suspended, or unassigned
seats; an observed net-cost increase against an authoritative previous period;
and refund or credit rows that should be reconciled to the source charge lines.

These are evidence prompts, not inferred recommendations. CloudMonitor does not
claim that an unassigned seat is idle, removable, or a saving; it does not treat
cost movement as ROI; and it does not create a cost-increase signal without an
available previous-period observation. If no available fact crosses a review
threshold, the panel reports that no current-data review signal is present.

## Current-data license placement

When your workspace has opted into the existing Entra user-details collection,
CloudMonitor joins current directory users to their assigned SKU identifiers.
It shows:

- **Named assignments**, using an exact match to the M365 Copilot SKU identifier.
- **Disabled assigned accounts**, with those accounts listed first for review.
- **License placement by department**, including assigned and disabled-account
  counts.
- **Assigned-user review**, with the person's directory name, department, job
  title, recent general M365 workloads, and a review action.

**Cost per assigned seat** is the selected-period net license cost divided by
the authoritative current assigned-seat count. It is a modeled allocation, not
a Microsoft per-seat charge.

**Disabled-seat exposure** applies that modeled amount to disabled assigned
accounts. CloudMonitor shows it only when the named assignment count reconciles
exactly to the authoritative assigned-seat total. Otherwise it remains
**Unavailable**. It is cost exposure for review, not realized savings.

The **M365-readiness candidates** list contains enabled non-guest users who do
not hold the mapped Copilot SKU and whose activity is recent in at least three
general M365 workloads. This is a coarse license-fit review queue. It is not
Copilot use, demand, expected value, or a recommendation to buy a license.

Directory and per-user license collection is optional. If that source is not
enabled or cannot be read, the tenant-wide license inventory and cost sections
remain usable while license placement shows **Unavailable**.

## Cost reconciliation

The reconciliation uses eligible M365 Copilot charge lines in your cost data
for the selected **Period** and **Cost basis**:

- **Gross charges** is the sum of non-negative selected-basis amounts in the
  mapped rows.
- **Refunds/credits** is the sum of negative selected-basis amounts. It
  keeps the sign used by the cost data.
- **Net cost** is gross charges plus signed refunds and credits. The **Net
  license cost** KPI shows the same selected-basis net total.

Refunds and credits are already included in net license cost. Do not subtract
or add them again.

CloudMonitor also shows **Billed net**, **Effective net**, and **Effective minus
billed variance**. The variance is effective net minus billed net. It explains
the effect of the Cost basis and is not a saving, benefit, or ROI measure.

## Cost movement

**Cost movement** compares the selected Period with the immediately preceding
period resolved by CloudMonitor. Both periods use the same number of days, the
same Cost basis, and the same explicit M365 Copilot source mapping.

For net cost, gross charges, refunds and credits, billed net, and effective net,
the comparison shows:

- **Selected period** is the value from the active Period.
- **Previous period** is the value from the resolved comparison window.
- **Change** is selected period minus previous period.
- **Change %** is Change divided by the absolute previous-period value.

Percentage change is **Unavailable** when the previous-period value is zero or
unavailable. Dollar change remains available when both values are authoritative.
Refunds and credits keep their source sign in both periods and in the movement.
A negative change therefore means the signed cost became lower; CloudMonitor
does not relabel that movement as a saving, benefit, value, or ROI.

The selected period remains usable when previous-period M365 Copilot evidence
is unavailable. CloudMonitor does not replace missing previous-period evidence
with $0.

Changing **Period** changes which mapped rows contribute. Changing **Cost
basis** changes which cost values are primary across reconciliation, the chart,
and the selected-cost grid column. Neither filter changes the current license
snapshot.

CloudMonitor maps the explicit M365 license charge source: service
`Microsoft 365` and charge description `Microsoft 365 Copilot`. It does not use
a fuzzy product-name search, so GitHub Copilot and other separately named
products are not mixed into this screen.

Provider, Cost Group, and Tags do not apply. There is no governed allocation
that connects those filters to M365 Copilot license inventory or these license
charges. For the wider billing-provider view, use
[AI Spend reports](/docs/using-cloudmonitor/reports/ai-spend/).

## Monthly trend

**Monthly M365 Copilot license cost** groups the observed mapped charge lines by
calendar month and nets purchases, refunds, and credits using the selected Cost
basis. The chart and table show selected-period and previous-period observations
together. Each observation keeps its real calendar-month label. The paired row
position shows how each period progressed without renaming either source month.

It is not a forecast, does not fill months with estimated or zero values, and
does not infer a monthly seat price. If the periods contain different numbers of
calendar-month buckets, the available observation remains visible and the
missing value remains **Unavailable**.

Switch between **Chart** and **Table** to read the same two observed series. The
table uses standard paging; changing the view does not change the calculation.

## Charge-line detail

**M365 Copilot charge lines** is the paged evidence behind the cost. Its saved
lean default shows only **Date** and the selected-basis **Net cost**. Open
**Columns** to add charge description, charge category, service, billed cost, or
effective cost. CloudMonitor saves those choices for you. The grid starts at 10
rows per page and uses the standard page-size options.

Use the card's **Selected period** and **Previous period** switch to inspect the
exact mapped rows behind either side of the comparison. This switch changes only
the evidence rows in the card. It does not change the global Period, your saved
columns, or the comparison calculation. Paging returns to the first page when
you switch periods.

Refunds and credits remain negative in the grid. The cost source does not currently supply
an authoritative quantity for these rows, so quantity and quantity-derived unit
costs remain unavailable.

## Coverage and freshness

M365 Copilot license inventory is available only when the subscribed-license
source contains the explicitly mapped SKU. License cost is available only when
the customer's M365 billing reaches the existing license-spend source and
contains an explicitly mapped charge line for the relevant selected or previous
Period. Availability is evaluated independently for the two periods. Missing
coverage is **Unavailable**, not $0, and an unavailable previous period does not
hide an available selected period.

Cost freshness comes from the existing processing tracker for the cost
pipeline. When that evidence exists, the screen shows **Cost · Last successful
processing**. Otherwise it shows **Cost · Last successful processing
unavailable**.

When an exact mapped license record contains a record update time, the screen
shows the newest value as **Latest processed license record**. This is evidence
about the license record, not proof that the license pipeline completed
successfully. If no valid record time exists, it shows **Latest processed
license record unavailable**. CloudMonitor does not substitute the cost
processing time, selected Period, current time, or screen-read time.

License inventory and cost resolve independently. If one source is unavailable,
the other remains visible. Outside Demo mode, CloudMonitor shows an honest
loading, unavailable, empty, or error state and never substitutes sample values.

## What this screen does not measure

Beyond the prompts, active days and last activity in **Copilot seats to review**,
this screen does not report M365 Copilot sessions, application use, active or
returning Copilot users, time saved, productivity value, outcomes, or return on
investment. It
does not calculate cost per active Copilot user or cost per prompt. The
modeled cost per assigned seat and disabled-seat exposure use license
assignment, not usage. A lower selected-period cost is reported as movement,
not proof of savings or business value. Provider, Cost Group, and Tags remain
outside this screen.

Use [Microsoft 365](/docs/using-cloudmonitor/reports/microsoft-365/) for broader
product-license reporting. M365 Copilot-specific usage and ROI require later
source-backed phases.
