평균의 함정, KPI 숫자가 목표를 달성했다는 착각

KPI를 평균 하나로 관리할 때 생기는 왜곡을 견적 완료일·납기 준수율 실무 사례로 살펴보고, 데이터를 제대로 읽는 시각을 이야기합니다.

안녕하세요, Rabbit입니다! 🐰

월말 보고서를 작성하던 어느 날이었습니다. 견적 완료일 KPI를 집계했더니 평균 6.0일. 목표는 5일이었고, 미달성으로 찍혔습니다. 그런데 데이터를 하나하나 뜯어보니 A건 3일, B건 4일, C건 5일, D건 4일 — 여기까지는 멀쩡했습니다. 문제는 E건, 외부 소재 조달이 필요했던 그 건이 14일이었거든요.

외부 업체 견적을 기다려야 하는 건은 우리가 핸들링할 수 없는 변수입니다. 그걸 포함한 평균이 목표 초과라고 해서 프로세스에 문제가 있다고 볼 수 있을까요? 이 질문에서부터 저는 평균이라는 숫자를 다르게 보기 시작했습니다.

3줄 요약
  • 평균은 이상값 하나에 크게 흔들리는 통계량입니다.
  • 이상치처럼 보이는 데이터가 사실은 ‘다른 집단’일 수 있습니다.
  • KPI 숫자가 목표를 달성했는지보다, 그 숫자가 무엇을 담고 있는지가 먼저입니다.

평균이 흔들리는 원리

평균(산술평균)은 모든 값을 더해서 개수로 나눈 숫자입니다. 직관적이고 계산하기 쉬운 덕분에 KPI 지표로 가장 많이 쓰이지만, 치명적인 약점이 하나 있습니다. 극단값에 민감하다는 것입니다.

위의 사례로 돌아가면, 3·4·5·4·14 다섯 개 값의 평균은 6.0입니다. 그런데 14를 빼면 4.0이 됩니다. 값 하나가 전체 평균을 2일이나 끌어올린 거예요. 전체 데이터의 80%는 목표 안에 들어와 있었는데도 KPI는 미달성으로 기록됩니다.

평균은 모든 구성원을 동등하게 취급합니다. 14일짜리 외부조달 건도, 3일에 끝낸 건도 같은 비중으로 계산됩니다.

외부조달 포함·제외에 따른 평균값 변화를 바 차트로 보여주는 도식 그림 1. 외부조달 포함 시 평균 6.0일(KPI 미달성) vs 제외 시 평균 4.0일(KPI 달성)

이상치인가, 다른 집단인가

14일짜리 E건을 이상치(outlier)로 보고 제거하면 될까요? 통계에서 이상치 제거는 데이터를 깨끗하게 만드는 정당한 처리 방법입니다. 하지만 제거하기 전에 먼저 물어야 할 게 있습니다.

“이 값이 측정 오류나 우연한 사고인가, 아니면 구조적으로 다른 성격의 데이터인가?”

외부 소재가 필요한 견적은 처음부터 내부 프로세스만으로는 완결되지 않는 건입니다. 외부 업체의 응답 기간, 소재 수급 상황이 납기에 직접 영향을 줍니다. 이건 이상값이 아니라 다른 집단(different population)입니다.

💡 핵심: 이상치 제거는 “같은 집단 안에서 튀는 값”에 적용합니다. 애초에 다른 성격의 데이터라면, 제거가 아니라 분리해서 각각의 KPI로 관리하는 게 맞습니다.

실무에서 우리가 내린 판단도 그랬습니다. 외부조달이 포함된 견적은 별도 집계하고, 내부 프로세스만으로 완결되는 견적을 기준으로 KPI를 측정하기로 했습니다. 이렇게 하면 두 집단 모두 의미 있는 데이터가 됩니다. 외부조달 건은 외부조달 건대로, 외부 업체 응답 속도나 수급 리드타임을 별도로 추적할 수 있으니까요.

데이터가 오염되는 또 다른 경우

견적 KPI와 비슷한 문제가 납기 준수율에서도 생깁니다. 납기 준수율은 약속한 납기일에 맞게 제품을 완성했는지를 보는 지표입니다. 그런데 현장에서는 이런 일이 생깁니다.

생산 도중 고객 요청으로 공정이 홀딩됩니다. 일주일 뒤 재개하기로 했는데, 영업사원이 시스템의 납기일을 변경하지 않았습니다. 제품은 원래 납기보다 일주일 늦게 완성됐고, 시스템에는 납기 지연으로 기록됩니다.

