DHDataHọc
Lý thuyếtBài 1/86 phút đọc+10 XP

CAC và ROAS

Bạn sẽ học được

  • Tính CAC và ROAS đúng định nghĩa.
  • Phân biệt CAC gộp và CAC trả phí.
  • Vì sao ROAS cao chưa chắc có lãi.
  • Tính thời gian hoàn vốn từ CAC và biên lợi nhuận.
  • Những lỗi khiến hai báo cáo cùng tên cho hai con số khác nhau.

Khái niệm cốt lõi

Hai chỉ số nền tảng của marketing:

code
CAC  = chi phí có được khách mới / số khách mới
ROAS = doanh thu quy cho quảng cáo / chi phí quảng cáo

CAC trả lời "mỗi khách tốn bao nhiêu để có". ROAS trả lời "mỗi đồng quảng cáo mang về bao nhiêu doanh thu".

Cả hai đều là phân số, nên điều quan trọng nhất là chốt tử số và mẫu số. Không có định nghĩa chung cho mọi công ty; có định nghĩa được ghi lại và giữ nguyên.

CAC: chọn tử số và mẫu số

Tử số có thể gồm:

Thành phầnCó tính vào CAC?
Chi phí quảng cáo trả cho nền tảngCó
Phí agency, công cụTuỳ quy ước — ghi rõ
Lương đội marketingThường không, nhưng phải nói
Chi phí khuyến mãi, voucherNên có nếu là chi phí có khách

Mẫu số là khách mới, không phải đơn hàng và không phải khách quay lại. Nếu một người mua ba lần, họ vẫn là một khách mới.

code
SELECT
  SUM(spend) AS tong_chi,
  COUNT(DISTINCT customer_id) AS khach_moi,
  ROUND(SUM(spend) / NULLIF(COUNT(DISTINCT customer_id), 0), 0) AS cac
FROM (
  SELECT spend FROM marketing_spend
  WHERE spend_date >= CURRENT_DATE - INTERVAL '30 days'
) s
CROSS JOIN (
  SELECT customer_id
  FROM orders
  WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
  GROUP BY customer_id
  HAVING MIN(created_at) >= CURRENT_DATE - INTERVAL '30 days'
) c;

Lưu ý: truy vấn trên là CAC gộp (blended) — toàn bộ chi phí chia toàn bộ khách mới, kể cả khách đến từ kênh tự nhiên. CAC trả phí (paid CAC) chỉ chia chi phí quảng cáo cho khách đến từ quảng cáo.

CAC gộp thường thấp hơn vì có khách tự nhiên. Khi báo cáo phải ghi rõ loại nào.

ROAS và cái bẫy doanh thu

ROAS dùng doanh thu, không dùng lợi nhuận. Đây là lý do một chiến dịch ROAS 1,6 có thể vẫn lỗ.

Ví dụ:

  • Chi phí quảng cáo: 300.000.000 đồng.
  • Doanh thu quy cho quảng cáo: 480.000.000 đồng.
  • ROAS = 480 / 300 = 1,6.

Nhìn qua tưởng lãi. Nhưng nếu biên lợi nhuận gộp là 35%, doanh thu 480 triệu chỉ mang lại 168 triệu lợi nhuận gộp — ít hơn 300 triệu chi phí. Lỗ 132 triệu.

ROAS hoà vốn khi tính trên lợi nhuận gộp:

code
ROAS hoà vốn = 1 / biên lợi nhuận gộp

Với biên 35%: 1 / 0,35 = 2,86. Chiến dịch cần ROAS ít nhất 2,86 mới hoà vốn trên lợi nhuận gộp của đơn đầu tiên. ROAS 1,6 lỗ rõ ràng.

Nếu sản phẩm có mua lặp lại, đơn đầu có thể lỗ mà vẫn hợp lý — nhưng phải chứng minh bằng dữ liệu mua lại, không bằng giả định.

Thời gian hoàn vốn

Câu hỏi thực tế không phải "ROAS bao nhiêu" mà "bao lâu thì thu hồi CAC".

code
Số tháng hoàn vốn = CAC / lợi nhuận gộp trung bình mỗi khách mỗi tháng

