IRPF-Livre 2025: Erro nos descontos no programa de referência

Alexandre Oliva lxoliva en fsfla.org
Lun Abr 7 11:22:38 UTC 2025


On Mar 20, 2025, Adonay Felipe Nogueira <adfeno.7046 en gmail.com> wrote:

> Em resumo, gostaria de saber se devemos imitar a Receita Federal neste
> caso ou corrigirmos os descontos?

As contas deles estão corretas.  Os descontos diferentes não podem ser
somados.

A propriedade que esses descontos buscam preservar é de que, no limite
entre duas faixas de taxação vizinhas, o imposto seja o mesmo,
calculando com qualquer das fórmulas das duas faixas que ali se
encontram, de modo que o imposto calculado seja uma função contínua e
progressiva.

Noutras palavars, dada a tabela:

F  Receita  Alíquota  Desconto
0     0,00    0,0%       0,00
1 26963,20    7,5%    2022,24
2 33919,80   15,0%    4566,23
3 45012,60   22,5%    7942,17
4 55976,16   27,5%   10740,98

O objetivo é que R[N] * A[N] - D[N] = R[N] * A[N-1] - D[N-1]

Com esses valores, usados pelo IRPF, essa propriedade se mantém.

Somando os descontos mensais, não necessariamente, ainda que essa
propriedade seja observada nas duas tabelas mensais.

O motivo da divergência é que, ao anualizar a renda e aplicar uma mesma
alíquota, aplica-se alíquota diferente da devida para valores que
estejam entre os limites antigo e o novo.

(É como aquele quebra-cabeça aritmético em que um sujeito fica tomando
conta de duas banquinhas de frutas, cada qual vendendo lotes de tamanhos
diferentes por preços diferentes, resolve somar os lotes e os preços e
se surpreende que o resultado da venda dá mais ou menos que o esperado)

O desconto ajustado, usado pelo IRPF, desfaz a distorção da alíquota
limítrofe.


O "desconto", na verdade, é meio que uma otimização das contas para
alcançar a continuidade.  Na real, a forma de calcular o imposto seria
assim:

seja V a receita, D o imposto devido e I = 1 o índice na tabela acima
enquanto V > R[I]:
  D += (V - R[I]) * (A[I] - A[I-1])
  I += 1

noutras palavras, aplica-se cada alíquota progressiva somente à porção
da renda que ativa aquela alíquota.

Os "descontos" D[I] = D[I-1] + (R[I] - R[I-1]) * (A[I] - A[I-1]),
simplificam as contas ao permitir fazer a conta aplicando uma só
alíquota, capturando em cada linha da tabela a fração daquela faixa de
renda sobre a qual menores alíquotas incidiriam.

Mas essa formulação em termos de "descontos", assim como os lotes de
frutas a preços e quantidades diferentes, não garante a possibilidade de
soma simples de descontos diferentes.  É preciso voltar na propriedade
original e recalcular.

-- 
Alexandre Oliva, happy hacker            https://blog.lx.oliva.nom.br/
Free Software Activist     FSFLA co-founder     GNU Toolchain Engineer
Learn the truth about Richard Stallman at https://stallmansupport.org/


Más información sobre la lista de distribución Softwares-impostos