Microsoft 365 license reconciliation
Find the money you earn but don’t bill.
The revenue check runs plain rules over data your workspace already has and lists each gap with the client, the evidence and what it is worth.
What it checks
Microsoft 365 licenses
More licenses in the client’s tenant than a seat line last recorded.
Managed devices
More devices in your RMM than a per-device line bills.
Stale counts
A metered line whose count is more than 35 days old.
Unbilled time
Approved billable time over 30 days old that is not on an invoice.
Unapproved time
Entries waiting more than 14 days for approval.
Ended or missing agreements
Work continuing after a client’s only agreement ended, or for a client with none.
Fix it in one click
Bill the new quantity
Update the line to the count found; the change is recorded with its reason.
Record the latest count
Store Microsoft’s count on a metered line with the date it was seen.
Read-only, always
Opcrunch reads from Microsoft and your RMM and never writes back.
Questions
- What Microsoft permission does it need?
- One read-only application permission, LicenseAssignment.Read.All, granted by admin consent in each client tenant.
- Does it change anything in Microsoft 365?
- No. It only reads license counts.
$49 per technician. No contract. Free migration.
Every module in one tier, with unlimited clients and free portal users.
Related: Guide: M365 reconciliation · Guide: unbilled time · MSP billing