Bảng lãi lỗ (P&L) cho mảng bán online của Every Half: Sàn TMĐT (TikTok Shop · Shopee · Website) và Delivery (Grab · ShopeeFood · Be · Xanh Ngon). Tài liệu giải thích số lấy từ đâu, phần nào tự chạy, và đang thiếu chỗ nào.
Doanh thu bán lẻ online qua Fabi XR. Đầy đủ phí sàn, ads, affiliate, huỷ, hoàn — lấy trực tiếp từ API của sàn.
Giao đồ ăn của cửa hàng. Doanh thu từ Metabase (POS), phí theo % hợp đồng từng sàn.
Cấu trúc mỗi tab đọc từ trên xuống: GMV → Doanh thu thuần → Giá vốn (COGS) → Phí sàn → Phí marketing → Lợi nhuận gộp → trừ nhân sự → Lợi nhuận công ty. Bấm tên kênh để xem chi tiết sản phẩm.
| Chỉ số | Nguồn | Ghi chú |
|---|---|---|
| Doanh thu (Gross / Net / Giảm giá) | Fabi XR — sale_detail theo kênh | Số thật từ POS bán online |
| GMV | TikTok = Order API · Shopee = số datacenter chính thức (khớp web) | TikTok lệch Analytics ~1,2% · Shopee cập nhật định kỳ từ web |
| Phí sàn · Payment · Voucher · Shipping | TikTok đối soát (statements) · Shopee escrow | Nhóm Platform Fee |
| Ads · Affiliate | TikTok ads statements · Shopee ví SPM | Nhóm Marketing Fee |
| Cancel (huỷ đơn) | Order API — đơn CANCELLED, Σ giá bán | Theo ngày đặt đơn |
| Refund (trả hàng/hoàn) | Đối soát + Order API phân loại | Loại riêng khỏi huỷ |
| COGS (giá vốn) | File ECOM COG.xlsx theo mã hàng | Mã chưa có giá → tạm 25% giá bán (chờ Phước) |
| Booking / Marketing | Nạp từ PDF nghiệm thu (đọc cả file scan) | Tự chống nạp trùng theo mã hợp đồng |
| Nhân sự | Nhập tay | Trừ ra Lợi nhuận công ty |
| Chỉ số | Nguồn | Ghi chú |
|---|---|---|
| Doanh thu (Gross / Net) | Metabase — transaction_details (POS cửa hàng) | 4 kênh Grab/ShopeeFood/Be/Xanh |
| Phí sàn | Gross × % hợp đồng từng kênh | % kế bên = phí ÷ Net |
| GMV | Grab = số thật từ portal Grab | ShopeeFood/Be/Xanh: chưa có nguồn → để trống |
| Điều chỉnh - Refund | Grab = báo cáo đối soát theo ngày (số thật) | ShopeeFood/Be/Xanh: chưa có nguồn |
| COGS (giá vốn) | Giá vốn THẬT theo công thức pha chế (xem cách tính bên dưới) | Phủ 95,8% doanh thu · món chưa có công thức tạm 30% Net |
| Packaging | 2% Doanh thu thuần | Theo cấu trúc Dash_Deli |
| Ads booking | Nạp từ PDF nghiệm thu / nhập tay | Chưa có file thực tế để test các trường hợp |
| Nhân sự | Nhập tay (mặc định 16 triệu/tháng) | Trừ ra Lợi nhuận công ty |
Ví dụ Grab tháng 6: Gross 1.218.122.000 × 22,66% = Phí 275.987.744. Con số % hiển thị kế bên (26,1%) = phí ÷ Doanh thu thuần (1.055.939.500).
Món delivery là đồ uống pha chế tại quán (Bạc Xỉu, Cà Phê Sữa…), không phải hàng đóng gói có sẵn giá vốn — nên giá vốn phải nổ ra từ công thức pha chế, không tra thẳng được như tab Sàn.
| Bước | Làm gì |
|---|---|
| 1. Lấy công thức | Lấy công thức pha chế mỗi món từ hệ thống iPOS (định mức từng nguyên vật liệu: cà phê, sữa, syrup, đá…) |
| 2. Nổ ra nguyên vật liệu | Nổ đệ quy tới NVL gốc — ví dụ 1 Bạc Xỉu = 21g cà phê rang + 20g sữa đặc + 60g sữa tươi |
| 3. Nhân đơn giá | Mỗi NVL × đơn giá trong file 02. Unit Cost.xlsx, khớp hoàn toàn theo mã hàng (item_id) — cả món lẫn NVL, không khớp theo tên nên không nhầm. Quy đổi đơn vị (gram → kg/túi) tự động. |
| 4. Ra giá vốn/món | Cộng lại — ví dụ Bạc Xỉu = 8.048đ (cà phê 4.048 + sữa đặc 1.010 + sữa tươi 2.990) |
| 5. Bánh & hàng đóng gói | Món KHÔNG có công thức pha chế (bánh, cà phê gói dripbag) → lấy giá vốn thành phẩm trực tiếp từ 02. Unit Cost theo mã hàng |
Kết quả T1–T6/2026: phủ 95,8% doanh thu có giá vốn thật. COGS thật = 1.523.274.175 (24,1% Net) — trước đây để 30% phẳng = 1.895.151.413, tức 30% đang thổi giá vốn lên ~372 triệu, làm lãi gộp delivery thấp giả. Món nào tính được giá vốn thật thì dùng số thật; món chưa tính được vẫn tạm 30% Net.
⚙️ Cập nhật khi thêm tháng mới: chạy python deli_cogs_real.py --build trong thư mục dự án (số công thức ổn định, không cần chạy thường xuyên).
| Nhóm | Món | Doanh thu | % DT deli | Lý do |
|---|---|---|---|---|
| Combo / khuyến mãi | [GRAB] Mua 1 Matcha Tặng 1 · Combo Matcha Latte + Cà Phê Sữa · Combo Cà Phê Việt + Bánh · OTP / Good Morning / Refreshing / Relaxing Snack Combo · [GRAB] Combo Đại Lễ · các gói giảm −5%/−10%/−30% · [SPF] Cà Phê Việt + Bánh… | ~171.000.000 | 2,7% | Gói nhiều món → để 30% là hợp lý |
| Thức uống mới | Blooming Coffee Kombucha · Golden Osmanthus · Blooming Matcha | ~68.000.000 | 1,1% | Chưa có công thức pha chế trong iPOS (món mới/theo mùa) |
| Bánh mới | Sourdough S'mores / Red Velvet Cookie · Cinnamon Sourdough Brioche · Cinnamon Roll (HA) · Croissant (HA)/(HN) · Pain Au Chocolat | ~25.700.000 | 0,4% | Mã món chưa có trong 02. Unit Cost → cần bổ sung giá vốn theo mã |
| Tổng 44 món | 264.475.175 | 4,2% | Đang tạm tính 30% Net |
Muốn phủ 100%: (1) bổ sung công thức pha chế cho các thức uống mới trong iPOS; (2) bổ sung giá vốn theo mã cho các bánh mới vào 02. Unit Cost. Combo/promo có thể để 30% vì gói nhiều món.
Cột % kế bên mỗi dòng = dòng đó ÷ Doanh thu thuần (Net) của kênh. Discount% và COGS% tuy cùng chia cho Net nhưng đo 2 thứ khác hẳn, không liên quan nhau:
| Chỉ số | Ý nghĩa | Ví dụ kênh Xanh Ngon |
|---|---|---|
| Discount % | Giảm giá ÷ Net = kênh này khuyến mãi bao nhiêu | 494.000 ÷ 6.266.000 = 8% |
| COGS % | Giá vốn nguyên liệu ÷ Net = nguyên liệu chiếm bao nhiêu so với giá bán | 1.232.514 ÷ 6.266.000 = ~20% |
→ Xanh khuyến mãi ít (8%) nhưng món Xanh bán có giá vốn ~20% giá bán — discount thấp không kéo COGS thấp theo. Giữa các kênh, COGS% chênh nhau chủ yếu do mix món khác nhau: kênh bán nhiều món giá vốn rẻ → COGS% thấp; bán nhiều món đắt nguyên liệu (matcha, sữa yến mạch) → COGS% cao. Đây là lý do sau khi dùng giá vốn thật theo từng món, mỗi kênh mới có một COGS% riêng (trước đây để 30% cào bằng nên kênh nào cũng 30%).
| Phần | Trạng thái | Chi tiết |
|---|---|---|
| Sàn — Doanh thu / Phí / COGS / Lợi nhuận | Tự động | Cron 9:30 pull API → build → deploy. Token TikTok/Shopee tự gia hạn. |
| Sàn — Chốt phí tháng cũ | Tự động | Mỗi ngày 15 chạy lại tháng trước để lấy đủ phí đã đối soát. |
| Sàn — GMV | Tự động | Qua Order API, lệch Analytics ~1,2%. |
| Delivery — Doanh thu / Phí / COGS / Lợi nhuận | Tự động | Cron 9:30 tính lại từ Metabase. |
| Sàn — GMV Shopee (số web chính thức) | Định kỳ | Kéo từ datacenter Shopee (cần đăng nhập Shopee seller); cron không đè. |
| Delivery — GMV + Điều chỉnh Grab | Định kỳ | Chạy tay hàng tuần (đăng nhập Grab bằng mật khẩu, không cần OTP). |
| Delivery — GMV ShopeeFood (14 quán) | Định kỳ | Còn thiếu — cần đăng nhập lại + OTP (SMS) mỗi kỳ, Shopee hết hạn phiên sau vài ngày. |
| GMV ShopeeFood / Be / Xanh | Chưa có | Be/Xanh không có nguồn web để lấy GMV riêng. |
| Mã / Tên | Doanh thu net | % DT sàn |
|---|---|---|
| Combo Dripbag Mixed 10 (mới) | 123.591.874 | 5,9% |
| Set Dripbag Mixed 6 gói | 29.406.084 | 1,4% |
| Cà phê gói (CPG_Peaberry_200g) | 15.100.260 | 0,7% |
| COMBO TÚI MŨ TÍM | 13.400.000 | 0,6% |
| Combo 10 Dripbag Đưng K'nớ | 8.861.163 | 0,4% |
| Combo 10 Ecuador · Combo 5 Ecuador · Combo 10/5 Peru · các combo Tết 2026… | 38.324.206 | 1,8% |
| Tổng 19 mã chưa có giá vốn | 228.683.587 | 10,9% |
| Khoản | Giá trị | Ghi chú |
|---|---|---|
| GMV TikTok (Order API) | 97.973.540 | Lệch Analytics −1,2% |
| Grab — Gross | 1.218.122.000 | Phí 275.987.744 (22,66% Gross / 26,1% Net) |
| Grab — Điều chỉnh/Hoàn | −20.091.906 | Chủ yếu 3 ngày đầu tháng |
| Booking Sàn — tháng 6 | 7.959.259 | Tháng 5: 11.748.147 |
Delivery cả kỳ (T1–T6): Doanh thu thuần 6.317.171.378 · Lợi nhuận công ty 2.642.402.767 (41,8%). Sàn cả kỳ: Doanh thu thuần 2.098.633.294. Các số cập nhật lại mỗi sáng.
EH@Ecom2026.