Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fiabilisation de l'AAH : Abattement sur les ressources en cas de cessation d'activité #2127

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 26 additions & 4 deletions openfisca_france/model/prestations/minima_sociaux/aah.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def formula_2022_01_01(individu, period, parameters):
law = parameters(period)
aah = law.prestations_sociales.prestations_etat_de_sante.invalidite.aah

en_activite = ((individu('salaire_imposable', period, options = [ADD]) + individu('rpns_imposables', period.last_year) > 0))
en_activite = individu('activite', period) == TypesActivite.actif

def assiette_conjoint(revenus_conjoint):
af_nbenf = individu.famille('af_nbenf', period)
Expand All @@ -150,7 +150,18 @@ def assiette_revenu_activite_demandeur(revenus_demandeur):
smic_brut_annuel = 12 * law.marche_travail.salaire_minimum.smic.smic_b_horaire * law.marche_travail.salaire_minimum.smic.nb_heures_travail_mensuel
total_tranche1 = min_(aah.travail_ordinaire.tranche_smic * smic_brut_annuel, revenus_demandeur)
total_tranche2 = max_(0, revenus_demandeur - total_tranche1)
return (1 - aah.travail_ordinaire.abattement_30) * total_tranche1 + (1 - aah.travail_ordinaire.abattement_sup) * total_tranche2
revenus_abattus_smic = (1 - aah.travail_ordinaire.abattement_30) * total_tranche1 + (1 - aah.travail_ordinaire.abattement_sup) * total_tranche2

last_month = Period(('month', period.start, 1)).offset(-1)
ressource_interrompue = not_(en_activite + (individu('activite', period) == TypesActivite.etudiant))
has_ressources_substitution = (
individu('chomage_net', last_month)
+ individu('retraite_nette', last_month)
+ individu('rente_accident_travail', last_month)
+ individu('pensions_invalidite', last_month)
) > 0
abattement_cessation_activite = (1 - aah.abattement_cessation_activite * (ressource_interrompue + has_ressources_substitution))
return abattement_cessation_activite * (revenus_abattus_smic)

def base_ressource_eval_trim():
three_previous_months = Period(('month', period.first_month.start, 3)).offset(-3)
Expand Down Expand Up @@ -185,13 +196,24 @@ def formula_2023_10_01(individu, period, parameters):
law = parameters(period)
aah = law.prestations_sociales.prestations_etat_de_sante.invalidite.aah

en_activite = ((individu('salaire_imposable', period, options = [ADD]) + individu('rpns_imposables', period.last_year)) > 0)
en_activite = individu('activite', period) == TypesActivite.actif

def assiette_revenu_activite_demandeur(revenus_demandeur):
smic_brut_annuel = 12 * law.marche_travail.salaire_minimum.smic.smic_b_horaire * law.marche_travail.salaire_minimum.smic.nb_heures_travail_mensuel
total_tranche1 = min_(aah.travail_ordinaire.tranche_smic * smic_brut_annuel, revenus_demandeur)
total_tranche2 = max_(0, revenus_demandeur - total_tranche1)
return (1 - aah.travail_ordinaire.abattement_30) * total_tranche1 + (1 - aah.travail_ordinaire.abattement_sup) * total_tranche2
revenus_abattus_smic = (1 - aah.travail_ordinaire.abattement_30) * total_tranche1 + (1 - aah.travail_ordinaire.abattement_sup) * total_tranche2

last_month = Period(('month', period.start, 1)).offset(-1)
ressource_interrompue = not_(en_activite + (individu('activite', period) == TypesActivite.etudiant))
has_ressources_substitution = (
individu('chomage_net', last_month)
+ individu('retraite_nette', last_month)
+ individu('rente_accident_travail', last_month)
+ individu('pensions_invalidite', last_month)
) > 0
abattement_cessation_activite = (1 - aah.abattement_cessation_activite * (ressource_interrompue + has_ressources_substitution))
return abattement_cessation_activite * (revenus_abattus_smic)

def base_ressource_eval_trim():
three_previous_months = Period(('month', period.first_month.start, 3)).offset(-3)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Taux d'abattement des revenus d'activité du bénéficiaire en cas de cessation d'activité pour bénéficier de l'Allocation aux adultes handicapés (AAH)
values:
2011-05-20:
value: 0.3
metadata:
ux_name: Taux d'abbatement (cessation d'activité)
description_en: Adult disability allowance (AAH)
ipp_csv_id: abbatement_cessation_activite
unit: /1
reference:
2011-05-20:
title: Circulaire n°2011-011 du 20/05/2011
Loading