The loop
Work does not finish at completion. It finishes by scheduling itself again.
Due
A rule on the site record says this equipment is due — a battery on its third year, a detector on its service interval, whatever the contract carries. No job exists yet. The obligation does, and it sits on the site rather than in somebody’s calendar.
Raised
One action turns the obligation into a work order: from the event an operator is handling, from the engineer’s own list of what is due, or by hand. The site number fills the rest of the record out of the site’s own file.
Notified
Mail and SMS leave with the job, so nobody has to remember to send them. Whoever reached the engineer marks it, and the record then knows who told them and at what time.
Accepted
The engineer takes it. Until they do, the job is assigned but not accepted — two different facts, kept apart deliberately, because the distance between them is the part of the process that goes wrong.
On site
Start and finish are marked and the time between them is worked out rather than estimated. Equipment that has to be opened up goes to the test bench for the visit, so a screwdriver in a tamper switch does not reach the alarm queue.
Closed
The job closes on what was done, taken from the same catalogue the problem came from. It cannot close on an empty field, and it cannot close on a sentence nobody can count.
The return
Completion writes the next due date forward on the site record, and the obligation is live again on its own interval.
The dashed part of the loop is the only stretch no person touches. Everything else is somebody doing something. That segment is the schedule rewriting itself out of work that actually happened, rather than out of a calendar somebody maintains by hand and stops maintaining in March.
Where work comes from
Four ways in, and none of them is a phone call to the office.
From the event that caused it
An operator holding a fault raises the job from the site already in front of them. The work order arrives filled in, and the thing that prompted it is on the same record rather than in a mail thread.
From a rule on the site
Preventive work is generated from intervals held against the site itself — the equipment that is due, on the period the contract says, for the engineer the site belongs to.
From what is already due
An engineer signing in sees their own outstanding obligations. Tick several and they become several work orders in one action, each already coded for what it is.
By hand
A client calls, or something is noticed on a neighbouring visit. The manual route is a first-class one, not a fallback with fewer fields.
- A job number is the site number. A second job on the same site on the same day takes a suffix — so a number tells you which site it belongs to without a lookup, and how busy that site was that day.
- Setting the date checks that the person you are assigning it to has nothing else active in that window. Double-booking an engineer is caught while it is still a keystroke, not on the morning it matters.
- Everything about the site — its number, name and address — is locked once the job exists. The one thing still editable is who at the site asked for the work, because that is the field that legitimately changes.
The work order
One record, and it fetches most of itself.
- Type the site number and the rest arrives: name, address, the engineer the site belongs to, and the people at that site entitled to ask for work. Nothing is retyped, so nothing is retyped wrong.
- The requester is a real contact off the site record, not a name in a free-text box — which is what makes "who asked for this" answerable a year later.
- Urgency is a category from your list rather than an adjective in a description, so a queue of jobs can be ordered by it.
- The site opens on a map from inside the job, so an engineer who has never been there is not navigating from a street address alone.
- The full site record — equipment, zones, keyholders, drawings — is one key away, in the same shape the desk and the administrator see it.
Coded, not typed
Free text cannot be counted. This is the difference between a log and a dataset.
From the catalogue — fixed, and countable across a year
Added on site — free, and the part worth reading
Two fields, both structured
Why the engineer went and what the engineer did are each built from a shared catalogue rather than written out. They are the two fields every later question is asked of.
Fixed stem, free tail
The catalogue text is protected and the engineer adds the specifics after it. The fixed part is what makes a month of jobs countable; the tail is what makes one of them worth reading.
Grouped so it is findable
Entries live in named groups. Picking the right one is a few keystrokes rather than a scroll through a flat list — which is the only reason coding survives contact with a wet Tuesday.
The catalogue is yours
Groups and entries are maintained centrally, by whoever actually knows the equipment. Adding a code is an afternoon, not a release.
This is the quiet decision the rest of the page rests on. Every analysis further down exists because these two fields have structure. A system whose engineers type sentences can tell you what happened on one job and almost nothing about a thousand of them.
Reaching the engineer
The notification leaves with the job, not with somebody’s good intentions.
Out, and backTwo channels, a fallback, and the answer returning.
Mail and SMS, sent together
The second number, tried only on failure
The delivery report, coming back
Sent on creation
Mail and SMS go to the assignee the moment the work order exists. Nobody has to remember, so nobody forgets at the end of a long shift.
It knows the roster
By default an SMS follows the engineer’s shift, so a job raised at two in the morning waits for the shift that will act on it. Switch that off for the categories that cannot wait.
Two numbers, in order
Where a second number is on file it is tried when the first fails, rather than the message quietly ending there.
Delivery comes back
Sending is not arriving. Delivery reports return to the same record, so "he never got it" is a question with an answer.
Told, then accepted
Someone marking that they reached the engineer and the engineer accepting are two separate acts with two separate timestamps. Most of what a technical manager wants to know lives in the gap between them.
Opt in per person
Automatic notification is a switch on each engineer, with their own address and numbers beside it. A crew that works from a whiteboard is not forced onto a phone.
Maintenance that schedules itself
The interval belongs on the site, beside the equipment it describes.
The rule sits on the site
Battery replacements, detector service, radio sensor cells, anything on a period. Each carries its own interval and its own next date, on the record of the site it applies to.
It resolves to a coded job
Each rule names the cause code and the completed-work code the resulting job will carry, so preventive work arrives already classified rather than being classified afterwards by whoever gets to it.
It knows what already counts
Before raising anything, the rule looks for a completed job on that site that has already done the work. Required codes say which jobs count; excluded codes say which do not. Last week’s visit that replaced the cell satisfies the obligation; the one that only cleared the fault does not.
The date moves by itself
Completion writes the next due date forward on the site record. Where a person has to confirm the replacement first, the write-back is switched off for that rule alone rather than for the system.
Two consequences worth stating plainly. Preventive work stops depending on anybody remembering it, and the interval on a site is the same fact for the desk, the engineer and the client — because there is only one of it.
What the coding is for
Structured work makes an estate legible. That is the return on the two fields above.
A site saying so before it failsIllustrative. The shape is the finding; the values are your own.
Causes, counted
The same fault recurring across a make, a model, an installer or a district is a pattern. It is only a pattern because it was coded — otherwise it is a feeling somebody has.
Standby power that is going, not gone
Mains and battery events are read out of the site’s own history to separate a site with a supply problem from a site with a battery problem. A cell that is losing its hold time is a job you can schedule. A cell that has failed is a call at three in the morning.
A month of signal quality
Alarms, restarts, missed tests, failed positions and power events plotted day by day per site — which is where bad loop wiring and a badly sited antenna stop being opinions and start being a work order.
Work per engineer, per site, per year
Jobs grouped by site, by who did them or by the year’s numbering, consolidated at both levels of the grouping rather than only at the top.
Distance, and distance that produced nothing
Kilometres recorded against jobs rather than in an expenses system, so travel that ended in work and travel that did not are two different numbers instead of one.
Inspections and what they found
A named inspector, an inspection type, a result per engineer, and a note on the ones that failed. It rolls up over any period without anyone assembling it by hand.
These are analyses, not forecasts wearing a lab coat. They say which parts of your estate are behaving unlike the rest of it, and why. What they replace is a technical manager reading a month of logs and forming an impression.
And the layer above it
Everything here is a structured table, which is the only prerequisite the analytics layer has. Clustering causes across the estate, balancing load across crews, ranking sites by what is most likely to fail next — none of that is new data being collected. It is these same coded fields, read by the layer the AI page describes.
See the AI layerCrews, rosters and field time
Who is on, who they are on with, and where the day actually went.
A month on one grid
Every engineer’s shifts for the month in one view, edited in place by the people allowed to edit it and read-only for everyone else.
Crews, not just people
Engineers belong to crews with a position inside them, and the roster groups itself the same way — so the grid matches how the department is actually organised.
A note on any day
Any cell takes a free note and is marked when it carries one, so the exception to the shift is on the shift rather than in a message somebody sent in March.
Distance kept beside the work
The mileage log sits with the jobs, not in a separate system, which is what lets distance be read against the work that caused it.
One roster, more than one use
The same roster that shows who is on decides whether an out-of-hours message is worth sending at all.
Who can do what
Three roles, and then the exceptions every real department turns out to have.
- An administrator sees and configures everything. An operator raises jobs and edits them. An engineer sees the jobs assigned to them and the jobs on the sites they own — and nothing else, which is the point.
- The permissions that matter are not the roles. Edit only your own jobs; edit anyone’s inside your crew; open jobs; close jobs; delete somebody else’s; change the roster; change a site’s number, name or address; inspect other people’s work. Each one is its own switch, because every centre draws these lines somewhere slightly different.
- A job can be deleted only while it is still new. After that it is rejected instead, with a reason and a name against it — a work order that can vanish is a work order somebody can later deny existed.
- People who leave are marked as leavers rather than deleted. They can no longer sign in, and the year of work they did is still in the statistics where it belongs.
- Every job carries its own history: what changed, who changed it, when, and every state it passed through. It is written as the work happens, which is the only way it is ever accurate.
What this is for
The gap closes
The distance between the desk knowing and the engineer knowing becomes a notification with a delivery report, rather than a call somebody has to remember to place.
Preventive work stops being a memory
Intervals live on the sites they describe and move forward on completion, so the third-year battery is a job that appears rather than one somebody was supposed to think of.
A year of work is countable
Coded causes turn a filing cabinet into something you can ask a question of: which model, which installer, which district, which engineer, which month.
Nothing reconstructed on Monday
Times, states, decisions and outcomes are recorded while the work is happening. The report is a by-product of doing the job rather than a task after it.
Your equipment, your intervals, your codes.
The rules, the code catalogue, the urgency categories and the permission matrix are yours to set, not ours to assume. Tell us how your technical department runs a week today, and we will show you where it maps.
Talk to us