CMMS history tracking

 I have a programming question about how the CMMS tracks & reveals repair work on equipment.

Our current system goes like this:

Equipment PM has w/o’s for each equipment on a PM route.

If a piece of equipment is found to be defective a new equipment number is assigned and the old one is switch out on the PM with new one.

Equipment PM will then have w/o’s for each equipment (new one too) on next PM route.

My question here is how do you or the CMMS system or others know that a specific piece of equipment has been replaced 4 times? What kind of CMMS programing mechanism will work to being the attention to the problem and will not be missed.

Maintenance reflects who you are!

Original Post

Hi Jim,

CMMS asset hierarchies are composed of two parts - an Equipment number and a Location designation. In your example, the location stays the same, while the equipment number changes with each replacement. If you run your work order history against the equipment, your results will bookend the life of the individual equipment. If you run your work order history against the location, you will get work order history for all equipment numbers that have existed in the location, assuming your date timeframe is wide enough to capture them.


If w/o history is ran against the equipment it will be a dead-end. But if you run a w/o history search at a specific location then you will (should) see all history. OK, I get it, but we in a small industrial plant have only one location, boiler room-level 1.

So, we either grid our floor 5,000sq ft by 3'x3' or maybe add a unique location marker or use a unique P&ID ID maker that is attached to the unique equipment number, ( believe this is what we has currently). By searching the unique P&ID ID we would be about to track equipment replacements.

We are considering a upgrade soon but this issue needs a standard solution and all ideas are welcome.




For location designations I use a combination of both Site>Building>Room for building facilities and P&ID system designations for equipment.

You should designate the pump location without any specific pump data. Underneath the location folder is where the specific pump equipment should be built. Which CMMS do you use?

Example: Site>Building>Boiler Room>Boiler 1>Boiler Feed Pump 1 (location)>Boiler Feed Pump 1 (equipment).

You would query against is Boiler Feed Pump 1 (location) to return the historical pump replacements. The specific equipment data is recorded in Boiler Feed Pump 1 (equipment). Always create a new equipment number when the pump is replaced so equipment histories don't get all mashed together.

I would expect that Aims has a start-up support service to get your equipment and spares entered in the best manner possible. Maintenance Connection did the initial CMMS set-up for our implementation. There's a lot of work that goes into fully implementing a CMMS. I am still improving things here. 

Asset tracking has its roots in proper hierarchy / taxonomy constructs that incorporates two levels: Location Level and Entity Level.

Under Location Level, you want to line out your hierarchy from the largest to smallest in terms of geography.

For Facilities use Site > Area > Building > Level/Floor > Room.
For Production use Site > Building > Area or Department > Line # > Functional Location > .....

For the Entity Level: i.e. Functional Assembly > Asset Type or System or Class > Asset Description ......

Believe it or not, asset data such as Manufacturer, Model, Serial, and even Asset ID are considered "attribute" data. Think about it, the Manufacturer, Model, Serial data never changes....same is true for the Asset ID. What can change (unless it is a fixed asset), are the Location level field data for an asset.

The trick, is to make sure the Location fields are captured on WO histories. This is where you will know "how many times" and "where have you been?"

I starting to see that no software is capable of being configured to flag replacements by logic programming and that this is all still done by manual reports to be aware of nuisance equipment (equipment areas) that is consistently being replaced. I was hope that new software would have this auto ability.

Is this what I am hearing?


Thank you

I'm not sure exactly what you mean by "logic programming"? If you're referring to equipment that fails on a relatively known frequency in your process you could set up a PM work order automatically generate prior to the failure to replace the "nuisance equipment". 

You would still need to enter the specific name tag data from the equipment. CMMSes handle each piece of equipment as unique. If the equipment isn't unique you could consider it as a spare part to a parent asset. In this instance you could query against spare parts usage in the equipment location to track replacement history.

There is also a CMMS feature called rotating equipment where the asset is identified as equipment AND handled as a spare part. Usually this applies to equipment that you would rebuild or recondition after it is replaced. The spare part is tracked with the equipment name tag data and has a unique equipment number while in the storeroom and carries through to when the equipment is put in service.

Hope I explained that so it makes sense.


Have you considered, or are you using, Action Codes on your Work Orders? (see below example) Action codes can serve as the mechanism to "Flag" instances within your WO Histories what outcome was taken. If you had several assets replaced within a location, there should have been a work order created that documents that action.  This way, as the work order histories serve as your historian, you can report on the number of instances over a period of prescribed time a particular (action code) occurrence happened. Taking it to the next level, some CMMS systems  achieve the "auto ability" at a counter level; where by the number of occurrences trigger the recording of the number times a condition (prescribed event) has happened.  Once that data field is populated, automatic reporting can be leveraged to notify a distribution list (via emails) as an alert mechanism.  Of course, the counter cannot commence if the CMMS is not "told" of the occurrence; hence the use of the Action Code. 

Hope this helps Cheers!

RPLCReplacedAsset, item, material, or part was replaced with like item from the Materials Management function. These items could be certified rebuild items issued from the storeroom.
RPARRepairedAsset, item, material, or part was repaired but not replaced with a new or rebuilt item
TPARTemporary RepairA temporary repair was performed due to parts, materials, or labor availability. This action taken will inform Maintenance that a new work order must be established, planned, and scheduled for future permanent repair.
CLNDCleanedThe removal of debris and foreign matter (i.e. product, dust, dirt, grease, etc.) that has or may have an impact on the reliable operation of equipment or environmental related.
ADJSAdjustedAn adjustment was made to ensure the equipment was/is operating at normal operating conditions. These adjustments could be speed, pressure, flow, temperature, or other adjustments

You Guys Nailed!

I really appreciate the help. I have had my eye on this issue for some time now but with IT as the big brother they just dont know what the program is capable of.  I am constantly being told to wait and better not do that. I understand protocols but its more like do it the old way that never worked. It was just pulling teeth to let me start using action code. Some do not understand metric to prove a need and then some know all to well that it means money too.

Bottom line , without you guys we would roll, flippity flop, back into a cave!

Thank you  again and very much look forward to another time.


Good luck with your CMMS efforts Jim. One thing I'd like to make you aware of based on my experience, Problem, Cause, Remedy Codes are notoriously inaccurate due to being subjectively applied based on technician experience/situational variances and generalized because too many codes are extremely cumbersome and too few are broad-based. I treat them as another data point, but not the entire story.

Add Reply