SQL Coding

#021025 SQL Task: Price Waterfall

Vấn Đề Gặp Phải

Bạn đang đối mặt với một vấn đề: Doanh thu niêm yết tăng trưởng mạnh, nhưng lợi nhuận thực tế lại không tăng tương xứng. Bạn nghi ngờ rằng cấu trúc chiết khấu đa tầng, đặc biệt là chiết khấu bậc thang và chương trình chiết khấu trả sau cuối năm, đang bào mòn lợi nhuận một cách âm thầm.

Bạn đang cần một báo cáo để trả lời câu hỏi: Sự thật về dòng tiền? Cứ mỗi 100 đồng ghi trên giá bán, số tiền thực sự bỏ túi được bao nhiêu sau khi trừ đi tất cả các khoản giảm trừ?

Minh Họa Vấn Đề

  • Sản phẩm: Laptop Pro X (hàng điện tử)
  • Số lượng mua: 150 cái
  • Giá niêm yết: 2,000đ / cái
  • Thông tin khác: TungTen Company là khách hàng mua rất nhiều, và tổng sản lượng cả năm đã vượt ngưỡng N sản phẩm.

Quá trình Price Waterfall cho giao dịch này diễn ra như sau:

  • Bước 1: Doanh thu niêm yết (Gross Revenue)
    • Đây là số tiền trước khi giảm trừ => 150 cái * 2,000đ = 300,000đ
  • Bước 2: Trừ chiết khấu thương mại (Trade Discount – 5%)
    • Đây là khoản giảm trừ đầu tiên, áp dụng cho tất cả => 300,000đ * 5% = 15,000đ
    • Giá trị còn lại (Giá trên hóa đơn): 300,000đ – 15,000đ = 285,000đ
  • Bước 3: Trừ chiết khấu bậc thang (Tiered Discount)
    • Chính sách này chỉ áp dụng cho hàng điện tử, 5% cho 50 sản phẩm đầu tiên, và 10% cho những sản phẩm tiếp theo.
    • Tính cho 50 cái đầu: 50 cái * 2,000đ * 5% = 5,000đ
    • Tính cho (150-50) = 100 cái còn lại: 100 cái * 2,000đ * 10% = 20,000đ
    • Tổng chiết khấu bậc thang: 5,000đ + 20,000đ = 25,000đ
    • Giá trị còn lại: 285,000đ – 25,000đ = 260,000đ
  • Bước 4: Trừ chiết khấu trả sau (Rebate – 2%)
    • Vì TungTen Company đã vượt ngưỡng N sản phẩm cả năm, nên được hưởng thêm 2% trên doanh thu niêm yết của giao dịch này. Khoản này không trừ trên hóa đơn mà sẽ được thanh toán vào cuối năm => 300,000đ * 2% = 6,000đ
  • Bước 5: Giá thực trả cuối cùng (Pocket Price)
    • Đây là số tiền công ty thực sự nhận được sau khi đã trừ đi tất cả.
    • Giá thực trả = 300,000 (Gross) – 15,000 (Trade) – 25,000 (Tiered) – 6,000 (Rebate) = 254,000đ
  • Tổng thất thoát (Total Leakage)
    • leakage_trade + leakage_tiered + leakage_rebate = 15,000 + 25,000 + 6,000 = 46,000đ
    • Từ 300,000đ ban đầu, đã có 46,000đ (tương đương 15.3%) bị rò rỉ qua các bậc của Price Waterfall.

Task Cần Giải Quyết

Viết một truy vấn SQL để tự động hóa quá trình tính toán phức tạp này cho TẤT CẢ các giao dịch trong năm và tổng hợp kết quả theo từng phân khúc khách hàng.

  • Tính toán tổng doanh thu niêm yết (total_gross_revenue) cho mỗi phân khúc.
  • Bóc tách và tính toán tổng số tiền thất thoát cho từng loại chiết khấu cụ thể: leakage_tradeleakage_tieredleakage_promotion, và leakage_rebate.
  • Xác định doanh thu thực trả cuối cùng (total_pocket_revenue) mà công ty thực sự thu về.
  • Tính toán tổng thất thoát (total_leakage) và tỷ lệ thất thoát (leakage_percentage) để so sánh hiệu quả giữa các phân khúc khách hàng.

Output Mẫu

SegmentTotal Gross RevenueLeakage (Trade)Leakage (Tiered)Leakage (Promotion)Leakage (Rebate)Total Pocket RevenueTotal LeakageLeakage %
Standard
Strategic

Data Import & Source Code

Tài liệu Premium dành cho các bạn học viên lớp Data Analyst BootCamp. Nếu bạn muốn học Phân Tích Dữ Liệu theo phương pháp Learning by Doing Tasks thì có thể Inbox mình TẠI ĐÂY.