매출의 구조, 매출 분해의 힘
1. 매출의 구조, 매출 분해의 힘
3장에서 질문하는 법과 검증하는 법을 익혔습니다. 이제 그 기본기를 가지고 비즈니스 분석으로 들어갑니다. 첫 주제는 매출입니다. "매출이 줄었어요. 왜죠?"라는 질문에 답하려면 매출이라는 하나의 숫자를 쪼개야 합니다. 여기서는 그 쪼개는 방법을 배웁니다.
1.1 매출이 줄어드는 두 가지 이유
식당으로 생각해 봅시다. 어느 식당의 하루 매출이 줄었습니다. 원인은 둘 중 하나입니다.
- 손님이 줄었나: 어제 100명이 왔는데 오늘 70명이 왔습니다. 처방은 홍보와 마케팅입니다.
- 1인당 덜 썼나: 한 사람이 2만 원을 쓰다가 1만 5천 원만 씁니다. 처방은 메뉴 구성과 객단가입니다.
둘 중 무엇이냐에 따라 해야 할 일이 완전히 달라집니다. 손님이 줄었는데 메뉴를 손보거나, 덜 쓰는데 광고를 늘리면 돈만 쓰고 효과는 없습니다. 그래서 "매출이 줄었다"만으로는 아무것도 결정할 수 없습니다. 무엇 때문에 줄었는지를 알아야 합니다.
1.2 거래 수와 객단가의 곱
매출은 두 요인의 곱입니다.
매출 = 거래 수 × 객단가
- 거래 수: 몇 번 팔렸는가, 곧 주문 건수입니다.
- 객단가: 한 번에 평균 얼마치 샀는가, 곧 매출을 거래 수로 나눈 값입니다.
예를 들어 매출 1,000만 원은 거래 200건에 객단가 5만 원의 결과입니다. 우리 데이터도 마찬가지입니다. 총매출 184,206,000원은 주문 3,567건에 객단가 51,642원을 곱한 값입니다.
분해하면 원인이 보입니다. 똑같이 200만 원이 줄어도 원인은 다를 수 있습니다.
| 구분 | 거래 수 | 객단가 | 매출 | 무슨 일이 있었나 |
|---|---|---|---|---|
| 원래 | 200건 | 5만 원 | 1,000만 원 | |
| 경우 1 | 160건 | 5만 원 | 800만 원 | 손님(거래)이 줄었다 |
| 경우 2 | 200건 | 4만 원 | 800만 원 | 손님은 그대로인데 덜 산다 |
경우 1의 처방은 신규 유입과 재방문을 늘리는 마케팅이고, 경우 2의 처방은 묶음 판매나 업셀처럼 객단가를 높이는 일입니다. 매출 숫자만 보면 둘은 구분되지 않지만, 쪼개는 순간 액션이 갈립니다.
이렇게 하나의 결과 지표를 여러 요인의 곱이나 합으로 쪼개 원인을 찾는 기법을 분해 분석(decomposition)이라고 합니다. "왜 이 숫자가 변했지?"를 알고 싶을 때 쓰고, 매출뿐 아니라 비용, 이익, 방문자 수 등 거의 모든 지표에 적용할 수 있습니다. 핵심 효과는 막연한 "매출이 줄었다"가 구체적인 액션으로 바뀐다는 것입니다.
1.3 더 깊이 쪼개기, 분해 트리
거래 수는 다시 쪼갤 수 있습니다. 거래 수는 고객이 몇 명인지와 그 고객이 얼마나 자주 사는지의 곱입니다.
이렇게 한 단계 더 내려가면 매출은 고객 수, 구매 빈도, 객단가 세 요인의 곱이 됩니다. 각 요인이 떨어질 때 무슨 일이 벌어지고 있는지도 달라집니다.
- 고객 수가 줄었다: 신규 고객이 오지 않습니다.
- 구매 빈도가 줄었다: 기존 고객이 덜 자주 옵니다.
- 객단가가 줄었다: 올 때마다 덜 삽니다.
여기서 나온 고객 수, 구매 빈도, 객단가는 이어서 다룰 KPI의 재료가 됩니다.
1.4 총매출과 순매출
매출에는 총매출과 순매출이 있습니다. 실무 데이터를 다룰 때 가장 먼저 확인하는 구분입니다.
| 구분 | 의미 | 예시 |
|---|---|---|
| 총매출 | 일단 팔린 전체 금액 | 1,000만 원 |
| 순매출 | 환불과 할인을 뺀, 진짜 남은 매출 | 1,000만 원에서 환불 100만 원과 할인 50만 원을 뺀 850만 원 |
의사결정은 순매출 기준으로 합니다. 총매출만 보면 "잘 팔리는 것 같은데 남는 게 없는" 착시에 빠질 수 있습니다. 우리 실습 데이터에는 환불과 할인 열이 없어 총매출을 그대로 쓰지만, 실제 업무 데이터를 다룰 때는 이 구분을 먼저 확인하세요.
1.5 매출을 분해해 보기
배운 분해를 Gemini에게 시켜 봅니다. 3장에서처럼 orders.csv를 Colab에 올린 뒤 차례로 요청합니다.
총 매출, 총 거래 건수, 평균 객단가를 각각 계산해줘
총 매출 약 1억 8,421만 원, 거래 3,567건, 객단가 약 51,642원이 나오면 정상입니다.
매출을 '거래 수 × 객단가'로 나눠서 월별 변화를 표로 보여줘
월별로 거래 수와 객단가, 매출이 나란히 놓인 표가 나옵니다. 1월 매출 941만 원에서 12월 2,240만 원까지 오르는 동안 거래 수와 객단가 중 어느 쪽이 더 크게 움직였는지 눈으로 확인할 수 있습니다.
표를 직접 읽어 본 뒤 펼쳐서 맞춰 보기

