TGM Manager provides a comprehensive Root Cause Analysis system with support for multiple methodologies including 5 Whys and Fishbone diagrams, along with integrated CAPA (Corrective and Preventive Actions) management.

Overview

The RCA system supports:

  • Multiple Methodologies - 5 Whys, Fishbone (Ishikawa), and hybrid approaches
  • Evidence Tracking - Document evidence for each finding
  • Risk Scoring - Likelihood and impact assessment for fishbone causes
  • CAPA Integration - Create and track corrective/preventive actions
  • Task Management - Assign and track CAPA tasks
  • Dashboards - Analytics for RCA and CAPA performance

RCA Methodologies

Methodology Description
FIVE_WHYS Iterative questioning to identify root causes
FISHBONE Ishikawa diagram categorizing potential causes
HYBRID Combination of multiple methodologies
PARETO 80/20 analysis for prioritization
FAULT_TREE Logical analysis of failure paths

RCA Statuses

Status Description
DRAFT Initial creation, gathering information
IN_PROGRESS Active analysis underway
REVIEW Submitted for review
APPROVED Analysis approved, ready for action
CLOSED Analysis complete, actions verified

REST API

RCA Management

Create RCA

POST /rca
Content-Type: application/json

{
  "title": "Pump P-101 Bearing Failure Analysis",
  "description": "Investigating recurring bearing failures",
  "methodology": "FIVE_WHYS",
  "problemStatement": "Pump P-101 has experienced 3 bearing failures in the last 6 months"
}

Required Role: ADMIN, MANAGER, or OPERATOR

Create RCA from Event

POST /rca/from-event/{eventId}?methodology=FIVE_WHYS

Creates an RCA linked to an existing event record.

Create RCA from Failure

POST /rca/from-failure/{failureId}?methodology=FISHBONE

Creates an RCA linked to an existing failure record.

Update RCA Status

PATCH /rca/{rcaId}/status?status=IN_PROGRESS

Required Role: ADMIN or MANAGER

Submit for Review

POST /rca/{rcaId}/submit-review

Get RCAs by Status

GET /rca/by-status?status=IN_PROGRESS&page=0&size=20

5 Whys Analysis

The 5 Whys methodology involves asking "why" iteratively to drill down to the root cause.

Add Why Question

POST /rca/{rcaId}/five-whys
Content-Type: application/json

{
  "question": "Why did the bearing fail?",
  "answer": "The bearing was running dry without lubrication",
  "evidence": "Oil analysis showed no lubricant present in sample"
}

Response:

{
  "data": {
    "id": 1,
    "rcaId": 10,
    "whyNumber": 1,
    "question": "Why did the bearing fail?",
    "answer": "The bearing was running dry without lubrication",
    "evidence": "Oil analysis showed no lubricant present in sample",
    "isRootCause": false,
    "isVerified": false
  }
}

Get 5 Whys Chain

GET /rca/{rcaId}/five-whys

Returns the complete chain of why questions for an RCA.

Response:

{
  "data": [
    {
      "id": 1,
      "whyNumber": 1,
      "question": "Why did the bearing fail?",
      "answer": "The bearing was running dry",
      "isRootCause": false
    },
    {
      "id": 2,
      "whyNumber": 2,
      "question": "Why was the bearing running dry?",
      "answer": "The automatic lubrication system was not working",
      "isRootCause": false
    },
    {
      "id": 3,
      "whyNumber": 3,
      "question": "Why was the lubrication system not working?",
      "answer": "The lubricant reservoir was empty",
      "isRootCause": false
    },
    {
      "id": 4,
      "whyNumber": 4,
      "question": "Why was the reservoir empty?",
      "answer": "There was no scheduled refill task",
      "isRootCause": true
    }
  ]
}

Mark as Root Cause

PATCH /rca/five-whys/{fiveWhyId}/root-cause?isRootCause=true

Required Role: ADMIN or MANAGER

Verify Why Answer

POST /rca/five-whys/{fiveWhyId}/verify

Required Role: ADMIN or MANAGER

Fishbone (Ishikawa) Analysis

The Fishbone diagram categorizes potential causes into standard categories.

Fishbone Categories

Category Description
MAN People/personnel factors
MACHINE Equipment/machinery factors
METHOD Process/procedure factors
MATERIAL Materials/supplies factors
MEASUREMENT Measurement/inspection factors
ENVIRONMENT Environmental factors

Add Fishbone Cause

POST /rca/{rcaId}/fishbone
Content-Type: application/json

{
  "category": "MACHINE",
  "causeDescription": "Lubrication system failure",
  "parentCauseId": null,
  "likelihoodScore": 4,
  "impactScore": 5
}

Parameters:

Field Type Required Description
category string Yes Fishbone category
causeDescription string Yes Description of the cause
parentCauseId number No Parent cause for sub-causes
likelihoodScore integer No Likelihood (1-5)
impactScore integer No Impact (1-5)

Get Fishbone Diagram

GET /rca/{rcaId}/fishbone

Returns causes grouped by category.

Response:

{
  "data": {
    "MACHINE": [
      {
        "id": 1,
        "category": "MACHINE",
        "causeDescription": "Lubrication system failure",
        "likelihoodScore": 4,
        "impactScore": 5,
        "riskScore": 20,
        "isRootCause": true
      }
    ],
    "METHOD": [
      {
        "id": 2,
        "category": "METHOD",
        "causeDescription": "No scheduled inspection",
        "likelihoodScore": 3,
        "impactScore": 4,
        "riskScore": 12,
        "isRootCause": false
      }
    ]
  }
}

Investigate Cause

Record investigation results for a fishbone cause.

POST /rca/fishbone/{causeId}/investigate
Content-Type: application/json

