Understanding Maintenance Rules

Modified on Tue, 18 Nov at 11:09 AM

Understanding Maintenance Rules

Overview

Maintenance Rules are the building blocks of ARMOR's Maintenance Management system. Each rule defines what maintenance needs to be done, when it should happen, and which assets it applies to. This guide explains every component of a maintenance rule so you can configure them effectively.

What is a Maintenance Rule?

A Maintenance Rule is a configuration that tells ARMOR:

  • What maintenance task to track (e.g., "Oil Change")
  • When to trigger alerts (e.g., every 250 hours or 365 days)
  • Where it applies (all assets, specific sites, or tag-based selection)
  • How to initialize counters (start at zero or current value)

Anatomy of a Maintenance Rule

Every maintenance rule consists of two parts:

1. Maintenance Definition (The "What" and "When")

The definition specifies the technical details of the maintenance task:

Field Description Example
Name Descriptive name for the maintenance task "Oil Change"
Key Unique identifier (auto-generated from name) "oil_change"
Data Name Display name shown in alerts/UI "Oil Change"
Data Field Telemetry field to monitor "runtime" or "distance"
Threshold Value at which to trigger alert 250 (hours)
Unit Measurement unit for threshold "hours", "miles", "days"
Max Days Calendar backup trigger (0 = disabled) 365 (trigger after 1 year regardless)
Init Mode How to initialize counters "zero" or "current"
Set Message Alert text when maintenance is due "Oil change is due"
Clear Message Alert text when maintenance is completed "Oil change completed"

2. Scope (The "Where")

The scope determines which assets the rule applies to:

Scope Type How It Works Use Case
Account-Wide Applies to all assets in your organization Universal maintenance (annual inspections)
Site-Based Applies only to assets at specific sites Site-specific compliance requirements
Asset-Specific Applies to manually selected assets Unique one-off maintenance needs
Tag-Based Applies to assets matching tag criteria Manufacturer/model-specific maintenance

Field-by-Field Breakdown

Name and Key

Name is the human-readable description of the maintenance task. When you enter a name, ARMOR auto-generates a Key by converting to lowercase and replacing spaces with underscores.

Example:

Name: Oil Change - 250hr Interval

Key: oil_change_250hr_interval

The key is used internally to track maintenance status on each asset. Once created, keys should not be changed or historical data will be lost.

Data Field

The Data Field tells ARMOR which telemetry value to monitor. Common options:

Data Field What It Tracks Typical Use
runtime Total operating hours (lifetime) Engine maintenance
distance Total miles/km traveled (odometer) Vehicle maintenance
None Calendar time only Time-based inspections

Important: The data field must be available in asset telemetry. If an asset doesn't report the field (e.g., stationary equipment doesn't have distance), that asset won't be able to use distance-based maintenance.

Threshold and Unit

The Threshold is the value at which maintenance is triggered. The Unit defines what that value represents.

Example 1: Oil Change

Threshold: 250

Unit: hours

Result: Alert triggers when asset accumulates 250 hours since last oil change

Example 2: Tire Rotation

Threshold: 5000

Unit: miles

Result: Alert triggers when asset travels 5,000 miles since last rotation

Available Units

  • minutes - For very short intervals
  • hours - Most common for runtime-based maintenance
  • days - Calendar-based only (used with Max Days = 0, Threshold > 0)
  • miles - Distance-based (US)
  • kilometers - Distance-based (metric)

Max Days (Calendar Backup)

The Max Days field provides a time-based safety net. If set to a value > 0, ARMOR triggers maintenance when either the usage threshold OR the calendar limit is reached (whichever comes first).

? Best Practice: Always set Max Days to a reasonable value (typically 365 or 180 days) to ensure maintenance happens even if equipment is rarely used. Oil breaks down over time, seals dry out, and batteries degrade regardless of whether the asset runs.

Max Days Logic

Configuration Behavior
Max Days = 0 Usage-based only (no calendar backup)
Max Days > 0, Threshold > 0 Hybrid: triggers on usage OR time (whichever first)
Max Days > 0, Threshold = 0 Time-based only (pure calendar)

