Pool Definition là một cấu trúc dữ liệu cốt lõi dùng để theo dõi và quản lý các giá trị được lưu trữ như điểm thưởng (rewards), tiền mặt (cash balances), vé rút thăm trúng thưởng (lucky draw chances), hoặc E-voucher. Mỗi Pool được gắn với một loại phần thưởng cụ thể, sử dụng một đơn vị tiền tệ riêng (Currency Code), và quản lý số dư theo các nhóm (Buckets) dựa trên hạn sử dụng.
Thuật ngữ liên quan
Pool (Quỹ): Nơi lưu trữ và theo dõi số dư của một loại phần thưởng cụ thể.
Bucket (Nhóm số dư): Một phần của Pool chứa số dư có cùng ngày hết hạn và loại tài khoản (Account Type).
Currency Code: Đơn vị tính toán số dư trong Pool (VD: VND cho tiền mặt, PNT cho điểm thưởng).
Expiry Policy (Chính sách hết hạn): Quy tắc xác định ngày hết hạn cho các số dư khi được cộng vào Pool.
Velocity Control: Cơ chế kiểm soát và giới hạn số lượng điểm (thưởng/đổi/điều chỉnh) dựa trên thực thể và thời gian (ví dụ: giới hạn đổi điểm mỗi tháng).
Cấu trúc dữ liệu (Data Schema)
Thông tin chung (General Information)
Field
Description
Type
Pool Id / Name
Định danh hệ thống và tên của quỹ thưởng.
X(10) / X(30)
Pool Type
Loại quỹ thưởng (Points, Cash Rebate, Lucky Draw chances, EVoucher).
Drop-down
Expiry Policy
Xác định cách hệ thống tính ngày hết hạn cho số dư mới (Inactive cho Evoucher).
Drop-down
Ripening Period
Số ngày kể từ ngày giao dịch sau đó phần thưởng mới đủ điều kiện đổi (Redemption).
9(5)
Pool Conversion Rate Code
Mã tiền tệ hoặc tỷ lệ quy đổi đại diện cho một đơn vị thưởng trong Pool.
Drop-down
Allow Negative Balance
Cờ cho phép số dư Pool bị âm trong các trường hợp điều chỉnh hoặc hoàn tác (reversal).
Switch
Entity level
Cấp độ theo dõi số dư Pool: Customer (Khách hàng), Account (Tài khoản), hoặc Card (Thẻ).
Radio button
Grace Period
Số tháng giữ lại các bucket đã hết hạn trước khi xóa hẳn.
9(2)
Thông số kiểm soát (Velocity Control & Specific Policy)
Field
Description
Type
Product Account Level / Type
Cấp độ và loại tài khoản bị giới hạn chỉ được dùng Pool này.
Drop-down
Maximum
Số lượng đơn vị Pool tối đa, nếu vượt quá sẽ kích hoạt cảnh báo (Alert).
9(10,2)
Transaction Type
Loại giao dịch bị kiểm soát (Award, Redeem, Adjust).
Drop-down
Units
Đơn vị kiểm soát (Trên số đơn vị Pool hoặc Trên mỗi giao dịch).
Drop-down
Per period
Chu kỳ kiểm soát (Quarter, Month, Week, Day).
Drop-down
Alert Template / Group
Mẫu thông báo và nhóm người nhận sẽ được gửi cảnh báo nếu vượt mức.
Drop-down
Cách hoạt động (How It Works)
Cấu trúc lưu trữ (Buckets): Khi số dư trong Pool được tăng lên (earned), hệ thống sử dụng Expiry Policy để xác định ngày hết hạn. Số lượng này sau đó được lưu vào một "Bucket" tương ứng. Mỗi Pool có thể có nhiều Bucket khác nhau, phân tách bằng Ngày hết hạn và Loại tài khoản.
Phân cấp thực thể (Entity Level):
Nếu Pool cấu hình ở cấp độ Card, mỗi bucket sẽ tương ứng với một thẻ cụ thể (Card number) và khoảng thời gian nhất định.
Nếu cấu hình ở cấp độ Account hoặc Customer, bucket sẽ tương ứng với Account đó.
Quy tắc hết hạn (Expiry & Grace Period): Khi bucket đến hạn, số dư chuyển sang trạng thái "Số dư quá hạn" (Expired balance). Số dư này tiếp tục được giữ lại trong khoảng thời gian ân hạn (Grace Period) trước khi bị xóa bỏ hoàn toàn (forfeited).
Kiểm soát vận tốc (Velocity Control): Pool có thể thiết lập các mức trần cho các giao dịch (thưởng/đổi) trong một khoảng thời gian (Ngày, Tuần, Tháng, Quý) trên từng thực thể. Nếu vượt qua giới hạn này, cảnh báo (alert) sẽ tự động gửi đi.
Mối quan hệ với modules khác
Customer Overview / Account / Card: Pool phải thuộc về một Loyalty Account cụ thể, được định nghĩa thông qua Entity level (cấp Khách hàng, Tài khoản, hoặc Thẻ).
Campaign Rule: Pool Definition được sử dụng làm đích đến để trả thưởng trong các Campaign Rule. Mỗi Rule thưởng phải chỉ định nạp vào Pool nào.
Account Type Group: Có thể được cấu hình (optional) để giới hạn các giao dịch của các loại tài khoản thuộc nhóm này mới được thao tác vào Pool.
Ví dụ thực tế
Tạo một Pool tên "Quỹ Điểm Thưởng Khách Hàng VIP" (Pool Type: Points) với Entity level là Customer. Tỷ lệ hết hạn (Expiry Policy) là 1 năm kể từ ngày thưởng.
Mỗi khi khách hàng phát sinh giao dịch nhận điểm, điểm này được cho vào một Bucket có ngày hết hạn tương ứng là đúng 1 năm sau.
Pool này cài đặt Velocity Control: Chỉ cho phép đổi điểm (Redeem) tối đa 10,000 điểm mỗi tháng. Nếu khách hàng thực hiện lệnh đổi 12,000 điểm, hệ thống sẽ chặn 2,000 điểm vượt mức và kích hoạt thông báo (Alert Template) gửi về trung tâm vận hành.