Meters & Usage-Based Automations
Track hours, miles, cycles, and fuel levels on any asset — and let Equipt open the work order for you the moment a threshold is crossed.
On this page
What are meters
A meter tracks a value on a specific asset or vehicle — engine hours on a mower, odometer miles on a truck, cycles on a piece of equipment, or the fuel left in a tank. Unlike a PM schedule, which fires on a calendar date, a meter fires based on how much the asset has actually been used.
Meters exist to feed one thing: usage-based automations. Once a meter is recording readings, you can wire up an automation in CMMS > Automations that watches it and reacts the moment it crosses a threshold you set.
Cumulative vs. level meters
Every meter is one of two kinds, chosen when you create it:
| Cumulative | Level | |
|---|---|---|
| Use it for | Odometer miles, engine hours, cycles — usage that only accrues. | Fuel, propane, or fluid in a tank — an amount that is used up and refilled. |
| Readings | Only go up. | Can go up or down. The current value is simply the latest reading. |
| Capacity | Not used. | Optional. When set, readings must stay between 0 and the capacity, and the meter shows the value in raw units plus a percent of capacity. With no capacity it shows raw units only. |
| Automations | Fire when the value reaches a threshold (≥), and can use a Service Interval to repeat. These count as preventive maintenance. | Fire when the value drops below a threshold (<). These are low-level alerts, not preventive maintenance. |
A level automation fires once when a reading drops below the threshold, then stays quiet — further low readings don't create duplicates, and finishing its work order doesn't re-arm it, because the tank may still be low. It re-arms automatically once a reading brings the level back to the threshold or above (after a refill), ready to alert on the next drop.
Adding a meter and recording readings
- Open any asset or vehicle detail and go to the Meters tab. Click + New Meter.
- Choose the unit — miles, hours, gallons, cycles, or whatever fits the asset — give the meter a name (e.g. "Odometer" or "Fuel Tank"), and pick Cumulative or Level. For a level meter you can also enter its capacity.
- To log usage, click the meter and use + Add Reading. Enter the value and the date. A reading dated today must be at least the current value. For a cumulative meter you can also add a past-dated reading you forgot to log; it only has to fit between the readings before and after that date ("Must fit between the readings before and after this date") and can be lower than today's value. Several readings on the same day are ordered by when you entered them, so the latest one is always the current value.
- The meter's current value always reflects the latest reading — there's no separate "current value" field to keep in sync manually.
Building a meter-threshold automation
- Go to CMMS > Automations and click + New Automation.
- Set Trigger Type to Meter Threshold, then select the specific meter to watch.
- Choose the operator — ≥ is the one you'll use almost always for cumulative meters like mileage or hours. For a level meter such as a fuel tank, choose < (drops below) instead. Enter the threshold value to compare against.
- Pick an action type. If it's Create Work Order or Create WO Request, you can also set a Service Interval — see the worked example below for what that does.
- The Automations list and the edit dialog always show the meter's and asset's current names, so renaming either one updates how the automation reads.
- For those two actions, Assigned To is a picker of your employees (leave it on Unassigned to skip it). The person you pick is put on every work order the automation creates; on a WO Request they're carried onto the work order when the request is converted. An older automation whose Assigned To was typed as free text shows “Previously typed… no matching employee” — pick the employee once so its work orders actually get assigned. An employee who has since left stays selectable on the automations already using them.
Worked example: Truck #4 oil changes
This is the canonical use of meter automations — a recurring, mileage-based service that keeps re-scheduling itself without anyone touching the threshold by hand.
- Truck #4 has an Odometer meter, currently at 31,200 miles from past readings.
- An automation is configured: Trigger = Meter Threshold, Meter = Truck #4 — Odometer, Operator = ≥, Threshold = 36,000. Action = Create Work Order ("Oil Change"), Service Interval = 5,000 miles.
- A crew member logs a new odometer reading of 36,150 miles. The automations engine runs instantly, sees 36,150 ≥ 36,000, and creates the "Oil Change" work order right then.
- The automation's Pending Reset flag flips to true — see the next section for why. No second work order gets created no matter how many more readings come in while it's pending.
- A tech performs the oil change and marks the work order Done. That closes the loop: Pending Reset clears, and the threshold automatically advances by the 5,000-mile interval — from 36,000 to 41,000 miles.
- Later, another reading pushes the odometer past 41,000. The automation fires again, a new Oil Change work order is created, and the cycle repeats — 46,000 next, then 51,000, and so on — with no one ever editing the threshold by hand.
Pending Reset, explained
Pending Reset is the state that keeps a meter-threshold automation from firing over and over. Without it, every single reading that still satisfies the operator (e.g. every reading ≥ 36,000 miles, which is all of them once you've crossed that line) would create another work order.
Think of it as a simple two-state machine:
| State | Meaning | What clears it |
|---|---|---|
| Pending Reset = false | Armed. The automation is watching and will fire the next time a reading crosses the threshold. | — |
| Pending Reset = true | Already fired once for this threshold. Further readings that still cross it are ignored — no duplicate work orders. | The linked work order (or request) is marked Done. That's also the moment the Service Interval, if set, advances the threshold. |
Trigger & action reference
Every trigger type an automation can use, and every action it can take.
| Trigger type | Fires when… |
|---|---|
| Meter Threshold | A cumulative meter reaches a number you choose, or a level meter drops below one (see below for the full walkthrough). |
| Part Low Stock | A part's quantity on hand drops to or below its minimum stock level — any part, or one you specify. |
| PM Schedule Due | A preventive-maintenance schedule's next-due date is within N days. |
| Work Order Overdue | A work order's due date has passed by N or more days. |
| New Maintenance Request | A new maintenance request is submitted. |
| Work Order Status Changed | A work order's status changes to a specific value you pick. |
| Purchase Order Status Changed | A purchase order's status changes to a specific value you pick. |
| Action type | What it does |
|---|---|
| Create Work Order | Opens a work order directly. Supports a Service Interval (see below). |
| Create Maintenance Request | Adds a review step before it becomes a work order. Also supports a Service Interval. |
| Create Purchase Requisition | Starts a requisition — useful for parts or consumables tied to the trigger. |
| Send Notification | Notifies a role in-app. |
| Send Email | Emails a role or address. Requires email configured in Settings first. |
Pre-built templates
The Automations page also offers ready-made templates — click any template card to add it to your org instantly, no manual configuration required.
- Low Stock Alert — Fires on Part Low Stock; creates a requisition automatically.
- PM Due Reminder — Fires on PM Schedule Due; creates a work order ahead of the due date.
- WO Completed — Notify Team — Fires on Work Order Status Changed (Done); sends a notification.
- PO Approved — Fires on Purchase Order Status Changed (Approved); sends a notification.