Init Mode (Initialization)

When you create a maintenance rule, Init Mode determines where counters start for existing assets:

Mode How It Works When to Use
Zero Set all counters to 0 (maintenance just performed) Fresh start, or maintenance was just completed on all assets
Current Use current telemetry values as starting point Phasing in gradually, or unknown maintenance history

Example Scenarios

Scenario 1: Fleet-wide oil changes just completed

Init Mode: zero

Result: All assets start at 0 hours, alerts trigger after 250 hours of new operation

Scenario 2: Adding rule to existing fleet, unknown maintenance history

Init Mode: current

Result: Assets with 100 hours currently will trigger after next 250 hours (at 350 total), assets with 200 hours trigger at 450 total, etc. This spreads out maintenance events.

Set Message and Clear Message

These fields customize the alert text users see:

  • Set Message: Displayed when maintenance alert is triggered (maintenance is due)
  • Clear Message: Displayed when maintenance is marked complete (alert cleared)

Example:

Set Message: "Oil change is due - schedule service within 2 weeks"

Clear Message: "Oil change completed successfully"

If left blank, ARMOR uses default messages based on the maintenance name.

Scope Configuration Deep Dive

Account-Wide Scope

No scope fields populated = rule applies to ALL assets in your account.

When to use:

  • Universal maintenance (annual inspections required for all assets)
  • Company-wide policies
  • Simple fleets where all assets need same maintenance

Site-Based Scope

Select specific sites from scopeSiteIds. Rule applies to all assets at those sites.

When to use:

  • Site-specific compliance (some states require different inspection frequencies)
  • Regional differences (winter vs. summer climates)
  • Customer-specific requirements (different clients have different standards)

Example:

Rule: "California Emissions Inspection"

Scope: Sites in California only

Result: Only assets located at CA sites get this maintenance rule

Asset-Specific Scope

Manually select individual assets from scopeAssetIds. Rule applies only to those specific assets.

When to use:

  • Unique equipment with special needs
  • Prototypes or trial equipment
  • VIP customer assets
  • One-off maintenance requirements
⚠️ Caution: Asset-specific scope is tedious for large fleets. Use tag-based scope instead for scalability.

Tag-Based Scope (Most Powerful)

Define tag criteria in scopeTags. Rule applies to assets matching the tag logic.

Tag Logic:

  • Tags within an array are OR (any match)
  • Multiple arrays are AND (all must match)

Example 1: Simple Filter

Scope Tags: [["Manufacturer:Kaivac"]]

Result: Applies to all assets tagged with Manufacturer = Kaivac

Example 2: Complex Filter

Scope Tags: [["Manufacturer:Kaivac"], ["Model:17CC", "Model:17501"]]

Result: Applies to assets that are:
Manufacturer = Kaivac AND (Model = 17CC OR Model = 17501)

When to use tag-based scope:

  • Manufacturer-specific maintenance (Kaivac vs. Tennant vs. other brands)
  • Model-specific intervals (different models have different oil capacities/requirements)
  • Fleet segmentation (electric vs. propane vs. diesel)
  • Dynamic scoping (as you add new assets with matching tags, rule auto-applies)

How Rules Are Evaluated

Evaluation Cycle

ARMOR checks maintenance status continuously:

Every telemetry update (1-5 minutes):

1. Asset sends new telemetry data (runtime, distance)

2. ARMOR processes data and updates asset fields

3. For each maintenance rule applicable to this asset:

a. Calculate accumulated value since last completion

b. Check if threshold reached (e.g., 250 hours accumulated)

c. Check if max days exceeded (e.g., 365 days since last completion)

d. If either condition true → CREATE ALERT

4. Notifications sent for new alerts

Counter Accumulation

For usage-based maintenance, ARMOR tracks accumulated value since last completion:

Example: Oil Change Every 250 Hours

Asset current runtime: 1,500 hours

