A complexidade do cálculo das deduções da folha de pagamento no Canadá
- A Agência de Receita do Canadá (CRA) publica regularmente o documento "Payroll Deductions Formulas". Esse documento inclui todas as fórmulas de cálculo do Plano de Pensão do Canadá, do seguro-emprego e do imposto de renda arrecadados pela CRA.
- Colin Percival, que administra uma pequena empresa no Canadá sem usar um provedor externo de serviços de folha de pagamento, implementou essas fórmulas diretamente em uma planilha.
- Como na maior parte dos aspectos do sistema tributário, a complexidade está aumentando, e neste ano o Plano de Pensão do Canadá passou a incluir não apenas um prêmio "básico" e um prêmio "adicional", mas também um prêmio "segundo adicional", o que exigiu reescrever a planilha do zero.
Criação de um gráfico de dependência
- Os autores do documento deixaram passar um detalhe importante de software: um valor precisa ser calculado antes de poder ser usado. Por causa disso, ao consultar o documento, é preciso ficar indo e voltando para localizar onde está cada valor necessário para o cálculo.
- Para ajudar nisso, Colin Percival desenhou um gráfico de dependência usando GraphViz. O grafo tem 79 nós, começando por valores como "annual maximum pensionable earnings" ($73200) e chegando até "total payroll deductions".
- Em vez de escrever as fórmulas no gráfico, ele registrou apenas os outros valores dos quais cada fórmula depende, para que quem olhar o gráfico possa entender facilmente o que precisa ser calculado primeiro.
Hipóteses simplificadas
- Para simplificar, Colin Percival assume que não está lidando com funcionários comissionados, funcionários que entram ou saem do Plano de Pensão do Canadá, nem pessoas que moram em Quebec, Nova Escócia, Yukon ou Ontário, cada um com suas próprias complexidades tributárias.
Opinião do GN⁺
- Este texto mostra bem o quão complexos são os cálculos das deduções da folha de pagamento no Canadá. Em especial, destaca os desafios enfrentados por pequenos empresários e uma abordagem criativa para resolvê-los.
- Criar um gráfico de dependência é uma ferramenta muito útil para entender e administrar sistemas complexos, podendo ser aplicado à resolução de problemas em várias áreas, não apenas na engenharia de software.
- O texto mostra o esforço de um empresário para simplificar a complexidade do cálculo tributário, e esse esforço pode servir de inspiração para outros empreendedores.
1 comentários
Comentários do Hacker News
É uma pena que o governo não forneça fórmulas públicas em formato de código.
Pela experiência de ter operado uma pequena empresa de folha de pagamento no Canadá, sempre que as regras eram atualizadas, eu executava um scraper no calculador da CRA para calcular a folha em várias regiões e faixas salariais, e gerava a saída com rspec para testar a conformidade.
A complexidade da legislação tributária passa pelo seguinte ciclo:
Alguns anos atrás, fiz algo parecido para o IRS.
Este é um gráfico que mostra por que existem provedores de folha de pagamento.
Palmas ao autor por destacar que a CRA deveria publicar uma implementação de referência de todas as fórmulas.
Na França, essas regras são disponibilizadas em um site, API, pacote NPM e regras brutas na linguagem publi.codes.
Aplica-se a todos, exceto aos moradores de Quebec, Nova Escócia, Yukon e Ontário, onde vive cerca de 75% da população do Canadá.
Moro nos EUA, mas essa complexidade é um dos principais motivos pelos quais não contrato funcionários para a minha LLC.
Qualquer algoritmo, seja software ou não, acaba sendo transformado em um estado confuso no qual se pode adicionar complexidade para obter o resultado desejado.