Assetize

Field Guide · Start Centers

Start Centers your site can deploy this week.

22 Start Center templates across 9 industries. Each one gives you the portlets, saved queries and KPIs, with the where clauses written out, the deployment order, and what to confirm before it goes to a security group. No customisation, no automation script, no Java. Every column is checked against the MAS 9.2 data dictionary, and 13 of the KPIs ship with the product.

Any asset-intensive site

The three boards that work on every Maximo instance, whatever the industry: the supervisor's morning, the planner's backlog and the storeroom's day. Start here.

Maintenance supervisor — the morning board

For: Maintenance supervisor or team leader, first thing each shift. Answers: What is late, what is urgent, and what is waiting on me before anyone picks up a tool?

Portlets: My crew's work, overdue first (result-set); Waiting on my approval (result-set); Overdue and unapproved (kpi-graph); Inbox / Assignments (inbox); Quick Insert (quick-insert); Bulletin Board (bulletin-board).

My crew's work, overdue first — One list that answers "what is late" without a filter. Ordered by target date so the top row is the oldest promise the team has broken.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and (supervisor = :&PERSONID& or owner = :&PERSONID& or ownergroup in (select persongroup from persongroupteam where respartygroup = :&PERSONID&))

Columns: WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, TARGCOMPDATE, SCHEDSTART, LEAD. Order by targcompdate asc, wopriority asc.

Waiting on my approval — Approval queues are where planned work quietly stops. Separating them from the main list makes the delay visible and one click long.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('WAPPR') and (supervisor = :&PERSONID& or ownergroup in (select persongroup from persongroupteam where respartygroup = :&PERSONID&))

Columns: WONUM, DESCRIPTION, WORKTYPE, ESTTOTALCOST, REPORTDATE, REPORTEDBY. Order by reportdate asc.

KPIs: EMWOOVER (ships with Maximo) — Overdue Emergency Work; PMWOOVER (ships with Maximo) — Overdue PM Work; WOOPENAPPR (ships with Maximo) — Open Work Orders Waiting Approval.

Deploying it.

  1. Work Order Tracking → List tab → Advanced Search → Where Clause: paste the first clause, press Find to prove it parses, then Save Query as ZZ_SUP_LATE, tick Public.
  2. Repeat for the approval clause as ZZ_SUP_WAPPR.
  3. Start Center → Edit Layout → two columns; add Result Set, Result Set, KPI Graph, Inbox, Quick Insert, Bulletin Board.
  4. Configure each Result Set: Application, the saved query, the columns above, the order by, then Colour Options for the rules listed.
  5. KPI Graph → select EMWOOVER, PMWOOVER, WOOPENAPPR (grant them in KPI Manager first if the gauges come up empty).
  6. Save the template, then Start Center Templates → assign it to the supervisors' security group and tick "Use as default".

Before it goes live.

  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • The person-group sub-select assumes supervisors are members of the person groups that own the work; drop it if the site assigns by supervisor only.
  • KPIs refresh on the KPI cron task, not on page load: a fresh instance shows zero until the first run.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, TARGCOMPDATE, SCHEDSTART, LEAD, SUPERVISOR, OWNER, OWNERGROUP, WORKTYPE, ESTTOTALCOST, REPORTDATE, REPORTEDBY).

Planner — backlog and readiness

For: Maintenance planner, planning the coming week. Answers: Which work is ready to schedule, and what is stopping the rest?

Portlets: Approved, unscheduled work (result-set); Open work with planned materials (result-set); Planned work with no job plan (result-set); Plan quality (kpi-graph); Favorite Applications (favorite-applications).

Approved, unscheduled work — The schedulable backlog: approved, not yet given a start date. This is the queue a weekly schedule is built from.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('APPR') and schedstart is null and istask = 0

Columns: WONUM, DESCRIPTION, WOPRIORITY, WORKTYPE, ASSETNUM, LOCATION, ESTDUR, ESTLABHRS, TARGCOMPDATE. Order by wopriority asc, targcompdate asc.

Open work with planned materials — Open work orders with planned material lines. Review availability before scheduling; this query does not establish a shortage.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and exists (select 1 from wpmaterial where wpmaterial.wonum = workorder.wonum and wpmaterial.siteid = workorder.siteid)

Columns: WONUM, DESCRIPTION, STATUS, WOPRIORITY, TARGCOMPDATE, ESTMATCOST. Order by targcompdate asc.

Planned work with no job plan — Repeat work without a job plan is the backlog that never improves. Listing it is how a planner turns one-off work into a plan.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and jpnum is null and pmnum is null and istask = 0 and reportdate > :&DATE& - 90

Columns: WONUM, DESCRIPTION, WORKTYPE, ASSETNUM, ACTLABHRS, ACTTOTALCOST, REPORTDATE. Order by reportdate desc.

KPIs: PMPERF (ships with Maximo) — PM Performance; CLOSEDWNOACT (ships with Maximo) — Closed Work with no Actuals; CANCELLEDPMS (ships with Maximo) — Cancelled PM workorders in the last year.

Deploying it.

  1. Save the three where clauses as public queries on Work Order Tracking: ZZ_PLN_READY, ZZ_PLN_MATL, ZZ_PLN_NOJP.
  2. Start Center → Edit Layout → add three Result Set portlets, a KPI Graph and Favorite Applications.
  3. Point each Result Set at its query and set the columns and order by; add the colour rule on the first.
  4. Assign the template to the planners' group.

Before it goes live.

  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • The "waiting on material" clause finds work that HAS planned material; narrow it to unavailable material by joining INVBALANCES if the site reserves stock.
  • The 90-day window on the third query keeps it about current practice, not history.
  • Saved queries run inside the user's site by default; add an explicit siteid clause only when the board must cross sites and the group is granted them.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, WOPRIORITY, WORKTYPE, ASSETNUM, LOCATION, ESTDUR, ESTLABHRS, TARGCOMPDATE, SCHEDSTART, ISTASK, JPNUM, PMNUM, REPORTDATE, ACTLABHRS, ACTTOTALCOST, ESTMATCOST, SITEID); WPMATERIAL (WONUM, SITEID).

Storeroom controller — the day

For: Storeroom or inventory controller. Answers: What is below minimum, what is arriving, and what has not moved in a year?

Portlets: Below reorder point (result-set); Purchase orders due this week (result-set); No issue in twelve months (result-set); Quick Insert (quick-insert); Favorite Applications (favorite-applications).

Below reorder point — The reorder list, read straight from balances rather than waiting for the reorder cron to report it.

curbal < minlevel and minlevel > 0

Columns: ITEMNUM, LOCATION, CURBAL, MINLEVEL, MAXLEVEL, ORDERQTY, DELIVERYTIME, AVGCOST, ABCTYPE. Order by abctype asc, curbal asc.

Purchase orders due this week — What is landing, so the controller can promise a planner a date instead of a shrug.

custom('psdi.common.parse.InternalValue','POSTATUS', status) in ('APPR','INPRG') and requireddate <= :&DATE& + 7

Columns: PONUM, DESCRIPTION, VENDOR, STATUS, ORDERDATE, REQUIREDDATE, TOTALCOST. Order by requireddate asc.

No issue in twelve months — Dead stock, with its value, which is the list a stocktake and a write-off conversation start from.

