Inspection & Test Plans (ITP), inspections, Non-Conformance Reports (NCR), CAPA, snag lists, material testing, and commissioning management.
Quality Management System (QMS) ensures construction quality through Inspection & Test Plans (ITP) that define hold/witness/review points. Inspections are conducted at each ITP checkpoint. Non-conformances raise NCRs with root cause analysis and CAPA. Snag lists track punch items before handover. Material testing records ensure compliance with specifications. Commissioning management tracks system testing and handover.
| Status | Description | Allowed Actions | Next States |
|---|---|---|---|
| Planned | ITP created, inspections scheduled | Schedule, Assign Inspector | In Progress |
| Passed | Inspection passed at checkpoint | Record, Move to Next | Completed |
| Failed | Inspection failed — NCR raised | Investigate, Assign CAPA | NCR Open |
| NCR Open | Non-conformance under investigation | Root Cause, Define CAPA | CAPA In Progress |
| CAPA In Progress | Corrective actions being implemented | Complete, Verify | Verified |
| Verified | CAPA effectiveness verified | Close NCR | Closed |
| Commissioned | System tested and handed over | Issue Certificate | — |
itp_id — PK, Inspection & Test Planproject_id — FK → project.projectitp_number, activity_description — Plan identifier and scopespecification_ref — Referenced standard (IS/BS/ASTM)inspection_type — hold | witness | reviewfrequency — per_lot | per_floor | continuousstatus — Active / Completed / Supersededinspection_id — PKitp_id — FK → qms.itpinspection_date, location — When and where inspectedresult — pass | fail | conditionalinspector_id — FK → admin.user (QA/QC engineer)client_witness — Whether client representative was presentremarks, photos_url — Observations and evidencencr_id — PK, Non-Conformance Reportproject_id — FK → project.projectinspection_id — FK → qms.inspection (optional)ncr_number, description — Issue detailsseverity — minor | major | criticalroot_cause, disposition — Analysis and decision (rework/accept/reject/repair)status — Open → CAPA → Verified → Closedsnag_id — PK, punch list itemproject_id — FK → project.projectlocation, description — Snag detailscategory — structural | finishing | MEP | externalassigned_to — FK → admin.user or subcontractortarget_date, closed_date — Resolution trackingstatus — Open → In Progress → Closedcomm_id — PKproject_id — FK → project.projectsystem_name, description — System being commissionedtest_type — pre_commissioning | commissioning | performancetest_date, result — Testing detailspunch_items_count, closed_count — Outstanding items trackingQuality team creates ITP for each activity with inspection points (Hold/Witness/Review), frequency, acceptance criteria, and referenced specifications. Client approves ITP.
At each ITP checkpoint, QA/QC engineer conducts inspection. Hold points require client witness before proceeding. Results recorded with photos and measurements.
When inspection fails, NCR raised with severity classification. Root cause analysis conducted (5-Why, Fishbone). Disposition decided: rework, use-as-is, reject, or repair.
Corrective actions defined with responsible person and target date. Preventive actions address systemic issues. CAPA effectiveness verified after implementation.
Before handover, comprehensive snag walk-through generates punch list. Snags categorized, assigned, and tracked to closure. Zero open snags required for handover certificate.
Systems tested progressively — pre-commissioning checks, commissioning tests, performance testing. Each test documented with results. Final commissioning certificate issued.
-- NCR statistics by category and severity SELECT n.severity, COUNT(*) AS total_ncrs, COUNT(CASE WHEN n.status = 'Closed' THEN 1 END) AS closed, COUNT(CASE WHEN n.status != 'Closed' THEN 1 END) AS open_ncrs, ROUND(AVG(EXTRACT(DAY FROM n.closed_date - n.created_at)), 1) AS avg_closure_days FROM qms.ncr n WHERE n.project_id = :project_id GROUP BY n.severity ORDER BY n.severity;