{
  "investigationResult": "Confirmed - lubrication pump failed due to seized impeller",
  "isRootCause": true
}

Get High-Risk Causes

GET /rca/{rcaId}/fishbone/high-risk?minScore=9

Returns causes with risk score (likelihood x impact) above the threshold.

CAPA Management

CAPA (Corrective and Preventive Actions) are linked to RCAs to address root causes.

CAPA Types

Type Description
CORRECTIVE Fixes the current problem
PREVENTIVE Prevents future occurrences
IMPROVEMENT General improvement action

CAPA Statuses

Status Description
DRAFT Being defined
OPEN Approved and in progress
IN_PROGRESS Work actively underway
PENDING_VERIFICATION Completed, awaiting verification
VERIFIED Effectiveness verified
CLOSED Complete
CANCELLED Cancelled

Create CAPA

POST /rca/capa
Content-Type: application/json

{
  "title": "Implement Lubrication Schedule",
  "type": "PREVENTIVE",
  "actionPlan": "Create monthly lubrication inspection task",
  "dueDate": "2024-02-15",
  "assigneeId": 5,
  "priority": "HIGH"
}

Create CAPA from RCA

POST /rca/{rcaId}/capa
Content-Type: application/json

{
  "type": "CORRECTIVE",
  "title": "Replace Failed Lubrication Pump",
  "actionPlan": "Order and install new lubrication pump"
}

Update CAPA Status

PATCH /rca/capa/{capaId}/status?status=IN_PROGRESS

Verify CAPA Effectiveness

POST /rca/capa/{capaId}/verify
Content-Type: application/json

{
  "effectivenessRating": 4,
  "evidence": "No bearing failures in 3 months since implementation"
}

Parameters:

Field Type Required Description
effectivenessRating integer Yes Rating 1-5
evidence string Yes Evidence of effectiveness

Get CAPAs by Status

GET /rca/capa/by-status?status=OPEN&page=0&size=20

Get Overdue CAPAs

GET /rca/capa/overdue

Get CAPAs Due Soon

GET /rca/capa/due-soon?days=7

CAPA Tasks

Add Task to CAPA

POST /rca/capa/{capaId}/tasks?assigneeId=8
Content-Type: application/json

{
  "title": "Order replacement pump",
  "description": "Contact supplier and place order",
  "dueDate": "2024-02-01"
}

Complete CAPA Task

POST /rca/capa/tasks/{taskId}/complete
Content-Type: application/json

{
  "completionNotes": "Pump ordered, delivery expected Feb 5"
}

Dashboards

RCA Dashboard

GET /rca/dashboard

Response:

{
  "data": {
    "totalRCAs": 45,
    "byStatus": {
      "DRAFT": 5,
      "IN_PROGRESS": 12,
      "REVIEW": 3,
      "APPROVED": 8,
      "CLOSED": 17
    },
    "byMethodology": {
      "FIVE_WHYS": 25,
      "FISHBONE": 15,
      "HYBRID": 5
    },
    "avgCompletionDays": 14.5,
    "rootCausesIdentified": 38
  }
}

CAPA Dashboard

GET /rca/capa/dashboard

Response:

{
  "data": {
    "totalCAPAs": 62,
    "byStatus": {
      "OPEN": 15,
      "IN_PROGRESS": 20,
      "PENDING_VERIFICATION": 8,
      "VERIFIED": 12,
      "CLOSED": 7
    },
    "byType": {
      "CORRECTIVE": 30,
      "PREVENTIVE": 25,
      "IMPROVEMENT": 7
    },
    "overdueCount": 5,
    "dueSoonCount": 12,
    "avgEffectivenessRating": 3.8
  }
}

Enums Reference

GET /rca/enums/methodologies
GET /rca/enums/fishbone-categories
GET /rca/enums/capa-types

Usage Examples

Complete 5 Whys Analysis

# Create RCA from failure
curl -X POST "http://localhost:1337/rca/from-failure/123?methodology=FIVE_WHYS" \
  -H "Authorization: Bearer $JWT"

# Add first why
curl -X POST http://localhost:1337/rca/1/five-whys \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Why did the conveyor stop?",
    "answer": "Motor overheated and tripped",
    "evidence": "Thermal relay was triggered"
  }'

# Continue adding whys until root cause found
# ...

# Mark root cause
curl -X PATCH "http://localhost:1337/rca/five-whys/5/root-cause?isRootCause=true" \
  -H "Authorization: Bearer $JWT"

Fishbone Analysis

# Add causes to different categories
curl -X POST http://localhost:1337/rca/1/fishbone \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "MAN",
    "causeDescription": "Operator did not notice warning light",
    "likelihoodScore": 3,
    "impactScore": 4
  }'

# Get the complete diagram
curl -X GET http://localhost:1337/rca/1/fishbone \
  -H "Authorization: Bearer $JWT"

Creating CAPA Actions

# Create CAPA from RCA
curl -X POST http://localhost:1337/rca/1/capa \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "PREVENTIVE",
    "title": "Install high-temperature alarm",
    "actionPlan": "Install audible alarm connected to motor temperature sensor"
  }'

# Add tasks
curl -X POST "http://localhost:1337/rca/capa/1/tasks?assigneeId=5" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Procure temperature sensor",
    "dueDate": "2024-02-10"
  }'

Best Practices

  1. Start with clear problem statements - Define the issue precisely
  2. Gather evidence - Document findings at each step
  3. Use appropriate methodology - 5 Whys for simple issues, Fishbone for complex
  4. Score risks objectively - Use consistent criteria for likelihood/impact
  5. Create actionable CAPAs - Specific, measurable, assigned, time-bound
  6. Verify effectiveness - Follow up to confirm actions worked
  7. Learn and share - Use dashboards to identify patterns