curbal > 0 and (lastissuedate is null or lastissuedate < :&DATE& - 365)

Columns: ITEMNUM, LOCATION, CURBAL, AVGCOST, LASTISSUEDATE, BINNUM, ISSUEUNIT. Order by avgcost desc.

Deploying it.

  1. Save the two Inventory clauses as ZZ_INV_REORDER and ZZ_INV_DEAD (public), and the PO clause as ZZ_PO_DUE.
  2. Start Center → Edit Layout → three Result Sets, Quick Insert, Favorite Applications.
  3. Set the colour rules; A-class amber needs the site to actually populate ABCTYPE (run the ABC analysis in Inventory if it is empty).
  4. Assign to the storeroom group.

Before it goes live.

  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • CURBAL is the balance across bins for the item and storeroom; a site that counts by bin should read INVBALANCES instead.
  • The dead-stock query counts value at average cost; sites that value at last cost should use LASTCOST.
  • PO status synonyms vary more than work order ones; confirm APPR and INPRG on your instance.

Reads: INVENTORY (ITEMNUM, LOCATION, CURBAL, MINLEVEL, MAXLEVEL, ORDERQTY, DELIVERYTIME, AVGCOST, ABCTYPE, LASTISSUEDATE, BINNUM, ISSUEUNIT); PO (PONUM, DESCRIPTION, VENDOR, STATUS, ORDERDATE, REQUIREDDATE, TOTALCOST).

Utilities, power and grid

Work is organised around outage windows and network locations, and the regulator asks about inspections rather than about cost.

Outage and switching readiness

For: Outage coordinator or network controller. Answers: Is the work booked into this outage window actually ready to go?

Portlets: Work in the outage window (result-set); Outage work not ready (result-set); Assets out of service now (result-set); Bulletin Board (bulletin-board); Favorite Applications (favorite-applications).

Work in the outage window — Everything scheduled into the window, in start order, so the coordinator reads the window rather than a backlog.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and schedstart between :&DATE& and :&DATE& + 14 and downtime = 1

Columns: WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, SCHEDSTART, SCHEDFINISH, ESTDUR, CREWID, SUPERVISOR. Order by schedstart asc.

Outage work not ready — The exceptions only: in the window but missing a crew, a plan or an approval. This is the coordinator's call list.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and schedstart between :&DATE& and :&DATE& + 14 and (crewid is null or jpnum is null or custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('WAPPR'))

Columns: WONUM, DESCRIPTION, STATUS, CREWID, JPNUM, SCHEDSTART, SUPERVISOR. Order by schedstart asc.

Assets out of service now — What the network is currently missing, read from asset status rather than from memory.

status in ('NOT READY','DECOMMISSIONED')

Columns: ASSETNUM, DESCRIPTION, STATUS, LOCATION, PRIORITY, CHANGEDATE, CHANGEBY. Order by changedate desc.

Deploying it.

  1. Confirm the site records outage work with the Downtime flag (or swap the clause to the work type your site uses for outage work).
  2. Save ZZ_OUT_WINDOW, ZZ_OUT_NOTREADY on Work Order Tracking and ZZ_AST_OOS on Assets, all public.
  3. Start Center → three Result Sets, Bulletin Board, Favorite Applications; colour rules as listed.
  4. Assign to the outage coordination group; the window length (14 days) is a constant in the clause — change it to the site's planning horizon.

Before it goes live.

  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • DOWNTIME on WORKORDER is the "this work takes the asset down" flag; sites that model outages as a work type should filter on WORKTYPE instead.
  • Asset status values NOT READY and DECOMMISSIONED are stock synonyms of the ASSETSTATUS domain; check yours before saving.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, SCHEDSTART, SCHEDFINISH, ESTDUR, CREWID, SUPERVISOR, DOWNTIME, JPNUM); ASSET (ASSETNUM, DESCRIPTION, STATUS, LOCATION, PRIORITY, CHANGEDATE, CHANGEBY).

Asset health and condition watch

For: Asset or reliability engineer on a network. Answers: Which assets are degrading, and is anything being done about them?

Portlets: Lowest health scores (result-set); Active meters overdue for a reading (result-set); Condition KPIs (kpi-graph); Repeat offenders (result-set).

Lowest health scores — Asset health is a scored attribute on the asset record; sorting by it is the shortest route to the assets worth an engineer's attention.

assethealth is not null and status = 'OPERATING'

Columns: ASSETNUM, DESCRIPTION, LOCATION, ASSETHEALTH, AHHEALTHTRENDVALUE, AHRULIFE, PRIORITY, INSTALLDATE. Order by assethealth asc.

Active meters overdue for a reading — Active meters whose last recorded reading is more than 30 days old. This view identifies stale readings, not readings outside alarm limits.

active = 1 and lastreadingdate < :&DATE& - 30

Columns: ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, AVERAGE, SINCELASTINSPECT. Order by lastreadingdate asc.

Repeat offenders — Assets with several breakdowns in a year: the reliability conversation, not the maintenance one.

worktype = 'CM' and reportdate > :&DATE& - 365 and assetnum is not null

Columns: ASSETNUM, WONUM, DESCRIPTION, REPORTDATE, ACTTOTALCOST, FAILURECODE, PROBLEMCODE. Order by assetnum asc, reportdate desc.

KPIs: METERSALARMLEVEL (ships with Maximo) — Assets with Meters at Alarm Level; LOCMETERSALARMLEVEL (ships with Maximo) — Locations with meter at alarm level; AHPMWO (ships with Maximo) — Health of Assets for PM Work.

Deploying it.

  1. Confirm Asset Health is populated (Health, Predict or a scored attribute). If the site does not run it, drop the first portlet and keep the meter and repeat-offender boards.
  2. Save ZZ_AH_LOW (Assets), ZZ_AM_STALE (Assets → meters) and ZZ_CM_REPEAT (Work Order Tracking).
  3. KPI Manager: grant METERSALARMLEVEL, LOCMETERSALARMLEVEL and AHPMWO to the engineering group, then add the KPI Graph portlet.
  4. Assign the template to the reliability or asset engineering group.

Before it goes live.

  • ASSETHEALTH and the AH* attributes exist on both dictionaries but are only populated where Health / Maximo Health is in use; an empty column means the feature is not running, not that the assets are fine.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • The repeat-offender list groups by eye; a true count-per-asset needs a KPI or a report, which is the next step once the list proves useful.
  • Meter staleness thresholds (30 and 90 days) should match the inspection round's frequency.

Reads: ASSET (ASSETNUM, DESCRIPTION, LOCATION, ASSETHEALTH, AHHEALTHTRENDVALUE, AHRULIFE, PRIORITY, INSTALLDATE, STATUS); ASSETMETER (ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, AVERAGE, SINCELASTINSPECT, ACTIVE); WORKORDER (ASSETNUM, WONUM, DESCRIPTION, REPORTDATE, ACTTOTALCOST, FAILURECODE, PROBLEMCODE, WORKTYPE).

Regulatory inspection compliance

For: Compliance officer or inspection coordinator. Answers: What inspection is due, what is overdue, and what failed review?

Portlets: Inspections due and overdue (result-set); PM-driven statutory work coming due (result-set); PM compliance (kpi-graph); Favorite Applications (favorite-applications).

