Showing results for 
Search instead for 
Did you mean: 

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.


Power BI and Alarm & Event Bad Actors

In this blog entry, I will demonstrate how easy it is to display bad actors from your Alarm and Event (A&E) data in Power BI. Bad actors are the most frequently occurring alarms which are a nuisance to the operator. Usually, these alarms are broken and their configuration needs fixing e.g. the setpoint is incorrectly set, or the dead band or on/off delay needs modification. Having this report to hand helps operators identify these alarms, fix them and make operations more efficient and most importantly, safer.

Note: this report may also be run for Operator Interventions, or for any event type in the data.


This blog post is a follow up on the introduction to Industrial App Store Power BI Connector and how to connect and analyse data stored in industry-standard historians (more info here).



It is not a trivial task to count, aggregate and rank alarms over a variable period, especially when the database contains millions of events. For example, some operators need bad actor statistics for the past day or month and some even for the past year or more. This is time-consuming if done using normal queries and there may be nuances in how the data is stored that cause unexpected results.



Once you have your data connected to the Industrial App Store (more info here), obtaining a bad actor report in Microsoft Power BI is easy and straight forward using the Industrial App Store connector. To obtain these statistics we will use calculation tags that refer to specific KPIs in A&E data.


The setup

For the following example, I’ll use our demo A&E data source (Oil Co/Osprey) to which everyone has access to and can use to play around with.

Before we obtain the data lets construct the tags. Bad Actor calculation tags are adhering to the following pattern:


Company/Asset/ALM BA report/20.tag-a


Let’s break it down:

Companythe name of the company used when importing data, e.g. BP, CNOOC, etc.

Asset – the name of the asset, e.g. Osprey, Tartan, Buzzard, etc.

ALM BA report – indicates the name of the report.

20 – number of bad actors to get. This could be 5 or even a 100.

Tag – property of a bad actor. Available attributes are: tag, alarmIdentifier, tagDescription, priority, count, percentage.

-a – indicates to get top 20 bad actors, if -a wasn’t present it would only get the nth bad actor.

I’ll use the following set of tags to construct my Bad Actor report in Power BI (remember you can use these as well on our demo A&E data source, or change the company and the asset name to match your data):


Oil Co/Osprey/ALM BA report/20.tag-a

Oil Co/Osprey/ALM BA report/20.alarmIdentifier-a

Oil Co/Osprey/ALM BA report/20.tagDescription-a

Oil Co/Osprey/ALM BA report/20.count-a

Oil Co/Osprey/ALM BA report/20.percentage-a

NOTE: for other event types substitute ALM with e.g. INT for intervention bad actor report


Open Power BI and select Industrial App Store from available connectors. Sign in and once you have your data sources listed, expand any A&E data source and choose the Get Data function. From there simply put the above tag names joined by a comma (tag1, tag2, etc), choose the time period and click Load. That is it, you now have a list of worst offending alarms for the period you requested. This report has a lot of benefits especially when refreshed daily for the engineers to see.


To complement this table, we can plot (!) bad actor contribution to the overall alarm count for a period of time. To achieve this, we’ll use another set of calculation tags:


Oil Co/Osprey/KPI No Alm

Oil Co/Osprey/KPI Top 20 ALM BA count


The first one will return the number of alarms for the selected period per requested bucket size e.g. 1d, 24h, etc. And the second one will retrieve the top 20 bad actor alarm contribution for the same period per requested bucket size. Constructing a chart with these two tags can immediately show how we can reduce operator load if we fixed our top bad acting alarms.


The below dashboard is constructed using the tags above. The blue portion of the chart columns is the bad actor count for that day. You can immediately see that if we were to fix top 20 Bad Actors (in the table) our alarm frequency would greatly improve.


Power BI dashboard listing Top Alarm Bad Actors and their contribution to overall alarm count

bad actor only report.PNG


Here is a quick video of an engineer creating a Bad Actor report and integrating into a dashboard.


A brief video showing an engineer creating Bad Actor dashboard in Power BI using calculation tags.



Intelligent Plant’s Industrial App Store Connector enables Microsoft’s powerful analytics and visualizations to be applied to Alarm & Event data. Analysing this type of data helps operators to improve health and safety, efficiency, meet industry standards and save millions of pounds. Seamlessly integrate plant and corporate data and share with any colleague on any device, enabling faster, better, real-time decision making. The plant data may be centralized in a corporate data lake or globally dispersed across many sites and historians. Either way, Industrial App Store Power BI Connector brings it all together at your fingertips.


About us

We are an ISO 9001 registered company, focused on providing services and solutions to industry. We specialise in the performance monitoring of equipment and processes through analysis and visualisation of real-time data, and in the management of alarm data. The company consists of both engineers and computer scientists forming a team of very capable and skilled professionals who provide innovative and tailored solutions to their global clients.


Useful links

Intelligent Plant -

Industrial App Store -

Industrial App Store Wiki -

Intelligent Plant YouTube channel -


What is your favorite Power BI feature release for November 2023?