Skip to main content

User Story: Asset Classification Management

1. Problem Statement

This user story addresses the foundational need to create a structured, hierarchical classification system for all assets within the utility. The primary user for this feature is the Asset Manager, who requires a logical framework to organize assets for effective analysis, risk management, and maintenance planning.

Primary User Role & Pain Points:

  • Asset Manager:
    • Inconsistent Asset Data: Without a standardized classification, assets are categorized arbitrarily (e.g., "Pump," "PMP," "Motor Pump" all meaning the same thing), making it impossible to perform accurate analysis or reporting across the entire asset base.
    • Ineffective Risk Modeling: Difficulty in applying risk and failure models consistently because similar assets are not grouped together, preventing the identification of systemic risks.
    • Disorganized Maintenance Strategies: Unable to develop standardized maintenance plans or failure mode analyses for specific types of assets, leading to reactive, inefficient, and costly maintenance.
    • Poor Capital Planning: Cannot accurately forecast replacement needs or budget for capital improvements because there is no clear view of the quantity, type, and hierarchy of assets owned by the utility.
    • Time-Consuming Reporting: Spends an enormous amount of time manually cleaning and grouping data from the asset registry just to answer basic questions like "How many centrifugal pumps do we have?"

Core Problem:
For the Asset Manager, the absence of a formal asset classification hierarchy makes strategic asset management nearly impossible. It leads to inconsistent data, unreliable reporting, and the inability to implement standardized maintenance and risk management strategies, ultimately increasing operational costs and the likelihood of unforeseen asset failures.

2. Who Is the User Facing the Problem?

The Asset Manager is the single most important user for this feature. Their role is entirely dependent on having a well-organized, reliable, and structured asset registry. While a Utility Administrator might perform the initial setup, the Asset Manager is the one who defines the classification strategy and uses the resulting structure to drive all major asset management decisions, from maintenance planning to long-term capital investment.

Access Control:
The Asset Manager and Utility Administrator should have full create, read, update, and delete permissions for the entire Asset Classification hierarchy. Other roles (e.g., O&M Manager, Plant Supervisor) will have read-only access to understand how assets are categorized.

3. Jobs To Be Done

  • For the Asset Manager: When I need to develop a long-term, risk-based maintenance strategy, but my assets are inconsistently categorized, preventing me from analyzing similar assets as a group, help me by providing a tool to build a standardized, multi-level classification hierarchy, so that I can apply uniform maintenance plans, accurately model failure modes, and make data-driven decisions to improve reliability and optimize spending.

4. Solution

The proposed solution is a dedicated Asset Classification module that allows the Asset Manager to define and manage a three-level hierarchy for all utility assets: Asset Class, Asset Type, and Failure Mode. This feature will serve as the foundational data dictionary for the entire asset registry, ensuring every asset is categorized in a consistent and meaningful way.

Key Capability Areas:

  1. Hierarchical Structure Management:
    • Create, edit, and delete top-level Asset Classes (e.g., Linear Infrastructure, Pumping & Flow Management).
    • Within each Asset Class, create, edit, and delete specific Asset Types (e.g., Pipeline Segment, Centrifugal Pump).
    • For each Asset Type, create, edit, and delete a library of common Failure Modes (e.g., Leak/Rupture, Blockage/Clog).
  2. Expandable/Collapsible Interface:
    • The main view presents Asset Classes in a list that can be expanded to show the Asset Types within them, providing a clean and organized user experience.
  3. Integrated Search and Filter:
    • A global search bar to quickly find any Class, Type, or Failure Mode.
    • A filter to view the hierarchy for a specific Asset Class.
  4. Contextual Actions:
    • Clear buttons and icons for adding, editing, or deleting items at each level of the hierarchy.
    • Dedicated modals for each action (Add/Edit Asset Class, Add/Edit Asset Type, Manage Failure Modes) to ensure a focused workflow.
  5. Failure Mode Library:
    • A dedicated interface to manage a list of potential failure modes for each asset type, creating a standardized library for use in maintenance and risk analysis.
  6. Informative Summaries:
    • Each level of the hierarchy displays a count of the items it contains (e.g., "2 types," "6 failure modes"), giving the user an immediate sense of the structure's scale.

