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
maintenanceSourceEnumincludes a'ppm'value as a marker, but there is no table or logic behind it. - The
maintenanceCategoryEnumcovers 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, orppm_templatestables. - 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).
| Field | Purpose |
|---|---|
id | Primary key |
development_id | The MUD this schedule belongs to |
name | e.g., Annual Lift Thorough Examination |
category | Mapped to maintenanceCategoryEnum |
recurrence_rule | RFC 5545 RRULE or equivalent (annual, semi-annual, quarterly, monthly) |
next_due_date | Computed next task generation date |
lead_days | How many days before due date to auto-generate the works order |
assigned_contractor_id | Default contractor for this schedule |
is_statutory | Boolean — flags legislatively required inspections |
legislative_reference | e.g., IS 3218, S.I. 299/2007 |
ppm_tasks
An instance of a scheduled task generated from a ppm_schedule.
| Field | Purpose |
|---|---|
id | Primary key |
schedule_id | Parent schedule |
due_date | Specific due date for this task |
status | pending / in_progress / completed / overdue |
works_order_id | Linked works order (nullable until raised) |
completed_at | Timestamp of verified completion |
evidence_url | Link 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.
| Field | Purpose |
|---|---|
id | Primary key |
name | e.g., Semi-Annual Fire Alarm Service |
category | Trade category |
default_recurrence | Default RRULE |
is_statutory | Boolean |
legislative_reference | Relevant legislation or standard |
2. API Router
A dedicated /ppm router must expose endpoints for:
GET /ppm/schedules— list all schedules for a developmentPOST /ppm/schedules— create a new schedulePUT /ppm/schedules/:id— update a scheduleDELETE /ppm/schedules/:id— deactivate a scheduleGET /ppm/tasks— list generated tasks (filterable by status, due date, development)POST /ppm/tasks/:id/complete— mark a task complete and attach evidenceGET /ppm/templates— list available PPM templatesPOST /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.