Inspections due and overdue — Inspection results carry their own due date and reviewer; reading that object directly beats inferring compliance from work orders.

status not in ('COMPLETED','CANCELLED') and duedate <= :&DATE& + 30

Columns: RESULTNUM, INSPFORMNUM, DESCRIPTION, ASSET, LOCATION, STATUS, DUEDATE, ASSIGNEE, REVIEWER. Order by duedate asc.

PM-driven statutory work coming due — Statutory PMs, ahead of the generation date, so the schedule is set before the clock runs out.

status = 'ACTIVE' and nextdate <= :&DATE& + 45

Columns: PMNUM, DESCRIPTION, ASSETNUM, LOCATION, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM, LEADTIME. Order by nextdate asc.

KPIs: PMPERF (ships with Maximo) — PM Performance; PMWOOVER (ships with Maximo) — Overdue PM Work.

Deploying it.

  1. Save ZZ_INSP_DUE on Inspection Results and ZZ_PM_DUE on Preventive Maintenance, both public.
  2. Start Center → two Result Sets, KPI Graph, Favorite Applications; colour rules as listed.
  3. Narrow either query to the statutory subset with the site's own marker (a classification, a work type or a PM group) — the stock clause returns everything.
  4. Assign to the compliance group.

Before it goes live.

  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • Inspection Results is the Inspections feature; sites that record statutory checks as PM work orders should keep only the second portlet.
  • INSPECTIONRESULT status values are the INSPSTATUS domain; confirm COMPLETED and CANCELLED on your instance.
  • A 45-day PM horizon suits monthly planning; annual statutory work wants a longer one.

Reads: INSPECTIONRESULT (RESULTNUM, INSPFORMNUM, DESCRIPTION, ASSET, LOCATION, STATUS, DUEDATE, ASSIGNEE, REVIEWER); PM (PMNUM, DESCRIPTION, ASSETNUM, LOCATION, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM, LEADTIME, STATUS).

Oil, gas and chemicals

Rotating equipment, safety-critical elements and turnarounds: three boards, three different clocks.

Rotating equipment watch

For: Rotating equipment or reliability engineer. Answers: Which pumps and drivers are stopped, drifting or overdue, right now?

Portlets: Pumps stopped and meters at alarm (kpi-graph); Rotating assets not running (result-set); Vibration and condition readings overdue (result-set); Emergency work with no failure data (result-set).

Rotating assets not running — The stopped list with its last change, so a stop that has quietly become permanent is visible.

isrunning = 0 and status = 'OPERATING'

Columns: ASSETNUM, DESCRIPTION, LOCATION, STATUS, ISRUNNING, CHANGEDATE, CHANGEBY, PRIORITY. Order by changedate asc.

Vibration and condition readings overdue — Condition monitoring only works if the round happens; this is the round's exception list.

active = 1 and (lastreadingdate is null or lastreadingdate < :&DATE& - 30)

Columns: ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, AVERAGE, LIFETODATE. Order by lastreadingdate asc.

Emergency work with no failure data — Breakdowns closed without a failure code cannot feed a reliability analysis; this is the list that fixes the data at source.

worktype = 'EM' and custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('COMP','CLOSE') and failurecode is null and reportdate > :&DATE& - 180

Columns: WONUM, DESCRIPTION, ASSETNUM, REPORTDATE, ACTFINISH, ACTTOTALCOST, SUPERVISOR. Order by reportdate desc.

KPIs: PUMPSCURRENTLYSTOPPED (ships with Maximo) — Pumps Currently Stopped; METERSALARMLEVEL (ships with Maximo) — Assets with Meters at Alarm Level; EMWNOFAIL (ships with Maximo) — EM Work with no Failure Data.

Deploying it.

  1. KPI Manager: PUMPSCURRENTLYSTOPPED ships with the product — confirm its query matches how the site classifies pumps (usually a classification or asset type), then grant it to the engineering group.
  2. Save ZZ_ROT_STOPPED and ZZ_ROT_NOFAIL on Assets and Work Order Tracking; ZZ_AM_OVERDUE on the meter list.
  3. Start Center → KPI Graph first (it is the summary), then the three Result Sets.
  4. Assign to the rotating equipment / reliability group.

Before it goes live.

  • PUMPSCURRENTLYSTOPPED is a stock KPI but its definition is site-shaped: open it in KPI Manager and read the SQL before trusting the number.
  • ISRUNNING is the asset's running flag; sites that drive it from a historian will see it move on its own, sites that do not will see it stay where it was set.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.

Reads: ASSET (ASSETNUM, DESCRIPTION, LOCATION, STATUS, ISRUNNING, CHANGEDATE, CHANGEBY, PRIORITY); ASSETMETER (ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, AVERAGE, LIFETODATE, ACTIVE); WORKORDER (WONUM, DESCRIPTION, ASSETNUM, REPORTDATE, ACTFINISH, ACTTOTALCOST, SUPERVISOR, WORKTYPE, FAILURECODE).

Safety-critical element backlog

For: Technical authority or HSE engineer. Answers: Is any safety-critical maintenance overdue, and for how long?

Portlets: Overdue work on safety-critical assets (result-set); Safety plans attached to open work (result-set); Deferred PMs on critical plant (result-set); Bulletin Board (bulletin-board).

Overdue work on safety-critical assets — The board a technical authority is accountable for: safety-critical work past its date, oldest first.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and targcompdate < :&DATE& and assetnum in (select assetnum from asset where priority <= 2 and siteid = workorder.siteid)

Columns: WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, TARGCOMPDATE, SUPERVISOR, WORKTYPE. Order by targcompdate asc.

Safety plans attached to open work — Whether the work carries its safety plan is visible before the job starts, not at the toolbox talk.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and schedstart <= :&DATE& + 7 and assetnum in (select assetnum from asset where priority <= 2 and siteid = workorder.siteid)

Columns: WONUM, DESCRIPTION, ASSETNUM, SCHEDSTART, JPNUM, CREWID, SUPERVISOR. Order by schedstart asc.

Deferred PMs on critical plant — A PM that keeps moving is a deferral nobody recorded; last completion against next date shows it.

status = 'ACTIVE' and nextdate < :&DATE& and assetnum in (select assetnum from asset where priority <= 2 and siteid = pm.siteid)

Columns: PMNUM, DESCRIPTION, ASSETNUM, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM. Order by nextdate asc.

Deploying it.

  1. Decide how the site marks a safety-critical element: asset priority, a classification, or a specification attribute. The clauses use ASSET.PRIORITY <= 2 — change the sub-select once and all three follow.
  2. Save ZZ_SCE_OVERDUE, ZZ_SCE_UPCOMING (Work Order Tracking) and ZZ_SCE_PMDEF (Preventive Maintenance).
  3. Start Center → three Result Sets and a Bulletin Board; assign to the technical authority group.
  4. Review the colour threshold (30 days) against the site's deferral policy.

Before it goes live.

  • Everything here depends on how safety-critical is recorded. If it is a classification, swap the sub-select for one on CLASSSTRUCTUREID; the columns and the rest of the board are unchanged.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • A safety-critical board should be read alongside the deferral register the site already keeps; it is a view, not a control.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, TARGCOMPDATE, SUPERVISOR, WORKTYPE, SCHEDSTART, JPNUM, CREWID, SITEID); ASSET (ASSETNUM, PRIORITY, SITEID); PM (PMNUM, DESCRIPTION, ASSETNUM, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM, STATUS, SITEID).

