매달 신규 고객 100명을 데려오는데 MRR이 제자리라면, 문제는 acquisition이 아니다. 기존 고객에서 돈을 못 벌고 있는 거다.

Net Revenue Retention, 왜 이 숫자부터 봐야 하나

NRR(Net Revenue Retention)은 기존 고객만으로 매출이 얼마나 유지되고 성장하는지 보여주는 지표다. 공식은 단순하다.

NRR = (시작 MRR + 확장 매출 − 축소 − 이탈) / 시작 MRR × 100

100%면 현상 유지. 신규 고객 없이도 매출이 줄지 않지만, 늘지도 않는다. 120%라면? 기존 계정만으로 연 20% 성장한다. 신규 유입은 그 위에 얹히는 보너스가 되는 셈이다.

Bessemer의 Cloud Index 기준으로 상위 SaaS 기업의 NRR 중앙값은 120%다. 반면 시리즈 A~B 단계에서 이 수치가 100% 미만인 회사가 전체의 40%에 달한다. 이 격차가 3년 뒤 ARR 차이로 고스란히 드러난다. 같은 CAC를 쓰고도 한쪽은 복리로 굴러가고, 한쪽은 물 위에 제자리걸음을 하는 구조.

확장 매출을 만드는 세 갈래 경로

시트 확장. 사용자 수 기반 과금 모델이면 가장 마찰이 적은 경로다. Slack이 전형적인데, 한 팀이 쓰기 시작하면 옆 부서로 전파된다. 별도 세일즈 콜 없이 월 청구서가 자연스럽게 불어나는 구조. 제품이 곧 영업사원 역할을 한다.

플랜 업그레이드. 무료에서 스타터, 프로, 엔터프라이즈로 올라가는 계단. 핵심은 상위 티어로 넘어갈 "이유"가 제품 안에서 발생해야 한다는 점이다. Notion이 팀 위키와 고급 권한 관리를 프로 플랜에 묶은 건 우연이 아니다. 3명이 개인 노트로 쓰다가 팀 워크스페이스가 필요해지는 순간, 업그레이드는 선택이 아니라 자연스러운 다음 단계가 된다.

크로스셀. HubSpot이 마케팅 허브 고객에게 세일즈 허브를 붙이는 방식이 대표적이다. 단일 제품 회사라면 부가 기능(add-on)이 이 역할을 대신한다. API 호출량 증설, 스토리지 추가, 프리미엄 지원 패키지 같은 것들. 고객이 성장하면 자연히 필요해지는 것들로 메뉴를 짜야 한다.

체계적 확장 프로그램을 가진 회사는 23%뿐

이게 진짜 문제다. SaaS 기업 4곳 중 3곳은 확장 매출 전략이 "고객이 알아서 올려주길 기다리는 것"에 머물러 있다. 공식적인 확장 프로그램을 운영하는 23%의 기업은 평균 NRR 125%를 기록하고, 나머지는 95%에 그친다. 30%포인트 차이. 연간으로 환산하면 엄청난 복리 격차다.

이 23%가 공통적으로 갖고 있는 시스템은 세 가지다.

첫째, 사용량 트리거 기반 넛지. "이번 주에 팀원 4명이 대시보드를 새로 만들었습니다 — 팀 플랜으로 전환하면 공유 워크스페이스를 바로 쓸 수 있어요." 이런 메시지가 행동 데이터에 기반해 자동으로 나가야 한다. 사람이 일일이 전화하는 게 아니라 제품 안에서 트리거가 발동하는 구조.

둘째, 코호트별 확장 타이밍 측정. 가입 후 몇 주째에 업그레이드 전환율이 가장 높은지 코호트 데이터로 잡는다. B2B SaaS 대부분에서 그 황금 구간은 14일에서 45일 사이다. 이 기간에 적절한 제안이 없으면 고객은 현재 플랜에 안착해 버리고, 이후에는 관성이 이긴다.

셋째, CS와 프로덕트 사이의 피드백 루프. 고객 성공 팀이 "이 계정에서 기능 X를 반복적으로 요청한다"는 신호를 프로덕트에 넘기고, 프로덕트가 그걸 상위 플랜 기능으로 설계하면 업셀 경로가 자연스럽게 만들어진다. CS가 세일즈 파이프라인의 센서 역할을 하는 셈이다.

데이터가 없으면 가격표부터 손대지 마라

NRR 개선을 처음 시도하는 팀이 흔히 빠지는 함정이 있다. 가격 페이지 리디자인부터 시작하는 거다. 티어를 세분화하고, 기능 매트릭스를 복잡하게 바꾸고. 그런데 고객이 왜 업그레이드하는지 패턴이 안 잡힌 상태에서 가격 구조를 만지면 감으로 도박하는 거나 마찬가지다.

첫 단계는 훨씬 단순하다. 지난 12개월 동안 실제로 플랜을 올린 고객 리스트를 뽑는다. 그 고객들이 업그레이드 직전 30일에 뭘 했는지 들여다본다. 특정 기능 사용량이 급증했는지, 초대한 멤버 수가 늘었는지, API 호출이 한도에 근접했는지.

Mixpanel이든 Amplitude든, "업그레이드 코호트"를 만들어서 비업그레이드 코호트와 이벤트 히스토리를 비교하면 된다. 거창한 ML 모델 필요 없다.

SELECT feature_name, AVG(usage_count) AS avg_usage
FROM events
WHERE user_id IN (
  SELECT user_id FROM upgrades
  WHERE upgraded_at BETWEEN '2025-04-01' AND '2026-03-31'
)
AND event_date BETWEEN upgraded_at - INTERVAL 30 DAY AND upgraded_at
GROUP BY feature_name
ORDER BY avg_usage DESC
LIMIT 10;

이 쿼리 하나로 "업그레이드 직전에 가장 많이 쓴 기능 Top 10"이 나온다. 그게 확장 트리거 후보 목록의 출발점이다.

NRR 목표, 스테이지별로 다르게 잡아야 한다

시리즈 A라면 110%가 현실적인 첫 목표다. 시리즈 B 이후라면 120%. IPO를 준비 중이라면 130% 이상이 투자자 기대치다. 참고로 Snowflake는 상장 시점에 158%, Twilio는 143%를 찍었다.

다만 이 숫자가 높다고 무조건 건강한 건 아니다. 확장 매출이 기존 고객 입장에서 "비용이 자꾸 올라간다"로 체감되면 장기 이탈률이 슬금슬금 올라간다. 고객이 더 많은 가치를 받고 있다고 느끼는 상태에서 자연스럽게 지출이 늘어야 한다. 가격 인상이 아니라 가치 확장. 그 차이를 만드는 건 결국 마케팅이 아니라 제품이다.