실제로는 고객이 직접 요청한 홀딩 때문에 늦어진 건데, 데이터에는 우리 귀책으로 남는 겁니다. 납기 준수율을 집계하면 이 건은 당연히 미달성 처리됩니다. 이건 이상치도, 다른 집단도 아닙니다. 데이터 자체가 오염된 경우입니다. 원인을 통계로 분석하기 전에, 기록 자체가 현실을 반영하고 있는지를 먼저 점검해야 합니다.

숫자를 통계적으로 아무리 잘 처리해도, 입력 데이터가 현실을 반영하지 못한다면 분석은 출발부터 어긋납니다. “Garbage in, garbage out”이라는 말이 있습니다. 데이터 품질이 확보되지 않은 상태에서 평균을 내고, 중앙값을 보고, 분포를 그려봐야 — 그 결과로 내리는 판단도 쓰레기가 됩니다.

⚠️ 주의: 평균을 믿기 전에 그 숫자를 만든 데이터가 제대로 기록됐는지를 먼저 확인해야 합니다. 통계 처리는 데이터 품질이 확보된 다음 단계입니다.

그럼 어떻게 봐야 하나

평균 대신 무조건 다른 지표를 써야 한다는 말이 아닙니다. 평균을 쓰되, 그 숫자가 어떤 데이터로 만들어졌는지를 함께 들여다보자는 겁니다.

실무에서 쓸 수 있는 접근 몇 가지를 정리하면 이렇습니다.

첫째, 집단을 먼저 나눕니다. 성격이 다른 건을 섞어서 평균 내지 않습니다. 외부조달 건과 내부 완결 건, 고객 홀딩이 있는 건과 없는 건을 구분해서 각각 집계합니다.

둘째, 중앙값을 함께 봅니다. 중앙값(median)은 전체 데이터를 순서대로 나열했을 때 정가운데 값입니다. 극단값의 영향을 거의 받지 않습니다. 3·4·4·5·14를 오름차순으로 정렬하면 3, 4, 4, 5, 14 — 가운데 값은 4입니다. 평균은 6.0인데 중앙값은 4.0입니다. 두 값이 이렇게 차이 날 때는 분포가 한쪽으로 크게 치우쳐 있다는 신호입니다. 평균만 보면 “6일짜리 프로세스”처럼 보이지만, 실제 대부분의 건은 4일 안팎에 끝나고 있는 거죠.

셋째, 분포를 확인합니다. 값들이 어떻게 퍼져 있는지를 봅니다. 최솟값·최댓값·사분위수 같은 기술통계량이나, 가능하다면 히스토그램으로 시각화합니다. 평균 하나로 요약됐을 때 보이지 않던 것들이 분포를 보면 드러납니다.

넷째, 데이터 입력 기준을 정합니다. 납기 변경 요청이 있을 때 반드시 시스템 납기일을 업데이트하는 프로세스, 외부조달 여부를 구분하는 필드 — 이런 기준이 없으면 데이터는 쌓여도 쓸 수 없습니다.

Rabbit의 한 끗

통계 수업을 들으면서 가장 먼저 배운 건 평균과 분산이었습니다. 그런데 현업에서 KPI를 다루다 보면, 수업에서 배운 것보다 훨씬 먼저 이 질문이 나옵니다. “이 숫자는 믿을 수 있는 건가?”

평균이 나쁜 지표가 아닙니다. 다만 평균 하나로 모든 걸 설명하려 할 때 문제가 생깁니다. 데이터를 제대로 읽는다는 건, 숫자를 계산하는 것보다 그 숫자가 무엇을 담고 있는지, 무엇을 숨기고 있는지를 묻는 습관에서 시작한다고 생각합니다.

통계를 다시 공부하면서 깨닫는 게 있습니다. 수식보다 먼저 필요한 건 “이 데이터가 현실을 제대로 반영하고 있나?”를 물어보는 자세라는 것. 그리고 그 질문은 교과서 밖, 현장에서 이미 하고 있었다는 것. 그걸 이제 언어로 정리하고 있는 중입니다.

KPI가 달성됐다는 숫자 앞에서, 잠깐 멈추고 한번 더 물어보세요. “이 평균, 진짜 맞는 거야?” 😎


더 읽어보기

🗺️ 이 글과 연결된 글 전체 지도 보기 →
평균의 함정 기술통계 재고 편차 상관관계 vs 인과관계
선행 관련 심화