Turnaround and shutdown readiness

For: Turnaround manager. Answers: Is the shutdown scope planned, resourced and supplied, with weeks to go?

Portlets: Turnaround scope (result-set); Material on order for the window (result-set); Contracts and vendors expiring before the window (result-set); Favorite Applications (favorite-applications).

Turnaround scope — The scope as one list, with estimate and crew, which is what a readiness review reads line by line.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and schedstart between :&DATE& and :&DATE& + 60 and downtime = 1

Columns: WONUM, DESCRIPTION, STATUS, ASSETNUM, LOCATION, SCHEDSTART, SCHEDFINISH, ESTDUR, ESTLABHRS, ESTTOTALCOST, CREWID, JPNUM. Order by schedstart asc.

Material on order for the window — The supply side of readiness: what is on order and when it lands against when the job starts.

custom('psdi.common.parse.InternalValue','POSTATUS', status) in ('APPR','INPRG') and requireddate <= :&DATE& + 60

Columns: PONUM, DESCRIPTION, VENDOR, STATUS, ORDERDATE, REQUIREDDATE, TOTALCOST. Order by requireddate asc.

Contracts and vendors expiring before the window — A contractor whose contract lapses mid-shutdown is a readiness item nobody looks for.

status = 'APPR' and enddate <= :&DATE& + 90

Columns: CONTRACTNUM, DESCRIPTION, VENDOR, CONTRACTTYPE, STARTDATE, ENDDATE, TOTALCOST. Order by enddate asc.

Deploying it.

  1. Set the horizon: the clauses use 60 days for scope and supply, 90 for contracts. Change them once to the turnaround's own timeline.
  2. Save ZZ_TA_SCOPE, ZZ_TA_PO and ZZ_TA_CONTRACT as public queries.
  3. Start Center → three Result Sets plus Favorite Applications; colour rules as listed.
  4. Assign to the turnaround team; re-point the window before each event rather than building a new board.

Before it goes live.

  • Sites that model a turnaround as a scheduling project should filter on SKDPROJECT instead of a date window; the columns are unchanged.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • CONTRACT status APPR is the stock synonym; confirm yours.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, ASSETNUM, LOCATION, SCHEDSTART, SCHEDFINISH, ESTDUR, ESTLABHRS, ESTTOTALCOST, CREWID, JPNUM, DOWNTIME); PO (PONUM, DESCRIPTION, VENDOR, STATUS, ORDERDATE, REQUIREDDATE, TOTALCOST); CONTRACT (CONTRACTNUM, DESCRIPTION, VENDOR, CONTRACTTYPE, STARTDATE, ENDDATE, TOTALCOST, STATUS).

Manufacturing and plant

The line stopping is the only event that matters in the moment; the spares and the repeat offenders are what stop it happening again.

Line downtime and breakdown board

For: Plant maintenance manager or line engineer. Answers: What stopped the line, how long has it been down, and who is on it?

Portlets: Breakdowns open now (result-set); Assets stopping the line most (result-set); Breakdown quality (kpi-graph); Quick Insert (quick-insert); Bulletin Board (bulletin-board).

Breakdowns open now — The live breakdown list with elapsed time from report date: the board a plant reads standing up.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and worktype = 'EM' and downtime = 1

Columns: WONUM, DESCRIPTION, STATUS, ASSETNUM, LOCATION, REPORTDATE, ACTSTART, LEAD, SUPERVISOR, WOPRIORITY. Order by reportdate asc.

Assets stopping the line most — Six months of breakdowns by asset: the list that turns a maintenance board into an improvement plan.

worktype = 'EM' and reportdate > :&DATE& - 180 and assetnum is not null

Columns: ASSETNUM, LOCATION, WONUM, DESCRIPTION, REPORTDATE, ACTLABHRS, ACTTOTALCOST, FAILURECODE. Order by assetnum asc, reportdate desc.

KPIs: EMWNODOWN (ships with Maximo) — EM Work with no Downtime; EMWNOFAIL (ships with Maximo) — EM Work with no Failure Data; EMWOOVER (ships with Maximo) — Overdue Emergency Work.

Deploying it.

  1. Confirm the site records breakdowns as work type EM with the Downtime flag; swap both constants if it uses its own codes.
  2. Save ZZ_MFG_DOWN and ZZ_MFG_REPEAT as public queries.
  3. Start Center → two Result Sets, KPI Graph, Quick Insert, Bulletin Board.
  4. Assign to the plant maintenance group; a shared shop-floor login gets the same template as a read-only Start Center.

Before it goes live.

  • Elapsed downtime is read from REPORTDATE here because it is always populated; sites that book actual downtime should read the downtime report instead.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • EMWNODOWN and EMWNOFAIL are data-quality KPIs: a high number means the analysis further down the board is unreliable.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, ASSETNUM, LOCATION, REPORTDATE, ACTSTART, LEAD, SUPERVISOR, WOPRIORITY, WORKTYPE, DOWNTIME, ACTLABHRS, ACTTOTALCOST, FAILURECODE).

Critical spares availability

For: Maintenance engineer or storeroom planner in a plant. Answers: Is a spare that stops the line about to run out?

Portlets: Critical items below minimum (result-set); Spares reserved against open work (result-set); Long-lead items on order (result-set); Favorite Applications (favorite-applications).

Critical items below minimum — Criticality plus balance in one list: the stockouts that matter, separated from the ones that do not.

curbal <= minlevel and abctype = 'A'

Columns: ITEMNUM, LOCATION, CURBAL, MINLEVEL, ORDERQTY, DELIVERYTIME, LASTISSUEDATE, AVGCOST. Order by curbal asc.

Spares reserved against open work — What is already promised to a job, so a second job is not planned on the same part.

actualdate > :&DATE& - 30

Columns: ITEMNUM, LOCATION, QUANTITY, LINECOST, ACTUALDATE, ISSUETYPE, ASSETNUM, REFWO. Order by actualdate desc.

Long-lead items on order — Lead time against required date: the orders that will not arrive in time to matter.

custom('psdi.common.parse.InternalValue','POSTATUS', status) in ('APPR','INPRG')

Columns: PONUM, DESCRIPTION, VENDOR, ORDERDATE, REQUIREDDATE, TOTALCOST, STATUS. Order by requireddate asc.

Deploying it.

  1. ABCTYPE has to be populated for the first portlet to mean anything — run the ABC analysis in Inventory, or swap the test for the site's own criticality field.
  2. Save ZZ_SPR_CRIT (Inventory), ZZ_SPR_USE (material transactions) and ZZ_SPR_PO (Purchase Orders).
  3. Start Center → three Result Sets plus Favorite Applications.
  4. Assign to the plant engineering and storeroom groups together; both read the same board.

Before it goes live.

  • MATUSETRANS is the issue and return history, not a reservation: a site that reserves should read RESERVATION instead.
  • A-class is a value classification, not a criticality one. Where the site keeps a separate criticality flag, use it — the board is stronger for it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.

