Understanding license optimization report

Modified on Thu, 17 Jun 2021 at 09:34 AM

License optimization report shows how many users are active with the assigned workloads. This report allows you to reassign or disable licenses where necessary and drive targeted adoption campaigns to those users that need help.

IsActiveX indicate if a user object did any activity on the main Office365 services in the last X days (30,90).

IsActive30 and IsActive90 are tightly coupled with what you see in the "ActivePlans" field (we will see this later).

Here is a picture about this:

It is important to notice that only certain kind of services are currently handled under specific conditions:

  • Exchange
  • OneDrive
  • SharePoint
  • Yammer
  • Teams
  • PowerBiPro
  • Skype
  • Office365 Installations
  • Crm

Each service is considered active if and only if the related plan column is not empty AND the related date falls within the given range (30 or 90).

In case of Exchange there's an additional filter checking if the recipient type is a UserMailbox
If under the organization settings the flag "Skip Active Mail User" equals to false, we also consider MailUser objects.

Here is a brief schema for the computation of IsActive90: Here is a brief schema for the computation of IsActive90:




Exchange Plan not empty AND Last Exchange Logon within last 90 days AND RecipientType = UserMailBox . If "Skip Active MailUser" is false, then we also consider RecipientType=MaillUser in the count


OneDrive Plan not empty AND Last OneDrive Action within last 90 days


SharePoint Plan not empty AND SharePoint Last Action within last 90 days


Yammer Plan not empty AND Yammer Last Activity Date within last 90 days


Teams Plan not empty AND Teams Last Activity Date within last 90 days


PowerBiPro Plan not empty AND Power BI Last Action within last 90 days


Skype Plan not empty AND Last Skype Logon within last 90 days

Office365 Installations

Office365Pro Plan not empty AND M365 Client App Last Activity Date within last 90 days


Crm Last activity date within last 90 days AND sku is in the following list: [Dynamics CRM","Dynamics 365","DYN365","CRM","D365","Dynamics_365"]

Notes: for CRM we have a different approach because we do not have this information on the normal channel and the date we have is only retrieved through the Audit pipeline (SKU:SEC mostly) which relies on the Management API endpoint from MS (https://docs.microsoft.com/en-us/office/office-365-management-api/office-365-management-apis-overview )

Here is an example a couple of plans plus their reference date:

Everything is then reflected to the ActivePlans column which, in the format of 90||Sku||Exchange:Teams:XXX is a summary of what SKU is making the user active in the last 90 days thanks to the given services. 

Note: It might happen though, that some minor|free SKUs set up activity dates during the import creating some noise around this. The team is working in order to improve this.

Moreover, we receive data from several MS endpoints:

  • GrapApi
  • PowerShell
  • Management Api

Especially on big tenants, data coming from MS could not be fully in sync so partial and temporary inconsistencies might happen.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article