{
  "version": "2026-08-28",
  "scope": "Ten existing catalogue products. Vendor documentation review, not hands-on performance testing or a market-wide ranking. Availability, hosting region, connector scope and plan entitlement must be confirmed in writing.",
  "products": [
    {
      "slug": "ibm-maximo",
      "name": "IBM Maximo",
      "hosting": "SaaS or client-managed",
      "self_managed": true,
      "integration": "Maximo integration framework; REST/JSON APIs and ERP master-data synchronization.",
      "ai": "Asset-condition analytics and image/video inspection across suite applications.",
      "ai_group": "analytics",
      "demo": "Use one asset with a known defect. Show the source observation, resulting work order and the separately licensed applications involved.",
      "sources": [
        [
          "Product and deployment",
          "https://www.ibm.com/products/maximo"
        ],
        [
          "Integration framework",
          "https://www.ibm.com/docs/en/masv-and-l/maximo-manage/cd?topic=applications-integration-framework-overview"
        ]
      ]
    },
    {
      "slug": "fiix",
      "name": "Fiix",
      "hosting": "Cloud",
      "self_managed": false,
      "integration": "Integration Hub connects ERP and OT systems; open API and partner connectors.",
      "ai": "Foresight work-order insights, asset insights and parts forecasting.",
      "ai_group": "analytics",
      "demo": "Supply a parts history containing a stockout and a duplicated work order. Ask which Foresight output detects each and which plan includes it.",
      "sources": [
        [
          "Cloud hosting",
          "https://fiixsoftware.com/cmms/cloud-maintenance-software/"
        ],
        [
          "Integration Hub",
          "https://fiixsoftware.com/cmms/integrations/"
        ],
        [
          "Product feature list (2025)",
          "https://fiixsoftware.com/downloads/Fiix-cmms-and-arp-feature-list.pdf"
        ]
      ]
    },
    {
      "slug": "limble",
      "name": "Limble",
      "hosting": "Cloud (AWS)",
      "self_managed": false,
      "integration": "Catalogue lists SAP S/4HANA, NetSuite, Dynamics 365, Augury and AVEVA integrations.",
      "ai": "PM Builder extracts maintenance schedules from manuals; Asset Snap reads nameplates; duplicate-request detection.",
      "ai_group": "assistant",
      "demo": "Give PM Builder a manual containing both calendar and operating-hour intervals. Check every generated interval against its source page before approval.",
      "sources": [
        [
          "Hosting documentation",
          "https://help.limblecmms.com/en/articles/3082097-is-your-cmms-solution-cloud-based-or-on-premise"
        ],
        [
          "Integration catalogue",
          "https://limble.com/integrations"
        ],
        [
          "Practical AI",
          "https://limble.com/solutions/practical-ai"
        ]
      ]
    },
    {
      "slug": "maintainx",
      "name": "MaintainX",
      "hosting": "Cloud",
      "self_managed": false,
      "integration": "API, middleware and integration services; listed connections include NetSuite, Dynamics 365, Samsara and MachineMetrics.",
      "ai": "Assist searches manuals and helps create work tasks; anomaly detection and task-time estimates are separate features.",
      "ai_group": "assistant",
      "demo": "Ask a manual-specific question with a known answer and one the manual cannot answer. Check source traceability, abstention and required human approval.",
      "sources": [
        [
          "Hosting documentation",
          "https://help.getmaintainx.com/mobile-vs-web-overview"
        ],
        [
          "Integrations",
          "https://www.getmaintainx.com/integrations"
        ],
        [
          "AI documentation",
          "https://help.getmaintainx.com/ai-basics"
        ]
      ]
    },
    {
      "slug": "upkeep",
      "name": "UpKeep",
      "hosting": "Cloud SaaS",
      "self_managed": false,
      "integration": "Open API, Zapier and connectors to business systems; sensor workflows through the broader platform.",
      "ai": "Nova structures technician notes, drafts PM checklists and performs scheduled data audits.",
      "ai_group": "assistant",
      "demo": "Use a technician role to request a restricted asset record and draft a work order. Verify permissions, review controls and an audit trail.",
      "sources": [
        [
          "CMMS and hosting",
          "https://upkeep.com/product/cmms-software/"
        ],
        [
          "Nova capabilities",
          "https://upkeep.com/product/nova/"
        ]
      ]
    },
    {
      "slug": "emaint",
      "name": "eMaint",
      "hosting": "Cloud SaaS",
      "self_managed": false,
      "integration": "REST API, Connect2Assets, SAP/Oracle connections and Fluke sensor or SCADA-triggered work orders.",
      "ai": "Specific native AI feature not established by the sources reviewed here. A sensor threshold triggering work is not itself evidence of AI.",
      "ai_group": "unverified",
      "demo": "Trigger a known sensor threshold, then send it again. Verify one actionable work order, asset identity and ERP cost-centre mapping.",
      "sources": [
        [
          "SaaS description",
          "https://www.emaint.com/resources/white-papers/what-you-need-know-about-web-based-maintenance-management"
        ],
        [
          "Integration documentation",
          "https://www.emaint.com/emaint-integrations"
        ]
      ]
    },
    {
      "slug": "brightly-assetessentials",
      "name": "Brightly Asset Essentials",
      "hosting": "Cloud",
      "self_managed": false,
      "integration": "Published API; Connector Tool and Smart Assets are documented as add-on purchase features.",
      "ai": "Enterprise documentation lists Maintenance Copilot, work-order summarization and duplicate-work-order detection.",
      "ai_group": "assistant",
      "demo": "Present two differently worded requests for the same asset fault. Check duplicate detection and obtain the Enterprise/add-on entitlement in writing.",
      "sources": [
        [
          "Product documentation and entitlements",
          "https://help.brightlysoftware.com/Content/Documentation/Maintenance/Asset%20Essentials/Asset%20Essentials.htm"
        ],
        [
          "Integration and API information",
          "https://www.brightlysoftware.com/en-au/products/integrations"
        ]
      ]
    },
    {
      "slug": "llumin",
      "name": "LLumin CMMS+",
      "hosting": "Cloud",
      "self_managed": false,
      "integration": "Vendor lists SAP, Oracle, Dynamics, OPC UA, MQTT and an edge gateway option.",
      "ai": "Vendor describes machine-learning predictive maintenance alongside sensor-driven monitoring; model performance is not evaluated here.",
      "ai_group": "analytics",
      "demo": "Replay the same machine event during a network interruption and after reconnecting. Check event buffering, timestamps and duplicate suppression.",
      "sources": [
        [
          "Product feature overview",
          "https://llumin.com/llumins-cmms-features-for-all-of-your-maintenance-needs-llu/"
        ],
        [
          "Integration architecture",
          "https://llumin.com/blog/cmms-integration-streamline-in-90-days/"
        ]
      ]
    },
    {
      "slug": "mpulse",
      "name": "MPulse",
      "hosting": "Cloud-hosted or local install",
      "self_managed": true,
      "integration": "DataLink Integration Adapter connects production and enterprise data, including PLC/SCADA and ERP systems.",
      "ai": "Specific native AI feature not established by the sources reviewed here. Condition-based rules and AI models are different capabilities.",
      "ai_group": "unverified",
      "demo": "Run a meter-based PM and a calendar PM on the same asset. Demonstrate local operation and list any services that still need internet access.",
      "sources": [
        [
          "Purchase and deployment options",
          "https://mpulsesoftware.com/software/purchase-deployment/"
        ],
        [
          "Manufacturing integrations",
          "https://mpulsesoftware.com/about-us/industries/manufacturing-maintenance-software/"
        ]
      ]
    },
    {
      "slug": "maintenance-connection",
      "name": "Maintenance Connection",
      "hosting": "SaaS or on-premises",
      "self_managed": true,
      "integration": "Integration hub and open API connect ERP, SCADA, ArcGIS, document and other enterprise systems.",
      "ai": "The reviewed product page describes an AI-ready data foundation, not a specific native AI feature demonstrated in this review.",
      "ai_group": "unverified",
      "demo": "Export one asset with attachments, history and part transactions. Restore the relationships in a test system and inspect the migration effort.",
      "sources": [
        [
          "Product, integration and deployment options",
          "https://www.accruent.com/products/maintenance-connection"
        ]
      ]
    }
  ],
  "requirements": [
    {
      "id": "hosting",
      "requirement": "Hosting and exit",
      "test": "Name hosting region, subcontractors, backup owner and recovery objectives. Export assets, work orders, attachments and IDs.",
      "acceptance": "Written hosting terms; a usable linked export; restoration demonstrated."
    },
    {
      "id": "integration",
      "requirement": "ERP and OT integration",
      "test": "Create, update and replay one event in both systems. Disconnect the link and reconnect. Include units and timezone.",
      "acceptance": "Correct mappings, retries and audit trail; no lost or duplicated transactions."
    },
    {
      "id": "offline",
      "requirement": "Offline field work",
      "test": "Load an assigned work order, disconnect the device, add readings and a photo, then reconnect after another user edits it.",
      "acceptance": "Documented offline scope and conflict handling; no silent overwrite."
    },
    {
      "id": "pm",
      "requirement": "Preventive maintenance",
      "test": "Schedule one calendar PM and one runtime PM. Record a missed interval and a deferred task.",
      "acceptance": "Correct next due date and meter units; visible exception and approval history."
    },
    {
      "id": "ai",
      "requirement": "AI output review",
      "test": "Use a manual with known answers and an unanswerable question. Check numerical units, citations and approval before writing data.",
      "acceptance": "Traceable sources; errors identified; human approval; permissions enforced."
    },
    {
      "id": "parts",
      "requirement": "Parts and costs",
      "test": "Reserve, issue and return a part against a work order. Post labour and cost to the ERP.",
      "acceptance": "Inventory balance reconciles; cost codes and currency match; no double posting."
    },
    {
      "id": "access",
      "requirement": "Access and audit",
      "test": "Try technician, contractor and administrator accounts on the same restricted asset and closed work order.",
      "acceptance": "Least-privilege access and attributable changes; exportable audit records."
    },
    {
      "id": "commercial",
      "requirement": "Total quoted scope",
      "test": "Request the same user count, sites, connectors, storage, support, implementation and AI modules from each supplier.",
      "acceptance": "Itemized recurring and one-time charges; documented limits, renewal and exit terms."
    }
  ]
}