Reads: INVENTORY (ITEMNUM, LOCATION, CURBAL, MINLEVEL, ORDERQTY, DELIVERYTIME, LASTISSUEDATE, AVGCOST, ABCTYPE); MATUSETRANS (ITEMNUM, LOCATION, QUANTITY, LINECOST, ACTUALDATE, ISSUETYPE, ASSETNUM, REFWO); PO (PONUM, DESCRIPTION, VENDOR, ORDERDATE, REQUIREDDATE, TOTALCOST, STATUS).

Transport and fleet

Availability is the number, defects are the input, and servicing is driven by a meter rather than a calendar.

Fleet availability and defects

For: Fleet controller or depot manager. Answers: How many vehicles are off the road, and what is holding each one?

Portlets: Vehicles off the road (result-set); Defects reported, not yet planned (result-set); Fleet assets and their status (result-set); Quick Insert (quick-insert).

Vehicles off the road — The off-road list with the job holding each one: availability and its cause in a single read.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and downtime = 1 and assetnum is not null

Columns: ASSETNUM, WONUM, DESCRIPTION, STATUS, WOPRIORITY, REPORTDATE, SCHEDFINISH, LEAD, LOCATION. Order by reportdate asc.

Defects reported, not yet planned — Driver-reported defects that have not become scheduled work: the gap between the report and the workshop.

custom('psdi.common.parse.InternalValue','SRSTATUS', status) not in ('RESOLVED','CLOSED','CAN') and assetnum is not null

Columns: TICKETID, DESCRIPTION, STATUS, INTERNALPRIORITY, ASSETNUM, REPORTDATE, REPORTEDPRIORITY, OWNER. Order by reportdate asc.

Fleet assets and their status — The denominator: how many assets there are, so availability is a fraction rather than a feeling.

status in ('OPERATING','NOT READY')

Columns: ASSETNUM, DESCRIPTION, STATUS, LOCATION, ISRUNNING, CHANGEDATE, ASSETTYPE. Order by status asc, assetnum asc.

Deploying it.

  1. Scope all three queries to the fleet: a classification, an asset type, or the depot location. The clauses here are deliberately unscoped so the site pastes its own filter in one place.
  2. Save ZZ_FLT_OFFROAD, ZZ_FLT_DEFECTS and ZZ_FLT_ASSETS as public queries.
  3. Start Center → three Result Sets and Quick Insert.
  4. Assign to the fleet control group.

Before it goes live.

  • Availability as a percentage wants a KPI (count of off-road over count of fleet); build it in KPI Manager once the two lists agree with the depot's own count.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • SR is used for driver defects here; sites on Service Requests for everything should scope by classification.

Reads: WORKORDER (ASSETNUM, WONUM, DESCRIPTION, STATUS, WOPRIORITY, REPORTDATE, SCHEDFINISH, LEAD, LOCATION, DOWNTIME); SR (TICKETID, DESCRIPTION, STATUS, INTERNALPRIORITY, ASSETNUM, REPORTDATE, REPORTEDPRIORITY, OWNER); ASSET (ASSETNUM, DESCRIPTION, STATUS, LOCATION, ISRUNNING, CHANGEDATE, ASSETTYPE).

Meter-based servicing due

For: Fleet maintenance planner. Answers: Which vehicles are due on distance or hours, and which have not been read?

Portlets: Meters near their service interval (result-set); Meter-based PMs due (result-set); Readings entered this week (result-set); Favorite Applications (favorite-applications).

Meters near their service interval — Usage-based servicing lives in the meter, not the calendar. Last reading against average consumption is how a planner sees the next service coming.

active = 1 and lastreading is not null

Columns: ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, AVERAGE, SINCELASTINSPECT, LIFETODATE. Order by sincelastinspect desc.

Meter-based PMs due — The PMs that will generate, with their frequency unit, so a distance-based schedule is not read as a date one.

status = 'ACTIVE' and nextdate <= :&DATE& + 30

Columns: PMNUM, DESCRIPTION, ASSETNUM, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM, PMCOUNTER. Order by nextdate asc.

Readings entered this week — Proof the round is happening, by who and when — the control on the data the rest of the board rests on.

readingdate > :&DATE& - 7

Columns: ASSETNUM, METERNAME, READING, READINGDATE, INSPECTOR, MEASUREUNITID. Order by readingdate desc.

Deploying it.

  1. Save ZZ_FLT_METERS, ZZ_FLT_PMDUE and ZZ_FLT_READINGS as public queries.
  2. Start Center → three Result Sets and Favorite Applications.
  3. If the site runs meter-based PMs, the second portlet is the one to lead with; if it runs calendar PMs against usage-driven assets, keep all three and watch the gap between them.
  4. Assign to the fleet planning group.

Before it goes live.

  • A true "distance until next service" needs the PM's meter frequency, which sits on PMSEQUENCE / the PM's meter tab rather than on PM itself; this board shows the inputs and the due list, not the arithmetic.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • METERREADING has no LOCATION attribute; read location through the asset when a depot view is needed.

Reads: ASSETMETER (ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, AVERAGE, SINCELASTINSPECT, LIFETODATE, ACTIVE); PM (PMNUM, DESCRIPTION, ASSETNUM, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM, PMCOUNTER, STATUS); METERREADING (ASSETNUM, METERNAME, READING, READINGDATE, INSPECTOR, MEASUREUNITID).

Facilities, property and campus

A service desk with agreed response times, a planned-to-reactive ratio that management reads, and contracts that must not lapse.

Service desk and SLA board

For: Service desk lead in facilities or property. Answers: What is breaching, what is unowned, and what is coming in?

Portlets: Open requests against target (result-set); Unowned requests (result-set); Service agreements in force (result-set); Inbox / Assignments (inbox); Quick Insert (quick-insert).

Open requests against target — The SLA board: target finish against now, oldest first, so a breach is visible before the report says so.

custom('psdi.common.parse.InternalValue','SRSTATUS', status) not in ('RESOLVED','CLOSED','CAN')

Columns: TICKETID, DESCRIPTION, STATUS, INTERNALPRIORITY, AFFECTEDPERSON, LOCATION, REPORTDATE, TARGETFINISH, OWNER, OWNERGROUP. Order by targetfinish asc.

Unowned requests — A request with no owner is a request nobody is working. Separating them turns a queue into an assignment.

custom('psdi.common.parse.InternalValue','SRSTATUS', status) not in ('RESOLVED','CLOSED','CAN') and owner is null and ownergroup is null

Columns: TICKETID, DESCRIPTION, INTERNALPRIORITY, REPORTDATE, AFFECTEDPERSON, LOCATION, CLASS. Order by reportdate asc.

Service agreements in force — The commitments the board is measured against, so a target date has a reason behind it.

status = 'ACTIVE'

Columns: SLANUM, DESCRIPTION, OBJECTNAME, RESPONSETIME, RESOLUTIONTIME, RANKING, STARTDATE, ENDDATE. Order by ranking asc.

Deploying it.

  1. Save ZZ_SD_OPEN, ZZ_SD_UNOWNED (Service Requests) and ZZ_SLA_ACTIVE (Service Level Agreements).
  2. Start Center → three Result Sets, Inbox, Quick Insert.
  3. Set the colour rules; the unowned rule drives the daily triage.
  4. Assign to the service desk group and, read-only, to the facilities management group.

