1 puan yazan GN⁺ 2024-01-04 | 1 yorum | WhatsApp'ta paylaş
  • Kanada’da harici bir bordro hizmeti kullanmadan bordro kesintilerini doğrudan hesaplamak için CRA’nın Payroll Deductions Formulas belgesindeki CPP, EI ve gelir vergisi formüllerini uygulamak gerekir
  • 2024’te Canada Pension Plan’a temel ve ek primlerin yanı sıra second additional premiums de eklendiği için mevcut elektronik tabloyu baştan yeniden yazmak gerekti
  • CRA belgelerinde değerlerin nerede hesaplandığı ve nerede kullanıldığı ileri geri dağınık olduğundan, önce hangi kalemlerin hesaplanması gerektiğini anlamak için bir GraphViz bağımlılık grafiği oluşturuldu
  • Grafik, 2024 yılı “Year's Annual Maximum Pensionable Earnings” girdisi olan $73,200 değerinden “Total payroll deductions”a uzanan 79 düğümden oluşuyor
  • Formüllerin kendisi hariç tutulup yalnızca değerler arasındaki bağımlılıklar kaydedildi; komisyonlu çalışanlar, CPP’ye giren/çıkanlar ve Quebec, Nova Scotia, Yukon, Ontario sakinleri kapsam dışında bırakıldı

CRA bordro kesintilerini doğrudan hesaplarken ortaya çıkan karmaşıklık

  • Canada Revenue Agency, bordro kesintilerini hesaplamak için Payroll Deductions Formulas belgesini düzenli olarak yayımlar; şu anda 119. baskıya ulaşmış durumda
  • Bu belge, CRA’nın tahsil ettiği bordro kesintilerini hesaplamak için gereken formülleri içerir
    • Canada Pension Plan
    • Employment Insurance
    • Income Tax
  • Kanada’da küçük bir işletme işletirken harici bir bordro sağlayıcısı kullanmak istemiyorsanız, bu formülleri doğrudan bir elektronik tabloda uygulamanız gerekir
  • Vergi sisteminin diğer bölümlerinde olduğu gibi bordro kesintisi hesaplaması da giderek karmaşıklaşıyor; 2024’te CPP’ye second additional premiums eklendiği için elektronik tablonun yeniden yazılması gerekti

GraphViz ile düzenlenen hesaplama sırası

  • CRA belgesinde hangi değerin önce hesaplanması gerektiğini tek bakışta takip etmek zor
    • Gerekli bir değer, kullanılmadan önce ya da sonra hesaplanabiliyor; bu yüzden belge içinde sürekli ileri geri gitmek gerekiyor
  • Bunu düzenlemek için GraphViz ile bir bağımlılık grafiği hazırlandı
  • Grafikte 79 düğüm var; örnek akış şöyle
    • “Year's Annual Maximum Pensionable Earnings”: 2024 vergi yılı için $73,200
    • Son düğüm: “Total payroll deductions”
  • Grafiğe formüllerin kendisi eklenmedi; yalnızca her değerin hangi diğer değerlere bağımlı olduğu kaydedildi
  • Hesaplama kapsamını basitleştirmek için şu durumlar hariç tutuldu
    • Komisyonlu çalışanlar
    • Canada Pension Plan’a katılan veya ayrılan çalışanlar
    • Quebec, Nova Scotia, Yukon, Ontario sakinleri
  • Tam boyutlu görsel payroll.png olarak sunuluyor; görsel boyutu 5627x2033

