openfisca-france icon indicating copy to clipboard operation
openfisca-france copied to clipboard

Gestion des seuils de non versement et impôt minimal dans la variable irpp

Open benjello opened this issue 1 year ago • 3 comments

Hello hello !

Je suis le fan numéro un d'OpenFisca, mais je viens de rencontrer un problème.

Qu'ai-je fait ?

J'ai jetté un oeil à la variable irpp

À quoi m'attendais-je ?

un truc lisible

Que s'est-il passé en réalité ?

C'est assez illisible

Voici des informations qui peuvent aider à reproduire le problème :

Lire la formule et comprendre pourquoi il y a des "* 0"

Contexte

Je m'identifie plus en tant que :

  • [ ] Contributeur·e : je contribue à OpenFisca France.
  • [ ] Développeur·e : je crée des outils qui utilisent OpenFisca France.
  • [ ] Économiste : je réalise des simulations avec des données.
  • [ ] Mainteneur·e : j'intègre les contributions à OpenFisca France.
  • [ ] Autre : (ajoutez une description du contexte dans lequel vous utilisez OpenFisca).

benjello avatar Apr 13 '23 14:04 benjello

@benjello après investiguation je pense que la formule est plutôt bien faite, elle détaille les options :

  • Si l'impôt avant imputation des crédits est supérieur au seuil de recouvrement avant imputation (61 euros) alors deux possbilités :
    • Si le montant après imputation est positif mais inférieur au seuil de recouvrement après imputation (12 euros) alors l'impôt dû est nul
    • Si le montant après imputation est négatif ou positif au dessus du seuil de recouvrement après imputation (12 euros) alors le montant est dû
  • Si l'impôt avant imputation des crédits est inférieur au seuil de recouvrement avant imputation (61 euros) alors deux possibilités ;
    • Si le montant après imputation est négatif alors l'impôt est dû
    • Si le montant après imputation est positif alors l'impôt dû est nul.

clallemand avatar May 24 '23 09:05 clallemand

Comment veux tu améliorer la clareté de ça : est ce que je mets cette explication dans les docstring ? Ou à un autre endroit ? On peut en discuter

clallemand avatar May 24 '23 09:05 clallemand

Bien reçu @clallemand . Je comprends mieux. J'ai été induit en erreur par les expressions * 0 * iai mais je pense qu'ils sont là pour retourner des vecteurs de longueur adéquate.

L'idéal serait d'utiliser des select bien explicite pour les conditions et des empty_array pour les zéros.

benjello avatar May 24 '23 10:05 benjello