A local tool that scores Microsoft 365 licence use person by person, to put a number on what right-sizing would save.
Built with Blazor Web App (.NET) · Microsoft Graph API · SQLite
What's novel
In the charity sector, a licence nobody uses is money that could have gone to the mission.
Every organisation on Microsoft 365 eventually faces the same question: of everyone with a licence, who actually uses the premium features being paid for, and what would right-sizing save? Most answer it by hand, in spreadsheets, once a year before renewal. Operational Reporting is my answer to doing it properly.
The first version was simple. Pull the usage and licensing reports from Microsoft Graph, keep the raw extracts, build a tidy view in a local SQLite database, and put a small dashboard on top. That answers the original question.
The more interesting questions need more than one source. Licence data tells you what someone has. It doesn't tell you their role, their team, or whether they've left. So it grew a plugin-based way to bring other sources in, such as role data from an HR system, all merged into one row per person. That's what makes the rest possible.
A report listing who has which licence changes nobody's mind. So each person gets scored instead: which premium features they're entitled to, which they actually use, an efficiency score, and an estimated monthly cost of the gap. Everyone lands in a plain category: optimised, underused, a candidate for removal, or inactive.
The hard part wasn't the maths. It was deciding what "using" a feature really means, carefully enough to stand behind the number in a renewal meeting, rather than carefully enough to fill a dashboard.
It runs on a Mac or a Windows laptop as a Blazor app that only listens on the machine it's running on. There's nothing to deploy and nothing exposed to a network, which is the right answer for anything holding people and licence data: nothing leaves the machine it runs on.
Like everything else here, it was built with Claude Code, in under a week. Not long ago, a tool like this would have needed a business case. Now you can just go and find out whether it's useful.