Kanada maaş kesintisi hesaplamalarının karmaşıklığı
- Kanada Gelir İdaresi (CRA), düzenli olarak "Payroll Deductions Formulas" belgesini yayımlıyor. Bu belge, CRA'nın tahsil ettiği Kanada Emeklilik Planı, işsizlik sigortası ve gelir vergisine ilişkin tüm hesaplama formüllerini içeriyor.
- Kanada'da küçük bir işletme işleten ve dış bir bordro hizmeti sağlayıcısı kullanmayan Colin Percival, bu formülleri doğrudan bir elektronik tabloya uyguladı.
- Vergi sisteminin çoğu yönünde olduğu gibi karmaşıklık artıyor; bu yıl Kanada Emeklilik Planı yalnızca "temel" prim ve "ek" primi değil, aynı zamanda "ikinci ek" primi de içerdiği için elektronik tablonun baştan yazılması gerekti.
Bağımlılık şeması oluşturma
- Belgenin yazarları yazılım açısından önemli bir ayrıntıyı gözden kaçırmış: Bir değeri kullanmadan önce onu hesaplamak gerekiyor. Bu yüzden belgeye bakarken hesaplanacak her değerin nerede olduğunu bulmak için sürekli ileri geri gitmek gerekiyor.
- Buna yardımcı olmak için Colin Percival, GraphViz kullanarak bir bağımlılık şeması çizdi. Grafikte "yıllık azami emeklilik hakkedişi" ($73200) gibi değerlerden başlayıp "toplam maaş kesintileri"ne kadar uzanan 79 düğüm bulunuyor.
- Şemada formüller yazılmıyor; bunun yerine her formülün bağlı olduğu diğer değerler kaydediliyor, böylece şemaya bakan kişi önce neyi hesaplaması gerektiğini kolayca anlayabiliyor.
Basitleştirilmiş varsayımlar
- Basitleştirme amacıyla Colin Percival; komisyon alan çalışanları, Kanada Emeklilik Planı'na giren veya çıkan çalışanları ve Quebec, Nova Scotia, Yukon ile Ontario'da yaşayan kişileri (her birinin kendine özgü vergi karmaşıklığı var) ele almadığını varsayıyor.
GN⁺ görüşü
- Bu yazı, Kanada'daki maaş kesintisi hesaplamalarının ne kadar karmaşık olduğunu iyi gösteriyor. Özellikle küçük işletme sahiplerinin karşılaştığı zorlukları ve bunları çözmek için geliştirilen yaratıcı yaklaşımı vurguluyor.
- Bağımlılık şeması oluşturmak, karmaşık sistemleri anlamak ve yönetmek için çok faydalı bir araç; yalnızca yazılım mühendisliğinde değil, farklı alanlardaki problem çözme süreçlerinde de uygulanabilir.
- Yazı, vergi hesaplamalarının karmaşıklığını sadeleştirmeye çalışan bir işletme sahibinin çabasını gösteriyor ve bu çaba başka işletme sahiplerine de ilham verebilir.
1 yorum
Hacker News görüşleri
Hükümetin kod biçiminde açık formüller sunmaması üzücü.
Kanada'da küçük bir bordro şirketi işletmiş biri olarak, kurallar her güncellendiğinde CRA hesaplayıcısına karşı bir scraper çalıştırıp çeşitli bölgeler ve maaş aralıkları için bordroyu hesaplıyor, ardından çıktıları
rspecile karşılaştırarak mevzuata uyumu test ediyordum.Vergi hukukunun karmaşıklığı şu döngüden geçiyor:
Birkaç yıl önce IRS için buna benzer bir şey yapmıştım.
Bu, bordro sağlayıcılarının neden var olduğunu gösteren bir grafik.
CRA'nın tüm formüllerin referans implementasyonunu yayımlaması gerektiğini söylediği için yazarı tebrik ederim.
Fransa'da bu kurallar; web sitesi, API, NPM paketi ve publi.codes dilindeki ham kurallar olarak sunuluyor.
Quebec, Nova Scotia, Yukon ve Ontario sakinleri hariç, Kanada nüfusunun yaklaşık %75'ine uygulanıyor.
ABD'de yaşıyorum ama bu karmaşıklık, LLC'mde çalışan istihdam etmeyişimin başlıca nedenlerinden biri.
Yazılım olsun olmasın, her algoritma istenen sonucu elde etmek için karmaşıklık eklenerek kafa karıştırıcı bir hâle getirilebilir.