← 인사이트 목차
가이드EN한국어

SPI·CPI 계산법: EVM 입문

PV·EV·AC 세 값에서 SPI·CPI를 계산하고 해석하는 법. 예제 표와 함께 SPI를 그대로 믿으면 안 되는 두 경우도 정리했다.

발행 ·7분

PV·EV·AC 세 막대가 나란히 서 있고 EV 막대가 PV보다 낮아 지연을, AC보다 낮아 비용 초과를 보이는 개념도. 우측에 SPI = EV / PV와 CPI = EV / AC 수식 카드가 놓여 있다.

SPI는 일정 성과, CPI는 비용 성과를 하나의 숫자로 답한다. 공식은 각각 SPI = EV / PV, CPI = EV / AC다. 1보다 작으면 계획보다 뒤처졌거나 더 썼다는 뜻이고, 1이면 계획대로다. "80%쯤 됐습니다"라는 보고를 "SPI 0.86"으로 바꾸는 것이 EVM(Earned Value Management)의 목적이다.

SPI·CPI가 답하는 질문

두 지표는 서로 다른 질문에 답한다. SPI는 "계획한 속도로 가고 있는가"에, CPI는 "계획한 비용으로 하고 있는가"에 답한다. 둘 다 1을 기준으로 읽으니, 회의에서 "지금 0.86입니다"라고만 말해도 상태가 전달된다. 진척 보고를 퍼센트에서 지표로 바꾸는 이유가 여기에 있다.

한 가지 주의할 점이 있다. 두 지표는 원인을 알려 주지 않는다. 0.86이 왜 나왔는지는 지표가 아니라 그 아래 작업별 기여분을 봐야 안다. 이 글에서는 세 값(PV·EV·AC)으로 두 지표를 손으로 계산해 보고, 그 숫자를 어떻게 읽는지, 어느 작업이 그 숫자를 만들었는지까지 따라간다. 표의 숫자는 그대로 검산할 수 있다.

먼저 PV·EV·AC 세 값

  • PV(Planned Value). 오늘까지 계획상 완료됐어야 할 가치다. 베이스라인에서 나온다.
  • EV(Earned Value). 오늘까지 실제로 완료한 가치다. 현재 진척률에서 나온다.
  • AC(Actual Cost). 오늘까지 실제로 투입한 비용이다. 회계·공수 실적에서 나온다.

여기서 "가치"를 무엇으로 재느냐가 실무의 갈림길이다. 정식 EVM은 각 작업에 예산(BAC, Budget at Completion)을 배정해 금액으로 계산한다. 비용 데이터가 없는 조직은 가중치(weight)를 가치 대신 쓴다. 작업의 상대적 크기를 100으로 나눠 갖는 방식이다.

가중치 방식에는 알아 둘 성질이 하나 있다. BAC가 금액이 아니라 100이 되므로 SPI를 계산할 때 단위가 서로 상쇄된다. 비용 데이터가 없어도 SPI는 계산할 수 있다는 뜻이다. 반면 CPI는 AC가 있어야 하므로 비용 데이터 없이는 나오지 않는다. "간이 EVM은 SPI 중심"이라는 실무 관행이 이 비대칭에서 나왔다.

SPI를 직접 계산해 보자

작업 5개, 가중치 합이 100인 프로젝트를 예로 든다. 오늘 기준으로 각 작업의 계획 진척률(베이스라인 시작~종료 사이의 경과 비율)과 실제 진척률을 나란히 놓는다.

작업가중치계획 진척실제 진척PV 기여EV 기여
요구사항 정의20100%100%20.020.0
기본 설계20100%100%20.020.0
상세 설계1580%60%12.09.0
개발3040%20%12.06.0
테스트150%0%0.00.0
합계10064.055.0

각 행의 기여분은 가중치 × 진척률이다. 예를 들어 개발은 30 × 0.40 = 12.0(PV), 30 × 0.20 = 6.0(EV).

  • SPI = EV / PV = 55.0 / 64.0 = 0.86
  • SV (Schedule Variance) = EV − PV = 55.0 − 64.0 = −9.0 %p

읽는 법은 이렇다. 계획대로라면 지금 64%를 벌었어야 하는데 55%를 벌었다. 진척이 계획의 86% 속도로 가고 있다는 뜻이다.

어느 작업이 문제인지는 표에 이미 나와 있다. 상세 설계(−3.0)와 개발(−6.0)이 부족분 −9.0을 전부 만들었다. 전체 SPI 하나만 보는 것보다, 작업별 기여분을 세워 놓고 큰 음수부터 확인하는 편이 다음 행동으로 이어진다.

