openfisca / openfisca-tunisia

Tunisian tax and benefit system for OpenFisca
http://www.openfisca.tn
15 stars 7 forks source link

Contribution sociale solidaire #114

Open benjello opened 5 years ago

benjello commented 5 years ago

Fix #110

benjello commented 5 years ago

Merci @benjello ! Au-delà des remarques de cette première revue, il me reste des interrogations sur le calcul. Si je me fie au deuxième tableau de cette source, je m'attendrais à voir passer ce test :

- name: Célibataire salarié 1000 TND de salaire net, CSS
  period: 2018
  absolute_error_margin: 0.5
  input:
    salaire_imposable: 1178.333 * 12
  output:
    salaire_net_a_payer:
      2018-01: 1000
    revenu_assimile_salaire: 14140
    revenu_assimile_salaire_apres_abattements: 14140 * (1 - .1)
    irpp_mensuel_salarie:
      2018-01: -167.396
    contribution_sociale_solidarite: 
      2018-01: -13.839

Mais j'obtiens :

Test 'Célibataire salarié 1000 TND de salaire net, CSS':
    contribution_sociale_solidarite@2018-01: [-10.604992] differs from -13.83899974822998 with an absolute margin [3.2340078] > 0.5

Je n'exclus pas encore que l'erreur soit dans la source. Calcul à refaire l'esprit plus éveillé. slightly_smiling_face

La source fait le calcul avec le barème 2017. Là on est en 2018.

sandcha commented 5 years ago

L'écart avec la source ne me semble pas venir de la date dans la mesure elle parle bien du calcul applicable suite à la loi de finances 2018 aka : impôt selon barème 2017 (inchangé en 2018) + CSS qui n'existe qu'à partir de 2018.

benjello commented 5 years ago

Right j'étais sur la mauvaise branche ;-)

benjello commented 5 years ago

Ta source donne aussi un IR différent BTW.

sandcha commented 5 years ago

C'est comme si nous avions 3 TND en vadrouille entre IRPP et CSS 😅 :

\ site notre calcul actuel delta
IRPP 2017-2018 -164,056 -167.396 3.340
CSS -13,839 -10.604992 3.234
benjello commented 5 years ago

Y' a une cotisation UGTT à 3DT si je me souviens bien. Ils l'ommettent peut-être.

Mahdi Ben Jelloul

On Mon, Sep 9, 2019 at 2:39 PM sandcha notifications@github.com wrote:

C'est comme si nous avions 3 TND en vadrouille entre IRPP et CSS 😅 : \ site notre calcul actuel delta IRPP 2017-2018 -164,056 -167.396 3.340 CSS -13,839 -10.604992 3.234

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openfisca/openfisca-tunisia/pull/114?email_source=notifications&email_token=AAI7C56XHCQBNCT2IZZILV3QIY7ZLA5CNFSM4IMPYJS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6HNF5I#issuecomment-529453813, or mute the thread https://github.com/notifications/unsubscribe-auth/AAI7C57XB6337F2OWYKPXY3QIY7ZLANCNFSM4IMPYJSQ .

benjello commented 5 years ago

@sandcha on merge où tu veux refaire le calcul avec les 3DT ? (no rush, just cleaning mood)

sandcha commented 5 years ago

Ok, si on ignore la source et qu'on retrace le calcul, voici le cas pour un salaire_imposable de 12000 TND :

  1. On retire 10% d'abattement pour avoir revenu_assimile_salaire_apres_abattements à 10800 TND.
  2. Puis, sur les 10800, on enlève la première tranche : 10800 - 5000 = 5800 pour la 2ème tranche.
  3. On obtient l'irpp de 1508 = 5800 * 0.26 puisque la 2ème tranche est à 26%

Jusqu'ici, c'est bien ce que me donne openfisca.

Ensuite, si je comprends bien la formule de la CSS = irpp à (26% + 1%) - irpp à 26%. Donc, la contribution_sociale_solidarite devrait être de : (5800 0.27) - (5800 0.26) = 1566 - 1508 = 58 TND Et donc l'équivalent de 4.83 TND/mois mais j'obtiens 9 TND actuellement.

L'erreur est-elle ici ou dans la formule ?

sandcha commented 5 years ago

Mémo pour plus tard : l'abattement sur le salaire de 10% est plafonné à 2000 TND d'après finances.gov.tn. Il me semble que nous ne l'appliquons pas. 🤔

benjello commented 5 years ago

@sandcha : je veux bien que tu ouvres un nouveau ticket pour le plafonnement de l'abattement de 10% avec tout ce que tu auras pu récupérer comme info. Merci !

benjello commented 5 years ago

Et dès que j'ai un peu de temps je retravaille la formule

sandcha commented 3 years ago

@benjello Serais-tu d'accord pour un rebase de cette PR ?

Il aurait en particulier pour objet de récupérer la mise à jour d'openfisca-core et surtout pytest (de v4.6.11 à v5+) sans laquelle le make test actuel renvoie une erreur de collecte des fichiers de test :

(...)
openfisca test -c openfisca_tunisia  tests/
========================================================== test session starts ===========================================================
platform darwin -- Python 3.7.10, pytest-4.6.11, py-1.10.0, pluggy-0.13.1
rootdir: /Users/sch/dev/gitruc/openfisca-tunisia, inifile: setup.cfg
collected 0 items / 1 errors                                                                                                             

================================================================= ERRORS =================================================================
_____________________________________________________ ERROR collecting test session ______________________________________________________
../../../.local/share/virtualenvs/tn/lib/python3.7/site-packages/pluggy/hooks.py:286: in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
../../../.local/share/virtualenvs/tn/lib/python3.7/site-packages/pluggy/manager.py:93: in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
../../../.local/share/virtualenvs/tn/lib/python3.7/site-packages/pluggy/manager.py:87: in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
../../../.local/share/virtualenvs/tn/lib/python3.7/site-packages/openfisca_core/tools/test_runner.py:256: in pytest_collect_file
    return YamlFile.from_parent(parent, path = path, fspath = path,
E   AttributeError: type object 'YamlFile' has no attribute 'from_parent'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================================== 1 error in 0.11 seconds =========================================================

Par ailleurs, n'hésite pas à m'indiquer si la marche à suivre pour la reprise de cette PR te semble claire. 😅
Sinon, je pense repartir de nos commentaires et tenter de profiter de cette période de déclaration d'impôts en Tunisie pour récupérer des informations sur la CSS.

benjello commented 3 years ago

Ok pour rebase.

benjello commented 3 years ago

@sandcha : tu rebases ou je le fait ?