Last oil change performed at: 1,250 hours

Accumulated since last change: 1,500 - 1,250 = 250 hours

Threshold: 250 hours

Result: ALERT TRIGGERED (accumulated = threshold)

Alert Lifecycle

  1. Created: When threshold or max days reached
  2. Active: Alert appears on dashboard, emails sent, remains active
  3. Cleared: When user marks maintenance complete, counter resets to 0
  4. Cycle Repeats: Accumulation starts over, next alert triggers after another 250 hours

Rule Priority and Conflicts

What If Multiple Rules Apply?

An asset can have multiple maintenance rules active simultaneously. Each rule tracks independently.

Example: Floor Scrubber

Rule 1: Oil Change (every 250 hours)

Rule 2: Filter Replacement (every 500 hours)

Rule 3: Annual Inspection (every 365 days)

Result: Asset will trigger 3 separate alerts when each condition is met

Overlapping Scopes

If multiple rules with different scopes could apply, all matching rules are applied. There's no conflict—ARMOR creates maintenance tracking for each applicable rule.

Common Configuration Patterns

Pattern 1: Standard Manufacturer Maintenance

Use Case: Follow Kaivac 17CC maintenance schedule

Configuration:

  • Name: "Kaivac 17CC - Oil Change"
  • Data Field: runtime
  • Threshold: 300 hours
  • Max Days: 365
  • Scope Tags: [["Manufacturer:Kaivac"], ["Model:17CC"]]
  • Init Mode: zero (after performing initial oil change on all)

Pattern 2: Universal Annual Inspection

Use Case: Required annual safety inspection for all equipment

Configuration:

  • Name: "Annual Safety Inspection"
  • Data Field: None
  • Threshold: 0
  • Max Days: 365
  • Scope: Account-wide (no scope filters)
  • Init Mode: current (start from today, stagger inspections)

Pattern 3: High-Use Equipment Accelerated Maintenance

Use Case: Assets with "High-Use" tag need more frequent oil changes

Configuration:

  • Name: "Oil Change - High Use"
  • Data Field: runtime
  • Threshold: 150 hours (shorter interval)
  • Max Days: 180
  • Scope Tags: [["Usage:High-Use"]]
  • Init Mode: zero

Best Practices for Rule Configuration

1. Always Include Max Days

Even for usage-based maintenance, set a reasonable Max Days value. This catches rarely-used equipment that still needs maintenance due to aging components.

2. Use Tag-Based Scoping for Scalability

Instead of manually selecting assets, use manufacturer/model tags. As you add new assets with matching tags, rules auto-apply.

3. Start with Init Mode = Current for Existing Fleets

If you're adding rules to an established fleet, use "current" mode to stagger maintenance events. This prevents 50 assets all triggering alerts on the same day.

4. Customize Alert Messages

Generic alerts like "Maintenance due" aren't helpful. Use specific messages: "Oil change required - schedule with maintenance team by Friday"

5. Test on Pilot Assets First

Create rule with narrow scope (one or two assets), verify it works correctly, then expand scope to full fleet.

6. Document Your Rules

Use clear naming conventions. Instead of "Maint 1", use "Kaivac 17CC - Oil Change 300hr"

Troubleshooting Rule Issues

Rule Applies but No Alerts

Check:

  • Threshold hasn't been reached yet (check asset runtime/distance vs. threshold)
  • Telemetry device is reporting data (check "Last Update" timestamp)
  • Data field exists for this asset type (stationary equipment won't have distance)

Alerts Trigger Immediately After Creation

Cause: Init Mode = "current" and assets already exceed threshold

Fix: Mark maintenance complete to reset counters, or adjust threshold higher

Rule Doesn't Apply to Expected Assets

Check:

  • Scope tags are correct and assets have matching tags
  • Site IDs are correct if using site-based scope
  • Asset IDs are correct if using asset-specific scope

Related Topics

Getting Help

If you need assistance configuring maintenance rules, contact the ARMOR Support Team with your rule configuration details.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article