Skip to content

Commit

Permalink
Improve amen social (#179)
Browse files Browse the repository at this point in the history
* Improve Amen Social
  • Loading branch information
benjello authored Dec 15, 2024
1 parent 75328be commit 33664f9
Show file tree
Hide file tree
Showing 15 changed files with 125 additions and 24 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

### 0.41.3 - [#179](https://github.com/openfisca/openfisca-tunisia/pull/179)

* Évolution du système socio-fiscal.
* Périodes concernées : toutes.
* Zones impactées : `prestations/non_contributives/amen_social`.
* Détails :
- Améliore Amen social (WIP)

### 0.41.2 - [#177](https://github.com/openfisca/openfisca-tunisia/pull/177)

* Évolution du système socio-fiscal.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: Seuil de revenu d’exclusion du programme Amen social (en part de Smig) pour un ménage de deux personnes
values:
2020-01-01:
value: 1.5
metadata:
short_label: Deux personnes
unit: smig
reference:
2020-01-01:
title: Décret 2020-317 du 19 mai 2020
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
description: Seuil de revenu d’exclusion du programme Amen social pour un ménage comprenant une personne présentant un handicap lourd
metadata:
short_label: Ménage avec handicap lourd
order:
- un_membre
- deux_membres
- trois_quatre_membres
- plus_de_cinq_membres
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: Seuil de revenu d’exclusion du programme Amen social (en part de Smig) pour un ménage comprenant plus de cinq personnes
values:
2020-01-01:
value: 2.5
metadata:
short_label: Plus de cinq personnes
unit: smig
reference:
2020-01-01:
title: Décret 2020-317 du 19 mai 2020
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: Seuil de revenu d’exclusion du programme Amen social (en part de Smig) pour un ménage comprenant trois ou quatre personnes
values:
2020-01-01:
value: 2
metadata:
short_label: Trois ou quatre personnes
unit: smig
reference:
2020-01-01:
title: Décret 2020-317 du 19 mai 2020
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: Seuil de revenu d’exclusion du programme Amen social (en part de Smig) pour un ménage d'une personne
values:
2020-01-01:
value: 1.25
metadata:
short_label: Une persone
unit: smig
reference:
2020-01-01:
title: Décret 2020-317 du 19 mai 2020
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ metadata:
short_label: Âge de départ des civils
order:
- cadre_commun
- cadre_actifs
- ensegnants_du_superieur
- cadres_actifs
- enseignants_du_superieur
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ metadata:
short_label: Âge de départ
order:
- civil
- militaire
# - militaire
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ values:
1959-02-01:
value: 0.5
metadata:
unit: Smig
unit: smig
documentation:
L'allocation de vieillesse est octroyée aux cotisants ne pouvant bénéficier d'une pension de retraite mais
qui justifient d'une période d'activité d'au moins 5 ans
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ values:
1974-01-01:
value: 0.66666
metadata:
unit: Smig
unit: smig
documentation:
Pension minimale servie aux cotisants justifiant d'une durée suffisante pour prétendre à une pension de retraite
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from openfisca_tunisia.variables.base import *


class amen_social_allocation_familiale(Variable):
class allocation_familiale_non_contributive(Variable):
value_type = float
entity = Menage
label = 'Allocation familiale du programme Amen social'
label = 'Allocation familiale pour les ménages on affiliés à un régime de sécurité sociale'
definition_period = MONTH

def formula_2023_02(menage, period, parameters):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,85 @@
from openfisca_tunisia.variables.base import *


class amen_social_presence_handicap_lourd(Variable):
value_type = bool
entity = Menage
label = 'Ménage comprenant un membre avec un handicap lourd'
definition_period = MONTH
# Critères primaires du décret 2020-317 du 19 mai 2020
# Handicap de niveau 3


class amen_social_pas_d_achat_onereux(Variable):
value_type = bool
entity = Menage
label = 'Ménage comprenant un membre avec un handicap lourd'
definition_period = ETERNITY
# Critères primaires du décret 2020-317 du 19 mai 2020
# Ni le chef du ménage ni aucun membre de son ménage n’a effectué une transaction d’achat
# ou de vente d’un bien mobilier ou immobilier dont la valeur dépasse 30 fois le SMIG. Ce
# critère est vérifiable actuellement uniquement pour les véhicules immatriculés par les
# recoupements administratifs avec l’Agence Technique des Transports Terrestres (ATTT).


class amen_social_pas_de_residence_secondaire(Variable):
value_type = bool
entity = Menage
label = 'Ménage comprenant un membre avec un handicap lourd'
definition_period = ETERNITY
# Critères primaires du décret 2020-317 du 19 mai 2020
# Le ménage n’est pas propriétaire d’un logement secondaire


class amen_social_eligible(Variable):
value_type = bool
entity = Menage
label = 'Ménage éligible au programme Amen social'
definition_period = MONTH

def formula_2020(menage, period, parameters):
# Critères du décret 2020-317
# Critères primaires du décret 2020-317 du 19 mai 2020
pas_de_residence_secondaire = menage('amen_social_pas_de_residence_secondaire', period)
pas_d_achat_onereux = menage('amen_social_pas_d_achat_onereux', period)

# Citère du revenu selon présence ou non de handicap lourd
presence_handicap_lourd = menage('amen_social_presence_handicap_lourd', period)
taille_menage = menage.nb_persons()
revenu_menage = menage.sum(menage.members('salaire_net_a_payer', period)) # Corriger les revenus
seuil_de_revenu = parameters(period).prestations.non_contributives.amen_social.eligibilite
smig_mensuel = parameters(period.start).marche_travail.smig_40h_mensuel
condiitons = [
conditions_sans_handicap = [
taille_menage == 1,
taille_menage == 2,
(taille_menage == 3) + (taille_menage == 4),
taille_menage >= 5,
]
valeurs_choisies = [
valeurs_choisies_sans_handicap = [
smig_mensuel * seuil_de_revenu.un_membre,
smig_mensuel * seuil_de_revenu.deux_membres,
smig_mensuel * seuil_de_revenu.trois_quatre_membres,
smig_mensuel * seuil_de_revenu.plus_de_cinq_membres,
]
return revenu_menage <= select(condiitons, valeurs_choisies)

conditions_avec_handicap = [
(taille_menage == 1) * presence_handicap_lourd,
(taille_menage == 2) * presence_handicap_lourd,
((taille_menage == 3) + (taille_menage == 4)) * presence_handicap_lourd,
(taille_menage >= 5) * presence_handicap_lourd,
]
valeurs_choisies_avec_handicap = [
smig_mensuel * seuil_de_revenu.handicap_lourd.un_membre,
smig_mensuel * seuil_de_revenu.handicap_lourd.deux_membres,
smig_mensuel * seuil_de_revenu.handicap_lourd.trois_quatre_membres,
smig_mensuel * seuil_de_revenu.handicap_lourd.plus_de_cinq_membres,
]

critere_revenu = where(
presence_handicap_lourd,
revenu_menage <= select(conditions_avec_handicap, valeurs_choisies_avec_handicap),
revenu_menage <= select(conditions_sans_handicap, valeurs_choisies_sans_handicap)
)
return pas_d_achat_onereux + pas_de_residence_secondaire + critere_revenu


class transfert_monetaire_permanent_eligible(Variable):
Expand All @@ -47,10 +101,11 @@ class transfert_monetaire_permanent_eligibilite_score(Variable):
label = 'Ménage éligible au programme Amen social selon le modèle de ciblage'
definition_period = MONTH

def formula_2020(menage, period):
def formula_2022_06(menage, period, parameters):
decile = parameters(period).prestations.non_contributives.amen_social.decile
return (
menage('amen_social_eligible', period)
+ (menage('amen_social_score_decile', period) <= 2)
+ (menage('amen_social_score_decile', period) <= decile)
)


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "OpenFisca-Tunisia"
version = "0.41.2"
version = "0.41.3"
description = "OpenFisca Rules as Code model for Tunisia."
readme = "README.md"
keywords = ["microsimulation", "tax", "benefit", "rac", "rules-as-code", "tunisia"]
Expand Down

0 comments on commit 33664f9

Please sign in to comment.