5. Major Steps Involved

User Role: Asset Manager

Flow 1: Building the Hierarchy (Creating a New Class, Type, and Failure Modes)

  1. Navigate to Settings -> Asset Classification.
  2. Click the "+ Add New Asset Class" button.
  3. In the "Add New Asset Class" modal, enter the Asset Class Name (e.g., "Storage & Containment") and a Description. Click "Add Asset Class".
  4. The new Asset Class appears in the main list. Click the expand icon (˅) next to it.
  5. The section expands, revealing an "+ Add Asset Type" button. Click it.
  6. In the "Add Asset Type" modal, enter the Asset Type Name (e.g., "Water Tank") and a Description. Click "Add Asset Type".
  7. The new "Water Tank" Asset Type appears under "Storage & Containment".
  8. Click the "Manage Failure Modes" button next to the "Water Tank" type.
  9. The "Manage Failure Modes" modal opens. In the "Add New Failure Mode" section, enter a Failure Mode Name (e.g., "Corrosion Failure") and a Description.
  10. Click "+ Add Failure Mode". The new mode appears in the "Existing Failure Modes" list below.
  11. Repeat step 10 to add more failure modes (e.g., "Structural Crack," "Lining Failure").
  12. Close the modal by clicking the "X" icon. The hierarchy is now partially built.

6. Flow Diagram

Flow: Build Asset Classification Hierarchy

graph TD

A[User navigates to Asset Classification] --> B{Clicks '+ Add New Asset Class'};

B --> C[Enters Name/Description in modal];

C --> D{Saves New Class};

D --> E[New 'Storage & Containment' class appears];

E --> F{Expands the new class};

F --> G{Clicks '+ Add Asset Type'};

G --> H[Enters Name/Description for 'Water Tank'];

H --> I{Saves New Type};

I --> J[New 'Water Tank' type appears under the class];

J --> K{Clicks 'Manage Failure Modes'};

K --> L[Failure Modes modal opens];

L --> M[Adds 'Corrosion Failure' mode];

M --> N[Adds 'Structural Crack' mode];

N --> O{Closes Modal};

O --> P[Hierarchy is now defined];


7. Business Rules

This section provides a detailed breakdown of rules for every visible element on the screen.

A. Asset Classification (Main View)

  • Breadcrumb Navigation ("Dashboard > Settings > asset-classification"): Must accurately reflect the user's location in the application.
  • Page Title ("Asset Classification"): Static text.
  • Page Subtitle ("Define and manage the hierarchical classification..."): Static descriptive text.
  • Section: "Search & Filter"
    • Search Bar: Must perform a live search across Asset Class NameAsset Type Name, and Failure Mode Name. The results should highlight and expand the relevant sections of the hierarchy.
    • Filter by Asset Class: A dropdown that must be populated with all existing Asset Class names. Selecting a class should filter the view to show only that class and its children. Default is "All Asset Classes".
  • Button: "+ Add New Asset Class":
    • Visible only to users with create permissions (Asset Manager).
    • Clicking must open the "Add New Asset Class" modal.
  • Section: "Asset Classification Hierarchy"
    • This is the main container for the expandable list of Asset Classes.
  • Asset Class Item:
    • Name (e.g., "Linear Infrastructure"): Displays the name of the Asset Class.
    • Type Count (e.g., "2 types"): A calculated visual tag. Formula: COUNT(Asset Types) where AssetType.AssetClassID matches the current class.
    • Description: Displays the description provided for the Asset Class.
    • Expand/Collapse Icon (˅ / >): Toggles the visibility of the Asset Types within that class.
    • Edit Icon (pencil): Must open the "Edit Asset Class" modal, pre-filled with the data for that class.
    • Delete Icon (trash can):
      • Must prompt the user with a confirmation: "Are you sure you want to delete this asset class? This will also delete all associated asset types and failure modes."
      • Deletion Rule: Deletion is only permitted if no actual assets in the Asset Registry are assigned to any of the types within this class. If assets are assigned, the delete icon should be disabled and show a tooltip on hover: "Cannot delete. This class contains asset types that are in use."
  • Expanded Asset Class View:
    • Button: "+ Add Asset Type": Appears only when a class is expanded. Clicking it must open the "Add Asset Type" modal, pre-associating the new type with the parent class.
  • Asset Type Item (within an expanded class):
    • Name (e.g., "Pipeline Segment"): Displays the name of the Asset Type.
    • Failure Mode Count (e.g., "6 failure modes"): A calculated visual tag. Formula: COUNT(Failure Modes) where FailureMode.AssetTypeID matches the current type.
    • Description: Displays the description for the Asset Type.
    • Common Failure Modes: Displays a truncated list of the first 3-4 failure mode names associated with this type, followed by "...and X more" if applicable.
    • Button: "Manage Failure Modes": Must open the "Manage Failure Modes" modal for this specific Asset Type.
    • Edit Icon (pencil): Must open the "Edit Asset Type" modal.
    • Delete Icon (trash can): Must prompt for confirmation. Deletion is only permitted if no assets in the Asset Registry are assigned to this type.

