From ad875057d5e79b71e2601f6875b34a327cd72b50 Mon Sep 17 00:00:00 2001 From: Martin Billard Date: Mon, 29 Jul 2024 14:17:29 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Pour=20les=20aides=20RSA=20et=20PPA=20passa?= =?UTF-8?q?ge=20=C3=A0=20la=20period=20M-2=20M-4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/prestations/minima_sociaux/ppa.py | 27 +- .../model/prestations/minima_sociaux/rsa.py | 237 +++++++++++------- tests/formulas/ppa/ppa.yaml | 43 ++++ tests/formulas/rsa.yaml | 37 +++ 4 files changed, 242 insertions(+), 102 deletions(-) diff --git a/openfisca_france/model/prestations/minima_sociaux/ppa.py b/openfisca_france/model/prestations/minima_sociaux/ppa.py index 11d8d1640b..971c9e7421 100644 --- a/openfisca_france/model/prestations/minima_sociaux/ppa.py +++ b/openfisca_france/model/prestations/minima_sociaux/ppa.py @@ -502,15 +502,11 @@ class ppa(Variable): # Prime pour l'Activité sur service-public.fr reference = 'https://www.service-public.fr/particuliers/vosdroits/F2882' - def formula_2016_01_01(famille, period, parameters): - seuil_non_versement = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.ppa.pa_m.montant_minimum_verse - # éligibilité étudiants - - ppa_eligibilite_etudiants = famille('ppa_eligibilite_etudiants', period) - ppa = famille('ppa_fictive', period.last_3_months, options = [ADD]) / 3 - ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement) + def formula_2024_10(famille, period, parameters): + return ppa_base_formula(famille= famille, parameters= parameters, period= period, three_months_of_reference= last_3_months_offset_minus_1(period)) - return ppa + def formula_2016_01_01(famille, period, parameters): + return ppa_base_formula(famille= famille, parameters= parameters, period= period, three_months_of_reference= period.last_3_months) class crds_ppa(Variable): @@ -576,3 +572,18 @@ def formula(famille, period, parameters): + famille('ppa', period.last_month) * (remainder == 1) + famille('ppa', period.last_month.last_month) * (remainder == 2) ) + + +def last_3_months_offset_minus_1(period) -> Period: + return period.last_month.last_3_months + + +def ppa_base_formula(famille, parameters, period, three_months_of_reference): + seuil_non_versement = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.ppa.pa_m.montant_minimum_verse + # éligibilité étudiants + + ppa_eligibilite_etudiants = famille('ppa_eligibilite_etudiants', period) + ppa = famille('ppa_fictive', three_months_of_reference, options = [ADD]) / 3 + ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement) + + return ppa \ No newline at end of file diff --git a/openfisca_france/model/prestations/minima_sociaux/rsa.py b/openfisca_france/model/prestations/minima_sociaux/rsa.py index 267c369d19..17cbd1b537 100644 --- a/openfisca_france/model/prestations/minima_sociaux/rsa.py +++ b/openfisca_france/model/prestations/minima_sociaux/rsa.py @@ -1,7 +1,6 @@ from numpy import datetime64, logical_and as and_, logical_or as or_ from openfisca_core.periods import Period - from openfisca_france.model.base import * from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf @@ -79,58 +78,11 @@ class rsa_base_ressources_individu(Variable): set_input = set_input_divide_by_period reference = 'https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000036393176&dateTexte=&categorieLien=id' - def formula_2009_06_01(individu, period, parameters): - # Revenus professionels - types_revenus_pros = [ - 'chomage_net', - 'retraite_nette', - ] - - possede_ressources_substitution = individu('rsa_has_ressources_substitution', period) - - # Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution. - revenus_pro = sum( - individu(type_revenu, period.last_3_months, options = [ADD]) * not_( - (individu(type_revenu, period) == 0) - * (individu(type_revenu, period.last_month) > 0) - * not_(possede_ressources_substitution) - ) - for type_revenu in types_revenus_pros - ) - - types_revenus_non_pros = [ - 'allocation_securisation_professionnelle', - 'dedommagement_victime_amiante', - 'gains_exceptionnels', - 'pensions_alimentaires_percues', - 'pensions_invalidite', - 'prestation_compensatoire', - 'prime_forfaitaire_mensuelle_reprise_activite', - 'rsa_base_ressources_patrimoine_individu', - 'rsa_indemnites_journalieres_hors_activite', - ] + def formula_2024_10(individu, period, parameters): + return rsa_base_ressources_individu_base_formula(individu= individu, period= period, three_months_of_reference= last_3_months_offset_minus_1(period), parameters=parameters) - # Les revenus non-pro interrompus au mois M sont neutralisés dans la limite d'un montant forfaitaire, - # sans condition de revenu de substitution. - montant_de_base_du_rsa = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.rsa.rsa_m.montant_de_base_du_rsa - montant_forfaitaire_neutralisation = 3 * montant_de_base_du_rsa - revenus_non_pros = sum( - max_( - 0, - individu(type_revenu, period.last_3_months, options = [ADD]) - - ( - montant_forfaitaire_neutralisation - * (individu(type_revenu, period) == 0) - * (individu(type_revenu, period.last_month) > 0) - ) - ) - for type_revenu in types_revenus_non_pros - ) - - rentes_viageres = individu.foyer_fiscal('rente_viagere_titre_onereux', period.last_3_months, options = [ADD]) - revenus_foyer_fiscal_projetes = rentes_viageres * individu.has_role(FoyerFiscal.DECLARANT_PRINCIPAL) - - return (revenus_pro + revenus_non_pros + revenus_foyer_fiscal_projetes) / 3 + def formula_2009_06_01(individu, period, parameters): + return rsa_base_ressources_individu_base_formula(individu= individu, period= period, three_months_of_reference= period.last_3_months, parameters=parameters) def formula(individu, period, parameters): # Revenus professionels @@ -193,15 +145,13 @@ class rsa_base_ressources_minima_sociaux(Variable): definition_period = MONTH set_input = set_input_divide_by_period + def formula_2024_10(famille, period): + three_months_of_reference = last_3_months_offset_minus_1(period) + return calcul_minima_sociaux(famille= famille, period= period, three_months_of_reference=three_months_of_reference) + def formula(famille, period): three_previous_months = period.last_3_months - aspa = famille('aspa', period) - - ass_i = famille.members('ass', three_previous_months, options = [ADD]) - aah_i = famille.members('aah', three_previous_months, options = [ADD]) - asi_i = famille.members('asi', three_previous_months, options = [ADD]) - caah_i = famille.members('caah', three_previous_months, options = [ADD]) - return aspa + famille.sum(ass_i + aah_i + asi_i + caah_i) / 3 + return calcul_minima_sociaux(famille= famille, period= period, three_months_of_reference=three_previous_months) class rsa_base_ressources_prestations_familiales(Variable): @@ -527,43 +477,13 @@ class rsa_revenu_activite_individu(Variable): definition_period = MONTH set_input = set_input_divide_by_period + def formula_2024_10(individu, period): + period_m2_m4 = last_3_months_offset_minus_1(period) + return rsa_revenu_activite_individu_base_formula(individu= individu, period=period, three_months_of_reference=period_m2_m4) + def formula_2009_06(individu, period): last_3_months = period.last_3_months - - # Note Auto-entrepreneurs: - # D'après les caisses, le revenu pris en compte pour les AE pour le RSA ne prend en compte que - # l'abattement standard sur le CA, mais pas les cotisations pour charges sociales. - - types_revenus_activite = [ - 'salaire_net', - 'indemnites_chomage_partiel', - 'remuneration_apprenti', - 'indemnites_volontariat', - 'revenus_stage_formation_pro', - 'bourse_recherche', - 'hsup', - 'etr', - 'rpns_auto_entrepreneur_benefice', - 'rsa_indemnites_journalieres_activite', - ] - - possede_ressource_substitution = individu('rsa_has_ressources_substitution', period) - - # Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution. - revenus_moyennes = sum( - individu(type_revenu, last_3_months, options = [ADD]) * not_( - (individu(type_revenu, period) == 0) - * (individu(type_revenu, period.last_month) > 0) - * not_(possede_ressource_substitution) - ) - for type_revenu in types_revenus_activite - ) / 3 - - revenus_tns_annualises = 0 - if period.start.date >= date(2017, 1, 1): - revenus_tns_annualises = individu('ppa_rsa_derniers_revenus_tns_annuels_connus', period.this_year) - - return revenus_moyennes + revenus_tns_annualises + return rsa_revenu_activite_individu_base_formula(individu= individu, period=period, three_months_of_reference=last_3_months) class rsa_montant(Variable): @@ -1043,3 +963,132 @@ def formula_2009_06_01(famille, period, parameters): socle = rsa.rsa_m.montant_de_base_du_rsa return eligib * socle * taux + + +def last_3_months_offset_minus_1(period) -> Period: + return period.last_month.last_3_months + + +def rsa_revenu_activite_individu_base_formula(individu, period, three_months_of_reference): + revenus_moyennes = calcul_revenu_moyenne(individu= individu, period=period, three_months_of_reference=three_months_of_reference) + revenus_tns_annualises = calcul_revenu_tns_annualises(individu=individu, period=period) + + return revenus_moyennes + revenus_tns_annualises + + +def rsa_base_ressources_individu_base_formula(individu, period, three_months_of_reference, parameters): + revenus_pro = calcul_revenu_pro(individu=individu, period= period, three_months_of_reference= three_months_of_reference) + revenus_non_pros = calcul_revenu_non_pro(individu=individu, period= period, three_months_of_reference= three_months_of_reference, parameters= parameters) + revenus_foyer_fiscal_projetes = calcul_foyer_fiscal_projetes(individu=individu, three_months_of_reference= three_months_of_reference) + + return (revenus_pro + revenus_non_pros + revenus_foyer_fiscal_projetes) / 3 + + +def calcul_revenu_pro(individu, period, three_months_of_reference): + # Revenus professionels + types_revenus_pros = [ + 'chomage_net', + 'retraite_nette', + ] + + possede_ressources_substitution = individu('rsa_has_ressources_substitution', period) + + # Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution. + revenus_pro = sum( + individu(type_revenu, three_months_of_reference, options = [ADD]) * not_( + (individu(type_revenu, period) == 0) + * (individu(type_revenu, period.last_month) > 0) + * not_(possede_ressources_substitution) + ) + for type_revenu in types_revenus_pros + ) + + return revenus_pro + +def calcul_revenu_non_pro(individu, period, three_months_of_reference, parameters): + types_revenus_non_pros = [ + 'allocation_securisation_professionnelle', + 'dedommagement_victime_amiante', + 'gains_exceptionnels', + 'pensions_alimentaires_percues', + 'pensions_invalidite', + 'prestation_compensatoire', + 'prime_forfaitaire_mensuelle_reprise_activite', + 'rsa_base_ressources_patrimoine_individu', + 'rsa_indemnites_journalieres_hors_activite', + ] + + # Les revenus non-pro interrompus au mois M sont neutralisés dans la limite d'un montant forfaitaire, + # sans condition de revenu de substitution. + montant_de_base_du_rsa = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.rsa.rsa_m.montant_de_base_du_rsa + montant_forfaitaire_neutralisation = 3 * montant_de_base_du_rsa + revenus_non_pros = sum( + max_( + 0, + individu(type_revenu, three_months_of_reference, options = [ADD]) + - ( + montant_forfaitaire_neutralisation + * (individu(type_revenu, period) == 0) + * (individu(type_revenu, period.last_month) > 0) + ) + ) + for type_revenu in types_revenus_non_pros + ) + + return revenus_non_pros + + +def calcul_foyer_fiscal_projetes(individu, three_months_of_reference): + rentes_viageres = individu.foyer_fiscal('rente_viagere_titre_onereux', three_months_of_reference, options = [ADD]) + revenus_foyer_fiscal_projetes = rentes_viageres * individu.has_role(FoyerFiscal.DECLARANT_PRINCIPAL) + return revenus_foyer_fiscal_projetes + + +def calcul_revenu_moyenne(individu, period, three_months_of_reference): + # Note Auto-entrepreneurs: + # D'après les caisses, le revenu pris en compte pour les AE pour le RSA ne prend en compte que + # l'abattement standard sur le CA, mais pas les cotisations pour charges sociales. + + types_revenus_activite = [ + 'salaire_net', + 'indemnites_chomage_partiel', + 'remuneration_apprenti', + 'indemnites_volontariat', + 'revenus_stage_formation_pro', + 'bourse_recherche', + 'hsup', + 'etr', + 'rpns_auto_entrepreneur_benefice', + 'rsa_indemnites_journalieres_activite', + ] + + possede_ressource_substitution = individu('rsa_has_ressources_substitution', period) + + # Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution. + revenus_moyennes = sum( + individu(type_revenu, three_months_of_reference, options = [ADD]) * not_( + (individu(type_revenu, period) == 0) + * (individu(type_revenu, period.last_month) > 0) + * not_(possede_ressource_substitution) + ) + for type_revenu in types_revenus_activite + ) / 3 + + return revenus_moyennes + + +def calcul_revenu_tns_annualises(individu, period): + revenus_tns_annualises = 0 + if period.start.date >= date(2017, 1, 1): + revenus_tns_annualises = individu('ppa_rsa_derniers_revenus_tns_annuels_connus', period.this_year) + return revenus_tns_annualises + + +def calcul_minima_sociaux (famille, period, three_months_of_reference): + aspa = famille('aspa', period) + + ass_i = famille.members('ass', three_months_of_reference, options = [ADD]) + aah_i = famille.members('aah', three_months_of_reference, options = [ADD]) + asi_i = famille.members('asi', three_months_of_reference, options = [ADD]) + caah_i = famille.members('caah', three_months_of_reference, options = [ADD]) + return aspa + famille.sum(ass_i + aah_i + asi_i + caah_i) / 3 diff --git a/tests/formulas/ppa/ppa.yaml b/tests/formulas/ppa/ppa.yaml index eb351a1797..8899acc8b9 100644 --- a/tests/formulas/ppa/ppa.yaml +++ b/tests/formulas/ppa/ppa.yaml @@ -1029,3 +1029,46 @@ 2022-10: true 2022-11: true 2022-12: true + + +- name: Cas PPA period > Oct 2024 et salaire sur M-2 M-4 ( à jumeler avec un test avant Octobre 2024 en M-1 M-3) + period: 2025-01 + absolute_error_margin: 0.005 + input: + famille: + parents: [parent1, parent2] + ppa_eligibilite: true + aide_logement: + 2025-01: 200 + 2024-12: 200 + 2024-11: 200 + 2024-10: 200 + individus: + parent1: + age: 40 + salaire_net: + 2024-11: 300 + 2024-10: 300 + 2024-09: 300 + parent2: + age: 40 + salaire_net: + 2024-11: 300 + 2024-10: 300 + 2024-09: 300 + foyers_fiscaux: + foyer_fiscal_0: + declarants: + - parent1 + foyer_fiscal_1: + declarants: + - parent2 + menages: + menage_0: + personne_de_reference: + - parent1 + menage_1: + personne_de_reference: + - parent2 + output: + ppa: 366 diff --git a/tests/formulas/rsa.yaml b/tests/formulas/rsa.yaml index f47d5fcddc..6976961422 100644 --- a/tests/formulas/rsa.yaml +++ b/tests/formulas/rsa.yaml @@ -664,3 +664,40 @@ rsa_forfait_logement: 67.84 rsa_base_ressources: 943 rsa: 0 + + +- name: RSA Cas period > Oct 2024 et salaire sur M-2 M-4 ( à jumeler avec un test avant Octobre 2024 en M-1 M-3) + period: 2025-01 + absolute_error_margin: 0.03 + input: + famille: + parents: [personne1, personne2] + aide_logement: + 2025-01: 200 + 2024-12: 200 + 2024-11: 200 + 2024-10: 200 + foyer_fiscal: + declarants: [personne1, personne2] + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + individus: + personne1: + date_naissance: 1980-01-01 + salaire_net: + 2025-01: 100 + 2024-11: 100 + 2024-10: 100 + 2024-09: 100 + personne2: + date_naissance: 1982-02-02 + salaire_net: + 2025-01: 67 + 2024-11: 67 + 2024-10: 67 + 2024-09: 67 + output: + rsa: + 2025-01: 633.9946 From bc2f710355ca18054db8c064143155136ad0c355 Mon Sep 17 00:00:00 2001 From: Martin Billard Date: Thu, 1 Aug 2024 10:26:26 +0200 Subject: [PATCH 2/4] Modification pour passer la CI --- .../model/prestations/minima_sociaux/ppa.py | 6 +-- .../model/prestations/minima_sociaux/rsa.py | 21 ++++----- tests/formulas/ppa/ppa.yaml | 45 ++++++++++++++++++- tests/formulas/rsa.yaml | 39 +++++++++++++++- 4 files changed, 96 insertions(+), 15 deletions(-) diff --git a/openfisca_france/model/prestations/minima_sociaux/ppa.py b/openfisca_france/model/prestations/minima_sociaux/ppa.py index 971c9e7421..5a495b3532 100644 --- a/openfisca_france/model/prestations/minima_sociaux/ppa.py +++ b/openfisca_france/model/prestations/minima_sociaux/ppa.py @@ -503,10 +503,10 @@ class ppa(Variable): reference = 'https://www.service-public.fr/particuliers/vosdroits/F2882' def formula_2024_10(famille, period, parameters): - return ppa_base_formula(famille= famille, parameters= parameters, period= period, three_months_of_reference= last_3_months_offset_minus_1(period)) + return ppa_base_formula(famille=famille, parameters=parameters, period=period, three_months_of_reference=last_3_months_offset_minus_1(period)) def formula_2016_01_01(famille, period, parameters): - return ppa_base_formula(famille= famille, parameters= parameters, period= period, three_months_of_reference= period.last_3_months) + return ppa_base_formula(famille=famille, parameters=parameters, period=period, three_months_of_reference=period.last_3_months) class crds_ppa(Variable): @@ -586,4 +586,4 @@ def ppa_base_formula(famille, parameters, period, three_months_of_reference): ppa = famille('ppa_fictive', three_months_of_reference, options = [ADD]) / 3 ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement) - return ppa \ No newline at end of file + return ppa diff --git a/openfisca_france/model/prestations/minima_sociaux/rsa.py b/openfisca_france/model/prestations/minima_sociaux/rsa.py index 17cbd1b537..9f00da460a 100644 --- a/openfisca_france/model/prestations/minima_sociaux/rsa.py +++ b/openfisca_france/model/prestations/minima_sociaux/rsa.py @@ -989,7 +989,7 @@ def calcul_revenu_pro(individu, period, three_months_of_reference): types_revenus_pros = [ 'chomage_net', 'retraite_nette', - ] + ] possede_ressources_substitution = individu('rsa_has_ressources_substitution', period) @@ -999,12 +999,13 @@ def calcul_revenu_pro(individu, period, three_months_of_reference): (individu(type_revenu, period) == 0) * (individu(type_revenu, period.last_month) > 0) * not_(possede_ressources_substitution) - ) + ) for type_revenu in types_revenus_pros - ) + ) return revenus_pro + def calcul_revenu_non_pro(individu, period, three_months_of_reference, parameters): types_revenus_non_pros = [ 'allocation_securisation_professionnelle', @@ -1016,7 +1017,7 @@ def calcul_revenu_non_pro(individu, period, three_months_of_reference, parameter 'prime_forfaitaire_mensuelle_reprise_activite', 'rsa_base_ressources_patrimoine_individu', 'rsa_indemnites_journalieres_hors_activite', - ] + ] # Les revenus non-pro interrompus au mois M sont neutralisés dans la limite d'un montant forfaitaire, # sans condition de revenu de substitution. @@ -1030,10 +1031,10 @@ def calcul_revenu_non_pro(individu, period, three_months_of_reference, parameter montant_forfaitaire_neutralisation * (individu(type_revenu, period) == 0) * (individu(type_revenu, period.last_month) > 0) + ) ) - ) for type_revenu in types_revenus_non_pros - ) + ) return revenus_non_pros @@ -1060,7 +1061,7 @@ def calcul_revenu_moyenne(individu, period, three_months_of_reference): 'etr', 'rpns_auto_entrepreneur_benefice', 'rsa_indemnites_journalieres_activite', - ] + ] possede_ressource_substitution = individu('rsa_has_ressources_substitution', period) @@ -1070,9 +1071,9 @@ def calcul_revenu_moyenne(individu, period, three_months_of_reference): (individu(type_revenu, period) == 0) * (individu(type_revenu, period.last_month) > 0) * not_(possede_ressource_substitution) - ) + ) for type_revenu in types_revenus_activite - ) / 3 + ) / 3 return revenus_moyennes @@ -1084,7 +1085,7 @@ def calcul_revenu_tns_annualises(individu, period): return revenus_tns_annualises -def calcul_minima_sociaux (famille, period, three_months_of_reference): +def calcul_minima_sociaux(famille, period, three_months_of_reference): aspa = famille('aspa', period) ass_i = famille.members('ass', three_months_of_reference, options = [ADD]) diff --git a/tests/formulas/ppa/ppa.yaml b/tests/formulas/ppa/ppa.yaml index 8899acc8b9..c31e480141 100644 --- a/tests/formulas/ppa/ppa.yaml +++ b/tests/formulas/ppa/ppa.yaml @@ -1031,7 +1031,7 @@ 2022-12: true -- name: Cas PPA period > Oct 2024 et salaire sur M-2 M-4 ( à jumeler avec un test avant Octobre 2024 en M-1 M-3) +- name: Cas PPA period > Oct 2024 et ressource sur M-2 M-4 ( à jumeler avec un test avant Octobre 2024 en M-1 M-3) period: 2025-01 absolute_error_margin: 0.005 input: @@ -1072,3 +1072,46 @@ - parent2 output: ppa: 366 + + +- name: Cas PPA period < Oct 2024 et ressources sur M-1 M-3 ( à jumeler avec un test avant Octobre 2024 en M-2 M-4) + period: 2024-09 + absolute_error_margin: 0.005 + input: + famille: + parents: [parent1, parent2] + ppa_eligibilite: true + aide_logement: + 2024-09: 200 + 2024-08: 200 + 2024-07: 200 + 2024-06: 200 + individus: + parent1: + age: 40 + salaire_net: + 2024-08: 300 + 2024-07: 300 + 2024-06: 300 + parent2: + age: 40 + salaire_net: + 2024-08: 300 + 2024-07: 300 + 2024-06: 300 + foyers_fiscaux: + foyer_fiscal_0: + declarants: + - parent1 + foyer_fiscal_1: + declarants: + - parent2 + menages: + menage_0: + personne_de_reference: + - parent1 + menage_1: + personne_de_reference: + - parent2 + output: + ppa: 366 \ No newline at end of file diff --git a/tests/formulas/rsa.yaml b/tests/formulas/rsa.yaml index 6976961422..b3c3c62f09 100644 --- a/tests/formulas/rsa.yaml +++ b/tests/formulas/rsa.yaml @@ -666,7 +666,7 @@ rsa: 0 -- name: RSA Cas period > Oct 2024 et salaire sur M-2 M-4 ( à jumeler avec un test avant Octobre 2024 en M-1 M-3) +- name: RSA Cas period > Oct 2024 et ressource sur M-2 M-4 ( à jumeler avec un test avant Octobre 2024 en M-1 M-3) period: 2025-01 absolute_error_margin: 0.03 input: @@ -701,3 +701,40 @@ output: rsa: 2025-01: 633.9946 + + +- name: RSA Cas period < Oct 2024 et ressource sur M-1 M-3 ( à jumeler avec un test après Octobre 2024 en M-2 M-4) + period: 2024-09 + absolute_error_margin: 0.03 + input: + famille: + parents: [personne1, personne2] + aide_logement: + 2024-09: 200 + 2024-08: 200 + 2024-07: 200 + 2024-06: 200 + foyer_fiscal: + declarants: [personne1, personne2] + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + individus: + personne1: + date_naissance: 1980-01-01 + salaire_net: + 2024-09: 100 + 2024-08: 100 + 2024-07: 100 + 2024-06: 100 + personne2: + date_naissance: 1982-02-02 + salaire_net: + 2024-09: 67 + 2024-08: 67 + 2024-07: 67 + 2024-06: 67 + output: + rsa: + 2024-09: 633.9946 From fbcfcc5c32eb0849c3ace621da76151d0f6bb577 Mon Sep 17 00:00:00 2001 From: Martin Billard Date: Tue, 27 Aug 2024 16:05:54 +0200 Subject: [PATCH 3/4] Correction pour passer la CI --- tests/formulas/ppa/ppa.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/formulas/ppa/ppa.yaml b/tests/formulas/ppa/ppa.yaml index c31e480141..146e959cbb 100644 --- a/tests/formulas/ppa/ppa.yaml +++ b/tests/formulas/ppa/ppa.yaml @@ -1114,4 +1114,4 @@ personne_de_reference: - parent2 output: - ppa: 366 \ No newline at end of file + ppa: 366 From c759a3638cf83d34a6a97733e22e6f1d964248ef Mon Sep 17 00:00:00 2001 From: Martin Billard Date: Mon, 16 Sep 2024 08:25:43 +0200 Subject: [PATCH 4/4] =?UTF-8?q?R=C3=A9cup=C3=A9ration=20master?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 18 ++++++++++++++---- setup.py | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08414cc954..fb5daebc34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,22 +1,32 @@ # Changelog +## 168.0.16 [2337](https://github.com/openfisca/openfisca-france/pull/2337) + +* Évolution du système socio-fiscal. +* Périodes concernées : À partir du 2024/10/01. +* Zones impactées : + - `openfisca_france/model/prestations/minima_sociaux/ppa.py.` + - `openfisca_france/model/prestations/minima_sociaux/rsa.py.` +* Détails : + - Modification de la période de référence pour les aides RSA et PPA + - Refactoring du code de ces méthodes pour éviter la duplication de code + ## 168.0.15 [2348](https://github.com/openfisca/openfisca-france/pull/2349) * Évolution du système socio-fiscal changement mineur. -* Périodes concernées : 01/01/2023. +* Périodes concernées : 01/01/2023. * Zones impactées : `openfisca_france/parameters/impot_revenu/bareme_ir_depuis_1945/bareme.yaml`. * Détails : Ajoute référence 2024 article codifié impôt sur le revenu - + ## 168.0.14 [2348](https://github.com/openfisca/openfisca-france/pull/2348) * Changement mineur : Modification d'un label -* Périodes concernées : toutes. +* Périodes concernées : toutes. * Zones impactées : `openfisca_france/model/revenus/activite/salarie.py`. * Détails : La variable `contrat_de_travail` et la variable `contrat_de_travail_type` ont le même label, pourtant elles ne représentent pas la même chose. La première concerne les types de durées de travail du contrat (Temps plein, partiel, convention, etc.) ; la seconde, le type de contrat (CDD,CDI). Cette PR change le label de la première et propose de parler de "Type de durée de travail" pour les distinguer. [Service-Public.fr](https://www.service-public.fr/particuliers/vosdroits/F19261) en parle aussi sous cette forme. - ## 168.0.13 [2344](https://github.com/openfisca/openfisca-france/pull/2344) * Évolution du système socio-fiscal. | Amélioration technique. Ces changements modifient l'API publique d'OpenFisca France et ajoutent une fonctionnalité : la possibilité de modifier des paramètres actuellement en dur dans les formules. diff --git a/setup.py b/setup.py index ea38863a79..fafaae9bdc 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name = 'OpenFisca-France', - version = '168.0.15', + version = '168.0.16', author = 'OpenFisca Team', author_email = 'contact@openfisca.fr', classifiers = [