Risk matrix dashboard not updating after risk score changes

Our risk matrix dashboard is showing outdated data even after we update risk scores in the risk management module. We changed several high-priority risks yesterday, lowering their severity scores after implementing controls, but the dashboard still shows the old values.

The dashboard data refresh seems to be the issue - it’s like there’s a lag between when we update risks and when the analytics data source picks up the changes. I’ve tried manually refreshing the dashboard, but that doesn’t help. This is causing delays in management decision-making because they rely on this dashboard for weekly risk reviews.

Is there an ETL job schedule I should be checking? How often should the risk analytics be updating?

Found errors in the ETL logs - “table lock timeout” on the RISK_ANALYTICS_CACHE table. Looks like another process was holding a lock during the scheduled run. Should I just reschedule the ETL job to run at a different time, or is there a better fix?

The table lock issue indicates a conflict with other scheduled jobs or active user sessions. Here’s the comprehensive solution addressing all three focus areas:

Dashboard Data Refresh: The risk matrix dashboard relies on cached analytics data, not live queries. When you update a risk score, it doesn’t immediately appear in the dashboard because the cache hasn’t refreshed. You have two options:

  1. Increase ETL frequency to hourly for near-real-time updates
  2. Implement on-demand refresh capability by enabling the “Refresh Analytics” button in dashboard settings

For management reviews, I recommend hourly ETL during business hours and daily overnight for comprehensive recalculation.

ETL Job Schedule: Your table lock errors suggest the 2 AM schedule conflicts with database maintenance or backup jobs. Reschedule the risk analytics ETL to run at 3:30 AM, after typical maintenance windows. Also, configure the job with retry logic:

  • Go to Analytics > Job Scheduler > Risk Analytics ETL
  • Set “Max Retries” to 3
  • Set “Retry Interval” to 30 minutes
  • Enable “Skip on Lock” option to prevent job failures

This ensures if the first attempt hits a lock, it’ll retry automatically.

Analytics Data Source: Verify your data source configuration under Analytics > Data Sources > Risk Management. Ensure:

  1. Connection points to primary database, not read replica
  2. Query timeout is set to at least 300 seconds
  3. “Use Incremental Updates” is enabled - this processes only changed records instead of full refresh, reducing lock contention

Also check the RISK_ANALYTICS_CACHE table permissions. The ETL service account needs exclusive write access during refresh. If users can query this table directly, it can cause locks. Configure read-only views for user access instead.

Finally, in MC 2022.2, there’s a dashboard setting “Auto-refresh Interval” that you can enable. Set it to 60 minutes so the dashboard pulls fresh data automatically throughout the day, even between ETL runs. This won’t give you real-time updates, but it ensures management always sees data that’s no more than an hour old.

Implement these changes and manually trigger the ETL job once to clear the backlog. Your dashboard should then stay current with risk score changes.

Definitely check the ETL job logs. Go to System Logs > Analytics ETL and look for any errors from last night’s run. Common issues include database connection timeouts, insufficient temp space, or locked tables. If the job failed, the dashboard won’t update regardless of the schedule.

I found the job scheduler - you’re right, it’s set to run daily at 2 AM. But even with that schedule, yesterday’s changes should be showing up today, and they’re not. Could there be a failed job or something blocking the ETL process?

We had a similar problem where the risk matrix wasn’t updating. In our case, it was because the analytics data source was pointing to a replicated database that had replication lag. Check your analytics configuration to make sure it’s pulling from the primary database, not a read replica. Also verify that the RISK_ANALYTICS_CACHE table is actually being populated by the ETL job.