CPI도 같은 방식으로 계산한다

CPI는 같은 EV를 비용과 비교한다. 위 프로젝트의 총예산(BAC)이 10억 원이고 오늘까지 실제로 6.2억 원을 썼다고 하자. 진척이 55%이므로 EV는 금액으로 5.5억 원이다.

금액근거
BAC (총예산)10.0억계획
PV6.4억BAC × 계획 진척 64%
EV5.5억BAC × 실제 진척 55%
AC (실제 투입)6.2억회계 실적
  • CPI = EV / AC = 5.5 / 6.2 = 0.89
  • CV (Cost Variance) = EV − AC = 5.5 − 6.2 = −0.7억
  • EAC (Estimate at Completion) = BAC / CPI = 10.0 / 0.89 = 약 11.2억

읽는 법은 이렇다. 1원어치 일을 하는 데 1.12원을 쓰고 있다. 이 효율이 끝까지 이어지면 총비용은 11.2억이 된다. 계획보다 1.2억이 더 든다.

주의할 점이 있다. CPI·CV·EAC는 모두 AC가 있어야 계산된다. 비용 실적을 프로젝트 관리 도구가 아니라 회계 시스템이 갖고 있는 조직에서는 이 지표들이 자동으로 나오지 않는다. wbsgantt도 아직 비용 데이터를 다루지 않아서 SPI만 계산하고 CPI는 제공하지 않는다. 위 계산은 개념 설명이고, 비용 지표는 회계 데이터와 함께 따로 산출해야 한다.

해석 기준은 0.9와 1.1 사이

지표는 소수점 하나하나가 아니라 구간으로 읽는다.

상태행동
0.90 미만유의미한 지연·초과원인 작업을 찾아 만회 계획이나 변경 요청으로
0.90 ~ 0.95경고다음 2주 추세 확인, 크리티컬 패스 위 작업인지 점검
0.95 ~ 1.05사실상 온플랜조치 없음 (측정 오차 범위)
1.05 ~ 1.10앞섬진척 산정이 관대하지 않은지 역검증
1.10 초과의심대개 진척률 과대 보고이거나 베이스라인이 느슨하다

마지막 줄이 중요하다. SPI가 너무 좋게 나오면 계획이나 측정을 의심하는 것이 정상이다. 실무에서 1.2가 나오는 프로젝트는 대개 잘하고 있는 것이 아니다. 진척률을 후하게 매겼거나 베이스라인에 여유가 과하게 들어가 있다.

하나 더 있다. 값보다 추세가 중요하다. 3주 연속 0.92라면 관리되고 있는 상태지만, 0.98에서 0.95를 거쳐 내려온 0.92는 같은 값이라도 뜻이 다르다.

진척률을 정직하게 만드는 규칙

SPI를 믿을 수 있는지는 EV를 믿을 수 있는지에 달려 있고, EV는 진척률을 얼마나 정직하게 매겼는지에 달려 있다. "80% 완료"가 8주 동안 80%에 머무는 이유는 '80% 완료'라는 거짓말에서 따로 다뤘다. 여기서는 처방만 정리한다.

  • 0/50/100 규칙. 시작 전은 0%, 착수했으면 50%, 완료해서 인수됐으면 100%. 그 사이 숫자는 만들지 않는다. 짧은 작업에 특히 잘 듣는다.
  • 물리적 측정. "화면 12개 중 7개 완료 = 58%"처럼 셀 수 있는 단위로 센다. 감으로 매긴 퍼센트를 쓰지 않는 것이 핵심이다.
  • 완료 기준 먼저. 진척률을 입력하기 전에 그 작업의 완료 기준이 정해져 있어야 한다. 기준이 없으면 100%인지 아닌지 판정할 사람이 없다.
  • 85% 상한. 인수·검수가 남은 작업은 95%나 99%로 올리지 않는다. 마지막 15%에 실제로는 절반의 시간이 들어간다.

이 규칙들은 모두 PM의 재량을 줄인다. 재량이 있는 자리에 낙관이 들어오고, 낙관이 섞인 EV로 계산한 SPI는 위험을 감춘다.

SPI를 믿을 수 없게 되는 2가지 경우

