Power BI Dashboard Setup¶
Deploy the FINRA Supervision Workflow dashboard for monitoring supervision metrics and compliance.
Overview¶
The dashboard provides:
- Queue Overview - Current queue status, pending items by zone/tier
- SLA Compliance - SLA breach rates, average review times
- Supervisor Performance - Items reviewed per supervisor, turnaround time
- Trend Analysis - Volume trends, escalation patterns
- Compliance Evidence - Exportable reports for regulatory examination
Prerequisites¶
| Requirement | Details |
|---|---|
| License | Power BI Pro or Premium per user |
| Role | Power BI Admin (for workspace) |
| Data | SupervisionQueue and SupervisionLog tables populated |
| Connectivity | Access to Dataverse environment |
Step 1: Create Power BI Workspace¶
- Open Power BI Service
- Click Workspaces > Create a workspace
- Configure:
- Name:
FSI Supervision Workflow - Description:
FINRA 3110 supervision monitoring - License mode: Pro or Premium per user
- Add members:
- FSW Queue Manager group: Admin
- FSW Auditor group: Viewer
- CCO: Member
Step 2: Configure Dataverse Connection¶
Option A: Using Template¶
Note: The
templates/SupervisionDashboard.pbittemplate is not yet included in this release. Use Option B (Manual Connection) below to build the dashboard.
Option B: Manual Connection (Recommended)¶
- Open Power BI Desktop
- Get Data > Dataverse
- Enter environment URL
- Select tables:
fsi_supervisionqueuefsi_supervisionlogfsi_supervisionconfig- Click Load
Step 3: Configure Data Model¶
Relationships¶
The template includes these relationships (create if building manually):
| From | To | Cardinality | Cross Filter |
|---|---|---|---|
| SupervisionLog.fsi_queueitem | SupervisionQueue.fsi_supervisionqueueid | Many-to-One | Single |
| SupervisionQueue.ZoneTierKey | SupervisionConfig.ZoneTierKey | Many-to-One | Single |
Important: The
fsi_zonecolumn alone is non-unique in SupervisionConfig (3 rows per zone). Create a composite key calculated column in both tables to establish an unambiguous relationship:
SupervisionQueue Table:
SupervisionConfig Table:
Create the relationship on ZoneTierKey (Many-to-One from SupervisionQueue to SupervisionConfig).
Calculated Columns¶
SupervisionQueue Table:
Review Turnaround Hours =
IF(
ISBLANK([fsi_revieweddate]),
DATEDIFF([fsi_queueddate], NOW(), HOUR),
DATEDIFF([fsi_queueddate], [fsi_revieweddate], HOUR)
)
SLA Status =
SWITCH(
TRUE(),
[fsi_state] IN {3, 5}, "Completed",
[fsi_sladue] < NOW(), "Breached",
[fsi_sladue] < NOW() + 2/24, "At Risk",
"On Track"
)
Zone Label =
SWITCH(
[fsi_zone],
1, "Zone 1 - Personal",
2, "Zone 2 - Team",
3, "Zone 3 - Enterprise",
"Unknown"
)
Measures¶
// Queue Metrics
Total Queue Items = COUNTROWS(SupervisionQueue)
Pending Items =
CALCULATE(
COUNTROWS(SupervisionQueue),
SupervisionQueue[fsi_state] = 1
)
SLA Breach Rate =
DIVIDE(
CALCULATE(COUNTROWS(SupervisionQueue), SupervisionQueue[SLA Status] = "Breached"),
COUNTROWS(SupervisionQueue),
0
)
Avg Review Time Hours =
AVERAGE(SupervisionQueue[Review Turnaround Hours])
// Completion Metrics
Items Reviewed Today =
CALCULATE(
COUNTROWS(SupervisionQueue),
SupervisionQueue[fsi_revieweddate] >= TODAY()
)
Approval Rate =
DIVIDE(
CALCULATE(COUNTROWS(SupervisionQueue), SupervisionQueue[fsi_reviewoutcome] = 1),
CALCULATE(COUNTROWS(SupervisionQueue), NOT(ISBLANK(SupervisionQueue[fsi_reviewoutcome]))),
0
)
// Trend Metrics
Items This Week =
CALCULATE(
COUNTROWS(SupervisionQueue),
SupervisionQueue[fsi_queueddate] >= TODAY() - WEEKDAY(TODAY(), 2) + 1
)
WoW Change =
VAR ThisWeek = [Items This Week]
VAR LastWeek = CALCULATE(
COUNTROWS(SupervisionQueue),
SupervisionQueue[fsi_queueddate] >= TODAY() - WEEKDAY(TODAY(), 2) + 1 - 7,
SupervisionQueue[fsi_queueddate] < TODAY() - WEEKDAY(TODAY(), 2) + 1
)
RETURN DIVIDE(ThisWeek - LastWeek, LastWeek, 0)
Step 4: Build Dashboard Pages¶
Page 1: Queue Overview¶
| Visual | Type | Data |
|---|---|---|
| Pending Items | Card | [Pending Items] measure |
| SLA Breach Rate | Gauge | [SLA Breach Rate] measure, target 5% |
| Queue by Zone | Donut | Zone Label, Count of items |
| Queue by State | Bar | State, Count of items |
| Recent Items | Table | Queue Number, Agent Name, Zone, Queued Date, SLA Due |
Page 2: SLA Compliance¶
| Visual | Type | Data |
|---|---|---|
| SLA Status | Pie | SLA Status, Count |
| Breaches by Zone | Clustered Bar | Zone, Count where SLA Status = Breached |
| Avg Review Time | Line | Date (x-axis), Avg Review Time Hours (y-axis) |
| SLA Trend | Area | Date, SLA Breach Rate |
Page 3: Supervisor Performance¶
| Visual | Type | Data |
|---|---|---|
| Items per Supervisor | Bar | Assigned Principal, Count |
| Avg Turnaround by Supervisor | Bar | Reviewed By, Avg Review Time |
| Completion Rate by Supervisor | Table | Reviewed By, Total Reviewed, Approval Rate |
| Supervisor Workload | Matrix | Supervisor (rows), Zone (columns), Count (values) |
Page 4: Compliance Evidence¶
| Visual | Type | Data |
|---|---|---|
| Date Range Slicer | Slicer | Queued Date |
| Zone Slicer | Slicer | Zone |
| Full Queue Export | Table | All columns, enable export |
| Audit Log Export | Table | All SupervisionLog columns |
Step 5: Configure Refresh Schedule¶
- Publish report to Power BI Service
- Navigate to workspace > Dataset settings
- Configure:
- Gateway: Not required (Dataverse is cloud)
- Credentials: OAuth2 organizational account
- Scheduled refresh: Every 30 minutes
Refresh Schedule Settings¶
| Setting | Value |
|---|---|
| Time zone | (UTC-05:00) Eastern Time |
| Frequency | Daily |
| Times | Every 30 minutes during business hours |
Step 6: Configure Alerts¶
SLA Breach Alert¶
- Navigate to Queue Overview page
- Click SLA Breach Rate gauge > ... > Manage alerts
- Configure:
- Title: SLA Breach Threshold Exceeded
- Condition: Above 10%
- Frequency: Once an hour at most
- Notification: Email + Teams
Pending Queue Alert¶
- Click Pending Items card > ... > Manage alerts
- Configure:
- Title: High Pending Queue Volume
- Condition: Above 50 items
- Notification: Email to Queue Manager
Step 7: Share Dashboard¶
Internal Sharing¶
- Open report in Power BI Service
- Click Share
- Add recipients:
- FSW Queue Manager group
- CCO
- Compliance team
Embed in Teams (Optional)¶
- Navigate to Teams channel
- Add tab > Power BI
- Select workspace and report
- Choose Page 1 (Queue Overview)
Export for Examination¶
For regulatory examinations, export compliance evidence:
- Navigate to Compliance Evidence page
- Set date range filters
- Export each table to CSV
- Include in examination evidence package
Dashboard Template¶
Note: The
templates/SupervisionDashboard.pbittemplate is planned for a future release. Build the dashboard manually using the steps above (Option B) and the calculated columns, measures, and page layouts documented in Steps 3-4.
Troubleshooting¶
| Issue | Cause | Solution |
|---|---|---|
| No data showing | Empty tables | Verify queue has data |
| Connection failed | Credentials expired | Re-authenticate in dataset settings |
| Refresh failed | Permissions | Verify account has Dataverse read access |
| Missing columns | Schema changed | Re-import tables |