Skip to content

carrying-capacity

TL;DR

  • 토스 리더가 말하는 Carrying Capacity(CC) 개념은 제품의 본질적인 성장 한계를 낸다.
  • 신규 유저 유입(Inflow)과 이탈률(Churn)를 통해서 CC를 계산할 수 있다.
  • CC를 이해하고 개선하는 것이 제품 성장의 핵심

Carrying Capacity ( =CC ) 란?

  • CC는 서비스가 도달할 수 있는 최종적인 유저 수를 의미함.
  • CC = 매일 새로 오는 유저 수 / 매일 잃게 되는 유저의 비율로 계산됨.
  • 제품의 본질적인 체력을 나타내는 지표임.

CC 개념을 통해 해결할 수 있는 질문

  • 특정 행동을 모든 유저에게 강요하는 것이 도움이 될까?
  • 24시간 서비스 장애가 장기적으로 악영향을 줄까?
  • 하루 10만 명의 유저 방문과 매주 70만 명의 유저 방문은 같은 의미일까?
  • 광고를 계속 틀면 유저가 계속 늘어날까?
  • 서비스 알림 시스템 문제로 유저가 감소했다면, 이는 큰 문제일까?
  • 위 질문에 답할 수 있는 핵심 개념이 바로 Carrying Capacity(CC)임.

CC의 특징

  • 대부분의 경우, 신규 유저 유입 수는 일정한 상수로 유지됨.
  • 이탈률도 대체로 일정하게 유지되는 경향이 있음.
  • CC는 보통 서비스 런칭 후 3-6개월 내에 계산 가능함.

Inflow (유입)

  • New (Organic): 자연적으로 유입되는 신규 유저
  • Resurrection: 다시 돌아온 유저
  • Paid: 광고를 통해 유입된 유저
  • Viral: 바이럴 효과로 유입된 유저

Churn (이탈)

  • 전체 유저 중 서비스를 떠나는 비율
  • 보통 3개월 이상 서비스를 사용하지 않는 유저를 이탈로 정의함.

CC의 계산

  • CC = # of New Daily Customers / % Customers You Lost Each Day

    • # of New Daily Customers 는 적당한 Time window 로 설정하는데 보통 Weekly 로
    \[\frac{dN}{dt} = i - rN = 0\]
  • CC는 유입과 관련한 미분방정식의 Steady State 를 계산하는 것이라 생각하면 됨

    • 아래 식에서 i는 유입, r은 이탈률, N은 유저 수를 의미
    • 위 특징에서 언급하듯 이승건 대표는 i와 r 을 상수로 가정하고 계산
    • \(\frac{dN}{dt} = 0\) 인 상태에서의 평형 유저숫자 \(N^{*}\) 를 찾는 것이 CC 계산임
    • \(i^{*}= rN^{*}\) 이므로 \(N^{*} = \frac{i}{r}\) 으로 도출 할 수 있고, 이것이 CC 를 계산하는 방법임

Example

  • 미분방정식의 해를 도출함으로써, CC 를 계산할 수 있음
  • 아래 그림의 예시처럼 마케팅 끄면 다시 돌아오는 것을 확인할 수 있음
파이썬 코드
  • 아래 파이썬 코드를 통해서, 유입과 이탈률이 상수로 가정되었을 때, N의 추세를 생각해볼 수 있음
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

organic_influx = 100
marketing_influx = 100
churn_rate = 0.25

carrying_capacity = organic_influx / churn_rate


def i(t):
    if 0 < t <= 12:
        return organic_influx
    elif 12 < t <= 16:
        return organic_influx + marketing_influx
    else:
        return organic_influx

def r(t):
    return churn_rate

def dN_dt(N, t):
    return i(t) - r(t) * N

# Initial condition and time range
N0 = 0
t = np.linspace(0, 30, 100)

# Solve the differential equation
N = odeint(dN_dt, N0, t)

# Plot the solution
plt.figure(figsize=(10, 6))
plt.plot(t, N)
plt.xlabel('Time')
plt.ylabel('N(t)')
plt.title('Solution of the Differential Equation')

plt.axhline(y=carrying_capacity, color='r', linestyle='--', label='Carrying Capacity')
plt.text(15, carrying_capacity + 20, 'Carrying Capacity', color='r')

plt.grid(True)
plt.show()

CC 개선 전략

  • AARRR 퍼널의 역순으로 개선해야 함: Retention → Activation → Acquisition
  • 리텐션 개선이 가장 중요하며, 이는 제품의 본질적인 가치를 높이는 것을 의미함.
  • 광고나 마케팅은 단기적으로 유저 수를 늘릴 수 있지만, CC 자체를 개선하지는 못함.
  • 린 스타트업에서 리텐션을 필두로하는 성장가설 검증에 힘쓰는 이유가 여기에 있음.
  • 곰곰이 생각해보면, CC 를 정의하는 미분방정식에서 상수항은 큰 의미가 없음, 중요한 것은 N에 대한 비율로서 작동하는 것이 CC 에 영향을 미침
  • 따라서 현재 유저수에 비례하는 리텐션 개선이 CC 개선에 가장 큰 영향을 미침

CC 개념을 통해 해결할 수 있는 질문 - 정답

  • 특정 행동을 모든 유저에게 강요하는 것이 도움이 될까?
    • 단순히 상관관계를 인과관계로 해석하면 안됨
    • 모름, 결국 r (리텐션) 에 영향을 미치는지 여부 확인해봐야 함
  • 24시간 서비스 장애가 장기적으로 악영향을 줄까?
    • i (유입) 와 r (리텐션) 에 영향 주는 것 보면 됨
    • 보통 단기 장에는 둘에 영향을 잘 미치지 않아서, MAU 에 영향 크게 안줌
  • 하루 10만 명의 유저 방문과 매주 70만 명의 유저 방문은 같은 의미일까?
  • 광고를 계속 틀면 유저가 계속 늘어날까?
    • 광고는 일시적으로 i 에 영향을 줄 수 있음
    • 그러나 광고 끄면 다시 CC 로 수렴해갈 것 ( 위 그림 참조 )
  • 서비스 알림 시스템 문제로 유저가 감소했다면, 이는 큰 문제일까?
    • 들어오는 유저수 말고 나가는 유저도 변하는지 봐야 함

결론

  • CC는 제품의 근본적인 성장 잠재력을 나타내는 지표임.
  • PO는 CC를 이해하고 개선하는 데 집중해야 하며, 이는 주로 제품의 본질적인 가치를 높이고 리텐션을 개선하는 것으로 달성할 수 있음.
  • 단기적인 성과에 집중하기보다는 장기적인 관점에서 CC를 높이는 전략이 중요함.

Reference