🎯 Mục tiêu bài học
- Hiểu và phân biệt GMV vs Net Revenue — hai chỉ số dễ nhầm lẫn nhất
- Nắm vững 10+ KPIs quan trọng trong E-commerce Analytics
- Biết cách tính toán mỗi KPI bằng SQL trên dataset ShopVN
- Hiểu mối quan hệ giữa các KPIs và cách chúng tác động lẫn nhau
- Xây dựng KPI Framework cho sàn thương mại điện tử
| Thông tin | Chi tiết |
|---|---|
| ⏱️ Thời lượng | 55 phút |
| 📖 Chủ đề chính | GMV, Revenue, AOV, Conversion Rate, Retention |
| 💡 Kiến thức cần có | Bài 01-02, SQL cơ bản |
| 🎯 Output | Tính được mọi KPI E-commerce trên ShopVN |
📖 Thuật ngữ quan trọng
| Thuật ngữ | Tiếng Việt | Công thức |
|---|---|---|
| GMV | Gross Merchandise Value | Tổng giá trị tất cả đơn hàng (kể cả cancel, return) |
| Net Revenue | Doanh thu thuần | Doanh thu sau khi trừ cancel, return, discount |
| AOV | Average Order Value | Total Revenue / Number of Orders |
| Conversion Rate | Tỷ lệ chuyển đổi | Orders / Total Visitors × 100% |
| Cart Abandonment | Tỷ lệ bỏ giỏ | Carts Not Purchased / Total Carts × 100% |
| Return Rate | Tỷ lệ trả hàng | Returned Items / Total Items × 100% |
| Repeat Purchase Rate | Tỷ lệ mua lại | Customers with 2+ orders / Total Customers |
| CAC | Customer Acquisition Cost | Marketing Spend / New Customers |
| CLV | Customer Lifetime Value | Avg Revenue per Customer × Avg Lifespan |
| NPS | Net Promoter Score | %Promoters - %Detractors |
Checkpoint
GMV bao gồm tất cả đơn hàng (kể cả hủy/trả), trong khi Net Revenue chỉ tính đơn Delivered. AOV = Revenue / Orders. Conversion Rate đo tỷ lệ khách mua hàng trên tổng khách truy cập. Repeat Purchase Rate đo tỷ lệ khách quay lại mua tiếp.
💰 GMV vs Net Revenue
Phân biệt GMV và Revenue
Từ GMV đến Net Revenue
| Chỉ số | Cách tính | Bao gồm | Sử dụng khi |
|---|---|---|---|
| GMV | SUM(total_amount) tất cả orders | Cancel + Return + Delivered | Đánh giá quy mô thị trường |
| Gross Revenue | SUM(total_amount) WHERE delivered | Chỉ đơn Delivered | Báo cáo kinh doanh nội bộ |
| Net Revenue | Gross Revenue - Returns - Discounts | Doanh thu thực nhận | Báo cáo tài chính |
1-- Tính GMV vs Net Revenue trên ShopVN2SELECT3 -- GMV: tất cả đơn hàng4 SUM(total_amount) AS gmv,56 -- Gross Revenue: chỉ đơn Delivered7 SUM(CASE WHEN status = 'Delivered' THEN total_amount ELSE 0 END) AS gross_revenue,89 -- Net Revenue: Delivered trừ discount10 SUM(CASE WHEN status = 'Delivered'11 THEN total_amount - discount_amount ELSE 0 END) AS net_revenue,1213 -- Tỷ lệ Cancel14 ROUND(15 SUM(CASE WHEN status = 'Cancelled' THEN 1 ELSE 0 END) * 100.016 / COUNT(*), 117 ) AS cancel_rate_pct1819FROM fact_orders20WHERE YEAR(order_date) = 2024;Nhiều analyst mới vào E-commerce mắc lỗi báo cáo GMV như doanh thu. GMV luôn cao hơn Net Revenue 15-25% do bao gồm cả đơn cancel và return. Sếp hỏi "doanh thu tháng này bao nhiêu?" — phải trả lời bằng Net Revenue, không phải GMV!
📊 KPI Framework cho E-commerce
4 nhóm KPIs chính
E-commerce KPI Framework
Bảng tổng hợp KPIs trên ShopVN
| KPI | Công thức | Giá trị ShopVN | Benchmark |
|---|---|---|---|
| GMV | SUM(all orders) | ~600 tỷ VND/năm | Tùy quy mô |
| Net Revenue | SUM(delivered orders) | ~500 tỷ VND/năm | GMV × 80-85% |
| AOV | Revenue / Orders | ~1.4M VND | 500K-2M VND |
| Conversion Rate | Orders / Visitors | ~3.5% | 2-5% |
| Repeat Rate | Returning / Total Customers | ~35% | 25-40% |
| Cancel Rate | Cancelled / Total Orders | ~8% | 5-15% |
| Return Rate | Returns / Delivered Items | ~4% | 3-8% |
| Avg Rating | AVG(rating) | 4.3/5 | 4.0-4.5 |
| Avg Delivery Days | AVG(delivery_days) | 3.2 ngày | 2-5 ngày |
🎯 Revenue KPIs — Thực hành SQL
1. GMV và Revenue theo tháng
1-- GMV và Revenue theo tháng 20242SELECT3 MONTH(o.order_date) AS month,4 COUNT(DISTINCT o.order_id) AS total_orders,5 SUM(o.total_amount) AS gmv,6 SUM(CASE WHEN o.status = 'Delivered'7 THEN o.total_amount ELSE 0 END) AS net_revenue,8 ROUND(AVG(CASE WHEN o.status = 'Delivered'9 THEN o.total_amount END), 0) AS aov10FROM fact_orders o11WHERE YEAR(o.order_date) = 202412GROUP BY MONTH(o.order_date)13ORDER BY month;2. Revenue theo Category
1-- Top 10 categories theo doanh thu2SELECT3 p.category,4 COUNT(DISTINCT oi.order_id) AS orders,5 SUM(oi.line_total) AS revenue,6 ROUND(AVG(oi.line_total), 0) AS avg_item_value,7 ROUND(8 SUM(CASE WHEN oi.is_returned = 1 THEN 1 ELSE 0 END) * 100.09 / COUNT(*), 110 ) AS return_rate_pct11FROM fact_order_items oi12JOIN dim_product p ON oi.product_id = p.product_id13JOIN fact_orders o ON oi.order_id = o.order_id14WHERE o.status = 'Delivered'15GROUP BY p.category16ORDER BY revenue DESC17LIMIT 10;3. AOV Trend
1-- AOV theo tuần để phát hiện trends2SELECT3 t.year,4 t.week_of_year,5 COUNT(DISTINCT o.order_id) AS orders,6 ROUND(AVG(o.total_amount), 0) AS aov,7 ROUND(AVG(o.item_count), 1) AS avg_items_per_order8FROM fact_orders o9JOIN dim_time t ON o.order_date = t.date_key10WHERE o.status = 'Delivered'11 AND t.year = 202412GROUP BY t.year, t.week_of_year13ORDER BY t.week_of_year;Checkpoint
GMV bao gồm tất cả đơn hàng, Net Revenue chỉ tính đơn Delivered. AOV = Revenue / Orders, thường ~1.4M VND trên ShopVN. Revenue phân tích theo tháng giúp phát hiện seasonality, theo category giúp xác định nguồn doanh thu chính.
🔄 Conversion & Customer KPIs — Thực hành SQL
1. Conversion Rate (ước lượng từ page views)
1-- Ước lượng Conversion Rate theo tháng2WITH monthly_visitors AS (3 SELECT4 MONTH(view_date) AS month,5 COUNT(DISTINCT session_id) AS unique_sessions6 FROM fact_page_views7 WHERE YEAR(view_date) = 20248 GROUP BY MONTH(view_date)9),10monthly_orders AS (11 SELECT12 MONTH(order_date) AS month,13 COUNT(DISTINCT order_id) AS total_orders14 FROM fact_orders15 WHERE YEAR(order_date) = 202416 AND status != 'Cancelled'17 GROUP BY MONTH(order_date)18)19SELECT20 v.month,21 v.unique_sessions,22 o.total_orders,23 ROUND(o.total_orders * 100.0 / v.unique_sessions, 2) AS conversion_rate_pct24FROM monthly_visitors v25JOIN monthly_orders o ON v.month = o.month26ORDER BY v.month;2. New vs Returning Customers
1-- Phân tích New vs Returning customers theo tháng2WITH first_purchase AS (3 SELECT4 customer_id,5 MIN(order_date) AS first_order_date6 FROM fact_orders7 WHERE status = 'Delivered'8 GROUP BY customer_id9)10SELECT11 MONTH(o.order_date) AS month,12 COUNT(DISTINCT CASE13 WHEN MONTH(fp.first_order_date) = MONTH(o.order_date)14 AND YEAR(fp.first_order_date) = YEAR(o.order_date)15 THEN o.customer_id END) AS new_customers,16 COUNT(DISTINCT CASE17 WHEN MONTH(fp.first_order_date) != MONTH(o.order_date)18 OR YEAR(fp.first_order_date) != YEAR(o.order_date)19 THEN o.customer_id END) AS returning_customers20FROM fact_orders o21JOIN first_purchase fp ON o.customer_id = fp.customer_id22WHERE YEAR(o.order_date) = 202423 AND o.status = 'Delivered'24GROUP BY MONTH(o.order_date)25ORDER BY month;3. Repeat Purchase Rate
1-- Repeat Purchase Rate tổng thể2SELECT3 COUNT(DISTINCT customer_id) AS total_customers,4 COUNT(DISTINCT CASE WHEN order_count >= 25 THEN customer_id END) AS repeat_customers,6 ROUND(7 COUNT(DISTINCT CASE WHEN order_count >= 2 THEN customer_id END) * 100.08 / COUNT(DISTINCT customer_id), 19 ) AS repeat_rate_pct10FROM (11 SELECT12 customer_id,13 COUNT(DISTINCT order_id) AS order_count14 FROM fact_orders15 WHERE status = 'Delivered'16 GROUP BY customer_id17) customer_orders;⚙️ Operations KPIs — Thực hành SQL
1. Cancel Rate theo Payment Method
1-- Cancel Rate theo payment method2SELECT3 payment_method,4 COUNT(*) AS total_orders,5 SUM(CASE WHEN status = 'Cancelled' THEN 1 ELSE 0 END) AS cancelled,6 ROUND(7 SUM(CASE WHEN status = 'Cancelled' THEN 1 ELSE 0 END) * 100.08 / COUNT(*), 19 ) AS cancel_rate_pct10FROM fact_orders11WHERE YEAR(order_date) = 202412GROUP BY payment_method13ORDER BY cancel_rate_pct DESC;2. Return Rate theo Category
1-- Return Rate theo product category2SELECT3 p.category,4 COUNT(*) AS total_items,5 SUM(oi.is_returned) AS returned_items,6 ROUND(7 SUM(oi.is_returned) * 100.0 / COUNT(*), 18 ) AS return_rate_pct,9 ROUND(AVG(oi.unit_price), 0) AS avg_price10FROM fact_order_items oi11JOIN dim_product p ON oi.product_id = p.product_id12GROUP BY p.category13ORDER BY return_rate_pct DESC;3. Delivery Performance
1-- On-time Delivery Rate theo shipping method2SELECT3 shipping_method,4 COUNT(*) AS delivered_orders,5 ROUND(AVG(delivery_days), 1) AS avg_days,6 MIN(delivery_days) AS min_days,7 MAX(delivery_days) AS max_days,8 ROUND(9 SUM(CASE10 WHEN shipping_method = 'Standard' AND delivery_days <= 5 THEN 111 WHEN shipping_method = 'Express' AND delivery_days <= 2 THEN 112 WHEN shipping_method = 'Same-day' AND delivery_days <= 1 THEN 113 ELSE 014 END) * 100.0 / COUNT(*), 115 ) AS on_time_rate_pct16FROM fact_orders17WHERE status = 'Delivered'18 AND delivery_days IS NOT NULL19GROUP BY shipping_method;Cancel Rate, Return Rate, và Delivery Time ảnh hưởng trực tiếp đến trải nghiệm khách hàng và rating trên sàn. DA cần monitor các chỉ số này hàng ngày để phát hiện vấn đề sớm.
📈 KPI Dashboard Overview
Mẫu KPI Dashboard cho E-commerce
| Section | KPIs | Tần suất theo dõi |
|---|---|---|
| Revenue | GMV, Net Revenue, AOV, Growth Rate | Daily/Weekly |
| Orders | Total Orders, Cancel Rate, Return Rate | Daily |
| Customers | New Users, Returning Rate, CLV | Weekly/Monthly |
| Conversion | Conversion Rate, Cart Abandonment | Daily |
| Operations | On-time Delivery, Avg Delivery Days | Daily |
| Quality | Avg Rating, Review Response Rate | Weekly |
KPIs theo cấp quản lý
| Cấp | KPIs quan tâm | Tần suất |
|---|---|---|
| CEO/C-level | GMV, Revenue Growth, Market Share | Monthly |
| VP/Director | Conversion Rate, CLV, CAC, Repeat Rate | Weekly |
| Manager | AOV, Category Performance, Seller Quality | Daily/Weekly |
| Analyst | Tất cả chi tiết metrics, ad-hoc deep dives | Daily |
📋 Tổng kết
Kiến thức đã học
| Chủ đề | Nội dung chính |
|---|---|
| GMV vs Revenue | GMV bao gồm tất cả, Net Revenue chỉ tính Delivered sau trừ returns |
| KPI Framework | 4 nhóm: Revenue, Conversion, Customer, Operations |
| Revenue KPIs | GMV, Net Revenue, AOV, Revenue by Category |
| Conversion KPIs | Conversion Rate, Cart Abandonment, Add-to-Cart Rate |
| Customer KPIs | New vs Returning, Repeat Rate, CLV |
| Operations KPIs | Cancel Rate, Return Rate, On-time Delivery |
Key Takeaways
- ✅ GMV khác Net Revenue — luôn hỏi rõ sếp muốn metrics nào
- ✅ Conversion Rate ~3.5% — cải thiện 0.5% có thể tăng revenue hàng chục tỷ
- ✅ COD có cancel rate cao nhất — insight quan trọng cho operations team
- ✅ KPI Framework giúp hệ thống hóa việc monitoring kinh doanh
Bài tiếp theo: Funnel Analysis →
🎉 Bạn đã nắm vững các KPIs E-commerce! Module tiếp theo sẽ deep-dive vào Funnel Analysis và Customer Segmentation.
