1P by neo 8달전 | favorite | 댓글 1개

캐나다 급여 공제 계산의 복잡성

  • 캐나다 국세청(CRA)은 정기적으로 "급여 공제 수식(Payroll Deductions Formulas)" 문서를 발행함. 이 문서에는 CRA가 수집하는 캐나다 연금 계획, 고용 보험, 소득세의 모든 계산 수식이 포함됨.
  • 캐나다에서 소규모 사업을 운영하며 외부 급여 서비스 제공업체를 사용하지 않는 Colin Percival은 이러한 수식을 스프레드시트에 직접 구현함.
  • 세금 시스템의 대부분의 측면처럼 복잡성이 증가하고 있으며, 올해 캐나다 연금 계획에는 "기본" 프리미엄과 "추가" 프리미엄뿐만 아니라 "두 번째 추가" 프리미엄도 포함되어 스프레드시트를 처음부터 다시 작성해야 함.

의존성 차트 작성

  • 문서의 저자들은 소프트웨어의 중요한 세부 사항을 간과했는데, 값을 사용하기 전에 계산해야 한다는 것임. 이로 인해 문서를 보면서 계산해야 할 각 값이 어디에 있는지를 왔다 갔다 해야 함.
  • 이를 돕기 위해 Colin Percival은 GraphViz를 사용하여 의존성 차트를 그림. 그래프에는 "연간 최대 연금 적립 금액"($73200)과 같은 값에서 시작하여 "총 급여 공제"에 이르기까지 79개의 노드가 있음.
  • 차트에는 수식을 쓰지 않고, 각 수식이 의존하는 다른 값들만 기록하여 차트를 보는 사람이 무엇을 먼저 계산해야 하는지 쉽게 파악할 수 있도록 함.

단순화된 가정

  • 단순화를 위해, Colin Percival은 수수료를 받는 직원, 캐나다 연금 계획에 들어오거나 나가는 직원, 퀘벡, 노바스코샤, 유콘, 온타리오(각각 자체 세금 복잡성이 있는)에 거주하는 사람을 다루지 않는다고 가정함.

GN⁺의 의견

  • 이 글은 캐나다의 급여 공제 계산이 얼마나 복잡한지를 잘 보여줌. 특히 소규모 사업주가 직면하는 도전과제와 이를 해결하기 위한 창의적인 접근 방식을 강조함.
  • 의존성 차트를 작성하는 것은 복잡한 시스템을 이해하고 관리하는 데 매우 유용한 도구로, 소프트웨어 엔지니어링뿐만 아니라 다양한 분야에서의 문제 해결에 적용될 수 있음.
  • 이 글은 세금 계산의 복잡성을 단순화하고자 하는 사업주의 노력을 보여주며, 이러한 노력이 다른 사업주들에게도 영감을 줄 수 있음.
Hacker News 의견
  • 정부에서 코드 형식의 공개 수식을 제공하지 않는 것은 유감임.

    캐나다 국세청(CRA) 웹사이트에서 제공하는 웹 폼을 사용하는 것이 신뢰할 수 있는 유일한 방법이며, 수작업으로 계산하는 것은 매우 번거롭고 오류가 발생하기 쉬움.

  • 캐나다의 작은 급여 회사를 운영했던 경험에서, 규칙이 업데이트될 때마다 CRA 계산기에 대한 스크래퍼를 실행하여 다양한 지역과 급여 범위에 대한 급여를 계산하고 rspec으로 출력하여 규정 준수 여부를 테스트했음.

    규칙이 변경될 때마다 스크래퍼를 사용하여 급여를 계산하고 rspec으로 결과를 출력하여 규정 준수 여부를 테스트하는 '브루트 포스' 방법을 사용함.

  • 세법의 복잡성은 다음과 같은 순환 과정을 거침:

    1. 세법이 제정됨.
    2. 능숙한 회계사와 세무 변호사들이 세금을 법적으로 회피하는 방법을 찾아냄.
    3. 세무 당국이 루프홀을 막기 위한 규정을 발행함.
    4. 행정부가 바뀌고 표를 얻거나 경제를 조정하기 위해 일부 세금을 낮추고 세금 혜택을 추가함.
    5. 새로운 행정부가 정치적 이유로 이전 행정부의 프로그램을 선택적으로 뒤집음.
    6. 국제 세금의 경우, 다중 관할 구역에서 세금을 낮추기 위한 복잡한 전략을 사용하는 능숙한 세무 변호사, 다국적 기업을 유치하기 위해 세법에 인센티브를 추가하는 정부, OECD가 이를 방지하기 위해 세금 관련 사항을 표준화하려고 시도함, 개별 국가 간의 세금 조약 등이 추가됨.
  • 몇 년 전 IRS를 위해 비슷한 것을 만든 적이 있음.

    미국 세무서비스 IRS를 위해 몇 년 전에 비슷한 도구를 만든 경험이 있음.

  • 급여 제공 업체가 존재하는 이유를 보여주는 차트임.

    급여 제공 업체의 필요성을 설명하는 차트와 관련된 Bits About Money 포스트를 참조함.

  • CRA가 모든 수식의 참조 구현을 게시해야 한다는 점에서 저자에게 박수를 보냄.

    CRA가 모든 수식의 참조 구현을 게시하여 소규모 기업이 혜택을 볼 수 있도록 해야 한다는 의견에 동의함.

  • 프랑스에서는 이러한 규칙들이 웹사이트, API, NPM 패키지, 그리고 publi.codes 언어로 된 원시 규칙으로 제공됨.

    프랑스에서는 세금 규칙들이 웹사이트, API, NPM 패키지, publi.codes 언어로 제공되고 있음을 설명함.

  • 캐나다 인구의 약 75%가 거주하는 퀘벡, 노바스코샤, 유콘, 온타리오 주민을 제외하고는 모든 사람에게 적용됨.

    퀘벡, 노바스코샤, 유콘, 온타리오 주민을 제외한 캐나다 인구의 대다수에게 적용되는 규칙임.

  • 미국에 거주하지만, 이러한 복잡성이 내 LLC에 직원을 고용하지 않는 주된 이유 중 하나임.

    미국에 거주하는 사용자는 세금과 관련된 복잡성 때문에 LLC에 직원을 고용하지 않는 주된 이유 중 하나임을 설명함.

  • 어떤 알고리즘도, 소프트웨어든 아니든, 복잡성을 추가하여 원하는 결과를 얻을 수 있는 혼란스러운 상태로 만들어짐.

    알고리즘은 복잡성을 추가하여 원하는 결과를 얻을 수 있는 혼란스러운 상태로 만들어지며, 이는 외부인을 혼란스럽게 하고, 경우에 따라 부정적인 결과를 초래할 수 있음.