Chiết khấu ngành dược: bài toán "ghép nhiều suất" mà Excel không giải nổi

Đội Fable-X3/9/2026

Mua 2,5 triệu tặng 200 nghìn. Mua 900 nghìn tặng 50 nghìn. Vậy đơn 3,46 triệu được tặng bao nhiêu? Câu trả lời sai có thể khiến doanh nghiệp mất 17% giá trị đơn hàng mà không ai nhận ra.

Chiết khấu ngành dược: bài toán "ghép nhiều suất" mà Excel không giải nổi

Đây là một chương trình khuyến mãi hoàn toàn bình thường trong ngành phân phối dược:

  • Đơn từ 900.000đ — tặng 50.000đ
  • Đơn từ 1.600.000đ — tặng 100.000đ
  • Đơn từ 2.500.000đ — tặng 200.000đ

Và đây là câu hỏi tưởng dễ: một đơn hàng 3.466.645đ thì được tặng bao nhiêu?

Ba câu trả lời, ba số tiền khác nhau

Cách thứ nhất — chỉ lấy bậc cao nhất đạt được: đơn vượt 2,5 triệu nên tặng 200.000đ. Đơn giản, nhưng khách hàng sẽ thắc mắc: phần 966.645đ dư ra thì sao, chẳng lẽ không được tính gì?

Cách thứ hai — cộng dồn mọi bậc đã vượt qua: đơn này vượt cả ba mốc, nên tặng 50.000 + 100.000 + 200.000 = 350.000đ. Nghe hào phóng, nhưng đây là cách tính khiến doanh nghiệp chảy máu. Khi có thêm hệ số bội số, chúng tôi từng đo được một đơn hàng ăn tới 600.000đ tiền thưởng — tương đương 17% giá trị đơn, trong khi chương trình chỉ có ý định tặng 200.000đ.

Cách thứ ba — chia đơn hàng thành nhiều "suất" tối ưu: 3.466.645đ = một suất 2,5 triệu + một suất 900 nghìn, tức là 250.000đ. Đây chính là cách người làm thị trường hiểu câu "ghép nhiều suất", và cũng là con số đúng.

Khác biệt giữa cách hai và cách ba là 350.000đ trên một đơn hàng. Nhân với vài nghìn đơn mỗi năm, con số đó không còn nhỏ.

Vì sao đây là bài toán khó thật sự

Chia một số tiền thành các suất sao cho tổng thưởng lớn nhất — đó là bài toán tối ưu, không phải phép so sánh lớn hơn nhỏ hơn. Với ba mốc thì còn nhẩm được. Với sáu mốc, có bậc theo số lượng, có bậc theo tiền, có bậc tặng hàng và có bậc tặng tiền, thì không ai nhẩm nổi. Và nhân viên bán hàng thì phải trả lời khách ngay tại quầy.

Trong hệ thống của chúng tôi, phần này được xử lý bằng một thuật toán tối ưu chạy ngay khi đơn hàng được lập. Kết quả trên các mốc thực tế:

  • Đơn 906.661đ → thưởng 50.000đ (một suất 900 nghìn)
  • Đơn 2.506.651đ → thưởng 200.000đ (một suất 2,5 triệu)
  • Đơn 3.466.645đ → thưởng 250.000đ (2,5 triệu + 900 nghìn)
  • Đơn 4.106.641đ → thưởng 300.000đ (2,5 triệu + 1,6 triệu)
  • Đơn 5.013.302đ → thưởng 400.000đ (hai suất 2,5 triệu)

Người bán hàng không cần hiểu thuật toán. Họ chỉ thấy dòng chiết khấu hiện ra đúng, ngay lập tức, và giải thích được cho khách vì sao lại là con số đó.

Những cái bẫy chỉ lộ ra khi chạy thật

Xây engine khuyến mãi không khó bằng phát hiện những chỗ nó âm thầm sai. Vài thứ chúng tôi đã gặp và đã vá, mà chúng tôi tin là hầu hết doanh nghiệp đang dính mà không biết:

Ngưỡng phải kèm đơn vị tính. Chương trình ghi "mua 10 tặng 1" — mười hộp hay mười gói? Một hộp có mười bốn gói. Khai sai đơn vị là tặng dư gấp nhiều lần, và không ai phát hiện cho tới khi kiểm kho.

Đơn hàng lúc sáng sớm có thể trượt khuyến mãi. Đây là lỗi rất khó tin: một đơn lập lúc 6 giờ 24 sáng ngày 25 bị hệ thống ghi nhận là ngày 24 do lệch múi giờ, nên trượt sạch chương trình bắt đầu từ ngày 25. Mọi đơn lập trước 7 giờ sáng đều có nguy cơ. Chúng tôi đã sửa để ngày của đơn luôn tính theo múi giờ của người lập đơn — cùng một đơn, ai mở lên cũng thuộc cùng một ngày.

Thuế phải tính sau chiết khấu. Nếu dòng chiết khấu không mang đúng thuế suất, khách hàng bị thu thừa tiền thuế trên phần đã được giảm. Sai vài chục nghìn mỗi hoá đơn, nhưng nhân với hàng nghìn hoá đơn thì thành vấn đề thật — và là vấn đề với cơ quan thuế, không chỉ với khách.

Ngưỡng lẻ có thể làm chiết khấu phình lên. Chúng tôi từng đo được một trường hợp chỉ vì đổi mốc từ 900.000 xuống 899.000, cách chia suất thay đổi và một đơn hàng ăn thêm 1,3 triệu đồng ngoài dự kiến.

Không cái nào trong số này lộ ra trong buổi demo. Chúng chỉ lộ ra sau vài nghìn đơn hàng thật — và đó là lý do chúng tôi kể ra ở đây, thay vì giấu đi.

Điều doanh nghiệp thật sự mua

Khi một nhà phân phối dược chọn hệ thống, thứ họ cần không phải là "có tính năng khuyến mãi". Gần như phần mềm nào cũng ghi dòng đó trong danh sách tính năng.

Thứ họ cần là engine tính đúng con số cuối cùng, ở mọi tình huống chồng chéo mà bộ phận marketing nghĩ ra: bậc theo tiền, bậc theo số lượng, tặng hàng, tặng tiền, giới hạn theo nhóm khách hàng, theo khu vực, theo nhân viên phụ trách, có thời hạn bắt đầu và kết thúc.

Và quan trọng hơn: khi con số ra khác với dự đoán, phải truy được vì sao. Trong hệ thống của chúng tôi, mỗi dòng chiết khấu đều chỉ ra được nó sinh từ chương trình nào, bậc nào, chia suất ra sao.


Chương trình khuyến mãi của bạn đang được tính bằng gì — phần mềm, hay trí nhớ của nhân viên? Đặt lịch demo và mang theo đúng chương trình phức tạp nhất của bạn. Chúng tôi thích những bài toán khó.

#Khuyến mãi#Chiết khấu#Bán hàng#Ngành dược