CodeKitHub
Cách chúng tôi ngăn các công cụ tính thuế và lương của mình âm thầm lỗi thời

Cách chúng tôi ngăn các công cụ tính thuế và lương của mình âm thầm lỗi thời

Đăng ngày 4 thg 8, 2026

Mọi công cụ tính toán trên trang này liên quan đến thuế, bảo hiểm xã hội hay lương tối thiểu đều mắc chung một lỗi: nó đúng vào ngày chúng tôi xây dựng, rồi sáu tháng sau một chính phủ nào đó cập nhật lại tỷ lệ, và công cụ bắt đầu âm thầm cho ra kết quả sai. Không hề có thông báo lỗi nào xuất hiện. Trang vẫn hoạt động y hệt như trước — chỉ là giờ đây nó sai, và sai một cách đầy tự tin.

Đó là một kết quả tệ hơn cả việc không có công cụ này. Vì vậy chúng tôi đã xây dựng một hệ thống chuyên để phát hiện điều đó.

Vấn đề với việc “cứ nhớ để kiểm tra”

Giải pháp hiển nhiên — “thỉnh thoảng kiểm tra lại số liệu” — không thể mở rộng quy mô. Chúng tôi duy trì các công cụ tính lương thực nhận, bảo hiểm xã hội và bảng lương cho khoảng sáu quốc gia, mỗi nước có bậc thuế, tỷ lệ đóng góp và các ngưỡng được điều chỉnh hằng năm riêng. Nhân con số đó với số tháng trôi qua trước khi ai đó nhớ ra để kiểm tra lại, câu trả lời thành thật là: sớm muộn gì cũng có số liệu bị lỗi thời và không ai nhận ra cho đến khi một người dùng nào đó nhận ra trước.

Thứ chúng tôi đã xây dựng thay thế

Một tệp đăng ký liệt kê mọi con số chính thức được viết cứng trong mã nguồn của từng công cụ tính toán: nó nằm trong tệp nào, con số đó đại diện cho điều gì, nguồn chính thức ở đâu, và trên thực tế nó dự kiến thay đổi thường xuyên đến mức nào (một số giá trị thay đổi vào mỗi tháng Một khi năm tài chính mới bắt đầu; số khác chỉ thay đổi khi luật được sửa đổi, điều này khó đoán trước nhưng hiếm khi xảy ra).

Một tác vụ được lên lịch chạy hằng tuần, kiểm tra xem mục nào đến hạn xem xét theo lịch đó, và với từng mục:

  1. Tìm kiếm giá trị hiện tại trên nguồn chính thức của chính phủ
  2. Yêu cầu một mô hình ngôn ngữ trích xuất con số cụ thể từ kết quả tìm kiếm — không gì khác, chỉ con số và một mức độ tin cậy
  3. Nếu mô hình tự tin và con số đã thay đổi, nó sẽ áp dụng thay đổi đó như một phép thay thế văn bản chính xác từng chữ, đã được kiểm chứng, trực tiếp trong mã nguồn (không bao giờ là viết lại tự do — mô hình không được phép tự ý sửa đổi phần logic xung quanh)
  4. Chạy một bản build đầy đủ để xác nhận không có gì bị hỏng trước khi commit bất kỳ thay đổi nào
  5. Nếu build thất bại, thay đổi đó sẽ tự động được hoàn tác và được gắn cờ để con người xem xét

Toàn bộ hệ thống được thiết kế xoay quanh một nguyên tắc đơn giản: tự động hóa được phép cập nhật một con số, nhưng không bao giờ được phép đoán mò. Nếu không thể tìm được câu trả lời đáng tin cậy từ một nguồn chính thức, nó sẽ không làm gì cả và báo cáo rõ ràng điều đó, thay vì để lại một con số trông có vẻ hợp lý nhưng lại sai.

Không phụ thuộc vào bất kỳ công cụ đơn lẻ nào

Bản thân tác vụ này chạy trên hạ tầng độc lập với bất kỳ nhà cung cấp hay tài khoản đơn lẻ nào — nếu một phần trong quy trình gặp sự cố, toàn bộ hệ thống không dừng lại, mà chỉ đơn giản chuyển sang một hướng khác để trích xuất con số. Sự dự phòng này quan trọng ở đây hơn so với hầu hết các hệ thống tự động khác: một công cụ tính thuế sai gây ra tác hại thực sự, theo cách mà, chẳng hạn, một công cụ tạo meme bị hỏng đơn giản là không thể gây ra.

Điều này có ý nghĩa gì với bạn

Mọi công cụ tính toán được hệ thống này bao phủ đều hiển thị ngay trên trang một ngày “dữ liệu chính thức đã được xác minh”, tách biệt với ngày “cập nhật lần cuối” mà bạn có thể thấy trên một trang nội dung thông thường. Nếu bạn từng thấy ngày đó trông cũ một cách đáng ngờ, hãy báo cho chúng tôi biết trực tiếp — điều đó thường có nghĩa là quá trình kiểm tra tự động đã gặp phải một nguồn dữ liệu mà nó không thể phân tích được, chứ không phải chúng tôi đã quên mất nó.

Dùng thử

Đây là các công cụ đơn ngữ, mỗi công cụ được xây dựng riêng cho quy tắc của quốc gia đó, vì vậy các liên kết dưới đây sẽ mở ra bằng ngôn ngữ tương ứng:

← Quay lại Blog