Case Study 01TikTok Shop·01/06/2026–31/07/2026·F&B

38,2 triệu doanh thu nhưng P&L vẫn âm 5,584 triệu. Vấn đề của Mì Cay Dozin nằm ở đâu?

Một case không tô hồng GMV. D2 bóc lại Orders, Ads, phí nền tảng và giá vốn để tìm ra điểm mà dashboard quảng cáo không trả lời được: shop đang bán được, nhưng có đang tạo contribution profit hay không?

Executive snapshot

Revenue

0,0 triệu

Total cost

0,0 triệu

Contribution

−5,584 triệu

Valid orders

0

AOV

120.505đ

Margin

−14,6%

Nghịch lý cần giải

2,67x

Revenue / Ads ratio của cả kỳ

Nếu chỉ nhìn hiệu suất Ads, con số này có thể tạo cảm giác “vẫn chạy được”. Nhưng sau COGS, phí và đóng gói, cost structure yêu cầu mức break-even khoảng 4,38x nếu các yếu tố khác giữ nguyên.

Case này dùng số đã xác nhận trong report TikTok của kỳ. Không chèn số Shopee chưa được reconcile đầy đủ.

Đơn hợp lệ

0

Đơn được dùng để tính kỳ phân tích.

Combo units

0

Tổng 3 SKU trong bảng sản phẩm của report.

Gói mì theo cost rule

0

Khớp tuyệt đối với product cost 23,12 triệu × 10.000đ/gói.

AOV

0đ

38,2 triệu / 317 đơn hợp lệ.

01 · Bài toán thật

Không thiếu dashboard. Thiếu một lớp dữ liệu trả lời được “tại sao bán mà vẫn lỗ”.

Dozin có order, có GMV và có Ads. Nhưng Orders, Ads, finance/fees và cost master nằm ở những lớp khác nhau. Nếu cộng bằng mắt hoặc lấy một tỷ lệ phí giả định, P&L có thể sai ngay từ đầu. Vì vậy bước đầu tiên không phải tối ưu campaign — mà là xác định source of truth cho từng loại số.

Orders

Đơn hợp lệ, ngày tạo đơn, SKU, số lượng và doanh thu ở lớp order.

Ads

Chi tiêu quảng cáo của kỳ để đo cost-to-revenue ở cấp điều hành.

Fees / Finance

Phí nền tảng cần lấy từ dữ liệu finance, không gán một % mặc định cho mọi kỳ.

Cost master

Quy tắc giá vốn 10.000đ/gói mì và chi phí đóng gói theo đơn.

Reconciliation layer → một P&L có thể kiểm tra

02 · Unit economics

Khi bóc toàn bộ cost, vấn đề không còn là “Ads cao” một cách chung chung.

COGS đã chiếm 60,5% doanh thu trước khi tính Ads. TikTok fees thêm 15%, đóng gói 1,7% và Ads 37,4%. Tổng cost chạm 114,6% doanh thu — nghĩa là mô hình hiện tại không có đủ headroom để mua traffic ở mức này.

P&L waterfall

38,2 triệu đi đâu?

Tổng cost

43,784 triệu

Doanh thu38,2 triệu

Giá vốn sản phẩm

2.312 gói mì × 10.000đ

23,12 triệu

60.5% doanh thu

Ads

Chi phí Ads ghi nhận trong report

14,3 triệu

37.4% doanh thu

Phí TikTok

Lấy từ lớp phí/đối soát của kỳ

5,73 triệu

15% doanh thu

Đóng gói

317 đơn hợp lệ × 2.000đ

0,634 triệu

1.7% doanh thu

Contribution sau các cost trong report

−5,584 triệu

Tổng cost bằng 114,6% doanh thu. Vì vậy doanh thu vẫn tăng nhưng mỗi vòng scale có thể làm lỗ lớn hơn nếu không đặt guardrail theo P&L.

03 · Break-even threshold

D2 chuyển câu hỏi từ “ROAS bao nhiêu là đẹp?” thành “mức Ads nào shop này thật sự chịu được?”.

Ads efficiency ≠ profitability

2,67x nhìn không tệ. Nhưng break-even cần khoảng 4,38x.

Đây là Revenue / Ads ratio ở cấp kỳ, không phải ROAS attribution hiển thị trong TikTok Ads Manager. D2 dùng nó để trả lời một câu hỏi khác: với cost structure hiện tại, kỳ này Ads được phép tiêu tối đa bao nhiêu trước khi P&L âm?

2,67x

Thực tế

4,38x

Break-even

Ads thực tế

14,3 triệu

37,4% doanh thu

Ads break-even tối đa

8,716 triệu

