Zenith · CMMS

A maintenance system that tells you what it doesn't know.

Zenith is a computerized maintenance management system built for the people who have to defend its numbers. Every figure names the evidence it was computed from. Every refusal names its own reason. And where there is not enough data to answer, the screen says so instead of printing a confident zero — because a number nobody can reproduce is how a maintenance programme quietly stops being believed.

Assets · Work orders · Preventive · Parts · Safety · Reporting — bilingual EN / FR, multi-site, WCAG 2.2 AA
12 modules
One platform, one query contract, one vocabulary — and one definition of “open”
0 invented zeros
A figure with no data behind it is never shown as 0%
EN · FR
Full parity on every screen, hint, empty state and refusal — not a translation pass
Multi-site
Scope enforced in the query, not by hiding a menu item
The platform

Twelve modules, one set of records

Each module reads the same registers, so a tile on a dashboard and the row a click lands on cannot tell different stories. Open any of them for the detail — including a plain account of what each one does not do yet.

01

Asset Management

Nine kinds of knowledge on one record — the register, the engineering specification, how it fails, what you decided about each failure, and what actually happened.

Explore
02

Work Order Management

Three clocks, readiness gating and guard rails — so a job is raised, planned, done and closed without the record and the work drifting apart.

Explore
03

Service Requests

Plain-words intake, a triage queue, and a conversion gate that refuses with the blockers by name — with an append-only timeline the requester can actually follow.

Explore
04

Preventive Maintenance

Calendar and meter on one schedule, fixed or floating, with drift measured and compliance judged against the tolerance the schedule actually carries.

Explore
05

Predictive Maintenance

Condition rules that don't get muted, and a projection that publishes its fit and its point count beside every date it gives you.

Explore
06

Parts & Inventory

Balances folded from one append-only ledger, available that is not on hand, blind counts, and the parts that went out and never came back.

Explore
07

Safety

Hazards where they actually are, PPE derived rather than typed twice, and permits that are windows in time — issued by somebody who is not the holder.

Explore
08

Reports & Analytics

A report stores the question, not the answer — and every answer arrives with a receipt for what each filter removed.

Explore
09

Report Scheduler

Capture a report exactly as configured, pick a pattern, and it runs unattended on your server and arrives as a download link rather than an attachment.

Explore
10

Automation

Decision tables that name the row that decided, and workflows published as frozen versions — so a run in flight finishes under the rules it started with.

Explore
11

Integration Hub

A mapping contract designed against one real record, dry-run until it holds — over a published API contract with the client generated from it.

Explore
12

Contractors & Vendors

One compliance rule, two doors: the insurance or certification that blocks a work assignment blocks a purchase order by exactly the same test.

Explore
What makes it different

Three habits, everywhere in the product

Feature lists across this category are near-identical, so the honest way to choose between them is to look at what each system does when it is uncertain, when it has to say no, and when somebody asks where a number came from. Here is what ours does, in all three cases.

One · when it doesn't know

A blank is a different fact from a zero

PM compliance with nothing due. Mean repair time with no repair history. Hours per finished job with nothing finished. Each of those is unknown, not bad — and a printed 0% is a crisis somebody will act on, on a programme that has done nothing wrong. So the figure goes blank, and where there is room the screen says why.

  • A ratio with a zero denominator is not a low score — it is not a number, and printing one is the fastest way to lose an argument you were right about.
  • Occurrences that came due and were never done count against compliance — that single piece of arithmetic is what stops a neglected programme reporting 100%.
  • Stocked parts with no reorder point are counted and named — never quietly folded into “healthy”, which is where a shortage hides.
  • Unestimated jobs are excluded by count — because unestimated is not free, and averaging them in is how an estimate flatters itself.
Two · when it has to say no

Refused, in the words of the rule that refused it

Never “invalid”, never “an error occurred”. A job that cannot be issued, a permit that cannot be signed, a workflow that cannot publish, a report that cannot run — each comes back as sentences that name the step, the field, the part or the person. A refusal nobody understands is a refusal nobody can clear.

  • Refusals travel intact between modules — the item master's reason for blocking a part appears at the storeroom counter in the item master's own words, rather than restated and slowly drifting.
  • Codes are resolved to names — a blocker nobody recognises is a blocker nobody fixes.
  • Faults sort above shortages — a procedure whose arithmetic is impossible is wrong everywhere; a plan short of filters in Victoria is fine in Vancouver. Different problems, different owners.
  • They are checked, never cached — readiness changes the moment a certificate lapses or somebody takes the last part off the shelf.
Three · when somebody asks where it came from

Every answer shows what it started from

“Open work by site: 14” convinces nobody until it also says it began with thirty-one work orders and which filter removed which seventeen. So a report prints its receipt, and a dashboard section prints what it deliberately left out — including the rows that would have flattered it.

  • Computed live, cached never — a stored answer is a cache with an opinion about staleness, and a stale number with a confident face is worse than a slow one.
  • Exclusions are named, not dropped — “3 cancelled work orders excluded”, “1 finished corrective work without failure coding”.
  • The evidence travels with the figure — a reliability number carries what was counted and what was left out, so a challenge lands on the data rather than on the person presenting it.
  • One definition of everything — “open”, “overdue” and “available” mean the same thing on a report, a tile and the register page, because all three fold the same rows.
Who opens it on a Monday

Five people, five different pages

A home screen everybody shares is a page everybody scrolls past. Zenith composes it by role, because what a technician needs on a Monday and what a planner needs are different questions — and the product already knows which of them is signed in.

Technician

What's mine today

The jobs assigned to them, the safety facts before they walk up, the steps to record, and a way to give back what they didn't use.

Planner

What isn't ready

Work that cannot be issued yet and exactly why — a missing part, a lapsed ticket, a procedure with no steps — before it reaches a Monday morning list.

Supervisor

What's waiting on you

Approvals, stopped work, and the completion queue where a second pair of eyes closes a record the doer cannot close themselves.

Storekeeper

What's short

Every room's health on one row, what is below its line measured on available rather than on hand, and what is out on a van and never came back.

Engineer

What keeps breaking

Failure coding that adds up, bad actors ranked on hours lost with their work orders attached, and whether the preventive programme is actually preventing anything.

Enterprise foundations

The things that are hard to add later

Bilingual parity, accessibility, site scope and your own vocabulary are all cheap to build in and expensive to retrofit. They are in the foundations here rather than on a roadmap, which is why every screen has them rather than the ones somebody remembered.

Bilingual by birth

Full en-CA / fr-CA parity on every screen, hint, empty state and refusal — plurals handled properly rather than by concatenation, and the refusals translated too.

Accessible as a build rule

WCAG 2.2 AA throughout: real table and tab semantics, states announced in words, charts carrying text equivalents, and focus that moves to the field an error refers to.

Site scope that bites

Enforced in the query rather than by hiding a menu — somebody scoped to Victoria is never offered stock in Calgary, because they cannot walk to it.

Your words, everywhere

Rename Work Order, Asset, Storeroom or Permit and every heading, tab and label follows — never what a filter matches on.

Designed around ISO 55000 · Asset management ISO 14224 · Reliability data EN 13306 · Maintenance terms WCAG 2.2 AA
How we build

We publish our boundary

Every maintenance system has a line between what it does and what it is going to do. Most leave you to find it in month four. Ours is written on the screens themselves, and on every one of the module pages above — because a demo that oversells costs far more than it wins.

Why it is written down

The rules first, then the runtime

The order is deliberate. A schedule pointed at a procedure nobody checked just fails faster and more often; a rule engine that cannot say which rule fired is a mood however reliably it runs. So the part a person designs and argues with is built first, and made checkable before anything acts on it.

  • Nothing is faked to demo well — a duplicate detector over one seed dataset, or an SLA that only counts while a browser tab is open, would demo beautifully and lie.
  • Simulations are powerless on purpose — the workflow tester creates, sends and reserves nothing, and every note it writes begins with the word would.
  • The doors are already built — the run log a real dispatcher will write through exists now, so history does not restart the day transport lands.
  • You will be told, in writing, before you buy — each module page carries its own boundary, and we would rather lose a deal on it than win one and be found out in March.
Questions people actually ask

Before you book the demo

