Enhance Enterprise Maintenance Prioritization WIth This Function

Imagine that you’ve got an overdue PM that will eventually lead to a critical outage if left unattended. But you’ve also got some high priority work that just came in. Which is more urgent? How do you build a schedule that tackles the right work at the right time?

The answer is: you improve the way you prioritize.

Prioritization of work orders isn’t as easy a 1-2-3

Any Planner or Scheduler worth his or her salt knows that not all work is created equal. But the methods and models used to define priorities and weigh Work Order criticality varies greatly from industry to industry, organization to organization, and sometimes even department to department.

At Penn State University, we use a simple and effective one to five work order scale to determine priority. Each priority value is bound to response levels the department strives to uphold. One is the highest priority; this is work that we commence immediately and aim to resolve in one to two business days. Level five work is a lower priority and does not have as short a response timeline attached to it.

This has worked well for us, except for one thing: human nature. If you’re in a situation where you have some P4 or P5 CMs that were due to start last month and a P3 from last week, most people will instinctively feel that the recent P3 is the higher priority work that must be completed first. But that’s not necessarily true.

Improving maintenance processes to meet organizational goals

While this thinking is understandable, it can threaten reliability – because that “low priority” work becomes increasingly more urgent as time goes by, and the prioritization number no longer accurately reflects how important that work is. Those P4s and P5s that have been sitting for months could mean the difference between a catastrophic failure or continued uptime.

As a department, the Office of Physical Plant at Penn State University has a goal to improve operational effectiveness. With our organization’s strategies and goals in mind, it was apparent that we needed a fair, impartial and repeatable method to prioritize and schedule all this competing maintenance work.

I wanted to create a function that could simply, quickly, and consistently calculate which work orders should take precedence over others, when faced with numerous work orders that appear to be equally important and require scheduling to a work group.

And, I knew we needed a holistic view of both Preventive Maintenance (PM) and Corrective Maintenance (CM) work orders.

The right tool to assign the right work at the right time

Prometheus Routine Maintenance (Previously AKWIRE) provides 360-degree view of our entire workforce, work to be accomplished and relative importance to each other. We can do everything we need to do in vScheduler, instead of bouncing back and forth between one application and Excel – and then worrying that our data is out-of-date.

I set out to create a function for Prometheus queries that produces an ordered ranking. In my opinion, users could create this feature in Maximo, but it would require significant Maximo user configurations to accomplish. Furthermore, I don’t think the results would be as productive.

The beauty of deploying this function in Prometheus is that the results are immediately actionable – we can get the results and easily order and start scheduling work right from the Gantt.  

One of the many things I value about Prometheus [previously AKWIRE] is that it’s intuitive to use and configurable. I’m not an IT person. But I was able to quickly build off Prometheus' configuration and leverage existing functionality and content to create the code and get exactly what I needed.

Doing this in Prometheus was easy and fast. I have a complete view of all the maintenance work to be done. And, Prometheus consumes Maximo data in real-time, so I know I’m working with the most up-to-date WOs.

This is what we’ve been using for the last several months.

A function for Prometheus Routine Maintenance that calculates criticality

This ordered ranking is an absolute measure that provides an analytical and repeatable list of competing waiting for scheduling preventive, predictive, corrective and service work orders requiring assignment to a workgroup up to the resource availability.

The ranking value for PM work type is calculated as a function of:

  • Target start date and the PM frequency interval between successive PM work orders, with respect to the current date at run time.

The ranking value for Corrective Maintenance (CM) work types is calculated as a function of:

  • When the work order planning is complete and sent to scheduling, and
  • The number of days from start to finish (with respect to work order priority and OPP dictated service level response).

A few definitions will help to make this more understandable:


The result is a value expressed as a number where the higher the value, the more attention should be given to the work order. The ranking value sum will increase if the WO does not get addressed.

Here’s the formula:

For PM work:


And for CM work:


Let’s walk through a sample calculation.

Three work orders with the following details are being evaluated on 2/15/2018.


In what order should the WOs be scheduled? Let’s do the math:

Work Order 1

MSCR = [(2/15/2018-2/12/2018) + (21-7)]/(21-7)] * 100

           = [(3 +14)/14] * 100

           = 121

Work Order 2

MSCR = [(2/15/2018-2/7/2018) + (45-14)]/(45-14)] * 100

           = [(8 +31)/31] * 100

           = 126

Work Order 3

MSCR = [(2/15/2018-2/10/2018) + (3 weeks * 7)]/( 3 weeks * 7)] * 100

           = [(5 + 21)/21] * 100

           = 124

Work Order 2 has the highest ranking, 126. So, it should be scheduled before Work Order 3, which has a ranking of 124. Work Order 3 should come last, because its ranking is the lowest (121).

Prioritizing IBM Maximo work orders with Prometheus

Let’s see how it looks in practice:

As you can see, the example I’m using is highlighted in yellow; we’ve got to replace door hardware.  That work order, WO G311926, is marked as a P5. The status date, when the work order status was set to “WSCH” is January 3, while the target start date is February 2.


But just look at the other P3s contained in that (small) section of the list for correctives. There’s several. Should the P3s and P2 in this list automatically be considered the most important, and the lower priority P4s and P5 automatically considered less so? Instinct may lead a scheduler to neglect the P5 work order due to the perception that the work order is not as urgent. Maybe, maybe not. It’s time to put our formula to work.

There’s the code that I’ve put into Prometheus, to run this function.


With this function, you can easily sort your WOs in relative terms using native Prometheus functionality in the Gantt to assess where your biggest risks are. Sorting by priority just isn’t effective. In this case, you can see that the P5 work order is the fourth most critical activity to be accomplished. There are two higher priority corrective work orders that have lower criticality rankings. In addition, the three PM work orders are more critical than one corrective work order.

Our Scheduling group loves this enhanced prioritization. It’s consistent, repeatable, and blends the PM and CM work together, giving us a full picture of everything we need to schedule to work groups.

The beauty of this function is that it can work in all kinds of industries and organizations – whether you’re in Facilities Management, like me, or in Oil and Gas, Utilities, or virtually any other enterprise maintenance setting.

Ready to try it in your organization?

Download the Script

Note: This script was originally developed for AKWIRE, but serves the same functionality in Prometheus Routine Maintenance.