첫째, 베이스라인이 없거나 오래됐다. PV는 베이스라인에서 나온다. 베이스라인이 없으면 PV가 없고, SPI는 계산할 수 없다. 더 흔한 함정은 변경을 반영하지 않은 낡은 베이스라인이다. 범위가 늘었는데 기준선이 그대로면 SPI는 실제보다 나쁘게 나온다. 반대로 기준선을 슬쩍 다시 세웠다면 지연이 통계에서 사라진다. 이 문제의 본질은 일정이 밀린 게 아니라, 기준이 사라진 것이다에 적었다.

둘째, 가중치가 왜곡돼 있다. 가중치 방식에서 EV와 PV는 전부 weight에 비례한다. 형제 합이 100이 아니거나 큰 작업에 작은 가중치가 붙어 있으면 SPI는 티 나지 않게 틀린다. 전체 공수의 절반을 차지하는 개발 작업에 가중치가 10만 붙어 있다고 해 보자. 그 작업이 통째로 지연돼도 SPI는 0.95 근처에 머문다. 그래서 가중치 검증은 SPI를 보기 전에 끝나 있어야 한다.

프로젝트가 실제로 SPI로 경고를 받은 장면도 하나 기록해 두었다. 실행 7주차에 SPI 0.84가 먼저 눈에 띄었고, S-Curve와 지연 상위 목록을 따라 원인 작업까지 내려간 과정이 그 ERP 프로젝트, 실행 7주차에 밀리기 시작했다에 있다.

다음에 읽을 것

SPI를 보려면 그 앞에 3가지가 갖춰져 있어야 한다. 가중치가 검증된 WBS, 승인된 베이스라인, 정직하게 입력한 진척률이다.

wbsgantt는 이 셋을 전제로 SPI를 자동 계산한다. 가중치는 형제 합이 100이 되도록 채워 주고, 어긋나면 위반 배지로 알린다. 베이스라인은 불변 스냅샷으로 남고, PV는 베이스라인 일정을 달력일 기준으로 선형 보간해 산출한다. 화면에는 SPI 카드와 함께 계획(PV)·실적(EV) S-Curve, 지연 기여가 큰 작업 목록이 나란히 놓인다. 숫자 하나를 보여 주는 데서 그치지 않고 원인 작업까지 내려가는 것이 목적이다. 비용 지표(CPI·EAC)는 비용 baseline이 들어오는 단계에서 다룰 주제로 남겨 두었다.

자주 묻는 질문

SPI가 1.0이면 정상인가요?
계획 대비 속도가 정확히 맞다는 뜻이지만, "정상"은 계획의 품질에 달려 있습니다. 느슨한 베이스라인 위에서 1.0은 좋은 신호가 아닙니다. 또 SPI는 일정 성과만 말하므로 비용이 초과되고 있어도 1.0이 나올 수 있습니다. 값 하나보다 추세(3주 이동)를 함께 보십시오.
SPI와 CPI 중 무엇을 먼저 봐야 하나요?
대개 SPI입니다. 일정 지연이 비용 초과보다 먼저 드러나고, 만회 조치의 선택지도 더 많습니다. 다만 둘의 조합이 진짜 정보입니다. SPI<1·CPI<1은 계획 자체가 낙관적이었다는 신호이고, SPI<1·CPI>1은 자원 투입이 부족한 상태(사람을 덜 붓고 있다)를 뜻합니다.
베이스라인 없이 SPI를 계산할 수 있나요?
할 수 없습니다. PV는 베이스라인 일정에서만 나오기 때문입니다. 현재 계획을 기준으로 계산하면 계획을 바꿀 때마다 PV가 함께 움직여 지연이 통계에서 사라집니다. 베이스라인을 불변 스냅샷으로 남겨야 하는 이유가 이것입니다.
SV와 SPI는 어떻게 다른가요?
같은 차이를 다르게 표현한 값입니다. SV = EV − PV는 절대량(예제에서 −9.0%p), SPI = EV / PV는 비율(0.86)입니다. 절대량은 규모 감각을 주고 비율은 프로젝트 간·기간 간 비교에 쓰기 좋습니다. 보고에는 둘을 함께 쓰는 것이 안전합니다.
EAC는 어떻게 구하나요?
가장 단순한 형태는 EAC = BAC / CPI로, 현재의 비용 효율이 끝까지 유지된다고 가정합니다. 원인이 일회성이었다면 EAC = AC + (BAC − EV)를 쓰고, 일정·비용 성과가 함께 나쁘면 EAC = AC + (BAC − EV) / (CPI × SPI) 같은 보수적 공식을 씁니다. 어느 쪽이든 AC가 필요하므로 비용 실적 없이는 산출되지 않습니다.