diff --git a/openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py b/openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py index d17ef438e3..686c9607c0 100644 --- a/openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py +++ b/openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py @@ -4063,7 +4063,7 @@ def formula(foyer_fiscal, period, parameters): class plus_values_gains_divers(Variable): value_type = float entity = FoyerFiscal - label = "Plus-values et gains divers" + label = 'Plus-values et gains divers' definition_period = YEAR diff --git a/openfisca_france/model/prestations/aides_logement.py b/openfisca_france/model/prestations/aides_logement.py index a3da1aba5b..e730d8c149 100644 --- a/openfisca_france/model/prestations/aides_logement.py +++ b/openfisca_france/model/prestations/aides_logement.py @@ -256,21 +256,21 @@ class etat_logement(Variable): class assistant_maternel(Variable): value_type = bool entity = Individu - label = "Assistant maternel" + label = 'Assistant maternel' definition_period = MONTH class assistant_familial(Variable): value_type = bool entity = Individu - label = "Assistant familial" + label = 'Assistant familial' definition_period = MONTH class journaliste(Variable): value_type = bool entity = Individu - label = "Journaliste" + label = 'Journaliste' definition_period = MONTH @@ -605,12 +605,13 @@ def formula_2021_01_01(individu, period, parameters): abattement_frais_pro = where(frais_reels > abattement_forfaitaire, frais_reels, abattement_forfaitaire) + rpns = individu('rpns_imposables', period.n_2) rpns_pvce = individu('rpns_pvce', period.n_2) rpns_pvct = individu('rpns_pvct', period.n_2) rpns_mvct = individu('moins_values_court_terme_non_salaries', period.n_2) rpns_mvlt = individu('moins_values_long_terme_non_salaries', period.n_2) - rpns = rpns_pvce + rpns_pvct + rpns_mvct + rpns_mvlt + rpns = rpns + rpns_pvce + rpns_pvct + rpns_mvct + rpns_mvlt # TO DO : compléter la formule pour prendre en compte la disposition particulière concernant les indépendants ayant commencé une activité entre N-2 et N. # Non implémentée car diffile à comprendre ce qui est fait exactement diff --git a/openfisca_france/model/prestations/minima_sociaux/aah.py b/openfisca_france/model/prestations/minima_sociaux/aah.py index fb1fb78641..96d45a7a39 100644 --- a/openfisca_france/model/prestations/minima_sociaux/aah.py +++ b/openfisca_france/model/prestations/minima_sociaux/aah.py @@ -19,7 +19,7 @@ class aah_date_debut_incarceration(Variable): value_type = date default_value = date.max - label = 'La date de début d\'incarcération' + label = "La date de début d'incarcération" entity = Individu definition_period = MONTH set_input = set_input_dispatch_by_period @@ -28,7 +28,7 @@ class aah_date_debut_incarceration(Variable): class aah_date_debut_hospitalisation(Variable): value_type = date default_value = date.max - label = 'La date de début d\'hospitalisation' + label = "La date de début d'hospitalisation" entity = Individu definition_period = MONTH set_input = set_input_dispatch_by_period @@ -41,50 +41,6 @@ class aah_base_ressources_conjugalisee(Variable): definition_period = MONTH set_input = set_input_divide_by_period - def formula_2023_10_01(individu, period, parameters): - law = parameters(period) - aah = law.prestations_sociales.prestations_etat_de_sante.invalidite.aah - - 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) - 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) - base_ressource_activite = individu('aah_base_ressources_activite_eval_trimestrielle', period) - individu('aah_base_ressources_activite_milieu_protege', three_previous_months, options = [ADD]) - base_ressource_hors_activite = individu('aah_base_ressources_hors_activite_eval_trimestrielle', period) + individu('aah_base_ressources_activite_milieu_protege', three_previous_months, options = [ADD]) - - base_ressource_demandeur = max_(0, assiette_revenu_activite_demandeur(base_ressource_activite) + base_ressource_hors_activite) - - return base_ressource_demandeur - - def base_ressource_eval_annuelle(): - base_ressource_activite = assiette_revenu_activite_demandeur(individu('aah_base_ressources_activite_eval_annuelle', period)) - base_ressource = base_ressource_activite + individu('aah_base_ressources_hors_activite_eval_annuelle', period) - - return base_ressource - - return where( - en_activite, - base_ressource_eval_trim() / 12, - base_ressource_eval_annuelle() / 12 - ) - def formula_2022_01_01(individu, period, parameters): law = parameters(period) aah = law.prestations_sociales.prestations_etat_de_sante.invalidite.aah @@ -112,7 +68,7 @@ def assiette_revenu_activite_demandeur(revenus_demandeur): ) > 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) base_ressource_activite = individu('aah_base_ressources_activite_eval_trimestrielle', period) - individu('aah_base_ressources_activite_milieu_protege', three_previous_months, options = [ADD]) @@ -142,15 +98,7 @@ def base_ressource_eval_annuelle(): base_ressource_eval_annuelle() / 12 ) - -class aah_base_ressources_deconjugalisee(Variable): - value_type = float - label = "Base ressources de l'allocation adulte handicapé après déconjugalisation" - entity = Individu - definition_period = MONTH - set_input = set_input_divide_by_period - - def formula_2023_10_01(individu, period, parameters): + def formula_2011(individu, period, parameters): law = parameters(period) aah = law.prestations_sociales.prestations_etat_de_sante.invalidite.aah @@ -227,11 +175,11 @@ def base_ressource_eval_annuelle(): return base_ressource_eval_annuelle() / 12 def formula(individu, period, parameters): # formule pour les cas les plus anciens, moins vérifiée (sans abattement à part celui de 20% sur les revenus du conjoint) - _parameters = parameters(period) - aah = _parameters.prestations_sociales.prestations_etat_de_sante.invalidite.aah + law = parameters(period) + aah = law.prestations_sociales.prestations_etat_de_sante.invalidite.aah def assiette_conjoint(revenus_conjoint): - return (1 - _parameters.impot_revenu.calcul_revenus_imposables.deductions.taux_salaires_pensions) * (1 - aah.abattement_conjoint.abattement_proportionnel) * revenus_conjoint + return (1 - law.impot_revenu.calcul_revenus_imposables.deductions.taux_salaires_pensions) * (1 - aah.abattement_conjoint.abattement_proportionnel) * revenus_conjoint def base_ressource_eval_annuelle(): base_ressource = individu('aah_base_ressources_activite_eval_annuelle', period) + individu('aah_base_ressources_hors_activite_eval_annuelle', period) @@ -244,14 +192,62 @@ def base_ressource_eval_annuelle(): return base_ressource_eval_annuelle() / 12 - # TODO: - Prendre en compte les abattements temporaires sur les ressources en cas de changement de situation (6 mois pour retour à l'emploi, un an pour inactivité) - # - La formule du calcul de la base de ressource est celle en vigueur à partir de 2011, avant 2011: - # - l'abattement pour les personnes invalides (défini dans l'art. 157 du CGI) sur le revenu net global est pris en compte (art. R821-4 du CSS) + +class aah_base_ressources_deconjugalisee(Variable): + value_type = float + label = "Base ressources de l'allocation adulte handicapé après déconjugalisation" + entity = Individu + definition_period = MONTH + set_input = set_input_divide_by_period + + def formula_2023_10_01(individu, period, parameters): + parameters = parameters(period) + aah = parameters.prestations_sociales.prestations_etat_de_sante.invalidite.aah + + en_activite = ((individu('salaire_imposable', period, options = [ADD]) + individu('rpns_imposables', period.last_year)) > 0) + + def assiette_revenu_activite_demandeur(revenus_demandeur): + smic_brut_annuel = 12 * parameters.marche_travail.salaire_minimum.smic.smic_b_horaire * parameters.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) + 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) + base_ressource_activite = individu('aah_base_ressources_activite_eval_trimestrielle', period) - individu('aah_base_ressources_activite_milieu_protege', three_previous_months, options = [ADD]) + base_ressource_hors_activite = individu('aah_base_ressources_hors_activite_eval_trimestrielle', period) + individu('aah_base_ressources_activite_milieu_protege', three_previous_months, options = [ADD]) + + base_ressource_demandeur = max_(0, assiette_revenu_activite_demandeur(base_ressource_activite) + base_ressource_hors_activite) + + return base_ressource_demandeur + + def base_ressource_eval_annuelle(): + base_ressource_activite = assiette_revenu_activite_demandeur(individu('aah_base_ressources_activite_eval_annuelle', period)) + base_ressource = base_ressource_activite + individu('aah_base_ressources_hors_activite_eval_annuelle', period) + + return base_ressource + + return where( + en_activite, + base_ressource_eval_trim() / 12, + base_ressource_eval_annuelle() / 12 + ) class aah_base_ressources_activite_eval_trimestrielle(Variable): value_type = float - label = 'Base de ressources des revenus d\'activité de l\'AAH pour un individu, évaluation trimestrielle' + label = "Base de ressources des revenus d'activité de l'AAH pour un individu, évaluation trimestrielle" entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -303,7 +299,7 @@ def revenus_tns(): class aah_base_ressources_activite_milieu_protege(Variable): value_type = float - label = 'Base de ressources de l\'AAH des revenus d\'activité en milieu protégé pour un individu' + label = "Base de ressources de l'AAH des revenus d'activité en milieu protégé pour un individu" entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -311,7 +307,7 @@ class aah_base_ressources_activite_milieu_protege(Variable): class aah_base_ressources_hors_activite_eval_trimestrielle(Variable): value_type = float - label = 'Base de ressources hors revenus d\'activité de l\'AAH pour un individu, évaluation trimestrielle' + label = "Base de ressources hors revenus d'activité de l'AAH pour un individu, évaluation trimestrielle" entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -359,7 +355,7 @@ def formula(individu, period): class aah_base_ressources_activite_eval_annuelle(Variable): value_type = float - label = 'Base de ressources de l\'AAH pour un individu, évaluation annuelle' + label = "Base de ressources de l'AAH pour un individu, évaluation annuelle" entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -399,7 +395,7 @@ class aah_restriction_substantielle_durable_acces_emploi(Variable): value_type = bool default_value = False entity = Individu - label = 'Restriction substantielle et durable pour l\'accès à l\'emploi reconnue par la commission des droits et de l\'autonomie des personnes handicapées' + label = "Restriction substantielle et durable pour l'accès à l'emploi reconnue par la commission des droits et de l'autonomie des personnes handicapées" reference = [ 'Article L821-2 du Code de la sécurité sociale', 'https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=17BE3036A19374AA1C8C7A4169702CD7.tplgfr24s_2?idArticle=LEGIARTI000020039305&cidTexte=LEGITEXT000006073189&dateTexte=20180731' @@ -410,7 +406,7 @@ class aah_restriction_substantielle_durable_acces_emploi(Variable): class aah_eligible(Variable): value_type = bool - label = 'Eligibilité à l\'Allocation adulte handicapé' + label = "Eligibilité à l'Allocation adulte handicapé" entity = Individu definition_period = MONTH set_input = set_input_dispatch_by_period @@ -500,7 +496,7 @@ def formula(individu, period, parameters): class aah_base_non_cumulable(Variable): value_type = float - label = 'Montant de l\'Allocation adulte handicapé (hors complément) pour un individu, mensualisée' + label = "Montant de l'Allocation adulte handicapé (hors complément) pour un individu, mensualisée" entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -528,17 +524,16 @@ class aah_plafond_ressources_conjugalise(Variable): def formula(individu, period, parameters): law = parameters(period).prestations_sociales + aah_law = law.prestations_etat_de_sante.invalidite.aah en_couple = individu.famille('en_couple', period) af_nbenf = individu.famille('af_nbenf', period) - montant_max = law.prestations_etat_de_sante.invalidite.aah.montant + montant_max = aah_law.montant return montant_max * ( - + 1 - + en_couple - * law.prestations_etat_de_sante.invalidite.aah.majoration_plafond.majoration_plafond_couple - + law.prestations_etat_de_sante.invalidite.aah.majoration_plafond.majoration_par_enfant_supplementaire - * af_nbenf + 1 + + (en_couple * aah_law.majoration_plafond.majoration_plafond_couple) + + (af_nbenf * aah_law.majoration_plafond.majoration_par_enfant_supplementaire) ) @@ -560,7 +555,7 @@ def formula(individu, period, parameters): montant_max = law.prestations_etat_de_sante.invalidite.aah.montant return montant_max * ( - + 1 + 1 + law.prestations_etat_de_sante.invalidite.aah.majoration_plafond.majoration_par_enfant_supplementaire * af_nbenf ) @@ -582,7 +577,7 @@ class aah_conjugalise_eligible(Variable): class aah_base(Variable): calculate_output = calculate_output_add value_type = float - label = 'Montant de l\'Allocation adulte handicapé (hors complément) pour un individu, mensualisée' + label = "Montant de l'Allocation adulte handicapé (hors complément) pour un individu, mensualisée" entity = Individu reference = [ 'Article L821-1 du Code de la sécurité sociale', @@ -687,7 +682,7 @@ def formula_2015_07_01(individu, period, parameters): class caah(Variable): calculate_output = calculate_output_add value_type = float - label = 'Complément d\'allocation adulte handicapé (mensualisé)' + label = "Complément d'allocation adulte handicapé (mensualisé)" entity = Individu set_input = set_input_divide_by_period definition_period = MONTH diff --git a/openfisca_france/model/prestations/minima_sociaux/cs/ressources.py b/openfisca_france/model/prestations/minima_sociaux/cs/ressources.py index 6b25d7891b..6482d00209 100644 --- a/openfisca_france/model/prestations/minima_sociaux/cs/ressources.py +++ b/openfisca_france/model/prestations/minima_sociaux/cs/ressources.py @@ -86,6 +86,7 @@ def formula(individu, period, parameters): - neutralisation_stage_formation_pro(individu, previous_year, last_month) ) + class css_base_ressources_aah_individu(Variable): value_type = float label = "Base de ressources AAH de l'individu prise en compte pour l'éligibilité à la CSS après application de l'abattement" @@ -94,7 +95,7 @@ class css_base_ressources_aah_individu(Variable): 'https://sante.gouv.fr/fichiers/bo/2021/2021.6.sante.pdf#page=75', 'Bulletin officiel Santé - Protection sociale - Solidarité n° 2023/24 du 29 décembre 2023 - Instruction interministérielle N° DSS/SD2A/2023/98 du 22 décembre 2023', 'https://sante.gouv.fr/fichiers/bo/2023/2023.24.sante.pdf#page=82', - ] + ] entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -105,13 +106,14 @@ def formula(individu, period, parameters): def formula_2021_04_01(individu, period, parameters): return max_(individu('aah', period) - parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.cs.css.abattements.aah, 0) + class css_abattement_asi_individu(Variable): value_type = float label = "Base de ressources ASI de l'individu prise en compte pour l'éligibilité à la CSS après application de l'abattement" reference = [ 'Bulletin officiel Santé - Protection sociale - Solidarité n° 2021/6 du 16 avril 2021 - Instruction interministérielle N° DSS/SD2A/2021/71 du 30 mars 2021', 'https://sante.gouv.fr/fichiers/bo/2021/2021.6.sante.pdf#page=75' - ] + ] entity = Individu definition_period = MONTH set_input = set_input_divide_by_period @@ -122,7 +124,7 @@ def formula(individu, period, parameters): def formula_2021_04_01(individu, period, parameters): abattement_asi_personne_seule = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.cs.css.abattements.asi.personne_seule - abattement_asi_couple = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.cs.css.abattements.asi.couple/2 + abattement_asi_couple = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.cs.css.abattements.asi.couple / 2 adulte_ayant_asi = where(and_( individu.has_role(FoyerFiscal.DECLARANT), individu('asi', period)), @@ -134,19 +136,21 @@ def formula_2021_04_01(individu, period, parameters): [0, abattement_asi_couple, abattement_asi_personne_seule], 0) + class css_base_ressources_aspa_asv(Variable): value_type = float label = "Base de ressources ASPA/ASV de pour une famille prise en compte pour l'éligibilité à la CSS après application de l'abattement" reference = [ 'Bulletin officiel Santé - Protection sociale - Solidarité n° 2021/6 du 16 avril 2021 - Instruction interministérielle N° DSS/SD2A/2021/71 du 30 mars 2021', 'https://sante.gouv.fr/fichiers/bo/2021/2021.6.sante.pdf#page=75' - ] + ] entity = Famille definition_period = MONTH set_input = set_input_divide_by_period def formula(famille, period, parameters): return famille('aspa', period) + def formula_2021_04_01(famille, period, parameters): aspa = famille('aspa', period) aspa_couple = famille('aspa_couple', period) @@ -157,6 +161,7 @@ def formula_2021_04_01(famille, period, parameters): [max_(aspa - abattement_aspa_couple, 0), max_(aspa - abattement_aspa_personne_seule, 0)], aspa) + class css_cmu_base_ressources(Variable): value_type = float label = "Base de ressources prise en compte pour l'éligibilité à la ACS / CMU-C / CSS" @@ -212,6 +217,7 @@ def formula(famille, period, parameters): # Helper functions + def compute_previous_year(period): return Period(('year', period.start, 1)).offset(-1).offset(-1, 'month') @@ -220,6 +226,8 @@ def compute_previous_year(period): # - chômage # - ass # - formation professionnelle + + def abattement_chomage(individu, period, previous_year, parametres_cmu): indemnites_journalieres_maladie = individu('indemnites_journalieres_maladie', period) diff --git a/openfisca_france/model/revenus/activite/salarie.py b/openfisca_france/model/revenus/activite/salarie.py index f5d2ffb706..a2c3621349 100644 --- a/openfisca_france/model/revenus/activite/salarie.py +++ b/openfisca_france/model/revenus/activite/salarie.py @@ -1706,10 +1706,12 @@ class salaire_imposable_agents_assurance(Variable): entity = Individu label = 'Agents generaux d assurance - salaire imposable' definition_period = YEAR + + class cer_ou_ppae(Variable): value_type = bool entity = Individu - label = "Avoir un CER (Contrat d’engagement réciproque) et/ou un PPAE (Projet personnalisé d’accès à l’emploi) en cours" + label = "Avoir un CER (Contrat d'engagement réciproque) et/ou un PPAE (Projet personnalisé d'accès à l'emploi) en cours" definition_period = MONTH set_input = set_input_dispatch_by_period @@ -1717,7 +1719,7 @@ class cer_ou_ppae(Variable): class formation(Variable): value_type = bool entity = Individu - label = "Etre en formation" + label = 'Etre en formation' definition_period = MONTH set_input = set_input_dispatch_by_period @@ -1725,7 +1727,7 @@ class formation(Variable): class duree_contrat_ou_formation(Variable): value_type = int entity = Individu - label = "Durée en mois du CDD ou de la formation" + label = 'Durée en mois du CDD ou de la formation' definition_period = MONTH set_input = set_input_dispatch_by_period diff --git a/openfisca_france/parameters/chomage/allocations_assurance_chomage/alloc_base/montant_minimum/apres_1979/montant_minimum_hors_mayotte.yaml b/openfisca_france/parameters/chomage/allocations_assurance_chomage/alloc_base/montant_minimum/apres_1979/montant_minimum_hors_mayotte.yaml index 4c8bb85ae1..89c7d2cc2a 100644 --- a/openfisca_france/parameters/chomage/allocations_assurance_chomage/alloc_base/montant_minimum/apres_1979/montant_minimum_hors_mayotte.yaml +++ b/openfisca_france/parameters/chomage/allocations_assurance_chomage/alloc_base/montant_minimum/apres_1979/montant_minimum_hors_mayotte.yaml @@ -224,3 +224,5 @@ metadata: - title: Protocole d'accord du 18/07/1992 et Convention du 01/01/1993 créent l'allocation unique dégressive 2001-07-01: - title: "Nouvelle convention: création de l'Allocation de retour à l'emploi qui remplace AUD" + 2024-07-01: + - title: Valeur inconnue de l'allocation journalière versée pendant une période de formation. diff --git a/openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rpns/micro/microentreprise/regime_micro_ba/plafond_recettes.yaml b/openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rpns/micro/microentreprise/regime_micro_ba/plafond_recettes.yaml index c304f4b08e..6127ea3323 100644 --- a/openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rpns/micro/microentreprise/regime_micro_ba/plafond_recettes.yaml +++ b/openfisca_france/parameters/impot_revenu/calcul_revenus_imposables/rpns/micro/microentreprise/regime_micro_ba/plafond_recettes.yaml @@ -35,9 +35,11 @@ metadata: - title: Article 69, I. du Code général des impôts href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000028447731 official_journal_date: + 1979-01-01: "1980-01-19" 2016-01-01: "2015-12-30" 2017-01-01: "2017-05-04" 2020-01-01: "2020-07-24" + 2022-01-01: "2023-06-02" 2023-01-01: "2023-06-02" 2024-01-01: "2023-12-30" documentation: |- diff --git a/openfisca_france/parameters/prelevements_sociaux/contribution_salariale_glo.yaml b/openfisca_france/parameters/prelevements_sociaux/contribution_salariale_glo.yaml new file mode 100644 index 0000000000..c176050884 --- /dev/null +++ b/openfisca_france/parameters/prelevements_sociaux/contribution_salariale_glo.yaml @@ -0,0 +1,12 @@ +description: Contribution salariale sur gains de levée d'options +values: + 2012-09-01: + value: 0.10 +metadata: + unit: /1 + reference: + 2012-09-01: + href: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000033812493 + title: Article L137-14 du Code de la sécurité sociale. +documentation: |- + Ce paramètre existe avant septembre 2012, mais pas rempli pour ces périodes. diff --git a/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/couples.yaml b/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/couples.yaml index 69ab4296fd..f7490af95d 100644 --- a/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/couples.yaml +++ b/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/couples.yaml @@ -59,6 +59,7 @@ metadata: title: Arrêté du 29/12/2023 relatif à la revalorisation des plafonds de ressources et des montants de réduction de loyer de solidarité applicables, art. 1 href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000048100093 2024-01-01: + title: Arrêté du 29/12/2023 relatif à la revalorisation des plafonds de ressources et des montants de réduction de loyer de solidarité applicables, art. 1 href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000048729702 official_journal_date: 2018-01-01: "2018-02-28" diff --git a/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/personnes_seules.yaml b/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/personnes_seules.yaml index 2c39ca134d..a2bf537118 100644 --- a/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/personnes_seules.yaml +++ b/openfisca_france/parameters/prestations_sociales/aides_logement/reduction_loyer_solidarite/montant/par_zone/zone_2/personnes_seules.yaml @@ -59,6 +59,7 @@ metadata: title: Arrêté du 29/12/2023 relatif à la revalorisation des plafonds de ressources et des montants de réduction de loyer de solidarité applicables, art. 1 href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000048100093 2024-01-01: + title: Arrêté du 29/12/2023 relatif à la revalorisation des plafonds de ressources et des montants de réduction de loyer de solidarité applicables, art. 1 href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000048729702 official_journal_date: 2018-01-01: "2018-02-28" diff --git a/openfisca_france/parameters/taxation_capital/prelevement_forfaitaire/liberatoire_assurance_vie/bons_contrats_placements/entre_1_1_83_et_31_12_89/six_ans_primes_avant_98.yaml b/openfisca_france/parameters/taxation_capital/prelevement_forfaitaire/liberatoire_assurance_vie/bons_contrats_placements/entre_1_1_83_et_31_12_89/six_ans_primes_avant_98.yaml index 346400bc05..5917d783a3 100644 --- a/openfisca_france/parameters/taxation_capital/prelevement_forfaitaire/liberatoire_assurance_vie/bons_contrats_placements/entre_1_1_83_et_31_12_89/six_ans_primes_avant_98.yaml +++ b/openfisca_france/parameters/taxation_capital/prelevement_forfaitaire/liberatoire_assurance_vie/bons_contrats_placements/entre_1_1_83_et_31_12_89/six_ans_primes_avant_98.yaml @@ -12,10 +12,16 @@ metadata: 1983-01-01: title: Loi 82-1126 du 29/12/1982, art. 14 (LF pour 1983) href: https://www.legifrance.gouv.fr/affichTexteArticle.do?idArticle=LEGIARTI000006273726&cidTexte=JORFTEXT000000503959 + 2018-01-01: + title: Loi 2017-1837 du 30/12/2017 - art. 28 (modif art 125 A, 125-0 A, 200 A et art 117 quater du CGI) + href: https://www.legifrance.gouv.fr/affichTexteArticle.do?idArticle=LEGIARTI000036377422&cidTexte=JORFTEXT000036339197 official_journal_date: 1983-01-01: "1997-12-30" + 2018-01-01: "2017-12-31" notes: 1983-01-01: - title: Création de l'art. 125-0 A du CGI + 2018-01-01: + - title: Le prélèvement libératoire est remplacé par un prélèvement forfaitaire unique non-libératoire, dont la valeur est telle que la somme du taux de ce prélèvement et des prélèvements sociaux est de 30%. documentation: | Cas des primes versées avant le 01/01/1998. diff --git a/tests/formulas/aah/aah.yaml b/tests/formulas/aah/aah.yaml index 45f4b61060..9ebc416540 100644 --- a/tests/formulas/aah/aah.yaml +++ b/tests/formulas/aah/aah.yaml @@ -134,8 +134,8 @@ 2015-10: 400 2015-09: 400 2015-08: 400 - activite: - 2018: actif + activite: + 2018: actif output: aah_base_ressources_conjugalisee: 2015-11: 80 @@ -186,13 +186,13 @@ age: 40 taux_incapacite: 0.9 activite: - 2018: inactif + 2015: inactif parent2: age: 40 salaire_imposable: 2013: 1128.70 * 12 activite: - 2018: actif + 2015: actif output: aah_base_ressources_conjugalisee: 2015-11: @@ -711,10 +711,14 @@ parent1: age: 40 taux_incapacite: 0.9 + activite: + 2004: inactif parent2: age: 40 salaire_imposable: 2002: 1128.70 * 12 + activite: + 2004: actif output: aah_base_ressources_conjugalisee: 2004-04: @@ -731,12 +735,16 @@ parent1: age: 40 taux_incapacite: 0.9 + activite: + 2004: inactif parent2: age: 40 salaire_imposable: 2006: 1128.70 * 12 2005: 1128.70 * 12 2004: 1128.70 * 12 + activite: + 2006: actif output: aah_base_ressources_conjugalisee: 2006-04: @@ -812,11 +820,15 @@ age: 25 salaire_imposable: 2005: 1200 + activite: + 2004: inactif conjoint: age: 40 taux_incapacite: 0.9 salaire_imposable: 2005: 200.70 * 12 + activite: + 2004: actif output: caah: 2007-04: @@ -835,21 +847,33 @@ age: 45 taux_incapacite: 0.9 salaire_imposable: - 2023-06: 1200 - 2023-05: 1200 - 2023-04: 1200 - 2023-03: 1200 + 2021: 14400 pensions_alimentaires_versees_individu: - 2023-06: 200 - 2023-05: 200 - 2023-04: 200 - 2023-03: 200 + 2021: 2400 + activite: + 2023-06: actif albertjr: age: 10 pensions_alimentaires_percues: - 2023-06: 200 - 2023-05: 200 - 2023-04: 200 - 2023-03: 200 + 2021-06: 2400 output: aah_base_ressources_conjugalisee: [310, 0] # ((0.2 * 6290 + 0.6 * 8110) - (200 * 12))/12 ~= 310 + +- name: AAH niveau Individu avec cessation d'activite - Eligible car cessation d'activité, célibataire, sans enfants + description: Montant AAH au niveau de l individu + period: 2023-03 + absolute_error_margin: 1 + input: + taux_incapacite: 0.8 + age: 50 # eligible aah + salaire_imposable: + 2021: 24000 + en_couple: 0 + af_nbenf: 0 + activite: + 2023-03: inactif + 2023-02: inactif + 2023-01: inactif + output: + aah_base_ressources_conjugalisee: 696.41 + aah: 260 diff --git a/tests/formulas/aah/aah_couple.yaml b/tests/formulas/aah/aah_couple.yaml index 7b9845c17a..b124916b9c 100644 --- a/tests/formulas/aah/aah_couple.yaml +++ b/tests/formulas/aah/aah_couple.yaml @@ -10,7 +10,8 @@ individus: parent1: aah_eligible: true - aah_base_ressources_conjugalisee: 16790.72 / 12 + activite: actif + aah_base_ressources: 16790.72 / 12 parent2: aah_eligible: false activite: inactif @@ -47,7 +48,8 @@ individus: parent1: aah_eligible: true - aah_base_ressources_conjugalisee: 8777.70 / 12 + activite: actif + aah_base_ressources: 8777.70 / 12 parent2: aah_eligible: false activite: inactif @@ -87,7 +89,8 @@ activite: inactif parent2: aah_eligible: true - aah_base_ressources_conjugalisee: 12585.68 / 12 + activite: actif + aah_base_ressources: 12585.68 / 12 foyers_fiscaux: foyer_fiscal_0: declarants: @@ -145,7 +148,7 @@ personne_de_reference: - parent2 output: - aah_base_ressources_conjugalisee: [413.42, 720] + aah_base_ressources: [413.42, 720] - name: Couple de personnes en situation de handicap, déconjugalisation period: 2023-11 @@ -179,8 +182,7 @@ personne_de_reference: - parent2 output: - aah_base_ressources: [413.42, 720] -# L'aah base_ressource change avec le smic (et le montant d'AAH peut changer), l'output réel est donc encore inconnu (05/2023) : test utile uniquement pour le développement, en utilisant la dernière valeur du SMIC et d'AAH(qui risque de changer encore d'ici octobre) + aah_base_ressources_conjugalisee: [413.42, 720] - name: Couple de personnes en situation de handicap, déconjugalisation period: 2023-11 absolute_error_margin: 1 diff --git a/tests/formulas/aah/aah_famille.yaml b/tests/formulas/aah/aah_famille.yaml index 061c6a2393..69b5afebcb 100644 --- a/tests/formulas/aah/aah_famille.yaml +++ b/tests/formulas/aah/aah_famille.yaml @@ -244,7 +244,7 @@ 2013-12: 0 2013-11: 0 2013-10: 0 - aah_base_ressources_conjugalisee: 25000 / 12 + aah_base_ressources: 25000 / 12 enfant2: aah_eligible: false antonin: diff --git a/tests/formulas/non_salaries.yaml b/tests/formulas/non_salaries.yaml index faf929e044..fce9a587c3 100644 --- a/tests/formulas/non_salaries.yaml +++ b/tests/formulas/non_salaries.yaml @@ -111,6 +111,7 @@ 2014-04: 1000 2014-03: 1000 2014-02: 1000 + 2014-01: 1000 output: asi_aspa_base_ressources: