Earned Wage Engine tính phần tiền công đã làm như thế nào?
Earned Wage Engine là lớp tính toán chuyển ngày công đã được duyệt thành phần tiền công đủ điều kiện có thể nhận trong kỳ. Engine không chỉ nhân số công với đơn giá; nó còn phải xác định đúng người, đúng nơi làm, đúng kỳ, trừ phần đã nhận và áp dụng phần giữ lại theo quy định của doanh nghiệp trước khi trả về kết quả.
Earned Wage Engine thực sự làm nhiệm vụ gì?
Trong một hệ thống EWA, giao diện người lao động chỉ là nơi hiển thị kết quả. Phần quan trọng hơn nằm ở phía máy chủ: engine phải tập hợp các dữ liệu có thẩm quyền và tính lại số tiền tại thời điểm người lao động xem hoặc tạo yêu cầu.
Vai trò cốt lõi của engine là tạo ra một con số có thể giải thích được. Nếu số tiền hôm nay khác hôm qua, hệ thống phải có khả năng truy ngược sự thay đổi đó về dữ liệu công, đơn giá, số đã nhận hoặc quy tắc dự trù.
Engine cũng không nên tin trực tiếp vào con số do điện thoại hoặc trình duyệt gửi lên. Thiết bị người dùng có thể đang giữ dữ liệu cũ. Khi chuẩn bị tạo giao dịch, máy chủ cần tính lại từ dữ liệu hiện tại.
Công thức nền tảng gồm những thành phần nào?
Với Lương Ngày, nguyên tắc tính được mô tả như sau:
Số tiền có thể nhận = (số công đã duyệt × đơn giá một ngày công) − số đã nhận trong kỳ − phần giữ lại theo quy định của doanh nghiệp.
| Thành phần | Nguồn dữ liệu | Vai trò |
|---|---|---|
| Công đã duyệt | Nguồn công được chấp nhận | Xác định phần lao động đã hình thành |
| Đơn giá ngày công | Payroll/chính sách đang có hiệu lực | Quy đổi công thành giá trị tiền |
| Số đã nhận trong kỳ | Sổ giao dịch đã xác nhận | Ngăn dùng lại cùng giá trị |
| Phần giữ lại | Chính sách doanh nghiệp | Tạo biên cho điều chỉnh cuối kỳ |
| Kỳ lương | Payroll | Giới hạn phạm vi cộng, trừ và quyết toán |
Engine không tự tạo dữ liệu mới. Nó chỉ tính trên dữ liệu đã được hệ thống nguồn xác nhận.
Nếu công vẫn ở trạng thái chờ duyệt, phần đó chưa nên tham gia phép tính. Nếu một giao dịch đang ở trạng thái chưa rõ, engine cũng không nên tự giả định rằng giao dịch đã thất bại để mở lại số tiền.
Vì sao công đã duyệt là điểm bắt đầu?
Chấm công và công đã duyệt là hai trạng thái khác nhau.
Một lần quét QR, ghi nhận GPS, dữ liệu từ bảng công hoặc bản ghi trên app mới cho thấy có dữ liệu chấm công. Trước khi dữ liệu đó trở thành đầu vào tài chính, doanh nghiệp cần có bước xác nhận theo quy trình.
Các tình huống cần được kiểm soát gồm:
- thiếu giờ vào hoặc ra;
- sai ca;
- ca qua nửa đêm;
- tăng ca chưa xác nhận;
- nghỉ phép chưa cập nhật;
- công bị trùng;
- công đã duyệt nhưng sau đó bị sửa.
Tách rõ dữ liệu ghi nhận → dữ liệu đã duyệt → dữ liệu đủ điều kiện tính tiền giúp engine không biến bản ghi tạm thành giá trị tài chính quá sớm.
Engine xử lý dữ liệu thay đổi như thế nào?
Một hệ thống payroll đáng tin cậy phải chấp nhận rằng dữ liệu có thể thay đổi.
Ví dụ:
- công đã duyệt bị sửa;
- đơn giá thay đổi theo thời điểm hiệu lực;
- người lao động chuyển nơi làm;
- một giao dịch chuyển từ chờ sang thành công sau khi tra soát.
Engine vì vậy cần gắn phép tính với phiên bản dữ liệu và thời điểm tính.
Khi một thành phần thay đổi, kết quả nên được tính lại từ nguồn mới nhất thay vì sửa trực tiếp con số cuối.
Khả năng tái tính và giải thích là một phần quan trọng của Payroll Integrity.
Engine phải chống dùng lại cùng giá trị công
Một rủi ro quan trọng là cùng một giá trị lao động bị sử dụng nhiều lần.
Ví dụ, người lao động đã nhận một phần tiền công trong kỳ nhưng hệ thống quên trừ khoản đó khi tính lần sau.
Một trường hợp khác là ngày công đã gắn với giao dịch thành công nhưng lại được cộng tiếp khi dữ liệu được đồng bộ lại.
Để hạn chế điều này, engine phải nhìn đồng thời:
- công đã duyệt;
- tổng số đã nhận;
- giao dịch đang chờ;
- giao dịch thành công;
- phần công hoặc giá trị đã được sử dụng;
- kỳ payroll liên quan.
Số đã nhận trong kỳ phải được trừ khỏi phép tính. Các ngày công đã tham gia giao dịch cần có dấu vết đủ rõ để cuối kỳ payroll biết phần nào đã được trả trước.
Earned Wage Engine khác Eligibility Engine ở đâu?
Hai lớp giải quyết hai câu hỏi khác nhau.
Earned Wage Engine:
“Dựa trên dữ liệu lao động hiện tại, phần tiền công đã hình thành là bao nhiêu?”
Eligibility Engine:
“Trong hoàn cảnh hiện tại, người này có đủ điều kiện sử dụng và được phép nhận đến mức nào?”
Earned Wage Engine tập trung vào:
- công;
- đơn giá;
- kỳ lương;
- khoản đã nhận;
- phần giữ lại.
Eligibility Engine tập trung vào:
- trạng thái hồ sơ;
- khách hàng có bật tính năng hay không;
- tài khoản đã xác minh;
- điều kiện chính sách;
- giới hạn sử dụng;
- các kiểm soát khác.
Tách hai lớp giúp thay đổi chính sách đủ điều kiện mà không làm sai lịch sử phần tiền công đã hình thành.
Vì sao phải tính lại ở máy chủ trước giao dịch?
Giả sử ứng dụng hiển thị 1.000.000 đồng lúc 10:00.
Đến 10:05:
- một ngày công bị sửa;
- một giao dịch khác vừa thành công;
- chính sách liên quan đã thay đổi.
Nếu ứng dụng gửi lại con số 1.000.000 đồng và máy chủ tin ngay, hệ thống có thể tạo một lệnh sai.
Vì vậy trước khi chi, máy chủ nên:
- đọc lại công mới nhất;
- kiểm tra trạng thái duyệt;
- lấy số đã nhận mới nhất;
- lấy chính sách có hiệu lực;
- tính lại;
- kiểm tra số yêu cầu;
- chỉ sau đó mới chuyển sang lớp giao dịch.
Giao diện chỉ nên là nơi hiển thị và gửi yêu cầu; không phải nguồn quyết định số tiền cuối cùng.
Engine cần giải thích kết quả bằng cách nào?
Một kết quả tốt không chỉ có một con số.
Hệ thống nên có khả năng giải thích:
- có bao nhiêu công đã duyệt;
- đơn giá nào đang áp dụng;
- tổng giá trị theo công;
- tổng đã nhận trong kỳ;
- phần giữ lại;
- số còn có thể nhận;
- kỳ nào đang được tính.
Khi số tiền thay đổi, audit trail cần chỉ ra thành phần nào đã thay đổi.
Điều này giúp:
- hỗ trợ người lao động;
- xử lý khiếu nại;
- đối soát payroll;
- kiểm tra lỗi;
- kiểm toán nội bộ.
Những trường hợp engine nên trả kết quả bằng 0 hoặc chưa cho dùng
Có thể có các tình huống như:
- chưa có công đã duyệt;
- tổng đã nhận đã sử dụng hết phần đủ điều kiện;
- dữ liệu quan trọng đang chờ xác minh;
- công vừa bị sửa và chưa duyệt lại;
- người lao động không thuộc kỳ đang mở;
- các điều kiện khác của chương trình chưa đạt.
Tuy nhiên, nếu kết quả không còn giá trị khả dụng, giao diện nên cho biết lý do ở mức phù hợp thay vì chỉ hiển thị một con số bằng không.
KPI kỹ thuật và vận hành nên theo dõi
Doanh nghiệp có thể theo dõi:
- tỷ lệ phép tính có thể giải thích đầy đủ;
- số lần số khả dụng thay đổi do sửa công;
- số chênh lệch giữa engine và payroll;
- số bản ghi công bị dùng trùng;
- số lần phải tính lại sau giao dịch;
- số ngoại lệ do sai kỳ;
- số khiếu nại về số khả dụng;
- thời gian xử lý ngoại lệ.
Engine tốt không chỉ chạy nhanh; nó phải tạo kết quả đúng và truy vết được.
Kết luận
Earned Wage Engine là lớp biến dữ liệu công đã duyệt thành một kết quả tài chính có thể giải thích và truy vết. Nó phải dùng đúng nguồn dữ liệu, trừ phần đã nhận, áp dụng phần giữ lại, tính lại khi dữ liệu thay đổi và chống việc cùng một giá trị lao động được sử dụng nhiều lần. Khi tách rõ Earned Wage Engine khỏi Eligibility Engine và lớp giao dịch, hệ thống EWA dễ kiểm soát, đối soát và mở rộng hơn.
Tác giả: Đỗ Huy Lê — Tổng Giám Đốc, Công ty TNHH Cung Ứng Nhân Lực Nhân Kiệt.
Tư vấn Lương Ngày cho doanh nghiệp: Hotline 0937.022.655 · Email info@nhankiet.vn · Tìm hiểu Lương Ngày cho doanh nghiệp
Câu hỏi thường gặp
Earned Wage Engine có phải payroll không?
Không. Engine tính phần tiền công đã hình thành đủ điều kiện phục vụ EWA. Payroll cuối kỳ xử lý toàn bộ cấu phần lương và quyết toán chính thức.
Công vừa chấm có được tính ngay không?
Không nhất thiết. Với Lương Ngày, công phải được duyệt trước khi trở thành đầu vào cho phép tính.
Vì sao số tiền có thể nhận thay đổi?
Có thể do công được duyệt thêm, công bị sửa, có giao dịch mới thành công, số đã nhận thay đổi hoặc phần giữ lại thay đổi theo chính sách.
Engine có quyết định người lao động có được sử dụng EWA không?
Không hoàn toàn. Earned Wage Engine tính giá trị đã hình thành; Eligibility Engine và các lớp kiểm soát khác quyết định điều kiện sử dụng.