Ví dụ: CAC 400.000 đồng; mỗi khách mang lại 120.000 đồng lợi nhuận gộp mỗi tháng → hoàn vốn sau 3,3 tháng.

Doanh nghiệp có dòng tiền eo hẹp cần hoàn vốn dưới 6 tháng; doanh nghiệp có vốn dài hạn có thể chấp nhận 12 tháng. Không có ngưỡng chung — nhưng phải tính, không được bỏ qua.

Bảng theo dõi nên có đủ ba cột:

KênhCACLTV gộp dự kiếnHoàn vốn (tháng)
Kênh A250.000900.0002,1
Kênh B420.000600.0005,0
Kênh C180.000200.0009,0

Cùng một mức CAC có thể tốt hoặc xấu tuỳ LTV. So sánh CAC giữa các kênh mà không kèm LTV là so sánh thiếu.

Đo theo kênh

code
SELECT
  channel,
  SUM(spend) AS chi,
  SUM(revenue) AS doanh_thu,
  ROUND(SUM(revenue) / NULLIF(SUM(spend), 0), 2) AS roas,
  COUNT(DISTINCT customer_id) AS khach_moi,
  ROUND(SUM(spend) / NULLIF(COUNT(DISTINCT customer_id), 0), 0) AS cac
FROM channel_performance
WHERE ngay >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY 1
ORDER BY roas DESC;

Kênh có ít khách mới cho con số dao động mạnh. Một kênh có 20 khách mới/tháng không thể được xếp hạng trên cùng bảng với kênh có 2.000 khách mà không kèm khoảng tin cậy hoặc cỡ mẫu.

Lỗi thường gặp

  • Cửa sổ thời gian khác nhau: chi phí 30 ngày nhưng doanh thu 90 ngày. Chốt cùng cửa sổ hoặc ghi rõ.
  • Tính cả khách quay lại vào mẫu số CAC: CAC bị thấp giả.
  • Dùng doanh thu thay lợi nhuận gộp: kết luận lãi sai.
  • Bỏ phí agency/công cụ: CAC thấp hơn thực tế.
  • Cộng doanh thu quy cho nhiều nền tảng: mỗi nền tảng tự nhận cùng một đơn, tổng vượt doanh thu thật.
  • So sánh CAC giữa các kỳ có cơ cấu kênh khác nhau: CAC gộp đổi vì mix đổi, không phải vì hiệu quả đổi.

Thực hành

  1. Tính CAC gộp và CAC trả phí cho 30 ngày.
  2. Tính ROAS hoà vốn với biên lợi nhuận gộp 30%, 40%, 50%.
  3. Tính thời gian hoàn vốn cho ba kênh.
  4. Kiểm tra xem tổng doanh thu quy cho các nền tảng có vượt doanh thu thật không.
  5. Viết định nghĩa CAC và ROAS vào tài liệu chỉ số của nhóm.

Lỗi thường gặp

Triệu chứngNguyên nhânCách sửa
CAC thấp bất thườngMẫu số gồm khách quay lạiChỉ đếm khách mới
ROAS cao nhưng lỗDùng doanh thu, bỏ biên lợi nhuậnTính ROAS hoà vốn
Hai báo cáo lệch nhauCửa sổ hoặc định nghĩa khácChốt metric spec
Tổng quy công vượt doanh thuNhiều nền tảng nhận cùng đơnDùng mô hình quy công thống nhất
Xếp hạng kênh nhỏMẫu quá ítYêu cầu cỡ mẫu tối thiểu
CAC tăng đột biếnĐổi cơ cấu kênhSo CAC từng kênh

Tóm tắt

  • CAC và ROAS đều phụ thuộc định nghĩa; phải chốt và ghi lại.
  • CAC dùng khách mới, không dùng đơn hàng.
  • ROAS dùng doanh thu; muốn biết lãi phải so với ROAS hoà vốn = 1/biên gộp.
  • Hoàn vốn CAC quan trọng hơn ROAS đơn thuần.
  • So sánh kênh cần kèm LTV và cỡ mẫu.

Dùng ← → để chuyển bài