1. Abstract
Effective user governance is a critical responsibility for Board administrators. Monitoring user access, license allocation, enrollment status, and login activity ensures compliance, optimizes license utilization, and strengthens security controls.
This article describes how to design and implement a Sub Hub Users Login Dashboard within Board. It explains how to extract and load Subscription Hub data, structure cubes and entities, calculate inactivity buckets, and build governance dashboards and reports.
By following this structured approach, organizations can gain full visibility into user population, activity trends, and inactivity risks across production and non-production instances.
2. Context
Organizations using Board typically manage users through the Subscription Hub (Sub Hub). While Sub Hub provides operational user data, administrators often require:
- Centralized reporting inside Board
- Visibility by Role, License, Status, and Enrollment
- Monitoring of inactive users
- Governance dashboards for compliance and cost control
- Insight across different instances (Production, UAT, Sandbox)
Without a structured reporting model, user oversight becomes manual, fragmented, and reactive.
This article suggests a method to:
- Load Sub Hub exports into Board
- Transform and structure the data
- Calculate login inactivity buckets
- Build an executive-ready governance dashboard
3. Content
Expected results:
3.1 User Hierarchy Update
To enable structured reporting, align Sub Hub export columns with Board entities.
| Core Attributes - Role: Derived from Sub Hub Role column (Admin, Buyer, etc.)
- License: Derived from License column (Developer, User, Power User, etc.)
- Account Status: Active or Inactive (from Sub Hub Account Status column)
- Enrollment: Completed or Pending (from Enrollment column)
- User Type (Optional)Used when clients need to distinguish Board vs. non-Board users. Typically determined via email pattern (e.g., search for “board” in email address).
- Instance: Represents Board environment (Production, Sandbox, UAT).Best Practice: For planning-focused reporting, set instance to Production only, unless cross-instance comparison is required.
|
|---|
This hierarchy design ensures consistent multidimensional reporting.
3.2 Load Sub Hub Data
- Go to Subscription Hub
- Go to Users tab and Export the users’ data. The file is downloaded to your local PC
- Create blob cube of .csv extension to load in the data from previous step
- Run procedure that updates reports from Sub Hub data load:
- Create three cubes of the following types and dimensions:
- Sub Hub Last Login – text cube, 2D: User, Instance
- Sub Hub User Flag – integer cube, 2D: User, Instance
- Last Login – date cube, 2D: User, Instance
- Export the contents of the blob cube to a desired folder on MS Azure
- Create data reader to update the cubes
ETL explained:
User type (E7- Logic) = some clients want to see if the user is a Board user vs other users (search is based on “board” text in the email address (ex, if not Board, then “client company’s name”). In most cases, User Type can be omitted
Account Status (E11 logic) = Account Status is easier to read/understand if it is flagged as Active/Inactive
Date Formatting (E19 logic) = translate date from C17 into Board friendly format (please make sure to check that date format is used, the ETL above is for the European time zone)
3.3 Update Inactivity groups
- Add entity Inactivity by Days. Define configurable buckets such as:
- 0–30 days
- 31–60 days
- 61–90 days
- 90+ days
Granularity can be adjusted according to governance needs.
- Create a cube Inactivity by Days Login:
- Type: integer
- Dimensions: User, Instance, Inactivity by Days
- Create a procedure for calculating the inactivity buckets based on the last upload from Sub Hub (hence, today() function in dataflow):
- Create two Temp Cubes (Integer, 2D – Instance, User)
- Two dataflows that calculate the inactivity bucket based on the last load:
- Create groups to calculate the number of users in each inactivity bucket:
- Select the Inactivity by Days entity
- Update Inactivity by Days Login cube (note that if(a=1,1,0) corresponds to buckets assigned to temp cube 2. In other words, for 31<60 days bucket, the expression in the dataflow will be if(a=2,1,0) and so on).
- Remove selection on Inactivity by Days entity and repeat steps b) and c) on other buckets.
3.4 Create Dashboard and Reports
| Purpose | Object Type | Configuration |
|---|
Total Sub Hub User Count | Displays total number of users Used as a high-level governance KPI. | Label | Cube: Sub Hub User Flag |
User by Status | Monitor Active vs. Inactive distribution. | Dataview Pie Chart | Cube: Sub Hub User Flag Rows: Account Status |
Users by enrollment | Track onboarding progress. | Dataview Pie Chart | Cube: Sub Hub User Flag Rows: Enrollment |
Users by license | Monitor license allocation | Dataview Pie Chart | Cube: Sub Hub User Flag Rows: Licenses |
Users by roles | Monitor Roles assignment | Dataview Pie Chart | Cube: Sub Hub User Flag Rows: Roles |
Login inactivity | Immediate identification of inactive users. | Dataview | Cube: Sub Hub User Flag Rows: Inactivity by Days Add color alerts (e.g., red for 90+ days) to highlight risk. |
3.4.1 User Activity report
Helps admins to see all users and login data and the inactivity buckets they fall into:
Configuration:
4. Conclusion
The LMA – Sub Hub Users Login Dashboard provides a structured and scalable governance solution within Board.
By transforming Subscription Hub exports into structured cubes, applying standardized ETL logic, calculating inactivity buckets, and building governance dashboards, organizations can:
- Strengthen security oversight
- Optimize license allocation
- Reduce inactive user risk
- Improve audit readiness
- Centralize user governance within Board
This enables administrators to move from reactive monitoring to proactive user lifecycle management, ensuring operational excellence and compliance alignment across Board environments.