Foundation
The asset has a home
Everything else on Powoflow hangs off one structure: a graph of the things you actually operate. Not a folder tree bolted onto a maintenance database. A model with typed relationships, inherited properties and rules about what can contain what.
One structure, three kinds of edge
Containment is only part of how a plant is wired. A pump sits in a room, belongs to a system, and is fed by a switchboard three levels away. Those are different relationships and the model keeps them apart.
Containment, what sits inside what
Arbitrary depth, with rules per type. A floor may only sit under a building; the API refuses the rest. How deep to go is yours to choose, not ours to impose.
Attachment, what concerns this asset
A work order, a document, a project node, a contact. Anything that concerns the asset attaches to it rather than living in a parallel system that has to be reconciled later.
Connection, what feeds what
Cable, pipe or network. Connections record which terminal joins which, and in which direction, so you can answer what is downstream of this rather than guessing from a drawing.
Reference designations, done properly
ISO 81346 is how plant engineering has named things for decades. Most software ignores it and invents a tag format instead.
Location
Where the thing physically is. Resolved by walking the location chain, site, building, room.
Function
What it is for. The functional system it serves, independent of where it happens to be mounted.
Product
Which assembly it is part of. The product breakdown, which is often the one a supplier thinks in.
The three chains are walked across the graph and composed into a single designation. Change where something is mounted and its location aspect follows, without touching what it does. Engineers who already work this way do not have to translate; everyone else can ignore it entirely, because it is derived rather than typed in.
What the structure buys you
Properties that inherit
Set an operator, a criticality or a custom field on a site and everything beneath it inherits the value until something overrides it. Correcting a mistake is one edit, not four hundred.
Cascade impact before you archive
Archiving shows exactly what goes with it, children, connected equipment, linked records, and warns on open work orders. The whole operation is one transaction, and there is an eight-second undo.
Questions the tree can answer
Ancestors, descendants, full subtree, org tree, as first-class queries rather than something you assemble client-side from a hundred requests.
Roll-ups that follow the shape
Reliability figures, mean time between failures, mean time to repair, availability, computed per asset and rolled up the structure you defined, not a fixed three-level model.
86 types to start from
Built-in asset types ship seeded, and you add your own with typed custom fields, validation, criticality, hierarchy constraints and terminals for wiring. 9 domain templates pre-shape the whole structure for a vertical.
Three ways to look at it
A list when you know what you want, a tree when you are navigating, and a node-and-edge explorer when you are trying to understand how something is connected.
What the structure is worth downstream
A hierarchy is only worth having if something reads it. This is the loop it closes, and each step writes to the same asset:
- 01Meters countReadings arrive by hand or from telemetry, with rollover handled. An hour meter that wraps at 9999.9 does not read as a sudden drop, and thresholds that fire in a direction you choose.
- 02Downtime is recordedAgainst a reason code, with a start and an end, rather than inferred from a gap in data.
- 03Reliability falls outMean time between failures, mean time to repair and availability, computed per asset and rolled up the structure you defined.
- 04A report lands in an inboxOn a schedule, as a PDF, without anyone assembling it, which is the only version of this that survives a busy month.
Scan it in the field
Any asset can carry an NFC tag or a QR code, so a technician standing in front of a pump gets its record without searching for it. The same external-ID mechanism is how records correlate to an ERP.
Retirement in three stages
Archive, then mark for purge, then permanent deletion, with a grace period in between and full history intact until the last step. Deleting equipment records is the operation people most often regret.
How it actually works
State lives in a record store; relationships live in a graph. Both are written in a single transaction through an outbox, so an asset and its edges can never disagree because one write succeeded and the other did not.
The important part is which one is trusted. The graph is for questions, what is downstream, what would this archive take with it, what is connected to what. It is never the authority for a safety gate, a permission check or a billing count; those read the record store directly. A graph that is behind by a second is a slower answer. A graph that is behind by a second and also decides who may operate a valve is an incident.
Graph edges are advisory. Synchronisation is typically sub-second, but it is eventual, and everything that must be correct rather than merely fast is read from the record store.
Bring your structure, not ours
Most platforms make you flatten a plant into their model. Show us how your equipment is actually organised and we will tell you honestly whether this fits.