1 poin oleh GN⁺ 2024-01-04 | 1 komentar | Bagikan ke WhatsApp

Kompleksitas perhitungan potongan gaji Kanada

  • Badan Pajak Kanada (CRA) secara berkala menerbitkan dokumen "Payroll Deductions Formulas". Dokumen ini mencakup semua rumus perhitungan untuk Canada Pension Plan, employment insurance, dan pajak penghasilan yang dikumpulkan CRA.
  • Colin Percival, yang menjalankan usaha kecil di Kanada tanpa menggunakan penyedia layanan penggajian eksternal, mengimplementasikan rumus-rumus ini langsung ke dalam spreadsheet.
  • Seperti banyak aspek lain dari sistem perpajakan, kompleksitasnya terus meningkat. Tahun ini, Canada Pension Plan tidak hanya mencakup premi "dasar" dan premi "tambahan", tetapi juga premi "tambahan kedua", sehingga spreadsheet harus ditulis ulang dari awal.

Membuat bagan ketergantungan

  • Para penulis dokumen tersebut mengabaikan detail penting dalam perangkat lunak, yaitu bahwa suatu nilai harus dihitung sebelum bisa digunakan. Akibatnya, saat membaca dokumen itu, orang harus bolak-balik mencari di mana setiap nilai yang perlu dihitung berada.
  • Untuk membantu hal ini, Colin Percival menggunakan GraphViz untuk menggambar bagan ketergantungan. Grafik tersebut memiliki 79 node, dimulai dari nilai seperti "annual maximum pensionable earnings" ($73200) hingga "total payroll deductions".
  • Bagan ini tidak menuliskan rumusnya, hanya mencatat nilai-nilai lain yang menjadi ketergantungan tiap rumus, sehingga orang yang melihatnya dapat dengan mudah memahami apa yang harus dihitung lebih dulu.

Asumsi yang disederhanakan

  • Demi penyederhanaan, Colin Percival mengasumsikan bahwa ia tidak menangani karyawan yang dibayar berdasarkan komisi, karyawan yang masuk atau keluar dari Canada Pension Plan, atau orang yang tinggal di Quebec, Nova Scotia, Yukon, dan Ontario, yang masing-masing memiliki kompleksitas pajaknya sendiri.

Opini GN⁺

  • Tulisan ini menunjukkan dengan baik betapa rumitnya perhitungan potongan gaji di Kanada. Secara khusus, tulisan ini menyoroti tantangan yang dihadapi pemilik usaha kecil dan pendekatan kreatif untuk mengatasinya.
  • Membuat bagan ketergantungan adalah alat yang sangat berguna untuk memahami dan mengelola sistem yang kompleks, dan dapat diterapkan pada pemecahan masalah di berbagai bidang, bukan hanya rekayasa perangkat lunak.
  • Tulisan ini memperlihatkan upaya seorang pemilik usaha untuk menyederhanakan kompleksitas perhitungan pajak, dan upaya seperti ini dapat menginspirasi pemilik usaha lainnya.

1 komentar

 
GN⁺ 2024-01-04
Komentar Hacker News
  • Sangat disayangkan pemerintah tidak menyediakan rumus terbuka dalam bentuk kode.

    Satu-satunya cara yang dapat diandalkan adalah menggunakan formulir web yang disediakan di situs CRA (Badan Pendapatan Kanada), dan menghitungnya secara manual sangat merepotkan serta rawan kesalahan.

  • Dari pengalaman menjalankan perusahaan payroll kecil di Kanada, setiap kali aturannya diperbarui, saya menjalankan scraper terhadap kalkulator CRA untuk menghitung payroll di berbagai wilayah dan rentang gaji, lalu mencetak hasilnya dengan rspec untuk menguji kepatuhan.

    Setiap kali aturan berubah, digunakan metode "brute force" dengan scraper untuk menghitung payroll dan mencetak hasilnya dengan rspec guna menguji apakah sudah patuh terhadap regulasi.

  • Kompleksitas hukum pajak melalui siklus berulang seperti berikut:

    1. Hukum pajak ditetapkan.
    2. Akuntan dan pengacara pajak yang terampil menemukan cara untuk menghindari pajak secara legal.
    3. Otoritas pajak menerbitkan aturan untuk menutup celah.
    4. Pemerintahan berganti dan menurunkan sebagian pajak serta menambahkan insentif pajak untuk memperoleh suara atau menyesuaikan ekonomi.
    5. Pemerintahan baru secara selektif membalikkan program pemerintahan sebelumnya karena alasan politik.
    6. Untuk pajak internasional, ditambahkan lagi pengacara pajak terampil yang menggunakan strategi kompleks lintas yurisdiksi untuk menurunkan pajak, pemerintah yang menambahkan insentif dalam hukum pajak untuk menarik perusahaan multinasional, upaya OECD untuk menstandarkan hal-hal terkait pajak guna mencegahnya, serta perjanjian pajak antarnegara.
  • Beberapa tahun lalu saya pernah membuat sesuatu yang mirip untuk IRS.

    Ada pengalaman membuat alat serupa untuk IRS, otoritas pajak Amerika Serikat, beberapa tahun yang lalu.

  • Ini adalah bagan yang menunjukkan alasan penyedia payroll itu ada.

    Merujuk pada post Bits About Money terkait bagan yang menjelaskan perlunya penyedia payroll.

  • Saya memuji penulis karena menekankan bahwa CRA harus memublikasikan implementasi referensi untuk semua rumus.

    Setuju dengan pendapat bahwa CRA seharusnya memublikasikan implementasi referensi untuk semua rumus agar usaha kecil bisa mendapat manfaat.

  • Di Prancis, aturan-aturan ini tersedia dalam bentuk situs web, API, paket NPM, dan aturan mentah dalam bahasa publi.codes.

    Menjelaskan bahwa di Prancis aturan pajak tersedia melalui situs web, API, paket NPM, dan bahasa publi.codes.

  • Berlaku untuk semua orang kecuali penduduk Quebec, Nova Scotia, Yukon, dan Ontario, yang mencakup sekitar 75% populasi Kanada.

    Ini adalah aturan yang berlaku untuk mayoritas penduduk Kanada, kecuali mereka yang tinggal di Quebec, Nova Scotia, Yukon, dan Ontario.

  • Saya tinggal di AS, tetapi kompleksitas seperti ini adalah salah satu alasan utama saya tidak mempekerjakan karyawan untuk LLC saya.

    Seorang pengguna yang tinggal di AS menjelaskan bahwa kompleksitas terkait pajak adalah salah satu alasan utama tidak mempekerjakan karyawan untuk LLC miliknya.

  • Algoritme apa pun, baik perangkat lunak maupun bukan, dapat dibuat menjadi keadaan membingungkan yang memungkinkan hasil yang diinginkan dengan menambahkan kompleksitas.

    Algoritme dibuat menjadi keadaan membingungkan yang memungkinkan hasil yang diinginkan lewat penambahan kompleksitas, yang dapat membingungkan orang luar dan dalam beberapa kasus menimbulkan hasil negatif.