---
title: "MHRA Post-Market Surveillance Regulations 2025 — KYE Protocol™ coverage"
description: "MHRA Post-Market Surveillance Regulations 2025 coverage by KYE Protocol™ — every requirement bijection-mapped to the KYE™ artefact that enforces it."
url: https://kyeprotocol.com/compliance/mhra-pms-2025/
lang: en
source: "KYE Protocol"
---

> MHRA Post-Market Surveillance Regulations 2025 coverage by KYE Protocol™ — every requirement bijection-mapped to the KYE™ artefact that enforces it.

MHRA Post-Market Surveillance Regulations 2025

# MHRA Post-Market Surveillance Regulations 2025 — 100% of in-scope requirements covered.

36 requirements · 36 in scope (36 enforced). The 100% is weighted over the in-scope base.

**Source:** MHRA Post-Market Surveillance Regulations 2025 (effective June 2025) — UK Statutory Instrument amending MDR 2002 with explicit PMS obligations

## By category

| Category | Reqs | Enforced | Designed | Advisory | Deferred | Coverage |
| --- | --- | --- | --- | --- | --- | --- |
| Incident Reporting Timelines | 7 | 7 | 0 | 0 | 0 | **100%** |
| Post-Market Clinical Follow-up (Reg 8) | 4 | 4 | 0 | 0 | 0 | **100%** |
| PMS Plan (Reg 7) | 6 | 6 | 0 | 0 | 0 | **100%** |
| Post-Market Surveillance | 9 | 9 | 0 | 0 | 0 | **100%** |
| Periodic Safety Update Reports (PSURs) | 6 | 6 | 0 | 0 | 0 | **100%** |
| Trend Reporting | 4 | 4 | 0 | 0 | 0 | **100%** |

## Every requirement → the KYE™ artefact that enforces it

