1 điểm bởi GN⁺ 2024-01-04 | 1 bình luận | Chia sẻ qua WhatsApp

Độ phức tạp của việc tính các khoản khấu trừ lương ở Canada

  • Cơ quan Thuế vụ Canada (CRA) thường xuyên phát hành tài liệu "Payroll Deductions Formulas". Tài liệu này bao gồm mọi công thức tính cho Kế hoạch Hưu trí Canada, bảo hiểm việc làm và thuế thu nhập mà CRA thu.
  • Colin Percival, người điều hành một doanh nghiệp nhỏ ở Canada và không sử dụng nhà cung cấp dịch vụ tính lương bên ngoài, đã tự triển khai các công thức này trực tiếp trong bảng tính.
  • Cũng như nhiều khía cạnh khác của hệ thống thuế, độ phức tạp ngày càng tăng; năm nay, Kế hoạch Hưu trí Canada không chỉ có mức phí "cơ bản" và mức phí "bổ sung" mà còn có cả mức phí "bổ sung thứ hai", khiến anh phải viết lại bảng tính từ đầu.

Tạo biểu đồ phụ thuộc

  • Các tác giả của tài liệu đã bỏ sót một chi tiết quan trọng trong phần mềm: giá trị phải được tính ra trước khi có thể dùng. Vì vậy, khi đọc tài liệu, người ta phải liên tục lật qua lật lại để tìm xem từng giá trị cần tính nằm ở đâu.
  • Để hỗ trợ việc này, Colin Percival đã dùng GraphViz để vẽ một biểu đồ phụ thuộc. Đồ thị có 79 nút, bắt đầu từ các giá trị như "mức thu nhập hưu trí tối đa hằng năm" ($73200) và đi đến "tổng khấu trừ lương".
  • Biểu đồ không ghi các công thức mà chỉ ghi những giá trị khác mà mỗi công thức phụ thuộc vào, để người xem dễ xác định cần tính gì trước.

Các giả định đơn giản hóa

  • Để đơn giản hóa, Colin Percival giả định không xử lý nhân viên nhận tiền boa, nhân viên bắt đầu hoặc rời khỏi Kế hoạch Hưu trí Canada, hay những người sống ở Quebec, Nova Scotia, Yukon và Ontario (mỗi nơi đều có độ phức tạp thuế riêng).

Ý kiến của GN⁺

  • Bài viết này cho thấy rõ việc tính các khoản khấu trừ lương ở Canada phức tạp đến mức nào. Đặc biệt, nó nhấn mạnh những thách thức mà các chủ doanh nghiệp nhỏ phải đối mặt và cách tiếp cận sáng tạo để giải quyết chúng.
  • Việc tạo biểu đồ phụ thuộc là một công cụ rất hữu ích để hiểu và quản lý các hệ thống phức tạp, và có thể áp dụng cho việc giải quyết vấn đề trong nhiều lĩnh vực chứ không chỉ riêng kỹ thuật phần mềm.
  • Bài viết cho thấy nỗ lực của một chủ doanh nghiệp trong việc đơn giản hóa sự phức tạp của việc tính thuế, và những nỗ lực như vậy có thể truyền cảm hứng cho các chủ doanh nghiệp khác.

1 bình luận

 
GN⁺ 2024-01-04
Ý kiến trên Hacker News
  • Thật đáng tiếc khi chính phủ không cung cấp các công thức công khai ở dạng mã.

    Cách đáng tin cậy duy nhất là sử dụng biểu mẫu web do trang web của Cơ quan Thuế vụ Canada (CRA) cung cấp, còn việc tính thủ công thì rất phiền phức và dễ xảy ra sai sót.

  • Từ kinh nghiệm từng vận hành một công ty bảng lương nhỏ ở Canada, mỗi khi quy tắc được cập nhật, tôi chạy một scraper cho công cụ tính của CRA để tính lương cho nhiều khu vực và mức lương khác nhau, rồi xuất kết quả bằng rspec để kiểm tra mức độ tuân thủ.

    Mỗi khi quy tắc thay đổi, họ dùng cách "brute force": dùng scraper để tính lương và xuất kết quả bằng rspec nhằm kiểm tra tính tuân thủ.

  • Độ phức tạp của luật thuế trải qua một chu trình lặp như sau:

    1. Luật thuế được ban hành.
    2. Các kế toán và luật sư thuế giỏi tìm ra cách tránh thuế một cách hợp pháp.
    3. Cơ quan thuế ban hành quy định để bịt các lỗ hổng.
    4. Chính quyền thay đổi và hạ một số loại thuế, đồng thời thêm ưu đãi thuế để lấy phiếu bầu hoặc điều chỉnh nền kinh tế.
    5. Chính quyền mới chọn lọc đảo ngược các chương trình của chính quyền trước vì lý do chính trị.
    6. Với thuế quốc tế, còn có thêm các chiến lược phức tạp do những luật sư thuế giỏi sử dụng để giảm thuế ở nhiều khu vực pháp lý, các chính phủ thêm ưu đãi vào luật thuế để thu hút tập đoàn đa quốc gia, OECD cố gắng chuẩn hóa các vấn đề liên quan đến thuế để ngăn điều này, cùng với các hiệp ước thuế giữa từng quốc gia.
  • Tôi từng làm một thứ tương tự cho IRS vài năm trước.

    Có người chia sẻ rằng họ đã từng tạo một công cụ tương tự cho Sở Thuế vụ Mỹ (IRS) vài năm trước.

  • Đây là biểu đồ cho thấy vì sao các nhà cung cấp dịch vụ bảng lương tồn tại.

    Có tham chiếu đến một bài viết trên Bits About Money liên quan đến biểu đồ giải thích sự cần thiết của các nhà cung cấp dịch vụ bảng lương.

  • Xin dành lời khen cho tác giả ở điểm cho rằng CRA nên công bố bản triển khai tham chiếu cho mọi công thức.

    Đồng ý với quan điểm rằng CRA nên công bố bản triển khai tham chiếu cho mọi công thức để các doanh nghiệp nhỏ được hưởng lợi.

  • Ở Pháp, các quy tắc này được cung cấp dưới dạng website, API, gói NPM và các quy tắc thô bằng ngôn ngữ publi.codes.

    Ở Pháp, các quy tắc thuế được cung cấp dưới dạng website, API, gói NPM và các quy tắc bằng ngôn ngữ publi.codes.

  • Áp dụng cho tất cả mọi người, ngoại trừ cư dân Quebec, Nova Scotia, Yukon và Ontario, nơi chiếm khoảng 75% dân số Canada.

    Đây là bộ quy tắc áp dụng cho phần lớn dân số Canada, ngoại trừ cư dân Quebec, Nova Scotia, Yukon và Ontario.

  • Tôi sống ở Mỹ, và sự phức tạp này là một trong những lý do chính khiến tôi không tuyển nhân viên cho LLC của mình.

    Một người dùng sống ở Mỹ giải thích rằng sự phức tạp liên quan đến thuế là một trong những lý do chính khiến họ không thuê nhân viên cho LLC của mình.

  • Bất kỳ thuật toán nào, dù là phần mềm hay không, cũng đều bị biến thành một trạng thái hỗn độn nơi có thể thêm độ phức tạp để đạt được kết quả mong muốn.

    Các thuật toán bị biến thành trạng thái hỗn độn bằng cách thêm độ phức tạp để tạo ra kết quả mong muốn; điều này có thể gây bối rối cho người ngoài cuộc và trong một số trường hợp dẫn đến hệ quả tiêu cực.