Before it goes live.

  • TARGETFINISH is populated by the SLA when one applies; requests outside any SLA have none and will sort first — add "and targetfinish is not null" if that noise is unhelpful.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • SR and TICKET carry the same attributes; a site using Incidents as well can duplicate the board against INCIDENT with no other change.

Reads: SR (TICKETID, DESCRIPTION, STATUS, INTERNALPRIORITY, AFFECTEDPERSON, LOCATION, REPORTDATE, TARGETFINISH, OWNER, OWNERGROUP, CLASS); SLA (SLANUM, DESCRIPTION, OBJECTNAME, RESPONSETIME, RESOLUTIONTIME, RANKING, STARTDATE, ENDDATE, STATUS).

Planned versus reactive balance

For: Facilities manager or head of maintenance. Answers: Is the site drifting back into reactive work, and where?

Portlets: Reactive work this quarter (result-set); Planned work this quarter (result-set); The ratio, as KPIs (kpi-graph); Favorite Applications (favorite-applications).

Reactive work this quarter — The reactive half of the ratio, by location, which is where the drift shows first.

worktype in ('CM','EM') and reportdate > :&DATE& - 90

Columns: WONUM, DESCRIPTION, WORKTYPE, LOCATION, ASSETNUM, REPORTDATE, ACTLABHRS, ACTTOTALCOST. Order by location asc, reportdate desc.

Planned work this quarter — The other half, on the same window and columns, so the two lists compare without arithmetic.

(pmnum is not null or worktype = 'PM') and reportdate > :&DATE& - 90

Columns: WONUM, DESCRIPTION, WORKTYPE, LOCATION, ASSETNUM, REPORTDATE, ACTLABHRS, ACTTOTALCOST. Order by location asc, reportdate desc.

KPIs: PMPERF (ships with Maximo) — PM Performance; CLOSEDWNOACT (ships with Maximo) — Closed Work with no Actuals; ZZ_PLANNED_RATIO (build in KPI Manager) — Planned work as a share of all work closed in the period.

Deploying it.

  1. Save ZZ_BAL_REACTIVE and ZZ_BAL_PLANNED on Work Order Tracking, same window, same columns.
  2. KPI Manager: grant PMPERF and CLOSEDWNOACT; build ZZ_PLANNED_RATIO with the SQL described if the site wants one number.
  3. Start Center → two Result Sets side by side, then the KPI Graph beneath them.
  4. Assign to the management group; a quarterly window suits a board that is read monthly.

Before it goes live.

  • The split here is "has a PM number" versus "work type CM or EM". Sites that plan work without a PM (project or corrective-planned) should widen the planned clause rather than narrow the reactive one.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • A ratio KPI is only as good as the closing discipline behind it: read CLOSEDWNOACT first.

Reads: WORKORDER (WONUM, DESCRIPTION, WORKTYPE, LOCATION, ASSETNUM, REPORTDATE, ACTLABHRS, ACTTOTALCOST, PMNUM).

Contractor and contract expiry

For: Contract or procurement manager in property and facilities. Answers: Which contracts lapse soon, and what work depends on them?

Portlets: Contracts expiring within ninety days (result-set); Contractor work in progress (result-set); Invoices outstanding (result-set); Favorite Applications (favorite-applications).

Contracts expiring within ninety days — A lapsed contract stops work quietly; ninety days is the window a renewal actually needs.

status = 'APPR' and enddate <= :&DATE& + 90

Columns: CONTRACTNUM, DESCRIPTION, VENDOR, CONTRACTTYPE, STARTDATE, ENDDATE, RENEWALDATE, TOTALCOST, AUTOEXTENDPERIOD. Order by enddate asc.

Contractor work in progress — What is being done under those contracts right now, so a renewal decision has the work in front of it.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and ownergroup is not null and worktype is not null

Columns: WONUM, DESCRIPTION, STATUS, OWNERGROUP, LOCATION, SCHEDSTART, ESTTOTALCOST, ACTTOTALCOST. Order by schedstart asc.

Invoices outstanding — The financial tail of a contract: what is billed and not paid, which is the other half of a renewal conversation.

paid = 0 and status in ('APPR','ENTERED')

Columns: INVOICENUM, DESCRIPTION, COMPANYNAME, INVOICEDATE, DUEDATE, TOTALCOST, STATUS, PONUM. Order by duedate asc.

Deploying it.

  1. Save ZZ_CON_EXPIRY (Contracts), ZZ_CON_WORK (Work Order Tracking) and ZZ_CON_INVOICE (Invoices).
  2. Start Center → three Result Sets plus Favorite Applications; colour rules as listed.
  3. Scope the contractor work portlet to the site's contractor person groups — the stock clause returns any owned work.
  4. Assign to the contract management group.

Before it goes live.

  • Contract types vary widely (purchase, lease, labour, master); CONTRACTTYPE is on the board so the reader can tell them apart before acting.
  • TOTALCOST on a contract is the contract value, not the spend to date; spend comes from the invoices below it.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.

Reads: CONTRACT (CONTRACTNUM, DESCRIPTION, VENDOR, CONTRACTTYPE, STARTDATE, ENDDATE, RENEWALDATE, TOTALCOST, AUTOEXTENDPERIOD, STATUS); WORKORDER (WONUM, DESCRIPTION, STATUS, OWNERGROUP, LOCATION, SCHEDSTART, ESTTOTALCOST, ACTTOTALCOST, WORKTYPE); INVOICE (INVOICENUM, DESCRIPTION, COMPANYNAME, INVOICEDATE, DUEDATE, TOTALCOST, STATUS, PONUM, PAID).

Water and wastewater

Managed by station and by catchment, with statutory sampling rounds that have to be recorded and reviewed, not merely done.

Pump station watch

For: Network operations controller in water or wastewater. Answers: Which stations are down or drifting, and is anyone attending?

Portlets: Stopped and alarmed (kpi-graph); Stations with open work (result-set); Location meter readings overdue (result-set); Bulletin Board (bulletin-board).

Stations with open work — Work by location, because a water network is managed by station rather than by asset.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and location is not null

Columns: LOCATION, WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, REPORTDATE, SCHEDSTART, LEAD. Order by location asc, wopriority asc.

Location meter readings overdue — Network telemetry and manual rounds both land as location meters; a stale one is a blind station.

status = 'OPERATING'

Columns: LOCATION, DESCRIPTION, STATUS, TYPE, ASSETHEALTH, FAILURECODE, CALNUM, SITEID. Order by location asc.

KPIs: PUMPSCURRENTLYSTOPPED (ships with Maximo) — Pumps Currently Stopped; METERSALARMLEVEL (ships with Maximo) — Assets with Meters at Alarm Level; LOCMETERSALARMLEVEL (ships with Maximo) — Locations with meter at alarm level.

Deploying it.

  1. Confirm PUMPSCURRENTLYSTOPPED matches how the site identifies a pump (classification, asset type or a specification) — open it in KPI Manager and read the SQL.
  2. Save ZZ_WTR_STATIONS (Work Order Tracking) and ZZ_WTR_LOC (Locations).
  3. Start Center → KPI Graph at the top, then the two Result Sets, then the Bulletin Board.
  4. Assign to the network operations group.