22,8% doanh thu

Khoảng vượt break-even

5,584 triệu

Chính bằng mức lỗ của kỳ

04 · SKU mix

Ba combo không tạo cùng một mức “room” trước Ads và platform fee.

Với cost rule 10.000đ mỗi gói mì, combo lớn tạo spread trước fee/Ads/packaging cao hơn trên mỗi đơn vị combo. Đây chưa phải lợi nhuận SKU cuối cùng — nhưng là tín hiệu để ưu tiên allocation, rồi tiếp tục phân bổ fee và Ads đúng SKU trước khi scale.

Combo 5 gói

60.3% combo units
Combo units
196
Số gói mì
980
Revenue trong bảng SKU
12,462 triệu
Revenue TB / combo
63.584đ
Spread trước fee/Ads/pack
+13.584đ

Combo 10 gói

35.4% combo units
Combo units
115
Số gói mì
1.150
Revenue trong bảng SKU
15,704 triệu
Revenue TB / combo
136.558đ
Spread trước fee/Ads/pack
+36.558đ

Combo 10+3

4.3% combo units
Combo units
14
Số gói mì
182
Revenue trong bảng SKU
2,492 triệu
Revenue TB / combo
178.010đ
Spread trước fee/Ads/pack
+48.010đ

05 · Data integrity

Một case tốt phải chỉ ra cả chỗ dữ liệu chưa khớp.

Order-level revenue của kỳ là 38,2 triệu, trong khi ba dòng SKU được trích từ bảng sản phẩm cộng lại khoảng 30,659 triệu. Chênh lệch 7,541 triệu không nên bị “lấp” bằng giả định.

D2 đánh dấu nó thành reconciliation gap để tiếp tục map voucher, subsidy, shipping, adjustment hoặc khác biệt định nghĩa revenue giữa các export. Chỉ sau khi map được mới phân bổ xuống SKU.

Order-level revenue38,200 triệu
Subtotal từ 3 SKU rows30,659 triệu

Reconciliation gap: 7,541 triệu

Không tự gán nguyên nhân. Đây là phần phải được truy ngược về định nghĩa từng export và settlement layer.

06 · Diagnosis → action

Sau khi có P&L, quyết định vận hành trở nên cụ thể hơn nhiều.

01

Đặt guardrail Ads theo contribution

Nếu cost structure không đổi, period-level Ads ceiling nằm quanh 8,716 triệu — tương đương khoảng 22,8% doanh thu, thay vì 37,4% như kỳ này.

02

Ưu tiên bundle có economics tốt hơn

Combo lớn có spread trước fee/Ads cao hơn mỗi combo. Nhưng chỉ scale sau khi phân bổ được fee và traffic cost theo SKU, không dựa vào AOV một mình.

03

Tách P&L khỏi cash flow

Ads của report có trạng thái unpaid/outstanding. Chi phí kinh tế vẫn phải ghi nhận trong P&L của kỳ, trong khi payout/settlement được theo dõi ở một lớp cash-flow khác.

04

Không che reconciliation gap

Khoảng chênh order-vs-SKU được giữ như exception cho tới khi tìm ra nguồn, thay vì ép dashboard phải khớp bằng một giả định khó kiểm chứng.

07 · Operating system

Giá trị cuối cùng không phải một file Excel. Là một vòng lặp ra quyết định.

Import

Orders · Ads · Finance · Cost

Reconcile

Chuẩn hóa kỳ và source of truth

P&L

Revenue → Fee → Ads → COGS

Threshold

Break-even · Ads ceiling · SKU room

Action

Giữ · giảm · scale · điều chỉnh bundle

Publication notes

D2 công bố gì — và cố ý không công bố gì?

Có thể kiểm tra

  • • Kỳ 01/06–31/07/2026.
  • • 38,2 triệu revenue và 317 valid orders.
  • • Ads, fee, packaging, COGS và P&L của report.
  • • SKU mix và cost rule 10.000đ/gói mì.

Không suy diễn

  • • Không ghép số Shopee chưa reconcile vào case này.
  • • Không claim tăng trưởng/ROAS lift nếu thiếu baseline chuẩn.
  • • Không gọi 2,67x là TikTok attributed ROAS.
  • • Không tự giải thích reconciliation gap khi chưa có bằng chứng.

D2 Commerce Control

Nếu shop đang có GMV nhưng bạn chưa biết chính xác tiền đang mất ở Ads, fee hay COGS, đó chính là bài toán Commerce Control.

D2 biến các file từ TikTok Shop và Shopee thành một lớp P&L có thể đối soát để chủ shop biết SKU nào đang tạo contribution và mức Ads nào thực sự chịu được.