All Docs
FeaturesBlockManOSUpdated March 15, 2026

Why PPM Scheduling Is Critical — And What's Missing

Why PPM Scheduling Is Critical — And What's Missing

Status: 🔴 Not yet implemented. This page documents the identified gap and the scope of the PPM Scheduling Engine that must be built.


What Is PPM?

Planned Preventative Maintenance (PPM) is a structured programme of scheduled inspections, servicing, and testing carried out on a development's plant, equipment, and common areas at defined intervals — before failures occur, rather than in response to them.

For a property management agent in Ireland, a PPM programme is not optional. It is a legal, insurance, and fiduciary obligation.


The Legislative Landscape in Ireland

Fire Safety

Under the Fire Services Act 1981 (as amended 2003), persons in control of premises — which includes OMC directors and their appointed managing agents — must take all reasonable measures to guard against fire. In practice, this means:

  • Six-monthly fire alarm system servicing and testing (IS 3218)
  • Annual emergency lighting inspection and testing (IS 3217)
  • Annual fire extinguisher inspection
  • Annual fire door inspection
  • Six-monthly dry/wet riser inspection

None of these can be managed ad hoc. They require a forward schedule, automated task generation, and documented completion records.

Lifts

Passenger lifts in multi-unit developments must undergo a thorough examination at least every six months (for lifts carrying persons) under the Safety, Health and Welfare at Work (General Application) Regulations 2007, Part 2 Chapter 2. Agents must hold current examination reports and act on any deficiencies within defined timeframes.

General H&S

The Safety, Health and Welfare at Work Act 2005 places a duty on those who manage workplaces (including common areas of managed developments) to maintain them in a safe condition. This is typically discharged through a documented PPM programme.

Insurance

Virtually all block insurance policies contain warranty conditions requiring the insured to maintain plant and equipment in accordance with manufacturers' recommendations and statutory requirements. Failure to maintain a PPM programme can void cover.


What the Platform Currently Has

As of v1.0.44, the platform contains no functional PPM infrastructure:

  • The maintenanceSourceEnum includes a 'ppm' value as a marker, but there is no table or logic behind it.
  • The maintenanceCategoryEnum covers trade categories (electrical, mechanical, fire, etc.) which will form the basis of PPM template categorisation — but this alone is insufficient.
  • There are no ppm_schedules, ppm_tasks, or ppm_templates tables.
  • There is no API router for PPM operations.
  • There is no UI for creating or managing PPM programmes.

This means agents currently have no way to:

  • Define a recurring maintenance programme within the platform
  • Automatically generate works orders from a schedule
  • Track what PPM is due, overdue, or completed across a portfolio
  • Produce a compliance report for a development or an OMC board

What Needs to Be Built

1. Data Model

Three new schema objects are required at minimum:

ppm_schedules Defines a named, recurring maintenance programme attached to a development (or a specific asset within it).

FieldPurpose
idPrimary key
development_idThe MUD this schedule belongs to
namee.g., Annual Lift Thorough Examination
categoryMapped to maintenanceCategoryEnum
recurrence_ruleRFC 5545 RRULE or equivalent (annual, semi-annual, quarterly, monthly)
next_due_dateComputed next task generation date
lead_daysHow many days before due date to auto-generate the works order
assigned_contractor_idDefault contractor for this schedule
is_statutoryBoolean — flags legislatively required inspections
legislative_referencee.g., IS 3218, S.I. 299/2007

ppm_tasks An instance of a scheduled task generated from a ppm_schedule.

FieldPurpose
idPrimary key
schedule_idParent schedule
due_dateSpecific due date for this task
statuspending / in_progress / completed / overdue
works_order_idLinked works order (nullable until raised)
completed_atTimestamp of verified completion
evidence_urlLink to completion certificate or report

ppm_templates Reusable schedule definitions for common inspection types that agents can apply to a new development in one click.

FieldPurpose
idPrimary key
namee.g., Semi-Annual Fire Alarm Service
categoryTrade category
default_recurrenceDefault RRULE
is_statutoryBoolean
legislative_referenceRelevant legislation or standard

2. API Router

A dedicated /ppm router must expose endpoints for:

  • GET /ppm/schedules — list all schedules for a development
  • POST /ppm/schedules — create a new schedule
  • PUT /ppm/schedules/:id — update a schedule
  • DELETE /ppm/schedules/:id — deactivate a schedule
  • GET /ppm/tasks — list generated tasks (filterable by status, due date, development)
  • POST /ppm/tasks/:id/complete — mark a task complete and attach evidence
  • GET /ppm/templates — list available PPM templates
  • POST /ppm/schedules/from-template — create a schedule from a template

3. UI Module

A PPM section within the platform must provide:

  • Schedule Manager — create, edit, and deactivate PPM programmes per development
  • Task Calendar / List — view upcoming, overdue, and completed tasks across a portfolio
  • Compliance Dashboard — percentage compliance by development, by category, and overall
  • Evidence Vault — attach and store completion certificates against each task
  • Template Library — apply pre-built statutory inspection schedules to a development

Impact of the Gap

Until the PPM Scheduling Engine is built, this platform cannot be considered fit for purpose as a primary management tool for Irish block management agents. Agents will be forced to maintain PPM programmes in external spreadsheets or third-party tools, creating data fragmentation, compliance risk, and a poor user experience that undermines the platform's core value proposition.


Resolution Timeline

This feature is tracked as critical priority. Schema design, API implementation, and UI delivery are all required. No partial workarounds are available in the current system.

Follow the Changelog for updates when this feature ships.