Licensing findings are never discovered by the person who caused them. They surface at renewal, or in a true-up, when somebody at Microsoft or your reseller runs a report you have never seen and asks a question you cannot answer in the room.
None of the five below require anyone to have done anything wrong. Each one is the platform letting you do something the licence does not cover, which is the defining feature of Power Platform licensing: the software almost never stops you.
1. Dynamics 365 dual-use rights stop at the edge of the application
What it looks like. You have 150 Dynamics 365 Sales users. Somebody builds a facilities booking app on the same Dataverse, in the same environment, over some of the same tables. Three hundred people use it. Nobody buys anything, because "we already have licences."
Why it happens. A Dynamics 365 licence genuinely does carry Power Apps and Power Automate rights. The detail that gets lost is that those rights are for use in the context of that Dynamics 365 application. An app that is not part of the licensed business process is not in that context, no matter which environment it lives in or whose tables it reads.
What it costs. Three hundred users on Power Apps Premium at $20 is $6,000 a month and $72,000 a year — including the 150 who already hold Sales, because their dual-use rights do not stretch to this app. The first question at renewal is how long it has been live.
What to do. Draw the line before you build, not after. If an app is not part of the licensed process, budget its own licences from day one, and put it somewhere that makes the boundary obvious instead of sharing an environment and hoping nobody asks.
2. Team Member is a use-rights list, not a capability
What it looks like. Team Member is $8 against $105 for Sales Enterprise. Somebody notices that the software will happily let a Team Member update an opportunity, so a hundred people get Team Member licences and one budget has a very good year.
Why it happens. Team Member is defined by a list of permitted use rights — reading across the application, updating your own records, time and expense entry, and a narrow set of light tasks — not by what the product will physically allow. Microsoft has tightened technical enforcement over the years, but the entitlement has always been the list. What the app lets somebody click has never been the test.
What it costs. The gap is $97 per user per month. A hundred wrongly assigned licences is $116,400 a year, and this is among the first things any audit looks at, precisely because it is so common. A second cost is quieter: Team Member accrues no Dataverse capacity at all, so a Team Member-heavy rollout is also starving your storage entitlement.
What to do. Take the use-rights list out of the current Dynamics 365 licensing guide and go person by person, asking what they actually do on a Tuesday. Anyone approving quotes, working cases or managing opportunities needs a full licence. Reassigning one now costs nothing; explaining it at renewal costs list price.
3. Multiplexing: the integration does not remove the people
What it looks like. A custom web front end, a portal that is not Power Pages, or an integration writing to Dataverse under a single service account. Two thousand people are served by it. One licence exists.
Why it happens. Because it looks like one user to Dataverse, and because the alternative is expensive. Multiplexing is the oldest move in enterprise licensing, and Microsoft's Product Terms name it explicitly: pooling users behind an intermediary device, application or account does not reduce the number of licences required. The requirement follows the human being who benefits from the data, not the account that carries the request.
What it costs. Whatever those two thousand people would have cost, plus the cost of unpicking an architecture that was designed around the assumption.
What to do. Ask one question of every integration: is a person reading or acting on this data? If yes, that person needs a licence, however many hops sit between them and Dataverse. There are legitimate patterns — data flowing to a warehouse for aggregate reporting, machine-to-machine processes with no human on the other end — and getting the distinction written down before you build is far cheaper than establishing it afterwards.
4. One premium connector makes everything premium
What it looks like. An app used by 300 people, built on SharePoint, sitting comfortably inside the Microsoft 365 seeded rights. Somebody adds one HTTP action to a supporting flow because it was the quickest way to call an internal API. All 300 users now need a premium licence.
Why it happens. Premium is a property of the app or the flow, not of the connector and not of the maker. There is no partial credit and no per-connector metering. One premium connector, one custom connector, or one Dataverse table anywhere in the thing makes the whole thing premium for every user who runs it — not just for the person who added it.
What it costs. Three hundred users on Power Apps Premium at $20 is $6,000 a month for one action, added by somebody who thought they were saving an afternoon.
What to do. Teach your makers the badge. Anything marked premium in the connector picker, anything custom, HTTP in all its forms, and any Dataverse table. Then make the decision deliberately, because the worst outcome available here is paying premium prices for a SharePoint list. If you are going premium, go premium properly and use Dataverse. You are paying for it either way.
5. Request limits charge the flow owner, not the trigger
What it looks like. One person in operations owns fourteen flows. Nine other departments trigger them. Everything is fine for a year, then flows start being throttled during month-end and nothing has changed.
Why it happens. Automated and scheduled flows charge their requests to the owner of the flow, whoever or whatever triggered the run. Instant flows charge whoever pressed the button. So one automation-minded person quietly carries an entire department's usage on a personal allocation of 40,000 requests per 24 hours, and licensed-user allocations cannot be pooled — there is no tenant-level bucket for them to draw on.
The counting is less forgiving than people assume. In a flow, every action counts: Compose, Initialize variable, retries, failed actions, pagination. Loops multiply their contents. A flow with 12 actions inside a loop over 500 rows is 6,000 requests a run. Schedule that hourly and it is 144,000 requests a day against an allocation of 40,000.
What to do. Find out who owns your busiest flows, which is rarely who you would guess. Then either give the flow its own Power Automate Process licence at $150 a month, which moves it onto a 250,000-request allocation attached to the flow rather than to a person and can be stacked, or cut the actions: filter at the source instead of inside a loop, batch your Dataverse writes, stop initializing variables nobody reads. The request limit calculator will tell you whether your licence mix covers what your flows generate. And moving the orchestration to a third-party integration tool does not help — requests are counted at Dataverse, so they follow the data, not the tool.
The ninety days before a renewal
Renewal is the only moment you have any negotiating room. A finding mid-term is an invoice at list price. The same finding at renewal is part of a negotiation. Which means the work happens before the conversation, not during it.
- Get your own number first. Assigned licences against actual usage, per user. The uncomfortable version of this list is much cheaper to read yourself than to have read to you.
- Reconcile every Team Member. One line per person, one sentence on what they do. This is the finding most likely to be waiting for you.
- Map every app and flow to a licence. Per user who runs it, not per app and not per maker. Note the premium connectors while you are in there.
- Check the request position. Who owns the heaviest flows, and whether the allocation those owners hold actually covers them.
- Ask about attach licences. The first full Dynamics 365 application for a user is the expensive one. Additional applications for the same user are sold as attach SKUs at a fraction of the base price, as long as that user holds a qualifying base licence. Two things nobody volunteers: you have to ask, and an attach licence carries no request allocation of its own — only the base licence does.
- Fix what you can before the meeting. Reassigning a licence is free. Explaining why you did not is not.
The licensing wizard gives you a first answer in five questions, and the resources page has the cost review workbook we use for the exercise above.