B. Modals (Add/Edit Class, Add/Edit Type, Manage Failure Modes)

  • General Modal Rule: All modals must be closable by clicking the "X" icon in the top-right corner or by pressing the Esc key.
  • Add/Edit Asset Class Modal:
    • Field: "Asset Class Name": Mandatory text field. Must be unique.
    • Field: "Description": Optional multi-line text area.
    • Button ("Add/Update Asset Class"): Saves the data and closes the modal.
  • Add/Edit Asset Type Modal:
    • Field: "Asset Type Name": Mandatory text field. Must be unique within its parent Asset Class.
    • Field: "Description": Optional multi-line text area.
    • Button ("Add/Update Asset Type"): Saves the data and closes the modal.
  • Manage Failure Modes Modal:
    • Title: Must be dynamic, e.g., "Manage Failure Modes for: Pipeline Segment".
    • Section: "Add New Failure Mode"
      • Field: "Failure Mode Name": Mandatory text field. Must be unique for the current Asset Type.
      • Field: "Description": Optional multi-line text area.
      • Button: "+ Add Failure Mode": Adds the new mode to the "Existing Failure Modes" list below without closing the modal. The input fields should clear after submission.
    • Section: "Existing Failure Modes"
      • This is a list of all failure modes already associated with the Asset Type.
      • Each item in the list must display the Name and Description.
      • Each item must have an Edit Icon (opens an inline edit form or a small modal) and a Delete Icon (prompts for confirmation before removing it from the list).

8. Sample Data

Asset Class: Linear Infrastructure

  • Asset Type: Pipeline Segment
    • Failure Modes: Leak/Rupture, Blockage/Clog, Structural Collapse/Deformation, Joint Failure, Corrosion, External Damage
  • Asset Type: Electric Cable Segment
    • Failure Modes: Insulation Failure, Conductor Break/Open Circuit, Splice/Termination Failure, External Damage, Overheating

Asset Class: Pumping & Flow Management

  • Asset Type: Centrifugal Pump
    • Failure Modes: Bearing Failure, Seal Leakage, Impeller Damage, Motor Failure, Cavitation
  • Asset Type: Gate Valve
    • Failure Modes: Fails to Open, Fails to Close, Internal Leakage, External Leakage, Stem Failure