1 yorum

 
GN⁺ 2024-01-04
Hacker News yorumları
  • Hükümetin açık formülleri kod biçiminde sunmaması üzücü.
    Güvenilir şekilde işlemenin tek yolunun CRA’nın sağladığı web formunu kullanmak olduğunu biliyorum: https://www.canada.ca/en/revenue-agency/services/e-services/...
    Elle hesaplamak zahmetli ve hataya çok açık.

    • Almanya çok uzun zamandır, en azından 1970’lerden beri, maaş hesaplaması için adlandırılmış değişkenler ve formüller içeren standart akış şemaları yayımlıyor: https://www.bundesfinanzministerium.de/Content/DE/Downloads/...
    • Konut kredisi hesaplamaları için de benzer bir şey olmasını isterdim.
      Örneğin TD Canada, her ödemede tutarın ne kadarının anaparaya gittiğini söylemiyor. Kendi hesabımı doğru yaptığımı düşünüyorum ama ödeme sonrası bankanın gösterdiği bakiye sık sık onlarca dolar farklı çıkıyor.
      Kanada’da hesap ayrıntılarını ve ekstreleri almak için bir API kullanamamak da can sıkıcı.
    • Hükümetin kod biçiminde açık formüller yayımlaması gerektiğine hiç katılmıyorum.
      Bunu yapmak, hükümete işleri mümkün olduğunca karmaşıklaştırması için bir araç vermek olur. Vergiler, ödeyen kişinin tamamen anlayabileceği kadar basit olmalı.
      Hükümet bütçeyi dengelemekte başarısız oldu diye maaş kesintileri gibi temel bir şeyi anlamak için yazılımın zorunlu hâle gelmesi haksızlık.
      Elle hesaplama zahmetli ve hataya açıksa, asıl sorun hükümeti bunu elle de yapılabilir kılmaya zorlayan bir yasanın olmaması.
    • Fransa vergiler için kendi DSL’ini bile geliştirdi: https://github.com/MLanguage/mlang
    • Tüm yasalar kodla ifade edilebilmeli.
      O zaman birbiriyle çelişen veya tutarsız ne kadar çok yasa olduğu hızla ortaya çıkar.
  • Vergi hukukuyla biraz uğraşmış biri olarak, vergi karmaşıklığı döngüsünün kabaca şöyle işlediğini düşünüyorum:
    Vergi yasası çıkar, zeki muhasebeciler ve vergi avukatları yasal olarak vergiyi azaltmanın yollarını bulur, vergi idaresi de o boşlukları kapatmak için düzenlemeler yayımlar.
    İktidar değiştiğinde oy kazanmak ve ekonomiyi yönlendirmek için bazı vergiler düşürülür veya indirimler eklenir; sonraki iktidar ise siyasi nedenlerle önceki iktidarın politikalarını seçici biçimde geri alır.
    Uluslararası vergilendirmede buna birden fazla yargı alanı arasında dolaşan vergi optimizasyonu teknikleri, çok uluslu şirketleri çekmek için ülkelerin sunduğu teşvikler, OECD’nin standartlaştırma girişimleri ve ikili vergi anlaşmaları da eklenir.
    Örnek: Double Irish With a Dutch Sandwich https://www.investopedia.com/terms/d/double-irish-with-a-dut...

    • Bu karmaşıklık vergi boşluklarını kapatmaya çalışmaktan kaynaklanmıyor. Çoğu, politikacıların bir şeylere isim vermeyi sevmesinden kaynaklanıyor.
      Kanada’da uzun zamandır “personal amount” vergi kredisi vardı; “ilk $X gelir vergilendirilmez” demek yerine, en düşük vergi oranı × $X tutarında iade edilmeyen vergi kredisi olarak uygulanıyor.
      Sonra “geliri en yüksek %1’e vergi indirimi yapmaktan kaçınırken personal amount’u artıralım” denince, artık gelire göre değişen personal amount ortaya çıktı.
      BC’nin “BC Tax Reduction”ı da kabaca $22k–$36k geliri olanlara ek vergi kredisi veren bir yapı. İkisi de basitçe vergi dilimleriyle uygulanabilirdi, ama seçmenler yeni bir vergi diliminden çok “Tax Reduction” adına tepki veriyor.
      1. adımda tek oranlı vergiyle bitirirseniz bu sorunları engelleyebilirsiniz. Her şeye aynı şekilde uygulanması yeter.
        Yatırım geliri ayrıcalığı, gayrimenkul ayrıcalığı, şirket ayrıcalığı, sel bölgesinde yaşayan üç bacaklı perilere ayrıcalık gibi istisnalar kaldırılmalı.
        O zaman piyasa, insan emeğini en değerli işlere yönlendirebilir.
        Bu konuda boşa harcanan üretkenlik akıl almaz. Milyonlarca insan karmaşık bilmeceler üretmeye, çözmeye ve manipüle etmeye uğraşıyor; bu karmaşıklığın faydalı olduğuna dair kanıt yok.
    • Açık istisnalara, belirli kalemlere, indirimlere ve vergi kredilerine “açık” denmesinde sorun var.
      Bu kalemler çoğu zaman vergiden kaçınmak için kullanılsın diye tasarlanır. Gruplar, bireyler ve kuruluşlar kendi ilgi alanlarının istisna, indirim veya vergi kredisi olarak eklenmesi için hükümete lobi yapar.
      Muhasebecilerin veya vergi avukatlarının bunları doğru kullanması “yasal olarak vergiden kaçınmak” değil; zaten baştan ödenmesi gereken vergi değildir.
      Yasaya göre tam olarak owed tax kadar ödeme yapmayı “açıktan yararlanarak vergiden kaçınma” diye adlandırmak için tüm gelirin hükümete ait olduğu varsayımını kabul etmek gerekir; bu varsayım kabul edilemez.
  • Kanada’da küçük bir bordro işleme şirketi işletmiştim ve tamamını Rails ile yapmıştım.
    Kurallar her değiştiğinde CRA hesaplayıcısını scrape edip çeşitli eyaletler ve maaş aralıkları için hesaplama yaptırıyor, sonuçları rspec ile yazdırıyordum.
    Böylece düzenlemeleri doğru yansıtıp yansıtmadığımı, bir kuralı atlayıp atlamadığımı veya bir değeri yanlış girip girmediğimi test edebiliyordum.

  • Birkaç yıl önce IRS için benzer bir şey yapmıştım: https://nampas.github.io/tax-map/

    • Dairesel yerleşimli yönlü graf için kullanılan özel bir terim var mı merak ediyorum.
      Tüm kenarların tek yönlü mü olduğunu, yoksa çift yönlü kenarların da bulunup bulunmadığını da merak ediyorum. Umarım çift yönlü yoktur.
  • Böyle diyagramlar, bordro işleme sağlayıcılarının var olma nedenidir.
    İlgili yazı için Bits About Money’deki https://www.bitsaboutmoney.com/archive/payroll-providers-pow... yazısına bakın.

    • Yine de sonuçta bu matematik ve bordro işleme sağlayıcılarının sunduğu bilgilerin doğru olup olmadığını doğrulayan standardizasyonu da hükümet denetliyor.
      O hâlde hükümetin bu standardı sağlayabilmesi gerekir.
  • Yazara alkış
    Bu noktada CRA’nın tüm formüllerin referans uygulamasını yayımlayıp küçük işletmelerin kullanabilmesini sağlaması gerekir

    • Bir LibreOffice elektronik tablosu yayımlasalar gerçekten harika olurdu
      Yayımlamasalar bile en azından kurum içinde yapsalar iyi olur. Belgeleri bizzat okumak zorunda kalırlarsa, belgelerin çok daha iyi yazılma ihtimali de artar
    • Neden böyle bir şey yapsınlar ki? Her şeyi açarlarsa herkes hataları ve sorunları bulur, o zaman da CRA’nın bunlarla uğraşması gerekir
      Cezalardan elde ettikleri gelirden de epey kaybedebilirler
      Üniversite yıllarında yurt görevlisi olduğum için “ücretsiz” oda ve yemek alıyordum; 20 yaşımda ilk kez Kanada vergisi beyan ederken yaklaşık 1.000 $ eksik bildirmiştim. ABD vatandaşı olarak ilk kez Kanada vergi beyannamesi veriyordum
      Birkaç yıl sonra yaklaşık 5.500 $ ceza geldi; yarı zamanlı çalışan bir üniversite öğrencisi için muazzam bir paraydı. BC’nin CRA cezalarını aynen eşleştirebildiğini o zaman öğrendim
      Geriye dönüp bakınca, o işi yapmamak belki de daha iyi olabilirdi. Kanada’da yaşadığım geri kalan süre boyunca bir CPA tuttum
      IRS buna kıyasla sıcak ve sevecen bile kalır. En azından hata yaptığınızda ceza, eksik bildirilen tutarla orantılı olur. Aşırı zengin değilseniz tabii
    • CRA bunu yapmayacaktır. Net bir yanıt sağlama yükümlülükleri yok
    • Başka bir yanıtta şu web formuna işaret edilmişti: https://news.ycombinator.com/item?id=38843556
      İndirilebilir bir tablo gibi görünmüyor ama yine de bir şey var
  • Fransa’da bu tür kurallar bir web sitesi, API, NPM paketi ve https://publi.codes dilinin ham kuralları olarak sunuluyor
    https://mon-entreprise.urssaf.fr/développeur

  • “Quebec, Nova Scotia, Yukon, Ontario sakinleri hariç” denmiş; bu fiilen Kanada’nın %75’i demek

    • Adil olmak gerekirse Nova Scotia, Yukon ve Ontario için yalnızca birkaç düğüm daha eklemek yeterli olur
      Sadece BC’de olduğum için oraya kadar uğraşmak istemedim
      Quebec bambaşka bir mesele. Orada bordro kesintisi hesaplamaları çok daha karmaşık
    • Quebec pratikte ayrı bir ülkeye yakın
      Yalnızca QC’ye uygulanan gerçekten çok sayıda tuhaf İK kuralı ve gereklilik var
  • ABD’deyim, ama bu tür şeylerin LLC’mde çalışan işe almamamın nedenlerinin yaklaşık yarısını oluşturduğunu kesinlikle söyleyebilirim.
    İşe almak isteseniz bile fiilen yanında bir de muhasebeci işe almış oluyorsunuz.

    • Uzaktan çalışma eğilimini düşününce, çalışanı işe almak istediğiniz eyalet ile şirketin bulunduğu eyalet arasındaki ilişkiye çok dikkat etmek gerekiyor.
      Bazı eyaletler gerçekten baş ağrıtıyor. Örneğin NJ, CA, NY, OH böyle.
      Bir eyalete kayıt yaptırırsanız, o çalışan başka bir işe ayrıldıktan sonra bile, o eyaletin tespit ettiği çeşitli uyumsuzluklar nedeniyle şirket izlenmeye devam edebilir.
      Örneğin o eyalette artık çalışanınız olmadığını bildirmediğiniz gerekçesiyle büyük para cezaları alabilirsiniz.
      Muhatap olması kolay eyaletler ID, TN, TX idi.
      Genel olarak bu nedenlerle yalnızca kendi eyaletinizdeki çalışanları işe almak daha iyi. Zorunlu değilse işe almam.
    • Geliştirici ya da araştırma/deneylerle ilgilenecek birini işe almayı düşünüyorsanız Section 174’ü iyi bilmelisiniz.
      Geliştirici maliyetlerini 5 yıla yayarak amorti etmeniz gerektiği için büyük bir vergi bildirimiyle karşılaşabilirsiniz. Çalışan da olsa yüklenici de olsa aynı.
      Kaldırılması iyi olurdu; ama olmazsa, Senator Wyden’ın ifadesiyle “stupid” olmasına rağmen kimsenin yürürlükte kalacağını beklemediği bir madde.
      https://www.law.cornell.edu/uscode/text/26/174
      Düzenleme: Kaldırılmayacak. Ancak gelecekteki belirli bir tarihe kadar yok sayılmasını sağlayan bir yasa çıkarılabilir. Bir kez defterlere girdikten sonra, muhasebe işlemleri nedeniyle vergi yasasını kaldırmak çok zorlaşıyor.
    • Diğer yanıtlarda da söylendiği gibi bordro işleme şirketlerinin var olmasının bir nedeni var; bugünlerde mevzuata uyumu da kolaylaştıran pek çok hizmet var.
      Örneğin tanıdığım birçok küçük ve orta ölçekli işletme Gusto kullanıyor; çünkü yüklenici veya çalışan eklemeyi kolaylaştırıyor.
      Özellikle Gusto’nun reklamını yapmak istemiyorum; ararsanız birçok rakip hizmet de var. Ücretsiz değil, ama SaaS modeli olduğu için çalışan başına maliyetle başlayıp şirketle birlikte ölçeklenebilmesi avantaj.
    • Sorun ek maliyetlerden kaynaklanan muhasebe karmaşıklığı değil de bordro hesaplamasıysa, yurt içi istihdamda bile remote.com veya deel.com üzerinden işe alım yapabilirsiniz.
      Bu, çalışanın maaşlı olması ya da bağımsız yüklenici olarak çalışması durumuyla sınırlı. Ancak bu durumda kişi gerçekte sizin çalışanınız olmaz.
      Kayıtlı işveren hizmeti yerel yasalara uyumu garanti eder ve çalışanın toplam maliyetine hizmet ücretini ekleyerek faturalandırır.
    • Mesele federal ve eyalet kurumları için bordroyu hesaplayıp ödemeleri göndermekse, bunun kesinlikle bir engel olması gerekmez.
      Çalışan başına aylık $30~$50 karşılığında hesaplama ve ödemeleri yapan sayısız bordro hizmeti şirketi var. Standart bordro işlemleri için mutlaka muhasebeci gerekmez.
  • Bu, yazılım olup olmamasından bağımsız olarak bir algoritmanın nasıl çalıştığını gösteriyor.
    İstenen ya da gerekli bir şeyden başlayıp karmaşıklık eklemeye devam ederseniz, keyfi sonuçlar üreten, dışarıdakileri çıldırtan ve büyü gibi okunduğunda alt seviye bir iblisi bile çağırabilecek bir keşmekeşe varırsınız.
    Çözüm olarak elbette refactoring akla gelir. Politikacıların seçim zamanı vaat ettiği, junior geliştiricilerin de yeni bir kod tabanıyla karşılaştığında istediği iş budur.
    Ama pratikte neredeyse hiç olmaz. Çünkü hangi özellik ve karmaşıklıkların gereksiz, hangilerinin kasıtlı olduğunu kimse net biçimde ayırt edemez.
    İkinci çözüm, statik tipli diller veya teorem ispatlayıcılar gibi daha biçimsel bir çerçevede temiz bir uygulama yapmaktır. Ama sistemin kendisi zaten çelişkiliyse bu girişim de sık sık başarısız olur.
    Neyse ki kimse “tuhaf sınır durumlarıyla” ilgilenmez; biri yaklaşık bir milyon dolarla kaçana kadar da öyle bırakılır.

    • Aslında CRA ve son dönem federal hükümetler Kanada vergilerini basitleştirmek için çok şey yaptı. Bugünlerde çok daha basit. Elbette bu bordro kısmı istisna.
      10~15 yıl önce oy toplamak için konmuş yığınla özel indirim vardı.
      Bugünlerde serbest çalışma veya yurt dışı yatırımı gibi şeyleriniz yoksa ve sıradan bir maaşlı çalışansanız, vergi beyanı önemsiz ve neredeyse otomatikleşmiş durumda.
      Yukarıdaki grafikteki karmaşıklığın büyük kısmı, Kanada’nın güçlü bir federal ülke olması nedeniyle her eyaletin ilgili yetki ve istisnalara sahip olmasından kaynaklanıyor gibi görünüyor. Buna federal istihdam sigortası ve emeklilik sistemi de ekleniyor.