What is a CMMS, and is Zenith one?
A CMMS — a computerized maintenance management system — is the system of record for physical equipment and the work done to it: what you own, what is wrong with it, what gets done about that, what it consumed, and what it cost. Zenith is one, covering assets, work orders, service requests, preventive and predictive maintenance, parts and inventory, safety, contractors, reporting and integration. What it is for is narrower and more useful: producing a maintenance record that survives being questioned.
Who is it built for?
Organizations with real equipment, more than one site, and somebody who has to answer for the numbers — campuses and healthcare, utilities and municipalities, manufacturing and property portfolios. The design bias throughout is toward the maintenance manager defending a compliance figure in a meeting, and the technician who needs to know what can hurt them before they walk up to a machine.
Is it genuinely bilingual?
Yes, and to an unusual depth: every screen, hint, tooltip, empty state and refusal exists in en-CA and fr-CA, with plurals handled properly rather than by sticking an “s” on the end. The sentence telling a planner why a job cannot be issued is translated, not just the button above it. If you are a Canadian public-sector buyer, this is the question that usually settles a shortlist, and it is worth testing us on it hard.
Does it handle multiple sites?
Throughout, and enforced in the query rather than by hiding a menu. An enterprise view gives one row per site — open work, overdue, in progress, PM compliance — each computed by exactly the same folds the site's own dashboard uses, so the total is the sum of its parts by construction rather than by reconciliation. Pick a row and every figure on the page narrows to that site.
Can we use our own terminology?
Yes. A refinery says Work Permit, a hospital says Authorization to Work, a utility says Clearance — and whichever you use flows through headings, tabs, labels and type names. Crucially it changes only what people read, never what a filter matches on, so renaming something cannot quietly break a saved view somebody else depends on.
Does it do preventive and predictive maintenance?
Both, and they are different pages for a reason. Preventive is calendar and meter triggers on one schedule, fixed or floating, with drift measured and compliance judged against each schedule's own tolerance. Predictive is condition rules over meter readings with a least-squares projection that publishes its fit and its point count beside every date. There is no black box and no model to take on faith — the whole thing is a slope and an R², both printed.
Is there a mobile or field app?
There are field screens today — a technician's day, a scan-to-open flow, and a job page built for one hand and a cold morning — and they work in a phone browser. A packaged app with offline working is not shipped yet; it is the piece that lands with the field app, and it matters most in the plant rooms and roof spaces where signal is worst. We would rather tell you that now than have you discover it on a roof.
How does it fit with what we already run?
Through a mapping contract you design against one real record exported from the other system, dry-run until every blocker is cleared — and a published API contract with the client generated from it. There are no pre-built vendor connectors with logos on them, and we say so on the integration page rather than in the small print.
Is it accessible?
WCAG 2.2 AA as a build rule rather than an audit finding: real table and tab semantics, states announced in words rather than by colour alone, charts that carry their numbers as text beside them, and focus that moves to the field an error refers to. If accessibility is a procurement requirement, ask us to demonstrate it with a screen reader rather than to send a certificate.
What is not built yet?
The runtime half: anything that has to happen while nobody's browser is open. Scheduled workflow runs, SLA timers and escalation, email and SMS delivery, live connector transport, and durable storage with an audit history. Each module page names its own gaps in plain language — the automation page, the integration page and the safety page most of all. The Report Scheduler is the exception: it already runs unattended on your own server.
How long does it take to get going?
That depends far more on your data than on our software, and the honest first step is small: one machine, one procedure, one storeroom and one report. Model those properly — what the machine does, how it fails, what the job needs, what the shelf holds — and the shape of the rest becomes obvious. An implementation that starts with a full asset import usually spends a year importing somebody else's mistakes.
Where are you based?
Victoria, British Columbia. You will be talking to the people who built it, which is worth something when the question is “why does it do that?” rather than “can it do that?”.
See it on your own equipment

Bring the number your last system couldn't defend.

The compliance figure that changes depending on who ran it. The backlog that is forty-one in one report and thirty-eight in another. The bearing the system swears there are eleven of. Bring one of those and we will show you what it looks like when the answer arrives with its evidence attached — and what it looks like when there isn't any.

Zenith Software · Victoria, British Columbia Maintenance & asset operations, bilingual EN / FR