| ID | Title | Status | KYE™ enforcement |
| --- | --- | --- | --- |
| `mhra-pms-2025.ir.serious-incident-15-day` | Serious incident reporting within 15 days | enforced | **audit\_events**: `kye.signal.incident.opened.v1`, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **workers**: `kye-incident-detector`, `kye-reporting-worker` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.ir.death-or-serious-injury-10-day` | Death / serious health deterioration — 10-day reporting | enforced | **audit\_events**: `kye.signal.incident.opened.v1`, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **workers**: `kye-incident-detector` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.ir.public-health-threat-2-day` | Serious public-health threat — 2-day reporting | enforced | **audit\_events**: `kye.signal.incident.opened.v1`, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/25-EDGE-GOVERNANCE.md` |
| `mhra-pms-2025.ir.investigation-record` | Investigate incidents + record root cause | enforced | **audit\_events**: `kye.evidence.decision_map.v1`, `kye.evidence.trace_replay_spec.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.ir.corrective-action` | Corrective + preventive action plan after incident | enforced | **audit\_events**: `kye.signal.incident.closed.v1`, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.ir.final-report-30-day` | Final incident report within statutory window | enforced | **audit\_events**: `kye.signal.incident.closed.v1`, `kye.evidence.pack.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/30-AUDIT-WORM-RETENTION.md` |
| `mhra-pms-2025.ir.confidentiality` | Patient confidentiality maintained in incident records | enforced | **audit\_events**: `kye.data_access_evidence_event.v1` **engines**: `internal` **constitution\_refs**: `constitution/31-DATA-GOVERNANCE-PACK.md` |
| `mhra-pms-2025.pmcf.plan` | Reg 8 — Post-Market Clinical Follow-up (PMCF) plan | enforced 1 unverified citation | **audit\_events**: `kye.assurance.model_validation.v1` unverified citation, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.pmcf.real-world-performance` | Reg 8 — Real-world performance monitoring + clinical outcomes review | enforced | **audit\_events**: `kye.evidence.observed_action.v1`, `kye.signal.drift.detected.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.pmcf.benefit-risk-update` | Reg 8 — Periodic benefit-risk re-evaluation in light of PMCF data | enforced 1 unverified citation | **audit\_events**: `kye.risk_assessment.v1`, `kye.assurance.review_cycle.v1` unverified citation **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.pmcf.deviation-trigger` | Reg 8 — Trigger update to risk management when PMCF shows deviation | enforced 1 unverified citation | **audit\_events**: `kye.agency_drift.event.v1`, `kye.resilience.drift.detected.v1` unverified citation **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.plan.objectives` | Reg 7 — PMS plan must define objectives and scope per device | enforced | **audit\_events**: `kye.purpose.permission.v1`, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/12-PURPOSE-PERMISSION.md` |
| `mhra-pms-2025.plan.data-sources` | Reg 7 — Identify proactive + reactive PMS data sources | enforced | **audit\_events**: `kye.evidence.observed_action.v1`, `kye.signal.drift.detected.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.plan.indicator-thresholds` | Reg 7 — Define indicators + thresholds for triggering action | enforced | **audit\_events**: `kye.model.influence_envelope.v1`, `kye.signal.drift.detected.v1` **engines**: `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.plan.responsibilities` | Reg 7 — Designate qualified person responsible for PMS | enforced | **audit\_events**: `kye.governedui.approval.v1` **engines**: `internal` **constitution\_refs**: `constitution/36-GOVERNEDUI.md` |
| `mhra-pms-2025.plan.review-cadence` | Reg 7 — Define PMS plan review cadence (at least annual for Class IIa+) | enforced 1 unverified citation | **audit\_events**: `kye.assurance.review_cycle.v1` unverified citation, `kye.compliance.attestation.v1` **engines**: `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.plan.proportionate-to-class` | Reg 7 — PMS activities proportionate to risk class | enforced | **audit\_events**: `kye.risk_assessment.v1` **engines**: `internal`, `internal` **dictionaries**: `internal` **constitution\_refs**: `constitution/29-PROFILES-LITE.md` |
| `mhra-pms-2025.req-1` | Have a post-market surveillance system in place | enforced 1 unverified citation | **audit\_events**: `kye.compliance.attestation.v1`, `kye.resilience.drift.detected.v1` unverified citation, `kye.agency_drift.event.v1` **engines**: `internal`, `internal`, `internal` **workers**: `kye-drift-detector`, `kye-incident-detector`, `kye-reporting-worker` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.req-2` | Produce a PMS plan and undertake PMS in accordance with the plan | enforced 1 unverified citation | **audit\_events**: `kye.compliance.attestation.v1`, `kye.assurance.review_cycle.v1` unverified citation **engines**: `internal` **workers**: `kye-compliance-card-refresh` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.req-3` | Report serious incidents to MHRA | enforced | **audit\_events**: `kye.audit.event.v1`, `kye.agency_drift.event.v1` **engines**: `internal`, `internal` **workers**: `kye-incident-detector`, `kye-webhook-dispatcher` **comms\_templates**: `audit-pilot.admin-alert.v1` **constitution\_refs**: `constitution/38-COMMS-RAIL.md` |
| `mhra-pms-2025.req-4` | Investigate serious incidents and report to MHRA on conclusions | enforced 1 unverified citation | **audit\_events**: `kye.assurance.audit_replay_report.v1`, `kye.resilience.improvement.v1` unverified citation, `kye.resilience.improvement_record.v1` **engines**: `internal`, `internal` **workers**: `kye-audit-replay-orchestrator`, `kye-reporting-worker` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.req-5` | Undertake preventative and corrective actions as required | enforced | **audit\_events**: `kye.resilience.improvement_record.v1`, `kye.resilience.loop_iteration.v1`, `kye.operating_model.guard_recommendation.v1` **engines**: `internal`, `internal`, `internal` **workers**: `kye-revocation-cascade` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.req-6` | Undertake field safety corrective actions and issue field safety notices | enforced | **audit\_events**: `kye.audit.event.v1`, `kye.resilience.improvement_record.v1` **engines**: `internal`, `internal` **workers**: `kye-incident-detector`, `kye-webhook-dispatcher` **comms\_templates**: `audit-pilot.admin-alert.v1`, `audit-pilot.applicant-confirmation.v1` **constitution\_refs**: `constitution/38-COMMS-RAIL.md` |
| `mhra-pms-2025.req-7` | Conduct trend reporting of significant increases in incidents that do not require reporting | enforced 3 unverified citations | **audit\_events**: `kye.report.quarterly_drift.v1` unverified citation, `kye.report.monthly_decision_summary.v1` unverified citation, `kye.resilience.measurement_record.v1` unverified citation **engines**: `internal`, `internal` **workers**: `kye-reporting-worker` **constitution\_refs**: `constitution/20-ANALYTICS-PLANE.md` |
| `mhra-pms-2025.req-8` | Produce a PMS safety report or periodic safety update report (PSUR) | enforced 1 unverified citation | **audit\_events**: `kye.report.annual_conformance_attestation.v1` unverified citation, `kye.compliance.attestation.v1` **engines**: `internal` **workers**: `kye-reporting-worker`, `kye-compliance-card-refresh` **constitution\_refs**: `constitution/21-DELEGATED-AUDITABILITY.md` |
| `mhra-pms-2025.req-9` | Meet documentation and information provision requirements | enforced 1 unverified citation | **audit\_events**: `kye.audit.event.appended.v1` unverified citation, `kye.evidence.pack.v1` **engines**: `internal`, `internal` **workers**: `kye-audit-chain-worker`, `kye-evidence-pack-assembler` **constitution\_refs**: `constitution/30-AUDIT-WORM-RETENTION.md` |
| `mhra-pms-2025.psur.cadence-class-iia` | PSUR every 2 years for Class IIa devices | enforced 1 unverified citation | **audit\_events**: `kye.assurance.review_cycle.v1` unverified citation, `kye.compliance.attestation.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.psur.cadence-class-iib-iii` | PSUR annually for Class IIb / III devices | enforced 1 unverified citation | **audit\_events**: `kye.assurance.review_cycle.v1` unverified citation, `kye.compliance.attestation.v1` **engines**: `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.psur.content-conclusions` | PSUR conclusions section — benefit-risk + actions taken | enforced | **audit\_events**: `kye.risk_assessment.v1`, `kye.evidence.pack.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.psur.statistics` | PSUR statistical summary (usage, complaints, incident rates) | enforced | **audit\_events**: `kye.evidence.observed_action.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/20-ANALYTICS-PLANE.md` |
| `mhra-pms-2025.psur.submission-to-approved-body` | PSUR submitted to Approved Body (Class IIa-III) | enforced | **audit\_events**: `kye.compliance.attestation.v1`, `kye.comms.dispatched.v1` **engines**: `internal` **constitution\_refs**: `constitution/38-COMMS-RAIL.md` |
| `mhra-pms-2025.psur.WORM-retention-10y` | PSUR retained 10 years post-cessation of device sale | enforced | **audit\_events**: `kye.evidence.pack.v1` **engines**: `internal` **constitution\_refs**: `constitution/30-AUDIT-WORM-RETENTION.md` |
| `mhra-pms-2025.tr.statistical-trend-monitoring` | Statistical trend monitoring of non-serious incidents | enforced | **audit\_events**: `kye.signal.drift.detected.v1`, `kye.signal.stable_drift.detected.v1` **engines**: `internal` **workers**: `kye-drift-detector` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.tr.trend-report-threshold` | Trend report when frequency/severity exceeds plan threshold | enforced | **audit\_events**: `kye.signal.drift.detected.v1`, `kye.model.influence_envelope.v1` **engines**: `internal`, `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |
| `mhra-pms-2025.tr.30-day-reporting` | Trend report submission within 30 days of detection | enforced | **audit\_events**: `kye.compliance.attestation.v1` **engines**: `internal` **workers**: `kye-reporting-worker` **constitution\_refs**: `constitution/38-COMMS-RAIL.md` |
| `mhra-pms-2025.tr.update-pms-plan` | Update PMS plan in light of trend findings | enforced 1 unverified citation | **audit\_events**: `kye.assurance.review_cycle.v1` unverified citation, `kye.compliance.attestation.v1` **engines**: `internal` **constitution\_refs**: `constitution/13-RESILIENCE-LOOP.md` |

Canonical KYE™ surfaces referenced on this page: [KYE Protocol™](https://kyeprotocol.com/).
