February 17th, 2026
New

We now calculate license costs based on the specific duration of assignment. Instead of monthly snapshots, the system tracks when a license is assigned and revoked, providing precise, time-weighted cost reporting for each user. The user-apps report now reflects actual spend per seat, accounting for mid-cycle additions and removals.

We have overhauled the license event tracking system to provide a more reliable audit trail for seat lifecycle actions. This includes a new management view and a normalized data schema.
License Events Table: A new dedicated table in the management console for reviewing historical license assignments, revocations, and status changes.

User Wizard: Unified flow for simultaneous user creation and platform access assignment.
Access Filter: Added a "No Access Users" toggle to the user list to filter out identities without active platform permissions.
Default Sorting: All user management views now sort by name by default.
Notification Scoping: Subscription options are now restricted based on the user's specific platform access permissions.
Integrated insights now flag "Inactive Users with Licenses" based on assignment duration and activity data.
Date Range Filtering: The Total Spendings widget now supports custom date ranges for historical auditing.
Spend Summary: Added a total spendings summary to the reporting interface for quick reconciliation.
Spending Snapshots: Implemented pre-computed aggregates for spending data to reduce query latency.
Database Optimization: Added composite indexes for license events and user-app reports.
Cache Management: Refined action caching and license cache invalidation logic.
LicenseEvent Schema:
performedByUserId renamed to actorId.
subjectUserId renamed to subjectId.
performedBy column removed (use actor.email relation instead).
Numeric Data: change and changePercent fields in reporting APIs are now cast to floats for improved precision.
If you have any questions, please reach out to me at danish.shakeel@seatbase.io