9. Acceptance Criteria

  1. The system must allow the Asset Manager to create a new Asset Class with a unique name and description.
  2. The system must allow the Asset Manager to add a new Asset Type to a specific Asset Class.
  3. The system must enforce that Asset Type names are unique within their parent Asset Class.
  4. The system must allow the Asset Manager to add multiple, unique Failure Modes to each Asset Type.
  5. The system must display the hierarchy in an expandable/collapsible list format.
  6. The system must display a correct count of child items for each Asset Class (X types) and Asset Type (Y failure modes).
  7. The system must allow the Asset Manager to edit the name and description of any Class, Type, or Failure Mode.
  8. The system must allow the Asset Manager to delete any Class, Type, or Failure Mode.
  9. The system must prevent the deletion of a Class or Type if it is currently being used by any asset in the Asset Registry.
  10. The system must provide a confirmation prompt before any deletion action.
  11. The system must allow the user to search for any term across all levels of the hierarchy.
  12. The system must allow the user to filter the view to a single Asset Class.
  13. The system must correctly display a preview of "Common Failure Modes" under each Asset Type.
  14. The system must open the correct modal when an add, edit, or manage button/icon is clicked.
  15. The system must ensure all modals can be closed without saving.

10. Process Changes

From: (Current Process)

To: (New Process)

Impact Analysis

Assets are categorized using a free-text field, leading to widespread inconsistency (e.g., "pump", "pmp", "pumping unit").

All assets must be assigned an Asset Type from the centrally defined, hierarchical classification system.

Justification: This enforces standardization at the point of data entry, eliminating inconsistencies. This can improve reporting accuracy by 100% as all similar assets will now be correctly grouped.

Failure analysis is ad-hoc and based on inconsistent descriptions of what went wrong.

Maintenance work orders can select a failure from a predefined list of Failure Modes specific to the asset's type.

Justification: This structures failure data, enabling the Asset Manager to perform reliable analysis on which failure modes are most common for certain asset types, leading to more targeted preventive maintenance.

Creating reports for specific asset categories requires extensive manual data cleaning and grouping in a spreadsheet.

Reports can be generated instantly by filtering on the standardized Asset Class or Asset Type.

Justification: This reduces the time for generating a category-specific asset report from hours to seconds, a massive efficiency gain for the Asset Manager.

11. Impact from Solving This Problem

Metric

How it Improves

:white_check_mark: Data Quality & Consistency

By enforcing a standardized hierarchy, the quality and reliability of the entire asset registry are fundamentally improved, making all downstream analysis trustworthy.

:white_check_mark: Risk Management Effectiveness

Allows the Asset Manager to apply risk models and failure analysis (like FMECA) consistently across entire categories of assets, leading to more accurate risk profiling and better mitigation strategies.

:white_check_mark: Maintenance Strategy Optimization

Enables the creation of standardized preventive maintenance plans for specific asset types based on their common failure modes, shifting from a reactive to a proactive maintenance culture.

:white_check_mark: Strategic Capital Planning

Provides a clear, structured view of the asset base, allowing the Asset Manager to accurately forecast long-term renewal and replacement needs for different classes of assets.

12. User Behavior Tracking

Primary User Role: Asset Manager

Metric/Event Name

Event Trigger

Properties Tracked

Question Answered for the Asset Manager

Define Asset Class

Asset Manager creates or edits an Asset Class.

action (create/edit), asset_class_name

Is the Asset Manager actively building or refining the top level of the hierarchy?

Define Asset Type

Asset Manager creates or edits an Asset Type.

action (create/edit), parent_asset_classasset_type_name

Which asset classes are being populated with the most detail? How granular is the classification becoming?

Define Failure Mode

Asset Manager adds or edits a Failure Mode.

action (add/edit), parent_asset_typefailure_mode_count

Is the Asset Manager building out the failure libraries? Which asset types have the most defined failure modes?

Search Hierarchy

Asset Manager uses the search bar.

search_term

What specific classes or types is the Asset Manager looking for? Does this indicate areas of the hierarchy they are focusing on?

Filter by Class

Asset Manager uses the "Filter by Asset Class" dropdown.

selected_asset_class

Which specific asset classes are being reviewed most frequently?

Delete Hierarchy Item

Asset Manager successfully deletes a Class, Type, or Mode.

item_level (Class/Type/Mode), item_name

Is the Asset Manager cleaning up or restructuring the hierarchy? Are they removing unused classifications?