Gráfico de dependências da folha de pagamento canadense
(daemonology.net)- Para calcular diretamente os descontos em folha no Canadá sem usar um serviço externo de folha de pagamento, é preciso implementar as fórmulas de CPP, EI e imposto de renda presentes no Payroll Deductions Formulas da CRA
- Em 2024, o Canada Pension Plan passou a incluir não só as contribuições básicas e adicionais, mas também os second additional premiums, o que exigiu reescrever a planilha existente do zero
- A documentação da CRA espalha para frente e para trás os pontos em que os valores são calculados e onde são usados, então foi criado um gráfico de dependências em GraphViz para identificar primeiro quais itens precisavam ser calculados
- O gráfico é composto por 79 nós, indo de valores de entrada como “Year's Annual Maximum Pensionable Earnings” de US$ 73.200 em 2024 até “Total payroll deductions”
- As fórmulas em si foram excluídas; foram registradas apenas as relações de dependência entre valores, e ficaram fora do escopo funcionários comissionados, participantes que entram ou saem do CPP e residentes de Quebec, Nova Scotia, Yukon e Ontario
A complexidade de calcular diretamente os descontos em folha da CRA
- A Canada Revenue Agency publica regularmente o documento Payroll Deductions Formulas, usado para calcular descontos em folha, e ele já está na 119ª edição
- O documento contém as fórmulas necessárias para calcular os descontos em folha arrecadados pela CRA
- Canada Pension Plan
- Employment Insurance
- Income Tax
- Para operar uma pequena empresa no Canadá sem usar um provedor externo de folha de pagamento, é preciso implementar essas fórmulas diretamente em uma planilha
- Assim como em outras partes do sistema tributário, o cálculo dos descontos em folha vem ficando cada vez mais complexo; em 2024, a inclusão dos second additional premiums no CPP exigiu reescrever a planilha
Ordem de cálculo organizada com GraphViz
- A documentação da CRA dificulta acompanhar de relance quais valores precisam ser calculados primeiro
- Um valor necessário pode ser calculado antes ou depois de ser usado, obrigando a ficar indo e voltando dentro do documento
- Para organizar isso, foi criado um gráfico de dependências com GraphViz
- O gráfico tem 79 nós, e um fluxo representativo é o seguinte
- “Year's Annual Maximum Pensionable Earnings”: US$ 73.200 para o ano fiscal de 2024
- Nó final: “Total payroll deductions”
- O gráfico não inclui as fórmulas em si; registra apenas de quais outros valores cada valor depende
- Para simplificar o escopo do cálculo, os seguintes casos foram excluídos
- Funcionários comissionados
- Funcionários que entram ou saem do Canada Pension Plan
- Residentes de Quebec, Nova Scotia, Yukon e Ontario
- A imagem em tamanho completo está disponível em payroll.png, com dimensões de 5627x2033
1 comentários
Opiniões do Hacker News
É uma pena que o governo não forneça as fórmulas públicas em forma de código
Pelo que sei, o único jeito de processar isso com confiabilidade é usar o formulário web da CRA: https://www.canada.ca/en/revenue-agency/services/e-services/...
Calcular à mão é penoso e sujeito a erros
Por exemplo, o TD Canada não informa, a cada pagamento, quanto do valor amortiza o principal. Acho que fiz o cálculo corretamente, mas é comum haver diferenças de dezenas de dólares em relação ao saldo que o banco mostra depois do pagamento
No Canadá, também é frustrante não poder usar uma API para obter detalhes e extratos da conta
Isso entregaria ao governo um meio de torná-las tão complexas quanto possível. Impostos deveriam ser simples o bastante para que quem paga os entenda completamente
Não é justo que, porque o governo não conseguiu equilibrar o orçamento, passe a ser necessário software para descobrir algo básico como descontos em folha
Se calcular à mão é penoso e propenso a erros, o problema maior é não haver uma lei que obrigue o governo a tornar isso viável à mão
Assim ficaria rapidamente evidente quantas leis entram em conflito entre si ou são inconsistentes
Como alguém que já lidou um pouco com legislação tributária, vejo o ciclo da complexidade tributária mais ou menos assim
Uma lei tributária é aprovada, contadores e advogados tributaristas inteligentes encontram maneiras legais de reduzir impostos, e a autoridade fiscal emite normas para fechar essas brechas
Quando o governo muda, ele reduz alguns impostos ou acrescenta isenções para ganhar votos e ajustar a economia, e o governo seguinte reverte seletivamente políticas do anterior por razões políticas
Se for tributação internacional, somam-se técnicas de planejamento tributário entre várias jurisdições, incentivos de cada país para atrair multinacionais, tentativas de padronização da OCDE e tratados tributários bilaterais
Ex.: Double Irish With a Dutch Sandwich https://www.investopedia.com/terms/d/double-irish-with-a-dut...
No Canadá, há muito tempo existia um crédito tributário chamado “personal amount”, mas, em vez de dizer “os primeiros $X de renda não são tributados”, ele é tratado como um crédito tributário não reembolsável equivalente à alíquota mínima × $X
Então isso virou “vamos aumentar o personal amount sem beneficiar o 1% de maior renda”, e agora existe um personal amount que varia conforme a renda
A “BC Tax Reduction” da Colúmbia Britânica também é, em linhas gerais, uma estrutura que dá crédito tributário adicional para quem tem renda de cerca de $22 mil a $36 mil. Ambas poderiam ter sido implementadas simplesmente com faixas de alíquota, mas eleitores reagem mais ao nome “Tax Reduction” do que a uma nova faixa de imposto
É preciso eliminar exceções como tratamento favorecido para renda de investimentos, imóveis, empresas ou fadas de três pernas que vivem em áreas de enchente
Assim, o mercado pode alocar o esforço humano para as atividades mais valiosas
A produtividade desperdiçada nesse tema é absurda. Milhões de pessoas se dedicam a criar, resolver e manipular enigmas complexos, sem evidência de que essa complexidade seja benéfica
Muitas vezes, esses itens são concebidos justamente para serem usados a fim de evitar tributação. Grupos, indivíduos e organizações fazem lobby junto ao governo para incluir seus temas de interesse como exceções, deduções e créditos tributários
Quando contadores ou advogados tributaristas os utilizam corretamente, isso não é “evitar impostos legalmente”; trata-se de imposto que, para começo de conversa, não era devido
Para chamar o pagamento exato do imposto devido segundo a lei de “evitar impostos por meio de brechas”, seria preciso partir da premissa de que toda renda pertence ao governo, e essa premissa é inaceitável
Eu administrava uma pequena empresa de processamento de folha de pagamento no Canadá, e fiz tudo em Rails
Sempre que as regras mudavam, eu raspava a calculadora da CRA para fazer cálculos em várias províncias e faixas salariais, e fazia os resultados serem impressos pelo
rspecAssim dava para testar se eu tinha refletido corretamente as normas e se não tinha deixado regras de fora ou digitado valores errados
Alguns anos atrás, fiz algo parecido para o IRS: https://nampas.github.io/tax-map/
Também fico curioso se todas as arestas são unidirecionais ou se há arestas bidirecionais. Espero que não haja bidirecionais
Esse tipo de diagrama é exatamente o motivo pelo qual existem provedores de processamento de folha de pagamento
Para um texto relacionado, veja https://www.bitsaboutmoney.com/archive/payroll-providers-pow... em Bits About Money
Então o governo deveria ser capaz de fornecer esse padrão
Aplausos ao autor
A esta altura, a CRA deveria publicar a implementação de referência de todas as fórmulas para que pequenos empresários possam usá-las
Mesmo que não a publiquem, seria bom se ao menos a fizessem internamente. Se eles próprios tiverem de ler a documentação, é bem provável que a documentação também seja escrita muito melhor
Também poderiam perder muita receita arrecadada com multas
Na época da faculdade, fui monitor de alojamento e recebia moradia e alimentação “gratuitas”; quando declarei impostos no Canadá pela primeira vez, aos 20 anos, subdeclarei cerca de US$ 1.000. Foi a primeira vez que declarei imposto canadense como cidadão dos EUA
Alguns anos depois, veio uma multa de cerca de US$ 5.500, uma quantia enorme para um estudante universitário que trabalhava meio período. Foi aí que descobri que a BC podia igualar integralmente as multas da CRA
Olhando para trás, talvez tivesse sido melhor nem ter aceitado esse trabalho. Pelo resto do tempo em que morei no Canadá, contratei um CPA
Em comparação, o IRS parece até caloroso e acolhedor. Pelo menos, se você comete um erro, a multa é proporcional ao valor subdeclarado. A menos que você seja super-rico
Não parece ser uma planilha para download, mas ainda assim é alguma coisa
Na França, essas regras são fornecidas como site, API, pacote NPM e como regras brutas na linguagem https://publi.codes
https://mon-entreprise.urssaf.fr/développeur
[https://www.canada.ca/en/revenue-agency/services/e-services/...](<https://canada.ca/en/revenue-agency/…;)Ou há também a versão de Quebec
[https://www.revenuquebec.ca/en/online-services/tools/webras/](<https://www.revenuquebec.ca/en/online-services/tools/webras/>)A ideia de fornecer esse tipo de regra em uma versão legível por máquina com apoio do governo é realmente excelente
O usuário precisa conferir os cálculos separadamente, e isso é apenas uma conveniência, não um critério oficial?
“Calculations are indicative. They are not a substitute for actual statements from Urssaf, the tax authorities or any other organization.”
[1] https://mycompanyinfrance.urssaf.fr/developer/iframe?module=...
“Exclui residentes de Quebec, Nova Escócia, Yukon e Ontário” — ou seja, na prática 75% do Canadá
É só que, como estou na BC, não quis me preocupar com isso
Quebec é uma questão completamente diferente. Lá, o cálculo das deduções de folha é muito mais complexo
Há muitas regras e exigências estranhas de RH que se aplicam só a QC
Estou nos EUA, mas posso dizer com certeza que coisas assim são cerca de metade do motivo pelo qual não contratei funcionários pela minha LLC
Mesmo que eu quisesse contratar, na prática seria como contratar também um contador
Alguns estados dão muita dor de cabeça. Por exemplo, NJ, CA, NY e OH
Ao se registrar em um estado, mesmo depois que esse funcionário sai para outro emprego, a empresa pode continuar na mira por vários tipos de não conformidade reconhecidos por aquele estado
Por exemplo, pode receber uma multa pesada só por não ter informado que não há mais funcionários naquele estado
Os estados com os quais foi fácil lidar foram ID, TN e TX
Em geral, por esse motivo, é melhor contratar apenas funcionários do seu próprio estado. Se não for realmente necessário, eu não contrataria
Os custos com desenvolvedores precisam ser amortizados ao longo de 5 anos, o que pode resultar em uma conta de impostos alta. Vale tanto para funcionários quanto para contratados
Seria bom se isso fosse revogado, mas, se não for, é uma cláusula “stupid”, nas palavras do Senator Wyden, e que ninguém esperava que existisse
https://www.law.cornell.edu/uscode/text/26/174
Atualização: não será revogada. Mas pode ser criada uma lei para ignorá-la até uma determinada data no futuro. Depois que entra nos livros, fica muito difícil remover uma regra tributária por causa do tratamento contábil
Por exemplo, muitas empresas de pequeno e médio porte que conheço usam Gusto, porque facilita adicionar contratados ou funcionários
Não estou tentando fazer propaganda específica da Gusto; pesquisando, há muitos concorrentes. Não é gratuito, mas, por usar um modelo SaaS, tem a vantagem de começar com um custo por funcionário e escalar junto com a empresa
Isso vale quando a pessoa é assalariada ou atua como contratada independente. Nesse caso, porém, ela não é realmente funcionária
Uma empresa de registro empregador garante conformidade com a legislação local e cobra o custo total do funcionário acrescido de uma taxa de serviço
Há incontáveis empresas de folha que fazem o cálculo e o repasse por US$ 30 a US$ 50 por mês por funcionário. Para processamento comum de folha, não é indispensável ter um contador
Isso mostra como funciona um algoritmo, independentemente de ser software ou não
Você começa com algo desejável ou necessário e vai acrescentando complexidade até chegar a uma bagunça que produz resultados arbitrários, deixa quem vem de fora maluco e, se lida como um encantamento, pode até invocar um demônio menor
A solução óbvia que vem à mente é refatoração. É aquela tarefa que políticos prometem em campanhas eleitorais e desenvolvedores juniores exigem ao encontrar uma nova base de código
Mas, na prática, ela quase nunca acontece. Ninguém consegue distinguir claramente quais funcionalidades e complexidades são desnecessárias e quais foram intencionais
A segunda solução é implementar tudo de forma limpa em uma estrutura mais formal, como uma linguagem de tipagem estática ou um provador de teoremas. Mas, se o próprio sistema já é contraditório, essa tentativa também costuma falhar
Felizmente, ninguém se importa com “casos de borda estranhos” e tudo fica como está até alguém fugir levando algo como um milhão de dólares
Há 10 a 15 anos, havia uma montanha de deduções especiais de todo tipo para comprar votos
Hoje, se você não é autônomo, não tem investimentos no exterior e é um trabalhador assalariado comum, declarar imposto é trivial e quase automatizado
A maior parte da complexidade no gráfico acima parece vir do fato de o Canadá ser um país com federalismo forte, em que cada província tem poderes e exceções relevantes. A isso se somam o seguro-emprego federal e o sistema de previdência