Skip to content

Users and Licenses

The Users & Licenses dashboard is the unused-licence analysis: paid seats nobody uses, licensed users who never signed in, disabled accounts that still hold licences, adoption, guests and permission sprawl.

Open it with Select Analysis > Users & Licenses.

Image of the Users & Licenses dashboard: Monthly License Waste, Never Active, Disabled but Licensed and Orphaned Grants cards, License Inventory table and Adoption Funnel

../images/dashboards/users-licenses.png

Before you begin

  • The Microsoft Graph collectors for users, groups, group members, subscribed SKUs and licence assignments run without errors. They need the Graph application permissions checked by Validate the Connection. See API Permissions.
  • Activity collection has run for a while. A user counts as active once the Power BI activity log shows any event for them since MetaMiner's activity history began, so a new installation reports more never-active users at first.

How it works

The seat, waste and dormancy figures come from a daily licence snapshot that the licence-waste job rebuilds every 6 hours (see Data Freshness). They are population figures: tenant-wide, or the members of one Entra group when you set a user-population scope. They are not capacity-scoped and do not follow the date filter. The adoption, guest and sharing lenses follow the date, environment and capacity filters, as each panel subtitle states.

Term Definition
Paid seat A user with an assigned Power BI Pro (POWER_BI_PRO) or Premium Per User (PBI_PREMIUM_PER_USER) licence. A user with both counts once, at the PPU price.
Idle paid seat A paid seat whose user has no recorded Power BI activity
Never active An enabled user with any Power BI licence (Pro, PPU or free) and no recorded activity
Disabled but licensed A disabled Entra account that still holds an assigned Power BI licence
Orphaned grant A permission on content that points to no live user and no live group

KPI cards

Card What it shows Click
Monthly License Waste Idle paid seats and their monthly cost, with the cost basis ("cost basis: Pro $10/mo - PPU $20/mo"). Shows "$0 - no paid PBI seats in this tenant" when there are none. Labelled no waste, low waste, reclaim candidates or heavy waste. Idle Paid Seats
Never Active (licensed + enabled) Never-active users, of all enabled licensed users. Labelled all engaged, low dormancy, dormant seats or heavy dormancy. Never Active Members
Disabled but Licensed Disabled accounts still holding a Power BI licence. Labelled revoke now when above zero. Disabled But Licensed
Orphaned Grants Grants pointing at no live user or group, of all grants, with the number granted to disabled accounts Orphaned Grants

Panels

Panel What it shows Click
License Inventory Power BI SKUs in the tenant: SKU, Owned, Consumed, Available, Assigned holders, and a bar per licence tier held by the population A tier opens Tier Holders
Adoption Funnel Licensed -> Enabled -> Active in window -> Power users (>= 3 days). The first two stages count the population; the last two count users active on in-scope content in the selected window. Engaged Members, Power Users
Identity Mix (active principals) Active principals by class: member, service, system, MetaMiner scanner, with Principals and Events A class opens Identity Class Principals
Guest Footprint Guests (tenant) (directory guest identities), Active Guests (in the window), Guest Grants (enabled guests on scoped content). Labelled dormant guests or active guests. -
Sharing & Permission Sprawl Most-shared items, Top grantees (Principal, Grants, Status), Broad elevated access (>= 100 principals) (Dataset, Principals, Elevated grants, Max right), and Grants on Stale Content (granted datasets with zero report views) An item opens Object Principals; a grantee opens Grants Held
Orphaned & Disabled-Target Grants Total Grants, Orphaned (no live user or group), To Groups (healthy), To Disabled Users Orphaned Grants, Grants to Disabled Accounts

Max right levels, highest first: owner, elevated, explore, read, none.

Grants on dashboards

Dashboards have no capacity link. Dashboard grants are included only when no capacity filter is set.

Detail lists

Drawer Contents
Idle Paid Seats, Never Active Members, Disabled But Licensed The users behind each seat figure, re-derived live from the snapshot definition. Download the CSV to plan licence removal.
Tier Holders Users holding one licence tier (a user with several tiers appears under each)
Engaged Members / Power Users Licensed, enabled users active on in-scope content in the window
Identity Class Principals Active principals in one class with their view, refresh and export counts
Object Principals Every principal granted on one item
Grants Held Every grant one principal holds on scoped content
Orphaned Grants / Grants to Disabled Accounts Grant rows to clean up. A service principal that cannot be resolved to a user or group can appear as orphaned.

Cost assumptions

The dollar figures are modelled estimates from list prices you configure, not billing data.

Setting Default Used by
web.apps.pbiusage.cost.pro 10 (USD per user per month) Cost basis shown on this page and the Executive page, detail lists
web.apps.pbiusage.cost.ppu 20 (USD per user per month) Same
costPro in server\silver-jobs\pbi-license-waste\job.json (params) 10 The Monthly License Waste figure in the daily snapshot, also used by the Executive waste total
costPpu in the same file 20 Same
web.apps.pbiusage.poweruser.days 3 Active days needed to count as a power user in the funnel

Change both places

The snapshot's dollar figure uses the job parameters; the cost-basis label and detail lists use the web.apps.pbiusage.cost.* properties. When you change a price, set the same value in server\config\config.json (properties) and in the job's params, then wait for the next job run or restart the MetaMiner Server.

TODO: product decision - one source for seat prices

Seat prices are read from two places (web app properties and the licence-waste job parameters). Decide on a single source, or an MMA field that writes both, and simplify this section.

Questions this page answers

  • How many paid Power BI licences are unused, and what do they cost per month?
  • Which licensed users have never used Power BI, and which disabled accounts still hold licences?
  • How far does licensing turn into real adoption?
  • How much content is shared with guests, and where is access too broad or orphaned?