왼쪽은 월별 주문 수, 오른쪽은 월별 객단가입니다. 주문 수는 1월 194건에서 12월 450건으로 2.3배가 됐는데, 객단가는 열두 달 내내 4.8만 원에서 5.6만 원 사이를 오갈 뿐 연말에 오르지 않았습니다. 12월 객단가(약 4.98만 원)는 1월(약 4.85만 원)과 거의 같습니다. 그러니 이 쇼핑몰의 연말 매출 상승은 "더 많이 팔려서"이고 "비싸게 팔려서"가 아닙니다. 처방도 여기서 갈립니다. 객단가를 올리는 묶음 판매보다, 연말에 몰려오는 주문을 받아 낼 재고와 배송 준비가 먼저입니다. 6월에 매출이 꺼진 것도 같은 방식으로 읽습니다. 6월 객단가는 4.8만 원으로 1월과 비슷한데 주문이 231건으로 5월(317건)보다 크게 줄었습니다.
지난달 vs 이번 달, 매출 변화가 거래 수 때문인지 객단가 때문인지 알려줘
3장 4절의 검증 3질문을 여기서도 적용합니다. 거래 수에 객단가를 곱하면 매출과 맞아떨어지는지, 객단가가 평균인지 합계인지 AI에게 물어 확인하세요. 객단가를 합계로 계산했다면 숫자가 터무니없이 커질 테니 첫 번째 질문, 숫자가 상식적인가에서 바로 걸립니다.
1.6 모든 숫자에 써먹기
분해 분석은 매출에만 쓰는 기법이 아닙니다.
| 알고 싶은 것 | 이렇게 쪼갠다 |
|---|---|
| 왜 매출이 변했나 | 거래 수 × 객단가 |
| 왜 비용이 늘었나 | 단가 × 사용량 |
| 왜 방문자가 줄었나 | 신규 + 재방문 |
순서는 늘 같습니다.
- 쪼갤 숫자를 정합니다. 예를 들어 매출입니다.
- 곱 또는 합으로 분해합니다. 거래 수 × 객단가입니다.
- 각 요인이 어떻게 변했는지 봅니다.
- 변화를 일으킨 요인을 찾아 액션을 정합니다.
1.7 직접 해보기
- 위 1.5의 세 프롬프트를 차례로 실행하고, 월별 표에서 거래 수와 객단가 중 어느 쪽이 매출 변화를 더 많이 설명하는지 찾아 봅니다.
- Gemini에게 "매출을 고객 수 × 구매 빈도 × 객단가로 분해해서 보여줘"라고 요청하고, 세 값을 곱하면 총 매출과 맞는지 검증합니다.
- 내 업무에서 자주 보는 숫자 하나(비용, 방문자, 문의 건수 등)를 골라, 곱이나 합으로 어떻게 쪼갤 수 있을지 적어 봅니다.
- 매출 감소 시 거래 수가 줄어든 경우와 객단가가 줄어든 경우의 처방이 어떻게 다른지 설명해 봅니다.
- 의사결정에 총매출이 아니라 순매출을 봐야 하는 이유를 한 문장으로 답해 봅니다.
마지막 수정