Before it goes live.

  • LOCATIONS has no ISRUNNING attribute: running state lives on the asset, and the location carries health and status. The board reflects that.
  • A telemetry-driven site will see meter alarms move by themselves; a manual-round site will see them move when the round happens, which is itself the signal.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.

Reads: WORKORDER (LOCATION, WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, REPORTDATE, SCHEDSTART, LEAD); LOCATIONS (LOCATION, DESCRIPTION, STATUS, TYPE, ASSETHEALTH, FAILURECODE, CALNUM, SITEID).

Network compliance and sampling

For: Compliance or water quality coordinator. Answers: Are the statutory rounds being done, recorded and reviewed?

Portlets: Inspections awaiting review (result-set); Sampling rounds due (result-set); Compliance KPIs (kpi-graph); Favorite Applications (favorite-applications).

Inspections awaiting review — A completed inspection nobody reviewed is not a completed obligation; this is the reviewer's queue.

status in ('COMPLETED','PENDINGREVIEW') and reviewer is not null

Columns: RESULTNUM, INSPFORMNUM, DESCRIPTION, ASSET, LOCATION, STATUS, STATUSDATE, ASSIGNEE, REVIEWER. Order by statusdate asc.

Sampling rounds due — The statutory round as PM work, ahead of its generation date, which is the only point at which it can still be resourced.

status = 'ACTIVE' and nextdate <= :&DATE& + 21

Columns: PMNUM, DESCRIPTION, LOCATION, ASSETNUM, NEXTDATE, FREQUENCY, FREQUNIT, ROUTE, JPNUM. Order by nextdate asc.

KPIs: PMPERF (ships with Maximo) — PM Performance; PMWOOVER (ships with Maximo) — Overdue PM Work.

Deploying it.

  1. Save ZZ_WQ_REVIEW (Inspection Results) and ZZ_WQ_ROUNDS (Preventive Maintenance).
  2. Start Center → two Result Sets, KPI Graph, Favorite Applications.
  3. Scope both to the statutory subset with the site's own marker; the stock clauses return every inspection and PM.
  4. Assign to the compliance group; give operations read-only access to the same template.

Before it goes live.

  • ROUTE on PM is how a sampling round is usually modelled; a site that uses a job plan per point will see ROUTE empty.
  • INSPECTIONRESULT status synonyms differ by release and by site; confirm COMPLETED and PENDINGREVIEW before saving the query.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.

Reads: INSPECTIONRESULT (RESULTNUM, INSPFORMNUM, DESCRIPTION, ASSET, LOCATION, STATUS, STATUSDATE, ASSIGNEE, REVIEWER); PM (PMNUM, DESCRIPTION, LOCATION, ASSETNUM, NEXTDATE, FREQUENCY, FREQUNIT, ROUTE, JPNUM, STATUS).

Mining and heavy resources

Fixed plant availability against the next shutdown window, and mobile fleet scheduled on hours with a cost-per-machine conversation behind it.

Fixed plant availability

For: Fixed plant superintendent. Answers: What is holding the plant, and what is queued behind the next shutdown?

Portlets: Plant down now (result-set); Queued for the next shutdown (result-set); Plant KPIs (kpi-graph); Bulletin Board (bulletin-board).

Plant down now — Downtime work in progress, oldest first, which is the only ordering a superintendent reads.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) not in ('COMP','CLOSE','CAN') and downtime = 1

Columns: WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, REPORTDATE, ACTSTART, CREWID, LEAD. Order by reportdate asc.

Queued for the next shutdown — The shutdown queue, with estimates, so the window is filled deliberately rather than by whoever asks last.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('APPR','WSCH') and downtime = 1 and schedstart is null

Columns: WONUM, DESCRIPTION, WOPRIORITY, ASSETNUM, ESTDUR, ESTLABHRS, ESTTOTALCOST, JPNUM, TARGCOMPDATE. Order by wopriority asc, targcompdate asc.

KPIs: EMWOOVER (ships with Maximo) — Overdue Emergency Work; PMWOOVER (ships with Maximo) — Overdue PM Work; BADACTORS (ships with Maximo) — Bad Actors - YTD Cost vs Budget.

Deploying it.

  1. Save ZZ_FP_DOWN and ZZ_FP_QUEUE on Work Order Tracking.
  2. KPI Manager: BADACTORS compares year-to-date cost with budget — confirm the site populates asset budget before putting it on a board.
  3. Start Center → two Result Sets, KPI Graph, Bulletin Board.
  4. Assign to the fixed plant group.

Before it goes live.

  • WSCH is a stock work order status synonym for "waiting to be scheduled"; sites without it should drop it from the clause.
  • BADACTORS needs ASSET.BUDGETCOST populated to mean anything; an empty budget makes every asset look like a bad actor.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.

Reads: WORKORDER (WONUM, DESCRIPTION, STATUS, WOPRIORITY, ASSETNUM, LOCATION, REPORTDATE, ACTSTART, CREWID, LEAD, DOWNTIME, ESTDUR, ESTLABHRS, ESTTOTALCOST, JPNUM, TARGCOMPDATE, SCHEDSTART); ASSET (BUDGETCOST, YTDCOST).

Mobile fleet servicing

For: Mobile maintenance planner on a mine site. Answers: Which machines are due, which are in the workshop, and what did they cost?

Portlets: Machines in the workshop (result-set); Service due by hours (result-set); Cost by machine, year to date (result-set); Favorite Applications (favorite-applications).

Machines in the workshop — What is in, since when, and who has it: the workshop board.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('INPRG') and assetnum is not null

Columns: ASSETNUM, WONUM, DESCRIPTION, ACTSTART, SCHEDFINISH, ESTDUR, ACTLABHRS, LEAD, LOCATION. Order by actstart asc.

Service due by hours — Hour meters against their last inspection, which is how mobile plant is actually scheduled.

active = 1 and lastreading is not null

Columns: ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, SINCELASTINSPECT, SINCELASTOVERHAUL, AVERAGE. Order by sincelastinspect desc.

Cost by machine, year to date — Maintenance cost per machine, which is the number a replace-or-repair conversation starts from.

status = 'OPERATING' and ytdcost > 0

Columns: ASSETNUM, DESCRIPTION, LOCATION, YTDCOST, TOTALCOST, BUDGETCOST, INSTALLDATE, ASSETTYPE. Order by ytdcost desc.

Deploying it.

  1. Save ZZ_MOB_WORKSHOP (Work Order Tracking), ZZ_MOB_HOURS (asset meters) and ZZ_MOB_COST (Assets).
  2. Start Center → three Result Sets plus Favorite Applications.
  3. Change the cost threshold in the colour rule to the site's figure before the board is assigned.
  4. Assign to the mobile maintenance group.

Before it goes live.

  • SINCELASTINSPECT and SINCELASTOVERHAUL are meter attributes that exist on both dictionaries but are only meaningful where the site resets them at service; check one machine before trusting the column.
  • YTDCOST is maintained by the cost rollup; sites that post costs outside Maximo will see it understate.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.

Reads: WORKORDER (ASSETNUM, WONUM, DESCRIPTION, ACTSTART, SCHEDFINISH, ESTDUR, ACTLABHRS, LEAD, LOCATION); ASSETMETER (ASSETNUM, METERNAME, LASTREADING, LASTREADINGDATE, SINCELASTINSPECT, SINCELASTOVERHAUL, AVERAGE, ACTIVE); ASSET (ASSETNUM, DESCRIPTION, LOCATION, YTDCOST, TOTALCOST, BUDGETCOST, INSTALLDATE, ASSETTYPE, STATUS).

