Nếu bạn vẫn đang dùng con số ROAS hoà vốn tính từ năm ngoái, khả năng cao bạn đang chạy lỗ mà tưởng có lời. Từ tháng 5/2026, phí giao dịch TikTok Shop tăng 5% lên 6%, Voucher Xtra từ 3% lên 4%; Shopee áp 6% cho shop ngoài Mall từ 01/05/2026 và trích thêm 1% mỗi đơn thành công từ 29/05/2026. Cộng dồn với hoa hồng cố định, phí vận chuyển và các chương trình khuyến mãi, tổng khấu trừ nền tảng có thể chạm khoảng 45% doanh thu. Mỗi điểm phần trăm phí tăng thêm đều đẩy ngưỡng ROAS hoà vốn lên — và ngưỡng đó không tăng tuyến tính, nó tăng theo hàm nghịch đảo, nghĩa là càng biên mỏng thì càng dốc.
Bài này không giải thích lý thuyết ROAS (đã có ở bài ROAS là gì). Bài này đưa bạn cấu trúc một file tính ROAS hoà vốn đủ chi tiết để bạn tự dựng lại trong Google Sheet trong khoảng 20 phút: tên sheet, tên cột, công thức từng ô, và cách đọc kết quả. Nếu bạn muốn bản dựng sẵn, tải ở đây:
⚠️ CẦN ĐIỀN: link file Google Sheet / form thu email
ROAS hoà vốn là gì và vì sao con số của bạn đã cũ
ROAS hoà vốn là mức ROAS mà tại đó tiền quảng cáo bạn bỏ ra vừa đúng bằng phần lãi gộp thu về — không lời, không lỗ. Công thức gốc chỉ có một dòng: ROAS hoà vốn = 1 / biên đóng góp sau phí.
Trong đó biên đóng góp sau phí tính theo:
Biên đóng góp = (giá bán − giá vốn − tổng phí sàn − phí vận hành) / giá bán
Điểm khiến hầu hết shop tính sai không nằm ở công thức, mà nằm ở chỗ họ nhét thiếu một hoặc hai khoản vào phần "tổng phí sàn". Ví dụ với một sản phẩm giá 300.000đ, giá vốn 90.000đ:
- Nếu tổng khấu trừ nền tảng là 22% (66.000đ) và phí vận hành 8% (24.000đ), phần còn lại để trả cho quảng cáo là 120.000đ → biên đóng góp 40% → ROAS hoà vốn = 1 / 0,40 = 2,5.
- Nếu tổng khấu trừ nền tảng chạm 45% (135.000đ) và bạn quên không cập nhật, phần còn lại chỉ còn 75.000đ → biên đóng góp 25% → ROAS hoà vốn = 1 / 0,25 = 4,0.
Cùng một sản phẩm, ngưỡng an toàn nhảy từ 2,5 lên 4,0. Nếu bạn đang tối ưu camp về mốc 2,8 và tự khen "trên hoà vốn", thực tế bạn đang lỗ khoảng 30% trên mỗi đồng doanh thu quảng cáo. Đây chính là lý do phải có một file tính lại được, thay vì nhớ một con số trong đầu.
Bốn khối phí phải nạp đủ vào file
Đủ bốn khối này thì con số ra mới dùng được. Thiếu một khối, sai số thường 5–15 điểm phần trăm biên — đủ để đảo ngược kết luận lời/lỗ.
Khối 1 — Phí nền tảng cố định. Phí giao dịch/thanh toán, hoa hồng cố định theo ngành hàng, phí trích trên đơn thành công. Với TikTok Shop từ 09/05/2026: phí giao dịch 6%, và hoa hồng cố định của Mall dao động theo ngành — thời trang khoảng 14,7–16,1%, sức khoẻ & làm đẹp khoảng 13,5–17,8%. Với Shopee: 6% cho shop ngoài Mall từ 01/05/2026, cộng thêm 1% trích trên mỗi đơn thành công từ 29/05/2026.
Khối 2 — Phí chương trình tự nguyện. Đây là khối hay bị quên nhất vì shop bấm tham gia một lần rồi không nhớ. Voucher Xtra TikTok Shop 4% (trần 50.000đ/sản phẩm), Freeship Xtra, các gói tăng hiển thị. Trong file phải để riêng từng dòng, có ô bật/tắt, vì cùng một shop có sản phẩm tham gia và sản phẩm không tham gia.
Khối 3 — Phí vận hành thực. Bao bì, nhân công đóng gói, phần ship bù cho khách, chi phí CSKH, và quan trọng nhất: chi phí hàng huỷ/hoàn. Đơn bị huỷ sau khi đã đóng gói và gửi đi vẫn ăn tiền của bạn nhưng không sinh doanh thu.
Khối 4 — Khuyến mãi trực tiếp. Mã giảm giá của shop, giá sale so với giá niêm yết, combo/deal sốc. Nếu bạn tính ROAS trên giá niêm yết mà thực bán ở giá sale, toàn bộ file sai.
Chi tiết cách các khoản này ăn vào lãi, bạn xem thêm ở bài GMV, NMV là gì — vì phần lớn tranh cãi "sao doanh thu cao mà không có tiền" đều bắt nguồn từ việc lấy nhầm loại doanh thu.
Cấu trúc file: bốn sheet, không hơn
File càng nhiều sheet càng ít người dùng. Bốn sheet là đủ: một sheet nhập liệu, một sheet tham số phí, một sheet kết quả, một sheet kịch bản.
- THAM_SO — nơi khai một lần các tỷ lệ phí theo sàn và theo ngành hàng. Mọi sheet khác trỏ về đây. Khi sàn đổi phí, bạn sửa đúng một chỗ.
- SAN_PHAM — mỗi dòng một SKU: giá bán thực, giá vốn, sàn, ngành hàng, các cờ bật/tắt chương trình.
- KET_QUA — cột tính tự động: biên đóng góp, ROAS hoà vốn, ROAS mục tiêu, ROAS hoà vốn sau huỷ/hoàn.
- KICH_BAN — bảng gì-nếu: nếu giá vốn tăng 10%, nếu bật thêm Voucher Xtra, nếu tỷ lệ huỷ tăng gấp đôi thì ngưỡng ROAS đi về đâu.
Sheet SAN_PHAM: từng cột nhập gì
Mười một cột, tất cả đều là số bạn tra được từ hệ thống sàn hoặc file kế toán — không cột nào cần ước lượng cảm tính.
- A. Mã SKU — trùng đúng mã trên sàn để đối chiếu sau này.
- B. Tên sản phẩm — để người đọc nhận ra, không dùng để tính.
- C. Sàn — dropdown: Shopee / TikTok Shop / Website.
- D. Loại shop — dropdown: Mall / Ngoài Mall. Quyết định mức hoa hồng cố định lấy từ THAM_SO.
- E. Ngành hàng — dropdown khớp danh mục ở THAM_SO.
- F. Giá bán thực — giá khách trả sau khi trừ mã giảm của shop, không phải giá niêm yết.
- G. Giá vốn — giá nhập đã gồm thuế và vận chuyển về kho.
- H. Phí vận hành/đơn — số tuyệt đối (đóng gói + nhân công + ship bù), không phải %.
- I. Cờ Voucher Xtra — CÓ/KHÔNG.
- J. Cờ Freeship Xtra — CÓ/KHÔNG.
- K. Tỷ lệ huỷ/hoàn — % lấy từ báo cáo 30 ngày gần nhất của chính SKU đó, không lấy trung bình toàn shop.
Cột K là cột hay bị điền bừa nhất. Nếu chưa có số riêng cho SKU, hãy lấy trung bình theo ngành hàng của shop bạn, và ghi chú lại là số tạm.
Sheet KET_QUA: công thức từng ô
Sáu cột tính, mỗi cột một dòng công thức. Giả sử dữ liệu bắt đầu từ dòng 2.
L2 — Tổng % phí nền tảng. Cộng dồn có điều kiện theo sàn, loại shop và các cờ:
L2 = VLOOKUP(C2, THAM_SO!A:B, 2, 0) + IF(D2="Mall", VLOOKUP(E2, THAM_SO!D:E, 2, 0), 0) + IF(I2="CÓ", THAM_SO!$B$10, 0) + IF(J2="CÓ", THAM_SO!$B$11, 0)
M2 — Tiền phí nền tảng (đồng). Nhớ chặn trần Voucher Xtra 50.000đ/sản phẩm:
M2 = F2 L2 − MAX(0, F2 THAM_SO!$B$10 * (I2="CÓ") − 50000)
N2 — Biên đóng góp (%). Đây là ô trung tâm của cả file:
N2 = (F2 − G2 − M2 − H2) / F2
O2 — ROAS hoà vốn. Chặn chia cho 0 và chặn biên âm, vì biên âm nghĩa là bán là lỗ, không ROAS nào cứu được:
O2 = IF(N2 <= 0, "LỖ CƠ CẤU", 1 / N2)
P2 — ROAS hoà vốn sau huỷ/hoàn. Đơn huỷ vẫn tính chi phí quảng cáo nhưng không sinh doanh thu, nên ngưỡng thật phải nâng lên:
P2 = IF(N2 <= 0, "LỖ CƠ CẤU", O2 / (1 − K2))
Q2 — ROAS mục tiêu theo biên lợi nhuận mong muốn. Đặt biên mong muốn ở THAM_SO (ví dụ 10%):
Q2 = IF(N2 − THAM_SO!$B$15 <= 0, "KHÔNG KHẢ THI", 1 / (N2 − THAM_SO!$B$15))
Ô Q2 là ô hay gây ngạc nhiên nhất. Với biên đóng góp 40%, ROAS hoà vốn là 2,5 nhưng ROAS để có lãi ròng 10% đã là 1/(0,40 − 0,10) = 3,33. Khoảng cách giữa "không lỗ" và "có lời thật" rộng hơn nhiều người nghĩ.
Cách đọc kết quả: ba mốc, ba hành động
Nhìn file xong, bạn chỉ cần nhớ ba mốc và ba hành động tương ứng cho mỗi SKU.
- Dưới ROAS hoà vốn sau huỷ/hoàn (cột P): đang lỗ tiền mặt. Hành động: giảm ngân sách ngay trong ngày, không chờ hết tuần để "cho camp học".
- Giữa cột P và cột Q: đang có lãi gộp nhưng chưa đủ trả chi phí cố định của shop. Chấp nhận được với SKU mồi hoặc SKU đang xây rating, không chấp nhận được với SKU chủ lực.
- Trên cột Q: đang lời thật. Hành động: tăng ngân sách từng bước 20–30% và theo dõi xem biên có tụt không.
Một lưu ý quan trọng: ROAS trên trình quản lý quảng cáo của sàn thường cao hơn ROAS thật vì nó tính theo cửa sổ quy đổi rộng và tính trên GMV chưa trừ huỷ hoàn. Đối chiếu với bài 7 sai lầm đọc số liệu quảng cáo trước khi kết luận camp nào đang thắng.
Sheet KICH_BAN: ba câu hỏi nên chuẩn bị sẵn
Ba kịch bản này là ba biến động thực tế xảy ra nhiều nhất trong năm, nên dựng sẵn để lúc cần chỉ việc đọc.
- Giá vốn tăng 10% — thường xảy ra khi đổi nhà cung cấp hoặc tỷ giá biến động. Dựng bằng cách nhân G2 với ô hệ số ở THAM_SO.
- Bật thêm một chương trình 4% — để biết chương trình đó có "trả tiền cho chính nó" bằng lượng đơn tăng thêm hay không.
- Tỷ lệ huỷ/hoàn tăng gấp đôi — kịch bản mùa sale, khi lượng đơn xung phong tăng và chất lượng đơn giảm.
Cách dựng nhanh: dùng Data → What-if analysis không có trong Google Sheet, nên thay bằng một bảng ba cột đơn giản — cột kịch bản, cột hệ số, cột ROAS hoà vốn mới, mỗi dòng trỏ lại công thức N2/O2 với biến đã đổi.
Ba phép thử để biết file bạn dựng đã đúng
Dựng xong đừng tin ngay. Chạy ba phép thử này, tốn 5 phút, tránh được cả quý ra quyết định sai.
- Phép thử biên 100%: nhập một dòng giả có giá vốn = 0, phí = 0, phí vận hành = 0. ROAS hoà vốn phải ra đúng 1,0. Nếu ra khác, công thức N2 sai.
- Phép thử biên âm: nhập giá vốn cao hơn giá bán. Cột O phải hiện "LỖ CƠ CẤU", không được ra số âm — số âm sẽ bị đọc nhầm thành "ngưỡng thấp, chạy thoải mái".
- Phép thử đối chiếu thật: lấy một SKU đã bán ít nhất 100 đơn trong tháng, nhập số thật, rồi so lãi gộp file tính ra với lãi gộp trong sao kê của sàn. Lệch dưới 5% là dùng được; lệch trên 10% nghĩa là bạn còn thiếu một khoản phí nào đó trong khối 2 hoặc khối 3.
Bốn lỗi khiến file đẹp nhưng ra số sai
Bốn lỗi này chiếm gần hết các trường hợp file tính sai mà chúng tôi gặp khi rà cho brand.
- Lấy giá niêm yết thay giá bán thực. Shop chạy mã giảm 15% quanh năm nhưng file vẫn để giá gốc — mọi ngưỡng ROAS đều thấp hơn thực tế.
- Dùng một tỷ lệ phí chung cho cả shop. Mall và ngoài Mall, thời trang và làm đẹp có mức hoa hồng khác nhau. Trung bình hoá là cách nhanh nhất để một nửa danh mục bị đọc sai.
- Quên trần 50.000đ của Voucher Xtra. Với sản phẩm giá cao, tính 4% thẳng sẽ thổi phồng chi phí và khiến bạn tắt nhầm SKU đang lời.
- Không cập nhật khi sàn đổi phí. Đây là lý do sheet THAM_SO tồn tại. Đặt lịch nhắc rà lại vào đầu mỗi quý.
Cần tính nhanh trên số của chính mình thì dùng máy tính ROAS hoà vốn — nhập doanh thu, chi phí quảng cáo và các khoản biến đổi là ra ngưỡng cần đạt.
Câu hỏi thường gặp (FAQ)
ROAS hoà vốn bao nhiêu là bình thường ở Việt Nam 2026?
Không có con số chung, vì nó phụ thuộc hoàn toàn vào giá vốn và ngành hàng của bạn. Theo khung tính ở trên, biên đóng góp 40% cho ROAS hoà vốn 2,5; biên 25% cho 4,0; biên 20% cho 5,0. Ngành có giá vốn thấp như phụ kiện thường có ngưỡng dễ thở hơn ngành điện tử gia dụng. Tham khảo thêm benchmark ROAS theo ngành để so tương đối.
Nên tính ROAS hoà vốn theo từng SKU hay theo cả shop?
Theo từng SKU, rồi mới gộp. Tính theo cả shop che mất việc bạn đang bù lỗ cho vài SKU bằng lãi của SKU khác — mà thường chính những SKU lỗ lại là những SKU ăn nhiều ngân sách nhất vì chúng dễ ra click. Chỉ dùng ngưỡng gộp toàn shop khi báo cáo tổng quan cho cấp trên.
File này có dùng được cho quảng cáo Meta và Google không?
Có, phần biên đóng góp giữ nguyên. Khác biệt là khối phí nền tảng: bán qua website thì không có hoa hồng sàn nhưng có phí cổng thanh toán và tỷ lệ huỷ đơn COD thường cao hơn. Bạn thêm một lựa chọn "Website" ở cột C và khai bộ tham số riêng ở sheet THAM_SO là dùng được.
Bao lâu nên cập nhật lại file một lần?
Cập nhật sheet THAM_SO mỗi khi sàn công bố đổi phí, và rà toàn bộ giá vốn mỗi quý. Ngoài ra, cột tỷ lệ huỷ/hoàn nên làm mới hằng tháng vì nó biến động mạnh theo mùa — tháng sale con số này thường xấu đi rõ rệt so với tháng thường.
Biên đóng góp âm thì còn cứu được không?
Không cứu bằng quảng cáo được. Biên âm nghĩa là mỗi đơn bán ra đã lỗ trước khi tính một đồng tiền ads nào. Ba đường xử lý: tăng giá bán, đàm phán lại giá vốn, hoặc rút khỏi các chương trình phí tự nguyện. Nếu cả ba đều không khả thi, SKU đó nên dừng bán chứ không nên tối ưu camp.
Kết luận
ROAS hoà vốn không phải một con số bạn học thuộc, mà là một phép tính bạn phải chạy lại mỗi khi phí sàn, giá vốn hoặc tỷ lệ huỷ hoàn thay đổi. Một file bốn sheet với sáu công thức là đủ để bạn không bao giờ phải đoán nữa — và quan trọng hơn, đủ để cả team nhìn cùng một con số thay vì mỗi người một cảm nhận.
Nếu bạn muốn có người rà lại file cùng bạn, hoặc muốn đối chiếu ngưỡng ROAS của shop mình với mặt bằng ngành, đội Media Omni đang vận hành quảng cáo sàn cho hơn 300 brand và có thể xem giúp bạn. Liên hệ với chúng tôi tại đây.
