Skip to Content
Msp PortalLicensingLicense Intelligence

License Intelligence

Advanced license analytics across all tenants. Identify optimization opportunities, track cost savings, detect inactive users, and forecast license needs.

Note: License Intelligence analyzes actual usage patterns to find licenses assigned to inactive users, over-licensed users, and opportunities to downgrade to less expensive SKUs.

Dashboard Metrics

Total License Spend

Monthly recurring cost across all tenants. Calculated from Microsoft Price List or your CSP cost basis. Displays MoM and YoY trends.

Utilization Rate

Percentage of purchased licenses actually assigned. Target is 85-95%. Below 80% indicates significant waste. Above 95% indicates capacity risk.

Inactive Users

Licensed users with no sign-in activity for 30+ days. These represent immediate cost-saving opportunities if licenses can be reclaimed.

Optimization Savings

Estimated monthly savings from applying all recommendations. Includes inactive user cleanup, SKU downgrades, and duplicate license removal.

License Analysis Types

Inactive User Detection

Identifies users who haven’t signed in recently but have assigned licenses. Configurable thresholds: 30, 60, or 90 days of inactivity.

Data Source: GET /users?$select=signInActivity

Note: Requires Azure AD Premium P1 or P2 for sign-in activity data.

Service Usage Analysis

Breaks down which M365 services each user actually uses. A user with E5 who only uses Email and Teams could be downgraded to E3 or Business Premium.

Services Tracked: Exchange, Teams, SharePoint, OneDrive, Yammer, Power BI, Power Apps, Power Automate, Planner, Project, Visio

SKU Optimization

Recommends license tier changes based on feature usage. Examples:

  • E5 to E3: User doesn’t use Defender, eDiscovery, or Audio Conferencing
  • E3 to Business Premium: User has under 300 GB mailbox, no advanced features
  • Business Premium to Business Basic: User only uses email and Teams

Duplicate Assignments

Detects users with overlapping licenses that provide the same services. For example: E3 + standalone Exchange Plan assigned to the same user.

Group-Based License Conflicts

When using group-based licensing, identifies users in multiple groups that assign conflicting or redundant licenses.

Recommendations

Each recommendation includes:

  • Description — What the optimization is
  • Affected Users — List of users impacted
  • Monthly Savings — Estimated cost reduction
  • Risk Level — Low/Medium/High based on potential user impact
  • One-Click Apply — Execute the change directly (with confirmation)

Tenant Comparison

Compare license utilization across tenants:

  • Cost per user by tenant
  • Utilization percentage by tenant
  • SKU distribution comparison
  • Inactive user percentage by tenant

Forecasting

Predict future license needs based on historical trends:

  • Growth Projection — Estimate when you’ll exceed current license count
  • Seasonal Patterns — Identify hiring/offboarding cycles
  • Budget Planning — Project costs for next 12 months
  • Renewal Alerts — Notify before subscription renewals

CSP Billing Integration

If you’re a CSP partner, License Intelligence integrates with your Partner Center:

  • Pull actual cost basis from your CSP agreement
  • Reconcile against Microsoft invoices
  • Calculate margin per customer
  • Track NCE vs. legacy subscription costs

Graph API Endpoints

  • GET /subscribedSkus — License inventory
  • GET /users?$select=assignedLicenses — User assignments
  • GET /users?$select=signInActivity — Last sign-in
  • GET /reports/getOffice365ActiveUserDetail — Service usage
  • GET /reports/getMailboxUsageDetail — Mailbox activity

API Reference

  • GET /api/msp-portal/license-intelligence/summary — Cross-tenant license summary with savings potential
  • GET /api/msp-portal/license-intelligence/:tenantId — Detailed analysis for a specific tenant
  • GET /api/msp-portal/license-intelligence/recommendations — All optimization recommendations with estimated savings
  • POST /api/msp-portal/license-intelligence/apply — Execute a recommendation (license change)
Last updated on