Healthcare and medical equipment

Accreditation asks whether every device is within interval and every calibration was reviewed; the wards ask how fast you answer.

Medical equipment compliance

For: Healthcare technology management (HTM) or biomedical manager. Answers: Is every device within its service and calibration interval?

Portlets: Devices with PM overdue (result-set); Devices out of service (result-set); Inspections and calibrations awaiting review (result-set); Compliance KPIs (kpi-graph).

Devices with PM overdue — The accreditation question in one list: scheduled maintenance past its date, by device.

status = 'ACTIVE' and nextdate < :&DATE& and assetnum is not null

Columns: PMNUM, DESCRIPTION, ASSETNUM, LOCATION, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM. Order by nextdate asc.

Devices out of service — What clinical areas are missing, with how long it has been missing, which is the conversation with the ward.

status in ('NOT READY','DECOMMISSIONED')

Columns: ASSETNUM, DESCRIPTION, LOCATION, STATUS, SERIALNUM, MANUFACTURER, CHANGEDATE, WARRANTYEXPDATE. Order by changedate asc.

Inspections and calibrations awaiting review — A calibration that nobody signed off is not evidence; the reviewer queue is where that is fixed.

status in ('COMPLETED','PENDINGREVIEW')

Columns: RESULTNUM, INSPFORMNUM, ASSET, LOCATION, STATUS, STATUSDATE, ASSIGNEE, REVIEWER. Order by statusdate asc.

KPIs: PMPERF (ships with Maximo) — PM Performance; PMWOOVER (ships with Maximo) — Overdue PM Work.

Deploying it.

  1. Scope each query to the biomedical fleet — usually a classification or a parent location. The clauses are unscoped so the filter goes in one place.
  2. Save ZZ_HTM_PMDUE (Preventive Maintenance), ZZ_HTM_OOS (Assets) and ZZ_HTM_REVIEW (Inspection Results).
  3. Start Center → three Result Sets and a KPI Graph.
  4. Assign to the HTM / biomedical group, and give the clinical engineering lead the same template read-only.

Before it goes live.

  • Where calibration is run through the Calibration add-on, the inspection portlet should point at that data instead; the rest of the board is unchanged.
  • WARRANTYEXPDATE is on the board because a device under warranty should not be repaired in house — it is the column that stops the wrong decision.
  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.

Reads: PM (PMNUM, DESCRIPTION, ASSETNUM, LOCATION, NEXTDATE, LASTCOMPDATE, FREQUENCY, FREQUNIT, JPNUM, STATUS); ASSET (ASSETNUM, DESCRIPTION, LOCATION, STATUS, SERIALNUM, MANUFACTURER, CHANGEDATE, WARRANTYEXPDATE); INSPECTIONRESULT (RESULTNUM, INSPFORMNUM, ASSET, LOCATION, STATUS, STATUSDATE, ASSIGNEE, REVIEWER).

Clinical response and repair turnaround

For: Biomedical workshop supervisor. Answers: How fast are we answering the wards, and what is sitting in the workshop?

Portlets: Open ward requests (result-set); In the workshop (result-set); Waiting on parts (result-set); Inbox / Assignments (inbox); Quick Insert (quick-insert).

Open ward requests — Requests from clinical areas against their target, with the affected person, so a call back is possible from the board.

custom('psdi.common.parse.InternalValue','SRSTATUS', status) not in ('RESOLVED','CLOSED','CAN')

Columns: TICKETID, DESCRIPTION, STATUS, INTERNALPRIORITY, LOCATION, ASSETNUM, AFFECTEDPERSON, REPORTDATE, TARGETFINISH, OWNER. Order by internalpriority asc, reportdate asc.

In the workshop — Jobs in progress with labour booked, which is where turnaround time is either happening or not.

custom('psdi.common.parse.InternalValue','WOSTATUS', status) in ('INPRG')

Columns: WONUM, DESCRIPTION, ASSETNUM, LOCATION, ACTSTART, ACTLABHRS, LEAD, WOPRIORITY. Order by actstart asc.

Waiting on parts — Items below minimum in the biomedical storeroom: the usual reason a repair sits.

curbal <= minlevel and minlevel > 0

Columns: ITEMNUM, LOCATION, CURBAL, MINLEVEL, ORDERQTY, DELIVERYTIME, LASTISSUEDATE. Order by curbal asc.

Deploying it.

  1. Save ZZ_BIO_SR (Service Requests), ZZ_BIO_WIP (Work Order Tracking) and ZZ_BIO_PARTS (Inventory).
  2. Scope the inventory query to the biomedical storeroom location.
  3. Start Center → three Result Sets, Inbox, Quick Insert.
  4. Assign to the biomedical workshop group.

Before it goes live.

  • Status tests use the InternalValue form, which is the way IBM writes its own conditions, so a site that renamed a status synonym still matches. A plain status in ('APPR') works only where nobody renamed it.
  • The date bind (:&DATE&) is what the Conditional Expression Manager and saved queries take on the lab; some platforms want the database function instead (current date on Db2, sysdate on Oracle). Paste the clause into Advanced Search and press Find once before saving the query.
  • Turnaround time as a number wants a KPI over WORKORDER (actfinish minus reportdate on closed work in the period); build it in KPI Manager once the workshop agrees the board is right.
  • Clinical priority should come from the SLA, not from the caller: check INTERNALPRIORITY is being set by a service level agreement before colouring on it.

Reads: SR (TICKETID, DESCRIPTION, STATUS, INTERNALPRIORITY, LOCATION, ASSETNUM, AFFECTEDPERSON, REPORTDATE, TARGETFINISH, OWNER); WORKORDER (WONUM, DESCRIPTION, ASSETNUM, LOCATION, ACTSTART, ACTLABHRS, LEAD, WOPRIORITY); INVENTORY (ITEMNUM, LOCATION, CURBAL, MINLEVEL, ORDERQTY, DELIVERYTIME, LASTISSUEDATE).

The KPIs these Start Centers use

KPIWhat it countsSourceBoards
PMPERFPM Performanceships with Maximo5
PMWOOVEROverdue PM Workships with Maximo5
EMWOOVEROverdue Emergency Workships with Maximo3
METERSALARMLEVELAssets with Meters at Alarm Levelships with Maximo3
CLOSEDWNOACTClosed Work with no Actualsships with Maximo2
EMWNOFAILEM Work with no Failure Dataships with Maximo2
LOCMETERSALARMLEVELLocations with meter at alarm levelships with Maximo2
PUMPSCURRENTLYSTOPPEDPumps Currently Stoppedships with Maximo2
AHPMWOHealth of Assets for PM Workships with Maximo1
BADACTORSBad Actors - YTD Cost vs Budgetships with Maximo1
CANCELLEDPMSCancelled PM workorders in the last yearships with Maximo1
EMWNODOWNEM Work with no Downtimeships with Maximo1
WOOPENAPPROpen Work Orders Waiting Approvalships with Maximo1
ZZ_PLANNED_RATIOPlanned work as a share of all work closed in the periodbuild in KPI Manager1