1 line
1.3 MiB
1 line
1.3 MiB
{"apiVersion": 1, "country_package_version": "4.1.3", "method": "/api/1/variables/", "url": "http://api.openfisca.fr/api/1/variables/", "variables": [{"@type": "Float", "default": 0, "entity": "familles", "label": "Allocations logements", "line_number": 379, "module": "mesures", "name": "aides_logement", "url": "http://vosdroits.service-public.fr/particuliers/N20360.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestations logement", "line_number": 385, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Prestations logement\n '''\n period = period.this_year\n apl = simulation.calculate_add('apl', period)\n als = simulation.calculate_add('als', period)\n alf = simulation.calculate_add('alf', period)\n crds_logement = simulation.calculate_add('crds_logement', period)\n\n return period, apl + als + alf + crds_logement\n", "input_variables": ["alf", "crds_logement", "als", "apl"]}}, {"@type": "Float", "default": 0, "entity": "menages", "line_number": 562, "module": "mesures", "name": "check_crds", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 567, "module": "mesures", "source": "def function(self, simulation, period):\n period = period.this_year\n crds_cap_bar_declarant1_holder = simulation.compute('crds_cap_bar_declarant1', period)\n crds_pv_mo_holder = simulation.compute('crds_pv_mo', period)\n crds_fon_holder = simulation.compute('crds_fon', period)\n\n crds_cap_bar = self.sum_by_entity(crds_cap_bar_declarant1_holder)\n crds_pv_mo = self.cast_from_entity_to_role(crds_pv_mo_holder, role = CHEF)\n crds_pv_mo = self.sum_by_entity(crds_pv_mo)\n crds_fon = self.cast_from_entity_to_role(crds_fon_holder, role = CHEF)\n crds_fon = self.sum_by_entity(crds_fon)\n\n return period, crds_cap_bar + crds_pv_mo + crds_fon\n", "input_variables": ["crds_cap_bar_declarant1", "crds_fon", "crds_pv_mo"]}}, {"@type": "Float", "default": 0, "entity": "menages", "line_number": 542, "module": "mesures", "name": "check_csg", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 547, "module": "mesures", "source": "def function(self, simulation, period):\n period = period.this_year\n csg_cap_bar_declarant1_holder = simulation.compute('csg_cap_bar_declarant1', period)\n csg_pv_mo_holder = simulation.compute('csg_pv_mo', period)\n csg_fon_holder = simulation.compute('csg_fon', period)\n\n csg_cap_bar = self.sum_by_entity(csg_cap_bar_declarant1_holder)\n csg_pv_mo = self.cast_from_entity_to_role(csg_pv_mo_holder, role = CHEF)\n csg_pv_mo = self.sum_by_entity(csg_pv_mo)\n csg_fon = self.cast_from_entity_to_role(csg_fon_holder, role = CHEF)\n csg_fon = self.sum_by_entity(csg_fon)\n\n return period, csg_cap_bar + csg_pv_mo + csg_fon\n", "input_variables": ["csg_fon", "csg_pv_mo", "csg_cap_bar_declarant1"]}}, {"@type": "Float", "default": 0, "entity": "menages", "line_number": 522, "module": "mesures", "name": "check_csk", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 527, "module": "mesures", "source": "def function(self, simulation, period):\n period = period.this_year\n prelsoc_cap_bar_declarant1_holder = simulation.compute('prelsoc_cap_bar_declarant1', period)\n prelsoc_pv_mo_holder = simulation.compute('prelsoc_pv_mo', period)\n prelsoc_fon_holder = simulation.compute('prelsoc_fon', period)\n\n prelsoc_cap_bar = self.sum_by_entity(prelsoc_cap_bar_declarant1_holder)\n prelsoc_pv_mo = self.cast_from_entity_to_role(prelsoc_pv_mo_holder, role = CHEF)\n prelsoc_pv_mo = self.sum_by_entity(prelsoc_pv_mo)\n prelsoc_fon = self.cast_from_entity_to_role(prelsoc_fon_holder, role = CHEF)\n prelsoc_fon = self.sum_by_entity(prelsoc_fon)\n\n return period, prelsoc_cap_bar + prelsoc_pv_mo + prelsoc_fon\n", "input_variables": ["prelsoc_pv_mo", "prelsoc_fon", "prelsoc_cap_bar_declarant1"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales sur les revenus du capital impos\u00e9s au bar\u00e8me", "line_number": 250, "module": "mesures", "name": "cotsoc_bar_declarant1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cotisations sociales sur les revenus du capital impos\u00e9s au bar\u00e8me", "line_number": 255, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Cotisations sociales sur les revenus du capital impos\u00e9s au bar\u00e8me\n '''\n period = period.start.period('year').offset('first-of')\n csg_cap_bar_declarant1 = simulation.calculate('csg_cap_bar_declarant1', period)\n prelsoc_cap_bar_declarant1 = simulation.calculate('prelsoc_cap_bar_declarant1', period)\n crds_cap_bar_declarant1 = simulation.calculate('crds_cap_bar_declarant1', period)\n\n return period, csg_cap_bar_declarant1 + prelsoc_cap_bar_declarant1 + crds_cap_bar_declarant1\n", "input_variables": ["crds_cap_bar_declarant1", "csg_cap_bar_declarant1", "prelsoc_cap_bar_declarant1"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire", "line_number": 267, "module": "mesures", "name": "cotsoc_lib_declarant1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cotisations sociales sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire", "line_number": 272, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Cotisations sociales sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire\n '''\n period = period.this_year\n csg_cap_lib_declarant1 = simulation.calculate('csg_cap_lib_declarant1', period)\n prelsoc_cap_lib_declarant1 = simulation.calculate('prelsoc_cap_lib_declarant1', period)\n crds_cap_lib_declarant1 = simulation.calculate('crds_cap_lib_declarant1', period)\n\n return period, csg_cap_lib_declarant1 + prelsoc_cap_lib_declarant1 + crds_cap_lib_declarant1\n", "input_variables": ["prelsoc_cap_lib_declarant1", "csg_cap_lib_declarant1", "crds_cap_lib_declarant1"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales non contributives", "line_number": 479, "module": "mesures", "name": "cotsoc_noncontrib", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cotisations sociales non contributives (hors prelsoc_cap_lib, prelsoc_cap_bar)", "line_number": 484, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Cotisations sociales non contributives (hors prelsoc_cap_lib, prelsoc_cap_bar)\n '''\n period = period.this_year\n cotisations_employeur_non_contributives = simulation.calculate('cotisations_employeur_non_contributives',\n period)\n cotisations_salariales_non_contributives = simulation.calculate('cotisations_salariales_non_contributives',\n period)\n\n return period, cotisations_employeur_non_contributives + cotisations_salariales_non_contributives\n", "input_variables": ["cotisations_employeur_non_contributives", "cotisations_salariales_non_contributives"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contributions au remboursement de la dette sociale", "line_number": 418, "module": "mesures", "name": "crds", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Contribution au remboursement de la dette sociale", "line_number": 423, "module": "mesures", "source": "def function(self, simulation, period):\n \"\"\"Contribution au remboursement de la dette sociale\"\"\"\n period = period.this_year\n crds_salaire = simulation.calculate_add('crds_salaire', period)\n crds_retraite = simulation.calculate_add('crds_retraite', period)\n crds_chomage = simulation.calculate_add('crds_chomage', period)\n crds_fon_holder = simulation.compute('crds_fon', period)\n crds_cap_bar_declarant1 = simulation.calculate('crds_cap_bar_declarant1', period)\n crds_cap_lib_declarant1 = simulation.calculate('crds_cap_lib_declarant1', period)\n crds_pfam_holder = simulation.compute('crds_pfam', period)\n crds_logement_holder = simulation.compute_add('crds_logement', period)\n crds_mini_holder = simulation.compute_add('crds_mini', period)\n crds_pv_mo_holder = simulation.compute('crds_pv_mo', period)\n crds_pv_immo_holder = simulation.compute('crds_pv_immo', period)\n\n crds_fon = self.cast_from_entity_to_role(crds_fon_holder, role = VOUS)\n crds_logement = self.cast_from_entity_to_role(crds_logement_holder, role = CHEF)\n crds_mini = self.cast_from_entity_to_role(crds_mini_holder, role = CHEF)\n crds_pfam = self.cast_from_entity_to_role(crds_pfam_holder, role = CHEF)\n crds_pv_immo = self.cast_from_entity_to_role(crds_pv_immo_holder, role = VOUS)\n crds_pv_mo = self.cast_from_entity_to_role(crds_pv_mo_holder, role = VOUS)\n\n return period, (crds_salaire + crds_retraite + crds_chomage +\n crds_fon + crds_cap_bar_declarant1 + crds_cap_lib_declarant1 + crds_pv_mo + crds_pv_immo +\n crds_pfam + crds_logement + crds_mini)\n", "input_variables": ["crds_pv_mo", "crds_retraite", "crds_mini", "crds_salaire", "crds_cap_lib_declarant1", "crds_chomage", "crds_cap_bar_declarant1", "crds_pfam", "crds_fon", "crds_logement", "crds_pv_immo"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contributions sociales g\u00e9n\u00e9ralis\u00e9es", "line_number": 450, "module": "mesures", "name": "csg", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Contribution sociale g\u00e9n\u00e9ralis\u00e9e", "line_number": 455, "module": "mesures", "source": "def function(self, simulation, period):\n \"\"\"Contribution sociale g\u00e9n\u00e9ralis\u00e9e\"\"\"\n period = period.this_year\n csg_imposable_salaire = simulation.calculate_add('csg_imposable_salaire', period)\n csg_deductible_salaire = simulation.calculate_add('csg_deductible_salaire', period)\n csg_imposable_chomage = simulation.calculate_add('csg_imposable_chomage', period)\n csg_deductible_chomage = simulation.calculate_add('csg_deductible_chomage', period)\n csg_imposable_retraite = simulation.calculate_add('csg_imposable_retraite', period)\n csg_deductible_retraite = simulation.calculate_add('csg_deductible_retraite', period)\n csg_fon_holder = simulation.compute('csg_fon', period)\n csg_cap_lib_declarant1 = simulation.calculate('csg_cap_lib_declarant1', period)\n csg_cap_bar_declarant1 = simulation.calculate('csg_cap_bar_declarant1', period)\n csg_pv_mo_holder = simulation.compute('csg_pv_mo', period)\n csg_pv_immo_holder = simulation.compute('csg_pv_immo', period)\n\n csg_fon = self.cast_from_entity_to_role(csg_fon_holder, role = VOUS)\n csg_pv_immo = self.cast_from_entity_to_role(csg_pv_immo_holder, role = VOUS)\n csg_pv_mo = self.cast_from_entity_to_role(csg_pv_mo_holder, role = VOUS)\n\n return period, (csg_imposable_salaire + csg_deductible_salaire + csg_imposable_chomage +\n csg_deductible_chomage + csg_imposable_retraite + csg_deductible_retraite + csg_fon +\n csg_cap_lib_declarant1 + csg_pv_mo + csg_pv_immo + csg_cap_bar_declarant1)\n", "input_variables": ["csg_deductible_chomage", "csg_pv_immo", "csg_imposable_retraite", "csg_imposable_salaire", "csg_imposable_chomage", "csg_cap_lib_declarant1", "csg_deductible_salaire", "csg_pv_mo", "csg_fon", "csg_deductible_retraite", "csg_cap_bar_declarant1"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Imp\u00f4ts directs", "line_number": 398, "module": "mesures", "name": "impo", "url": "http://fr.wikipedia.org/wiki/Imp%C3%B4t_direct", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Imp\u00f4ts directs", "line_number": 404, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Imp\u00f4ts directs\n '''\n period = period.this_year\n irpp_holder = simulation.compute('irpp', period)\n taxe_habitation = simulation.calculate('taxe_habitation', period)\n\n irpp = self.cast_from_entity_to_role(irpp_holder, role = VOUS)\n irpp = self.sum_by_entity(irpp)\n\n return period, irpp + taxe_habitation\n", "input_variables": ["irpp", "taxe_habitation"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Minima sociaux", "line_number": 351, "module": "mesures", "name": "mini", "url": "http://fr.wikipedia.org/wiki/Minima_sociaux", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Minima sociaux", "line_number": 357, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Minima sociaux\n '''\n period = period.this_year\n aspa = simulation.calculate_add('aspa', period)\n aah_holder = simulation.compute_add('aah', period)\n caah_holder = simulation.compute_add('caah', period)\n asi = simulation.calculate_add('asi', period)\n rsa = simulation.calculate_add('rsa', period)\n aefa = simulation.calculate('aefa', period)\n api = simulation.calculate('api', period)\n ass = simulation.calculate_add('ass', period)\n ppa = simulation.calculate_add('ppa', period)\n psa = simulation.calculate_add('psa', period)\n\n aah = self.sum_by_entity(aah_holder)\n caah = self.sum_by_entity(caah_holder)\n\n return period, aspa + aah + caah + asi + rsa + aefa + api + ass + psa + ppa \n", "input_variables": ["ass", "ppa", "aspa", "caah", "psa", "rsa", "aah", "api", "aefa", "asi"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Niveau de vie du m\u00e9nage", "line_number": 101, "module": "mesures", "name": "nivvie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Niveau de vie du m\u00e9nage\n'men'", "line_number": 106, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Niveau de vie du m\u00e9nage\n 'men'\n '''\n period = period.this_year\n revdisp = simulation.calculate('revdisp', period)\n uc = simulation.calculate('uc', period)\n\n return period, revdisp / uc\n", "input_variables": ["revdisp", "uc"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Niveau de vie initial du m\u00e9nage", "line_number": 181, "module": "mesures", "name": "nivvie_ini", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Niveau de vie initial du m\u00e9nage\n'men'", "line_number": 186, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Niveau de vie initial du m\u00e9nage\n 'men'\n '''\n period = period.this_year\n revini = simulation.calculate('revini', period)\n uc = simulation.calculate('uc', period)\n\n return period, revini / uc\n", "input_variables": ["revini", "uc"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Niveau de vie net du m\u00e9nage", "line_number": 140, "module": "mesures", "name": "nivvie_net", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Niveau de vie net du m\u00e9nage\n'men'", "line_number": 145, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Niveau de vie net du m\u00e9nage\n 'men'\n '''\n period = period.this_year\n revnet = simulation.calculate('revnet', period)\n uc = simulation.calculate('uc', period)\n\n return period, revnet / uc\n", "input_variables": ["uc", "revnet"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pensions et revenus de remplacement", "line_number": 227, "module": "mesures", "name": "pen", "url": "http://fr.wikipedia.org/wiki/Rente", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Pensions", "line_number": 233, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Pensions\n '''\n period = period.start.period('year').offset('first-of')\n chomage_net = simulation.calculate('chomage_net', period)\n retraite_nette = simulation.calculate('retraite_nette', period)\n pensions_alimentaires_percues = simulation.calculate('pensions_alimentaires_percues', period)\n pensions_alimentaires_versees_declarant1 = simulation.calculate(\n 'pensions_alimentaires_versees_declarant1', period\n )\n retraite_titre_onereux_declarant1 = simulation.calculate_add('retraite_titre_onereux_declarant1', period)\n\n return period, (chomage_net + retraite_nette + pensions_alimentaires_percues + pensions_alimentaires_versees_declarant1 +\n retraite_titre_onereux_declarant1)\n", "input_variables": ["retraite_titre_onereux_declarant1", "pensions_alimentaires_percues", "pensions_alimentaires_versees_declarant1", "chomage_net", "retraite_nette"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prestations familiales", "line_number": 329, "module": "mesures", "name": "pfam", "url": "http://www.social-sante.gouv.fr/informations-pratiques,89/fiches-pratiques,91/prestations-familiales,1885/les-prestations-familiales,12626.html", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestations familiales", "line_number": 335, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Prestations familiales\n '''\n period = period.this_year\n af = simulation.calculate_add('af', period)\n cf = simulation.calculate_add('cf', period)\n ars = simulation.calculate('ars', period)\n aeeh = simulation.calculate('aeeh', period)\n paje = simulation.calculate_add('paje', period)\n asf = simulation.calculate_add('asf', period)\n crds_pfam = simulation.calculate('crds_pfam', period)\n\n return period, af + cf + ars + aeeh + paje + asf + crds_pfam\n", "input_variables": ["ars", "af", "aeeh", "paje", "cf", "crds_pfam", "asf"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pr\u00e9l\u00e8vements sociaux sur les revenus du capital", "line_number": 497, "module": "mesures", "name": "prelsoc_cap", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&paf_dm=popup&paf_gm=content&typePage=cpr02&sfid=501&espId=1&impot=CS", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Pr\u00e9l\u00e8vements sociaux sur les revenus du capital", "line_number": 503, "module": "mesures", "source": "def function(self, simulation, period):\n \"\"\"\n Pr\u00e9l\u00e8vements sociaux sur les revenus du capital\n \"\"\"\n period = period.this_year\n prelsoc_fon_holder = simulation.compute('prelsoc_fon', period)\n prelsoc_cap_lib_declarant1 = simulation.calculate('prelsoc_cap_lib_declarant1', period)\n prelsoc_cap_bar_declarant1 = simulation.calculate('prelsoc_cap_bar_declarant1', period)\n prelsoc_pv_mo_holder = simulation.compute('prelsoc_pv_mo', period)\n prelsoc_pv_immo_holder = simulation.compute('prelsoc_pv_immo', period)\n\n prelsoc_fon = self.cast_from_entity_to_role(prelsoc_fon_holder, role = VOUS)\n prelsoc_pv_immo = self.cast_from_entity_to_role(prelsoc_pv_immo_holder, role = VOUS)\n prelsoc_pv_mo = self.cast_from_entity_to_role(prelsoc_pv_mo_holder, role = VOUS)\n\n return period, (prelsoc_fon + prelsoc_cap_lib_declarant1 + prelsoc_cap_bar_declarant1 + prelsoc_pv_mo +\n prelsoc_pv_immo)\n", "input_variables": ["prelsoc_cap_lib_declarant1", "prelsoc_pv_mo", "prelsoc_pv_immo", "prelsoc_fon", "prelsoc_cap_bar_declarant1"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prestations sociales", "line_number": 311, "module": "mesures", "name": "psoc", "url": "http://fr.wikipedia.org/wiki/Prestation_sociale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestations sociales", "line_number": 317, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Prestations sociales\n '''\n period = period.this_year\n pfam = simulation.calculate('pfam', period)\n mini = simulation.calculate('mini', period)\n aides_logement = simulation.calculate('aides_logement', period)\n\n return period, pfam + mini + aides_logement\n", "input_variables": ["pfam", "mini", "aides_logement"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus du patrimoine", "line_number": 284, "module": "mesures", "name": "rev_cap", "url": "http://fr.wikipedia.org/wiki/Revenu#Revenu_du_Capital", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus du patrimoine", "line_number": 290, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Revenus du patrimoine\n '''\n period = period.this_year\n fon_holder = simulation.compute('fon', period)\n rev_cap_bar_holder = simulation.compute_add('rev_cap_bar', period)\n cotsoc_bar_declarant1 = simulation.calculate('cotsoc_bar_declarant1', period)\n rev_cap_lib_holder = simulation.compute_add('rev_cap_lib', period)\n cotsoc_lib_declarant1 = simulation.calculate('cotsoc_lib_declarant1', period)\n imp_lib_holder = simulation.compute('imp_lib', period)\n rac = simulation.calculate('rac', period)\n\n fon = self.cast_from_entity_to_role(fon_holder, role = VOUS)\n imp_lib = self.cast_from_entity_to_role(imp_lib_holder, role = VOUS)\n rev_cap_bar = self.cast_from_entity_to_role(rev_cap_bar_holder, role = VOUS)\n rev_cap_lib = self.cast_from_entity_to_role(rev_cap_lib_holder, role = VOUS)\n\n return period, fon + rev_cap_bar + cotsoc_bar_declarant1 + rev_cap_lib + cotsoc_lib_declarant1 + imp_lib + rac\n", "input_variables": ["imp_lib", "rev_cap_lib", "cotsoc_lib_declarant1", "cotsoc_bar_declarant1", "rac", "fon", "rev_cap_bar"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus du travail (salari\u00e9s et non salari\u00e9s)", "line_number": 208, "module": "mesures", "name": "rev_trav", "url": "http://fr.wikipedia.org/wiki/Revenu_du_travail", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu du travail", "line_number": 214, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Revenu du travail\n '''\n period = period.this_year\n revenu_assimile_salaire = simulation.calculate('revenu_assimile_salaire', period)\n rag = simulation.calculate('rag', period)\n ric = simulation.calculate('ric', period)\n rnc = simulation.calculate('rnc', period)\n\n return period, revenu_assimile_salaire + rag + ric + rnc\n", "input_variables": ["rnc", "rag", "ric", "revenu_assimile_salaire"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Revenu disponible du m\u00e9nage", "line_number": 71, "module": "mesures", "name": "revdisp", "url": "http://fr.wikipedia.org/wiki/Revenu_disponible", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu disponible - m\u00e9nage\n'men'", "line_number": 77, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Revenu disponible - m\u00e9nage\n 'men'\n '''\n period = period.start.period('year').offset('first-of')\n rev_trav_holder = simulation.compute('rev_trav', period)\n pen_holder = simulation.compute('pen', period)\n rev_cap_holder = simulation.compute('rev_cap', period)\n psoc_holder = simulation.compute('psoc', period)\n ppe_holder = simulation.compute('ppe', period)\n impo = simulation.calculate('impo', period)\n\n pen = self.sum_by_entity(pen_holder)\n ppe = self.cast_from_entity_to_role(ppe_holder, role = VOUS)\n ppe = self.sum_by_entity(ppe)\n psoc = self.cast_from_entity_to_role(psoc_holder, role = CHEF)\n psoc = self.sum_by_entity(psoc)\n rev_cap = self.sum_by_entity(rev_cap_holder)\n rev_trav = self.sum_by_entity(rev_trav_holder)\n\n return period, rev_trav + pen + rev_cap + psoc + ppe + impo\n", "input_variables": ["ppe", "rev_trav", "rev_cap", "pen", "psoc", "impo"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu initial de l'individu", "line_number": 157, "module": "mesures", "name": "revenu_initial_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 162, "module": "mesures", "source": "def function(self, simulation, period):\n period = period.this_year\n cotisations_employeur_contributives = simulation.calculate('cotisations_employeur_contributives', period)\n cotisations_salariales_contributives = simulation.calculate('cotisations_salariales_contributives', period)\n pen = simulation.calculate('pen', period)\n rev_cap = simulation.calculate('rev_cap', period)\n rev_trav = simulation.calculate('rev_trav', period)\n\n return period, (rev_trav + pen + rev_cap - cotisations_employeur_contributives -\n cotisations_salariales_contributives)\n", "input_variables": ["cotisations_employeur_contributives", "rev_trav", "pen", "rev_cap", "cotisations_salariales_contributives"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu net de l'individu", "line_number": 118, "module": "mesures", "name": "revenu_net_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 123, "module": "mesures", "source": "def function(self, simulation, period):\n period = period.this_year\n pen = simulation.calculate('pen', period)\n rev_cap = simulation.calculate('rev_cap', period)\n rev_trav = simulation.calculate('rev_trav', period)\n\n return period, pen + rev_cap + rev_trav\n", "input_variables": ["rev_trav", "pen", "rev_cap"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Revenu initial du m\u00e9nage", "line_number": 174, "module": "mesures", "name": "revini", "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 174, "module": "mesures", "source": "class revini(PersonToEntityColumn):\n entity_class = Menages\n label = u\"Revenu initial du m\u00e9nage\"\n operation = 'add'\n variable = revenu_initial_individu\n", "input_variables": ["revenu_initial_individu"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Revenu net du m\u00e9nage", "line_number": 132, "module": "mesures", "name": "revnet", "url": "(u'http://impotsurlerevenu.org/definitions/115-revenu-net-imposable.php',)", "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 132, "module": "mesures", "source": "class revnet(PersonToEntityColumn):\n entity_class = Menages\n label = u\"Revenu net du m\u00e9nage\"\n operation = 'add'\n url = u\"http://impotsurlerevenu.org/definitions/115-revenu-net-imposable.php\",\n variable = revenu_net_individu\n", "input_variables": ["revenu_net_individu"]}}, {"@type": "Integer", "default": 0, "entity": "menages", "label": "Type de m\u00e9nage", "line_number": 36, "module": "mesures", "name": "typ_men", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "type de menage\n'men'\nTODO: prendre les enfants du m\u00e9nage et non ceux de la famille", "line_number": 41, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n type de menage\n 'men'\n TODO: prendre les enfants du m\u00e9nage et non ceux de la famille\n '''\n period = period.this_year\n en_couple_holder = simulation.compute('en_couple', period)\n af_nbenf_holder = simulation.compute('af_nbenf', period)\n\n af_nbenf = self.cast_from_entity_to_role(af_nbenf_holder, role = CHEF)\n af_nbenf = self.sum_by_entity(af_nbenf)\n isole = not_(self.cast_from_entity_to_role(en_couple_holder, role = CHEF))\n isole = self.sum_by_entity(isole)\n\n _0_kid = af_nbenf == 0\n _1_kid = af_nbenf == 1\n _2_kid = af_nbenf == 2\n _3_kid = af_nbenf >= 3\n\n return period, (0 * (isole & _0_kid) + # C\u00e9libataire\n 1 * (not_(isole) & _0_kid) + # Couple sans enfants\n 2 * (not_(isole) & _1_kid) + # Couple un enfant\n 3 * (not_(isole) & _2_kid) + # Couple deux enfants\n 4 * (not_(isole) & _3_kid) + # Couple trois enfants et plus\n 5 * (isole & _1_kid) + # Famille monoparentale un enfant\n 6 * (isole & _2_kid) + # Famille monoparentale deux enfants\n 7 * (isole & _3_kid)) # Famille monoparentale trois enfants et plus\n", "input_variables": ["en_couple", "af_nbenf"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Unit\u00e9s de consommation", "line_number": 10, "module": "mesures", "name": "uc", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le nombre d'unit\u00e9s de consommation du m\u00e9nage avec l'\u00e9chelle de l'insee\n'men'", "line_number": 15, "module": "mesures", "source": "def function(self, simulation, period):\n '''\n Calcule le nombre d'unit\u00e9s de consommation du m\u00e9nage avec l'\u00e9chelle de l'insee\n 'men'\n '''\n period = period.this_year\n age_en_mois_holder = simulation.compute('age_en_mois', period)\n\n age_en_mois = self.split_by_roles(age_en_mois_holder)\n\n uc_adt = 0.5\n uc_enf = 0.3\n uc = 0.5\n for agm in age_en_mois.itervalues():\n age = floor(agm / 12)\n adt = (15 <= age) & (age <= 150)\n enf = (0 <= age) & (age <= 14)\n uc += adt * uc_adt + enf * uc_enf\n return period, uc\n", "input_variables": ["age_en_mois"]}}, {"@type": "Enumeration", "default": "4", "entity": "individus", "label": "Activit\u00e9", "line_number": 69, "module": "demographie", "name": "activite", "labels": {"0": "Actif occup\u00e9", "1": "Ch\u00f4meur", "2": "\u00c9tudiant, \u00e9l\u00e8ve", "3": "Retrait\u00e9", "4": "Autre inactif"}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant adopt\u00e9", "line_number": 56, "module": "demographie", "name": "adoption"}, {"@type": "Boolean", "cerfa_field": "E", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Situation pouvant donner droit \u00e0 une demi-part suppl\u00e9mentaire : vous vivez seul au 1er janvier de l'ann\u00e9e de perception des revenus et vous avez \u00e9lev\u00e9 un enfant pendant moins de 5 ans durant la p\u00e9riode o\u00f9 vous viviez seul", "line_number": 122, "module": "demographie", "name": "caseE"}, {"@type": "Boolean", "cerfa_field": "F", "default": false, "entity": "foyers_fiscaux", "label": "Situation pouvant donner droit \u00e0 une demi-part suppl\u00e9mentaire : conjoint titulaire d'une pension ou d'une carte d'invalidit\u00e9 (vivant ou d\u00e9c\u00e9d\u00e9 l'ann\u00e9e de perception des revenus)", "line_number": 130, "module": "demographie", "name": "caseF"}, {"@type": "Boolean", "cerfa_field": "G", "default": false, "entity": "foyers_fiscaux", "label": "Titulaire d'une pension de veuve de guerre", "line_number": 137, "module": "demographie", "name": "caseG"}, {"@type": "Integer", "cerfa_field": "H", "default": 0, "entity": "foyers_fiscaux", "label": "Ann\u00e9e de naissance des enfants \u00e0 charge en garde altern\u00e9e", "line_number": 144, "module": "demographie", "name": "caseH"}, {"@type": "Boolean", "cerfa_field": "K", "default": false, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Situation pouvant donner droit \u00e0 une demi-part suppl\u00e9mentaire: vous avez eu un enfant d\u00e9c\u00e9d\u00e9 apr\u00e8s l\u2019\u00e2ge de 16 ans ou par suite de faits de guerre", "line_number": 157, "module": "demographie", "name": "caseK"}, {"@type": "Boolean", "cerfa_field": "L", "default": false, "entity": "foyers_fiscaux", "label": "Situation pouvant donner droit \u00e0 une demi-part suppl\u00e9mentaire: vous vivez seul au 1er janvier de l'ann\u00e9e de perception des revenus et vous avez \u00e9lev\u00e9 un enfant pendant au moins 5 ans durant la p\u00e9riode o\u00f9 vous viviez seul", "line_number": 166, "module": "demographie", "name": "caseL"}, {"@type": "Boolean", "cerfa_field": "N", "default": false, "entity": "foyers_fiscaux", "label": "Vous ne viviez pas seul au 1er janvier de l'ann\u00e9e de perception des revenus", "line_number": 174, "module": "demographie", "name": "caseN"}, {"@type": "Boolean", "cerfa_field": "P", "default": false, "entity": "foyers_fiscaux", "label": "Titulaire d'une pension pour une invalidit\u00e9 d'au moins 40 % ou d'une carte d'invalidit\u00e9 d'au moins 80%", "line_number": 181, "module": "demographie", "name": "caseP"}, {"@type": "Boolean", "cerfa_field": "S", "default": false, "entity": "foyers_fiscaux", "label": "Vous \u00eates mari\u00e9s/pacs\u00e9s et l'un des deux d\u00e9clarants \u00e2g\u00e9 de plus de 75 ans est titulaire de la carte du combattant ou d'une pension militaire d'invalidit\u00e9 ou de victime de guerre", "line_number": 188, "module": "demographie", "name": "caseS"}, {"@type": "Boolean", "cerfa_field": "T", "default": false, "entity": "foyers_fiscaux", "label": "Vous \u00eates parent isol\u00e9 au 1er janvier de l'ann\u00e9e de perception des revenus", "line_number": 196, "module": "demographie", "name": "caseT"}, {"@type": "Boolean", "cerfa_field": "W", "default": false, "entity": "foyers_fiscaux", "label": "Vous ou votre conjoint (m\u00eame s'il est d\u00e9c\u00e9d\u00e9), \u00e2g\u00e9s de plus de 75 ans, \u00eates titulaire de la carte du combattant ou d'une pension militaire d'invalidit\u00e9 ou de victime de guerre", "line_number": 204, "module": "demographie", "name": "caseW"}, {"@type": "Date", "default": "1970-01-01", "entity": "individus", "label": "Date de naissance", "line_number": 47, "module": "demographie", "name": "date_naissance", "val_type": "date"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Dur\u00e9e depuis laquelle l'individu poss\u00e8de un titre de s\u00e9jour (en ann\u00e9es)", "line_number": 301, "module": "demographie", "name": "duree_possession_titre_sejour"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Indicatrice de vie en couple", "line_number": 253, "module": "demographie", "name": "en_couple", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "en_couple = 1 si vie en couple TODO: pas tr\u00e8s heureux", "line_number": 258, "module": "demographie", "source": "def function(self, simulation, period):\n '''\n en_couple = 1 si vie en couple TODO: pas tr\u00e8s heureux\n '''\n # Note : Cette variable est \"instantan\u00e9e\" : quelque soit la p\u00e9riode demand\u00e9e, elle retourne la valeur au premier\n # jour, sans changer la p\u00e9riode.\n nb_parents = simulation.calculate('nb_parents', period)\n\n return period, nb_parents == 2\n", "input_variables": ["nb_parents"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Est enceinte", "line_number": 84, "module": "demographie", "name": "enceinte"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant plac\u00e9 en structure sp\u00e9cialis\u00e9e ou famille d'accueil", "line_number": 306, "module": "demographie", "name": "enfant_place"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Indique qe l'individu est un enfant dans une famille", "line_number": 269, "module": "demographie", "name": "est_enfant_dans_famille", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 274, "module": "demographie", "source": "def function(self, simulation, period):\n quifam = simulation.calculate('quifam', period)\n return period, quifam > PART\n", "input_variables": ["quifam"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Indicatrice individuelle \u00e9tudiant", "line_number": 279, "module": "demographie", "name": "etudiant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 284, "module": "demographie", "source": "def function(self, simulation, period):\n # Note : Cette variable est \"instantan\u00e9e\" : quelque soit la p\u00e9riode demand\u00e9e, elle retourne la valeur au premier\n # jour, sans changer la p\u00e9riode.\n activite = simulation.calculate('activite', period)\n\n return period, activite == 2\n", "input_variables": ["activite"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant en garde altern\u00e9e", "line_number": 63, "module": "demographie", "name": "garde_alternee"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Individu en situation de handicap", "line_number": 212, "module": "demographie", "name": "handicap"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Identifiant de la famille", "line_number": 20, "module": "demographie", "name": "idfam"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Identifiant du foyer", "line_number": 13, "module": "demographie", "name": "idfoy"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Identifiant du m\u00e9nage", "line_number": 6, "module": "demographie", "name": "idmen"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Individu titulaire d'une carte d'invalidit\u00e9", "line_number": 217, "module": "demographie", "name": "invalidite"}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 237, "module": "demographie", "name": "maries", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "couple = 1 si couple mari\u00e9 sinon 0 TODO: faire un choix avec couple ?", "line_number": 242, "module": "demographie", "source": "def function(self, simulation, period):\n \"\"\"couple = 1 si couple mari\u00e9 sinon 0 TODO: faire un choix avec couple ?\"\"\"\n # Note : Cette variable est \"instantan\u00e9e\" : quelque soit la p\u00e9riode demand\u00e9e, elle retourne la valeur au premier\n # jour, sans changer la p\u00e9riode.\n statut_marital_holder = simulation.compute('statut_marital', period)\n\n statut_marital = self.filter_role(statut_marital_holder, role = CHEF)\n\n return period, statut_marital == 1\n", "input_variables": ["statut_marital"]}}, {"@type": "Integer", "cerfa_field": "N", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants mari\u00e9s/pacs\u00e9s et d'enfants non mari\u00e9s charg\u00e9s de famille", "line_number": 107, "module": "demographie", "name": "nbN"}, {"@type": "Integer", "cerfa_field": "R", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre de titulaires (autres que les enfants) de la carte invalidit\u00e9 d'au moins 80 %", "line_number": 114, "module": "demographie", "name": "nbR"}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre d'adultes (parents) dans la famille", "line_number": 222, "module": "demographie", "name": "nb_parents", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 227, "module": "demographie", "source": "def function(self, simulation, period):\n # Note : Cette variable est \"instantan\u00e9e\" : quelque soit la p\u00e9riode demand\u00e9e, elle retourne la valeur au premier\n # jour, sans changer la p\u00e9riode.\n quifam_holder = simulation.compute('quifam', period)\n\n quifam = self.filter_role(quifam_holder, role = PART)\n\n return period, 1 + 1 * (quifam == PART)\n", "input_variables": ["quifam"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "line_number": 40, "module": "demographie", "name": "quifam", "labels": {"0": "chef", "1": "part", "2": "enf1", "3": "enf2", "4": "enf3", "5": "enf4", "6": "enf5", "7": "enf6", "8": "enf7", "9": "enf8", "10": "enf9"}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "line_number": 34, "module": "demographie", "name": "quifoy", "labels": {"0": "vous", "1": "conj", "2": "pac1", "3": "pac2", "4": "pac3", "5": "pac4", "6": "pac5", "7": "pac6", "8": "pac7", "9": "pac8", "10": "pac9"}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "line_number": 28, "module": "demographie", "name": "quimen", "labels": {"0": "pref", "1": "cref", "2": "enf1", "3": "enf2", "4": "enf3", "5": "enf4", "6": "enf5", "7": "enf6", "8": "enf7", "9": "enf8", "10": "enf9"}}, {"@type": "Boolean", "default": true, "entity": "individus", "label": "Rempli l'obligation scolaire", "line_number": 291, "module": "demographie", "name": "rempli_obligation_scolaire"}, {"@type": "Boolean", "default": true, "entity": "individus", "label": "Ressortissant de l'EEE ou de la Suisse.", "line_number": 296, "module": "demographie", "name": "ressortissant_eee"}, {"@type": "Enumeration", "default": "2", "entity": "individus", "label": "Statut marital", "line_number": 92, "module": "demographie", "name": "statut_marital", "labels": {"1": "Mari\u00e9", "2": "C\u00e9libataire", "3": "Divorc\u00e9", "4": "Veuf", "5": "Pacs\u00e9", "6": "Jeune veuf"}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Charges locatives", "line_number": 49, "module": "logement", "name": "charges_locatives"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Vie en colocation", "line_number": 10, "module": "logement", "name": "coloc"}, {"@type": "String", "default": "", "entity": "menages", "label": "Code INSEE (depcom) du lieu de r\u00e9sidence", "line_number": 38, "module": "logement", "name": "depcom"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Le logement est consid\u00e9r\u00e9 comme une chambre", "line_number": 21, "module": "logement", "name": "logement_chambre"}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Loyer ou mensualit\u00e9 d'emprunt pour un primo-acc\u00e9dant", "line_number": 28, "module": "logement", "name": "loyer"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Zone apl de la personne", "line_number": 34, "module": "logement", "name": "loyer_individu", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 34, "module": "logement", "source": "class loyer_individu(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Zone apl de la personne\"\n variable = loyer\n", "input_variables": ["loyer"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Zone apl de la famille", "line_number": 43, "module": "logement", "name": "loyer_famille", "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 43, "module": "logement", "source": "class loyer_famille(PersonToEntityColumn):\n entity_class = Familles\n label = u\"Zone apl de la famille\"\n role = CHEF\n variable = loyer_individu\n", "input_variables": ["loyer_individu"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Le propri\u00e9taire du logement a un lien de parent\u00e9 avec la personne de r\u00e9f\u00e9rence ou son conjoint", "line_number": 55, "module": "logement", "name": "proprietaire_proche_famille"}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 80, "module": "logement", "name": "residence_dom", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 84, "module": "logement", "source": "def function(self, simulation, period):\n residence_guadeloupe = simulation.calculate('residence_guadeloupe', period)\n residence_martinique = simulation.calculate('residence_martinique', period)\n residence_guyane = simulation.calculate('residence_guyane', period)\n residence_reunion = simulation.calculate('residence_reunion', period)\n residence_mayotte = simulation.calculate('residence_mayotte', period)\n return period, or_(or_(residence_guadeloupe, residence_martinique), or_(or_(residence_reunion, residence_guyane), residence_mayotte))\n", "input_variables": ["residence_guadeloupe", "residence_guyane", "residence_reunion", "residence_martinique", "residence_mayotte"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 93, "module": "logement", "name": "residence_guadeloupe", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 97, "module": "logement", "source": "def function(self, simulation, period):\n depcom_holder = simulation.compute('depcom', period)\n\n depcom = self.cast_from_entity_to_roles(depcom_holder)\n depcom = self.filter_role(depcom, role = CHEF)\n return period, startswith(depcom, '971')\n", "input_variables": ["depcom"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 117, "module": "logement", "name": "residence_guyane", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 121, "module": "logement", "source": "def function(self, simulation, period):\n depcom_holder = simulation.compute('depcom', period)\n\n depcom = self.cast_from_entity_to_roles(depcom_holder)\n depcom = self.filter_role(depcom, role = CHEF)\n return period, startswith(depcom, '973')\n", "input_variables": ["depcom"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 105, "module": "logement", "name": "residence_martinique", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 109, "module": "logement", "source": "def function(self, simulation, period):\n depcom_holder = simulation.compute('depcom', period)\n\n depcom = self.cast_from_entity_to_roles(depcom_holder)\n depcom = self.filter_role(depcom, role = CHEF)\n return period, startswith(depcom, '972')\n", "input_variables": ["depcom"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 141, "module": "logement", "name": "residence_mayotte", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 145, "module": "logement", "source": "def function(self, simulation, period):\n depcom_holder = simulation.compute('depcom', period)\n\n depcom = self.cast_from_entity_to_roles(depcom_holder)\n depcom = self.filter_role(depcom, role = CHEF)\n return period, startswith(depcom, '976')\n", "input_variables": ["depcom"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 129, "module": "logement", "name": "residence_reunion", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 133, "module": "logement", "source": "def function(self, simulation, period):\n depcom_holder = simulation.compute('depcom', period)\n\n depcom = self.cast_from_entity_to_roles(depcom_holder)\n depcom = self.filter_role(depcom, role = CHEF)\n return period, startswith(depcom, '974')\n", "input_variables": ["depcom"]}}, {"@type": "Enumeration", "default": "0", "entity": "menages", "label": "Statut d'occupation du logement", "line_number": 62, "module": "logement", "name": "statut_occupation_logement", "labels": {"0": "Non renseign\u00e9", "1": "Acc\u00e9dant \u00e0 la propri\u00e9t\u00e9", "2": "Propri\u00e9taire (non acc\u00e9dant) du logement", "3": "Locataire d'un logement HLM", "4": "Locataire ou sous-locataire d'un logement lou\u00e9 vide non-HLM", "5": "Locataire ou sous-locataire d'un logement lou\u00e9 meubl\u00e9 ou d'une chambre d'h\u00f4tel", "6": "Log\u00e9 gratuitement par des parents, des amis ou l'employeur", "7": "Locataire d'un foyer (r\u00e9sidence universitaire, maison de retraite, foyer de jeune travailleur, r\u00e9sidence sociale...)", "8": "Sans domicile stable"}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 280, "module": "isf", "name": "ass_isf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 285, "module": "isf", "source": "def function(self, simulation, period):\n # TODO: G\u00e9rer les trois option meubles meublants\n period = period.this_year\n isf_imm_bati = simulation.calculate('isf_imm_bati', period)\n isf_imm_non_bati = simulation.calculate('isf_imm_non_bati', period)\n isf_droits_sociaux = simulation.calculate('isf_droits_sociaux', period)\n b1cg = simulation.calculate('b1cg', period)\n b2gh = simulation.calculate('b2gh', period)\n P = simulation.legislation_at(period.start).isf.forf_mob\n\n total = isf_imm_bati + isf_imm_non_bati + isf_droits_sociaux\n forf_mob = (b1cg != 0) * b1cg + (b1cg == 0) * total * P.taux\n actif_brut = total + forf_mob\n return period, actif_brut - b2gh\n", "input_variables": ["b1cg", "isf_droits_sociaux", "isf_imm_bati", "b2gh", "isf_imm_non_bati"]}}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Valeur de la r\u00e9sidence principale avant abattement", "line_number": 12, "module": "isf", "name": "b1ab", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Valeur des autres immeubles avant abattement", "line_number": 18, "module": "isf", "name": "b1ac", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Immeubles non b\u00e2tis : bois, f\u00f4rets et parts de groupements forestiers", "line_number": 26, "module": "isf", "name": "b1bc", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Immeubles non b\u00e2tis : biens ruraux lou\u00e9s \u00e0 long termes", "line_number": 32, "module": "isf", "name": "b1be", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Immeubles non b\u00e2tis : parts de groupements fonciers agricoles et de groupements agricoles fonciers", "line_number": 38, "module": "isf", "name": "b1bh", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Immeubles non b\u00e2tis : autres biens", "line_number": 44, "module": "isf", "name": "b1bk", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Parts et actions de soci\u00e9t\u00e9s avec engagement de conservation de 6 ans minimum", "line_number": 58, "module": "isf", "name": "b1cb", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Droits sociaux de soci\u00e9t\u00e9s dans lesquelles vous exercez une fonction ou une activit\u00e9", "line_number": 64, "module": "isf", "name": "b1cd", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Autres valeurs mobili\u00e8res", "line_number": 70, "module": "isf", "name": "b1ce", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Liquidit\u00e9s", "line_number": 76, "module": "isf", "name": "b1cf", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Autres biens meubles", "line_number": 82, "module": "isf", "name": "b1cg", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Parts et actions d\u00e9tenues par les salari\u00e9s et mandataires sociaux", "line_number": 52, "module": "isf", "name": "b1cl", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Autres biens meubles : contrats d'assurance-vie", "line_number": 89, "module": "isf", "name": "b1co", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Total du passif et autres d\u00e9ductions", "line_number": 103, "module": "isf", "name": "b2gh", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour investissements directs dans une soci\u00e9t\u00e9", "line_number": 111, "module": "isf", "name": "b2mt", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour investissements par soci\u00e9t\u00e9s interpos\u00e9es, holdings", "line_number": 123, "module": "isf", "name": "b2mv", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour investissements par le biais de FIP", "line_number": 135, "module": "isf", "name": "b2mx", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour investissements par le biais de FCPI ou FCPR", "line_number": 141, "module": "isf", "name": "b2na", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour dons \u00e0 certains organismes d'int\u00e9r\u00eat g\u00e9n\u00e9ral", "line_number": 147, "module": "isf", "name": "b2nc", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour investissements directs dans une soci\u00e9t\u00e9", "line_number": 117, "module": "isf", "name": "b2ne", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9ductions pour investissements par soci\u00e9t\u00e9s interpos\u00e9es, holdings", "line_number": 129, "module": "isf", "name": "b2nf", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Montant de l'imp\u00f4t acquitt\u00e9 hors de France", "line_number": 155, "module": "isf", "name": "b4rs", "val_type": "monetary"}, {"@type": "Float", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 781, "module": "isf", "name": "bouclier_fiscal", "start": "2006-01-01", "url": "http://fr.wikipedia.org/wiki/Bouclier_fiscal", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 789, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n bouclier_sumimp = simulation.calculate('bouclier_sumimp', period)\n bouclier_rev = simulation.calculate('bouclier_rev', period)\n P = simulation.legislation_at(period.start).bouclier_fiscal\n\n return period, max_(0, bouclier_sumimp - (bouclier_rev * P.taux))\n", "input_variables": ["bouclier_sumimp", "bouclier_rev"]}}, {"@type": "Float", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 695, "module": "isf", "name": "bouclier_imp_gen", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 702, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n irpp = simulation.calculate('irpp', period)\n taxe_habitation_holder = simulation.compute('taxe_habitation', period)\n tax_fonc = simulation.calculate('tax_fonc', period)\n isf_tot = simulation.calculate('isf_tot', period)\n cotsoc_lib_declarant1_holder = simulation.compute('cotsoc_lib_declarant1', period)\n cotsoc_bar_declarant1_holder = simulation.compute('cotsoc_bar_declarant1', period)\n csg_deductible_salaire_holder = simulation.compute('csg_deductible_salaire', period)\n csg_imposable_salaire_holder = simulation.compute('csg_imposable_salaire', period)\n crds_salaire_holder = simulation.compute('crds_salaire', period)\n csg_imposable_chomage_holder = simulation.compute('csg_imposable_chomage', period)\n csg_deductible_chomage_holder = simulation.compute('csg_deductible_chomage', period)\n csg_deductible_retraite_holder = simulation.compute('csg_deductible_retraite', period)\n csg_imposable_retraite_holder = simulation.compute('csg_imposable_retraite', period)\n imp_lib = simulation.calculate('imp_lib', period)\n\n cotsoc_bar = self.sum_by_entity(cotsoc_bar_declarant1_holder)\n cotsoc_lib = self.sum_by_entity(cotsoc_lib_declarant1_holder)\n crds_salaire = self.sum_by_entity(crds_salaire_holder)\n csg_deductible_chomage = self.sum_by_entity(csg_deductible_chomage_holder)\n csg_imposable_chomage = self.sum_by_entity(csg_imposable_chomage_holder)\n csg_deductible_salaire = self.sum_by_entity(csg_deductible_salaire_holder)\n csg_imposable_salaire = self.sum_by_entity(csg_imposable_salaire_holder)\n csg_deductible_retraite = self.sum_by_entity(csg_deductible_retraite_holder)\n csg_imposable_retraite = self.sum_by_entity(csg_imposable_retraite_holder)\n taxe_habitation = self.cast_from_entity_to_role(taxe_habitation_holder, role = PREF)\n taxe_habitation = self.sum_by_entity(taxe_habitation)\n\n # # ajouter Prel\u00e8vements sources/ lib\u00e9\n # # ajouter crds rstd\n # # imp\u00f4t sur les plus-values immo et cession de fonds de commerce\n imp1 = cotsoc_lib + cotsoc_bar + csg_deductible_salaire + csg_deductible_chomage + crds_salaire + csg_deductible_retraite + imp_lib\n '''\n Imp\u00f4ts pay\u00e9s en l'ann\u00e9e 'n' au titre des revenus r\u00e9alis\u00e9s sur l'ann\u00e9e 'n'\n '''\n imp2 = irpp + isf_tot + taxe_habitation + tax_fonc + csg_imposable_salaire + csg_imposable_chomage + csg_imposable_retraite\n '''\n Imp\u00f4ts pay\u00e9s en l'ann\u00e9e 'n' au titre des revenus r\u00e9alis\u00e9s en 'n-1'\n '''\n return period, imp1 + imp2\n", "input_variables": ["csg_deductible_chomage", "imp_lib", "csg_deductible_salaire", "csg_imposable_salaire", "csg_imposable_chomage", "isf_tot", "crds_salaire", "cotsoc_lib_declarant1", "taxe_habitation", "tax_fonc", "csg_imposable_retraite", "cotsoc_bar_declarant1", "irpp", "csg_deductible_retraite"]}}, {"@type": "Float", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 635, "module": "isf", "name": "bouclier_rev", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Total des revenus sur l'ann\u00e9e 'n' net de charges", "line_number": 642, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Total des revenus sur l'ann\u00e9e 'n' net de charges\n '''\n period = period.this_year\n rbg = simulation.calculate('rbg', period)\n maj_cga = simulation.calculate('maj_cga', period)\n csg_deduc = simulation.calculate('csg_deduc', period)\n rvcm_plus_abat = simulation.calculate('rvcm_plus_abat', period)\n rev_cap_lib = simulation.calculate('rev_cap_lib', period)\n rev_exo = simulation.calculate('rev_exo', period)\n rev_or = simulation.calculate('rev_or', period)\n cd_penali = simulation.calculate('cd_penali', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n\n\n # TODO: r\u00e9int\u00e9grer les d\u00e9ficits ant\u00e9rieur\n # TODO: int\u00e9grer les revenus soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire\n # deficit_ante =\n\n # # Revenus\n frac_rvcm_rfr = 0.7 * rvcm_plus_abat # TODO: UNUSED ?\n # # revenus distribu\u00e9s?\n # # A majorer de l'abatt de 40% - montant brut en cas de PFL\n # # pour le calcul de droit \u00e0 restitution : prendre 0.7*montant_brut_rev_dist_soumis_au_bar\u00e8me\n # rev_bar = rbg - maj_cga - csg_deduc - deficit_ante\n rev_bar = rbg - maj_cga - csg_deduc\n\n# # TODO: AJOUTER : indemnit\u00e9s de fonction percus par les \u00e9lus- revenus soumis \u00e0 r\u00e9gimes sp\u00e9ciaux\n\n # Revenu soumis \u00e0 l'imp\u00f4t sur le revenu forfaitaire\n rev_lib = rev_cap_lib\n # # AJOUTER plus-values immo et moins values?\n\n # #Revenus exon\u00e9r\u00e9s d'IR r\u00e9alis\u00e9s en France et \u00e0 l'\u00e9tranger##\n# rev_exo = primes_pel + primes_cel + rente_pea + int_livrets + plus_values_per\n\n # # proposer \u00e0 l'utilisateur des taux de r\u00e9ference- PER, PEA, PEL,...TODO\n # # sommes investis- calculer les plus_values annuelles et prendre en compte pour rev_exo?\n # revenus soumis \u00e0 la taxe forfaitaire sur les m\u00e9taux pr\u00e9cieux : rev_or\n\n # revenus = rev_bar + rev_lib + rev_exo + rev_or\n revenus = rev_bar + rev_lib + rev_or\n\n # # CHARGES\n # Pension alimentaires\n # Cotisations ou primes vers\u00e9es au titre de l'\u00e9pargne retraite\n\n charges = cd_penali + cd_eparet\n\n return period, revenus - charges\n", "input_variables": ["cd_eparet", "rev_cap_lib", "cd_penali", "rev_exo", "csg_deduc", "rbg", "maj_cga", "rvcm_plus_abat", "rev_or"]}}, {"@type": "Float", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 763, "module": "isf", "name": "bouclier_sumimp", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Somme totale des imp\u00f4ts moins restitutions et degr\u00e8vements", "line_number": 770, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Somme totale des imp\u00f4ts moins restitutions et degr\u00e8vements\n '''\n period = period.this_year\n bouclier_imp_gen = simulation.calculate('bouclier_imp_gen', period)\n restitutions = simulation.calculate('restitutions', period)\n\n return period, -bouclier_imp_gen + restitutions\n", "input_variables": ["bouclier_imp_gen", "restitutions"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9cote de l'ISF", "line_number": 486, "module": "isf", "name": "decote_isf", "start": "2013-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 492, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n ass_isf = simulation.calculate('ass_isf', period)\n P = simulation.legislation_at(period.start).isf.decote\n\n elig = (ass_isf >= P.min) & (ass_isf <= P.max)\n LB = P.base - P.taux * ass_isf\n return period, LB * elig\n", "input_variables": ["ass_isf"]}}, {"@type": "Integer", "default": 0, "entity": "individus", "line_number": 186, "module": "isf", "name": "etr"}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 244, "module": "isf", "name": "isf_actions_sal", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Parts ou actions d\u00e9tenues par les salari\u00e9s et mandataires sociaux", "line_number": 250, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Parts ou actions d\u00e9tenues par les salari\u00e9s et mandataires sociaux\n '''\n period = period.this_year\n b1cl = simulation.calculate('b1cl', period)\n P = simulation.legislation_at(period.start).isf.droits_soc\n\n return period, b1cl * P.taux1\n", "input_variables": ["b1cl"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t sur la fortune apr\u00e8s plafonnement", "line_number": 502, "module": "isf", "name": "isf_apres_plaf", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 508, "module": "isf", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2011, 12, 31))\ndef function_20020101_20111231(self, simulation, period):\n period = period.this_year\n tot_impot = simulation.calculate('tot_impot', period)\n revetproduits = simulation.calculate('revetproduits', period)\n isf_avant_plaf = simulation.calculate('isf_avant_plaf', period)\n P = simulation.legislation_at(period.start).isf.plaf\n\n # si ISF avant plafonnement n'exc\u00e8de pas seuil 1= la limitation du plafonnement ne joue pas\n # si entre les deux seuils; l'all\u00e8gement est limit\u00e9 au 1er seuil\n # si ISF avant plafonnement est sup\u00e9rieur au 2nd seuil, l'all\u00e8gement qui r\u00e9sulte du plafonnement\n # est limit\u00e9 \u00e0 50% de l'ISF\n plafonnement = max_(tot_impot - revetproduits, 0)\n limitationplaf = (\n (isf_avant_plaf <= P.seuil1) * plafonnement +\n (P.seuil1 <= isf_avant_plaf) * (isf_avant_plaf <= P.seuil2) * min_(plafonnement, P.seuil1) +\n (isf_avant_plaf >= P.seuil2) * min_(isf_avant_plaf * P.taux, plafonnement)\n )\n return period, max_(isf_avant_plaf - limitationplaf, 0)\n", "input_variables": ["isf_avant_plaf", "tot_impot", "revetproduits"]}, "stop_instant": "2011-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 528, "module": "isf", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n period = period.this_year\n isf_avant_plaf = simulation.calculate('isf_avant_plaf', period)\n\n # si ISF avant plafonnement n'exc\u00e8de pas seuil 1= la limitation du plafonnement ne joue pas ##\n # si entre les deux seuils; l'all\u00e8gement est limit\u00e9 au 1er seuil ##\n # si ISF avant plafonnement est sup\u00e9rieur au 2nd seuil, l'all\u00e8gement qui r\u00e9sulte du plafonnement\n # est limit\u00e9 \u00e0 50% de l'ISF\n return period, isf_avant_plaf\n", "input_variables": ["isf_avant_plaf", "tot_impot", "revetproduits"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Imp\u00f4t sur la fortune apr\u00e8s plafonnement", "line_number": 539, "module": "isf", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2015, 12, 31))\ndef function_20130101_20151231(self, simulation, period):\n \"\"\"\n Imp\u00f4t sur la fortune apr\u00e8s plafonnement\n \"\"\"\n period = period.this_year\n tot_impot = simulation.calculate('tot_impot', period)\n revetproduits = simulation.calculate('revetproduits', period)\n isf_avant_plaf = simulation.calculate('isf_avant_plaf', period)\n\n plafond = max_(0, tot_impot - revetproduits) # case PU sur la d\u00e9claration d'imp\u00f4t\n return period, max_(isf_avant_plaf - plafond, 0)\n", "input_variables": ["isf_avant_plaf", "tot_impot", "revetproduits"]}, "stop_instant": "2015-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 395, "module": "isf", "name": "isf_avant_plaf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Montant de l'imp\u00f4t avant plafonnement", "line_number": 400, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Montant de l'imp\u00f4t avant plafonnement\n '''\n period = period.this_year\n isf_avant_reduction = simulation.calculate('isf_avant_reduction', period)\n isf_inv_pme = simulation.calculate('isf_inv_pme', period)\n isf_org_int_gen = simulation.calculate('isf_org_int_gen', period)\n isf_reduc_pac = simulation.calculate('isf_reduc_pac', period)\n borne_max = simulation.legislation_at(period.start).isf.pme.max\n\n return period, max_(0, isf_avant_reduction - min_(isf_inv_pme + isf_org_int_gen, borne_max) - isf_reduc_pac)\n", "input_variables": ["isf_avant_reduction", "isf_org_int_gen", "isf_inv_pme", "isf_reduc_pac"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 325, "module": "isf", "name": "isf_avant_reduction", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 330, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n isf_iai = simulation.calculate('isf_iai', period)\n decote_isf = simulation.calculate('decote_isf', period)\n\n return period, isf_iai - decote_isf\n", "input_variables": ["decote_isf", "isf_iai"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 261, "module": "isf", "name": "isf_droits_sociaux", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 266, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n isf_actions_sal = simulation.calculate('isf_actions_sal', period)\n b1cb = simulation.calculate('b1cb', period)\n b1cd = simulation.calculate('b1cd', period)\n b1ce = simulation.calculate('b1ce', period)\n b1cf = simulation.calculate('b1cf', period)\n b1cg = simulation.calculate('b1cg', period)\n P = simulation.legislation_at(period.start).isf.droits_soc\n\n b1cc = b1cb * P.taux2\n return period, isf_actions_sal + b1cc + b1cd + b1ce + b1cf + b1cg\n", "input_variables": ["b1cf", "b1cg", "b1cd", "b1ce", "b1cb", "isf_actions_sal"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 304, "module": "isf", "name": "isf_iai", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 309, "module": "isf", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2010, 12, 31))\ndef function_20020101_20101231(self, simulation, period):\n period = period.this_year\n ass_isf = simulation.calculate('ass_isf', period)\n bareme = simulation.legislation_at(period.start).isf.bareme\n return period, bareme.calc(ass_isf)\n", "input_variables": ["ass_isf"]}, "stop_instant": "2010-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 316, "module": "isf", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2015, 12, 31))\ndef function_20110101_20151231(self, simulation, period):\n period = period.this_year\n ass_isf = simulation.calculate('ass_isf', period)\n bareme = simulation.legislation_at(period.start).isf.bareme\n ass_isf = (ass_isf >= bareme.rates[1]) * ass_isf\n return period, bareme.calc(ass_isf)\n", "input_variables": ["ass_isf"]}, "stop_instant": "2015-12-31", "start_instant": "2011-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 197, "module": "isf", "name": "isf_imm_bati", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Immeubles b\u00e2tis", "line_number": 202, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Immeubles b\u00e2tis\n '''\n period = period.this_year\n b1ab = simulation.calculate('b1ab', period)\n b1ac = simulation.calculate('b1ac', period)\n P = simulation.legislation_at(period.start).isf.res_princ\n\n return period, (1 - P.taux) * b1ab + b1ac\n", "input_variables": ["b1ab", "b1ac"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 214, "module": "isf", "name": "isf_imm_non_bati", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Immeubles non b\u00e2tis", "line_number": 219, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Immeubles non b\u00e2tis\n '''\n period = period.this_year\n b1bc = simulation.calculate('b1bc', period)\n b1be = simulation.calculate('b1be', period)\n b1bh = simulation.calculate('b1bh', period)\n b1bk = simulation.calculate('b1bk', period)\n P = simulation.legislation_at(period.start).isf.nonbat\n\n # for\u00eats\n b1bd = b1bc * P.taux_f\n # bien ruraux lou\u00e9s \u00e0 long terme\n b1bf = min_(b1be, P.seuil) * P.taux_r1\n b1bg = max_(b1be - P.seuil, 0) * P.taux_r2\n # part de groupements forestiers- agricoles fonciers\n b1bi = min_(b1bh, P.seuil) * P.taux_r1\n b1bj = max_(b1bh - P.seuil, 0) * P.taux_r2\n return period, b1bd + b1bf + b1bg + b1bi + b1bj + b1bk\n", "input_variables": ["b1bh", "b1bc", "b1be", "b1bk"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 355, "module": "isf", "name": "isf_inv_pme", "start": "2008-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "R\u00e9ductions pour investissements dans les PME\n\u00e0 partir de 2008!", "line_number": 361, "module": "isf", "source": "def function(self, simulation, period):\n '''\n R\u00e9ductions pour investissements dans les PME\n \u00e0 partir de 2008!\n '''\n period = period.this_year\n b2mt = simulation.calculate('b2mt', period)\n b2ne = simulation.calculate('b2ne', period)\n b2mv = simulation.calculate('b2mv', period)\n b2nf = simulation.calculate('b2nf', period)\n b2mx = simulation.calculate('b2mx', period)\n b2na = simulation.calculate('b2na', period)\n P = simulation.legislation_at(period.start).isf.pme\n\n inv_dir_soc = b2mt * P.taux2 + b2ne * P.taux1\n holdings = b2mv * P.taux2 + b2nf * P.taux1\n fip = b2mx * P.taux1\n fcpi = b2na * P.taux1\n return period, holdings + fip + fcpi + inv_dir_soc\n", "input_variables": ["b2mv", "b2mt", "b2mx", "b2na", "b2nf", "b2ne"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 382, "module": "isf", "name": "isf_org_int_gen", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 387, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n b2nc = simulation.calculate('b2nc', period)\n P = simulation.legislation_at(period.start).isf.pme\n\n return period, b2nc * P.taux2\n", "input_variables": ["b2nc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 338, "module": "isf", "name": "isf_reduc_pac", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "R\u00e9ductions pour personnes \u00e0 charges", "line_number": 343, "module": "isf", "source": "def function(self, simulation, period):\n '''\n R\u00e9ductions pour personnes \u00e0 charges\n '''\n period = period.this_year\n nb_pac = simulation.calculate('nb_pac', period)\n nbH = simulation.calculate('nbH', period)\n P = simulation.legislation_at(period.start).isf.reduc_pac\n\n return period, P.reduc_1 * nb_pac + P.reduc_2 * nbH\n", "input_variables": ["nbH", "nb_pac"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 553, "module": "isf", "name": "isf_tot", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_isf&espId=1&impot=ISF&sfid=50", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 559, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n b4rs = simulation.calculate('b4rs', period)\n isf_avant_plaf = simulation.calculate('isf_avant_plaf', period)\n isf_apres_plaf = simulation.calculate('isf_apres_plaf', period)\n irpp = simulation.calculate('irpp', period)\n\n return period, min_(-((isf_apres_plaf - b4rs) * ((-irpp) > 0) + (isf_avant_plaf - b4rs) * ((-irpp) <= 0)), 0)\n", "input_variables": ["isf_apres_plaf", "isf_avant_plaf", "b4rs", "irpp"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Majoration pour non adh\u00e9sion \u00e0 un centre de gestion agr\u00e9\u00e9 (pour chaque individu du foyer)", "line_number": 591, "module": "isf", "name": "maj_cga_individu", "formula": {"@type": "SimpleFormula", "comments": "# TODO: \u00e0 reint\u00e9grer dans irpp (et v\u00e9rifier au passage que frag_impo est dans la majo_cga\n", "doc": null, "line_number": 597, "module": "isf", "source": "def function(self, simulation, period):\n period = period.this_year\n frag_impo = simulation.calculate('frag_impo', period)\n nrag_impg = simulation.calculate('nrag_impg', period)\n nbic_impn = simulation.calculate('nbic_impn', period)\n nbic_imps = simulation.calculate('nbic_imps', period)\n nbic_defn = simulation.calculate('nbic_defn', period)\n nbic_defs = simulation.calculate('nbic_defs', period)\n nacc_impn = simulation.calculate('nacc_impn', period)\n nacc_meup = simulation.calculate('nacc_meup', period)\n nacc_defn = simulation.calculate('nacc_defn', period)\n nacc_defs = simulation.calculate('nacc_defs', period)\n nbnc_impo = simulation.calculate('nbnc_impo', period)\n nbnc_defi = simulation.calculate('nbnc_defi', period)\n P = simulation.legislation_at(period.start).ir.rpns\n\n nbic_timp = (nbic_impn + nbic_imps) - (nbic_defn + nbic_defs)\n\n # C revenus industriels et commerciaux non professionnels\n # (revenus accesoires du foyers en nomenclature INSEE)\n nacc_timp = max_(0, (nacc_impn + nacc_meup) - (nacc_defn + nacc_defs))\n\n # r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e ne b\u00e9n\u00e9ficiant pas de l'abattement association agr\u00e9\u00e9e\n nbnc_timp = nbnc_impo - nbnc_defi\n\n # Totaux\n ntimp = nrag_impg + nbic_timp + nacc_timp + nbnc_timp\n\n return period, max_(0, P.cga_taux2 * (ntimp + frag_impo))\n", "input_variables": ["nacc_defn", "nacc_impn", "nrag_impg", "nbnc_defi", "nbic_defs", "nacc_meup", "frag_impo", "nbic_defn", "nbic_imps", "nbnc_impo", "nacc_defs", "nbic_impn"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Majoration pour non adh\u00e9sion \u00e0 un centre de gestion agr\u00e9\u00e9", "line_number": 628, "module": "isf", "name": "maj_cga", "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 628, "module": "isf", "source": "class maj_cga(PersonToEntityColumn):\n entity_class = FoyersFiscaux\n label = u\"Majoration pour non adh\u00e9sion \u00e0 un centre de gestion agr\u00e9\u00e9\"\n operation = 'add'\n variable = maj_cga_individu\n", "input_variables": ["maj_cga_individu"]}}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "line_number": 181, "module": "isf", "name": "restit_imp", "val_type": "monetary"}, {"@type": "Float", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 745, "module": "isf", "name": "restitutions", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Restitutions d'imp\u00f4t sur le revenu et degr\u00e8vements percus en l'ann\u00e9e 'n'", "line_number": 752, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Restitutions d'imp\u00f4t sur le revenu et degr\u00e8vements percus en l'ann\u00e9e 'n'\n '''\n period = period.this_year\n ppe = simulation.calculate('ppe', period)\n restit_imp = simulation.calculate('restit_imp', period)\n\n return period, ppe + restit_imp\n", "input_variables": ["restit_imp", "ppe"]}}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "line_number": 169, "module": "isf", "name": "rev_exo", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "line_number": 164, "module": "isf", "name": "rev_or", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus et produits per\u00e7us (avant abattement)", "line_number": 444, "module": "isf", "name": "revetproduits", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Utilis\u00e9 pour calculer le montant du plafonnement de l'ISF\nCf.\nhttp://www.impots.gouv.fr/portal/deploiement/p1/fichedescriptiveformulaire_8342/fichedescriptiveformulaire_8342.pdf", "line_number": 449, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Utilis\u00e9 pour calculer le montant du plafonnement de l'ISF\n Cf.\n http://www.impots.gouv.fr/portal/deploiement/p1/fichedescriptiveformulaire_8342/fichedescriptiveformulaire_8342.pdf\n '''\n period = period.this_year\n salcho_imp_holder = simulation.compute('revenu_assimile_salaire_apres_abattements', period)\n pen_net_holder = simulation.compute('revenu_assimile_pension_apres_abattements', period)\n retraite_titre_onereux_net = simulation.calculate('retraite_titre_onereux_net', period)\n rev_cap_bar = simulation.calculate('rev_cap_bar', period)\n fon = simulation.calculate('fon', period)\n ric_holder = simulation.compute('ric', period)\n rag_holder = simulation.compute('rag', period)\n rpns_exon_holder = simulation.compute('rpns_exon', period)\n rpns_pvct_holder = simulation.compute('rpns_pvct', period)\n rev_cap_lib = simulation.calculate('rev_cap_lib', period)\n imp_lib = simulation.calculate('imp_lib', period)\n P = simulation.legislation_at(period.start).isf.plafonnement\n\n revenu_assimile_pension_apres_abattements = self.sum_by_entity(pen_net_holder)\n rag = self.sum_by_entity(rag_holder)\n ric = self.sum_by_entity(ric_holder)\n rpns_exon = self.sum_by_entity(rpns_exon_holder)\n rpns_pvct = self.sum_by_entity(rpns_pvct_holder)\n revenu_assimile_salaire_apres_abattements = self.sum_by_entity(salcho_imp_holder)\n\n # rev_cap et imp_lib pour produits soumis \u00e0 prel lib\u00e9ratoire- check TODO:\n # # def rev_exon et rev_etranger dans data? ##\n pt = max_(\n 0,\n revenu_assimile_salaire_apres_abattements + revenu_assimile_pension_apres_abattements + retraite_titre_onereux_net + rev_cap_bar + rev_cap_lib + ric + rag + rpns_exon +\n rpns_pvct + imp_lib + fon\n )\n return period, pt * P.taux\n", "input_variables": ["revenu_assimile_salaire_apres_abattements", "retraite_titre_onereux_net", "rev_cap_lib", "rag", "imp_lib", "revenu_assimile_pension_apres_abattements", "rpns_pvct", "fon", "rpns_exon", "ric", "rev_cap_bar"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 575, "module": "isf", "name": "rvcm_plus_abat", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu cat\u00e9goriel avec abattement de 40% r\u00e9int\u00e9gr\u00e9.", "line_number": 580, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Revenu cat\u00e9goriel avec abattement de 40% r\u00e9int\u00e9gr\u00e9.\n '''\n period = period.this_year\n rev_cat_rvcm = simulation.calculate('rev_cat_rvcm', period)\n rfr_rvcm = simulation.calculate('rfr_rvcm', period)\n\n return period, rev_cat_rvcm + rfr_rvcm\n", "input_variables": ["rev_cat_rvcm", "rfr_rvcm"]}}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Taxe fonci\u00e8re", "line_number": 175, "module": "isf", "name": "tax_fonc", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 415, "module": "isf", "name": "tot_impot", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Total des imp\u00f4ts dus au titre des revenus et produits (irpp, cehr, pl, pr\u00e9l\u00e8vements sociaux) + ISF\nUtilis\u00e9 pour calculer le montant du plafonnement de l'ISF", "line_number": 420, "module": "isf", "source": "def function(self, simulation, period):\n '''\n Total des imp\u00f4ts dus au titre des revenus et produits (irpp, cehr, pl, pr\u00e9l\u00e8vements sociaux) + ISF\n Utilis\u00e9 pour calculer le montant du plafonnement de l'ISF\n '''\n period = period.this_year\n irpp = simulation.calculate('irpp', period)\n isf_avant_plaf = simulation.calculate('isf_avant_plaf', period)\n crds_holder = simulation.compute('crds', period)\n csg_holder = simulation.compute('csg', period)\n prelsoc_cap_holder = simulation.compute('prelsoc_cap', period)\n\n crds = self.split_by_roles(crds_holder, roles = [VOUS, CONJ])\n csg = self.split_by_roles(csg_holder, roles = [VOUS, CONJ])\n prelsoc_cap = self.split_by_roles(prelsoc_cap_holder, roles = [VOUS, CONJ])\n\n return period, (-irpp + isf_avant_plaf -\n (crds[VOUS] + crds[CONJ]) - (csg[VOUS] + csg[CONJ]) - (prelsoc_cap[VOUS] + prelsoc_cap[CONJ])\n )\n", "input_variables": ["crds", "isf_avant_plaf", "csg", "irpp", "prelsoc_cap"]}}, {"@type": "Boolean", "default": true, "entity": "menages", "label": "Exon\u00e9ration de la taxe d'habitation", "line_number": 10, "module": "taxe_habitation", "name": "exonere_taxe_habitation", "url": "http://vosdroits.service-public.fr/particuliers/F42.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Exonation de la taxe d'habitation\n\n'men'\n\nEligibilit\u00e9:\n- \u00e2g\u00e9 de plus de 60 ans, non soumis \u00e0 l'imp\u00f4t de solidarit\u00e9 sur la fortune (ISF) en n-1\n- veuf quel que soit votre \u00e2ge et non soumis \u00e0 l'imp\u00f4t de solidarit\u00e9 sur la fortune (ISF) n-1\n- titulaire de l'allocation de solidarit\u00e9 aux personnes \u00e2g\u00e9es (Aspa) ou de l'allocation suppl\u00e9mentaire d'invalidit\u00e9 (Asi),\nb\u00e9n\u00e9ficiaire de l'allocation aux adultes handicap\u00e9s (AAH),\natteint d'une infirmit\u00e9 ou d'une invalidit\u00e9 vous emp\u00eachant de subvenir \u00e0 vos besoins par votre travail.", "line_number": 16, "module": "taxe_habitation", "source": "def function(self, simulation, period):\n \"\"\"Exonation de la taxe d'habitation\n\n 'men'\n\n Eligibilit\u00e9:\n - \u00e2g\u00e9 de plus de 60 ans, non soumis \u00e0 l'imp\u00f4t de solidarit\u00e9 sur la fortune (ISF) en n-1\n - veuf quel que soit votre \u00e2ge et non soumis \u00e0 l'imp\u00f4t de solidarit\u00e9 sur la fortune (ISF) n-1\n - titulaire de l'allocation de solidarit\u00e9 aux personnes \u00e2g\u00e9es (Aspa) ou de l'allocation suppl\u00e9mentaire d'invalidit\u00e9 (Asi),\n b\u00e9n\u00e9ficiaire de l'allocation aux adultes handicap\u00e9s (AAH),\n atteint d'une infirmit\u00e9 ou d'une invalidit\u00e9 vous emp\u00eachant de subvenir \u00e0 vos besoins par votre travail.\n \"\"\"\n period = period.start.offset('first-of', 'month').period('year')\n aah_holder = simulation.compute_add('aah', period)\n age_holder = simulation.compute('age', period)\n asi_holder = simulation.compute_add('asi', period)\n aspa_holder = simulation.compute_add('aspa', period)\n isf_tot_holder = simulation.compute('isf_tot', period)\n nbptr_holder = simulation.compute('nbptr', period)\n rfr_holder = simulation.compute('rfr', period)\n statut_marital_holder = simulation.compute('statut_marital', period)\n _P = simulation.legislation_at(period.start)\n\n aah = self.sum_by_entity(aah_holder)\n age = self.filter_role(age_holder, role = PREF)\n asi = self.cast_from_entity_to_roles(asi_holder)\n asi = self.sum_by_entity(asi)\n aspa = self.cast_from_entity_to_roles(aspa_holder)\n aspa = self.sum_by_entity(aspa)\n isf_tot = self.cast_from_entity_to_role(isf_tot_holder, role = VOUS)\n isf_tot = self.sum_by_entity(isf_tot)\n nbptr = self.cast_from_entity_to_role(nbptr_holder, role = VOUS)\n nbptr = self.sum_by_entity(nbptr) # TODO: Beurk\n rfr = self.cast_from_entity_to_role(rfr_holder, role = VOUS)\n rfr = self.sum_by_entity(rfr)\n statut_marital = self.filter_role(statut_marital_holder, role = PREF)\n\n P = _P.cotsoc.gen\n\n seuil_th = P.plaf_th_1 + P.plaf_th_supp * (max_(0, (nbptr - 1) / 2))\n elig = ((age >= 60) + (statut_marital == 4)) * (isf_tot <= 0) * (rfr < seuil_th) + (asi > 0) + (aspa > 0) + (aah > 0)\n return period, not_(elig)\n", "input_variables": ["rfr", "aspa", "isf_tot", "age", "aah", "nbptr", "asi", "statut_marital"], "parameters": ["cotsoc.gen.plaf_th_1", "cotsoc.gen.plaf_th_supp"]}}, {"@type": "Float", "default": 0, "entity": "menages", "label": "Taxe d'habitation", "line_number": 60, "module": "taxe_habitation", "name": "taxe_habitation", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?espId=1&pageId=part_taxe_habitation&impot=TH&sfid=50", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 66, "module": "taxe_habitation", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period('year')\n last_year= period.last_year\n exonere_taxe_habitation = simulation.calculate('exonere_taxe_habitation', period)\n nombre_enfants_a_charge_menage = self.sum_by_entity(simulation.calculate('enfant_a_charge', period))\n nombre_enfants_majeurs_celibataires_sans_enfant = simulation.calculate('nombre_enfants_majeurs_celibataires_sans_enfant', period)\n rfr_holder = simulation.compute('rfr', last_year)\n\n rfr = self.cast_from_entity_to_role(rfr_holder, role = VOUS)\n rfr = self.sum_by_entity(rfr)\n\n\n # Variables TODO: \u00e0 inclure dans la fonction\n valeur_locative_brute = 0\n valeur_locative_moyenne = 0 # d\u00e9ped de la collectivit\u00e9)\n\n # Param\u00e8tres: \u00e0 inclure dans param.xml\n taux_minimal_2_premiers = .1 # minimun depusi 2011\n majoration_2_premiers = 0\n taux_minimal_3_et_plus = .15\n majoration_3_et_plus = 0\n\n abattement_general_base_forfaitaire = 0 # si non nul le taux suivant est nul\n taux_abattement_general_base = .1 # entre 1% et 15% depuis 2011\n\n taux_special_modeste = 0\n seuil_elig_special_modeste = 1.3 # 130 % de la valeur locative moyenne\n seuil_elig_special_modeste_add = .1 # 10% par personne \u00e0 charge en garde exclusive et 5% en garde altenn\u00e9e\n\n taux_special_invalide = .1 # 10% si l'abattement est vot\u00e9 est en vigueur\n\n taux_imposition = .10 # TODO: taux d'imposition vot\u00e9 par les colloc\n\n # abattements pour l'habitation principale\n\n # abattements obligatoires pour charges de famille\n\n # * les enfants du contribuable, de son conjoint ou les enfants recueillis qui sont pris en compte pour le\n # calcul de l\u2019imp\u00f4t sur le revenu (2). Ne sont pas concern\u00e9s ceux pour lesquels le redevable d\u00e9duit de ses\n # revenus imposables une pension alimentaire ;\n pac_enf = nombre_enfants_a_charge_menage + nombre_enfants_majeurs_celibataires_sans_enfant # TODO: inclure ceux du conjoint non pr\u00e9sent sur la feuille d'imp\u00f4t ? gestion des gardes altern\u00e9es\n\n # * les ascendants du contribuable et ceux de son conjoint remplissant les 3 conditions suivantes :\n # \u2013 \u00eatre \u00e2g\u00e9s de plus de 70 ans ou infirmes (c\u2019est-\u00e0-dire ne pouvant subvenir par leur travail aux n\u00e9cessit\u00e9s\n # de l\u2019existence),\n # \u2013 r\u00e9sider avec lui,\n # \u2013 et disposer d\u2019un revenu fiscal de r\u00e9f\u00e9rence pour l\u2019ann\u00e9e pr\u00e9c\u00e9dente n\u2019exc\u00e9dant pas la limite pr\u00e9vue \u00e0\n # l\u2019article 1417-I du CGI (voir page 94).\n\n pac_asc = 0 # TODO\n\n taux_2_premiers = taux_minimal_2_premiers + majoration_2_premiers\n taux_3_et_plus = taux_minimal_3_et_plus + majoration_3_et_plus\n\n abattement_obligatoire = (min_(pac_enf + pac_asc, 2) * taux_2_premiers\n + max_(pac_enf + pac_asc - 2, 0) * taux_3_et_plus) * valeur_locative_moyenne\n\n # abattements facultatifs \u00e0 la base :\n # abattement faculattif g\u00e9n\u00e9ral\n\n abattement_general = abattement_general_base_forfaitaire + taux_abattement_general_base * valeur_locative_moyenne\n\n # abattement facultatif dit sp\u00e9cial en faveur des personnes dont le \u00ab revenu fiscal de r\u00e9f\u00e9rence \u00bb n\u2019exc\u00e8de pas certaines limites\n\n # Il est institu\u00e9 \u00e0 l\u2019initiative des communes et EPCI \u00e0 fiscalit\u00e9 propre ; il est ind\u00e9pendant de l\u2019abattement g\u00e9n\u00e9-\n # ral \u00e0 la base avec lequel il peut se cumuler. Il ne s\u2019applique pas dans les d\u00e9partements d\u2019outre-mer.\n # Son taux peut \u00eatre fix\u00e9, selon la d\u00e9cision des communes et EPCI \u00e0 fiscalit\u00e9 propre qui en d\u00e9cident\n # l\u2019application, \u00e0 une valeur enti\u00e8re comprise entre 1 et 15 % de la valeur locative moyenne des habitations\n # (pour rappel, jusqu\u2019en 2011, les taux pouvaient \u00eatre fix\u00e9s \u00e0 5 %, 10 % ou 15 %)\n #\n # Pour b\u00e9n\u00e9ficier de cet abattement, les contribuables doivent remplir deux conditions :\n\n abattement_special_modeste = (valeur_locative_brute <= ((seuil_elig_special_modeste + seuil_elig_special_modeste_add * (pac_enf + pac_asc)) * valeur_locative_moyenne)\n # ) * (rfr <= 100 # TODO\n ) * taux_special_modeste * valeur_locative_moyenne\n\n # abattement facultatif en faveur des personnes handicap\u00e9es ou invalides.\n abattement_special_invalide = 0 * taux_special_invalide # Tous les habitants doivent \u00eatres invalides\n\n base_nette = valeur_locative_brute - (\n abattement_obligatoire + abattement_general + abattement_special_modeste + abattement_special_invalide)\n\n cotisation_brute = base_nette * taux_imposition\n\n # Frais de gestion\n # FRAIS DE GESTION DE LA\n # FISCALIT\u00c9 DIRECTE LOCALE (art. 1641 du CGI)\n # En contrepartie des frais de confection des\n # r\u00f4les et de d\u00e9gr\u00e8vement qu\u2019il prend \u00e0 sa\n # charge, l\u2019\u00c9tat per\u00e7oit une somme \u00e9gale \u00e0 :\n # - 3 %\n # (1) des cotisations per\u00e7ues au profit\n # des communes et EPCI \u00e0 fiscalit\u00e9 propre,\n # ramen\u00e9e \u00e0 1 % pour les locaux meubl\u00e9s\n # affect\u00e9s \u00e0 l\u2019habitation principale ;\n # - 8 % (2) des cotisations per\u00e7ues au profit\n # des syndicats de communes ;\n # - 9 % (2) des cotisations per\u00e7ues au profit\n # des \u00e9tablissements publics b\u00e9n\u00e9ficiaires de\n # taxes sp\u00e9ciales d\u2019\u00e9quipement (TSE).\n # (1) Dont frais de d\u00e9gr\u00e8vement et de non-valeurs : 2 %.\n # (2) Dont frais de d\u00e9gr\u00e8vement et de non-valeurs : 3,6 %.\n frais_gestion = 0\n\n # Pr\u00e9l\u00e8vement pour base \u00e9lev\u00e9e et sur les r\u00e9sidences secondaires\n prelevement_residence_secondaire = 0 # TODO\n\n\n return period, - exonere_taxe_habitation * 0\n", "input_variables": ["enfant_a_charge", "rfr", "nombre_enfants_majeurs_celibataires_sans_enfant", "exonere_taxe_habitation"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t sur le revenu aff\u00e9rent \u00e0 la plus-value immobili\u00e8re", "line_number": 75, "module": "plus_values_immobilieres", "name": "ir_pv_immo", "url": "http://www.impots.gouv.fr/portal/dgi/public/popup?espId=1&typePage=cpr02&docOid=documentstandard_2157", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Imp\u00f4t sur le revenu aff\u00e9rent \u00e0 la plus-value immobili\u00e8re (CGI, art. 150 U, 150 UC-I et 150 UD)", "line_number": 81, "module": "plus_values_immobilieres", "source": "def function(self, simulation, period):\n \"\"\"\n Imp\u00f4t sur le revenu aff\u00e9rent \u00e0 la plus-value immobili\u00e8re (CGI, art. 150 U, 150 UC-I et 150 UD)\n \"\"\"\n period = period.this_year\n f3vz = simulation.calculate('f3vz', period)\n pv_immo = simulation.legislation_at(period.start).ir.pv_immo\n\n # 61. MONTANT DU PAR LES PERSONNES PHYSIQUES RESIDENTES DE FRANCE OU D\u2019UN AUTRE ETAT MEMBRE DE L\u2019EEE(1)\n # (VOIR TABLEAU PAGE 3).\n # if resident\n impo = pv_immo.taux*f3vz\n# 62. MONTANT DU PAR LES AUTRES NON-RESIDENTS (VOIR TABLEAU PAGE 3 ET REMPLIR PAGE 4 SI NECESSAIRE)\n# IMPOSITION A 33,1/3% DES PERSONNES PHYSIQUES [(LIGNE 50 OU LIGNE 53) X 33,1/3%] = = \u20ac\n# IMPOSITION A 15% OU 19% OU 33,1/3% DES PERSONNES MORALES NON ASSUJETTIES A L\u2019IR, ETABLIES DANS UN ETAT\n# MEMBRE DE L\u2019EEE(1) (LIGNE 300 X 15% OU 19% OU 33,1/3%) = = \u20ac\n#IMPOSITION A 50% DES PERSONNES PHYSIQUES OU MORALES RESIDENTES D\u2019UN ETNC(2)\n#[(LIGNE 50 OU (LIGNE 54 + LIGNE 300)) X 50%] = = \u20ac\n\n#63. ABATTEMENT REPRESENTATIF DU FORFAIT FORESTIER (SI LE CEDANT EST UNE PERSONNE PHYSIQUE RESIDENTE) - \u20ac\n#64. MONTANT DE L\u2019IMPOT DU APRES ABATTEMENT [(LIGNE 61 + LIGNE 62) \u2013 LIGNE 63] = = \u20ac\n#(POUR L\u2019APPLICATION DES PRELEVEMENTS SOCIAUX CI-DESSOUS, CF. TABLEAU \u00ab RAPPEL DES TAUX D\u2019IMPOSITION \u00bb PAGE 5) :\n return period, -impo\n", "input_variables": ["f3vz"]}}, {"@type": "Integer", "default": 1, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "\u00c9ligibilit\u00e9 au cr\u00e9dit d'imp\u00f4t exceptionnel sur les revenus 2008", "line_number": 4262, "module": "variables_reductions_credits", "name": "elig_creimp_exc_2008", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Boolean", "default": false, "end": "2008-01-01", "entity": "individus", "label": "\u00c9ligible au cr\u00e9dit d'imp\u00f4t jeunes", "line_number": 4274, "module": "variables_reductions_credits", "name": "elig_creimp_jeunes", "start": "2005-01-01"}, {"@type": "Boolean", "cerfa_field": "1AR", "default": false, "end": "2080-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9 : le d\u00e9clarant d\u00e9m\u00e9nage \u00e0 plus de 200 km pour son emploi", "line_number": 3886, "module": "variables_reductions_credits", "name": "f1ar"}, {"@type": "Boolean", "cerfa_field": "1BR", "default": false, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9 : le conjoint d\u00e9m\u00e9nage \u00e0 plus de 200 km pour son emploi", "line_number": 3895, "module": "variables_reductions_credits", "name": "f1br"}, {"@type": "Boolean", "cerfa_field": "1CR", "default": false, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9 : la 1\u00e8re personne \u00e0 charge d\u00e9m\u00e9nage \u00e0 plus de 200 km pour son emploi", "line_number": 3904, "module": "variables_reductions_credits", "name": "f1cr"}, {"@type": "Boolean", "cerfa_field": "1DR", "default": false, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9 : la 2\u00e8 personne \u00e0 charge d\u00e9m\u00e9nage \u00e0 plus de 200 km pour son emploi", "line_number": 3913, "module": "variables_reductions_credits", "name": "f1dr"}, {"@type": "Boolean", "cerfa_field": "1ER", "default": false, "end": "2006-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9 : la 3\u00e8 personne \u00e0 charge d\u00e9m\u00e9nage \u00e0 plus de 200 km pour son emploi", "line_number": 3922, "module": "variables_reductions_credits", "name": "f1er"}, {"@type": "Integer", "cerfa_field": "4TQ", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t repr\u00e9sentatif de la taxe additionnelle au droit de bail", "line_number": 3932, "module": "variables_reductions_credits", "name": "f4tq", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'7AC', 1: u'7AE', 2: u'7AG'}", "default": 0, "entity": "individus", "label": "Cotisations syndicales des salari\u00e9es et pensionn\u00e9s", "line_number": 85, "module": "variables_reductions_credits", "name": "f7ac", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CC", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, report de versement de l'ann\u00e9e de perception des revenus -1", "line_number": 2014, "module": "variables_reductions_credits", "name": "f7cc", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CD", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses d'accueil dans un \u00e9tablissement pour personnes \u00e2g\u00e9es d\u00e9pendantes: 1ere personne", "line_number": 214, "module": "variables_reductions_credits", "name": "f7cd", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CE", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses d'accueil dans un \u00e9tablissement pour personnes \u00e2g\u00e9es d\u00e9pendantes: 2\u00e9me personne", "line_number": 222, "module": "variables_reductions_credits", "name": "f7ce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CF", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, petites entreprises en phase de d\u00e9marrage, ou d'expansion", "line_number": 1982, "module": "variables_reductions_credits", "name": "f7cf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CL", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, report de versement de l'ann\u00e9e de perception des revenus -4", "line_number": 1990, "module": "variables_reductions_credits", "name": "f7cl", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CM", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, report de versement de l'ann\u00e9e de perception des revenus -3", "line_number": 1998, "module": "variables_reductions_credits", "name": "f7cm", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CN", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, report de versement de l'ann\u00e9e de perception des revenus -2", "line_number": 2006, "module": "variables_reductions_credits", "name": "f7cn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CQ", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, report de versement de l'ann\u00e9e de perception des revenus -1pour les start-up", "line_number": 2023, "module": "variables_reductions_credits", "name": "f7cq", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7CU", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital des PME non cot\u00e9es, montant vers\u00e9 au titre de souscriptions ant\u00e9rieures", "line_number": 2032, "module": "variables_reductions_credits", "name": "f7cu", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7DB", "default": 0, "entity": "foyers_fiscaux", "label": "Sommes vers\u00e9es pour l'emploi d'un salari\u00e9 \u00e0 domicile par les personnes ayant excerc\u00e9 une activit\u00e9 professionnelle ou ayant \u00e9t\u00e9 demandeur d'emploi l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 98, "module": "variables_reductions_credits", "name": "f7db", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7DF", "default": 0, "entity": "foyers_fiscaux", "label": "Sommes vers\u00e9es pour l'emploi d'un salari\u00e9 \u00e0 domicile par les personnes retrait\u00e9s, ou inactives l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 107, "module": "variables_reductions_credits", "name": "f7df", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "7DG", "default": false, "entity": "foyers_fiscaux", "label": "Vous, votre conjoint ou une personne \u00e0 votre charge \u00e0 une carte d'invalidit\u00e9 d'au moins 80 % l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 124, "module": "variables_reductions_credits", "name": "f7dg"}, {"@type": "Integer", "cerfa_field": "7DL", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'ascendants b\u00e9n\u00e9ficiaires de l'APA, \u00e2g\u00e9s de plus de 65 ans, pour lesquels des d\u00e9penses ont \u00e9t\u00e9 engag\u00e9es l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 132, "module": "variables_reductions_credits", "name": "f7dl"}, {"@type": "Boolean", "cerfa_field": "7DQ", "default": false, "entity": "foyers_fiscaux", "label": "Emploi direct pour la premi\u00e8re fois d'un salari\u00e9 \u00e0 domicile durant l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 115, "module": "variables_reductions_credits", "name": "f7dq", "start": "2009-01-01"}, {"@type": "Integer", "cerfa_field": "7EA", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge poursuivant leurs \u00e9tudes au coll\u00e8ge", "line_number": 280, "module": "variables_reductions_credits", "name": "f7ea"}, {"@type": "Integer", "cerfa_field": "7EB", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge en r\u00e9sidence altern\u00e9e poursuivant leurs \u00e9tudes au coll\u00e8ge", "line_number": 288, "module": "variables_reductions_credits", "name": "f7eb"}, {"@type": "Integer", "cerfa_field": "7EC", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge poursuivant leurs \u00e9tudes au lyc\u00e9e", "line_number": 296, "module": "variables_reductions_credits", "name": "f7ec"}, {"@type": "Integer", "cerfa_field": "7ED", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge en r\u00e9sidence altern\u00e9e poursuivant leurs \u00e9tudes au lyc\u00e9e", "line_number": 304, "module": "variables_reductions_credits", "name": "f7ed"}, {"@type": "Integer", "cerfa_field": "7EF", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge poursuivant leurs \u00e9tudes dans l'enseignement sup\u00e9rieur", "line_number": 312, "module": "variables_reductions_credits", "name": "f7ef"}, {"@type": "Integer", "cerfa_field": "7EG", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge en r\u00e9sidence altern\u00e9e poursuivant leurs \u00e9tudes dans l'enseignement sup\u00e9rieur", "line_number": 320, "module": "variables_reductions_credits", "name": "f7eg"}, {"@type": "Integer", "cerfa_field": "7FA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Investissements achev\u00e9s ou acquis en 2013, r\u00e9alis\u00e9s du 1.1.2013 au 31.3.2013, m\u00e9tropole, BBC", "line_number": 3416, "module": "variables_reductions_credits", "name": "f7fa", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Investissements achev\u00e9s ou acquis en 2013, r\u00e9alis\u00e9s du 1.1.2013 au 31.3.2013, m\u00e9tropole, non-BBC", "line_number": 3425, "module": "variables_reductions_credits", "name": "f7fb", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Investissements achev\u00e9s ou acquis en 2013, r\u00e9alis\u00e9s du 1.1.2013 au 31.3.2013, DOM, \u00e0 Saint-Barth\u00e9lemy, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3434, "module": "variables_reductions_credits", "name": "f7fc", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Investissements achev\u00e9s ou acquis en 2013, r\u00e9alis\u00e9s du 1.1.2013 au 31.3.2013 en Polyn\u00e9sie, en Nouvelle Cal\u00e9donie et \u00e0 Wallis et Futuna", "line_number": 3443, "module": "variables_reductions_credits", "name": "f7fd", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FF", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de comptabilit\u00e9 et d'adh\u00e9sion \u00e0 un CGA (centre de gestion agr\u00e9\u00e9e) ou \u00e0 une AA (association agr\u00e9\u00e9e)", "line_number": 2604, "module": "variables_reductions_credits", "name": "f7ff", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FG", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de comptabilit\u00e9 et d'adh\u00e9sion \u00e0 un CGA ou \u00e0 une AA: nombre d'exploitations", "line_number": 2612, "module": "variables_reductions_credits", "name": "f7fg"}, {"@type": "Integer", "cerfa_field": "7FH", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eats d'emprunt pour reprise de soci\u00e9t\u00e9", "line_number": 2595, "module": "variables_reductions_credits", "name": "f7fh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FL", "default": 0, "entity": "foyers_fiscaux", "label": "Souscription de parts de fonds d'investissement de proximit\u00e9 investis outre-mer par des personnes domicili\u00e9es outre-mer", "line_number": 2566, "module": "variables_reductions_credits", "name": "f7fl", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FM", "default": 0, "entity": "foyers_fiscaux", "label": "Souscription de parts de fonds d'investissement de proximit\u00e9 investis en Corse", "line_number": 2557, "module": "variables_reductions_credits", "name": "f7fm", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FN", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital de SOFICA 30 %", "line_number": 2585, "module": "variables_reductions_credits", "name": "f7fn", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FQ", "default": 0, "entity": "foyers_fiscaux", "label": "Souscription de parts de fonds d'investissement de proximit\u00e9", "line_number": 2549, "module": "variables_reductions_credits", "name": "f7fq", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7FY", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises, nombre de cr\u00e9ateurs aid\u00e9s: conventions sign\u00e9es avant l'ann\u00e9e n-1 et ayant pris fin en ann\u00e9e n-1", "line_number": 1621, "module": "variables_reductions_credits", "name": "f7fy"}, {"@type": "Integer", "cerfa_field": "7GA", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants de moins de 6 ans au 01/01 de l'ann\u00e9e de perception des revenus: 1er enfant \u00e0 charge", "line_number": 231, "module": "variables_reductions_credits", "name": "f7ga", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GB", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants de moins de 6 ans au 01/01 de l'ann\u00e9e de perception des revenus: 2\u00e8me enfant \u00e0 charge", "line_number": 239, "module": "variables_reductions_credits", "name": "f7gb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GC", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants de moins de 6 ans au 01/01 de l'ann\u00e9e de perception des revenus: 3\u00e8me enfant \u00e0 charge", "line_number": 247, "module": "variables_reductions_credits", "name": "f7gc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GE", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants de moins de 6 ans au 01/01 de l'ann\u00e9e de perception des revenus: 1er enfant \u00e0 charge en r\u00e9sidence altern\u00e9e", "line_number": 255, "module": "variables_reductions_credits", "name": "f7ge", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GF", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants de moins de 6 ans au 01/01 de l'ann\u00e9e de perception des revenus: 2\u00e8me enfant \u00e0 charge en r\u00e9sidence altern\u00e9e", "line_number": 263, "module": "variables_reductions_credits", "name": "f7gf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GG", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants de moins de 6 ans au 01/01 de l'ann\u00e9e de perception des revenus: 3\u00e8me enfant \u00e0 charge en r\u00e9sidence altern\u00e9e", "line_number": 271, "module": "variables_reductions_credits", "name": "f7gg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs interm\u00e9diaires en m\u00e9tropole", "line_number": 4033, "module": "variables_reductions_credits", "name": "f7gh", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs interm\u00e9diaires outre-mer", "line_number": 4042, "module": "variables_reductions_credits", "name": "f7gi", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Reports concernant les investissements achev\u00e9s ou acquis au cours des ann\u00e9es ant\u00e9rieures, Investissements achev\u00e9s et r\u00e9alis\u00e9s en 2012, en m\u00e9tropole, dans les DOM, \u00e0 Saint-Barth\u00e9lemy, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3380, "module": "variables_reductions_credits", "name": "f7gj", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Reports concernant les investissements achev\u00e9s ou acquis au cours des ann\u00e9es ant\u00e9rieures, Investissements achev\u00e9s et r\u00e9alis\u00e9s en 2012, en m\u00e9tropole, dans les DOM, \u00e0 Saint-Barth\u00e9lemy, Saint-Martin, Saint-Pierre-et-Miquelon, avec promesse d'achat en 2011", "line_number": 3389, "module": "variables_reductions_credits", "name": "f7gk", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Reports concernant les investissements achev\u00e9s ou acquis au cours des ann\u00e9es ant\u00e9rieures, Investissements achev\u00e9s en 2012 et r\u00e9alis\u00e9s en 2011, en m\u00e9tropole, dans les DOM, \u00e0 Saint-Barth\u00e9lemy, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3398, "module": "variables_reductions_credits", "name": "f7gl", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GN", "default": 0, "entity": "foyers_fiscaux", "label": "Souscriptions au capital de SOFICA 36 %", "line_number": 2576, "module": "variables_reductions_credits", "name": "f7gn", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Reports concernant les investissements achev\u00e9s ou acquis au cours des ann\u00e9es ant\u00e9rieures, Investissements achev\u00e9s en 2012 et r\u00e9alis\u00e9s en 2011, en m\u00e9tropole, dans les DOM, \u00e0 Saint-Barth\u00e9lemy, Saint-Martin, Saint-Pierre-et-Miquelon, avec promesse d'achat en 2010s", "line_number": 3407, "module": "variables_reductions_credits", "name": "f7gp", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GQ", "default": 0, "entity": "foyers_fiscaux", "label": "Souscription de parts de fonds communs de placement dans l'innovation", "line_number": 2541, "module": "variables_reductions_credits", "name": "f7gq", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GS", "default": 0, "entity": "foyers_fiscaux", "label": "Reports concernant les investissements achev\u00e9s ou acquis au cours des ann\u00e9es ant\u00e9rieures: Investissements r\u00e9alis\u00e9s en n-3 en m\u00e9tropole, dans les DOM, \u00e0 Saint-Barth\u00e9lemy, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 2042, "module": "variables_reductions_credits", "name": "f7gs", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GT", "default": 0, "entity": "foyers_fiscaux", "label": "Scellier: report de 1/9 de la r\u00e9duction d'imp\u00f4t des investissements achev\u00e9s en 2012 avec promesse d'achat en 2010", "line_number": 3757, "module": "variables_reductions_credits", "name": "f7gt", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GU", "default": 0, "entity": "foyers_fiscaux", "label": "Scellier: report de 1/9 de la r\u00e9duction d'imp\u00f4t des investissements achev\u00e9s en 2012 avec promesse d'achat en 2009", "line_number": 3766, "module": "variables_reductions_credits", "name": "f7gu", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GV", "default": 0, "entity": "foyers_fiscaux", "label": "Scellier: report de 1/5 de la r\u00e9duction d'imp\u00f4t des investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012 en Polyn\u00e9sie, en Nouvelle Cal\u00e9donie et \u00e0 Wallis et Futuna ", "line_number": 3775, "module": "variables_reductions_credits", "name": "f7gv", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7GW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements achev\u00e9s en n-2 en Polyn\u00e9sie fran\u00e7aise, Nouvelle Cal\u00e9donie, dans les \u00eeles Walllis et Futuna : report de 1/5 de la r\u00e9duction d'imp\u00f4t", "line_number": 1760, "module": "variables_reductions_credits", "name": "f7gw", "start": "2013-01-01"}, {"@type": "Integer", "cerfa_field": "7GX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements achev\u00e9s en n-2 avec promesse d'achat en n-3 en Polyn\u00e9sie fran\u00e7aise, Nouvelle Cal\u00e9donie, dans les \u00eeles Walllis et Futuna : report de 1/5 de la r\u00e9duction d'imp\u00f4t", "line_number": 1769, "module": "variables_reductions_credits", "name": "f7gx", "start": "2013-01-01"}, {"@type": "Integer", "cerfa_field": "7GY", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises, nombre de cr\u00e9ateurs aid\u00e9s dont handicap\u00e9s: conventions sign\u00e9es avant l'ann\u00e9e n-1 et ayant pris fin en ann\u00e9e n-1", "line_number": 1630, "module": "variables_reductions_credits", "name": "f7gy", "start": "2006-01-01"}, {"@type": "Integer", "cerfa_field": "7GZ", "default": 0, "entity": "foyers_fiscaux", "label": "Primes de rente survie, contrats d'\u00e9pargne handicap", "line_number": 356, "module": "variables_reductions_credits", "name": "f7gz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Investissements achev\u00e9s et r\u00e9alis\u00e9s en 2011", "line_number": 3173, "module": "variables_reductions_credits", "name": "f7ha", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Investissements achev\u00e9s et r\u00e9alis\u00e9s en 2011, avec promesse d'achat en 2010", "line_number": 3182, "module": "variables_reductions_credits", "name": "f7hb", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Investissements achev\u00e9s en 2011, r\u00e9alis\u00e9s en 2010, en m\u00e9tropole et dans les DOM-COM", "line_number": 3209, "module": "variables_reductions_credits", "name": "f7hd", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Investissements achev\u00e9s en 2011, en m\u00e9tropole et dans les DOM-COM avec promesse d'achat avant le 1.1.2010", "line_number": 3218, "module": "variables_reductions_credits", "name": "f7he", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Investissements achev\u00e9s en 2011, Investissements r\u00e9alis\u00e9s en 2009 en m\u00e9tropole et dans les DOM-COM", "line_number": 3227, "module": "variables_reductions_credits", "name": "f7hf", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 en Polyn\u00e9sie fran\u00e7aise, Nouvelle Cal\u00e9donie, dans les \u00eeles Walllis et Futuna", "line_number": 3191, "module": "variables_reductions_credits", "name": "f7hg", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 en Polyn\u00e9sie fran\u00e7aise, Nouvelle Cal\u00e9donie, dans les \u00eeles Walllis et Futuna avec promesse d'achat en 2010", "line_number": 3200, "module": "variables_reductions_credits", "name": "f7hh", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s en 2010 en m\u00e9tropole", "line_number": 2777, "module": "variables_reductions_credits", "name": "f7hj", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s en 2010 dans les DOM-COM", "line_number": 2786, "module": "variables_reductions_credits", "name": "f7hk", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s en 2009 (m\u00e9tropole et DOM ne respectant pas les plafonds)", "line_number": 2813, "module": "variables_reductions_credits", "name": "f7hl", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s en 2009 dans les DOM et respectant les plafonds", "line_number": 2822, "module": "variables_reductions_credits", "name": "f7hm", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s en 2010 en m\u00e9tropole avec promesse d'achat avant le 1er janvier 2010", "line_number": 2795, "module": "variables_reductions_credits", "name": "f7hn", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s en 2010 dans les DOM-COM avec promesse d'achat avant le 1er janvier 2010", "line_number": 2804, "module": "variables_reductions_credits", "name": "f7ho", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009, en m\u00e9tropole en 2009; dans les DOM du 1.1.2009 au 26.5.2009 ; dans les DOM du 27.5.2009 au 30.12.2009 lorsqu'ils ne respectent pas les plafonds sp\u00e9cifiques", "line_number": 2831, "module": "variables_reductions_credits", "name": "f7hr", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009 dans les DOM COM du 27.5.2009 au 31.12.2009 respectant les plafonds sp\u00e9cifiques", "line_number": 2840, "module": "variables_reductions_credits", "name": "f7hs", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009, Investissements r\u00e9alis\u00e9s en 2009 et achev\u00e9s en 2010, en m\u00e9tropole en 2009; dans les DOM du 1.1.2009 au 26.5.2009 ; dans les DOM du 27.5.2009 au 30.12.2009 lorsqu'ils ne respectent pas les plafonds sp\u00e9cifiques", "line_number": 3155, "module": "variables_reductions_credits", "name": "f7ht", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009, Investissements r\u00e9alis\u00e9s en 2009 et achev\u00e9s en 2010, dans les DOM COM du 27.5.2009 au 31.12.2009 respectant les plafonds sp\u00e9cifiques", "line_number": 3164, "module": "variables_reductions_credits", "name": "f7hu", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 en m\u00e9tropole", "line_number": 3119, "module": "variables_reductions_credits", "name": "f7hv", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 dans les DOM COM", "line_number": 3128, "module": "variables_reductions_credits", "name": "f7hw", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 en m\u00e9tropole avec promesse d'achat avant le 1.1.2010", "line_number": 3137, "module": "variables_reductions_credits", "name": "f7hx", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7HY", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises, nombre de cr\u00e9ateurs aid\u00e9s: conventions sign\u00e9es en n-1 et n'ayant pas pris fin en n-1", "line_number": 1640, "module": "variables_reductions_credits", "name": "f7hy", "start": "2009-01-01"}, {"@type": "Integer", "cerfa_field": "7HZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: r\u00e9ductions investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 dans les DOM COM avec promesse d'achat avant le 1.1.2010", "line_number": 3146, "module": "variables_reductions_credits", "name": "f7hz", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011", "line_number": 3579, "module": "variables_reductions_credits", "name": "f7ia", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 avec promesse d'achat en 2010 ou r\u00e9alis\u00e9s en 2010", "line_number": 3588, "module": "variables_reductions_credits", "name": "f7ib", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2011 avec promesse d'achat en 2009 ou r\u00e9alis\u00e9s en 2009", "line_number": 3597, "module": "variables_reductions_credits", "name": "f7ic", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7ID", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, Engagement de r\u00e9alisation de l'investissement en 2012", "line_number": 3606, "module": "variables_reductions_credits", "name": "f7id", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, Promesse d'achat en 2011", "line_number": 3615, "module": "variables_reductions_credits", "name": "f7ie", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, investissement r\u00e9alis\u00e9 du 1.1.2012 au 31.3.2012, investissement r\u00e9alis\u00e9 du 1.1.2012 au 31.3.2012", "line_number": 3624, "module": "variables_reductions_credits", "name": "f7if", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, investissement r\u00e9alis\u00e9 du 1.4.2012 au 31.12.2012", "line_number": 3633, "module": "variables_reductions_credits", "name": "f7ig", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 ; r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s et achev\u00e9s en 2011 avec engagement en 2010, Report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2011", "line_number": 3651, "module": "variables_reductions_credits", "name": "f7ih", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissement destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle: Investissements r\u00e9alis\u00e9s en 2011 et achev\u00e9s en 2012, engagement de r\u00e9alisation de l'investissement en 2011", "line_number": 3453, "module": "variables_reductions_credits", "name": "f7ij", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Reports de 1/9 de l'investissement r\u00e9alis\u00e9 et achev\u00e9 en 2009", "line_number": 3480, "module": "variables_reductions_credits", "name": "f7ik", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissement destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle: Investissements r\u00e9alis\u00e9s en 2011 et achev\u00e9s en 2012, promesse d'achat en 2010", "line_number": 3462, "module": "variables_reductions_credits", "name": "f7il", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissement destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle: Investissements r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2012 avec promesse d'achat en 2009", "line_number": 3471, "module": "variables_reductions_credits", "name": "f7im", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.3.2011", "line_number": 3489, "module": "variables_reductions_credits", "name": "f7in", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : ", "line_number": 3516, "module": "variables_reductions_credits", "name": "f7io", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : ", "line_number": 3525, "module": "variables_reductions_credits", "name": "f7ip", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : ", "line_number": 3543, "module": "variables_reductions_credits", "name": "f7iq", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : ", "line_number": 3534, "module": "variables_reductions_credits", "name": "f7ir", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Report du solde de r\u00e9duction d'imp\u00f4t non encore imput\u00e9: ann\u00e9e n-4", "line_number": 3570, "module": "variables_reductions_credits", "name": "f7is", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : ", "line_number": 3561, "module": "variables_reductions_credits", "name": "f7it", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : ", "line_number": 3552, "module": "variables_reductions_credits", "name": "f7iu", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, investissement r\u00e9alis\u00e9 du 1.4.2011 au 31.12.2011", "line_number": 3498, "module": "variables_reductions_credits", "name": "f7iv", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2012", "line_number": 3507, "module": "variables_reductions_credits", "name": "f7iw", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009; r\u00e9alis\u00e9s en 2009 et achev\u00e9s en 2010; r\u00e9alis\u00e9s et achev\u00e9s en 2010 avec engagement avant le 1.1.2010, Report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2011", "line_number": 3642, "module": "variables_reductions_credits", "name": "f7ix", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7IY", "default": 0, "entity": "foyers_fiscaux", "label": "Report du solde de r\u00e9duction d'imp\u00f4t non encore imput\u00e9 sur les investissements r\u00e9alis\u00e9s", "line_number": 1660, "module": "variables_reductions_credits", "name": "f7iy", "start": "2013-01-01"}, {"@type": "Integer", "cerfa_field": "7IZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 : report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2011", "line_number": 3660, "module": "variables_reductions_credits", "name": "f7iz", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements r\u00e9alis\u00e9s et engag\u00e9s en 2012, m\u00e9tropole, BBC", "line_number": 3236, "module": "variables_reductions_credits", "name": "f7ja", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2011, r\u00e9alis\u00e9s en 2012, m\u00e9tropole, BBC", "line_number": 3245, "module": "variables_reductions_credits", "name": "f7jb", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 ; r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s et achev\u00e9s en 2011 avec engagement en 2010, Report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2012", "line_number": 3723, "module": "variables_reductions_credits", "name": "f7jc", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.1.2012 au 31.3.2012, m\u00e9tropole, BBC", "line_number": 3254, "module": "variables_reductions_credits", "name": "f7jd", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.4.2012 au 31.12.2012, m\u00e9tropole, BBC ", "line_number": 3263, "module": "variables_reductions_credits", "name": "f7je", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements r\u00e9alis\u00e9s et engag\u00e9s en 2012, m\u00e9tropole, non-BBC", "line_number": 3272, "module": "variables_reductions_credits", "name": "f7jf", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2011, r\u00e9alis\u00e9s en 2012, m\u00e9tropole, non-BBC", "line_number": 3281, "module": "variables_reductions_credits", "name": "f7jg", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.1.2012 au 31.3.2012, m\u00e9tropole, non-BBC", "line_number": 3290, "module": "variables_reductions_credits", "name": "f7jh", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s en 2011 et achev\u00e9s en 2011 ou 2012 ; r\u00e9alis\u00e9s en 2012 avec promesse d'achat en 2011 et achev\u00e9s en 2012, Report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2012", "line_number": 3732, "module": "variables_reductions_credits", "name": "f7ji", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.4.2012 au 31.12.2012, m\u00e9tropole, non-BBC", "line_number": 3299, "module": "variables_reductions_credits", "name": "f7jj", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2011, r\u00e9alis\u00e9s en 2012, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3308, "module": "variables_reductions_credits", "name": "f7jk", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2011, r\u00e9alis\u00e9s en 2012, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3317, "module": "variables_reductions_credits", "name": "f7jl", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.1.2012 au 31.3.2012, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3326, "module": "variables_reductions_credits", "name": "f7jm", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.4.2012 au 31.12.2012, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3335, "module": "variables_reductions_credits", "name": "f7jn", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2011, r\u00e9alis\u00e9s en 2012, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3344, "module": "variables_reductions_credits", "name": "f7jo", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2011, r\u00e9alis\u00e9s en 2012, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3353, "module": "variables_reductions_credits", "name": "f7jp", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.1.2012 au 31.3.2012, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3362, "module": "variables_reductions_credits", "name": "f7jq", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2011, Investissement r\u00e9alis\u00e9 du 1.4.2012 au 31.12.2012, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3371, "module": "variables_reductions_credits", "name": "f7jr", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s en 2011 et achev\u00e9s en 2011 ou 2012 ; r\u00e9alis\u00e9s en 2012 avec promesse d'achat en 2011 et achev\u00e9s en 2012, Report du solde de r\u00e9duction d\u2019imp\u00f4t de l\u2019ann\u00e9e 2012", "line_number": 3741, "module": "variables_reductions_credits", "name": "f7js", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s en 2013, Engagement de r\u00e9alisation de l'investissement en 2013", "line_number": 3669, "module": "variables_reductions_credits", "name": "f7jt", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s en 2013, Engagement de r\u00e9alisation de l'investissement en 2012", "line_number": 3678, "module": "variables_reductions_credits", "name": "f7ju", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, r\u00e9alis\u00e9s en 2012", "line_number": 3687, "module": "variables_reductions_credits", "name": "f7jv", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, r\u00e9alis\u00e9s en 2011 ou r\u00e9alis\u00e9s en 2012 avec promesse d'achat en 2011", "line_number": 3696, "module": "variables_reductions_credits", "name": "f7jw", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, r\u00e9alis\u00e9s en 2011 avec promesse d'achat en 2010 ou r\u00e9alis\u00e9s en 2010", "line_number": 3705, "module": "variables_reductions_credits", "name": "f7jx", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7JY", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements destin\u00e9s \u00e0 la location meubl\u00e9e non professionnelle : Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012, r\u00e9alis\u00e9s en 2010 avec promesse d'achat en 2009 ou r\u00e9alis\u00e9s en 2009", "line_number": 3714, "module": "variables_reductions_credits", "name": "f7jy", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KA", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de protection du patrimoine naturel", "line_number": 2631, "module": "variables_reductions_credits", "name": "f7ka", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KB", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de protection du patrimoine naturel (exc\u00e9dent de r\u00e9duction d\u2019imp\u00f4t d\u2019ann\u00e9es ant\u00e9rieures qui n\u2019a pu \u00eatre imput\u00e9)", "line_number": 2640, "module": "variables_reductions_credits", "name": "f7kb", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KC", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de protection du patrimoine naturel (exc\u00e9dent de r\u00e9duction d\u2019imp\u00f4t d\u2019ann\u00e9es ant\u00e9rieures qui n\u2019a pu \u00eatre imput\u00e9)", "line_number": 2649, "module": "variables_reductions_credits", "name": "f7kc", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KD", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de protection du patrimoine naturel (exc\u00e9dent de r\u00e9duction d\u2019imp\u00f4t d\u2019ann\u00e9es ant\u00e9rieures qui n\u2019a pu \u00eatre imput\u00e9)", "line_number": 2658, "module": "variables_reductions_credits", "name": "f7kd", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KG", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 2128, "module": "variables_reductions_credits", "name": "f7kg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KH", "default": 0, "entity": "foyers_fiscaux", "line_number": 2256, "module": "variables_reductions_credits", "name": "f7kh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KI", "default": 0, "entity": "foyers_fiscaux", "line_number": 2162, "module": "variables_reductions_credits", "name": "f7ki", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KS", "default": 0, "entity": "foyers_fiscaux", "line_number": 2250, "module": "variables_reductions_credits", "name": "f7ks", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KT", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t, Investissements dans votre entreprise", "line_number": 1300, "module": "variables_reductions_credits", "name": "f7kt", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KU", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Investissements dans votre entreprise", "line_number": 1329, "module": "variables_reductions_credits", "name": "f7ku", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7KY", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises, nombre de cr\u00e9ateurs aid\u00e9s dont handicap\u00e9s: conventions sign\u00e9es en n-1 et ayant pris fin en n-1", "line_number": 1650, "module": "variables_reductions_credits", "name": "f7ky", "start": "2009-01-01"}, {"@type": "Integer", "cerfa_field": "7LA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009 ou 2010 ou r\u00e9alis\u00e9s et achev\u00e9s en 2010 avec engagement avant le 1.1.2010, Report de l'ann\u00e9e 2009", "line_number": 2849, "module": "variables_reductions_credits", "name": "f7la", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009 ou 2010 ou r\u00e9alis\u00e9s et achev\u00e9s en 2010 avec engagement avant le 1.1.2010, Report de l'ann\u00e9e 2010", "line_number": 2858, "module": "variables_reductions_credits", "name": "f7lb", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 ; r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s et achev\u00e9s en 2011 avec engagement en 2010, Report de l'ann\u00e9e 2010", "line_number": 2867, "module": "variables_reductions_credits", "name": "f7lc", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 ; r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s et achev\u00e9s en 2011 avec engagement en 2010, Report de l'ann\u00e9e 2011", "line_number": 2876, "module": "variables_reductions_credits", "name": "f7ld", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009 ou 2010 ou r\u00e9alis\u00e9s et achev\u00e9s en 2010 avec engagement avant le 1.1.2010, Report de l'ann\u00e9e 2011", "line_number": 2885, "module": "variables_reductions_credits", "name": "f7le", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2011 : report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2011", "line_number": 2894, "module": "variables_reductions_credits", "name": "f7lf", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LG", "default": 0, "entity": "foyers_fiscaux", "line_number": 2236, "module": "variables_reductions_credits", "name": "f7lg", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LH", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 50%", "line_number": 1281, "module": "variables_reductions_credits", "name": "f7lh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Autres investissements r\u00e9alis\u00e9s en 2010, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 50%", "line_number": 1310, "module": "variables_reductions_credits", "name": "f7li", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2009 ou 2010 ou r\u00e9alis\u00e9s et achev\u00e9s en 2010 avec engagement avant le 1.1.2010", "line_number": 2912, "module": "variables_reductions_credits", "name": "f7lm", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2010 ; r\u00e9alis\u00e9s en 2010 et achev\u00e9s en 2011 ; r\u00e9alis\u00e9s et achev\u00e9s en 2011 avec engagement en 2010", "line_number": 2903, "module": "variables_reductions_credits", "name": "f7ls", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7LY", "default": 0, "entity": "foyers_fiscaux", "label": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises, nombre de cr\u00e9ateurs aid\u00e9s: conventions ayant pas pris fin l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 1669, "module": "variables_reductions_credits", "name": "f7ly", "start": "2010-01-01"}, {"@type": "Integer", "cerfa_field": "7LZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2012", "line_number": 2921, "module": "variables_reductions_credits", "name": "f7lz", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MA", "default": 0, "entity": "foyers_fiscaux", "line_number": 2243, "module": "variables_reductions_credits", "name": "f7ma", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MB", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 60%", "line_number": 1290, "module": "variables_reductions_credits", "name": "f7mb", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MC", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Autres investissements r\u00e9alis\u00e9s en 2010, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 60%", "line_number": 1319, "module": "variables_reductions_credits", "name": "f7mc", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier: Report du solde des r\u00e9ductions d'imp\u00f4ts non encore imput\u00e9, Investissements r\u00e9alis\u00e9s et achev\u00e9s en 2012 : report du solde de r\u00e9duction d'imp\u00f4t de l'ann\u00e9e 2012", "line_number": 2930, "module": "variables_reductions_credits", "name": "f7mg", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MM", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "line_number": 2228, "module": "variables_reductions_credits", "name": "f7mm", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MN", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise REPORT : Investissements r\u00e9alis\u00e9s en 2010, Investissements ayant fait l'objet avant 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%", "line_number": 1271, "module": "variables_reductions_credits", "name": "f7mn", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7MY", "default": 0, "entity": "foyers_fiscaux", "label": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises, nombre de cr\u00e9ateurs aid\u00e9s dont handicap\u00e9s: conventions ayant pas pris fin l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 1678, "module": "variables_reductions_credits", "name": "f7my", "start": "2010-01-01"}, {"@type": "Integer", "cerfa_field": "7NA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements r\u00e9alis\u00e9s et engag\u00e9s en 2011, m\u00e9tropole, BBC", "line_number": 2939, "module": "variables_reductions_credits", "name": "f7na", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2010, r\u00e9alis\u00e9s en 2011, ", "line_number": 2948, "module": "variables_reductions_credits", "name": "f7nb", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, m\u00e9tropole, BBC", "line_number": 2957, "module": "variables_reductions_credits", "name": "f7nc", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7ND", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.2.2011 au 31.3.2011, m\u00e9tropole, BBC", "line_number": 2966, "module": "variables_reductions_credits", "name": "f7nd", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.4.2011 au 31.12.2011, m\u00e9tropole, BBC", "line_number": 2975, "module": "variables_reductions_credits", "name": "f7ne", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements r\u00e9alis\u00e9s et engag\u00e9s en 2011, ", "line_number": 2984, "module": "variables_reductions_credits", "name": "f7nf", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2010, r\u00e9alis\u00e9s en 2011, ", "line_number": 2993, "module": "variables_reductions_credits", "name": "f7ng", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, m\u00e9tropole, non-BBC", "line_number": 3002, "module": "variables_reductions_credits", "name": "f7nh", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.2.2011 au 31.3.2011, m\u00e9tropole, non-BBC", "line_number": 3011, "module": "variables_reductions_credits", "name": "f7ni", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.4.2011 au 31.12.2011, m\u00e9tropole, non-BBC", "line_number": 3020, "module": "variables_reductions_credits", "name": "f7nj", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements r\u00e9alis\u00e9s et engag\u00e9s en 2011, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3029, "module": "variables_reductions_credits", "name": "f7nk", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2010, r\u00e9alis\u00e9s en 2011, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3038, "module": "variables_reductions_credits", "name": "f7nl", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3047, "module": "variables_reductions_credits", "name": "f7nm", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.2.2011 au 31.3.2011, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3056, "module": "variables_reductions_credits", "name": "f7nn", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.4.2011 au 31.12.2011, DOM, Saint-Barth\u00e9l\u00e9my, Saint-Martin, Saint-Pierre-et-Miquelon", "line_number": 3065, "module": "variables_reductions_credits", "name": "f7no", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements r\u00e9alis\u00e9s et engag\u00e9s en 2011, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3074, "module": "variables_reductions_credits", "name": "f7np", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : investissements engag\u00e9s en 2010, r\u00e9alis\u00e9s en 2011, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3083, "module": "variables_reductions_credits", "name": "f7nq", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, Investissement r\u00e9alis\u00e9 du 1.1.2011 au 31.1.2011, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3092, "module": "variables_reductions_credits", "name": "f7nr", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.2.2011 au 31.3.2011, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3101, "module": "variables_reductions_credits", "name": "f7ns", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs neufs dispositif Scellier : Logement acquis en l'\u00e9tat futur d'ach\u00e8vement avec contrat de r\u00e9servation enregistr\u00e9 au plus tard le 31.12.2010, Investissement r\u00e9alis\u00e9 du 1.4.2011 au 31.12.2011, Polyn\u00e9sie Fran\u00e7aise, Nouvelle Cal\u00e9donie, Wallis et Futuna", "line_number": 3110, "module": "variables_reductions_credits", "name": "f7nt", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7NU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63 %", "line_number": 1226, "module": "variables_reductions_credits", "name": "f7nu", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7NV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5 %", "line_number": 1235, "module": "variables_reductions_credits", "name": "f7nv", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7NW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, investissements dans votre entreprise", "line_number": 1244, "module": "variables_reductions_credits", "name": "f7nw", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7NX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 1253, "module": "variables_reductions_credits", "name": "f7nx", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7NY", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 1262, "module": "variables_reductions_credits", "name": "f7ny", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7NZ", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de conservation et de restauration d\u2019objets class\u00e9s monuments historiques", "line_number": 2621, "module": "variables_reductions_credits", "name": "f7nz", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Investissements immobiliers engag\u00e9s avant le 1.1.2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% avant 2009", "line_number": 2263, "module": "variables_reductions_credits", "name": "f7oa", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Investissements immobiliers engag\u00e9s avant le 1.1.2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2009", "line_number": 2272, "module": "variables_reductions_credits", "name": "f7ob", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Investissements immobiliers engag\u00e9s avant le 1.1.2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2010", "line_number": 2281, "module": "variables_reductions_credits", "name": "f7oc", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Investissements immobiliers engag\u00e9s en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% avant 2009", "line_number": 2290, "module": "variables_reductions_credits", "name": "f7oh", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Investissements immobiliers engag\u00e9s en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2009", "line_number": 2299, "module": "variables_reductions_credits", "name": "f7oi", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Investissements immobiliers engag\u00e9s en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2010", "line_number": 2308, "module": "variables_reductions_credits", "name": "f7oj", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2011, Autres investissements", "line_number": 2317, "module": "variables_reductions_credits", "name": "f7ok", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 avant le 1.1.2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % avant 2009", "line_number": 2326, "module": "variables_reductions_credits", "name": "f7ol", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 avant le 1.1.2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2009", "line_number": 2335, "module": "variables_reductions_credits", "name": "f7om", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7ON", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 avant le 1.1.2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2010", "line_number": 2344, "module": "variables_reductions_credits", "name": "f7on", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % avant 2009", "line_number": 2353, "module": "variables_reductions_credits", "name": "f7oo", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2009", "line_number": 2362, "module": "variables_reductions_credits", "name": "f7op", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2010", "line_number": 2371, "module": "variables_reductions_credits", "name": "f7oq", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2011, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2011", "line_number": 2380, "module": "variables_reductions_credits", "name": "f7or", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2012, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % avant 2009", "line_number": 2389, "module": "variables_reductions_credits", "name": "f7os", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2012, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2009", "line_number": 2398, "module": "variables_reductions_credits", "name": "f7ot", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2012, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2010", "line_number": 2407, "module": "variables_reductions_credits", "name": "f7ou", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, Investissements immobiliers que vous avez engag\u00e9 en 2012, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2011", "line_number": 2416, "module": "variables_reductions_credits", "name": "f7ov", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2012, ", "line_number": 2425, "module": "variables_reductions_credits", "name": "f7ow", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7OZ", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer: report de r\u00e9duction d'imp\u00f4t non imput\u00e9e les ann\u00e9es ant\u00e9rieures ann\u00e9e n-6", "line_number": 758, "module": "variables_reductions_credits", "name": "f7oz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PA", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63%", "line_number": 821, "module": "variables_reductions_credits", "name": "f7pa", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PB", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5%", "line_number": 830, "module": "variables_reductions_credits", "name": "f7pb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PC", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements dans votre entreprise, montant de la r\u00e9duction d' imp\u00f4t calcul\u00e9e", "line_number": 839, "module": "variables_reductions_credits", "name": "f7pc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PD", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements dans votre entreprise, montant de la r\u00e9duction d' imp\u00f4t dont vous demandez l'imputation en 2011", "line_number": 848, "module": "variables_reductions_credits", "name": "f7pd", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PE", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63%", "line_number": 866, "module": "variables_reductions_credits", "name": "f7pe", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PF", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5%", "line_number": 875, "module": "variables_reductions_credits", "name": "f7pf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PG", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements dans votre entreprise, montant de la r\u00e9duction d' imp\u00f4t calcul\u00e9e", "line_number": 884, "module": "variables_reductions_credits", "name": "f7pg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PH", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%, Investissements dans votre entreprise, montant de la r\u00e9duction d' imp\u00f4t dont vous demandez l'imputation en 2011", "line_number": 893, "module": "variables_reductions_credits", "name": "f7ph", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PI", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63%", "line_number": 902, "module": "variables_reductions_credits", "name": "f7pi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PJ", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5%", "line_number": 911, "module": "variables_reductions_credits", "name": "f7pj", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PK", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements dans votre entreprise, montant de la r\u00e9duction d' imp\u00f4t calcul\u00e9e", "line_number": 920, "module": "variables_reductions_credits", "name": "f7pk", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PL", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements dans votre entreprise, montant de la r\u00e9duction d' imp\u00f4t dont vous demandez l'imputation en 2011", "line_number": 929, "module": "variables_reductions_credits", "name": "f7pl", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7PM", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet avant 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%", "line_number": 938, "module": "variables_reductions_credits", "name": "f7pm"}, {"@type": "Integer", "cerfa_field": "7PN", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 50 %", "line_number": 947, "module": "variables_reductions_credits", "name": "f7pn"}, {"@type": "Integer", "cerfa_field": "7PO", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 60 %", "line_number": 956, "module": "variables_reductions_credits", "name": "f7po"}, {"@type": "Integer", "cerfa_field": "7PP", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise", "line_number": 965, "module": "variables_reductions_credits", "name": "f7pp"}, {"@type": "Integer", "cerfa_field": "7PQ", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 974, "module": "variables_reductions_credits", "name": "f7pq"}, {"@type": "Integer", "cerfa_field": "7PR", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 983, "module": "variables_reductions_credits", "name": "f7pr"}, {"@type": "Integer", "cerfa_field": "7PS", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 50 %", "line_number": 992, "module": "variables_reductions_credits", "name": "f7ps"}, {"@type": "Integer", "cerfa_field": "7PT", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 60 %", "line_number": 1001, "module": "variables_reductions_credits", "name": "f7pt"}, {"@type": "Integer", "cerfa_field": "7PU", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise", "line_number": 1010, "module": "variables_reductions_credits", "name": "f7pu"}, {"@type": "Integer", "cerfa_field": "7PV", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 1019, "module": "variables_reductions_credits", "name": "f7pv"}, {"@type": "Integer", "cerfa_field": "7PW", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 1028, "module": "variables_reductions_credits", "name": "f7pw"}, {"@type": "Integer", "cerfa_field": "7PX", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63 %", "line_number": 1037, "module": "variables_reductions_credits", "name": "f7px"}, {"@type": "Integer", "cerfa_field": "7PY", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5 %", "line_number": 1046, "module": "variables_reductions_credits", "name": "f7py", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7PZ", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer r\u00e9alis\u00e9s en 2007 dans le cadre d'une entreprise: report de r\u00e9duction d'imp\u00f4t non imput\u00e9e les ann\u00e9es ant\u00e9rieures", "line_number": 767, "module": "variables_reductions_credits", "name": "f7pz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QB", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "line_number": 2093, "module": "variables_reductions_credits", "name": "f7qb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QC", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "line_number": 2100, "module": "variables_reductions_credits", "name": "f7qc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QD", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "line_number": 2107, "module": "variables_reductions_credits", "name": "f7qd", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QE", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements ayant fait l'objet avant 1.1.2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%", "line_number": 857, "module": "variables_reductions_credits", "name": "f7qe", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QF", "default": 0, "entity": "foyers_fiscaux", "line_number": 2186, "module": "variables_reductions_credits", "name": "f7qf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QG", "default": 0, "entity": "foyers_fiscaux", "line_number": 2192, "module": "variables_reductions_credits", "name": "f7qg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QH", "default": 0, "entity": "foyers_fiscaux", "line_number": 2198, "module": "variables_reductions_credits", "name": "f7qh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QI", "default": 0, "entity": "foyers_fiscaux", "line_number": 2204, "module": "variables_reductions_credits", "name": "f7qi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QJ", "default": 0, "entity": "foyers_fiscaux", "line_number": 2168, "module": "variables_reductions_credits", "name": "f7qj", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QK", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "line_number": 2114, "module": "variables_reductions_credits", "name": "f7qk", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QL", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "line_number": 2135, "module": "variables_reductions_credits", "name": "f7ql", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QM", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "line_number": 2149, "module": "variables_reductions_credits", "name": "f7qm", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QN", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "line_number": 2121, "module": "variables_reductions_credits", "name": "f7qn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QO", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements immobliliers engag\u00e9s avant le 1.1.2011 et investissements ayant re\u00e7u un agr\u00e9ment avant le 5.12.2010 \u00e0 hauteur de 50%", "line_number": 803, "module": "variables_reductions_credits", "name": "f7qo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QP", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements immobliliers engag\u00e9s avant le 1.1.2011 et investissements ayant re\u00e7u un agr\u00e9ment avant le 5.12.2010 \u00e0 hauteur de 60%", "line_number": 812, "module": "variables_reductions_credits", "name": "f7qp", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QQ", "default": 0, "entity": "foyers_fiscaux", "line_number": 2210, "module": "variables_reductions_credits", "name": "f7qq", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QR", "default": 0, "entity": "foyers_fiscaux", "line_number": 2216, "module": "variables_reductions_credits", "name": "f7qr", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QS", "default": 0, "entity": "foyers_fiscaux", "line_number": 2222, "module": "variables_reductions_credits", "name": "f7qs", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QT", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "line_number": 2142, "module": "variables_reductions_credits", "name": "f7qt", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QU", "default": 0, "entity": "foyers_fiscaux", "line_number": 2156, "module": "variables_reductions_credits", "name": "f7qu", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QV", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements immobliliers engag\u00e9s avant le 1.1.2011 et investissements ayant re\u00e7u un agr\u00e9ment avant le 5.12.2010, nvestissements ayant fait l'objet avant 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un accompte d'au moins 50%", "line_number": 794, "module": "variables_reductions_credits", "name": "f7qv", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QW", "default": 0, "entity": "foyers_fiscaux", "line_number": 2174, "module": "variables_reductions_credits", "name": "f7qw", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QX", "default": 0, "entity": "foyers_fiscaux", "line_number": 2180, "module": "variables_reductions_credits", "name": "f7qx", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7QZ", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer r\u00e9alis\u00e9s en 2008 dans le casdre d'une entreprise: report de r\u00e9duction d'imp\u00f4t non imput\u00e9e les ann\u00e9es ant\u00e9rieures", "line_number": 776, "module": "variables_reductions_credits", "name": "f7qz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RA", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans une zone de protection du patrimoine architectural, urbain et paysager", "line_number": 1688, "module": "variables_reductions_credits", "name": "f7ra", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RB", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1697, "module": "variables_reductions_credits", "name": "f7rb", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RC", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1706, "module": "variables_reductions_credits", "name": "f7rc", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RD", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1715, "module": "variables_reductions_credits", "name": "f7rd", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RE", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1724, "module": "variables_reductions_credits", "name": "f7re", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RF", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1733, "module": "variables_reductions_credits", "name": "f7rf", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7RG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise", "line_number": 1055, "module": "variables_reductions_credits", "name": "f7rg", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 1064, "module": "variables_reductions_credits", "name": "f7rh", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2012, Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50%, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 1073, "module": "variables_reductions_credits", "name": "f7ri", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet avant 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %", "line_number": 1082, "module": "variables_reductions_credits", "name": "f7rj", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63 %", "line_number": 1091, "module": "variables_reductions_credits", "name": "f7rk", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5 %", "line_number": 1100, "module": "variables_reductions_credits", "name": "f7rl", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise", "line_number": 1109, "module": "variables_reductions_credits", "name": "f7rm", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 1118, "module": "variables_reductions_credits", "name": "f7rn", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2009 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 1127, "module": "variables_reductions_credits", "name": "f7ro", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63 %", "line_number": 1136, "module": "variables_reductions_credits", "name": "f7rp", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5 %", "line_number": 1145, "module": "variables_reductions_credits", "name": "f7rq", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise", "line_number": 1154, "module": "variables_reductions_credits", "name": "f7rr", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 1163, "module": "variables_reductions_credits", "name": "f7rs", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2010 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 1172, "module": "variables_reductions_credits", "name": "f7rt", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 52,63 %", "line_number": 1181, "module": "variables_reductions_credits", "name": "f7ru", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t \u00e0 hauteur de 62,5 %", "line_number": 1190, "module": "variables_reductions_credits", "name": "f7rv", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise", "line_number": 1199, "module": "variables_reductions_credits", "name": "f7rw", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t calcul\u00e9e", "line_number": 1208, "module": "variables_reductions_credits", "name": "f7rx", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RY", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements ayant fait l'objet en 2011 d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 %, investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d'imp\u00f4t dont vous demandez l'imputation en 2012", "line_number": 1217, "module": "variables_reductions_credits", "name": "f7ry", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7RZ", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "Investissements outre-mer: report de r\u00e9duction d'imp\u00f4t non imput\u00e9e les ann\u00e9es ant\u00e9rieures ann\u00e9e n-3", "line_number": 785, "module": "variables_reductions_credits", "name": "f7rz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SB", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale des logements donn\u00e9s en location: cr\u00e9dit \u00e0 25 %", "line_number": 3814, "module": "variables_reductions_credits", "name": "f7sb", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SC", "default": 0, "end": "2009-12-01", "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale", "line_number": 3824, "module": "variables_reductions_credits", "name": "f7sc", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SD", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale, \u00e9conomie d'\u00e9nergie: chaudi\u00e8res \u00e0 condensation", "line_number": 3837, "module": "variables_reductions_credits", "name": "f7sd", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SE", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale, \u00e9conomie d'\u00e9nergie: chaudi\u00e8res \u00e0 micro-cog\u00e9n\u00e9ration gaz", "line_number": 3846, "module": "variables_reductions_credits", "name": "f7se", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SF", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit de travaux en faveur d'aides aux personnes pour des logements en location (avant 2012 ) / Appareils de r\u00e9gulation du chauffage, mat\u00e9riaux de calorifugeage (apr\u00e8s 2011)", "line_number": 3944, "module": "variables_reductions_credits", "name": "f7sf", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SG", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Mat\u00e9riaux d'isolation thermique des murs (acquisitionn et pose)", "line_number": 474, "module": "variables_reductions_credits", "name": "f7sg", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SH", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale, isolation thermique: mat\u00e9riaux d'isolation des toitures (acquisition et pose)", "line_number": 3855, "module": "variables_reductions_credits", "name": "f7sh", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SI", "default": 0, "entity": "foyers_fiscaux", "label": "Mat\u00e9riaux d\u2019isolation des planchers bas sur sous-sol, sur vide sanitaire ou sur passage couvert (acquisition et pose)", "line_number": 3953, "module": "variables_reductions_credits", "name": "f7si", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SJ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Mat\u00e9riaux d'isolation thermique des parois vitr\u00e9es", "line_number": 483, "module": "variables_reductions_credits", "name": "f7sj", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SK", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Volets isolants", "line_number": 492, "module": "variables_reductions_credits", "name": "f7sk", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SL", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Portes d'entr\u00e9es donnant sur l'ext\u00e9rieur", "line_number": 501, "module": "variables_reductions_credits", "name": "f7sl", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SM", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: \u00c9quipements de production d'\u00e9lectricit\u00e9 utilisant l'\u00e9nergie radiative du soleil", "line_number": 510, "module": "variables_reductions_credits", "name": "f7sm", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SN", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Appareils de chauffage au bois ou autres biomasses rempla\u00e7ant un appareil \u00e9quivalent", "line_number": 519, "module": "variables_reductions_credits", "name": "f7sn", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SO", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Appareils de chauffage au bois ou autres biomasses ne rempla\u00e7ant pas un appareil \u00e9quivalent", "line_number": 528, "module": "variables_reductions_credits", "name": "f7so", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SP", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Pompes \u00e0 chaleur autres que air/air et autres que g\u00e9othermiques dont la finalit\u00e9 essentielle est la production de chaleur", "line_number": 537, "module": "variables_reductions_credits", "name": "f7sp", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SQ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Pompes \u00e0 chaleur g\u00e9othermiques dont la finalit\u00e9 essentielle est la production de chaleur", "line_number": 546, "module": "variables_reductions_credits", "name": "f7sq", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SR", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Pompes \u00e0 chaleur (autres que air/air) d\u00e9di\u00e9es \u00e0 la production d'eau chaude sanitaire (chauffe-eaux thermodynamiques)", "line_number": 555, "module": "variables_reductions_credits", "name": "f7sr", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SS", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: \u00c9quipements de fourniture d'eau chaude sanitaire fonctionnant \u00e0 l'\u00e9nergie solaire et dot\u00e9s de capteurs solaires", "line_number": 564, "module": "variables_reductions_credits", "name": "f7ss", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7ST", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Autres \u00e9quipements de production d'\u00e9nergie utilisant une source d'\u00e9nergie renouvelable (\u00e9olien, hydraulique)", "line_number": 573, "module": "variables_reductions_credits", "name": "f7st", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SU", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: \u00c9quipements de r\u00e9cup\u00e9ration et de traitement des eaux pluviales", "line_number": 582, "module": "variables_reductions_credits", "name": "f7su", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SV", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: Diagnostic de performance \u00e9nerg\u00e9tique", "line_number": 591, "module": "variables_reductions_credits", "name": "f7sv", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SW", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: \u00c9quipements de raccordement \u00e0 un r\u00e9seau de chaleur", "line_number": 600, "module": "variables_reductions_credits", "name": "f7sw", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7SX", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1742, "module": "variables_reductions_credits", "name": "f7sx", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SY", "default": 0, "entity": "foyers_fiscaux", "label": "Travaux de restauration immobili\u00e8re dans un secteur sauvegard\u00e9 ou assimil\u00e9", "line_number": 1751, "module": "variables_reductions_credits", "name": "f7sy", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7SZ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale des logements donn\u00e9s en location", "line_number": 1341, "module": "variables_reductions_credits", "name": "f7sz", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TD", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eats des pr\u00eats \u00e9tudiants vers\u00e9s avant l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 329, "module": "variables_reductions_credits", "name": "f7td", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TE", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses d'investissement forestier", "line_number": 3962, "module": "variables_reductions_credits", "name": "f7te", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TF", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2748, "module": "variables_reductions_credits", "name": "f7tf", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2739, "module": "variables_reductions_credits", "name": "f7tg", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2721, "module": "variables_reductions_credits", "name": "f7th", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TT", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses de travaux dans l'habitation principale", "line_number": 3981, "module": "variables_reductions_credits", "name": "f7tt", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TU", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses de travaux dans l'habitation principale", "line_number": 3971, "module": "variables_reductions_credits", "name": "f7tu", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TV", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses de travaux dans l'habitation principale", "line_number": 3991, "module": "variables_reductions_credits", "name": "f7tv", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TW", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses de travaux dans l'habitation principale", "line_number": 4021, "module": "variables_reductions_credits", "name": "f7tw", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TX", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses de travaux dans l'habitation principale", "line_number": 4001, "module": "variables_reductions_credits", "name": "f7tx", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7TY", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses de travaux dans l'habitation principale", "line_number": 4011, "module": "variables_reductions_credits", "name": "f7ty", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UA", "default": 0, "end": "2007-12-31", "entity": "foyers_fiscaux", "line_number": 2052, "module": "variables_reductions_credits", "name": "f7ua", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UB", "default": 0, "end": "2007-12-31", "entity": "foyers_fiscaux", "line_number": 2059, "module": "variables_reductions_credits", "name": "f7ub", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UC", "default": 0, "entity": "foyers_fiscaux", "label": "Cotisations pour la d\u00e9fense des for\u00eats contre l'incendie ", "line_number": 2071, "module": "variables_reductions_credits", "name": "f7uc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UD", "default": 0, "entity": "foyers_fiscaux", "label": "Dons \u00e0 des organismes d'aide aux personnes en difficult\u00e9", "line_number": 7, "module": "variables_reductions_credits", "name": "f7ud", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UF", "default": 0, "entity": "foyers_fiscaux", "label": "Dons \u00e0 d'autres oeuvres d'utilit\u00e9 publique ou fiscalement assimilables aux oeuvres d'int\u00e9r\u00eat g\u00e9n\u00e9ral", "line_number": 15, "module": "variables_reductions_credits", "name": "f7uf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UH", "default": 0, "entity": "foyers_fiscaux", "label": "Dons et cotisations vers\u00e9s aux partis politiques", "line_number": 2667, "module": "variables_reductions_credits", "name": "f7uh", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UH", "default": 0, "end": "2007-12-31", "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eats pay\u00e9s la premi\u00e8re ann\u00e9e de remboursement du pr\u00eat pour l'habitation principale", "line_number": 141, "module": "variables_reductions_credits", "name": "f7uh_2007", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UI", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "line_number": 2079, "module": "variables_reductions_credits", "name": "f7ui", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UJ", "default": 0, "end": "2007-12-31", "entity": "foyers_fiscaux", "line_number": 2086, "module": "variables_reductions_credits", "name": "f7uj", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UK", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eats des pr\u00eats \u00e9tudiants vers\u00e9s durant l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 347, "module": "variables_reductions_credits", "name": "f7uk", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2685, "module": "variables_reductions_credits", "name": "f7ul", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UM", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eats pour paiement diff\u00e9r\u00e9 accord\u00e9 aux agriculteurs", "line_number": 2768, "module": "variables_reductions_credits", "name": "f7um", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers: acquisition", "line_number": 2677, "module": "variables_reductions_credits", "name": "f7un", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UO", "default": 0, "entity": "foyers_fiscaux", "label": "Acquisition de biens culturels", "line_number": 3795, "module": "variables_reductions_credits", "name": "f7uo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UP", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t pour investissements forestiers: travaux", "line_number": 3867, "module": "variables_reductions_credits", "name": "f7up", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UQ", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t pour investissements forestiers: contrat de gestion", "line_number": 3876, "module": "variables_reductions_credits", "name": "f7uq", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UR", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Investissements r\u00e9alis\u00e9s en n-1, total r\u00e9duction d\u2019imp\u00f4t", "line_number": 749, "module": "variables_reductions_credits", "name": "f7ur", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7US", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9duction d'imp\u00f4t m\u00e9c\u00e9nat d'entreprise", "line_number": 3804, "module": "variables_reductions_credits", "name": "f7us", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UT", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2758, "module": "variables_reductions_credits", "name": "f7ut", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2694, "module": "variables_reductions_credits", "name": "f7uu", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2703, "module": "variables_reductions_credits", "name": "f7uv", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2712, "module": "variables_reductions_credits", "name": "f7uw", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements forestiers", "line_number": 2730, "module": "variables_reductions_credits", "name": "f7ux", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UY", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: Report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1963, "module": "variables_reductions_credits", "name": "f7uy", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7UZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: Report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1972, "module": "variables_reductions_credits", "name": "f7uz", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VA", "default": 0, "entity": "foyers_fiscaux", "label": "Dons \u00e0 des organismes d'aides aux personnes \u00e9tablis dans un Etat europ\u00e9en", "line_number": 66, "module": "variables_reductions_credits", "name": "f7va", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VC", "default": 0, "entity": "foyers_fiscaux", "label": "Dons \u00e0 des autres organismes \u00e9tablis dans un Etat europ\u00e9en", "line_number": 75, "module": "variables_reductions_credits", "name": "f7vc", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VE", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: travaux d'isolation thermique de la toiture avant le 04/04/2012", "line_number": 445, "module": "variables_reductions_credits", "name": "f7ve", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7VF", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: travaux d'isolation thermique de la toiture \u00e0 compter du 04/04/2012", "line_number": 455, "module": "variables_reductions_credits", "name": "f7vf", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7VG", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: travaux d'isolation thermique de toute la toiture", "line_number": 465, "module": "variables_reductions_credits", "name": "f7vg", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7VO", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'ann\u00e9es de remboursement du pr\u00eat \u00e9tudiant avant l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 338, "module": "variables_reductions_credits", "name": "f7vo", "start": "2006-01-01"}, {"@type": "Integer", "cerfa_field": "7VT", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements neufs non-BBC acquis ou construits du 01/01/2011 au 30/09/2011: annuit\u00e9s suivantes", "line_number": 204, "module": "variables_reductions_credits", "name": "f7vt", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VU", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements neufs non-BBC acquis ou construits du 01/01/2011 au 30/09/2011: premi\u00e8re annuit\u00e9", "line_number": 195, "module": "variables_reductions_credits", "name": "f7vu", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VV", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements neufs non-BBC acquis ou construits du 01/01/2010 au 31/12/2010: annuit\u00e9s suivantes", "line_number": 186, "module": "variables_reductions_credits", "name": "f7vv", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VW", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements neufs non-BBC acquis ou construits du 01/01/2010 au 31/12/2010: premi\u00e8re annuit\u00e9", "line_number": 177, "module": "variables_reductions_credits", "name": "f7vw", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VX", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements neufs BBC acquis ou construits du 01/01/2009 au 30/09/2011", "line_number": 169, "module": "variables_reductions_credits", "name": "f7vx", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VY", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements anciens (acquis entre le 06/05/2007 et le 30/09/2011) ou neufs (acquis entre le 06/05/2007 et le 31/12/2009): Premi\u00e8re annuit\u00e9", "line_number": 151, "module": "variables_reductions_credits", "name": "f7vy", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7VZ", "default": 0, "entity": "foyers_fiscaux", "label": "Int\u00e9r\u00eat des emprunts contract\u00e9s pour l'acquisition ou la construction de l'habitation principale: logements anciens (acquis entre le 06/05/2007 et le 30/09/2011) ou neufs (acquis entre le 06/05/2007 et le 31/12/2009): annuit\u00e9s suivantes", "line_number": 160, "module": "variables_reductions_credits", "name": "f7vz", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7WA", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: travaux d'isolation thermique des murs avant le 03/04/2012", "line_number": 416, "module": "variables_reductions_credits", "name": "f7wa", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7WB", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: travaux d'isolation thermique des murs \u00e0 compter du 04/04/2012", "line_number": 426, "module": "variables_reductions_credits", "name": "f7wb", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7WC", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: travaux d'isolation thermique sur plus de la moiti\u00e9 de la surface des murs ext\u00e9rieurs", "line_number": 436, "module": "variables_reductions_credits", "name": "f7wc", "start": "2012-01-01"}, {"@type": "Boolean", "cerfa_field": "7WE", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: \u00e9co-pr\u00eat \u00e0 taux z\u00e9ro avec offre de pr\u00eat \u00e9mise l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 398, "module": "variables_reductions_credits", "name": "f7we", "start": "2009-01-01"}, {"@type": "Boolean", "cerfa_field": "7WF", "default": false, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: d\u00e9penses d'isolation thermique des parois vitr\u00e9es avant le 01/01/n-1", "line_number": 703, "module": "variables_reductions_credits", "name": "f7wf"}, {"@type": "Boolean", "cerfa_field": "7WG", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: \u00e9co-pr\u00eat \u00e0 taux z\u00e9ro avec offre de pr\u00eat \u00e9mise l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s -1", "line_number": 407, "module": "variables_reductions_credits", "name": "f7wg", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "7WH", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale (logement achev\u00e9 depuis plus de 2 ans): bouquet de travaux r\u00e9alis\u00e9 pendant l'ann\u00e9e de perception des revenus", "line_number": 685, "module": "variables_reductions_credits", "name": "f7wh", "start": "2013-01-01"}, {"@type": "Integer", "cerfa_field": "7WI", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de l'aide aux personnes r\u00e9alis\u00e9es dans l'habitation principale: Ascenseurs \u00e9lectriques \u00e0 traction", "line_number": 713, "module": "variables_reductions_credits", "name": "f7wi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7WJ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de l'aide aux personnes r\u00e9alis\u00e9es dans l'habitation principale: \u00e9quipements sp\u00e9cialement con\u00e7us pour les personnes \u00e2g\u00e9es ou handicap\u00e9es", "line_number": 722, "module": "variables_reductions_credits", "name": "f7wj", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "7WK", "default": false, "entity": "foyers_fiscaux", "label": "Votre habitation principale est une maison individuelle", "line_number": 694, "module": "variables_reductions_credits", "name": "f7wk", "start": "2009-01-01"}, {"@type": "Integer", "cerfa_field": "7WL", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de l'aide aux personnes r\u00e9alis\u00e9es dans l'habitation principale: travaux de pr\u00e9vention des risques technologiques", "line_number": 730, "module": "variables_reductions_credits", "name": "f7wl", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7WM", "default": 0, "entity": "foyers_fiscaux", "label": "Prestations compensatoires: Capital fix\u00e9 en substitution de rente", "line_number": 365, "module": "variables_reductions_credits", "name": "f7wm", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7WN", "default": 0, "entity": "foyers_fiscaux", "label": "Prestations compensatoires: Sommes vers\u00e9es l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s", "line_number": 373, "module": "variables_reductions_credits", "name": "f7wn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7WO", "default": 0, "entity": "foyers_fiscaux", "label": "Prestations compensatoires: Sommes totales d\u00e9cid\u00e9es par jugement l'ann\u00e9e de perception des revenus d\u00e9clar\u00e9s ou capital reconstitu\u00e9", "line_number": 381, "module": "variables_reductions_credits", "name": "f7wo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7WP", "default": 0, "entity": "foyers_fiscaux", "label": "Prestations compensatoires: Report des sommes d\u00e9cid\u00e9es l'ann\u00e9e de perception des revenus -1", "line_number": 389, "module": "variables_reductions_credits", "name": "f7wp", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "7WQ", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: d\u00e9penses d'isolation thermique des parois vitr\u00e9es du 01/01/2012 au 03/04/2012", "line_number": 615, "module": "variables_reductions_credits", "name": "f7wq", "start": "2010-01-01"}, {"@type": "Integer", "cerfa_field": "7WR", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de l'aide aux personnes r\u00e9alis\u00e9es dans des habitations donn\u00e9es en location : travaux de pr\u00e9vention des risques technologiques", "line_number": 739, "module": "variables_reductions_credits", "name": "f7wr", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "7WS", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: d\u00e9penses d'isolations des parois vitr\u00e9es \u00e0 compter du 04/04/2012", "line_number": 625, "module": "variables_reductions_credits", "name": "f7ws", "start": "2012-01-01"}, {"@type": "Boolean", "cerfa_field": "7WT", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: d\u00e9penses d'isolation thermique des parois vitr\u00e9es r\u00e9alis\u00e9es sur au moins la moiti\u00e9 des fen\u00eatres du logement ", "line_number": 635, "module": "variables_reductions_credits", "name": "f7wt", "start": "2012-01-01"}, {"@type": "Boolean", "cerfa_field": "7WU", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: achat de volets avant 2012", "line_number": 645, "module": "variables_reductions_credits", "name": "f7wu", "start": "2012-01-01"}, {"@type": "Boolean", "cerfa_field": "7WV", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: achat de volets en 2012", "line_number": 655, "module": "variables_reductions_credits", "name": "f7wv", "start": "2012-01-01"}, {"@type": "Boolean", "cerfa_field": "7WW", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: achat de portes avant 2012", "line_number": 665, "module": "variables_reductions_credits", "name": "f7ww", "start": "2012-01-01"}, {"@type": "Boolean", "cerfa_field": "7WX", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9penses en faveur de la qualit\u00e9 environnementale de l'habitation principale: achat de portes en 2012", "line_number": 675, "module": "variables_reductions_credits", "name": "f7wx", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "7XA", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: travaux engag\u00e9s avant 2011 dans un village r\u00e9sidentiel de tourisme", "line_number": 1779, "module": "variables_reductions_credits", "name": "f7xa", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XB", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: travaux engag\u00e9s avant 2011 dans une r\u00e9sidence de tourisme class\u00e9e ou meubl\u00e9e", "line_number": 1789, "module": "variables_reductions_credits", "name": "f7xb", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XC", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: prix d'acquisition ou de revient d'un logement neuf acquis ou achev\u00e9 en n-1", "line_number": 1799, "module": "variables_reductions_credits", "name": "f7xc", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "7XD", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: logement neuf, demande d'\u00e9talement du solde de la r\u00e9duction d'imp\u00f4t sur 6 ans", "line_number": 1808, "module": "variables_reductions_credits", "name": "f7xd", "start": "2009-01-01"}, {"@type": "Boolean", "cerfa_field": "7XE", "default": false, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: r\u00e9habilitation d'un logement, demande d'\u00e9talement du solde de la r\u00e9duction d'imp\u00f4t sur 6 ans", "line_number": 1818, "module": "variables_reductions_credits", "name": "f7xe", "start": "2009-01-01"}, {"@type": "Integer", "cerfa_field": "7XF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique, logement neuf: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1828, "module": "variables_reductions_credits", "name": "f7xf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XG", "default": 0, "end": "2012-12-01", "entity": "foyers_fiscaux", "label": "Investissement locatif dans le secteur touristique, travaux r\u00e9alis\u00e9s dans un village r\u00e9sidentiel de tourisme", "line_number": 3784, "module": "variables_reductions_credits", "name": "f7xg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XH", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: travaux de reconstruction, agrandissement, r\u00e9paration dans une r\u00e9sidence de tourisme class\u00e9e ou un meubl\u00e9 de tourisme", "line_number": 1836, "module": "variables_reductions_credits", "name": "f7xh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique, logement neuf: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1845, "module": "variables_reductions_credits", "name": "f7xi", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: r\u00e9habilitation d'un logement, report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1854, "module": "variables_reductions_credits", "name": "f7xj", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans une r\u00e9sidence h\u00f4teli\u00e8re \u00e0 vocation sociale: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1863, "module": "variables_reductions_credits", "name": "f7xk", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XL", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: r\u00e9habilitation d'un logement, prix de revient d'un logement r\u00e9habilit\u00e9 en n-1 et achev\u00e9 depuis moins de 15 ans", "line_number": 1872, "module": "variables_reductions_credits", "name": "f7xl", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: r\u00e9habilitation d'un logement, report de d\u00e9penses des travaux de r\u00e9habilitation achev\u00e9s les ann\u00e9es ant\u00e9rieures", "line_number": 1881, "module": "variables_reductions_credits", "name": "f7xm", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique, logement neuf: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1890, "module": "variables_reductions_credits", "name": "f7xn", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans une r\u00e9sidence h\u00f4teli\u00e8re \u00e0 vocation sociale: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1899, "module": "variables_reductions_credits", "name": "f7xo", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans une r\u00e9sidence h\u00f4teli\u00e8re \u00e0 vocation sociale: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1908, "module": "variables_reductions_credits", "name": "f7xp", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans une r\u00e9sidence h\u00f4teli\u00e8re \u00e0 vocation sociale: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1917, "module": "variables_reductions_credits", "name": "f7xq", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans une r\u00e9sidence h\u00f4teli\u00e8re \u00e0 vocation sociale: report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1926, "module": "variables_reductions_credits", "name": "f7xr", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XS", "default": 0, "entity": "foyers_fiscaux", "label": "Report des ann\u00e9es ant\u00e9rieures des dons (report des r\u00e9ductions et cr\u00e9dits d'imp\u00f4t): ann\u00e9e de perception des revenus -5", "line_number": 23, "module": "variables_reductions_credits", "name": "f7xs", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XT", "default": 0, "entity": "foyers_fiscaux", "label": "Report des ann\u00e9es ant\u00e9rieures des dons (report des r\u00e9ductions et cr\u00e9dits d'imp\u00f4t): ann\u00e9e de perception des revenus -4", "line_number": 31, "module": "variables_reductions_credits", "name": "f7xt", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XU", "default": 0, "entity": "foyers_fiscaux", "label": "Report des ann\u00e9es ant\u00e9rieures des dons (report des r\u00e9ductions et cr\u00e9dits d'imp\u00f4t): ann\u00e9e de perception des revenus -3", "line_number": 39, "module": "variables_reductions_credits", "name": "f7xu", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: Report des d\u00e9penses d'investissement des ann\u00e9es ant\u00e9rieures", "line_number": 1935, "module": "variables_reductions_credits", "name": "f7xv", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XW", "default": 0, "entity": "foyers_fiscaux", "label": "Report des ann\u00e9es ant\u00e9rieures des dons (report des r\u00e9ductions et cr\u00e9dits d'imp\u00f4t): ann\u00e9e de perception des revenus -2", "line_number": 48, "module": "variables_reductions_credits", "name": "f7xw", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XX", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: travaux engag\u00e9s apr\u00e8s 2012 dans un village r\u00e9sidentiel de tourisme", "line_number": 1944, "module": "variables_reductions_credits", "name": "f7xx", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XY", "default": 0, "entity": "foyers_fiscaux", "label": "Report des ann\u00e9es ant\u00e9rieures des dons (report des r\u00e9ductions et cr\u00e9dits d'imp\u00f4t): ann\u00e9e de perception des revenus -1", "line_number": 57, "module": "variables_reductions_credits", "name": "f7xy", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "7XZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements locatifs dans le secteur de touristique: travaux engag\u00e9s apr\u00e8s 2012 dans une r\u00e9sidence de tourisme class\u00e9e ou un meubl\u00e9 tourisme", "line_number": 1954, "module": "variables_reductions_credits", "name": "f7xz", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TB", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t recherche (entreprises b\u00e9n\u00e9ficiant de la restitution imm\u00e9diate)", "line_number": 4063, "module": "variables_reductions_credits", "name": "f8tb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TC", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t autres entreprises (recherche non encore rembours\u00e9 (ann\u00e9es ant\u00e9rieures))", "line_number": 4054, "module": "variables_reductions_credits", "name": "f8tc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TE", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: adh\u00e9sion \u00e0 un groupement de pr\u00e9vention agr\u00e9\u00e9", "line_number": 4071, "module": "variables_reductions_credits", "name": "f8te", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TF", "default": 0, "entity": "foyers_fiscaux", "label": "Reprises de r\u00e9ductions ou de cr\u00e9dits d'imp\u00f4t", "line_number": 4079, "module": "variables_reductions_credits", "name": "f8tf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TG", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d'imp\u00f4t en faveur des entreprises: Investissement en Corse", "line_number": 4087, "module": "variables_reductions_credits", "name": "f8tg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TL", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t comp\u00e9titivit\u00e9 emploi (CICE), entreprises b\u00e9n\u00e9ficiant de la restitution imm\u00e9diate", "line_number": 4095, "module": "variables_reductions_credits", "name": "f8tl", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TO", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: investissement en Corse, report non imput\u00e9 les ann\u00e9es ant\u00e9rieures", "line_number": 4103, "module": "variables_reductions_credits", "name": "f8to", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TP", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: investissement en Corse, reprise de cr\u00e9dit d'imp\u00f4t", "line_number": 4111, "module": "variables_reductions_credits", "name": "f8tp", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TS", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: investissement en Corse, cr\u00e9dit d'imp\u00f4t", "line_number": 4119, "module": "variables_reductions_credits", "name": "f8ts", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TZ", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Apprentissage", "line_number": 4145, "module": "variables_reductions_credits", "name": "f8tz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8UW", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t comp\u00e9titivit\u00e9 emploi (CICE), autres entreprises", "line_number": 4136, "module": "variables_reductions_credits", "name": "f8uw", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8UZ", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Famille", "line_number": 4128, "module": "variables_reductions_credits", "name": "f8uz", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WA", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Agriculture biologique", "line_number": 4153, "module": "variables_reductions_credits", "name": "f8wa", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WB", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Prospection commerciale", "line_number": 4161, "module": "variables_reductions_credits", "name": "f8wb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WC", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Pr\u00eats sans int\u00e9r\u00eat", "line_number": 4178, "module": "variables_reductions_credits", "name": "f8wc", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WC", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Nouvelles technologies", "line_number": 4169, "module": "variables_reductions_credits", "name": "f8wc__2008", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WD", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Formation des chefs d'entreprise", "line_number": 4187, "module": "variables_reductions_credits", "name": "f8wd", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WE", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Int\u00e9ressement", "line_number": 4196, "module": "variables_reductions_credits", "name": "f8we", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WR", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: M\u00e9tiers d'art", "line_number": 4205, "module": "variables_reductions_credits", "name": "f8wr", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WS", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Emploi de salari\u00e9s r\u00e9servistes", "line_number": 4214, "module": "variables_reductions_credits", "name": "f8ws", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WT", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Remplacement pour cong\u00e9 des agriculteurs", "line_number": 4224, "module": "variables_reductions_credits", "name": "f8wt", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WU", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Ma\u00eetre restaurateur", "line_number": 4233, "module": "variables_reductions_credits", "name": "f8wu", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WV", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: D\u00e9bitants de tabac", "line_number": 4242, "module": "variables_reductions_credits", "name": "f8wv", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8WX", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des entreprises: Formation des salari\u00e9s \u00e0 l'\u00e9conomie d'entreprise", "line_number": 4252, "module": "variables_reductions_credits", "name": "f8wx", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Investissements immobiliers engag\u00e9s avant le 1.1.2011", "line_number": 2434, "module": "variables_reductions_credits", "name": "fhod", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Investissements immobiliers que vous avez engag\u00e9 en 2012, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2010", "line_number": 2443, "module": "variables_reductions_credits", "name": "fhoe", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Investissements immobiliers que vous avez engag\u00e9 en 2012, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2011", "line_number": 2452, "module": "variables_reductions_credits", "name": "fhof", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Investissements immobiliers engag\u00e9s en 2012 ou 2013, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2010", "line_number": 2462, "module": "variables_reductions_credits", "name": "fhog", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Investissements immobiliers engag\u00e9s en 2012 ou 2013, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2011", "line_number": 2472, "module": "variables_reductions_credits", "name": "fhox", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOY", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Investissements immobiliers engag\u00e9s en 2012 ou 2013, ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50% en 2012", "line_number": 2482, "module": "variables_reductions_credits", "name": "fhoy", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HOZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement : Investissements r\u00e9alis\u00e9s en 2013, Autres investissements", "line_number": 2492, "module": "variables_reductions_credits", "name": "fhoz", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HRA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement social : Investissements r\u00e9alis\u00e9s en 2013, Investissements ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2010", "line_number": 2503, "module": "variables_reductions_credits", "name": "fhra", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HRB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement social : Investissements r\u00e9alis\u00e9s en 2013, Investissements ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2011", "line_number": 2512, "module": "variables_reductions_credits", "name": "fhrb", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HRC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement social : Investissements r\u00e9alis\u00e9s en 2013, Investissements ayant fait l'objet d'une demande d'agr\u00e9ment, d'une d\u00e9claration d'ouverture de chantier ou d'un acompte d'au moins 50 % en 2012", "line_number": 2521, "module": "variables_reductions_credits", "name": "fhrc", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HRD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le logement social : Investissements r\u00e9alis\u00e9s en 2013, Autres investissements", "line_number": 2530, "module": "variables_reductions_credits", "name": "fhrd", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t en 2010 \u00e0 hauteur de 52,63%", "line_number": 1350, "module": "variables_reductions_credits", "name": "fhsa", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t en 2010 \u00e0 hauteur de 62,5%", "line_number": 1359, "module": "variables_reductions_credits", "name": "fhsb", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements dans votre entreprise en 2010", "line_number": 1386, "module": "variables_reductions_credits", "name": "fhsc", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t calcul\u00e9e en 2010", "line_number": 1404, "module": "variables_reductions_credits", "name": "fhsd", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSE", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements dans votre entreprise avec exploitation directe montant de la r\u00e9duction d\u2019imp\u00f4t dont vous demandez l\u2019imputation en 2013, en 2010", "line_number": 1422, "module": "variables_reductions_credits", "name": "fhse", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSF", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t en 2011 \u00e0 hauteur de 52,63%", "line_number": 1368, "module": "variables_reductions_credits", "name": "fhsf", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSG", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d'imp\u00f4t en 2011 \u00e0 hauteur de 62,5%", "line_number": 1377, "module": "variables_reductions_credits", "name": "fhsg", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSH", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements dans votre entreprise en 2011", "line_number": 1395, "module": "variables_reductions_credits", "name": "fhsh", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSI", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t calcul\u00e9e en 2011", "line_number": 1413, "module": "variables_reductions_credits", "name": "fhsi", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSJ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements r\u00e9alis\u00e9s en 2013, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t dont vous demandez l\u2019imputation en 2013, en 2011", "line_number": 1431, "module": "variables_reductions_credits", "name": "fhsj", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSK", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2010 ou 2011 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t en 2010 \u00e0 hauteur de 52,63%", "line_number": 1440, "module": "variables_reductions_credits", "name": "fhsk", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSL", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2010 ou 2011 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t en 2010 \u00e0 hauteur de 62,5%", "line_number": 1449, "module": "variables_reductions_credits", "name": "fhsl", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSM", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements dans votre entreprise en 2010", "line_number": 1476, "module": "variables_reductions_credits", "name": "fhsm", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSN", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements dans votre entreprise avec exploitation directe en 2010", "line_number": 1494, "module": "variables_reductions_credits", "name": "fhsn", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSO", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t dont vous demandez l\u2019imputation en 2013, en 2010", "line_number": 1512, "module": "variables_reductions_credits", "name": "fhso", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSP", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2010 ou 2011 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t en 2011 \u00e0 hauteur de 52,63%", "line_number": 1458, "module": "variables_reductions_credits", "name": "fhsp", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSQ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2010 ou 2011 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t en 2011 \u00e0 hauteur de 62,5%", "line_number": 1467, "module": "variables_reductions_credits", "name": "fhsq", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSR", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements dans votre entreprise en 2011", "line_number": 1485, "module": "variables_reductions_credits", "name": "fhsr", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements dans votre entreprise avec exploitation directe en 2011", "line_number": 1503, "module": "variables_reductions_credits", "name": "fhss", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HST", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t dont vous demandez l\u2019imputation en 2013, en 2011", "line_number": 1521, "module": "variables_reductions_credits", "name": "fhst", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSU", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2012 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t \u00e0 hauteur de 52,63%", "line_number": 1530, "module": "variables_reductions_credits", "name": "fhsu", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSV", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2012 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t \u00e0 hauteur de 62,5%", "line_number": 1539, "module": "variables_reductions_credits", "name": "fhsv", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSW", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2012 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements dans votre entreprise", "line_number": 1548, "module": "variables_reductions_credits", "name": "fhsw", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSX", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2012 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t calcul\u00e9", "line_number": 1557, "module": "variables_reductions_credits", "name": "fhsx", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HS", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Autres investissements, Investissements ayant fait l\u2019objet en 2012 d\u2019une demande d\u2019agr\u00e9ment, d\u2019une d\u00e9claration d\u2019ouverture de chantier ou d\u2019un acompte d\u2019au moins 50 %, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t dont vous demandez l\u2019imputation en 2013", "line_number": 1566, "module": "variables_reductions_credits", "name": "fhsy", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HSZ", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t \u00e0 hauteur de 52,63%", "line_number": 1575, "module": "variables_reductions_credits", "name": "fhsz", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HTA", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements donn\u00e9s en location \u00e0 une entreprise exploitante \u00e0 laquelle vous r\u00e9troc\u00e9dez la r\u00e9duction d\u2019imp\u00f4t \u00e0 hauteur de 62,5%", "line_number": 1584, "module": "variables_reductions_credits", "name": "fhta", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HTB", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements dans votre entreprise", "line_number": 1593, "module": "variables_reductions_credits", "name": "fhtb", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HTC", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t calcul\u00e9", "line_number": 1602, "module": "variables_reductions_credits", "name": "fhtc", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "HTD", "default": 0, "entity": "foyers_fiscaux", "label": "Investissements outre-mer dans le cadre de l'entreprise : Investissements autres que ceux des lignes pr\u00e9c\u00e9dentes, Investissements dans votre entreprise avec exploitation directe, montant de la r\u00e9duction d\u2019imp\u00f4t dont vous demandez l\u2019imputation en 2013", "line_number": 1611, "module": "variables_reductions_credits", "name": "fhtd", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Charges d\u00e9ductibles non plafonn\u00e9es", "line_number": 306, "module": "charges_deductibles", "name": "cd1", "url": "http://impotsurlerevenu.org/definitions/215-charge-deductible.php", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2002", "line_number": 312, "module": "charges_deductibles", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2003, 12, 31))\ndef function_20020101_20031231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2002\n '''\n period = period.this_year\n cd_penali = simulation.calculate('cd_penali', period)\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_percap = simulation.calculate('cd_percap', period)\n cd_deddiv = simulation.calculate('cd_deddiv', period)\n cd_doment = simulation.calculate('cd_doment', period)\n\n niches1 = cd_penali + cd_acc75a + cd_percap + cd_deddiv + cd_doment\n return period, niches1\n", "input_variables": ["cd_eparet", "cd_grorep", "cd_percap", "cd_penali", "cd_acc75a", "cd_deddiv", "cd_doment"]}, "stop_instant": "2003-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2004", "line_number": 327, "module": "charges_deductibles", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2005, 12, 31))\ndef function_20040101_20051231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2004\n '''\n period = period.this_year\n cd_penali = simulation.calculate('cd_penali', period)\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_percap = simulation.calculate('cd_percap', period)\n cd_deddiv = simulation.calculate('cd_deddiv', period)\n cd_doment = simulation.calculate('cd_doment', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n\n niches1 = cd_penali + cd_acc75a + cd_percap + cd_deddiv + cd_doment + cd_eparet\n return period, niches1\n", "input_variables": ["cd_eparet", "cd_grorep", "cd_percap", "cd_penali", "cd_acc75a", "cd_deddiv", "cd_doment"]}, "stop_instant": "2005-12-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2006", "line_number": 343, "module": "charges_deductibles", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2006, 12, 31))\ndef function_20060101_20061231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2006\n '''\n period = period.this_year\n cd_penali = simulation.calculate('cd_penali', period)\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_percap = simulation.calculate('cd_percap', period)\n cd_deddiv = simulation.calculate('cd_deddiv', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n\n niches1 = cd_penali + cd_acc75a + cd_percap + cd_deddiv + cd_eparet\n return period, niches1\n", "input_variables": ["cd_eparet", "cd_grorep", "cd_percap", "cd_penali", "cd_acc75a", "cd_deddiv", "cd_doment"]}, "stop_instant": "2006-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2007", "line_number": 358, "module": "charges_deductibles", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2008, 12, 31))\ndef function_20070101_20081231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2007\n '''\n period = period.this_year\n cd_penali = simulation.calculate('cd_penali', period)\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_deddiv = simulation.calculate('cd_deddiv', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n\n niches1 = cd_penali + cd_acc75a + cd_deddiv + cd_eparet\n return period, niches1\n", "input_variables": ["cd_eparet", "cd_grorep", "cd_percap", "cd_penali", "cd_acc75a", "cd_deddiv", "cd_doment"]}, "stop_instant": "2008-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2009", "line_number": 372, "module": "charges_deductibles", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2013, 12, 31))\ndef function_20090101_20131231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2009\n '''\n period = period.this_year\n cd_penali = simulation.calculate('cd_penali', period)\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_deddiv = simulation.calculate('cd_deddiv', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n cd_grorep = simulation.calculate('cd_grorep', period)\n\n niches1 = cd_penali + cd_acc75a + cd_deddiv + cd_eparet + cd_grorep\n return period, niches1\n", "input_variables": ["cd_eparet", "cd_grorep", "cd_percap", "cd_penali", "cd_acc75a", "cd_deddiv", "cd_doment"]}, "stop_instant": "2013-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2014", "line_number": 387, "module": "charges_deductibles", "source": "@dated_function(start = date(2014, 1, 1), stop = date(2014, 12, 31))\ndef function_20140101_20141231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles avant rbg_int pour 2014\n '''\n period = period.this_year\n cd_penali = simulation.calculate('cd_penali', period)\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_deddiv = simulation.calculate('cd_deddiv', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n cd_grorep = simulation.calculate('cd_grorep', period)\n\n niches1 = cd_penali + cd_acc75a + cd_deddiv + cd_eparet + cd_grorep\n # log.error(\"Charges d\u00e9ductibles to be checked because not defined for %s\", 2014)\n return period, niches1\n", "input_variables": ["cd_eparet", "cd_grorep", "cd_percap", "cd_penali", "cd_acc75a", "cd_deddiv", "cd_doment"]}, "stop_instant": "2014-12-31", "start_instant": "2014-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Charges d\u00e9ductibles plafonn\u00e9es", "line_number": 404, "module": "charges_deductibles", "name": "cd2", "url": "http://impotsurlerevenu.org/definitions/215-charge-deductible.php", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles \u00e0 int\u00e9grer apr\u00e8s le rbg_int", "line_number": 410, "module": "charges_deductibles", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 12, 31))\ndef function_20020101_20051231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles \u00e0 int\u00e9grer apr\u00e8s le rbg_int\n '''\n period = period.this_year\n cd_sofipe = simulation.calculate('cd_sofipe', period)\n cd_cinema = simulation.calculate('cd_cinema', period)\n\n niches2 = cd_sofipe + cd_cinema\n return period, niches2\n", "input_variables": ["cd_cinema", "cd_sofipe", "cd_ecodev"]}, "stop_instant": "2005-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles \u00e0 int\u00e9grer apr\u00e8s le rbg_int", "line_number": 422, "module": "charges_deductibles", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2006, 12, 31))\ndef function_20060101_20061231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles \u00e0 int\u00e9grer apr\u00e8s le rbg_int\n '''\n period = period.this_year\n cd_sofipe = simulation.calculate('cd_sofipe', period)\n\n niches2 = cd_sofipe\n return period, niches2\n", "input_variables": ["cd_cinema", "cd_sofipe", "cd_ecodev"]}, "stop_instant": "2006-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la liste des charges d\u00e9ductibles \u00e0 int\u00e9grer apr\u00e8s le rbg_int", "line_number": 433, "module": "charges_deductibles", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2008, 12, 31))\ndef function_20070101_20081231(self, simulation, period):\n '''\n Renvoie la liste des charges d\u00e9ductibles \u00e0 int\u00e9grer apr\u00e8s le rbg_int\n '''\n period = period.this_year\n cd_ecodev = simulation.calculate('cd_ecodev', period)\n\n niches2 = cd_ecodev\n return period, niches2\n", "input_variables": ["cd_cinema", "cd_sofipe", "cd_ecodev"]}, "stop_instant": "2008-12-31", "start_instant": "2007-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 504, "module": "charges_deductibles", "name": "cd_acc75a", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Frais d\u2019accueil sous votre toit d\u2019une personne de plus de 75 ans", "line_number": 509, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n Frais d\u2019accueil sous votre toit d\u2019une personne de plus de 75 ans\n '''\n period = period.this_year\n f6eu = simulation.calculate('f6eu', period)\n f6ev = simulation.calculate('f6ev', period)\n acc75a = simulation.legislation_at(period.start).ir.charges_deductibles.acc75a\n\n amax = acc75a.max * max_(1, f6ev)\n return period, min_(f6eu, amax)\n", "input_variables": ["f6ev", "f6eu"]}}, {"@type": "Float", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "line_number": 655, "module": "charges_deductibles", "name": "cd_cinema", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions en faveur du cin\u00e9ma ou de l\u2019audiovisuel (case AA de la\nd\u00e9claration n\u00b0 2042 compl\u00e9mentaire)\n2002-2005", "line_number": 662, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n Souscriptions en faveur du cin\u00e9ma ou de l\u2019audiovisuel (case AA de la\n d\u00e9claration n\u00b0 2042 compl\u00e9mentaire)\n 2002-2005\n '''\n period = period.this_year\n f6aa = simulation.calculate('f6aa', period)\n rbg_int = simulation.calculate('rbg_int', period)\n cinema = simulation.legislation_at(period.start).ir.charges_deductibles.cinema\n\n max1 = min_(cinema.taux * rbg_int, cinema.max)\n return period, min_(f6aa, max1)\n", "input_variables": ["f6aa", "rbg_int"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 560, "module": "charges_deductibles", "name": "cd_deddiv", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9ductions diverses (case DD)", "line_number": 565, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n D\u00e9ductions diverses (case DD)\n '''\n period = period.this_year\n f6dd = simulation.calculate('f6dd', period)\n\n return period, f6dd\n", "input_variables": ["f6dd"]}}, {"@type": "Float", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "line_number": 575, "module": "charges_deductibles", "name": "cd_doment", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements DOM-TOM dans le cadre d\u2019une entreprise (case EH de la\nd\u00e9claration n\u00b0 2042 compl\u00e9mentaire)\n2002-2005", "line_number": 582, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n Investissements DOM-TOM dans le cadre d\u2019une entreprise (case EH de la\n d\u00e9claration n\u00b0 2042 compl\u00e9mentaire)\n 2002-2005\n '''\n period = period.this_year\n f6eh = simulation.calculate('f6eh', period)\n\n return period, f6eh\n", "input_variables": ["f6eh"]}}, {"@type": "Float", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "line_number": 677, "module": "charges_deductibles", "name": "cd_ecodev", "start": "2007-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Versements sur un compte \u00e9pargne cod\u00e9veloppement (case EH de la d\u00e9claration\ncompl\u00e9mentaire)\n2007-2008", "line_number": 684, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n Versements sur un compte \u00e9pargne cod\u00e9veloppement (case EH de la d\u00e9claration\n compl\u00e9mentaire)\n 2007-2008\n '''\n period = period.this_year\n f6eh = simulation.calculate('f6eh', period)\n rbg_int = simulation.calculate('rbg_int', period)\n ecodev = simulation.legislation_at(period.start).ir.charges_deductibles.ecodev\n\n max1 = min_(ecodev.taux * rbg_int, ecodev.max)\n return period, min_(f6eh, max1)\n", "input_variables": ["rbg_int", "f6eh"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 594, "module": "charges_deductibles", "name": "cd_eparet", "start": "2004-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "\u00c9pargne retraite - PERP, PR\u00c9FON, COREM et CGOS\n2004-", "line_number": 600, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n \u00c9pargne retraite - PERP, PR\u00c9FON, COREM et CGOS\n 2004-\n '''\n period = period.this_year\n f6ps_holder = simulation.compute('f6ps', period)\n f6rs_holder = simulation.compute('f6rs', period)\n f6ss_holder = simulation.compute('f6ss', period)\n\n f6ps = self.filter_role(f6ps_holder, role = VOUS)\n f6pt = self.filter_role(f6ps_holder, role = CONJ)\n f6pu = self.filter_role(f6ps_holder, role = PAC1)\n\n f6rs = self.filter_role(f6rs_holder, role = VOUS)\n f6rt = self.filter_role(f6rs_holder, role = CONJ)\n f6ru = self.filter_role(f6rs_holder, role = PAC1)\n\n f6ss = self.filter_role(f6ss_holder, role = VOUS)\n f6st = self.filter_role(f6ss_holder, role = CONJ)\n f6su = self.filter_role(f6ss_holder, role = PAC1)\n\n # TODO: En th\u00e9orie, les plafonds de d\u00e9ductions (ps, pt, pu) sont calcul\u00e9s sur\n # le formulaire 2041 GX\n return period, ((f6ps == 0) * (f6rs + f6ss) +\n (f6ps != 0) * min_(f6rs + f6ss, f6ps) +\n (f6pt == 0) * (f6rt + f6st) +\n (f6pt != 0) * min_(f6rt + f6st, f6pt) +\n (f6pu == 0) * (f6ru + f6su) +\n (f6pu != 0) * min_(f6ru + f6su, f6pu))\n", "input_variables": ["f6ss", "f6ps", "f6rs"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 699, "module": "charges_deductibles", "name": "cd_grorep", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9penses de grosses r\u00e9parations des nus-propri\u00e9taires (case 6CB et 6HJ)\n2009-", "line_number": 705, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n D\u00e9penses de grosses r\u00e9parations des nus-propri\u00e9taires (case 6CB et 6HJ)\n 2009-\n '''\n period = period.this_year\n f6cb = simulation.calculate('f6cb', period)\n f6hj = simulation.calculate('f6hj', period)\n f6hk = simulation.calculate('f6hk', period)\n f6hl = simulation.calculate('f6hl', period)\n grorep = simulation.legislation_at(period.start).ir.charges_deductibles.grorep\n\n return period, min_(f6cb + f6hj + f6hk + f6hl, grorep.max)\n", "input_variables": ["f6hj", "f6cb", "f6hl", "f6hk"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 472, "module": "charges_deductibles", "name": "cd_penali", "url": "http://frederic.anne.free.fr/Cours/ITV.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Pensions alimentaires", "line_number": 478, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n Pensions alimentaires\n '''\n period = period.this_year\n f6gi = simulation.calculate('f6gi', period)\n f6gj = simulation.calculate('f6gj', period)\n f6gp = simulation.calculate('f6gp', period)\n f6el = simulation.calculate('f6el', period)\n f6em = simulation.calculate('f6em', period)\n f6gu = simulation.calculate('f6gu', period)\n penalim = simulation.legislation_at(period.start).ir.charges_deductibles.penalim\n\n max1 = penalim.max\n taux_jgt_2006 = penalim.taux_jgt_2006\n # TODO: si vous subvenez seul(e) \u00e0 l'entretien d'un enfant mari\u00e9 ou\n # pacs\u00e9 ou charg\u00e9 de famille, quel que soit le nmbre d'enfants du jeune\n # foyer, la d\u00e9duction est limit\u00e9e \u00e0 2*max\n # S'il habite chez ses parents, max 3359, sinon 5698\n return period, (min_(f6gi * (1 + taux_jgt_2006), max1) +\n min_(f6gj * (1 + taux_jgt_2006), max1) +\n min_(f6el, max1) +\n min_(f6em, max1) +\n f6gp * (1 + taux_jgt_2006) + f6gu)\n", "input_variables": ["f6gi", "f6gj", "f6gu", "f6em", "f6el", "f6gp"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 522, "module": "charges_deductibles", "name": "cd_percap", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Pertes en capital cons\u00e9cutives \u00e0 la souscription au capital de soci\u00e9t\u00e9s\nnouvelles ou de soci\u00e9t\u00e9s en difficult\u00e9 (cases CB et DA de la d\u00e9claration\ncompl\u00e9mentaire)", "line_number": 527, "module": "charges_deductibles", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Pertes en capital cons\u00e9cutives \u00e0 la souscription au capital de soci\u00e9t\u00e9s\n nouvelles ou de soci\u00e9t\u00e9s en difficult\u00e9 (cases CB et DA de la d\u00e9claration\n compl\u00e9mentaire)\n '''\n period = period.this_year\n f6cb = simulation.calculate('f6cb', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n percap = simulation.legislation_at(period.start).ir.charges_deductibles.percap\n\n max_cb = percap.max_cb * (1 + maries_ou_pacses)\n return period, min_(f6cb, max_cb)\n", "input_variables": ["maries_ou_pacses", "f6cb", "f6da"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Pertes en capital cons\u00e9cutives \u00e0 la souscription au capital de soci\u00e9t\u00e9s\nnouvelles ou de soci\u00e9t\u00e9s en difficult\u00e9 (cases CB et DA de la d\u00e9claration\ncompl\u00e9mentaire)", "line_number": 542, "module": "charges_deductibles", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2006, 12, 31))\ndef function_20030101_20061231(self, simulation, period):\n '''\n Pertes en capital cons\u00e9cutives \u00e0 la souscription au capital de soci\u00e9t\u00e9s\n nouvelles ou de soci\u00e9t\u00e9s en difficult\u00e9 (cases CB et DA de la d\u00e9claration\n compl\u00e9mentaire)\n '''\n period = period.this_year\n f6cb = simulation.calculate('f6cb', period)\n f6da = simulation.calculate('f6da', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n percap = simulation.legislation_at(period.start).ir.charges_deductibles.percap\n\n max_cb = percap.max_cb * (1 + maries_ou_pacses)\n max_da = percap.max_da * (1 + maries_ou_pacses)\n return period, min_(min_(f6cb, max_cb) + min_(f6da, max_da), max_da)\n", "input_variables": ["maries_ou_pacses", "f6cb", "f6da"]}, "stop_instant": "2006-12-31", "start_instant": "2003-01-01"}]}}, {"@type": "Float", "default": 0, "end": "2006-12-31", "entity": "foyers_fiscaux", "line_number": 632, "module": "charges_deductibles", "name": "cd_sofipe", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des SOFIP\u00caCHE (case CC de la d\u00e9claration\ncompl\u00e9mentaire)\n2002-2006", "line_number": 639, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n '''\n Souscriptions au capital des SOFIP\u00caCHE (case CC de la d\u00e9claration\n compl\u00e9mentaire)\n 2002-2006\n '''\n period = period.this_year\n f6cc = simulation.calculate('f6cc', period)\n rbg_int = simulation.calculate('rbg_int', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n sofipe = simulation.legislation_at(period.start).ir.charges_deductibles.sofipe\n\n max1 = min_(sofipe.taux * rbg_int, sofipe.max * (1 + maries_ou_pacses))\n return period, min_(f6cc, max1)\n", "input_variables": ["maries_ou_pacses", "f6cc", "rbg_int"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Charges d\u00e9ductibles", "line_number": 458, "module": "charges_deductibles", "name": "charges_deduc", "url": "http://impotsurlerevenu.org/definitions/215-charge-deductible.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 464, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n period = period.this_year\n cd1 = simulation.calculate('cd1', period)\n cd2 = simulation.calculate('cd2', period)\n\n return period, cd1 + cd2\n", "input_variables": ["cd1", "cd2"]}}, {"@type": "Integer", "cerfa_field": "6AA", "default": 0, "end": "2006-12-31", "entity": "foyers_fiscaux", "label": "Souscriptions en faveur du cin\u00e9ma ou de l\u2019audiovisuel", "line_number": 138, "module": "charges_deductibles", "name": "f6aa", "start": "2005-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6CB", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de grosses r\u00e9parations effectu\u00e9es par les nus-propri\u00e9taires (d\u00e9penses r\u00e9alis\u00e9es au cours de l'ann\u00e9e de perception des revenus)", "line_number": 185, "module": "charges_deductibles", "name": "f6cb", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "CC", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "label": "Souscriptions au capital des SOFIP\u00caCHE", "line_number": 149, "module": "charges_deductibles", "name": "f6cc", "start": "2005-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "DA", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "label": "Pertes en capital cons\u00e9cutives \u00e0 la souscription au capital de soci\u00e9t\u00e9s nouvelles ou de soci\u00e9t\u00e9s en difficult\u00e9", "line_number": 173, "module": "charges_deductibles", "name": "f6da", "start": "2005-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6DD", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ductions diverses", "line_number": 95, "module": "charges_deductibles", "name": "f6dd", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6DE", "default": 0, "entity": "foyers_fiscaux", "label": "CSG d\u00e9ductible calcul\u00e9e sur les revenus du patrimoine", "line_number": 17, "module": "charges_deductibles", "name": "f6de", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "EH", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "line_number": 162, "module": "charges_deductibles", "name": "f6eh", "start": "2005-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6EL", "default": 0, "entity": "foyers_fiscaux", "label": "Autres pensions alimentaires vers\u00e9es \u00e0 des enfants majeurs: 1er enfant", "line_number": 42, "module": "charges_deductibles", "name": "f6el", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6EM", "default": 0, "entity": "foyers_fiscaux", "label": "Autres pensions alimentaires vers\u00e9es \u00e0 des enfants majeurs: 2eme enfant", "line_number": 51, "module": "charges_deductibles", "name": "f6em", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6EU", "default": 0, "entity": "foyers_fiscaux", "label": "Frais d'accueil de personnes de plus de 75 ans dans le besoin", "line_number": 78, "module": "charges_deductibles", "name": "f6eu", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6EV", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre de personnes de plus de 75 ans dans le besoin accueillies sous votre toit", "line_number": 86, "module": "charges_deductibles", "name": "f6ev"}, {"@type": "Integer", "cerfa_field": "6FA", "default": 0, "entity": "foyers_fiscaux", "label": "Deficits globaux des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits les ann\u00e9es pr\u00e9c\u00e9dentes: ann\u00e9e de perception des revenus -6", "line_number": 241, "module": "charges_deductibles", "name": "f6fa", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6FB", "default": 0, "entity": "foyers_fiscaux", "label": "Deficits globaux des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits: ann\u00e9e de perception des revenus -5", "line_number": 249, "module": "charges_deductibles", "name": "f6fb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6FC", "default": 0, "entity": "foyers_fiscaux", "label": "Deficits globaux des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits: ann\u00e9e de perception des revenus -4", "line_number": 257, "module": "charges_deductibles", "name": "f6fc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6FD", "default": 0, "entity": "foyers_fiscaux", "label": "Deficits globaux des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits: ann\u00e9e de perception des revenus -3", "line_number": 265, "module": "charges_deductibles", "name": "f6fd", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6FE", "default": 0, "entity": "foyers_fiscaux", "label": "Deficits globaux des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits: ann\u00e9e de perception des revenus -2", "line_number": 273, "module": "charges_deductibles", "name": "f6fe", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6FL", "default": 0, "entity": "foyers_fiscaux", "label": "Deficits globaux des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits: ann\u00e9e de perception des revenus -1", "line_number": 281, "module": "charges_deductibles", "name": "f6fl", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6GH", "default": 0, "entity": "foyers_fiscaux", "label": "Sommes \u00e0 ajouter au revenu imposable", "line_number": 232, "module": "charges_deductibles", "name": "f6gh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6GI", "default": 0, "entity": "foyers_fiscaux", "label": "Pensions alimentaires vers\u00e9es \u00e0 des enfants majeurs (d\u00e9cision de justice d\u00e9finitive avant 2006): 1er enfant", "line_number": 26, "module": "charges_deductibles", "name": "f6gi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6GJ", "default": 0, "entity": "foyers_fiscaux", "label": "Pensions alimentaires vers\u00e9es \u00e0 des enfants majeurs (d\u00e9cision de justice d\u00e9finitive avant 2006): 2eme enfant", "line_number": 34, "module": "charges_deductibles", "name": "f6gj", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6GP", "default": 0, "entity": "foyers_fiscaux", "label": "Autres pensions alimentaires vers\u00e9es d\u00e9cision de justice d\u00e9finitive avant 2006 (mineurs, ascendants)", "line_number": 60, "module": "charges_deductibles", "name": "f6gp", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6GU", "default": 0, "entity": "foyers_fiscaux", "label": "Autres pensions alimentaires vers\u00e9es (mineurs, ascendants)", "line_number": 68, "module": "charges_deductibles", "name": "f6gu", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6HJ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de grosses r\u00e9parations effectu\u00e9es par les nus-propri\u00e9taires: report des d\u00e9penses des ann\u00e9es ant\u00e9rieures", "line_number": 195, "module": "charges_deductibles", "name": "f6hj", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6HK", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de grosses r\u00e9parations effectu\u00e9es par les nus-propri\u00e9taires: report des d\u00e9penses des ann\u00e9es ant\u00e9rieures", "line_number": 204, "module": "charges_deductibles", "name": "f6hk", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6HL", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de grosses r\u00e9parations effectu\u00e9es par les nus-propri\u00e9taires: report des d\u00e9penses des ann\u00e9es ant\u00e9rieures", "line_number": 213, "module": "charges_deductibles", "name": "f6hl", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "6HM", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9penses de grosses r\u00e9parations effectu\u00e9es par les nus-propri\u00e9taires: report des d\u00e9penses des ann\u00e9es ant\u00e9rieures", "line_number": 222, "module": "charges_deductibles", "name": "f6hm", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'6PS', 1: u'6PT', 2: u'6PU'}", "default": 0, "entity": "individus", "label": "Plafond de d\u00e9duction \u00e9pargne retraite (plafond calcul\u00e9 sur les revenus per\u00e7us en n-1)", "line_number": 104, "module": "charges_deductibles", "name": "f6ps", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'6RS', 1: u'6RT', 2: u'6RU'}", "default": 0, "entity": "individus", "label": "Cotisations d'\u00e9pargne retraite vers\u00e9es au titre d'un PERP, PREFON, COREM et C.G.O.S", "line_number": 115, "module": "charges_deductibles", "name": "f6rs", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'6SS', 1: u'6ST', 2: u'6SU'}", "default": 0, "entity": "individus", "label": "Rachat de cotisations PERP, PREFON, COREM et C.G.O.S", "line_number": 126, "module": "charges_deductibles", "name": "f6ss", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu brut global interm\u00e9diaire", "line_number": 445, "module": "charges_deductibles", "name": "rbg_int", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 450, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n period = period.this_year\n rbg = simulation.calculate('rbg', period)\n cd1 = simulation.calculate('cd1', period)\n\n return period, max_(rbg - cd1, 0)\n", "input_variables": ["rbg", "cd1"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Charges d\u00e9ductibles entrant dans le revenus fiscal de r\u00e9f\u00e9rence", "line_number": 290, "module": "charges_deductibles", "name": "rfr_cd", "url": "http://impotsurlerevenu.org/definitions/215-charge-deductible.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 296, "module": "charges_deductibles", "source": "def function(self, simulation, period):\n period = period.this_year\n cd_acc75a = simulation.calculate('cd_acc75a', period)\n cd_doment = simulation.calculate('cd_doment', period)\n cd_eparet = simulation.calculate('cd_eparet', period)\n cd_sofipe = simulation.calculate('cd_sofipe', period)\n\n return period, cd_acc75a + cd_doment + cd_eparet + cd_sofipe\n", "input_variables": ["cd_eparet", "cd_sofipe", "cd_doment", "cd_acc75a"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Acquisition de biens culturels", "line_number": 274, "module": "credits_impot", "name": "accult", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Acquisition de biens culturels (case 7UO)\n2002-", "line_number": 280, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Acquisition de biens culturels (case 7UO)\n 2002-\n '''\n period = period.this_year\n f7uo = simulation.calculate('f7uo', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.accult\n return period, P.taux * f7uo\n", "input_variables": ["f7uo"]}}, {"@type": "Float", "default": 0, "end": "2007-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t pour d\u00e9pense d'acquisition ou de transformation d'un v\u00e9hicule GPL ou mixte", "line_number": 293, "module": "credits_impot", "name": "acqgpl", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d'imp\u00f4t pour d\u00e9pense d'acquisition ou de transformation d'un v\u00e9hicule GPL ou mixte\n2002-2007", "line_number": 300, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d'imp\u00f4t pour d\u00e9pense d'acquisition ou de transformation d'un v\u00e9hicule GPL ou mixte\n 2002-2007\n '''\n period = period.this_year\n f7up = simulation.calculate('f7up', period)\n f7uq = simulation.calculate('f7uq', period)\n acqgpl = simulation.legislation_at(period.start).ir.credits_impot.acqgpl\n\n return period, f7up * acqgpl.mont_up + f7uq * acqgpl.mont_uq\n", "input_variables": ["f7up", "f7uq"]}}, {"@type": "Float", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9", "line_number": 313, "module": "credits_impot", "name": "aidmob", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9\n2005-2008", "line_number": 320, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d'imp\u00f4t aide \u00e0 la mobilit\u00e9\n 2005-2008\n '''\n period = period.this_year\n f1ar = simulation.calculate('f1ar', period)\n f1br = simulation.calculate('f1br', period)\n f1cr = simulation.calculate('f1cr', period)\n f1dr = simulation.calculate('f1dr', period)\n f1er = simulation.calculate('f1er', period)\n _P = simulation.legislation_at(period.start)\n\n return period, (f1ar + f1br + f1cr + f1dr + f1er) * _P.ir.credits_impot.aidmob.montant\n", "input_variables": ["f1cr", "f1dr", "f1er", "f1ar", "f1br"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes", "line_number": 336, "module": "credits_impot", "name": "aidper", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7WI, 7WJ, 7WL).\n2002-2003", "line_number": 341, "module": "credits_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2003, 12, 31))\ndef function_20020101_20031231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7WI, 7WJ, 7WL).\n 2002-2003\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n nbH = simulation.calculate('nbH', period)\n f7wi = simulation.calculate('f7wi', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n\n n = nb_pac2 - nbH / 2\n max0 = (P.max * (1 + maries_ou_pacses) +\n P.pac1 * (n >= 1) + P.pac2 * (n >= 2) + P.pac3 * (max_(n - 2, 0)) +\n ((n >= 2) * P.pac3 * nbH +\n (n == 1) * (P.pac2 + (nbH > 1) * P.pac3 * (nbH - 1) ) * (nbH >= 1) +\n (n == 0) * (P.pac1 + (nbH > 1) * P.pac2 * (nbH - 1) + (nbH > 2) * P.pac3 * (nbH - 2)) * (nbH >= 1)) / 2)\n\n return period, P.taux_wi * min_(f7wi, max0)\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": "2003-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7WI, 7WJ).\n2004-2005", "line_number": 366, "module": "credits_impot", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2005, 12, 31))\ndef function_20040101_20051231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7WI, 7WJ).\n 2004-2005\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n nbH = simulation.calculate('nbH', period)\n f7wi = simulation.calculate('f7wi', period)\n f7wj = simulation.calculate('f7wj', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n\n n = nb_pac2 - nbH/2\n max0 = (P.max * (1 + maries_ou_pacses) +\n P.pac1 * (n >= 1) + P.pac2 * (n >= 2) + P.pac3 * (max_(n - 2, 0)) +\n ((n >= 2) * P.pac3 * nbH +\n (n == 1) * (P.pac2 + (nbH > 1) * P.pac3 * (nbH - 1) ) * (nbH >= 1) +\n (n == 0) * (P.pac1 + (nbH > 1) * P.pac2 * (nbH - 1) + (nbH > 2) * P.pac3 * (nbH - 2)) * (nbH >= 1)) / 2)\n\n max1 = max_(0, max0 - f7wj)\n return period, (P.taux_wj * min_(f7wj, max0) +\n P.taux_wi * min_(f7wi, max1))\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": "2005-12-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7WI, 7WJ).\n2006-2009\ncf. cerfa 50796", "line_number": 394, "module": "credits_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2009, 12, 31))\ndef function_20060101_20091231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7WI, 7WJ).\n 2006-2009\n cf. cerfa 50796\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7wi = simulation.calculate('f7wi', period)\n f7wj = simulation.calculate('f7wj', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n\n max1 = max_(0, max0 - f7wj)\n return period, (P.taux_wj * min_(f7wj, max0) +\n P.taux_wi * min_(f7wi, max1))\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": "2009-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7SF, 7WI, 7WJ, 7WL).\n2010-2011", "line_number": 417, "module": "credits_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2011, 12, 31))\ndef function_20100101_20111231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7SF, 7WI, 7WJ, 7WL).\n 2010-2011\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7sf = simulation.calculate('f7sf', period)\n f7wi = simulation.calculate('f7wi', period)\n f7wj = simulation.calculate('f7wj', period)\n f7wl = simulation.calculate('f7wl', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n\n max1 = max_(0, max0 - f7wl - f7sf)\n max2 = max_(0, max1 - f7wj)\n return period, P.taux_wl * min_(f7wl+f7sf, max0) + P.taux_wj * min_(f7wj, max1) + P.taux_wi * min_(f7wi, max2)\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": "2011-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7WI, 7WJ, 7WL, 7WR).\n2012", "line_number": 440, "module": "credits_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7WI, 7WJ, 7WL, 7WR).\n 2012\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7wi = simulation.calculate('f7wi', period)\n f7wj = simulation.calculate('f7wj', period)\n f7wl = simulation.calculate('f7wl', period)\n f7wr = simulation.calculate('f7wr', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n # On ne contr\u00f4le pas que 7WR ne d\u00e9passe pas le plafond (\u00e7a d\u00e9pend du nombre de logements (7sa) et de la nature des\n #travaux, c'est un peu le bordel)\n max00 = P.max * (1 + maries_ou_pacses)\n max0 = max00 + P.pac1 * nb_pac2\n max1 = max_(0, max0 - max_(0,f7wl-max00))\n max2 = max_(0, max1 - f7wj)\n return period, (P.taux_wr * f7wr + P.taux_wl * min_(f7wl, max00) + P.taux_wl * max_(f7wl - max00, 0) +\n P.taux_wj * min_(f7wj, max1) + P.taux_wi * min_(f7wi, max2))\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7WI, 7WJ, 7WL).\n2013", "line_number": 466, "module": "credits_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7WI, 7WJ, 7WL).\n 2013\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7wj = simulation.calculate('f7wj', period)\n f7wl = simulation.calculate('f7wl', period)\n f7wr = simulation.calculate('f7wr', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n # On ne contr\u00f4le pas que 7WR ne d\u00e9passe pas le plafond (\u00e7a d\u00e9pend du nombre de logements et de la nature des\n # travaux, c'est un peu le bordel)\n max00 = P.max * (1 + maries_ou_pacses)\n max0 = max00 + P.pac1 * nb_pac2\n max1 = max_(0, max0 - max_(0,f7wl-max00))\n\n return period, (P.taux_wr * f7wr + P.taux_wl * min_(f7wl, max00) + P.taux_wl * max_(f7wl - max00, 0) + P.taux_wj *\n min_(f7wj, max1))\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n(cases 7WI, 7WJ, 7WL).\n2014 et sup\u00e9rieurs non v\u00e9rifi\u00e9e", "line_number": 491, "module": "credits_impot", "source": "@dated_function(start = date(2014, 1, 1))\ndef function_2014__(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de l\u2019aide aux personnes\n (cases 7WI, 7WJ, 7WL).\n 2014 et sup\u00e9rieurs non v\u00e9rifi\u00e9e\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7wj = simulation.calculate('f7wj', period)\n f7wl = simulation.calculate('f7wl', period)\n f7wr = simulation.calculate('f7wr', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.aidper\n # On ne contr\u00f4le pas que 7WR ne d\u00e9passe pas le plafond (\u00e7a d\u00e9pend du nombre de logements et de la nature des\n # travaux, c'est un peu le bordel)\n max00 = P.max * (1 + maries_ou_pacses)\n max0 = max00 + P.pac1 * nb_pac2\n max1 = max_(0, max0 - max_(0,f7wl-max00))\n\n return period, (P.taux_wr * f7wr + P.taux_wl * min_(f7wl, max00) + P.taux_wl * max_(f7wl - max00, 0) + P.taux_wj *\n min_(f7wj, max1))\n", "input_variables": ["maries_ou_pacses", "f7wl", "f7wi", "f7wj", "nb_pac2", "nbH", "f7sf", "f7wr"]}, "stop_instant": null, "start_instant": "2014-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t primes d\u2019assurance pour loyers impay\u00e9s", "line_number": 517, "module": "credits_impot", "name": "assloy", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t primes d\u2019assurance pour loyers impay\u00e9s (case 4BF)\n2005-", "line_number": 523, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t primes d\u2019assurance pour loyers impay\u00e9s (case 4BF)\n 2005-\n '''\n period = period.this_year\n f4bf = simulation.calculate('f4bf', period)\n _P = simulation.legislation_at(period.start)\n\n return period, _P.ir.credits_impot.assloy.taux * f4bf\n", "input_variables": ["f4bf"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 535, "module": "credits_impot", "name": "autent", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Auto-entrepreneur : versements d\u2019imp\u00f4t sur le revenu (case 8UY)\n2009-", "line_number": 541, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Auto-entrepreneur : versements d\u2019imp\u00f4t sur le revenu (case 8UY)\n 2009-\n '''\n period = period.this_year\n f8uy = simulation.calculate('f8uy', period)\n\n return period, f8uy\n", "input_variables": ["f8uy"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile", "line_number": 552, "module": "credits_impot", "name": "ci_garext", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile (cases 7GA \u00e0 7GC et 7GE \u00e0 7GG)\n2005-", "line_number": 558, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile (cases 7GA \u00e0 7GC et 7GE \u00e0 7GG)\n 2005-\n '''\n period = period.this_year\n f7ga = simulation.calculate('f7ga', period)\n f7gb = simulation.calculate('f7gb', period)\n f7gc = simulation.calculate('f7gc', period)\n f7ge = simulation.calculate('f7ge', period)\n f7gf = simulation.calculate('f7gf', period)\n f7gg = simulation.calculate('f7gg', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.garext\n max1 = P.max\n return period, P.taux * (min_(f7ga, max1) +\n min_(f7gb, max1) +\n min_(f7gc, max1) +\n min_(f7ge, max1 / 2) +\n min_(f7gf, max1 / 2) +\n min_(f7gg, max1 / 2))\n", "input_variables": ["f7ge", "f7gf", "f7gg", "f7ga", "f7gb", "f7gc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus", "line_number": 14, "module": "credits_impot", "name": "credits_impot", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2002 ", "line_number": 19, "module": "credits_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2002 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n acqgpl = simulation.calculate('acqgpl', period)\n aidper = simulation.calculate('aidper', period)\n creimp = simulation.calculate('creimp', period)\n drbail = simulation.calculate('drbail', period)\n prlire = simulation.calculate('prlire', period)\n\n return period, accult + acqgpl + aidper + creimp + drbail + prlire\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2003 et 2004 ", "line_number": 32, "module": "credits_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2004, 12, 31))\ndef function_20030101_20041231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2003 et 2004 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n acqgpl = simulation.calculate('acqgpl', period)\n aidper = simulation.calculate('aidper', period)\n creimp = simulation.calculate('creimp', period)\n drbail = simulation.calculate('drbail', period)\n mecena = simulation.calculate('mecena', period)\n prlire = simulation.calculate('prlire', period)\n\n return period, accult + acqgpl + aidper + creimp + drbail + mecena + prlire\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2004-12-31", "start_instant": "2003-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2005 et 2006 ", "line_number": 46, "module": "credits_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2006, 12, 31))\ndef function_20050101_20061231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2005 et 2006 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n acqgpl = simulation.calculate('acqgpl', period)\n aidmob = simulation.calculate('aidmob', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n ci_garext = simulation.calculate('ci_garext', period)\n creimp = simulation.calculate('creimp', period)\n divide = simulation.calculate('divide', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n jeunes = simulation.calculate('jeunes', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n\n return period, (accult + acqgpl + aidmob + aidper + assloy + ci_garext + creimp + divide + direpa + drbail + jeunes +\n mecena + preetu + prlire + quaenv)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2006-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2007 ", "line_number": 69, "module": "credits_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2007, 12, 31))\ndef function_20070101_20071231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2007 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n acqgpl = simulation.calculate('acqgpl', period)\n aidmob = simulation.calculate('aidmob', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n ci_garext = simulation.calculate('ci_garext', period)\n creimp = simulation.calculate('creimp', period)\n divide = simulation.calculate('divide', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n jeunes = simulation.calculate('jeunes', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + acqgpl + aidmob + aidper + assloy + ci_garext + creimp + divide + direpa + drbail + inthab +\n jeunes + mecena + preetu + prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2007-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2008 ", "line_number": 94, "module": "credits_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2008, 12, 31))\ndef function_20080101_20081231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2008 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidmob = simulation.calculate('aidmob', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n ci_garext = simulation.calculate('ci_garext', period)\n creimp = simulation.calculate('creimp', period)\n creimp_exc_2008 = simulation.calculate('creimp_exc_2008', period)\n divide = simulation.calculate('divide', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n jeunes = simulation.calculate('jeunes', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidmob + aidper + assloy + ci_garext + creimp + creimp_exc_2008 + divide + direpa + drbail +\n inthab + jeunes + mecena + preetu + prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2008-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2009 ", "line_number": 119, "module": "credits_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2009 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n ci_garext = simulation.calculate('ci_garext', period)\n creimp = simulation.calculate('creimp', period)\n divide = simulation.calculate('divide', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidper + assloy + ci_garext + creimp + divide + direpa + drbail + inthab + mecena + preetu +\n prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2010 ", "line_number": 141, "module": "credits_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2010 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n autent = simulation.calculate('autent', period)\n ci_garext = simulation.calculate('ci_garext', period)\n creimp = simulation.calculate('creimp', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n jeunes = simulation.calculate('jeunes', period)\n mecena = simulation.calculate('mecena', period)\n percvm = simulation.calculate('percvm', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidper + assloy + autent + ci_garext + creimp + direpa + drbail + inthab + mecena + percvm +\n preetu + prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2011 ", "line_number": 165, "module": "credits_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2011 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n autent = simulation.calculate('autent', period)\n ci_garext = simulation.calculate('ci_garext', period)\n creimp = simulation.calculate('creimp', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidper + assloy + autent + ci_garext + creimp + direpa + drbail + inthab + mecena + preetu +\n prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2012 ", "line_number": 187, "module": "credits_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t pour l'imp\u00f4t sur les revenus de 2012 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n autent = simulation.calculate('autent', period)\n ci_garext = simulation.calculate('ci_garext', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creimp = simulation.calculate('creimp', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidper + assloy + autent + ci_garext + cotsyn + creimp + direpa + drbail + inthab + mecena +\n preetu + prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t cr\u00e9dit\u00e9s l'imp\u00f4t sur les revenus de 2013 ", "line_number": 210, "module": "credits_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t cr\u00e9dit\u00e9s l'imp\u00f4t sur les revenus de 2013 \"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n autent = simulation.calculate('autent', period)\n ci_garext = simulation.calculate('ci_garext', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creimp = simulation.calculate('creimp', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidper + assloy + autent + ci_garext + cotsyn + creimp + direpa + drbail + inthab + mecena +\n preetu + prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d'imp\u00f4t cr\u00e9dit\u00e9s l'imp\u00f4t sur les revenus de 2014 et + (non v\u00e9rifi\u00e9)", "line_number": 233, "module": "credits_impot", "source": "@dated_function(start = date(2014, 1, 1)) #\u00a0Not checked\ndef function_2014__(self, simulation, period):\n \"\"\" Cr\u00e9dits d'imp\u00f4t cr\u00e9dit\u00e9s l'imp\u00f4t sur les revenus de 2014 et + (non v\u00e9rifi\u00e9)\"\"\"\n period = period.this_year\n accult = simulation.calculate('accult', period)\n aidper = simulation.calculate('aidper', period)\n assloy = simulation.calculate('assloy', period)\n autent = simulation.calculate('autent', period)\n ci_garext = simulation.calculate('ci_garext', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creimp = simulation.calculate('creimp', period)\n direpa = simulation.calculate('direpa', period)\n drbail = simulation.calculate('drbail', period)\n inthab = simulation.calculate('inthab', period)\n mecena = simulation.calculate('mecena', period)\n preetu = simulation.calculate('preetu', period)\n prlire = simulation.calculate('prlire', period)\n quaenv = simulation.calculate('quaenv', period)\n saldom2 = simulation.calculate('saldom2', period)\n\n return period, (accult + aidper + assloy + autent + ci_garext + cotsyn + creimp + direpa + drbail + inthab + mecena +\n preetu + prlire + quaenv + saldom2)\n", "input_variables": ["creimp", "preetu", "divide", "prlire", "aidper", "inthab", "cotsyn", "ci_garext", "acqgpl", "saldom2", "creimp_exc_2008", "autent", "percvm", "direpa", "aidmob", "mecena", "jeunes", "accult", "drbail", "quaenv", "assloy"]}, "stop_instant": null, "start_instant": "2014-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Avoirs fiscaux et cr\u00e9dits d'imp\u00f4t", "line_number": 605, "module": "credits_impot", "name": "creimp", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 610, "module": "credits_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8td_2002_2005 = simulation.calculate('f8td_2002_2005', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8td_2002_2005 + f8te - f8tf + f8tg + f8th)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 625, "module": "credits_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2003, 12, 31))\ndef function_20030101_20031231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8td_2002_2005 = simulation.calculate('f8td_2002_2005', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8td_2002_2005 + f8te - f8tf + f8tg + f8th + f8to - f8tp)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2003-12-31", "start_instant": "2003-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 642, "module": "credits_impot", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2004, 12, 31))\ndef function_20040101_20041231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8td_2002_2005 = simulation.calculate('f8td_2002_2005', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8td_2002_2005 + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2004-12-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 661, "module": "credits_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2005, 12, 31))\ndef function_20050101_20051231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8td_2002_2005 = simulation.calculate('f8td_2002_2005', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wc = simulation.calculate('f8wc', period)\n f8we = simulation.calculate('f8we', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8td_2002_2005 + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz + f8wa +\n f8wb + f8wc + f8we)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2005-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 685, "module": "credits_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2006, 12, 31))\ndef function_20060101_20061231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wc = simulation.calculate('f8wc', period)\n f8wd = simulation.calculate('f8wd', period)\n f8we = simulation.calculate('f8we', period)\n f8wr = simulation.calculate('f8wr', period)\n f8ws = simulation.calculate('f8ws', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz + f8wa + f8wb + f8wc +\n f8wd + f8we + f8wr + f8ws + f8wt + f8wu)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2006-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 713, "module": "credits_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2007, 12, 31))\ndef function_20070101_20071231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wc = simulation.calculate('f8wc', period)\n f8wd = simulation.calculate('f8wd', period)\n f8wr = simulation.calculate('f8wr', period)\n f8ws = simulation.calculate('f8ws', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n f8wv = simulation.calculate('f8wv', period)\n f8wx = simulation.calculate('f8wx', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz + f8wa + f8wb + f8wc +\n f8wd + f8wr + f8ws + f8wt + f8wu + f8wv + f8wx)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2007-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 742, "module": "credits_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2008, 12, 31))\ndef function_20080101_20081231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wc = simulation.calculate('f8wc', period)\n f8wd = simulation.calculate('f8wd', period)\n f8we = simulation.calculate('f8we', period)\n f8wr = simulation.calculate('f8wr', period)\n f8ws = simulation.calculate('f8ws', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n f8wv = simulation.calculate('f8wv', period)\n f8wx = simulation.calculate('f8wx', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz + f8wa + f8wb + f8wc +\n f8wd + f8wr + f8ws + f8wt + f8wu + f8wv + f8wx)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2008-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 772, "module": "credits_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wd = simulation.calculate('f8wd', period)\n f8we = simulation.calculate('f8we', period)\n f8wr = simulation.calculate('f8wr', period)\n f8ws = simulation.calculate('f8ws', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n f8wv = simulation.calculate('f8wv', period)\n f8wx = simulation.calculate('f8wx', period)\n\n return period, (f2ab + f8ta + f8tb + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz + f8wa + f8wb + f8wd +\n f8we + f8wr + f8ws + f8wt + f8wu + f8wv + f8wx)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 800, "module": "credits_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2011, 12, 31))\ndef function_20100101_20111231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wd = simulation.calculate('f8wd', period)\n f8we = simulation.calculate('f8we', period)\n f8wr = simulation.calculate('f8wr', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n f8wv = simulation.calculate('f8wv', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tz + f8uz + f8wa + f8wb + f8wd +\n f8we + f8wr + f8wt + f8wu + f8wv)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2011-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 827, "module": "credits_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8ts = simulation.calculate('f8ts', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wd = simulation.calculate('f8wd', period)\n f8we = simulation.calculate('f8we', period)\n f8wr = simulation.calculate('f8wr', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n f8wv = simulation.calculate('f8wv', period)\n\n return period, (f2ab + f8ta + f8tb + f8tc +f8te - f8tf + f8tg + f8th + f8to - f8tp + f8ts + f8tz + f8uz + f8wa + f8wb +\n f8wd + f8we + f8wr + f8wt + f8wu + f8wv)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 855, "module": "credits_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n f2ck = simulation.calculate('f2ck', period)\n f8ta = simulation.calculate('f8ta', period)\n f8tb = simulation.calculate('f8tb', period)\n f8tc = simulation.calculate('f8tc', period)\n f8te = simulation.calculate('f8te', period)\n f8tf = simulation.calculate('f8tf', period)\n f8tg = simulation.calculate('f8tg', period)\n f8th = simulation.calculate('f8th', period)\n f8tl = simulation.calculate('f8tl', period)\n f8to = simulation.calculate('f8to', period)\n f8tp = simulation.calculate('f8tp', period)\n f8ts = simulation.calculate('f8ts', period)\n f8tz = simulation.calculate('f8tz', period)\n f8uw = simulation.calculate('f8uw', period)\n f8uz = simulation.calculate('f8uz', period)\n f8wa = simulation.calculate('f8wa', period)\n f8wb = simulation.calculate('f8wb', period)\n f8wc = simulation.calculate('f8wc', period)\n f8wd = simulation.calculate('f8wd', period)\n f8we = simulation.calculate('f8we', period)\n f8wr = simulation.calculate('f8wr', period)\n f8wt = simulation.calculate('f8wt', period)\n f8wu = simulation.calculate('f8wu', period)\n\n return period, (f2ab + f2ck + f8ta + f8tb + f8tc + f8te - f8tf + f8tg + f8th + f8to - f8tp + f8tl + f8ts + f8tz + f8uw +\n f8uz + f8wa + f8wb + f8wc + f8wd + f8we + f8wr + f8wt + f8wu)\n", "input_variables": ["f2ab", "f2ck", "f8wx", "f8wv", "f8wu", "f8wt", "f8ws", "f8wr", "f8we", "f8wd", "f8wc", "f8wb", "f8wa", "f8td_2002_2005", "f8tz", "f8ts", "f8tp", "f8th", "f8to", "f8tl", "f8tb", "f8tc", "f8ta", "f8tf", "f8tg", "f8te", "f8uw", "f8uz"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t exceptionnel sur les revenus 2008", "line_number": 582, "module": "credits_impot", "name": "creimp_exc_2008", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d'imp\u00f4t exceptionnel sur les revenus 2008\nhttp://www11.minefi.gouv.fr/boi/boi2009/5fppub/textes/5b2509/5b2509.pdf", "line_number": 587, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d'imp\u00f4t exceptionnel sur les revenus 2008\n http://www11.minefi.gouv.fr/boi/boi2009/5fppub/textes/5b2509/5b2509.pdf\n '''\n period = period.this_year\n rni = simulation.calculate('rni', period)\n nbptr = simulation.calculate('nbptr', period)\n iai = simulation.calculate('iai', period)\n mohist = simulation.calculate('mohist', period)\n elig_creimp_exc_2008 = simulation.calculate('elig_creimp_exc_2008', period)\n\n #TODO: g\u00e9rer les DOM-TOM, corriger les formules, inclure 7KA\n rpp = rni / nbptr\n return period, (elig_creimp_exc_2008 * (mohist < 10700) * (rpp <= 12475) * around((2/3) * min_(12475, iai) * (rpp < 11674) +\n (rpp > 11673) * max_(0, 8317 * (12475 - rpp) / 802)))\n", "input_variables": ["elig_creimp_exc_2008", "rni", "nbptr", "iai", "mohist"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t directive \u00ab \u00e9pargne \u00bb", "line_number": 887, "module": "credits_impot", "name": "direpa", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t directive \u00ab \u00e9pargne \u00bb (case 2BG)\n2006-", "line_number": 892, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t directive \u00ab \u00e9pargne \u00bb (case 2BG)\n 2006-\n '''\n period = period.this_year\n f2bg = simulation.calculate('f2bg', period)\n\n return period, f2bg\n", "input_variables": ["f2bg"]}}, {"@type": "Float", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t dividendes", "line_number": 903, "module": "credits_impot", "name": "divide", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d'imp\u00f4t dividendes\n2005-2009", "line_number": 910, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d'imp\u00f4t dividendes\n 2005-2009\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f2dc = simulation.calculate('f2dc', period)\n f2gr = simulation.calculate('f2gr', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.divide\n\n max1 = P.max * (maries_ou_pacses + 1)\n return period, min_(P.taux * (f2dc + f2gr), max1)\n", "input_variables": ["maries_ou_pacses", "f2gr", "f2dc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t repr\u00e9sentatif de la taxe additionnelle au droit de bail", "line_number": 927, "module": "credits_impot", "name": "drbail", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t repr\u00e9sentatif de la taxe additionnelle au droit de bail (case 4TQ)\n2002-", "line_number": 932, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t repr\u00e9sentatif de la taxe additionnelle au droit de bail (case 4TQ)\n 2002-\n '''\n period = period.this_year\n f4tq = simulation.calculate('f4tq', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.drbail\n return period, P.taux * f4tq\n", "input_variables": ["f4tq"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale", "line_number": 945, "module": "credits_impot", "name": "inthab", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7UH)\n2007", "line_number": 950, "module": "credits_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2007, 12, 31))\ndef function_20070101_20071231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7UH)\n 2007\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n nbG = simulation.calculate('nbG', period)\n nbR = simulation.calculate('nbR', period)\n f7uh = simulation.calculate('f7uh', period)\n P = simulation.legislation_at(period.start).ir.credits_impot.inthab\n\n invalide = caseP | caseF | (nbG != 0) | (nbR != 0)\n max0 = P.max * (maries_ou_pacses + 1) * (1 + invalide) + nb_pac2 * P.add\n return period, P.taux1 * min_(max0, f7uh)\n", "input_variables": ["maries_ou_pacses", "f7uh", "nbR", "f7vv", "nb_pac2", "caseF", "f7vz", "f7vy", "f7vx", "f7vw", "caseP", "f7vu", "f7vt", "nbG"]}, "stop_instant": "2007-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VX, 7VY et 7VZ)\n2008", "line_number": 970, "module": "credits_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2008, 12, 31))\ndef function_20080101_20081231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VX, 7VY et 7VZ)\n 2008\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n nbG = simulation.calculate('nbG', period)\n nbR = simulation.calculate('nbR', period)\n f7vy = simulation.calculate('f7vy', period)\n f7vz = simulation.calculate('f7vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.inthab\n\n invalide = caseP | caseF | (nbG != 0) | (nbR != 0)\n max0 = P.max * (maries_ou_pacses + 1) * (1 + invalide) + nb_pac2 * P.add\n\n max1 = max_(max0 - f7vy, 0)\n return period, (P.taux1 * min_(f7vy, max0) +\n P.taux3 * min_(f7vz, max1))\n", "input_variables": ["maries_ou_pacses", "f7uh", "nbR", "f7vv", "nb_pac2", "caseF", "f7vz", "f7vy", "f7vx", "f7vw", "caseP", "f7vu", "f7vt", "nbG"]}, "stop_instant": "2008-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VX, 7VY et 7VZ)\n2009", "line_number": 996, "module": "credits_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VX, 7VY et 7VZ)\n 2009\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n nbG = simulation.calculate('nbG', period)\n nbR = simulation.calculate('nbR', period)\n f7vx = simulation.calculate('f7vx', period)\n f7vy = simulation.calculate('f7vy', period)\n f7vz = simulation.calculate('f7vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.inthab\n\n invalide = caseP | caseF | (nbG != 0) | (nbR != 0)\n max0 = P.max * (maries_ou_pacses + 1) * (1 + invalide) + nb_pac2 * P.add\n\n max1 = max_(max0 - f7vx, 0)\n max2 = max_(max1 - f7vy, 0)\n return period, (P.taux1 * min_(f7vx, max0) +\n P.taux1 * min_(f7vy, max1) +\n P.taux3 * min_(f7vz, max2))\n", "input_variables": ["maries_ou_pacses", "f7uh", "nbR", "f7vv", "nb_pac2", "caseF", "f7vz", "f7vy", "f7vx", "f7vw", "caseP", "f7vu", "f7vt", "nbG"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VW, 7VX, 7VY et 7VZ)\n2010", "line_number": 1025, "module": "credits_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VW, 7VX, 7VY et 7VZ)\n 2010\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n nbG = simulation.calculate('nbG', period)\n nbR = simulation.calculate('nbR', period)\n f7vw = simulation.calculate('f7vw', period)\n f7vx = simulation.calculate('f7vx', period)\n f7vy = simulation.calculate('f7vy', period)\n f7vz = simulation.calculate('f7vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.inthab\n\n invalide = caseP | caseF | (nbG != 0) | (nbR != 0)\n max0 = P.max * (maries_ou_pacses + 1) * (1 + invalide) + nb_pac2 * P.add\n\n max1 = max_(max0 - f7vx, 0)\n max2 = max_(max1 - f7vy, 0)\n max3 = max_(max2 - f7vw, 0)\n return period, (P.taux1 * min_(f7vx, max0) +\n P.taux1 * min_(f7vy, max1) +\n P.taux2 * min_(f7vw, max2) +\n P.taux3 * min_(f7vz, max3))\n", "input_variables": ["maries_ou_pacses", "f7uh", "nbR", "f7vv", "nb_pac2", "caseF", "f7vz", "f7vy", "f7vx", "f7vw", "caseP", "f7vu", "f7vt", "nbG"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VW, 7VX, 7VY et 7VZ)\n2011", "line_number": 1057, "module": "credits_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VW, 7VX, 7VY et 7VZ)\n 2011\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n nbG = simulation.calculate('nbG', period)\n nbR = simulation.calculate('nbR', period)\n f7vu = simulation.calculate('f7vu', period)\n f7vw = simulation.calculate('f7vw', period)\n f7vv = simulation.calculate('f7vv', period)\n f7vx = simulation.calculate('f7vx', period)\n f7vy = simulation.calculate('f7vy', period)\n f7vz = simulation.calculate('f7vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.inthab\n\n invalide = caseP | caseF | (nbG != 0) | (nbR != 0)\n max0 = P.max * (maries_ou_pacses + 1) * (1 + invalide) + nb_pac2 * P.add\n\n max1 = max_(max0 - f7vx, 0)\n max2 = max_(max1 - f7vy, 0)\n max3 = max_(max2 - f7vw, 0)\n max4 = max_(max3 - f7vu, 0)\n max5 = max_(max4 - f7vz, 0)\n return period, (P.taux1 * min_(f7vx, max0) +\n P.taux1 * min_(f7vy, max1) +\n P.taux2 * min_(f7vw, max2) +\n P.taux3 * min_(f7vu, max3) +\n P.taux4 * min_(f7vz, max4) +\n P.taux5 * min_(f7vv, max5))\n", "input_variables": ["maries_ou_pacses", "f7uh", "nbR", "f7vv", "nb_pac2", "caseF", "f7vz", "f7vy", "f7vx", "f7vw", "caseP", "f7vu", "f7vt", "nbG"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VW, 7VX, 7VY et 7VZ)\n2011", "line_number": 1095, "module": "credits_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2013, 12, 31))\ndef function_20120101_20131231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t int\u00e9r\u00eats des emprunts pour l\u2019habitation principale (cases 7VW, 7VX, 7VY et 7VZ)\n 2011\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n nbG = simulation.calculate('nbG', period)\n nbR = simulation.calculate('nbR', period)\n f7vt = simulation.calculate('f7vt', period)\n f7vu = simulation.calculate('f7vu', period)\n f7vv = simulation.calculate('f7vv', period)\n f7vw = simulation.calculate('f7vw', period)\n f7vx = simulation.calculate('f7vx', period)\n f7vy = simulation.calculate('f7vy', period)\n f7vz = simulation.calculate('f7vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.inthab\n\n invalide = caseP | caseF | (nbG != 0) | (nbR != 0)\n max0 = P.max * (maries_ou_pacses + 1) * (1 + invalide) + nb_pac2 * P.add\n\n max1 = max_(max0 - f7vx, 0)\n max2 = max_(max1 - f7vy, 0)\n max3 = max_(max2 - f7vw, 0)\n max4 = max_(max3 - f7vu, 0)\n max5 = max_(max4 - f7vz, 0)\n max6 = max_(max5 - f7vv, 0)\n return period, (P.taux1 * min_(f7vx, max0) +\n P.taux1 * min_(f7vy, max1) +\n P.taux2 * min_(f7vw, max2) +\n P.taux3 * min_(f7vu, max3) +\n P.taux4 * min_(f7vz, max4) +\n P.taux5 * min_(f7vv, max5) +\n P.taux6 * min_(f7vt, max6))\n", "input_variables": ["maries_ou_pacses", "f7uh", "nbR", "f7vv", "nb_pac2", "caseF", "f7vz", "f7vy", "f7vx", "f7vw", "caseP", "f7vu", "f7vt", "nbG"]}, "stop_instant": "2013-12-31", "start_instant": "2012-01-01"}]}}, {"@type": "Float", "default": 0, "end": "2008-12-31", "entity": "foyers_fiscaux", "line_number": 1137, "module": "credits_impot", "name": "jeunes", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1144, "module": "credits_impot", "source": "def function(self, simulation, period):\n period = period.this_year\n jeunes_ind_holder = simulation.compute('jeunes_ind', period)\n\n return period, self.sum_by_entity(jeunes_ind_holder)\n", "input_variables": ["jeunes_ind"]}}, {"@type": "Float", "default": 0, "end": "2008-12-31", "entity": "individus", "label": "Cr\u00e9dit d'imp\u00f4t en faveur des jeunes", "line_number": 1151, "module": "credits_impot", "name": "jeunes_ind", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d'imp\u00f4t en faveur des jeunes\n2005-2008\n\nrfr de l'ann\u00e9e o\u00f9 jeune de moins de 26 \u00e0 travaill\u00e9 six mois\ncf. http://www3.finances.gouv.fr/calcul_impot/2009/pdf/form-2041-GY.pdf\nAttention seuls certains", "line_number": 1158, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d'imp\u00f4t en faveur des jeunes\n 2005-2008\n\n rfr de l'ann\u00e9e o\u00f9 jeune de moins de 26 \u00e0 travaill\u00e9 six mois\n cf. http://www3.finances.gouv.fr/calcul_impot/2009/pdf/form-2041-GY.pdf\n Attention seuls certains\n '''\n period = period.this_year\n age = simulation.calculate('age', period)\n nbptr_holder = simulation.compute('nbptr', period)\n rfr_holder = simulation.compute('rfr', period)\n salaire_imposable = simulation.calculate_add('salaire_imposable', period)\n maries_ou_pacses_holder = simulation.compute('maries_ou_pacses', period)\n elig_creimp_jeunes = simulation.calculate('elig_creimp_jeunes', period)\n _P = simulation.legislation_at(period.start)\n\n #TODO: v\u00e9rifier si les jeunes sous le foyer fiscal de leurs parents sont \u00e9ligibles\n\n P = _P.ir.credits_impot.jeunes\n rfr = self.cast_from_entity_to_roles(rfr_holder)\n nbptr = self.cast_from_entity_to_roles(nbptr_holder)\n maries_ou_pacses = self.cast_from_entity_to_roles(maries_ou_pacses_holder)\n\n elig = (age < P.age) * (rfr < P.rfr_plaf * (maries_ou_pacses * P.rfr_mult + not_(maries_ou_pacses)) + max_(0, nbptr - 2) * .5 *\n P.rfr_maj + (nbptr == 1.5) * P.rfr_maj)\n montant = (\n (P.min <= salaire_imposable) * (salaire_imposable < P.int) * P.montant +\n (P.int <= salaire_imposable) * (salaire_imposable <= P.max) * (P.max - salaire_imposable) * P.taux\n )\n return period, elig_creimp_jeunes * elig * max_(25, montant) # D'apr\u00e8s le document num. 2041 GY\n", "input_variables": ["maries_ou_pacses", "rfr", "salaire_imposable", "age", "elig_creimp_jeunes", "nbptr"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "M\u00e9c\u00e9nat d'entreprise", "line_number": 1195, "module": "credits_impot", "name": "mecena", "start": "2003-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "M\u00e9c\u00e9nat d'entreprise (case 7US)\n2003-", "line_number": 1201, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n M\u00e9c\u00e9nat d'entreprise (case 7US)\n 2003-\n '''\n period = period.this_year\n f7us = simulation.calculate('f7us', period)\n\n return period, f7us\n", "input_variables": ["f7us"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 259, "module": "credits_impot", "name": "nb_pac2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 264, "module": "credits_impot", "source": "def function(self, simulation, period):\n period = period.this_year\n nbF = simulation.calculate('nbF', period)\n nbJ = simulation.calculate('nbJ', period)\n nbR = simulation.calculate('nbR', period)\n nbH = simulation.calculate('nbH', period)\n\n return period, nbF + nbJ + nbR - nbH / 2\n", "input_variables": ["nbJ", "nbH", "nbF", "nbR"]}}, {"@type": "Float", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t pertes sur cessions de valeurs mobili\u00e8res", "line_number": 1212, "module": "credits_impot", "name": "percvm", "start": "2010-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t pertes sur cessions de valeurs mobili\u00e8res (3VV)\n-2010", "line_number": 1219, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t pertes sur cessions de valeurs mobili\u00e8res (3VV)\n -2010\n '''\n period = period.this_year\n f3vv_end_2010 = simulation.calculate('f3vv_end_2010', period)\n _P = simulation.legislation_at(period.start)\n\n return period, _P.ir.credits_impot.percvm.taux * f3vv_end_2010\n", "input_variables": ["f3vv_end_2010"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants", "line_number": 1231, "module": "credits_impot", "name": "preetu", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants (cases 7UK, 7VO et 7TD)\n2005", "line_number": 1236, "module": "credits_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2005, 12, 31))\ndef function_20050101_20051231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants (cases 7UK, 7VO et 7TD)\n 2005\n '''\n period = period.this_year\n f7uk = simulation.calculate('f7uk', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.preetu\n\n return period, P.taux * min_(f7uk, P.max)\n", "input_variables": ["f7vo", "f7uk", "f7td"]}, "stop_instant": "2005-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants (cases 7UK, 7VO et 7TD)\n2006-2007", "line_number": 1250, "module": "credits_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2007, 12, 31))\ndef function_20060101_20071231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants (cases 7UK, 7VO et 7TD)\n 2006-2007\n '''\n period = period.this_year\n f7uk = simulation.calculate('f7uk', period)\n f7vo = simulation.calculate('f7vo', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.preetu\n\n max1 = P.max * (1 + f7vo)\n return period, P.taux * min_(f7uk, max1)\n", "input_variables": ["f7vo", "f7uk", "f7td"]}, "stop_instant": "2007-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants (cases 7UK, 7VO et 7TD)\n2008-", "line_number": 1266, "module": "credits_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2015, 12, 31))\ndef function_20080101_20151231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t pour souscription de pr\u00eats \u00e9tudiants (cases 7UK, 7VO et 7TD)\n 2008-\n '''\n period = period.this_year\n f7uk = simulation.calculate('f7uk', period)\n f7vo = simulation.calculate('f7vo', period)\n f7td = simulation.calculate('f7td', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.preetu\n\n max1 = P.max * f7vo\n return period, P.taux * min_(f7uk, P.max) + P.taux * min_(f7td, max1)\n", "input_variables": ["f7vo", "f7uk", "f7td"]}, "stop_instant": "2015-12-31", "start_instant": "2008-01-01"}]}}, {"@type": "Float", "default": 0, "end": "2013-12-31", "entity": "foyers_fiscaux", "label": "Pr\u00e9l\u00e8vement lib\u00e9ratoire \u00e0 restituer (case 2DH)", "line_number": 1284, "module": "credits_impot", "name": "prlire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Pr\u00e9l\u00e8vement lib\u00e9ratoire \u00e0 restituer (case 2DH)\n2002-\nhttp://www2.impots.gouv.fr/documentation/2013/brochure_ir/index.html#122/z", "line_number": 1290, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Pr\u00e9l\u00e8vement lib\u00e9ratoire \u00e0 restituer (case 2DH)\n 2002-\n http://www2.impots.gouv.fr/documentation/2013/brochure_ir/index.html#122/z\n '''\n period = period.this_year\n f2dh = simulation.calculate('f2dh', period)\n f2ch = simulation.calculate('f2ch', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n _P = simulation.legislation_at(period.start)\n\n plaf_resid = max_(_P.ir.rvcm.abat_assvie * (1 + maries_ou_pacses) - f2ch, 0)\n return period, _P.ir.credits_impot.prlire.taux * min_(f2dh, plaf_resid)\n", "input_variables": ["f2dh", "maries_ou_pacses", "f2ch"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale", "line_number": 1306, "module": "credits_impot", "name": "quaenv", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n(cases 7WF, 7WG, 7WH)\n2005", "line_number": 1311, "module": "credits_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2005, 12, 31))\ndef function_20050101_20051231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n (cases 7WF, 7WG, 7WH)\n 2005\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7wf = simulation.calculate('f7wf', period)\n f7wg = simulation.calculate('f7wg', period)\n f7wh = simulation.calculate('f7wh', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.quaenv\n\n n = nb_pac2\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * (n >= 1) + P.pac2 * (n >= 2) + P.pac2 * (max_(n - 2, 0))\n\n max1 = max_(0, max0 - f7wf)\n max2 = max_(0, max1 - f7wg)\n return period, (P.taux_wf * min_(f7wf, max0) +\n P.taux_wg * min_(f7wg, max1) +\n P.taux_wh * min_(f7wh, max2))\n", "input_variables": ["maries_ou_pacses", "f7tt", "f7tw", "f7tv", "f7ty", "f7tx", "nb_pac2", "quaenv_bouquet", "f7st", "f7tu", "f7sw", "f7wq", "f7sz", "f7sp", "f7sq", "f7sr", "f7ss", "f7wh", "f7su", "f7sv", "f7wk", "f7we", "f7wf", "f7wg", "f7wc", "f7sb", "f7sc", "f7sd", "f7se", "f7sf", "f7sg", "f7sh", "f7si", "f7sj", "f7sk", "f7sl", "f7sm", "f7sn", "f7so", "rfr"]}, "stop_instant": "2005-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n(cases 7WF, 7WG, 7WH, 7WQ)\n2006-2008", "line_number": 1337, "module": "credits_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n (cases 7WF, 7WG, 7WH, 7WQ)\n 2006-2008\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7wf = simulation.calculate('f7wf', period)\n f7wg = simulation.calculate('f7wg', period)\n f7wh = simulation.calculate('f7wh', period)\n f7wq = simulation.calculate('f7wq', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.quaenv\n\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n\n max1 = max_(0, max0 - f7wf)\n max2 = max_(0, max1 - f7wg)\n max3 = max_(0, max2 - f7wh)\n return period, (P.taux_wf * min_(f7wf, max0) +\n P.taux_wg * min_(f7wg, max1) +\n P.taux_wh * min_(f7wh, max2) +\n P.taux_wq * min_(f7wq, max3))\n", "input_variables": ["maries_ou_pacses", "f7tt", "f7tw", "f7tv", "f7ty", "f7tx", "nb_pac2", "quaenv_bouquet", "f7st", "f7tu", "f7sw", "f7wq", "f7sz", "f7sp", "f7sq", "f7sr", "f7ss", "f7wh", "f7su", "f7sv", "f7wk", "f7we", "f7wf", "f7wg", "f7wc", "f7sb", "f7sc", "f7sd", "f7se", "f7sf", "f7sg", "f7sh", "f7si", "f7sj", "f7sk", "f7sl", "f7sm", "f7sn", "f7so", "rfr"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n(cases 7WF, 7WG, 7WH, 7WK, 7WQ, 7SB, 7SC, 7SD, 7SE)\n2009", "line_number": 1365, "module": "credits_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n (cases 7WF, 7WG, 7WH, 7WK, 7WQ, 7SB, 7SC, 7SD, 7SE)\n 2009\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7we = simulation.calculate('f7we', period)\n f7wf = simulation.calculate('f7wf', period)\n f7wg = simulation.calculate('f7wg', period)\n f7wh = simulation.calculate('f7wh', period)\n f7wk = simulation.calculate('f7wk', period)\n f7wq = simulation.calculate('f7wq', period)\n f7sb = simulation.calculate('f7sb', period)\n f7sc = simulation.calculate('f7sc', period)\n f7sd = simulation.calculate('f7sd', period)\n f7se = simulation.calculate('f7se', period)\n rfr = simulation.calculate('rfr', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.quaenv\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n\n max1 = max_(0, max0 - f7wf)\n max2 = max_(0, max1 - f7se)\n max3 = max_(0, max2 - f7wk)\n max4 = max_(0, max3 - f7sd)\n max5 = max_(0, max4 - f7wg)\n max6 = max_(0, max5 - f7sc)\n max7 = max_(0, max6 - f7wh)\n max8 = max_(0, max7 - f7sb)\n\n return period, or_(not_(f7we), rfr < 45000) * (P.taux_wf * min_(f7wf, max0) +\n P.taux_se * min_(f7se, max1) +\n P.taux_wk * min_(f7wk, max2) +\n P.taux_sd * min_(f7sd, max3) +\n P.taux_wg * min_(f7wg, max4) +\n P.taux_sc * min_(f7sc, max5) +\n P.taux_wh * min_(f7wh, max6) +\n P.taux_sb * min_(f7sb, max7) +\n P.taux_wq * min_(f7wq, max8))\n", "input_variables": ["maries_ou_pacses", "f7tt", "f7tw", "f7tv", "f7ty", "f7tx", "nb_pac2", "quaenv_bouquet", "f7st", "f7tu", "f7sw", "f7wq", "f7sz", "f7sp", "f7sq", "f7sr", "f7ss", "f7wh", "f7su", "f7sv", "f7wk", "f7we", "f7wf", "f7wg", "f7wc", "f7sb", "f7sc", "f7sd", "f7se", "f7sf", "f7sg", "f7sh", "f7si", "f7sj", "f7sk", "f7sl", "f7sm", "f7sn", "f7so", "rfr"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n(cases 7WF, 7WH, 7WK, 7WQ, 7SB, 7SD, 7SE et 7SH)\n2010-2011", "line_number": 1410, "module": "credits_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2011, 12, 31))\ndef function_20100101_20111231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n (cases 7WF, 7WH, 7WK, 7WQ, 7SB, 7SD, 7SE et 7SH)\n 2010-2011\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7we = simulation.calculate('f7we', period)\n f7wf = simulation.calculate('f7wf', period)\n f7wg = simulation.calculate('f7wg', period)\n f7wh = simulation.calculate('f7wh', period)\n f7wk = simulation.calculate('f7wk', period)\n f7wq = simulation.calculate('f7wq', period)\n f7sb = simulation.calculate('f7sb', period)\n f7sd = simulation.calculate('f7sd', period)\n f7se = simulation.calculate('f7se', period)\n f7sh = simulation.calculate('f7sh', period)\n rfr = simulation.calculate('rfr', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.credits_impot.quaenv\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n\n max1 = max_(0, max0 - f7wf)\n max2 = max_(0, max1 - f7se)\n max3 = max_(0, max2 - f7wk)\n max4 = max_(0, max3 - f7sd)\n max5 = max_(0, max4 - f7wh)\n max6 = max_(0, max5 - f7sb)\n max7 = max_(0, max6 - f7wq)\n return period, not_(f7wg) * or_(not_(f7we), (rfr < 45000)) * (\n P.taux_wf * min_(f7wf, max0) +\n P.taux_se * min_(f7se, max1) +\n P.taux_wk * min_(f7wk, max2) +\n P.taux_sd * min_(f7sd, max3) +\n P.taux_wh * min_(f7wh, max4) +\n P.taux_sb * min_(f7sb, max5) +\n P.taux_wq * min_(f7wq, max6) +\n P.taux_sh * min_(f7sh, max7))\n", "input_variables": ["maries_ou_pacses", "f7tt", "f7tw", "f7tv", "f7ty", "f7tx", "nb_pac2", "quaenv_bouquet", "f7st", "f7tu", "f7sw", "f7wq", "f7sz", "f7sp", "f7sq", "f7sr", "f7ss", "f7wh", "f7su", "f7sv", "f7wk", "f7we", "f7wf", "f7wg", "f7wc", "f7sb", "f7sc", "f7sd", "f7se", "f7sf", "f7sg", "f7sh", "f7si", "f7sj", "f7sk", "f7sl", "f7sm", "f7sn", "f7so", "rfr"]}, "stop_instant": "2011-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n2012", "line_number": 1453, "module": "credits_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n 2012\n '''\n period = period.this_year\n f7sd = simulation.calculate('f7sd', period)\n f7se = simulation.calculate('f7se', period)\n f7sf = simulation.calculate('f7sf', period)\n f7sg = simulation.calculate('f7sg', period)\n f7sh = simulation.calculate('f7sh', period)\n f7si = simulation.calculate('f7si', period)\n f7sj = simulation.calculate('f7sj', period)\n f7sk = simulation.calculate('f7sk', period)\n f7sl = simulation.calculate('f7sl', period)\n f7sm = simulation.calculate('f7sm', period)\n f7sn = simulation.calculate('f7sn', period)\n f7so = simulation.calculate('f7so', period)\n f7sp = simulation.calculate('f7sp', period)\n f7sq = simulation.calculate('f7sq', period)\n f7sr = simulation.calculate('f7sr', period)\n f7ss = simulation.calculate('f7ss', period)\n f7tt = simulation.calculate('f7tt', period)\n f7tu = simulation.calculate('f7tu', period)\n f7tv = simulation.calculate('f7tv', period)\n f7tw = simulation.calculate('f7tw', period)\n f7tx = simulation.calculate('f7tx', period)\n f7ty = simulation.calculate('f7ty', period)\n f7st = simulation.calculate('f7st', period)\n f7su = simulation.calculate('f7su', period)\n f7sv = simulation.calculate('f7sv', period)\n f7sw = simulation.calculate('f7sw', period)\n f7sz = simulation.calculate('f7sz', period)\n f7wc = simulation.calculate('f7wc', period)\n f7we = simulation.calculate('f7we', period)\n f7wg = simulation.calculate('f7wg', period)\n f7wh = simulation.calculate('f7wh', period)\n f7wk = simulation.calculate('f7wk', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n quaenv_bouquet = simulation.calculate('quaenv_bouquet', period)\n rfr = simulation.calculate('rfr', period)\n P = simulation.legislation_at(period.start).ir.credits_impot.quaenv\n\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n maxi1 = max_(0, max0 - f7ty)\n maxi2 = max_(0, maxi1 - f7tx)\n maxi3 = max_(0, maxi2 - f7tw)\n maxi4 = max_(0, maxi3 - f7tv)\n maxi5 = max_(0, maxi4 - f7tu)\n collectif = (P.taux_ty * min_(f7ty, max0) + P.taux_tx * min_(f7tx, maxi1) + P.taux_tw * min_(f7tw, maxi2) +\n P.taux_tv * min_(f7tv, maxi3) + P.taux_tu * min_(f7tu, maxi4) + P.taux_tt * min_(f7tt, maxi5))\n\n max1 = max_(0, max0 - quaenv_bouquet * (f7ss + f7st) - not_(quaenv_bouquet) * (f7ss + f7st + f7sv))\n max2 = max_(0, max1 - quaenv_bouquet * (f7sn + f7sr + f7sq) - not_(quaenv_bouquet) * (f7sn + f7sq + f7sr))\n max3 = max_(0, max2 - quaenv_bouquet * (f7sv) - not_(quaenv_bouquet) * (f7se))\n max4 = (max_(0, max3 - quaenv_bouquet * (f7se) -\n not_(quaenv_bouquet) * (f7sf + f7sg + f7sh + f7si + f7so + f7su + f7sw + f7sp)))\n max5 = max_(0, max4 - quaenv_bouquet * (f7sg + f7sh + f7so + f7sp) - not_(quaenv_bouquet) * (f7sm))\n max6 = max_(0, max5 - quaenv_bouquet * (f7sd + f7sj))\n max7 = max_(0, max6 - quaenv_bouquet * (f7sf + f7si + f7su + f7sw))\n max8 = max_(0, max7 - quaenv_bouquet * (f7sm))\n montant = (quaenv_bouquet * (\n min_(max8, P.taux10 * (f7sk + f7sl)) +\n min_(max7, P.taux11 * f7sm) +\n min_(max6, P.taux15 * (f7sf + f7si + f7su + f7sw)) +\n min_(max5, P.taux18 * (f7sd + f7sj)) +\n min_(max4, P.taux23 * (f7sg + f7sh + f7so + f7sp)) +\n min_(max3, P.taux26 * f7se) +\n min_(max2, P.taux32 * f7sv) +\n min_(max1, P.taux34 * (f7sn + f7sr + f7sq)) +\n min_(max0, P.taux40 * (f7ss + f7st))) +\n (not_(quaenv_bouquet) * (\n min_(max0, P.taux32 * (f7ss + f7st + f7sv)) +\n min_(max1, P.taux26 * (f7sn + f7sq + f7sr)) +\n min_(max2, P.taux17 * f7se) +\n min_(max3, P.taux15 * (f7sf + f7sg + f7sh + f7si + f7so + f7su + f7sw + f7sp)) +\n min_(max4, P.taux11 * f7sm) +\n min_(max5, P.taux10 * (f7sd + f7wk * (f7sj + f7sk + f7sl))))\n ))\n return period, not_(f7wg) * or_(not_(f7we), (rfr < 30000)) * (montant + collectif) + f7sz\n", "input_variables": ["maries_ou_pacses", "f7tt", "f7tw", "f7tv", "f7ty", "f7tx", "nb_pac2", "quaenv_bouquet", "f7st", "f7tu", "f7sw", "f7wq", "f7sz", "f7sp", "f7sq", "f7sr", "f7ss", "f7wh", "f7su", "f7sv", "f7wk", "f7we", "f7wf", "f7wg", "f7wc", "f7sb", "f7sc", "f7sd", "f7se", "f7sf", "f7sg", "f7sh", "f7si", "f7sj", "f7sk", "f7sl", "f7sm", "f7sn", "f7so", "rfr"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n2013", "line_number": 1536, "module": "credits_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Cr\u00e9dits d\u2019imp\u00f4t pour d\u00e9penses en faveur de la qualit\u00e9 environnementale\n 2013\n '''\n period = period.this_year\n f7sd = simulation.calculate('f7sd', period)\n f7se = simulation.calculate('f7se', period)\n f7sf = simulation.calculate('f7sf', period)\n f7sg = simulation.calculate('f7sg', period)\n f7sh = simulation.calculate('f7sh', period)\n f7si = simulation.calculate('f7si', period)\n f7sj = simulation.calculate('f7sj', period)\n f7sk = simulation.calculate('f7sk', period)\n f7sl = simulation.calculate('f7sl', period)\n f7sm = simulation.calculate('f7sm', period)\n f7sn = simulation.calculate('f7sn', period)\n f7so = simulation.calculate('f7so', period)\n f7sp = simulation.calculate('f7sp', period)\n f7sq = simulation.calculate('f7sq', period)\n f7sr = simulation.calculate('f7sr', period)\n f7ss = simulation.calculate('f7ss', period)\n f7st = simulation.calculate('f7st', period)\n f7su = simulation.calculate('f7su', period)\n f7sv = simulation.calculate('f7sv', period)\n f7sw = simulation.calculate('f7sw', period)\n f7sz = simulation.calculate('f7sz', period)\n f7wc = simulation.calculate('f7wc', period)\n f7we = simulation.calculate('f7we', period)\n f7wg = simulation.calculate('f7wg', period)\n f7wh = simulation.calculate('f7wh', period)\n f7wk = simulation.calculate('f7wk', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n nb_pac2 = simulation.calculate('nb_pac2', period)\n quaenv_bouquet = simulation.calculate('quaenv_bouquet', period)\n rfr = simulation.calculate('rfr', period)\n P = simulation.legislation_at(period.start).ir.credits_impot.quaenv\n\n max0 = P.max * (1 + maries_ou_pacses) + P.pac1 * nb_pac2\n max1 = max_(0, max0 - quaenv_bouquet * (f7ss + f7st) - not_(quaenv_bouquet) * (f7ss + f7st + f7sv))\n max2 = max_(0, max1 - quaenv_bouquet * (f7sn + f7sr + f7sq) - not_(quaenv_bouquet) * (f7sn + f7sq + f7sr))\n max3 = max_(0, max2 - quaenv_bouquet * (f7sv) - not_(quaenv_bouquet) * (f7se))\n max4 = (max_(0, max3 - quaenv_bouquet * (f7se) -\n not_(quaenv_bouquet) * (f7sf + f7sg + f7sh + f7si + f7so + f7su + f7sw + f7sp)))\n max5 = max_(0, max4 - quaenv_bouquet * (f7sg + f7sh + f7so + f7sp) - not_(quaenv_bouquet) * (f7sm))\n max6 = max_(0, max5 - quaenv_bouquet * (f7sd + f7sj))\n max7 = max_(0, max6 - quaenv_bouquet * (f7sf + f7si + f7su + f7sw))\n max8 = max_(0, max7 - quaenv_bouquet * (f7sm))\n\n montant = (quaenv_bouquet * (\n min_(max8, P.taux10 * (f7sk + f7sl)) +\n min_(max7, P.taux11 * f7sm) +\n min_(max6, P.taux15 * (f7sf + f7si + f7su + f7sw)) +\n min_(max5, P.taux18 * (f7sd + f7sj)) +\n min_(max4, P.taux23 * (f7sg + f7sh + f7so + f7sp)) +\n min_(max3, P.taux26 * f7se) +\n min_(max2, P.taux32 * f7sv) +\n min_(max1, P.taux34 * (f7sn + f7sr + f7sq)) +\n min_(max0, P.taux40 * (f7ss + f7st))) +\n (not_(quaenv_bouquet) * (\n min_(max0, P.taux32 * (f7ss + f7st + f7sv)) +\n min_(max1, P.taux26 * (f7sn + f7sq + f7sr)) +\n min_(max2, P.taux17 * f7se) +\n min_(max3, P.taux15 * (f7sf + f7sg + f7sh + f7si + f7so + f7su + f7sw + f7sp)) +\n min_(max4, P.taux11 * f7sm) +\n min_(max5, P.taux10 * (f7sd + f7wk * (f7sj + f7sk + f7sl))))\n ))\n return period, or_(not_(or_(f7we, f7wg)), (rfr < 30000)) * montant + f7sz\n", "input_variables": ["maries_ou_pacses", "f7tt", "f7tw", "f7tv", "f7ty", "f7tx", "nb_pac2", "quaenv_bouquet", "f7st", "f7tu", "f7sw", "f7wq", "f7sz", "f7sp", "f7sq", "f7sr", "f7ss", "f7wh", "f7su", "f7sv", "f7wk", "f7we", "f7wf", "f7wg", "f7wc", "f7sb", "f7sc", "f7sd", "f7se", "f7sf", "f7sg", "f7sh", "f7si", "f7sj", "f7sk", "f7sl", "f7sm", "f7sn", "f7so", "rfr"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "line_number": 1607, "module": "credits_impot", "name": "quaenv_bouquet", "start": "2013-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Les d\u00e9penses de travaux d\u00e9pendent d'un bouquet de travaux\n2013", "line_number": 1613, "module": "credits_impot", "source": "def function(self, simulation, period):\n '''\n Les d\u00e9penses de travaux d\u00e9pendent d'un bouquet de travaux\n 2013\n '''\n period = period.this_year\n f7sd = simulation.calculate('f7sd', period)\n f7se = simulation.calculate('f7se', period)\n f7sn = simulation.calculate('f7sn', period)\n f7so = simulation.calculate('f7so', period)\n f7sp = simulation.calculate('f7sp', period)\n f7sq = simulation.calculate('f7sq', period)\n f7sr = simulation.calculate('f7sr', period)\n f7ss = simulation.calculate('f7ss', period)\n f7st = simulation.calculate('f7st', period)\n f7ve = simulation.calculate('f7ve', period)\n f7vf = simulation.calculate('f7vf', period)\n f7vg = simulation.calculate('f7vg', period)\n f7wa = simulation.calculate('f7wa', period)\n f7wb = simulation.calculate('f7wb', period)\n f7wc = simulation.calculate('f7wc', period)\n f7wf = simulation.calculate('f7wf', period)\n f7wh = simulation.calculate('f7wh', period)\n f7wq = simulation.calculate('f7wq', period)\n f7ws = simulation.calculate('f7ws', period)\n f7wt = simulation.calculate('f7wt', period)\n\n t1 = or_(or_(f7wt * f7ws, f7wq), f7wf)\n t2 = or_(f7wc * f7wb, f7wa)\n t3 = or_(f7vg * f7vf, f7ve)\n t4 = or_(f7sn > 0, f7so > 0)\n t5 = or_(f7sr > 0, f7ss > 0)\n t6 = or_(or_(or_(f7st > 0, f7sp > 0), or_(f7sq > 0, f7sd > 0)), f7se > 0)\n bouquet = (t1 + t2 + t3 + t4 + t5 + t6 > 1)\n return period, or_(bouquet, f7wh)\n", "input_variables": ["f7sp", "f7sq", "f7sr", "f7ss", "f7st", "f7vg", "f7vf", "f7ve", "f7wa", "f7wb", "f7wc", "f7sd", "f7se", "f7wq", "f7wt", "f7wh", "f7ws", "f7wf", "f7sn", "f7so"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d\u2019imp\u00f4t emploi d\u2019un salari\u00e9 \u00e0 domicile", "line_number": 1650, "module": "credits_impot", "name": "saldom2", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t emploi d\u2019un salari\u00e9 \u00e0 domicile (cases 7DB, 7DG)\n2007-2008", "line_number": 1655, "module": "credits_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2008, 12, 31))\ndef function_20070101_20081231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t emploi d\u2019un salari\u00e9 \u00e0 domicile (cases 7DB, 7DG)\n 2007-2008\n '''\n period = period.this_year\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7db = simulation.calculate('f7db', period)\n f7dg = simulation.calculate('f7dg', period)\n f7dl = simulation.calculate('f7dl', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.reductions_impots.saldom\n\n isinvalid = f7dg\n\n nbpacmin = nb_pac2 + f7dl\n maxBase = P.max1\n maxDuMaxNonInv = P.max2\n maxNonInv = min_(maxBase + P.pac * nbpacmin, maxDuMaxNonInv)\n maxEffectif = maxNonInv * not_(isinvalid) + P.max3 * isinvalid\n\n return period, P.taux * min_(f7db, maxEffectif)\n", "input_variables": ["f7dl", "f7dg", "f7dq", "nb_pac2", "f7db"]}, "stop_instant": "2008-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cr\u00e9dit d\u2019imp\u00f4t emploi d\u2019un salari\u00e9 \u00e0 domicile (cases 7DB, 7DG)\n2009-2010", "line_number": 1680, "module": "credits_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2013, 12, 31))\ndef function_20090101_20131231(self, simulation, period):\n '''\n Cr\u00e9dit d\u2019imp\u00f4t emploi d\u2019un salari\u00e9 \u00e0 domicile (cases 7DB, 7DG)\n 2009-2010\n '''\n period = period.this_year\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7db = simulation.calculate('f7db', period)\n f7dg = simulation.calculate('f7dg', period)\n f7dl = simulation.calculate('f7dl', period)\n f7dq = simulation.calculate('f7dq', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.ir.reductions_impots.saldom\n\n isinvalid = f7dg\n\n annee1 = f7dq\n nbpacmin = nb_pac2 + f7dl\n maxBase = P.max1 * not_(annee1) + P.max1_1ereAnnee * annee1\n maxDuMaxNonInv = P.max2 * not_(annee1) + P.max2_1ereAnnee * annee1\n maxNonInv = min_(maxBase + P.pac * nbpacmin, maxDuMaxNonInv)\n maxEffectif = maxNonInv * not_(isinvalid) + P.max3 * isinvalid\n\n return period, P.taux * min_(f7db, maxEffectif)\n", "input_variables": ["f7dl", "f7dg", "f7dq", "nb_pac2", "f7db"]}, "stop_instant": "2013-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Abattements sp\u00e9ciaux", "line_number": 2479, "module": "ir", "name": "abat_spe", "url": "http://bofip.impots.gouv.fr/bofip/2036-PGP", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Abattements sp\u00e9ciaux\n\n- pour personnes \u00e2ges ou invalides : \u00e2g\u00e9(e) de plus de 65 ans\n ou invalide (titulaire d\u2019une pension d\u2019invalidit\u00e9 militaire ou d\u2019accident\n du travail d\u2019au moins 40 % ou titulaire de la carte d\u2019invalidit\u00e9),\n abattement de 2 172 \u20ac si rng du foyer fiscal inf\u00e9rieur \u00e0 13 370 \u20ac\n 1 086 \u20ac si rng compris entre 13 370 \u20ac et 21 570 \u20ac.\n Abattement doubl\u00e9 si conjoint remplit \u00e9galement ces conditions\n d\u2019\u00e2ge ou d\u2019invalidit\u00e9.\n- pour enfants \u00e0 charge ayant fond\u00e9 un foyer distinct : Si rattachement\n enfants mari\u00e9s ou pacs\u00e9s ou enfants c\u00e9libataires, veufs, divorc\u00e9s, s\u00e9par\u00e9s, charg\u00e9s de famille,\n abattement 5 495 \u20ac par personne ainsi rattach\u00e9e.\n Si l\u2019enfant de la personne rattach\u00e9e est r\u00e9put\u00e9 \u00e0 charge de\n l\u2019un et l\u2019autre de ses parents (garde altern\u00e9e), cet abattement est divis\u00e9\n par deux soit 2 748\u20ac. Exemple : 10 990 \u20ac pour un jeune m\u00e9nage et 8 243 \u20ac\n pour un c\u00e9libataire avec un jeune enfant en r\u00e9sidence altern\u00e9e.", "line_number": 2485, "module": "ir", "source": "def function(self, simulation, period):\n \"\"\"\n Abattements sp\u00e9ciaux\n\n - pour personnes \u00e2ges ou invalides : \u00e2g\u00e9(e) de plus de 65 ans\n ou invalide (titulaire d\u2019une pension d\u2019invalidit\u00e9 militaire ou d\u2019accident\n du travail d\u2019au moins 40 % ou titulaire de la carte d\u2019invalidit\u00e9),\n abattement de 2 172 \u20ac si rng du foyer fiscal inf\u00e9rieur \u00e0 13 370 \u20ac\n 1 086 \u20ac si rng compris entre 13 370 \u20ac et 21 570 \u20ac.\n Abattement doubl\u00e9 si conjoint remplit \u00e9galement ces conditions\n d\u2019\u00e2ge ou d\u2019invalidit\u00e9.\n - pour enfants \u00e0 charge ayant fond\u00e9 un foyer distinct : Si rattachement\n enfants mari\u00e9s ou pacs\u00e9s ou enfants c\u00e9libataires, veufs, divorc\u00e9s, s\u00e9par\u00e9s, charg\u00e9s de famille,\n abattement 5 495 \u20ac par personne ainsi rattach\u00e9e.\n Si l\u2019enfant de la personne rattach\u00e9e est r\u00e9put\u00e9 \u00e0 charge de\n l\u2019un et l\u2019autre de ses parents (garde altern\u00e9e), cet abattement est divis\u00e9\n par deux soit 2 748\u20ac. Exemple : 10 990 \u20ac pour un jeune m\u00e9nage et 8 243 \u20ac\n pour un c\u00e9libataire avec un jeune enfant en r\u00e9sidence altern\u00e9e.\n \"\"\"\n period = period.this_year\n age_holder = simulation.compute('age', period)\n caseP = simulation.calculate('caseP', period)\n caseF = simulation.calculate('caseF', period)\n rng = simulation.calculate('rng', period)\n nbN = simulation.calculate('nbN', period)\n abattements_speciaux = simulation.legislation_at(period.start).ir.abattements_speciaux\n\n age = self.split_by_roles(age_holder, roles = [VOUS, CONJ])\n\n ageV, ageC = age[VOUS], age[CONJ]\n invV, invC = caseP, caseF\n nb_elig_as = (1 * (((ageV >= 65) | invV) & (ageV > 0)) +\n 1 * (((ageC >= 65) | invC) & (ageC > 0))\n )\n as_inv = (nb_elig_as * abattements_speciaux.inv_montant * ((rng <= abattements_speciaux.inv_max1)\n + ((rng > abattements_speciaux.inv_max1) & (rng <= abattements_speciaux.inv_max2)) * 0.5))\n\n as_enf = nbN * abattements_speciaux.enf_montant\n\n return period, min_(rng, as_inv + as_enf)\n", "input_variables": ["caseP", "age", "rng", "nbN", "caseF"]}}, {"@type": "Float", "default": 0, "end": "2005-12-31", "entity": "individus", "label": "Abattement de 20% sur les salaires et pensions, en vigueur jusqu'\u00e0 2006", "line_number": 424, "module": "ir", "name": "abattement_salaires_pensions", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 430, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n revenu_assimile_salaire_apres_abattements = simulation.calculate('revenu_assimile_salaire_apres_abattements', period)\n revenu_assimile_pension_apres_abattements = simulation.calculate('revenu_assimile_pension_apres_abattements', period)\n abatsalpen = simulation.legislation_at(period.start).ir.tspr.abatsalpen\n\n return period, min_(abatsalpen.taux * max_(revenu_assimile_salaire_apres_abattements + revenu_assimile_pension_apres_abattements, 0), abatsalpen.max)\n", "input_variables": ["revenu_assimile_salaire_apres_abattements", "revenu_assimile_pension_apres_abattements"]}}, {"@type": "Integer", "default": -9999, "entity": "individus", "label": "\u00c2ge (en ann\u00e9es)", "line_number": 62, "module": "ir", "name": "age", "val_type": "age", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 68, "module": "ir", "source": "def function(self, simulation, period):\n has_birth = simulation.get_or_new_holder('date_naissance')._array is not None\n if not has_birth:\n has_age_en_mois = bool(simulation.get_or_new_holder('age_en_mois')._array_by_period)\n if has_age_en_mois:\n return period, simulation.calculate('age_en_mois', period) // 12\n\n # If age is known at the same day of another year, compute the new age from it.\n holder = self.holder\n start = period.start\n if holder._array_by_period is not None:\n for last_period, last_array in sorted(holder._array_by_period.iteritems(), reverse = True):\n last_start = last_period.start\n if last_start.day == start.day:\n return period, last_array + int((start.year - last_start.year) +\n (start.month - last_start.month) / 12)\n\n date_naissance = simulation.calculate('date_naissance', period)\n return period, (datetime64(period.start) - date_naissance).astype('timedelta64[Y]')\n"}}, {"@type": "Integer", "default": -9999, "entity": "individus", "label": "\u00c2ge (en mois)", "line_number": 89, "module": "ir", "name": "age_en_mois", "val_type": "months", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 95, "module": "ir", "source": "def function(self, simulation, period):\n # If age_en_mois is known at the same day of another month, compute the new age_en_mois from it.\n holder = self.holder\n start = period.start\n if holder._array_by_period is not None:\n for last_period, last_array in sorted(holder._array_by_period.iteritems(), reverse = True):\n last_start = last_period.start\n if last_start.day == start.day:\n return period, last_array + ((start.year - last_start.year) * 12 + (start.month - last_start.month))\n\n has_birth = simulation.get_or_new_holder('date_naissance')._array is not None\n if not has_birth:\n has_age = bool(simulation.get_or_new_holder('age')._array_by_period)\n if has_age:\n return period, simulation.calculate('age', period) * 12\n date_naissance = simulation.calculate('date_naissance', period)\n return period, (datetime64(period.start) - date_naissance).astype('timedelta64[M]')\n"}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Assiette r\u00e9gime microsociale pour les professions lib\u00e9rales", "line_number": 1296, "module": "ir", "name": "assiette_proflib", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Assiette r\u00e9gime microsociale pour les professions lib\u00e9rales", "line_number": 1302, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Assiette r\u00e9gime microsociale pour les professions lib\u00e9rales\n '''\n period = period.this_year\n ebnc_impo_holder = simulation.compute('ebnc_impo', period)\n P = simulation.legislation_at(period.start).ir.rpns.microentreprise\n\n # TODO: distinction RSI/CIPAV (pour les cotisations sociales)\n # http://vosdroits.service-public.fr/professionnels-entreprises/F23267.xhtml\n return period, self.sum_by_entity(ebnc_impo_holder)\n", "input_variables": ["ebnc_impo"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Assiette r\u00e9gime microsociale pour les prestations et services", "line_number": 1277, "module": "ir", "name": "assiette_service", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Assiette r\u00e9gime microsociale pour les prestations et services", "line_number": 1283, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Assiette r\u00e9gime microsociale pour les prestations et services\n '''\n period = period.this_year\n ebic_imps_holder = simulation.compute('ebic_imps', period)\n\n return period, self.sum_by_entity(ebic_imps_holder)\n", "input_variables": ["ebic_imps"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Assiette r\u00e9gime microsociale pour les ventes", "line_number": 1261, "module": "ir", "name": "assiette_vente", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Assiette r\u00e9gime microsociale pour les ventes", "line_number": 1267, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Assiette r\u00e9gime microsociale pour les ventes\n '''\n period = period.this_year\n ebic_impv_holder = simulation.compute('ebic_impv', period)\n\n return period, self.sum_by_entity(ebic_impv_holder)\n", "input_variables": ["ebic_impv"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Avantage quotient familial", "line_number": 1104, "module": "ir", "name": "avantage_qf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1109, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n ir_ss_qf = simulation.calculate('ir_ss_qf', period)\n ir_plaf_qf = simulation.calculate('ir_plaf_qf', period)\n\n return period, ir_ss_qf - ir_plaf_qf\n", "input_variables": ["ir_ss_qf", "ir_plaf_qf"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Avoir fiscal et cr\u00e9dits d'imp\u00f4t", "line_number": 1764, "module": "ir", "name": "avf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Avoir fiscal et cr\u00e9dits d'imp\u00f4t (zavff)", "line_number": 1769, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Avoir fiscal et cr\u00e9dits d'imp\u00f4t (zavff)\n '''\n period = period.this_year\n f2ab = simulation.calculate('f2ab', period)\n\n return period, f2ab\n", "input_variables": ["f2ab"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Contribution exceptionnelle sur les hauts revenus", "line_number": 1548, "module": "ir", "name": "cehr", "url": "http://www.legifrance.gouv.fr/affichCode.do?cidTexte=LEGITEXT000006069577&idSectionTA=LEGISCTA000025049019", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Contribution exceptionnelle sur les hauts revenus\n'foy'", "line_number": 1554, "module": "ir", "source": "@dated_function(start = date(2011, 1, 1))\ndef function(self, simulation, period):\n '''\n Contribution exceptionnelle sur les hauts revenus\n 'foy'\n '''\n period = period.this_year\n rfr = simulation.calculate('rfr', period)\n nb_adult = simulation.calculate('nb_adult', period)\n bareme = simulation.legislation_at(period.start).ir.cehr\n\n return period, bareme.calc(rfr / nb_adult) * nb_adult\n", "input_variables": ["rfr", "nb_adult"]}, "stop_instant": null, "start_instant": "2011-01-01"}]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9clarant c\u00e9libataire ou divorc\u00e9", "line_number": 255, "module": "ir", "name": "celibataire_ou_divorce", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 260, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n statut_marital_holder = simulation.compute('statut_marital', period)\n\n statut_marital = self.filter_role(statut_marital_holder, role = VOUS)\n\n return period, (statut_marital == 2) | (statut_marital == 3)\n", "input_variables": ["statut_marital"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Contribution sur les revenus locatifs", "line_number": 1225, "module": "ir", "name": "cont_rev_loc", "start": "2001-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Contribution sur les revenus locatifs", "line_number": 1231, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Contribution sur les revenus locatifs\n '''\n period = period.this_year\n f4bl = simulation.calculate('f4bl', period)\n crl = simulation.legislation_at(period.start).ir.crl\n\n return period, round(crl.taux * (f4bl >= crl.seuil) * f4bl)\n", "input_variables": ["f4bl"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Csg d\u00e9ductible sur le patrimoine", "line_number": 924, "module": "ir", "name": "csg_deduc", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&typePage=cpr02&sfid=503&espId=1&communaute=1&impot=CS", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "CSG d\u00e9ductible ", "line_number": 930, "module": "ir", "source": "def function(self, simulation, period):\n ''' CSG d\u00e9ductible '''\n period = period.this_year\n rbg = simulation.calculate('rbg', period)\n csg_deduc_patrimoine = simulation.calculate('csg_deduc_patrimoine', period)\n\n # min_(f6de, max_(rbg, 0))\n return period, min_(csg_deduc_patrimoine, max_(rbg, 0))\n", "input_variables": ["rbg", "csg_deduc_patrimoine"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Csg d\u00e9ductible sur le patrimoine", "line_number": 886, "module": "ir", "name": "csg_deduc_patrimoine", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&typePage=cpr02&sfid=503&espId=1&communaute=1&impot=CS", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "CSG d\u00e9ductible sur les revenus du patrimoine\nhttp://bofip.impots.gouv.fr/bofip/887-PGP", "line_number": 892, "module": "ir", "source": "def function(self, simulation, period):\n '''\n CSG d\u00e9ductible sur les revenus du patrimoine\n http://bofip.impots.gouv.fr/bofip/887-PGP\n '''\n period = period.this_year\n f6de = simulation.calculate('f6de', period)\n\n return period, max_(f6de, 0)\n", "input_variables": ["f6de"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Csg d\u00e9ductible sur le patrimoine simul\u00e9e", "line_number": 903, "module": "ir", "name": "csg_deduc_patrimoine_simulated", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&typePage=cpr02&sfid=503&espId=1&communaute=1&impot=CS", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cette fonction simule le montant mentionn\u00e9 dans la case f6de de la d\u00e9claration 2042\nhttp://bofip.impots.gouv.fr/bofip/887-PGP", "line_number": 909, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Cette fonction simule le montant mentionn\u00e9 dans la case f6de de la d\u00e9claration 2042\n http://bofip.impots.gouv.fr/bofip/887-PGP\n '''\n period = period.this_year\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n rev_cap_bar = simulation.calculate('rev_cap_bar', period)\n retraite_titre_onereux = simulation.calculate('retraite_titre_onereux', period)\n taux = simulation.legislation_at(period.start).csg.capital.deduc\n\n patrimoine_deduc = rev_cat_rfon + rev_cap_bar + retraite_titre_onereux\n return period, taux * patrimoine_deduc\n", "input_variables": ["retraite_titre_onereux", "rev_cat_rfon", "rev_cap_bar"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "d\u00e9cote", "line_number": 1117, "module": "ir", "name": "decote", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1146, "module": "ir", "source": "@dated_function(start = date(2001, 1, 1), stop = date(2013, 12, 31))\ndef function_2001_2013(self, simulation, period):\n period = period.start.offset('first-of', 'year').period('year')\n ir_plaf_qf = simulation.calculate('ir_plaf_qf', period)\n decote = simulation.legislation_at(period.start).ir.decote\n\n return period, (ir_plaf_qf < decote.seuil) * (decote.seuil - ir_plaf_qf) * 0.5\n", "input_variables": ["nb_adult", "ir_plaf_qf"], "parameters": ["ir.decote.seuil", "ir.decote.seuil_couple", "ir.decote.seuil_celib"]}, "stop_instant": "2013-12-31", "start_instant": "2001-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1134, "module": "ir", "source": "@dated_function(start = date(2014, 1, 1), stop = date(2014, 12, 31))\ndef function_2014(self, simulation, period):\n period = period.this_year\n ir_plaf_qf = simulation.calculate('ir_plaf_qf', period)\n nb_adult = simulation.calculate('nb_adult', period)\n decote_seuil_celib = simulation.legislation_at(period.start).ir.decote.seuil_celib\n decote_seuil_couple = simulation.legislation_at(period.start).ir.decote.seuil_couple\n decote_celib = (ir_plaf_qf < decote_seuil_celib) * (decote_seuil_celib - ir_plaf_qf)\n decote_couple = (ir_plaf_qf < decote_seuil_couple) * (decote_seuil_couple - ir_plaf_qf)\n\n return period, (nb_adult == 1) * decote_celib + (nb_adult == 2) * decote_couple\n", "input_variables": ["nb_adult", "ir_plaf_qf"], "parameters": ["ir.decote.seuil", "ir.decote.seuil_couple", "ir.decote.seuil_celib"]}, "stop_instant": "2014-12-31", "start_instant": "2014-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1122, "module": "ir", "source": "@dated_function(start = date(2015, 1, 1))\ndef function_2015(self, simulation, period):\n period = period.start.offset('first-of', 'year').period('year')\n ir_plaf_qf = simulation.calculate('ir_plaf_qf', period)\n nb_adult = simulation.calculate('nb_adult', period)\n decote_seuil_celib = simulation.legislation_at(period.start).ir.decote.seuil_celib\n decote_seuil_couple = simulation.legislation_at(period.start).ir.decote.seuil_couple\n decote_celib = (ir_plaf_qf < 4 / 3 * decote_seuil_celib) * (decote_seuil_celib - 3 / 4 * ir_plaf_qf)\n decote_couple = (ir_plaf_qf < 4 / 3 * decote_seuil_couple) * (decote_seuil_couple - 3 / 4 * ir_plaf_qf)\n\n return period, (nb_adult == 1) * decote_celib + (nb_adult == 2) * decote_couple\n", "input_variables": ["nb_adult", "ir_plaf_qf"], "parameters": ["ir.decote.seuil", "ir.decote.seuil_couple", "ir.decote.seuil_celib"]}, "stop_instant": null, "start_instant": "2015-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Gain fiscal de la d\u00e9cote/D\u00e9cote au sens Dgfip tel que sur la feuille d'imp\u00f4t", "line_number": 1155, "module": "ir", "name": "decote_gain_fiscal", "start": "1982-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie le gain fiscal du \u00e0 la d\u00e9cote", "line_number": 1161, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Renvoie le gain fiscal du \u00e0 la d\u00e9cote\n '''\n period = period.this_year\n decote = simulation.calculate('decote', period)\n ir_plaf_qf = simulation.calculate('ir_plaf_qf', period)\n\n return period, min_(decote, ir_plaf_qf)\n", "input_variables": ["decote", "ir_plaf_qf"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit industriels et commerciaux non professionnels des ann\u00e9es ant\u00e9rieures", "line_number": 1954, "module": "ir", "name": "defacc", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1959, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f5rn = simulation.calculate('f5rn', period)\n f5ro = simulation.calculate('f5ro', period)\n f5rp = simulation.calculate('f5rp', period)\n f5rq = simulation.calculate('f5rq', period)\n f5rr = simulation.calculate('f5rr', period)\n f5rw = simulation.calculate('f5rw', period)\n macc_impv_holder = simulation.compute('macc_impv', period)\n macc_imps_holder = simulation.compute('macc_imps', period)\n nacc_impn_holder = simulation.compute('nacc_impn', period)\n macc_pvct_holder = simulation.compute('macc_pvct', period)\n aacc_impn_holder = simulation.compute('aacc_impn', period)\n cga = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n microentreprise = simulation.legislation_at(period.start).ir.rpns.microentreprise\n\n def abat_rpns(rev, P):\n return max_(0, rev - min_(rev, max_(P.taux * min_(P.max, rev), P.min)))\n\n nacc_impn = self.sum_by_entity(nacc_impn_holder)\n macc_pvct = self.sum_by_entity(macc_pvct_holder)\n macc_impv = self.sum_by_entity(macc_impv_holder)\n macc_imps = self.sum_by_entity(macc_imps_holder)\n aacc_impn = self.sum_by_entity(aacc_impn_holder)\n macc_timp = abat_rpns(macc_impv, microentreprise.vente) + abat_rpns(macc_imps, microentreprise.servi)\n return period, (\n min_(f5rn + f5ro + f5rp + f5rq + f5rr + f5rw, aacc_impn + macc_pvct + macc_timp + (1 + cga) * nacc_impn)\n )\n", "input_variables": ["f5rq", "f5rp", "f5rr", "macc_impv", "f5rw", "nacc_impn", "macc_imps", "aacc_impn", "macc_pvct", "f5ro", "f5rn"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit global ant\u00e9rieur", "line_number": 841, "module": "ir", "name": "deficit_ante", "url": "http://impotsurlerevenu.org/declaration-de-revenus-fonciers-2044/796-deficits-anterieurs-restant-a-imputer-cadre-450.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9ficits ant\u00e9rieurs", "line_number": 847, "module": "ir", "source": "def function(self, simulation, period):\n '''\n D\u00e9ficits ant\u00e9rieurs\n '''\n period = period.this_year\n f6fa = simulation.calculate('f6fa', period)\n f6fb = simulation.calculate('f6fb', period)\n f6fc = simulation.calculate('f6fc', period)\n f6fd = simulation.calculate('f6fd', period)\n f6fe = simulation.calculate('f6fe', period)\n f6fl = simulation.calculate('f6fl', period)\n\n return period, f6fa + f6fb + f6fc + f6fd + f6fe + f6fl\n", "input_variables": ["f6fl", "f6fb", "f6fc", "f6fa", "f6fd", "f6fe"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Deficit capitaux mobiliers", "line_number": 543, "module": "ir", "name": "deficit_rcm", "start": "2009-01-01", "url": "http://www.lefigaro.fr/impots/2008/04/25/05003-20080425ARTFIG00254-les-subtilites-des-revenus-de-capitaux-mobiliers-.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 550, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f2aa = simulation.calculate('f2aa', period)\n f2al = simulation.calculate('f2al', period)\n f2am = simulation.calculate('f2am', period)\n f2an = simulation.calculate('f2an', period)\n f2aq = simulation.calculate('f2aq', period)\n f2ar = simulation.calculate('f2ar', period)\n _P = simulation.legislation_at(period.start)\n\n return period, f2aa + f2al + f2am + f2an + f2aq + f2ar\n", "input_variables": ["f2aa", "f2an", "f2am", "f2al", "f2ar", "f2aq"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit des locations meubl\u00e9es non professionnelles des ann\u00e9es ant\u00e9rieures", "line_number": 2019, "module": "ir", "name": "defmeu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 2024, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f5ga = simulation.calculate('f5ga', period)\n f5gb = simulation.calculate('f5gb', period)\n f5gc = simulation.calculate('f5gc', period)\n f5gd = simulation.calculate('f5gd', period)\n f5ge = simulation.calculate('f5ge', period)\n f5gf = simulation.calculate('f5gf', period)\n f5gg = simulation.calculate('f5gg', period)\n f5gh = simulation.calculate('f5gh', period)\n f5gi = simulation.calculate('f5gi', period)\n f5gj = simulation.calculate('f5gj', period)\n alnp_imps_holder = simulation.compute('alnp_imps', period)\n nacc_defs_holder = simulation.compute('nacc_defs', period)\n\n nacc_defs = self.sum_by_entity(nacc_defs_holder)\n alnp_imps = self.sum_by_entity(alnp_imps_holder)\n return period, min_(f5ga + f5gb + f5gc + f5gd + f5ge + f5gf + f5gg + f5gh + f5gi + f5gj, alnp_imps + nacc_defs)\n", "input_variables": ["alnp_imps", "f5gb", "f5gc", "f5ga", "f5gf", "f5gg", "f5gd", "f5ge", "f5gj", "f5gh", "f5gi", "nacc_defs"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit non commerciaux non professionnels des ann\u00e9es ant\u00e9rieures", "line_number": 1989, "module": "ir", "name": "defncn", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1994, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f5ht = simulation.calculate('f5ht', period)\n f5it = simulation.calculate('f5it', period)\n f5jt = simulation.calculate('f5jt', period)\n f5kt = simulation.calculate('f5kt', period)\n f5lt = simulation.calculate('f5lt', period)\n f5mt = simulation.calculate('f5mt', period)\n mncn_impo_holder = simulation.compute('mncn_impo', period)\n mncn_pvct_holder = simulation.compute('mncn_pvct', period)\n cncn_aimp_holder = simulation.compute('cncn_aimp', period)\n cncn_bene_holder = simulation.compute('cncn_bene', period)\n cga = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n spbnc = simulation.legislation_at(period.start).ir.rpns.microentreprise.specialbnc\n\n def abat_rpns(rev, P):\n return max_(0, rev - min_(rev, max_(P.taux * min_(P.max, rev), P.min)))\n cncn_bene = self.sum_by_entity(cncn_bene_holder)\n mncn_impo = self.sum_by_entity(mncn_impo_holder)\n mncn_pvct = self.sum_by_entity(mncn_pvct_holder)\n cncn_aimp = self.sum_by_entity(cncn_aimp_holder)\n return period, min_(f5ht + f5it + f5jt + f5kt + f5lt + f5mt, abat_rpns(mncn_impo, spbnc) +\n mncn_pvct + cncn_aimp + (1 + cga) * cncn_bene)\n", "input_variables": ["cncn_bene", "f5it", "f5ht", "mncn_impo", "f5kt", "cncn_aimp", "f5jt", "mncn_pvct", "f5mt", "f5lt"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit agricole des ann\u00e9es ant\u00e9rieures", "line_number": 1925, "module": "ir", "name": "defrag", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1930, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f5qf = simulation.calculate('f5qf', period)\n f5qg = simulation.calculate('f5qg', period)\n f5qn = simulation.calculate('f5qn', period)\n f5qo = simulation.calculate('f5qo', period)\n f5qp = simulation.calculate('f5qp', period)\n f5qq = simulation.calculate('f5qq', period)\n frag_impo_holder = simulation.compute('frag_impo', period)\n nrag_impg_holder = simulation.compute('nrag_impg', period)\n frag_fore_holder = simulation.compute('frag_fore', period)\n frag_pvct_holder = simulation.compute('frag_pvct', period)\n arag_impg_holder = simulation.compute('arag_impg', period)\n cga = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n\n frag_fore = self.sum_by_entity(frag_fore_holder)\n frag_impo = self.sum_by_entity(frag_impo_holder)\n arag_impg = self.sum_by_entity(arag_impg_holder)\n nrag_impg = self.sum_by_entity(nrag_impg_holder)\n frag_pvct = self.sum_by_entity(frag_pvct_holder)\n return period, min_(f5qf + f5qg + f5qn + f5qo + f5qp + f5qq, (1 + cga) * (frag_impo + nrag_impg + frag_pvct)\n + arag_impg + frag_fore)\n", "input_variables": ["frag_fore", "nrag_impg", "arag_impg", "f5qn", "f5qo", "f5qf", "f5qg", "frag_pvct", "frag_impo", "f5qp", "f5qq"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant \u00e0 charge non mari\u00e9, de moins de 18 ans au 1er janvier de l'ann\u00e9e de perception des revenus, ou n\u00e9 durant la m\u00eame ann\u00e9e, ou handicap\u00e9s quel que soit son \u00e2ge", "line_number": 142, "module": "ir", "name": "enfant_a_charge", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 148, "module": "ir", "source": "def function(self, simulation, period):\n age = simulation.calculate('age', period)\n handicap = simulation.calculate('handicap', period)\n quifoy = simulation.calculate('quifoy', period)\n\n return period, (quifoy >= 2) * ((age < 18) + handicap)\n", "input_variables": ["handicap", "quifoy", "age"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant majeur c\u00e9libataire sans enfant", "line_number": 212, "module": "ir", "name": "enfant_majeur_celibataire_sans_enfant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 217, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n age = simulation.calculate('age', period)\n handicap = simulation.calculate('handicap', period)\n quifoy = simulation.calculate('quifoy', period)\n\n return period, (quifoy >= 2) * (age >= 18) * not_(handicap)\n", "input_variables": ["handicap", "quifoy", "age"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus fonciers", "line_number": 1817, "module": "ir", "name": "fon", "url": "http://impotsurlerevenu.org/definitions/220-revenu-foncier.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus fonciers", "line_number": 1823, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus fonciers\n '''\n period = period.this_year\n f4ba = simulation.calculate('f4ba', period)\n f4bb = simulation.calculate('f4bb', period)\n f4bc = simulation.calculate('f4bc', period)\n f4bd = simulation.calculate('f4bd', period)\n f4be = simulation.calculate('f4be', period)\n microfoncier = simulation.legislation_at(period.start).ir.microfoncier\n\n return period, f4ba - f4bb - f4bc + round(f4be * (1 - microfoncier.taux))\n", "input_variables": ["f4bd", "f4be", "f4ba", "f4bb", "f4bc"]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "label": "Le foyer fiscal est impos\u00e9", "line_number": 1596, "module": "ir", "name": "foyer_impose", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1601, "module": "ir", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'year').period('year')\n irpp = simulation.calculate('irpp', period)\n return period, (irpp < 0)\n", "input_variables": ["irpp"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Gain de lev\u00e9e d'options", "line_number": 1666, "module": "ir", "name": "glo", "url": "http://www.officeo.fr/imposition-au-bareme-progressif-de-l-impot-sur-le-revenu-des-gains-de-levee-d-options-sur-actions-et-attributions-d-actions-gratuites", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Gains de lev\u00e9e d'option", "line_number": 1672, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Gains de lev\u00e9e d'option\n '''\n period = period.this_year\n f1tv = simulation.calculate('f1tv', period)\n f1tw = simulation.calculate('f1tw', period)\n f1tx = simulation.calculate('f1tx', period)\n f3vf = simulation.calculate('f3vf', period)\n f3vi = simulation.calculate('f3vi', period)\n f3vj = simulation.calculate('f3vj', period)\n\n return period, f1tv + f1tw + f1tx + f3vf + f3vi + f3vj\n", "input_variables": ["f1tw", "f1tv", "f1tx", "f3vj", "f3vi", "f3vf"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t avant imputations de l'imp\u00f4t sur le revenu", "line_number": 1529, "module": "ir", "name": "iai", "url": "http://forum-juridique.net-iris.fr/finances-fiscalite-assurance/43963-declaration-impots.html", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "imp\u00f4t avant imputation de l'irpp", "line_number": 1535, "module": "ir", "source": "def function(self, simulation, period):\n '''\n imp\u00f4t avant imputation de l'irpp\n '''\n period = period.this_year\n iaidrdi = simulation.calculate('iaidrdi', period)\n plus_values = simulation.calculate('plus_values', period)\n cont_rev_loc = simulation.calculate('cont_rev_loc', period)\n teicaa = simulation.calculate('teicaa', period)\n\n return period, iaidrdi + plus_values + cont_rev_loc + teicaa\n", "input_variables": ["plus_values", "iaidrdi", "cont_rev_loc", "teicaa"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t apr\u00e8s imputation des r\u00e9ductions d'imp\u00f4t", "line_number": 1209, "module": "ir", "name": "iaidrdi", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Imp\u00f4t apr\u00e8s imputation des r\u00e9ductions d'imp\u00f4t", "line_number": 1214, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Imp\u00f4t apr\u00e8s imputation des r\u00e9ductions d'imp\u00f4t\n '''\n period = period.this_year\n ip_net = simulation.calculate('ip_net', period)\n reductions = simulation.calculate('reductions', period)\n\n return period, ip_net - reductions\n", "input_variables": ["reductions", "ip_net"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Prel\u00e8vement lib\u00e9ratoire sur les revenus du capital", "line_number": 1779, "module": "ir", "name": "imp_lib", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&paf_dm=popup&paf_gm=content&typePage=cpr02&sfid=501&espId=1&impot=CS", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prel\u00e8vement lib\u00e9ratoire sur les revenus du capital", "line_number": 1785, "module": "ir", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2007, 12, 31))\ndef function_20020101_20071231(self, simulation, period):\n '''\n Prel\u00e8vement lib\u00e9ratoire sur les revenus du capital\n '''\n period = period.this_year\n f2dh = simulation.calculate('f2dh', period)\n f2ee = simulation.calculate('f2ee', period)\n _P = simulation.legislation_at(period.start)\n prelevement_liberatoire = simulation.legislation_at(period.start).ir.rvcm.prelevement_liberatoire\n\n out = -(prelevement_liberatoire.assvie * f2dh + prelevement_liberatoire.autre * f2ee)\n return period, out\n", "input_variables": ["f2dh", "f2da", "f2ee"]}, "stop_instant": "2007-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prel\u00e8vement lib\u00e9ratoire sur les revenus du capital", "line_number": 1799, "module": "ir", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2012, 12, 31))\ndef function_20080101_20121231(self, simulation, period):\n '''\n Prel\u00e8vement lib\u00e9ratoire sur les revenus du capital\n '''\n period = period.this_year\n f2da = simulation.calculate('f2da', period)\n f2dh = simulation.calculate('f2dh', period)\n f2ee = simulation.calculate('f2ee', period)\n _P = simulation.legislation_at(period.start)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n prelevement_liberatoire = simulation.legislation_at(period.start).ir.rvcm.prelevement_liberatoire\n\n out = -(prelevement_liberatoire.action * f2da + prelevement_liberatoire.autre * f2ee) * not_(finpfl) \\\n - prelevement_liberatoire.assvie * f2dh\n return period, out\n", "input_variables": ["f2dh", "f2da", "f2ee"]}, "stop_instant": "2012-12-31", "start_instant": "2008-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Plafonnement de l'abattement de 10% sur les pensions du foyer", "line_number": 406, "module": "ir", "name": "indu_plaf_abat_pen", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 411, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n rev_pen_holder = simulation.compute('revenu_assimile_pension', period)\n pen_net_holder = simulation.compute('revenu_assimile_pension_apres_abattements', period)\n abatpen = simulation.legislation_at(period.start).ir.tspr.abatpen\n\n revenu_assimile_pension_apres_abattements = self.sum_by_entity(pen_net_holder)\n revenu_assimile_pension = self.sum_by_entity(rev_pen_holder)\n\n abat = revenu_assimile_pension - revenu_assimile_pension_apres_abattements\n return period, abat - min_(abat, abatpen.max)\n", "input_variables": ["revenu_assimile_pension", "revenu_assimile_pension_apres_abattements"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t sur le revenu apr\u00e8s d\u00e9cote", "line_number": 1191, "module": "ir", "name": "ip_net", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "irpp apr\u00e8s d\u00e9cote", "line_number": 1196, "module": "ir", "source": "def function(self, simulation, period):\n '''\n irpp apr\u00e8s d\u00e9cote\n '''\n period = period.this_year\n ir_plaf_qf = simulation.calculate('ir_plaf_qf', period)\n cncn_info_holder = simulation.compute('cncn_info', period)\n decote = simulation.calculate('decote', period)\n taux = simulation.legislation_at(period.start).ir.rpns.taux16\n\n return period, max_(0, ir_plaf_qf + self.sum_by_entity(cncn_info_holder) * taux - decote)\n", "input_variables": ["decote", "cncn_info", "ir_plaf_qf"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t sur le revenu brut avant non imposabilit\u00e9 et plafonnement du quotient", "line_number": 971, "module": "ir", "name": "ir_brut", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 976, "module": "ir", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period('year')\n nbptr = simulation.calculate('nbptr', period)\n taux_effectif = simulation.calculate('taux_effectif', period)\n rni = simulation.calculate('rni', period)\n bareme = simulation.legislation_at(period.start).ir.bareme\n\n return period, (taux_effectif == 0) * nbptr * bareme.calc(rni / nbptr) + taux_effectif * rni\n", "input_variables": ["taux_effectif", "nbptr", "rni"], "parameters": ["ir.bareme"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t apr\u00e8s plafonnement du quotient familial et r\u00e9duction compl\u00e9mentaire", "line_number": 1004, "module": "ir", "name": "ir_plaf_qf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Imp\u00f4t apr\u00e8s plafonnement du quotient familial et r\u00e9duction compl\u00e9mentaire", "line_number": 1009, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Imp\u00f4t apr\u00e8s plafonnement du quotient familial et r\u00e9duction compl\u00e9mentaire\n '''\n period = period.this_year\n ir_brut = simulation.calculate('ir_brut', period)\n ir_ss_qf = simulation.calculate('ir_ss_qf', period)\n nb_adult = simulation.calculate('nb_adult', period)\n nb_pac = simulation.calculate('nb_pac', period)\n nbptr = simulation.calculate('nbptr', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n veuf = simulation.calculate('veuf', period)\n jeune_veuf = simulation.calculate('jeune_veuf', period)\n celibataire_ou_divorce = simulation.calculate('celibataire_ou_divorce', period)\n caseE = simulation.calculate('caseE', period)\n caseF = simulation.calculate('caseF', period)\n caseG = simulation.calculate('caseG', period)\n caseH = simulation.calculate('caseH', period)\n caseK = simulation.calculate('caseK', period)\n caseN = simulation.calculate('caseN', period)\n caseP = simulation.calculate('caseP', period)\n caseS = simulation.calculate('caseS', period)\n caseT = simulation.calculate('caseT', period)\n caseW = simulation.calculate('caseW', period)\n nbF = simulation.calculate('nbF', period)\n nbG = simulation.calculate('nbG', period)\n nbH = simulation.calculate('nbH', period)\n nbI = simulation.calculate('nbI', period)\n nbR = simulation.calculate('nbR', period)\n plafond_qf = simulation.legislation_at(period.start).ir.plafond_qf\n\n A = ir_ss_qf\n I = ir_brut\n\n aa0 = (nbptr - nb_adult) * 2 # nombre de demi part exc\u00e9dant nbadult\n # on dirait que les imp\u00f4ts font une erreur sur aa1 (je suis oblig\u00e9 de\n # diviser par 2)\n aa1 = min_((nbptr - 1) * 2, 2) / 2 # deux premi\u00e8re demi part exc\u00e9dants une part\n aa2 = max_((nbptr - 2) * 2, 0) # nombre de demi part restantes\n # celibataire_ou_divorce parents isol\u00e9s\n condition61 = celibataire_ou_divorce & caseT\n B1 = plafond_qf.celib_enf * aa1 + plafond_qf.maries_ou_pacses * aa2\n # tous les autres\n B2 = plafond_qf.maries_ou_pacses * aa0 # si autre\n # celibataire_ou_divorce, veufs (non jeune_veuf) vivants seuls et autres conditions\n\n # TODO: ann\u00e9e en dur... pour caseH\n condition63 = (celibataire_ou_divorce | (veuf & not_(jeune_veuf))) & not_(caseN) & (nb_pac == 0) & (caseK | caseE) & (caseH < 1981)\n B3 = plafond_qf.celib\n\n B = B1 * condition61 + \\\n B2 * (not_(condition61 | condition63)) + \\\n B3 * (condition63 & not_(condition61))\n C = max_(0, A - B)\n # Imp\u00f4t apr\u00e8s plafonnement\n IP0 = max_(I, C)\n\n # 6.2 r\u00e9duction d'imp\u00f4t pratiqu\u00e9e sur l'impot apr\u00e8s plafonnement et le cas particulier des DOM\n # pas de r\u00e9duction compl\u00e9mentaire\n condition62a = (I >= C)\n # r\u00e9duction compl\u00e9mentaire\n condition62b = (I < C)\n # celibataire_ou_divorce veuf\n condition62caa0 = (celibataire_ou_divorce | (veuf & not_(jeune_veuf)))\n condition62caa1 = (nb_pac == 0) & (caseP | caseG | caseF | caseW)\n condition62caa2 = caseP & ((nbF - nbG > 0) | (nbH - nbI > 0))\n condition62caa3 = not_(caseN) & (caseE | caseK) & (caseH >= 1981)\n condition62caa = condition62caa0 & (condition62caa1 | condition62caa2 | condition62caa3)\n # mari\u00e9 pacs\n condition62cab = (maries_ou_pacses | jeune_veuf) & caseS & not_(caseP | caseF)\n\n condition62ca = (condition62caa | condition62cab)\n\n # plus de 590 euros si on a des plus de\n condition62cb = ((nbG + nbR + nbI) > 0) | caseP | caseF\n D = plafond_qf.reduc_postplafond * (condition62ca + ~condition62ca * condition62cb * (\n 1 * caseP + 1 * caseF + nbG + nbR + nbI / 2))\n\n E = max_(0, A - I - B)\n Fo = D * (D <= E) + E * (E < D)\n IP1 = IP0 - Fo\n\n # TODO: 6.3 Cas particulier: Contribuables domicili\u00e9s dans les DOM.\n # conditionGuadMarReu =\n # conditionGuyane=\n # conitionDOM = conditionGuadMarReu | conditionGuyane\n # postplafGuadMarReu = 5100\n # postplafGuyane = 6700\n # IP2 = IP1 - conditionGuadMarReu*min( postplafGuadMarReu,.3*IP1) - conditionGuyane*min(postplafGuyane,.4*IP1)\n\n # R\u00e9capitulatif\n\n return period, condition62a * IP0 + condition62b * IP1 # IP2 si DOM\n", "input_variables": ["maries_ou_pacses", "veuf", "jeune_veuf", "ir_brut", "nbR", "nb_pac", "nbI", "nbH", "celibataire_ou_divorce", "nbG", "nbF", "caseH", "caseK", "ir_ss_qf", "caseN", "caseE", "nb_adult", "caseG", "caseF", "nbptr", "caseP", "caseS", "caseT", "caseW"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t sans quotient familial", "line_number": 986, "module": "ir", "name": "ir_ss_qf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Imp\u00f4t sans quotient familial", "line_number": 991, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Imp\u00f4t sans quotient familial\n '''\n period = period.this_year\n rni = simulation.calculate('rni', period)\n nb_adult = simulation.calculate('nb_adult', period)\n bareme = simulation.legislation_at(period.start).ir.bareme\n\n A = bareme.calc(rni / nb_adult)\n return period, nb_adult * A\n", "input_variables": ["rni", "nb_adult"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Imp\u00f4t sur le revenu des personnes physiques", "line_number": 1569, "module": "ir", "name": "irpp", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_impot_revenu&espId=1&impot=IR&sfid=50", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Montant apr\u00e8s seuil de recouvrement (hors ppe)", "line_number": 1575, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Montant apr\u00e8s seuil de recouvrement (hors ppe)\n '''\n period = period.this_year\n iai = simulation.calculate('iai', period)\n credits_impot = simulation.calculate('credits_impot', period)\n cehr = simulation.calculate('cehr', period)\n P = simulation.legislation_at(period.start).ir.recouvrement\n\n pre_result = iai - credits_impot + cehr\n return period, (\n (iai > P.seuil) * (\n (pre_result < P.min) * (pre_result > 0) * iai * 0 +\n ((pre_result <= 0) + (pre_result >= P.min)) * (- pre_result)\n ) +\n (iai <= P.seuil) * (\n (pre_result < 0) * (-pre_result) + (pre_result >= 0) * 0 * iai)\n )\n", "input_variables": ["credits_impot", "cehr", "iai"]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9clarant jeune veuf", "line_number": 283, "module": "ir", "name": "jeune_veuf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 288, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n statut_marital_holder = simulation.compute('statut_marital', period)\n\n statut_marital = self.filter_role(statut_marital_holder, role = VOUS)\n\n return period, statut_marital == 6\n", "input_variables": ["statut_marital"]}}, {"@type": "Integer", "default": 360, "entity": "foyers_fiscaux", "label": "Jours d\u00e9compt\u00e9s au titre de cette d\u00e9claration", "line_number": 44, "module": "ir", "name": "jour_xyz"}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9clarants mari\u00e9s ou pacs\u00e9s", "line_number": 241, "module": "ir", "name": "maries_ou_pacses", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 246, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n statut_marital_holder = simulation.compute('statut_marital', period)\n\n statut_marital = self.filter_role(statut_marital_holder, role = VOUS)\n\n return period, (statut_marital == 1) | (statut_marital == 5)\n", "input_variables": ["statut_marital"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1337, "module": "ir", "name": "microentreprise", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1343, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n ebnc_impo_holder = simulation.compute('ebnc_impo', period)\n ebic_imps_holder = simulation.compute('ebic_imps', period)\n ebic_impv_holder = simulation.compute('ebic_impv', period)\n me = simulation.legislation_at(period.start).ir.rpns.microentreprise\n\n ebnc_impo = self.sum_by_entity(ebnc_impo_holder)\n ebic_imps = self.sum_by_entity(ebic_imps_holder)\n ebic_impv = self.sum_by_entity(ebic_impv_holder)\n return period, (\n ebnc_impo * (1 - me.specialbnc.taux) + ebic_imps * (1 - me.servi.taux) + ebic_impv * (1 - me.vente.taux)\n )\n", "input_variables": ["ebic_imps", "ebic_impv", "ebnc_impo"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Assiette r\u00e9gime microsociale totale", "line_number": 1317, "module": "ir", "name": "microsocial", "start": "2009-01-01", "url": "http://fr.wikipedia.org/wiki/R%C3%A9gime_micro-social", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1324, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n assiette_service = simulation.calculate('assiette_service', period)\n assiette_vente = simulation.calculate('assiette_vente', period)\n assiette_proflib = simulation.calculate('assiette_proflib', period)\n microsocial = simulation.legislation_at(period.start).ir.rpns.microsocial\n\n return period, (\n assiette_service * microsocial.servi +\n assiette_vente * microsocial.vente + assiette_proflib * microsocial.bnc\n )\n", "input_variables": ["assiette_proflib", "assiette_service", "assiette_vente"]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "line_number": 1172, "module": "ir", "name": "nat_imp", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie True si le foyer est imposable, False sinon", "line_number": 1177, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Renvoie True si le foyer est imposable, False sinon\n '''\n period = period.this_year\n iai = simulation.calculate('iai', period)\n credits_impot = simulation.calculate('credits_impot', period)\n cehr = simulation.calculate('cehr', period)\n\n # def _nat_imp(rni, nbptr, non_imposable = law.ir.non_imposable):\n # seuil = non_imposable.seuil + (nbptr - 1)*non_imposable.supp\n return period, (iai - credits_impot + cehr) > 0\n", "input_variables": ["credits_impot", "cehr", "iai"]}}, {"@type": "Float", "cerfa_field": "F", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge non mari\u00e9s, qui ne sont pas en r\u00e9sidence altern\u00e9e, de moins de 18 ans au 1er janvier de l'ann\u00e9e de perception des revenus, ou n\u00e9s durant la m\u00eame ann\u00e9e ou handicap\u00e9s quel que soit leur \u00e2ge", "line_number": 156, "module": "ir", "name": "nbF", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 163, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n enfant_a_charge = simulation.compute('enfant_a_charge', period)\n garde_alternee = simulation.compute('garde_alternee', period)\n return period, self.sum_by_entity(enfant_a_charge.array * not_(garde_alternee.array))\n", "input_variables": ["enfant_a_charge", "garde_alternee"]}}, {"@type": "Float", "cerfa_field": "G", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants qui ne sont pas en r\u00e9sidence altern\u00e9e \u00e0 charge titulaires de la carte d'invalidit\u00e9.", "line_number": 170, "module": "ir", "name": "nbG", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 176, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n enfant_a_charge = simulation.compute('enfant_a_charge', period)\n garde_alternee = simulation.compute('garde_alternee', period)\n invalidite = simulation.compute('invalidite', period)\n return period, self.sum_by_entity(enfant_a_charge.array * not_(garde_alternee.array) * invalidite.array)\n", "input_variables": ["enfant_a_charge", "invalidite", "garde_alternee"]}}, {"@type": "Float", "cerfa_field": "H", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge en r\u00e9sidence altern\u00e9e, non mari\u00e9s de moins de 18 ans au 1er janvier de l'ann\u00e9e de perception des revenus, ou n\u00e9s durant la m\u00eame ann\u00e9e ou handicap\u00e9s quel que soit leur \u00e2ge", "line_number": 184, "module": "ir", "name": "nbH", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 191, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n enfant_a_charge = simulation.compute('enfant_a_charge', period)\n garde_alternee = simulation.compute('garde_alternee', period)\n return period, self.sum_by_entity(enfant_a_charge.array * garde_alternee.array)\n", "input_variables": ["enfant_a_charge", "garde_alternee"]}}, {"@type": "Float", "cerfa_field": "I", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants \u00e0 charge en r\u00e9sidence altern\u00e9e titulaires de la carte d'invalidit\u00e9", "line_number": 198, "module": "ir", "name": "nbI", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 204, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n enfant_a_charge = simulation.compute('enfant_a_charge', period)\n garde_alternee = simulation.compute('garde_alternee', period)\n invalidite = simulation.compute('invalidite', period)\n return period, self.sum_by_entity(enfant_a_charge.array * garde_alternee.array * invalidite.array)\n", "input_variables": ["enfant_a_charge", "invalidite", "garde_alternee"]}}, {"@type": "Integer", "cerfa_field": "J", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'enfants majeurs c\u00e9libataires sans enfant", "line_number": 226, "module": "ir", "name": "nbJ", "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 226, "module": "ir", "source": "class nbJ(PersonToEntityColumn):\n cerfa_field = u'J'\n entity_class = FoyersFiscaux\n label = u\"Nombre d'enfants majeurs c\u00e9libataires sans enfant\"\n operation = 'add'\n variable = enfant_majeur_celibataire_sans_enfant\n", "input_variables": ["enfant_majeur_celibataire_sans_enfant"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre d'adulte(s) d\u00e9clarants dans le foyer fiscal", "line_number": 114, "module": "ir", "name": "nb_adult", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 119, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n celibataire_ou_divorce = simulation.calculate('celibataire_ou_divorce', period)\n veuf = simulation.calculate('veuf', period)\n\n return period, 2 * maries_ou_pacses + 1 * (celibataire_ou_divorce | veuf)\n", "input_variables": ["maries_ou_pacses", "veuf", "celibataire_ou_divorce"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre de personnes \u00e0 charge dans le foyer fiscal", "line_number": 128, "module": "ir", "name": "nb_pac", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 133, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n nbF = simulation.calculate('nbF', period)\n nbJ = simulation.calculate('nbJ', period)\n nbR = simulation.calculate('nbR', period)\n\n return period, nbF + nbJ + nbR\n", "input_variables": ["nbJ", "nbF", "nbR"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre de parts", "line_number": 2569, "module": "ir", "name": "nbptr", "url": "http://vosdroits.service-public.fr/particuliers/F2705.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Nombre de parts du foyer\n'foy'\nnote 1 enfants et r\u00e9sidence altern\u00e9e (formulaire 2041 GV page 10)\n\nquotient_familial.conj : nb part associ\u00e9es au conjoint d'un couple mari\u00e9 ou pacs\u00e9\nquotient_familial.enf1 : nb part 2 premiers enfants\nquotient_familial.enf2 : nb part enfants de rang 3 ou plus\nquotient_familial.inv1 : nb part supp enfants invalides (I, G)\nquotient_familial.inv2 : nb part supp adultes invalides (R)\nquotient_familial.not31 : nb part supp note 3 : cases W ou G pour veuf, celib ou div\nquotient_familial.not32 : nb part supp note 3 : personne seule ayant \u00e9lev\u00e9 des enfants\nquotient_familial.not41 : nb part supp adultes invalides (vous et/ou conjoint) note 4\nquotient_familial.not42 : nb part supp adultes anciens combattants (vous et/ou conjoint) note 4\nquotient_familial.not6 : nb part supp note 6\nquotient_familial.isol : demi-part parent isol\u00e9 (T)\nquotient_familial.edcd : enfant issu du mariage avec conjoint d\u00e9c\u00e9d\u00e9;", "line_number": 2575, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Nombre de parts du foyer\n 'foy'\n note 1 enfants et r\u00e9sidence altern\u00e9e (formulaire 2041 GV page 10)\n\n quotient_familial.conj : nb part associ\u00e9es au conjoint d'un couple mari\u00e9 ou pacs\u00e9\n quotient_familial.enf1 : nb part 2 premiers enfants\n quotient_familial.enf2 : nb part enfants de rang 3 ou plus\n quotient_familial.inv1 : nb part supp enfants invalides (I, G)\n quotient_familial.inv2 : nb part supp adultes invalides (R)\n quotient_familial.not31 : nb part supp note 3 : cases W ou G pour veuf, celib ou div\n quotient_familial.not32 : nb part supp note 3 : personne seule ayant \u00e9lev\u00e9 des enfants\n quotient_familial.not41 : nb part supp adultes invalides (vous et/ou conjoint) note 4\n quotient_familial.not42 : nb part supp adultes anciens combattants (vous et/ou conjoint) note 4\n quotient_familial.not6 : nb part supp note 6\n quotient_familial.isol : demi-part parent isol\u00e9 (T)\n quotient_familial.edcd : enfant issu du mariage avec conjoint d\u00e9c\u00e9d\u00e9;\n '''\n period = period.this_year\n nb_pac = simulation.calculate('nb_pac', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n celibataire_ou_divorce = simulation.calculate('celibataire_ou_divorce', period)\n veuf = simulation.calculate('veuf', period)\n jeune_veuf = simulation.calculate('jeune_veuf', period)\n nbF = simulation.calculate('nbF', period)\n nbG = simulation.calculate('nbG', period)\n nbH = simulation.calculate('nbH', period)\n nbI = simulation.calculate('nbI', period)\n nbR = simulation.calculate('nbR', period)\n nbJ = simulation.calculate('nbJ', period)\n caseP = simulation.calculate('caseP', period)\n caseW = simulation.calculate('caseW', period)\n caseG = simulation.calculate('caseG', period)\n caseE = simulation.calculate('caseE', period)\n caseK = simulation.calculate('caseK', period)\n caseN = simulation.calculate('caseN', period)\n caseF = simulation.calculate('caseF', period)\n caseS = simulation.calculate('caseS', period)\n caseL = simulation.calculate('caseL', period)\n caseT = simulation.calculate('caseT', period)\n quotient_familial = simulation.legislation_at(period.start).ir.quotient_familial\n\n no_pac = nb_pac == 0 # Aucune personne \u00e0 charge en garde exclusive\n has_pac = not_(no_pac)\n no_alt = nbH == 0 # Aucun enfant \u00e0 charge en garde altern\u00e9e\n has_alt = not_(no_alt)\n\n # # nombre de parts li\u00e9es aux enfants \u00e0 charge\n # que des enfants en r\u00e9sidence altern\u00e9e\n enf1 = (no_pac & has_alt) * (quotient_familial.enf1 * min_(nbH, 2) * 0.5\n + quotient_familial.enf2 * max_(nbH - 2, 0) * 0.5)\n # pas que des enfants en r\u00e9sidence altern\u00e9e\n enf2 = (has_pac & has_alt) * ((nb_pac == 1) * (quotient_familial.enf1 * min_(nbH, 1) * 0.5\n + quotient_familial.enf2 * max_(nbH - 1, 0) * 0.5) + (nb_pac > 1) * (quotient_familial.enf2 * nbH * 0.5))\n # pas d'enfant en r\u00e9sidence altern\u00e9e\n enf3 = quotient_familial.enf1 * min_(nb_pac, 2) + quotient_familial.enf2 * max_((nb_pac - 2), 0)\n\n enf = enf1 + enf2 + enf3\n # # note 2 : nombre de parts li\u00e9es aux invalides (enfant + adulte)\n n2 = quotient_familial.inv1 * (nbG + nbI / 2) + quotient_familial.inv2 * nbR\n\n # # note 3 : Pas de personne \u00e0 charge\n # - invalide\n\n n31a = quotient_familial.not31a * (no_pac & no_alt & caseP)\n # - ancien combatant\n n31b = quotient_familial.not31b * (no_pac & no_alt & (caseW | caseG))\n n31 = max_(n31a, n31b)\n # - personne seule ayant \u00e9lev\u00e9 des enfants\n n32 = quotient_familial.not32 * (no_pac & no_alt & ((caseE | caseK) & not_(caseN)))\n n3 = max_(n31, n32)\n # # note 4 Invalidit\u00e9 de la personne ou du conjoint pour les mari\u00e9s ou\n # # jeunes veuf(ve)s\n n4 = max_(quotient_familial.not41 * (1 * caseP + 1 * caseF), quotient_familial.not42 * (caseW | caseS))\n\n # # note 5\n # - enfant du conjoint d\u00e9c\u00e9d\u00e9\n n51 = quotient_familial.cdcd * (caseL & ((nbF + nbJ) > 0))\n # - enfant autre et parent isol\u00e9\n n52 = quotient_familial.isol * caseT * (((no_pac & has_alt) * ((nbH == 1) * 0.5 + (nbH >= 2))) + 1 * has_pac)\n n5 = max_(n51, n52)\n\n # # note 6 invalide avec personne \u00e0 charge\n n6 = quotient_familial.not6 * (caseP & (has_pac | has_alt))\n\n # # note 7 Parent isol\u00e9\n n7 = quotient_familial.isol * caseT * ((no_pac & has_alt) * ((nbH == 1) * 0.5 + (nbH >= 2)) + 1 * has_pac)\n\n # # R\u00e9gime des mari\u00e9s ou pacs\u00e9s\n m = 1 + quotient_familial.conj + enf + n2 + n4\n\n # # veufs hors jeune_veuf\n v = 1 + enf + n2 + n3 + n5 + n6\n\n # # celib div\n c = 1 + enf + n2 + n3 + n6 + n7\n\n return period, (maries_ou_pacses | jeune_veuf) * m + (veuf & not_(jeune_veuf)) * v + celibataire_ou_divorce * c\n", "input_variables": ["maries_ou_pacses", "veuf", "caseL", "caseN", "nbR", "caseE", "caseK", "caseG", "nb_pac", "nbJ", "nbI", "nbH", "jeune_veuf", "celibataire_ou_divorce", "caseP", "caseS", "caseF", "nbG", "nbF", "caseW", "caseT"]}}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "label": "Nombre de parts ann\u00e9e n - 2", "line_number": 49, "module": "ir", "name": "nbptr_n_2", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "menages", "label": "Nombre d'enfants majeurs c\u00e9libataires sans enfant", "line_number": 234, "module": "ir", "name": "nombre_enfants_majeurs_celibataires_sans_enfant", "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 234, "module": "ir", "source": "class nombre_enfants_majeurs_celibataires_sans_enfant(PersonToEntityColumn):\n entity_class = Menages\n label = u\"Nombre d'enfants majeurs c\u00e9libataires sans enfant\"\n operation = 'add'\n variable = enfant_majeur_celibataire_sans_enfant\n", "input_variables": ["enfant_majeur_celibataire_sans_enfant"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Pensions alimentaires vers\u00e9es", "line_number": 1611, "module": "ir", "name": "pensions_alimentaires_versees", "url": "http://vosdroits.service-public.fr/particuliers/F2.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1617, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f6gi = simulation.calculate('f6gi', period)\n f6gj = simulation.calculate('f6gj', period)\n f6el = simulation.calculate('f6el', period)\n f6em = simulation.calculate('f6em', period)\n f6gp = simulation.calculate('f6gp', period)\n f6gu = simulation.calculate('f6gu', period)\n\n return period, -(f6gi + f6gj + f6el + f6em + f6gp + f6gu)\n", "input_variables": ["f6gi", "f6gj", "f6gu", "f6em", "f6el", "f6gp"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pensions alimentaires vers\u00e9es (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 1629, "module": "ir", "name": "pensions_alimentaires_versees_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 1629, "module": "ir", "source": "class pensions_alimentaires_versees_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Pensions alimentaires vers\u00e9es (pour le premier d\u00e9clarant du foyer fiscal)\"\n role = VOUS\n variable = pensions_alimentaires_versees\n", "input_variables": ["pensions_alimentaires_versees"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Plus_values", "line_number": 1358, "module": "ir", "name": "plus_values", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Taxation des plus value\nTODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire", "line_number": 1363, "module": "ir", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2007, 12, 31))\ndef function_20070101_20071231(self, simulation, period): # f3sd is in f3vd holder\n \"\"\"\n Taxation des plus value\n TODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n f3vh = simulation.calculate('f3vh', period)\n f3vl = simulation.calculate('f3vl', period)\n f3vm = simulation.calculate('f3vm', period)\n f3vi_holder = simulation.compute('f3vi', period)\n f3vf_holder = simulation.compute('f3vf', period)\n f3vd_holder = simulation.compute('f3vd', period)\n rpns_pvce_holder = simulation.compute('rpns_pvce', period)\n _P = simulation.legislation_at(period.start)\n plus_values = simulation.legislation_at(period.start).ir.plus_values\n\n rpns_pvce = self.sum_by_entity(rpns_pvce_holder)\n f3vd = self.filter_role(f3vd_holder, role = VOUS)\n f3sd = self.filter_role(f3vd_holder, role = CONJ)\n f3vi = self.filter_role(f3vi_holder, role = VOUS)\n f3si = self.filter_role(f3vi_holder, role = CONJ)\n f3vf = self.filter_role(f3vf_holder, role = VOUS)\n f3sf = self.filter_role(f3vf_holder, role = CONJ)\n # TODO: remove this todo use sum for all fields after checking\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp = max_(0, f3vg - f3vh) + f3vl + rpns_pvce + f3vm + f3vi + f3vf\n out = (plus_values.pvce * rpns_pvce +\n plus_values.taux1 * max_(0, f3vg - f3vh) +\n plus_values.caprisque * f3vl +\n plus_values.pea * f3vm +\n plus_values.taux3 * f3vi +\n plus_values.taux4 * f3vf)\n\n return period, round(out)\n", "input_variables": ["rpns_pvce", "f3vi", "f3vh", "f3sa", "f3vm", "f3vl", "f3vg", "f3vf", "f3vd"]}, "stop_instant": "2007-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Taxation des plus value\nTODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire", "line_number": 1400, "module": "ir", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2011, 12, 31))\ndef function_20080101_20111231(self, simulation, period): # f3sd is in f3vd holder\n \"\"\"\n Taxation des plus value\n TODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n f3vh = simulation.calculate('f3vh', period)\n f3vl = simulation.calculate('f3vl', period)\n f3vm = simulation.calculate('f3vm', period)\n f3vi_holder = simulation.compute('f3vi', period)\n f3vf_holder = simulation.compute('f3vf', period)\n f3vd_holder = simulation.compute('f3vd', period)\n rpns_pvce_holder = simulation.compute('rpns_pvce', period)\n plus_values = simulation.legislation_at(period.start).ir.plus_values\n\n rpns_pvce = self.sum_by_entity(rpns_pvce_holder)\n f3vd = self.filter_role(f3vd_holder, role = VOUS)\n f3sd = self.filter_role(f3vd_holder, role = CONJ)\n f3vi = self.filter_role(f3vi_holder, role = VOUS)\n f3si = self.filter_role(f3vi_holder, role = CONJ)\n f3vf = self.filter_role(f3vf_holder, role = VOUS)\n f3sf = self.filter_role(f3vf_holder, role = CONJ)\n # TODO: remove this todo use sum for all fields after checking\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp = max_(0, f3vg - f3vh) + f3vl + rpns_pvce + f3vm + f3vi + f3vf\n out = (plus_values.pvce * rpns_pvce +\n plus_values.taux1 * max_(0, f3vg - f3vh) +\n plus_values.caprisque * f3vl +\n plus_values.pea * f3vm +\n plus_values.taux3 * f3vi +\n plus_values.taux4 * f3vf)\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp += f3vd\n out += plus_values.taux1 * f3vd\n\n return period, round(out)\n", "input_variables": ["rpns_pvce", "f3vi", "f3vh", "f3sa", "f3vm", "f3vl", "f3vg", "f3vf", "f3vd"]}, "stop_instant": "2011-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Taxation des plus value\nTODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire", "line_number": 1439, "module": "ir", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period): # f3sd is in f3vd holder\n \"\"\"\n Taxation des plus value\n TODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n f3vh = simulation.calculate('f3vh', period)\n f3vl = simulation.calculate('f3vl', period)\n f3vm = simulation.calculate('f3vm', period)\n f3vi_holder = simulation.compute('f3vi', period)\n f3vf_holder = simulation.compute('f3vf', period)\n f3vd_holder = simulation.compute('f3vd', period)\n rpns_pvce_holder = simulation.compute('rpns_pvce', period)\n plus_values = simulation.legislation_at(period.start).ir.plus_values\n\n rpns_pvce = self.sum_by_entity(rpns_pvce_holder)\n f3vd = self.filter_role(f3vd_holder, role = VOUS)\n f3sd = self.filter_role(f3vd_holder, role = CONJ)\n f3vi = self.filter_role(f3vi_holder, role = VOUS)\n f3si = self.filter_role(f3vi_holder, role = CONJ)\n f3vf = self.filter_role(f3vf_holder, role = VOUS)\n f3sf = self.filter_role(f3vf_holder, role = CONJ)\n # TODO: remove this todo use sum for all fields after checking\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp = max_(0, f3vg - f3vh) + f3vl + rpns_pvce + f3vm + f3vi + f3vf\n out = (plus_values.pvce * rpns_pvce +\n plus_values.taux1 * max_(0, f3vg - f3vh) +\n plus_values.caprisque * f3vl +\n plus_values.pea * f3vm +\n plus_values.taux3 * f3vi +\n plus_values.taux4 * f3vf)\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp += f3vd\n out += plus_values.taux1 * f3vd\n# out = plus_values.taux2 * f3vd + plus_values.taux3 * f3vi + plus_values.taux4 * f3vf + plus_values.taux1 *max_(\n# 0, f3vg - f3vh)\n out = (plus_values.taux2 * (f3vd + f3sd) + plus_values.taux3 * (f3vi + f3si) +\n plus_values.taux4 * (f3vf + f3sf) + plus_values.taux1 * max_(0, f3vg - f3vh) + plus_values.pvce * rpns_pvce)\n # TODO: chek this rpns missing ?\n return period, round(out)\n", "input_variables": ["rpns_pvce", "f3vi", "f3vh", "f3sa", "f3vm", "f3vl", "f3vg", "f3vf", "f3vd"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Taxation des plus value\nTODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire", "line_number": 1482, "module": "ir", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2015, 12, 31))\ndef function_20130101_20151231(self, simulation, period): # f3sd is in f3vd holder\n \"\"\"\n Taxation des plus value\n TODO: f3vt, 2013 f3Vg au bar\u00e8me / tout refaire\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n f3vh = simulation.calculate('f3vh', period)\n f3vl = simulation.calculate('f3vl', period)\n f3vm = simulation.calculate('f3vm', period)\n f3vi_holder = simulation.compute('f3vi', period)\n f3vf_holder = simulation.compute('f3vf', period)\n f3vd_holder = simulation.compute('f3vd', period)\n f3sa = simulation.calculate('f3sa', period)\n rpns_pvce_holder = simulation.compute('rpns_pvce', period)\n _P = simulation.legislation_at(period.start)\n plus_values = simulation.legislation_at(period.start).ir.plus_values\n\n rpns_pvce = self.sum_by_entity(rpns_pvce_holder)\n f3vd = self.filter_role(f3vd_holder, role = VOUS)\n f3sd = self.filter_role(f3vd_holder, role = CONJ)\n f3vi = self.filter_role(f3vi_holder, role = VOUS)\n f3si = self.filter_role(f3vi_holder, role = CONJ)\n f3vf = self.filter_role(f3vf_holder, role = VOUS)\n f3sf = self.filter_role(f3vf_holder, role = CONJ)\n # TODO: remove this todo use sum for all fields after checking\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp = max_(0, f3vg - f3vh) + f3vl + rpns_pvce + f3vm + f3vi + f3vf\n out = (plus_values.pvce * rpns_pvce +\n plus_values.taux1 * max_(0, f3vg - f3vh) +\n plus_values.caprisque * f3vl +\n plus_values.pea * f3vm +\n plus_values.taux3 * f3vi +\n plus_values.taux4 * f3vf)\n\n # revenus tax\u00e9s \u00e0 un taux proportionnel\n rdp += f3vd\n out += plus_values.taux1 * f3vd\n # out = plus_values.taux2 * f3vd + plus_values.taux3 * f3vi + plus_values.taux4 * f3vf + plus_values.taux1 * max_(\n # 0, f3vg - f3vh)\n out = (plus_values.taux2 * (f3vd + f3sd) + plus_values.taux3 * (f3vi + f3si) +\n plus_values.taux4 * (f3vf + f3sf) + plus_values.taux1 * max_(0, - f3vh) + plus_values.pvce * (rpns_pvce + f3sa))\n # TODO: chek this 3VG\n return period, round(out)\n", "input_variables": ["rpns_pvce", "f3vi", "f3vh", "f3sa", "f3vm", "f3vl", "f3vg", "f3vf", "f3vd"]}, "stop_instant": "2015-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Prime pour l'emploi", "line_number": 2912, "module": "ir", "name": "ppe", "url": "http://vosdroits.service-public.fr/particuliers/F2882.xhtml", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "PPE effectivement vers\u00e9e\n'foy'", "line_number": 2918, "module": "ir", "source": "@dated_function(stop = date(2015, 12, 31))\ndef function(self, simulation, period):\n \"\"\"\n PPE effectivement vers\u00e9e\n 'foy'\n \"\"\"\n period = period.this_year\n ppe_brute = simulation.calculate('ppe_brute', period)\n rsa_act_i_holder = simulation.compute('rsa_activite_individu', period)\n\n # TODO: les foyers qui paient l'ISF n'ont pas le droit \u00e0 la PPE\n rsa_act_i = self.split_by_roles(rsa_act_i_holder, roles = [VOUS, CONJ])\n\n # On retranche le RSA activit\u00e9 de la PPE\n # Dans les agr\u00e9gats officiels de la DGFP, c'est la PPE brute qu'il faut comparer\n ppe = max_(ppe_brute - rsa_act_i[VOUS] - rsa_act_i[CONJ], 0)\n return period, ppe\n", "input_variables": ["ppe_brute", "rsa_activite_individu"]}, "stop_instant": "2015-12-31", "start_instant": null}]}}, {"@type": "Float", "default": 0, "entity": "individus", "line_number": 2769, "module": "ir", "name": "ppe_base", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 2774, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n ppe_rev = simulation.calculate('ppe_rev', period)\n ppe_coef_tp = simulation.calculate('ppe_coef_tp', period)\n ppe_coef_holder = simulation.compute('ppe_coef', period)\n\n ppe_coef = self.cast_from_entity_to_roles(ppe_coef_holder)\n\n return period, ppe_rev / (ppe_coef_tp + (ppe_coef_tp == 0)) * ppe_coef\n", "input_variables": ["ppe_rev", "ppe_coef_tp", "ppe_coef"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Prime pour l'emploi brute", "line_number": 2804, "module": "ir", "name": "ppe_brute", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prime pour l'emploi (avant \u00e9ventuel dispositif de cumul avec le RSA)\n'foy'\nCf. http://travail-emploi.gouv.fr/informations-pratiques,89/fiches-pratiques,91/remuneration,113/la-prime-pour-l-emploi-ppe,1034.html", "line_number": 2809, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Prime pour l'emploi (avant \u00e9ventuel dispositif de cumul avec le RSA)\n 'foy'\n Cf. http://travail-emploi.gouv.fr/informations-pratiques,89/fiches-pratiques,91/remuneration,113/la-prime-pour-l-emploi-ppe,1034.html\n '''\n period = period.this_year\n ppe_elig = simulation.calculate('ppe_elig', period)\n ppe_elig_i_holder = simulation.compute('ppe_elig_individu', period)\n ppe_rev_holder = simulation.compute('ppe_rev', period)\n ppe_base_holder = simulation.compute('ppe_base', period)\n ppe_coef = simulation.calculate('ppe_coef', period)\n ppe_coef_tp_holder = simulation.compute('ppe_coef_tp', period)\n nb_pac = simulation.calculate('nb_pac', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n celibataire_ou_divorce = simulation.calculate('celibataire_ou_divorce', period)\n veuf = simulation.calculate('veuf', period)\n caseT = simulation.calculate('caseT', period)\n caseL = simulation.calculate('caseL', period)\n nbH = simulation.calculate('nbH', period)\n ppe = simulation.legislation_at(period.start).ir.credits_impot.ppe\n\n ppe_base = self.split_by_roles(ppe_base_holder)\n ppe_coef_tp = self.split_by_roles(ppe_coef_tp_holder)\n ppe_elig_i = self.split_by_roles(ppe_elig_i_holder)\n ppe_rev = self.split_by_roles(ppe_rev_holder)\n\n eliv, elic, eli1, eli2, eli3 = ppe_elig_i[VOUS], ppe_elig_i[CONJ], ppe_elig_i[PAC1], \\\n ppe_elig_i[PAC2], ppe_elig_i[PAC3]\n basevi, baseci = ppe_rev[VOUS], ppe_rev[CONJ]\n basev, basec, base1, base2, base3 = ppe_base[VOUS], ppe_base[CONJ], ppe_base[PAC1], ppe_base[PAC2], ppe_base[PAC1]\n coef_tpv, coef_tpc, coef_tp1, coef_tp2, coef_tp3 = ppe_coef_tp[VOUS], ppe_coef_tp[CONJ], \\\n ppe_coef_tp[PAC1], ppe_coef_tp[PAC2], ppe_coef_tp[PAC1]\n\n nb_pac_ppe = max_(0, nb_pac - eli1 - eli2 - eli3)\n\n ligne2 = maries_ou_pacses & xor_(basevi >= ppe.seuil1, baseci >= ppe.seuil1)\n ligne3 = (celibataire_ou_divorce | veuf) & caseT & not_(veuf & caseT & caseL)\n ligne1 = not_(ligne2) & not_(ligne3)\n\n base_monact = ligne2 * (eliv * basev + elic * basec)\n base_monacti = ligne2 * (eliv * basevi + elic * baseci)\n\n def ppe_bar1(base):\n# cond1 = ligne1 | ligne3\n# cond2 = ligne2\n# return 1 / ppe_coef * ((cond1 & (base <= ppe.seuil2)) * (base) * ppe.taux1 +\n# (cond1 & (base > ppe.seuil2) & (base <= ppe.seuil3)) * (ppe.seuil3 - base) * ppe.taux2 +\n# (cond2 & (base <= ppe.seuil2)) * (base * ppe.taux1) +\n# (cond2 & (base > ppe.seuil2) & (base <= ppe.seuil3)) * ((ppe.seuil3 - base) * ppe.taux2) +\n# (cond2 & (base > ppe.seuil4) & (base <= ppe.seuil5)) * (ppe.seuil5 - base) * ppe.taux3)\n return (1 / ppe_coef) * (\n ((base <= ppe.seuil2)) * (base) * ppe.taux1\n + ((base > ppe.seuil2) & (base <= ppe.seuil3)) * (ppe.seuil3 - base) * ppe.taux2\n + ligne2 * ((base > ppe.seuil4) & (base <= ppe.seuil5)) * (ppe.seuil5 - base) * ppe.taux3)\n\n def ppe_bar2(base):\n return (1 / ppe_coef) * (\n (base <= ppe.seuil2) * (base) * ppe.taux1\n + ((base > ppe.seuil2) & (base <= ppe.seuil3)) * (ppe.seuil3 - base1) * ppe.taux2)\n\n # calcul des primes individuelles.\n\n ppev = eliv * ppe_bar1(basev)\n ppec = elic * ppe_bar1(basec)\n ppe1 = eli1 * ppe_bar2(base1)\n ppe2 = eli2 * ppe_bar2(base2)\n ppe3 = eli3 * ppe_bar2(base3)\n\n # Primes de monoactivit\u00e9\n ppe_monact_vous = (eliv & ligne2 & (basevi >= ppe.seuil1) & (basev <= ppe.seuil4)) * ppe.monact\n ppe_monact_conj = (elic & ligne2 & (baseci >= ppe.seuil1) & (basec <= ppe.seuil4)) * ppe.monact\n\n # Primes pour enfants \u00e0 charge\n maj_pac = ppe_elig * (eliv | elic) * (\n (ligne1 & maries_ou_pacses & ((ppev + ppec) != 0) & (min_(basev, basec) <= ppe.seuil3)) * ppe.pac\n * (nb_pac_ppe + nbH * 0.5)\n + (ligne1 & (celibataire_ou_divorce | veuf) & eliv & (basev <= ppe.seuil3)) * ppe.pac * (nb_pac_ppe + nbH * 0.5)\n + (ligne2 & (base_monacti >= ppe.seuil1) & (base_monact <= ppe.seuil3)) * ppe.pac * (nb_pac_ppe + nbH * 0.5)\n + (ligne2 & (base_monact > ppe.seuil3) & (base_monact <= ppe.seuil5)) * ppe.pac\n * ((nb_pac_ppe != 0) + 0.5 * ((nb_pac_ppe == 0) & (nbH != 0)))\n + (ligne3 & (basevi >= ppe.seuil1) & (basev <= ppe.seuil3)) * (\n (min_(nb_pac_ppe, 1) * 2 * ppe.pac + max_(nb_pac_ppe - 1, 0) * ppe.pac)\n + (nb_pac_ppe == 0) * (min_(nbH, 2) * ppe.pac + max_(nbH - 2, 0) * ppe.pac * 0.5))\n + (ligne3 & (basev > ppe.seuil3) & (basev <= ppe.seuil5)) * ppe.pac\n * ((nb_pac_ppe != 0) * 2 + ((nb_pac_ppe == 0) & (nbH != 0))))\n\n def coef(coef_tp):\n return (coef_tp <= 0.5) * coef_tp * 1.45 + (coef_tp > 0.5) * (0.55 * coef_tp + 0.45)\n\n ppe_vous = ppe_elig * (ppev * coef(coef_tpv) + ppe_monact_vous)\n ppe_conj = ppe_elig * (ppec * coef(coef_tpc) + ppe_monact_conj)\n ppe_pac1 = ppe_elig * (ppe1 * coef(coef_tp1))\n ppe_pac2 = ppe_elig * (ppe2 * coef(coef_tp2))\n ppe_pac3 = ppe_elig * (ppe3 * coef(coef_tp3))\n\n ppe_tot = ppe_vous + ppe_conj + ppe_pac1 + ppe_pac2 + ppe_pac3 + maj_pac\n\n ppe_tot = (ppe_tot != 0) * max_(ppe.versmin, ppe_tot)\n\n return period, ppe_tot\n", "input_variables": ["maries_ou_pacses", "veuf", "caseL", "ppe_coef_tp", "ppe_base", "nbH", "ppe_elig_individu", "celibataire_ou_divorce", "ppe_rev", "nb_pac", "ppe_coef", "caseT", "ppe_elig"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Coefficient - Prime pour l'emploi", "line_number": 2681, "module": "ir", "name": "ppe_coef", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "PPE: coefficient de conversion en cas de changement en cours d'ann\u00e9e", "line_number": 2686, "module": "ir", "source": "def function(self, simulation, period):\n '''\n PPE: coefficient de conversion en cas de changement en cours d'ann\u00e9e\n '''\n period = period.this_year\n jour_xyz = simulation.calculate('jour_xyz', period)\n\n nb_jour = (jour_xyz == 0) + jour_xyz\n return period, 360 / nb_jour\n", "input_variables": ["jour_xyz"]}}, {"@type": "Float", "default": 0, "entity": "individus", "line_number": 2746, "module": "ir", "name": "ppe_coef_tp", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "PPE: coefficient de conversion temps partiel\n'ind'", "line_number": 2751, "module": "ir", "source": "def function(self, simulation, period):\n '''\n PPE: coefficient de conversion temps partiel\n 'ind'\n '''\n period = period.this_year\n ppe_du_sa = simulation.calculate('ppe_du_sa', period)\n ppe_du_ns = simulation.calculate('ppe_du_ns', period)\n ppe_tp_sa = simulation.calculate('ppe_tp_sa', period)\n ppe_tp_ns = simulation.calculate('ppe_tp_ns', period)\n ppe = simulation.legislation_at(period.start).ir.credits_impot.ppe\n\n frac_sa = ppe_du_sa / ppe.TP_nbh\n frac_ns = ppe_du_ns / ppe.TP_nbj\n tp = ppe_tp_sa | ppe_tp_ns | (frac_sa + frac_ns >= 1)\n return period, tp + not_(tp) * (frac_sa + frac_ns)\n", "input_variables": ["ppe_du_ns", "ppe_du_sa", "ppe_tp_sa", "ppe_tp_ns"]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "line_number": 2697, "module": "ir", "name": "ppe_elig", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "PPE: eligibilit\u00e9 \u00e0 la ppe, condition sur le revenu fiscal de r\u00e9f\u00e9rence\n'foy'\nCF ligne 1: http://bofip.impots.gouv.fr/bofip/3913-PGP.html", "line_number": 2702, "module": "ir", "source": "def function(self, simulation, period):\n '''\n PPE: eligibilit\u00e9 \u00e0 la ppe, condition sur le revenu fiscal de r\u00e9f\u00e9rence\n 'foy'\n CF ligne 1: http://bofip.impots.gouv.fr/bofip/3913-PGP.html\n '''\n period = period.this_year\n rfr = simulation.calculate('rfr', period)\n ppe_coef = simulation.calculate('ppe_coef', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n veuf = simulation.calculate('veuf', period)\n celibataire_ou_divorce = simulation.calculate('celibataire_ou_divorce', period)\n nbptr = simulation.calculate('nbptr', period)\n ppe = simulation.legislation_at(period.start).ir.credits_impot.ppe\n\n seuil = (veuf | celibataire_ou_divorce) * (ppe.eligi1 + 2 * max_(nbptr - 1, 0) * ppe.eligi3) \\\n + maries_ou_pacses * (ppe.eligi2 + 2 * max_(nbptr - 2, 0) * ppe.eligi3)\n return period, (rfr * ppe_coef) <= seuil\n", "input_variables": ["maries_ou_pacses", "rfr", "veuf", "nbptr", "celibataire_ou_divorce", "ppe_coef"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "ppe_elig_i", "line_number": 2785, "module": "ir", "name": "ppe_elig_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Eligibilit\u00e9 individuelle \u00e0 la ppe\nAttention : condition de plafonnement introduite dans ppe brute\n'ind'", "line_number": 2790, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Eligibilit\u00e9 individuelle \u00e0 la ppe\n Attention : condition de plafonnement introduite dans ppe brute\n 'ind'\n '''\n period = period.this_year\n ppe_rev = simulation.calculate('ppe_rev', period)\n ppe_coef_tp = simulation.calculate('ppe_coef_tp', period)\n ppe = simulation.legislation_at(period.start).ir.credits_impot.ppe\n\n return period, (ppe_rev >= ppe.seuil1) & (ppe_coef_tp != 0)\n", "input_variables": ["ppe_rev", "ppe_coef_tp"]}}, {"@type": "Float", "default": 0, "entity": "individus", "line_number": 2722, "module": "ir", "name": "ppe_rev", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "base ressource de la ppe\n'ind'", "line_number": 2727, "module": "ir", "source": "def function(self, simulation, period):\n '''\n base ressource de la ppe\n 'ind'\n '''\n period = period.this_year\n salaire_imposable = simulation.calculate_add('salaire_imposable', period)\n hsup = simulation.calculate('hsup', period)\n rpns = simulation.calculate('rpns', period)\n ppe = simulation.legislation_at(period.start).ir.credits_impot.ppe\n\n # Revenu d'activit\u00e9 salari\u00e9\n rev_sa = salaire_imposable + hsup # TODO: + TV + TW + TX + AQ + LZ + VJ\n # Revenu d'activit\u00e9 non salari\u00e9\n rev_ns = min_(0, rpns) / ppe.abatns + max_(0, rpns) * ppe.abatns\n #TODO: tr\u00e8s bizarre la partie min(0,rpns) - apr\u00e8s v\u00e9rification c'est dans la loi\n return period, rev_sa + rev_ns\n", "input_variables": ["hsup", "salaire_imposable", "rpns"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus accessoires individuels", "line_number": 2146, "module": "ir", "name": "rac", "url": "http://vosdroits.service-public.fr/particuliers/F1225.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus accessoires individuels\n'ind'\nmacc_exon (f5nn, f5on, f5pn)\naacc_exon (f5nb, f5ob, f5pb)\nnacc_exon (f5nh, f5oh, f5ph)\nmacc_impv (f5no, f5oo, f5po)\nmacc_imps (f5np, f5op, f5pp)\naacc_impn (f5nc, f5oc, f5pc)\naacc_imps (f5nd, f5od, f5pd)\naacc_defn (f5nf, f5of, f5pf)\naacc_defs (f5ng, f5og, f5pg)\nnacc_impn (f5ni, f5oi, f5pi)\nnacc_defn (f5nl, f5ol, f5pl)\nnacc_defs (f5nm, f5om, f5pm)\nmncn_impo (f5ku, f5lu, f5mu)\ncncn_bene (f5sn, f5ns, f5os)\ncncn_defi (f5sp, f5nu, f5ou, f5sr)\nf5sv????", "line_number": 2152, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus accessoires individuels\n 'ind'\n macc_exon (f5nn, f5on, f5pn)\n aacc_exon (f5nb, f5ob, f5pb)\n nacc_exon (f5nh, f5oh, f5ph)\n macc_impv (f5no, f5oo, f5po)\n macc_imps (f5np, f5op, f5pp)\n aacc_impn (f5nc, f5oc, f5pc)\n aacc_imps (f5nd, f5od, f5pd)\n aacc_defn (f5nf, f5of, f5pf)\n aacc_defs (f5ng, f5og, f5pg)\n nacc_impn (f5ni, f5oi, f5pi)\n nacc_defn (f5nl, f5ol, f5pl)\n nacc_defs (f5nm, f5om, f5pm)\n mncn_impo (f5ku, f5lu, f5mu)\n cncn_bene (f5sn, f5ns, f5os)\n cncn_defi (f5sp, f5nu, f5ou, f5sr)\n f5sv????\n '''\n period = period.this_year\n macc_exon = simulation.calculate('macc_exon', period)\n macc_impv = simulation.calculate('macc_impv', period)\n macc_imps = simulation.calculate('macc_imps', period)\n aacc_exon = simulation.calculate('aacc_exon', period)\n aacc_impn = simulation.calculate('aacc_impn', period)\n aacc_imps = simulation.calculate('aacc_imps', period)\n aacc_defn = simulation.calculate('aacc_defn', period)\n aacc_defs = simulation.calculate('aacc_defs', period)\n nacc_exon = simulation.calculate('nacc_exon', period)\n nacc_impn = simulation.calculate('nacc_impn', period)\n nacc_defn = simulation.calculate('nacc_defn', period)\n nacc_defs = simulation.calculate('nacc_defs', period)\n mncn_impo = simulation.calculate('mncn_impo', period)\n cncn_bene = simulation.calculate('cncn_bene', period)\n cncn_defi = simulation.calculate('cncn_defi', period)\n microentreprise = simulation.legislation_at(period.start).ir.rpns.microentreprise\n\n zacc = (macc_exon + macc_impv + macc_imps\n + aacc_exon + aacc_impn + aacc_imps - aacc_defn - aacc_defs\n + nacc_exon + nacc_impn - nacc_defn - nacc_defs\n + mncn_impo + cncn_bene - cncn_defi)\n#TODO: aacc_imps aacc_defs\n cond = (macc_impv > 0) & (macc_imps == 0)\n taux = microentreprise.vente.taux * cond + microentreprise.servi.taux * not_(cond)\n\n cacc = min_(macc_impv + macc_imps + macc_exon + mncn_impo, max_(microentreprise.vente.min, round(\n macc_impv * microentreprise.vente.taux\n + macc_imps * microentreprise.servi.taux + macc_exon * taux\n + mncn_impo * microentreprise.specialbnc.taux)))\n\n return period, zacc - cacc\n", "input_variables": ["nacc_defn", "nacc_impn", "aacc_defs", "macc_imps", "macc_impv", "aacc_imps", "nacc_exon", "macc_exon", "cncn_bene", "aacc_exon", "mncn_impo", "cncn_defi", "aacc_impn", "nacc_defs", "aacc_defn"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus agricoles", "line_number": 2044, "module": "ir", "name": "rag", "url": "http://www.impots.gouv.fr/portal/dgi/public/professionnels.impot?espId=2&impot=BA&pageId=prof_ba&sfid=50", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus agricoles\n'ind'\nfrag_exon (f5hn, f5in, f5jn)\nfrag_impo (f5ho, f5io, f5jo)\narag_exon (f5hb, f5ib, f5jb)\narag_impg (f5hc, f5ic, f5jc)\narag_defi (f5hf, f5if, f5jf)\nnrag_exon (f5hh, f5ih, f5jh)\nnrag_impg (f5hi, f5ii, f5ji)\nnrag_defi (f5hl, f5il, f5jl)\nnrag_ajag (f5hm, f5im, f5jm)", "line_number": 2050, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus agricoles\n 'ind'\n frag_exon (f5hn, f5in, f5jn)\n frag_impo (f5ho, f5io, f5jo)\n arag_exon (f5hb, f5ib, f5jb)\n arag_impg (f5hc, f5ic, f5jc)\n arag_defi (f5hf, f5if, f5jf)\n nrag_exon (f5hh, f5ih, f5jh)\n nrag_impg (f5hi, f5ii, f5ji)\n nrag_defi (f5hl, f5il, f5jl)\n nrag_ajag (f5hm, f5im, f5jm)\n '''\n period = period.this_year\n frag_exon = simulation.calculate('frag_exon', period)\n frag_impo = simulation.calculate('frag_impo', period)\n arag_exon = simulation.calculate('arag_exon', period)\n arag_impg = simulation.calculate('arag_impg', period)\n arag_defi = simulation.calculate('arag_defi', period)\n nrag_exon = simulation.calculate('nrag_exon', period)\n nrag_impg = simulation.calculate('nrag_impg', period)\n nrag_defi = simulation.calculate('nrag_defi', period)\n nrag_ajag = simulation.calculate('nrag_ajag', period)\n\n return period, (frag_exon + frag_impo +\n arag_exon + arag_impg - arag_defi +\n nrag_exon + nrag_impg - nrag_defi +\n nrag_ajag)\n", "input_variables": ["nrag_impg", "arag_impg", "frag_exon", "nrag_defi", "nrag_ajag", "frag_impo", "arag_defi", "arag_exon", "nrag_exon"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu brut global", "line_number": 862, "module": "ir", "name": "rbg", "url": "http://www.documentissime.fr/dossiers-droit-pratique/dossier-19-l-impot-sur-le-revenu-les-modalites-generales-d-imposition/la-determination-du-revenu-imposable/le-revenu-brut-global.html", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu brut global\n ", "line_number": 868, "module": "ir", "source": "def function(self, simulation, period):\n '''Revenu brut global\n '''\n period = period.this_year\n rev_cat = simulation.calculate('rev_cat', period)\n deficit_ante = simulation.calculate('deficit_ante', period)\n f6gh = simulation.calculate('f6gh', period)\n nbic_impm_holder = simulation.compute('nbic_impm', period)\n nacc_pvce_holder = simulation.compute('nacc_pvce', period)\n cga = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n\n # (Total 17)\n # sans les revenus au quotient\n nacc_pvce = self.sum_by_entity(nacc_pvce_holder)\n return period, max_(0,\n rev_cat + f6gh + (self.sum_by_entity(nbic_impm_holder) + nacc_pvce) * (1 + cga) - deficit_ante)\n", "input_variables": ["rev_cat", "nbic_impm", "nacc_pvce", "deficit_ante", "f6gh"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Rentes viag\u00e8res (rentes \u00e0 titre on\u00e9reux)", "line_number": 439, "module": "ir", "name": "retraite_titre_onereux", "url": "http://fr.wikipedia.org/wiki/Rente_viag\u00e8re", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 451, "module": "ir", "source": "def function(self, simulation, period):\n year = period.start.period(u'year').offset('first-of')\n period = period.this_month\n f1aw = simulation.calculate('f1aw', year)\n f1bw = simulation.calculate('f1bw', year)\n f1cw = simulation.calculate('f1cw', year)\n f1dw = simulation.calculate('f1dw', year)\n\n return period, (f1aw + f1bw + f1cw + f1dw) / 12\n", "input_variables": ["f1bw", "f1aw", "f1dw", "f1cw"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Rentes viag\u00e8res (rentes \u00e0 titre on\u00e9reux) (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 462, "module": "ir", "name": "retraite_titre_onereux_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 462, "module": "ir", "source": "class retraite_titre_onereux_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Rentes viag\u00e8res (rentes \u00e0 titre on\u00e9reux) (pour le premier d\u00e9clarant du foyer fiscal)\"\n role = VOUS\n variable = retraite_titre_onereux\n", "input_variables": ["retraite_titre_onereux"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Rentes viag\u00e8res apr\u00e8s abattements", "line_number": 469, "module": "ir", "name": "retraite_titre_onereux_net", "url": "http://www.lafinancepourtous.fr/Vie-professionnelle-et-retraite/Retraite/Epargne-retraite/La-rente-viagere/La-fiscalite-de-la-rente-viagere", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 475, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f1aw = simulation.calculate('f1aw', period)\n f1bw = simulation.calculate('f1bw', period)\n f1cw = simulation.calculate('f1cw', period)\n f1dw = simulation.calculate('f1dw', period)\n abatviag = simulation.legislation_at(period.start).ir.tspr.abatviag\n\n return period, round(abatviag.taux1 * f1aw + abatviag.taux2 * f1bw + abatviag.taux3 * f1cw + abatviag.taux4 * f1dw)\n", "input_variables": ["f1bw", "f1aw", "f1dw", "f1cw"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Rentes viag\u00e8res apr\u00e8s abattements (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 486, "module": "ir", "name": "retraite_titre_onereux_net_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 486, "module": "ir", "source": "class retraite_titre_onereux_net_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Rentes viag\u00e8res apr\u00e8s abattements (pour le premier d\u00e9clarant du foyer fiscal)\"\n role = VOUS\n variable = retraite_titre_onereux_net\n", "input_variables": ["retraite_titre_onereux_net"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus du capital impos\u00e9s au bar\u00e8me", "line_number": 1687, "module": "ir", "name": "rev_cap_bar", "url": "http://fr.wikipedia.org/wiki/Revenu#Revenu_du_Capital", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1699, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_month\n year = period.this_year\n f2dc = simulation.calculate('f2dc', year)\n f2gr = simulation.calculate('f2gr', year)\n f2ch = simulation.calculate('f2ch', year)\n f2ts = simulation.calculate('f2ts', year)\n f2go = simulation.calculate('f2go', year)\n f2tr = simulation.calculate('f2tr', year)\n f2fu = simulation.calculate('f2fu', year)\n avf = simulation.calculate('avf', year)\n f2da = simulation.calculate('f2da', year)\n f2ee = simulation.calculate('f2ee', year)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl # TODO remove ad check case\n majGO = simulation.legislation_at(period.start).ir.rvcm.majGO\n\n # year = period.start.year\n # if year <= 2011:\n # return f2dc + f2gr + f2ch + f2ts + f2go + f2tr + f2fu - avf\n # elif year > 2011:\n # return f2dc + f2gr + f2ch + f2ts + f2go + f2tr + f2fu - avf + (f2da + f2ee)\n return period, (f2dc + f2gr + f2ch + f2ts + f2go * majGO + f2tr + f2fu - avf + (f2da + f2ee) * finpfl) / 12\n", "input_variables": ["f2gr", "f2ch", "f2da", "f2tr", "f2ts", "f2dc", "f2fu", "f2ee", "avf", "f2go"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu du capital impos\u00e9 au pr\u00e9l\u00e8vement lib\u00e9ratoire", "line_number": 1726, "module": "ir", "name": "rev_cap_lib", "url": "http://fr.wikipedia.org/wiki/Revenu#Revenu_du_Capital", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1738, "module": "ir", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2007, 12, 31))\ndef function_20020101_20071231(self, simulation, period):\n period = period.this_month\n year = period.this_year\n f2dh = simulation.calculate('f2dh', year)\n f2ee = simulation.calculate('f2ee', year)\n _P = simulation.legislation_at(period.start)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n\n out = f2dh + f2ee\n return period, out * not_(finpfl) / 12\n", "input_variables": ["f2dh", "f2da", "f2ee"]}, "stop_instant": "2007-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1750, "module": "ir", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2015, 12, 31))\ndef function_20080101_20151231(self, simulation, period):\n period = period.this_month\n year = period.this_year\n f2da = simulation.calculate('f2da', year)\n f2dh = simulation.calculate('f2dh', year)\n f2ee = simulation.calculate('f2ee', year)\n _P = simulation.legislation_at(period.start)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n\n out = f2da + f2dh + f2ee\n return period, out * not_(finpfl) / 12\n", "input_variables": ["f2dh", "f2da", "f2ee"]}, "stop_instant": "2015-12-31", "start_instant": "2008-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus cat\u00e9goriels", "line_number": 816, "module": "ir", "name": "rev_cat", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/revenus-categoriesl.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus Categoriels", "line_number": 822, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus Categoriels\n '''\n period = period.this_year\n rev_cat_tspr = simulation.calculate('rev_cat_tspr', period)\n rev_cat_rvcm = simulation.calculate('rev_cat_rvcm', period)\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n rev_cat_rpns = simulation.calculate('rev_cat_rpns', period)\n rev_cat_pv = simulation.calculate('rev_cat_pv', period)\n\n return period, rev_cat_tspr + rev_cat_rvcm + rev_cat_rfon + rev_cat_rpns + rev_cat_pv\n", "input_variables": ["rev_cat_rvcm", "rev_cat_tspr", "rev_cat_rpns", "rev_cat_rfon", "rev_cat_pv"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu cat\u00e9goriel - Plus-values", "line_number": 512, "module": "ir", "name": "rev_cat_pv", "start": "2013-01-01", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/revenus-categoriesl.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 519, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n f3vh = simulation.calculate('f3vh', period)\n\n return period, f3vg - f3vh\n", "input_variables": ["f3vh", "f3vg"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu cat\u00e9goriel - Foncier", "line_number": 756, "module": "ir", "name": "rev_cat_rfon", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/revenus-categoriesl.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus fonciers\nTODO: add assert in validator", "line_number": 762, "module": "ir", "source": "def function(self, simulation, period):\n \"\"\"\n Revenus fonciers\n TODO: add assert in validator\n \"\"\"\n period = period.this_year\n f4ba = simulation.calculate('f4ba', period)\n f4bb = simulation.calculate('f4bb', period)\n f4bc = simulation.calculate('f4bc', period)\n f4bd = simulation.calculate('f4bd', period)\n f4be = simulation.calculate('f4be', period)\n microfoncier = simulation.legislation_at(period.start).ir.microfoncier\n\n # # Calcul du revenu cat\u00e9goriel\n if ((f4be != 0) & ((f4ba != 0) | (f4bb != 0) | (f4bc != 0))).any():\n log.error((\"Probl\u00e8me de d\u00e9clarations des revenus : incompatibilit\u00e9 de la d\u00e9claration des revenus fonciers (f4ba, f4bb, f4bc) et microfonciers (f4be)\"))\n\n a13 = f4ba + f4be - microfoncier.taux * f4be * (f4be <= microfoncier.max)\n b13 = f4bb\n c13 = a13 - b13\n d13 = f4bc\n e13 = c13 - d13 * (c13 >= 0)\n f13 = f4bd * (e13 >= 0)\n g13 = max_(0, e13 - f13)\n rev_cat_rfon = (c13 >= 0) * (g13 + e13 * (e13 < 0)) - (c13 < 0) * d13\n return period, rev_cat_rfon\n", "input_variables": ["f4bd", "f4be", "f4ba", "f4bb", "f4bc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu cat\u00e9goriel - Revenus personnels non salari\u00e9s", "line_number": 790, "module": "ir", "name": "rev_cat_rpns", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/revenus-categoriesl.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus personnels non salari\u00e9s\n'foy'", "line_number": 796, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus personnels non salari\u00e9s\n 'foy'\n '''\n period = period.this_year\n nbnc_pvce_holder = simulation.compute('nbnc_pvce', period)\n mbic_mvct = simulation.calculate('mbic_mvct', period)\n rpns_i_holder = simulation.compute('rpns_individu', period)\n defrag = simulation.calculate('defrag', period)\n defacc = simulation.calculate('defacc', period)\n defncn = simulation.calculate('defncn', period)\n defmeu = simulation.calculate('defmeu', period)\n\n return period, (\n self.sum_by_entity(rpns_i_holder) -\n self.sum_by_entity(nbnc_pvce_holder) - defrag - defncn - defacc - defmeu - mbic_mvct\n )\n", "input_variables": ["defrag", "defacc", "nbnc_pvce", "defncn", "mbic_mvct", "defmeu", "rpns_individu"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu cat\u00e9goriel - Capitaux", "line_number": 563, "module": "ir", "name": "rev_cat_rvcm", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/revenus-categoriesl.htm", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus des valeurs et capitaux mobiliers", "line_number": 569, "module": "ir", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2004, 12, 31))\ndef function_20020101_20041231(self, simulation, period):\n \"\"\"\n Revenus des valeurs et capitaux mobiliers\n \"\"\"\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n deficit_rcm = simulation.calculate('deficit_rcm', period)\n f2ch = simulation.calculate('f2ch', period)\n f2dc = simulation.calculate('f2dc', period)\n f2ts = simulation.calculate('f2ts', period)\n f2ca = simulation.calculate('f2ca', period)\n f2fu = simulation.calculate('f2fu', period)\n f2go = simulation.calculate('f2go', period)\n f2gr = simulation.calculate('f2gr', period)\n f2tr = simulation.calculate('f2tr', period)\n _P = simulation.legislation_at(period.start)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n rvcm = simulation.legislation_at(period.start).ir.rvcm\n\n f2dc_bis = f2dc\n f2tr_bis = f2tr\n # # Calcul du revenu cat\u00e9goriel\n # 1.2 Revenus des valeurs et capitaux mobiliers\n b12 = min_(f2ch, rvcm.abat_assvie * (1 + maries_ou_pacses))\n TOT1 = f2ch - b12 # c12\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s case DC\n den = ((f2dc_bis + f2ts) != 0) * (f2dc_bis + f2ts) + ((f2dc_bis + f2ts) == 0)\n F1 = f2ca / den * f2dc_bis # f12\n # Revenus de capitaux mobiliers nets de frais, ouvrant droit \u00e0 abattement\n # partie n\u00e9gative (\u00e0 d\u00e9duire des autres revenus nets de frais d'abattements\n g12a = -min_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n # partie positive\n g12b = max_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n rev = g12b + f2gr + f2fu * (1 - rvcm.abatmob_taux)\n\n # Abattements, limit\u00e9 au revenu\n h12 = rvcm.abatmob * (1 + maries_ou_pacses)\n TOT2 = max_(0, rev - h12)\n # i121= -min_(0,rev - h12)\n\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s ligne TS\n F2 = f2ca - F1\n TOT3 = (f2ts - F2) + f2go * rvcm.majGO + f2tr_bis - g12a\n\n DEF = deficit_rcm\n return period, max_(TOT1 + TOT2 + TOT3 - DEF, 0)\n", "input_variables": ["maries_ou_pacses", "f2dc", "f2ch", "f2da", "f2tr", "f2ts", "f2ca", "deficit_rcm", "f2gr", "f2fu", "f2ee", "f2go"]}, "stop_instant": "2004-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus des valeurs et capitaux mobiliers", "line_number": 617, "module": "ir", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2012, 12, 31))\ndef function_20050101_20121231(self, simulation, period):\n \"\"\"\n Revenus des valeurs et capitaux mobiliers\n \"\"\"\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n deficit_rcm = simulation.calculate('deficit_rcm', period)\n f2ch = simulation.calculate('f2ch', period)\n f2dc = simulation.calculate('f2dc', period)\n f2ts = simulation.calculate('f2ts', period)\n f2ca = simulation.calculate('f2ca', period)\n f2fu = simulation.calculate('f2fu', period)\n f2go = simulation.calculate('f2go', period)\n f2gr = simulation.calculate('f2gr', period)\n f2tr = simulation.calculate('f2tr', period)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n rvcm = simulation.legislation_at(period.start).ir.rvcm\n\n # Add f2da to f2dc and f2ee to f2tr when no PFL\n f2dc_bis = f2dc\n f2tr_bis = f2tr\n # # Calcul du revenu cat\u00e9goriel\n # 1.2 Revenus des valeurs et capitaux mobiliers\n b12 = min_(f2ch, rvcm.abat_assvie * (1 + maries_ou_pacses))\n TOT1 = f2ch - b12 # c12\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s case DC\n den = ((f2dc_bis + f2ts) != 0) * (f2dc_bis + f2ts) + ((f2dc_bis + f2ts) == 0)\n F1 = f2ca / den * f2dc_bis # f12\n # Revenus de capitaux mobiliers nets de frais, ouvrant droit \u00e0 abattement\n # partie n\u00e9gative (\u00e0 d\u00e9duire des autres revenus nets de frais d'abattements\n g12a = -min_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n # partie positive\n g12b = max_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n rev = g12b + f2gr + f2fu * (1 - rvcm.abatmob_taux)\n\n # Abattements, limit\u00e9 au revenu\n h12 = rvcm.abatmob * (1 + maries_ou_pacses)\n TOT2 = max_(0, rev - h12)\n # i121= -min_(0,rev - h12)\n\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s ligne TS\n F2 = f2ca - F1\n TOT3 = (f2ts - F2) + f2go * rvcm.majGO + f2tr_bis - g12a\n\n DEF = deficit_rcm\n return period, max_(TOT1 + TOT2 + TOT3 - DEF, 0)\n", "input_variables": ["maries_ou_pacses", "f2dc", "f2ch", "f2da", "f2tr", "f2ts", "f2ca", "deficit_rcm", "f2gr", "f2fu", "f2ee", "f2go"]}, "stop_instant": "2012-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus des valeurs et capitaux mobiliers", "line_number": 665, "module": "ir", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2015, 12, 31))\ndef function_20130101_20151231(self, simulation, period):\n \"\"\"\n Revenus des valeurs et capitaux mobiliers\n \"\"\"\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n deficit_rcm = simulation.calculate('deficit_rcm', period)\n f2ch = simulation.calculate('f2ch', period)\n f2dc = simulation.calculate('f2dc', period)\n f2ts = simulation.calculate('f2ts', period)\n f2ca = simulation.calculate('f2ca', period)\n f2fu = simulation.calculate('f2fu', period)\n f2go = simulation.calculate('f2go', period)\n f2tr = simulation.calculate('f2tr', period)\n f2da = simulation.calculate('f2da', period)\n f2ee = simulation.calculate('f2ee', period)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n rvcm = simulation.legislation_at(period.start).ir.rvcm\n\n # Add f2da to f2dc and f2ee to f2tr when no PFL\n f2dc_bis = f2dc + f2da # TODO: l'abattement de 40% est d\u00e9duit uniquement en l'absence de revenus d\u00e9clar\u00e9s case 2DA\n f2tr_bis = f2tr + f2ee\n\n # # Calcul du revenu cat\u00e9goriel\n # 1.2 Revenus des valeurs et capitaux mobiliers\n b12 = min_(f2ch, rvcm.abat_assvie * (1 + maries_ou_pacses))\n TOT1 = f2ch - b12 # c12\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s case DC\n den = ((f2dc_bis + f2ts) != 0) * (f2dc_bis + f2ts) + ((f2dc_bis + f2ts) == 0)\n F1 = f2ca / den * f2dc_bis # f12\n # Revenus de capitaux mobiliers nets de frais, ouvrant droit \u00e0 abattement\n # partie n\u00e9gative (\u00e0 d\u00e9duire des autres revenus nets de frais d'abattements\n g12a = -min_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n # partie positive\n g12b = max_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n rev = g12b + f2fu * (1 - rvcm.abatmob_taux)\n\n # Abattements, limit\u00e9 au revenu\n h12 = rvcm.abatmob * (1 + maries_ou_pacses)\n TOT2 = max_(0, rev - h12)\n # i121= -min_(0,rev - h12)\n\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s ligne TS\n F2 = f2ca - F1\n TOT3 = (f2ts - F2) + f2go * rvcm.majGO + f2tr_bis - g12a\n\n DEF = deficit_rcm\n return period, max_(TOT1 + TOT2 + TOT3 - DEF, 0)\n", "input_variables": ["maries_ou_pacses", "f2dc", "f2ch", "f2da", "f2tr", "f2ts", "f2ca", "deficit_rcm", "f2gr", "f2fu", "f2ee", "f2go"]}, "stop_instant": "2015-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu cat\u00e9goriel - Traitements, salaires, pensions et rentes", "line_number": 527, "module": "ir", "name": "rev_cat_tspr", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/revenus-categoriesl.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 533, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n tspr_holder = simulation.compute('traitements_salaires_pensions_rentes', period)\n indu_plaf_abat_pen = simulation.calculate('indu_plaf_abat_pen', period)\n\n traitements_salaires_pensions_rentes = self.sum_by_entity(tspr_holder)\n\n return period, traitements_salaires_pensions_rentes + indu_plaf_abat_pen\n", "input_variables": ["traitements_salaires_pensions_rentes", "indu_plaf_abat_pen"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus d'activit\u00e9s", "line_number": 358, "module": "ir", "name": "revenu_activite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus d'activit\u00e9s ", "line_number": 363, "module": "ir", "source": "def function(self, simulation, period):\n ''' Revenus d'activit\u00e9s '''\n period = period.this_year\n revenu_activite_non_salariee = simulation.calculate('revenu_activite_non_salariee', period)\n revenu_activite_salariee = simulation.calculate('revenu_activite_salariee', period)\n\n return period, revenu_activite_non_salariee + revenu_activite_salariee\n", "input_variables": ["revenu_activite_non_salariee", "revenu_activite_salariee"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu d'activit\u00e9 non salari\u00e9e", "line_number": 346, "module": "ir", "name": "revenu_activite_non_salariee", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 351, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n rpns_i = simulation.calculate('rpns_individu', period)\n\n return period, rpns_i # TODO: v\u00e9rifier cette d\u00e9finition\n", "input_variables": ["rpns_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu d'activit\u00e9 salari\u00e9e", "line_number": 334, "module": "ir", "name": "revenu_activite_salariee", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 339, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n salaire_imposable = simulation.calculate_add('salaire_imposable', period)\n\n return period, salaire_imposable\n", "input_variables": ["salaire_imposable"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu impos\u00e9 comme des pensions (retraites, pensions alimentaires, etc.)", "line_number": 372, "module": "ir", "name": "revenu_assimile_pension", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 377, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n pensions_alimentaires_percues = simulation.calculate_add('pensions_alimentaires_percues', period)\n pensions_alimentaires_percues_decl = simulation.calculate_add('pensions_alimentaires_percues_decl', period)\n retraite_imposable = simulation.calculate_add('retraite_imposable', period)\n\n return period, pensions_alimentaires_percues * pensions_alimentaires_percues_decl + retraite_imposable\n", "input_variables": ["pensions_alimentaires_percues", "retraite_imposable", "pensions_alimentaires_percues_decl"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pensions apr\u00e8s abattements", "line_number": 386, "module": "ir", "name": "revenu_assimile_pension_apres_abattements", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 391, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n revenu_assimile_pension = simulation.calculate('revenu_assimile_pension', period)\n abatpen = simulation.legislation_at(period.start).ir.tspr.abatpen\n\n # TODO: probl\u00e8me car les pensions sont major\u00e9es au niveau du foyer\n# d11 = ( AS + BS + CS + DS + ES +\n# AO + BO + CO + DO + EO )\n# penv2 = (d11-f11> abatpen.max)*(penv + (d11-f11-abatpen.max)) + (d11-f11<= abatpen.max)*penv\n# Plus d'abatement de 20% en 2006\n return period, max_(0, revenu_assimile_pension - round(max_(abatpen.taux * revenu_assimile_pension , abatpen.min)))\n", "input_variables": ["revenu_assimile_pension"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu impos\u00e9 comme des salaires (salaires, mais aussi 3vj, 3vk)", "line_number": 302, "module": "ir", "name": "revenu_assimile_salaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 307, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n salaire_imposable = simulation.calculate_add('salaire_imposable', period)\n chomage_imposable = simulation.calculate_add('chomage_imposable', period)\n\n return period, salaire_imposable + chomage_imposable\n", "input_variables": ["salaire_imposable", "chomage_imposable"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Salaires et ch\u00f4mage imposables apr\u00e8s abattements", "line_number": 315, "module": "ir", "name": "revenu_assimile_salaire_apres_abattements", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 320, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n revenu_assimile_salaire = simulation.calculate('revenu_assimile_salaire', period)\n chomeur_longue_duree = simulation.calculate('chomeur_longue_duree', period)\n frais_reels = simulation.calculate('frais_reels', period)\n abatpro = simulation.legislation_at(period.start).ir.tspr.abatpro\n\n abattement_minimum = abatpro.min * not_(chomeur_longue_duree) + abatpro.min2 * chomeur_longue_duree\n abatfor = round(min_(max_(abatpro.taux * revenu_assimile_salaire, abattement_minimum), abatpro.max))\n return period, (\n (frais_reels > abatfor) * (revenu_assimile_salaire - frais_reels) + (frais_reels <= abatfor) * max_(0, revenu_assimile_salaire - abatfor)\n )\n", "input_variables": ["chomeur_longue_duree", "frais_reels", "revenu_assimile_salaire"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu fiscal de r\u00e9f\u00e9rence", "line_number": 1636, "module": "ir", "name": "rfr", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu fiscal de r\u00e9f\u00e9rence\nf3vg -> rev_cat_pv -> ... -> rni", "line_number": 1641, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenu fiscal de r\u00e9f\u00e9rence\n f3vg -> rev_cat_pv -> ... -> rni\n '''\n period = period.this_year\n rni = simulation.calculate('rni', period)\n f3va_holder = simulation.compute('f3va', period)\n f3vi_holder = simulation.compute('f3vi', period)\n rfr_cd = simulation.calculate('rfr_cd', period)\n rfr_rvcm = simulation.calculate('rfr_rvcm', period)\n rpns_exon_holder = simulation.compute('rpns_exon', period)\n rpns_pvce_holder = simulation.compute('rpns_pvce', period)\n rev_cap_lib = simulation.calculate_add('rev_cap_lib', period)\n f3vz = simulation.calculate('f3vz', period)\n microentreprise = simulation.calculate('microentreprise', period)\n\n f3va = self.sum_by_entity(f3va_holder)\n f3vi = self.sum_by_entity(f3vi_holder)\n rpns_exon = self.sum_by_entity(rpns_exon_holder)\n rpns_pvce = self.sum_by_entity(rpns_pvce_holder)\n return period, (max_(0, rni) + rfr_cd + rfr_rvcm + rev_cap_lib + f3vi + rpns_exon + rpns_pvce + f3va +\n f3vz + microentreprise)\n", "input_variables": ["f3vz", "rni", "microentreprise", "rev_cap_lib", "rpns_pvce", "f3vi", "rfr_rvcm", "f3va", "rpns_exon", "rfr_cd"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 716, "module": "ir", "name": "rfr_rvcm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Abattements sur rvcm \u00e0 r\u00e9int\u00e9grer dans le revenu fiscal de r\u00e9f\u00e9rence", "line_number": 721, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Abattements sur rvcm \u00e0 r\u00e9int\u00e9grer dans le revenu fiscal de r\u00e9f\u00e9rence\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f2dc = simulation.calculate('f2dc', period)\n f2ts = simulation.calculate('f2ts', period)\n f2ca = simulation.calculate('f2ca', period)\n f2gr = simulation.calculate('f2gr', period)\n f2fu = simulation.calculate('f2fu', period)\n f2da = simulation.calculate('f2da', period)\n finpfl = simulation.legislation_at(period.start).ir.autre.finpfl\n rvcm = simulation.legislation_at(period.start).ir.rvcm\n\n if finpfl:\n f2dc_bis = f2dc + f2da\n else:\n f2dc_bis = f2dc\n\n # Calcul de i121\n # Part des frais s'imputant sur les revenus d\u00e9clar\u00e9s case DC\n den = ((f2dc_bis + f2ts) != 0) * (f2dc_bis + f2ts) + ((f2dc_bis + f2ts) == 0)\n F1 = f2ca / den * f2dc_bis # f12\n # Revenus de capitaux mobiliers nets de frais, ouvrant droit \u00e0 abattement\n # partie positive\n g12b = max_(f2dc_bis * (1 - rvcm.abatmob_taux) - F1, 0)\n rev = g12b + f2gr + f2fu * (1 - rvcm.abatmob_taux)\n\n # Abattements, limit\u00e9 au revenu\n h12 = rvcm.abatmob * (1 + maries_ou_pacses)\n i121 = - min_(0, rev - h12)\n return period, max_((rvcm.abatmob_taux) * (f2dc_bis + f2fu) - i121, 0)\n", "input_variables": ["maries_ou_pacses", "f2gr", "f2da", "f2dc", "f2ca", "f2ts", "f2fu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "B\u00e9n\u00e9fices industriels et commerciaux", "line_number": 2081, "module": "ir", "name": "ric", "url": "http://www.impots.gouv.fr/portal/dgi/public/professionnels.impot?pageId=prof_bic&espId=2&impot=BIC&sfid=50", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "B\u00e9n\u00e9fices industriels et commerciaux\n'ind'\nmbic_exon (f5kn, f5ln, f5mn)\nabic_exon (f5kb, f5lb, f5mb)\nnbic_exon (f5kh, f5lh, f5mh)\nmbic_impv (f5ko, f5lo, f5mo)\nmbic_imps (f5kp, f5lp, f5mp)\nabic_impn (f5kc, f5lc, f5mc)\nabic_imps (f5kd, f5ld, f5md)\nnbic_impn (f5ki, f5li, f5mi)\nnbic_imps (f5kj, f5lj, f5mj)\nabic_defn (f5kf, f5lf, f5mf)\nabic_defs (f5kg, f5lg, f5mg)\nnbic_defn (f5kl, f5ll, f5ml)\nnbic_defs (f5km, f5lm, f5mm)\nnbic_apch (f5ks, f5ls, f5ms)", "line_number": 2087, "module": "ir", "source": "def function(self, simulation, period):\n '''\n B\u00e9n\u00e9fices industriels et commerciaux\n 'ind'\n mbic_exon (f5kn, f5ln, f5mn)\n abic_exon (f5kb, f5lb, f5mb)\n nbic_exon (f5kh, f5lh, f5mh)\n mbic_impv (f5ko, f5lo, f5mo)\n mbic_imps (f5kp, f5lp, f5mp)\n abic_impn (f5kc, f5lc, f5mc)\n abic_imps (f5kd, f5ld, f5md)\n nbic_impn (f5ki, f5li, f5mi)\n nbic_imps (f5kj, f5lj, f5mj)\n abic_defn (f5kf, f5lf, f5mf)\n abic_defs (f5kg, f5lg, f5mg)\n nbic_defn (f5kl, f5ll, f5ml)\n nbic_defs (f5km, f5lm, f5mm)\n nbic_apch (f5ks, f5ls, f5ms)\n '''\n period = period.this_year\n mbic_exon = simulation.calculate('mbic_exon', period)\n mbic_impv = simulation.calculate('mbic_impv', period)\n mbic_imps = simulation.calculate('mbic_imps', period)\n abic_exon = simulation.calculate('abic_exon', period)\n nbic_exon = simulation.calculate('nbic_exon', period)\n abic_impn = simulation.calculate('abic_impn', period)\n nbic_impn = simulation.calculate('nbic_impn', period)\n abic_imps = simulation.calculate('abic_imps', period)\n nbic_imps = simulation.calculate('nbic_imps', period)\n abic_defn = simulation.calculate('abic_defn', period)\n nbic_defn = simulation.calculate('nbic_defn', period)\n abic_defs = simulation.calculate('abic_defs', period)\n nbic_defs = simulation.calculate('nbic_defs', period)\n nbic_apch = simulation.calculate('nbic_apch', period)\n microentreprise = simulation.legislation_at(period.start).ir.rpns.microentreprise\n\n zbic = (mbic_exon + mbic_impv + mbic_imps\n + abic_exon + nbic_exon\n + abic_impn + nbic_impn\n + abic_imps + nbic_imps\n - abic_defn - nbic_defn\n - abic_defs - nbic_defs\n + nbic_apch)\n\n cond = (mbic_impv > 0) & (mbic_imps == 0)\n taux = microentreprise.vente.taux * cond + microentreprise.servi.taux * not_(cond)\n\n cbic = min_(\n mbic_impv + mbic_imps + mbic_exon,\n max_(\n microentreprise.vente.min,\n round(\n mbic_impv * microentreprise.vente.taux + mbic_imps * microentreprise.servi.taux + mbic_exon * taux\n )\n )\n )\n return period, zbic - cbic\n", "input_variables": ["abic_exon", "nbic_imps", "abic_imps", "abic_defs", "nbic_exon", "nbic_defs", "mbic_imps", "nbic_defn", "mbic_impv", "abic_defn", "abic_impn", "nbic_apch", "mbic_exon", "nbic_impn"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus non commerciaux individuels", "line_number": 2207, "module": "ir", "name": "rnc", "url": "http://www.impots.gouv.fr/portal/dgi/public/professionnels.impot?espId=2&pageId=prof_bnc&impot=BNC&sfid=50", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus non commerciaux individuels\n'ind'\nmbnc_exon (f5hp, f5ip, f5jp)\nabnc_exon (f5qb, f5rb, f5sb)\nnbnc_exon (f5qh, f5rh, f5sh)\nmbnc_impo (f5hq, f5iq, f5jq)\nabnc_impo (f5qc, f5rc, f5sc)\nabnc_defi (f5qe, f5re, f5se)\nnbnc_impo (f5qi, f5ri, f5si)\nnbnc_defi (f5qk, f5rk, f5sk)\nf5ql, f5qm????", "line_number": 2213, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus non commerciaux individuels\n 'ind'\n mbnc_exon (f5hp, f5ip, f5jp)\n abnc_exon (f5qb, f5rb, f5sb)\n nbnc_exon (f5qh, f5rh, f5sh)\n mbnc_impo (f5hq, f5iq, f5jq)\n abnc_impo (f5qc, f5rc, f5sc)\n abnc_defi (f5qe, f5re, f5se)\n nbnc_impo (f5qi, f5ri, f5si)\n nbnc_defi (f5qk, f5rk, f5sk)\n f5ql, f5qm????\n '''\n period = period.this_year\n mbnc_exon = simulation.calculate('mbnc_exon', period)\n mbnc_impo = simulation.calculate('mbnc_impo', period)\n abnc_exon = simulation.calculate('abnc_exon', period)\n nbnc_exon = simulation.calculate('nbnc_exon', period)\n abnc_impo = simulation.calculate('abnc_impo', period)\n nbnc_impo = simulation.calculate('nbnc_impo', period)\n abnc_defi = simulation.calculate('abnc_defi', period)\n nbnc_defi = simulation.calculate('nbnc_defi', period)\n specialbnc = simulation.legislation_at(period.start).ir.rpns.microentreprise.specialbnc\n\n zbnc = (mbnc_exon + mbnc_impo\n + abnc_exon + nbnc_exon\n + abnc_impo + nbnc_impo\n - abnc_defi - nbnc_defi)\n\n cbnc = min_(mbnc_exon + mbnc_impo, max_(specialbnc.min, round((mbnc_exon + mbnc_impo) * specialbnc.taux)))\n\n return period, zbnc - cbnc\n", "input_variables": ["abnc_exon", "nbnc_defi", "nbnc_exon", "mbnc_impo", "abnc_defi", "abnc_impo", "mbnc_exon", "nbnc_impo"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu net global", "line_number": 940, "module": "ir", "name": "rng", "url": "http://impotsurlerevenu.org/definitions/114-revenu-net-global.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu net global (total 20) ", "line_number": 946, "module": "ir", "source": "def function(self, simulation, period):\n ''' Revenu net global (total 20) '''\n period = period.this_year\n rbg = simulation.calculate('rbg', period)\n csg_deduc = simulation.calculate('csg_deduc', period)\n charges_deduc = simulation.calculate('charges_deduc', period)\n\n return period, max_(0, rbg - csg_deduc - charges_deduc)\n", "input_variables": ["rbg", "charges_deduc", "csg_deduc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu net imposable", "line_number": 956, "module": "ir", "name": "rni", "url": "http://impotsurlerevenu.org/definitions/115-revenu-net-imposable.php", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenu net imposable ou d\u00e9ficit \u00e0 reporter", "line_number": 962, "module": "ir", "source": "def function(self, simulation, period):\n ''' Revenu net imposable ou d\u00e9ficit \u00e0 reporter'''\n period = period.this_year\n rng = simulation.calculate('rng', period)\n abat_spe = simulation.calculate('abat_spe', period)\n\n return period, rng - abat_spe\n", "input_variables": ["rng", "abat_spe"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus individuels des professions non salari\u00e9es", "line_number": 2248, "module": "ir", "name": "rpns", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 2253, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n rag = simulation.calculate('rag', period)\n ric = simulation.calculate('ric', period)\n rac = simulation.calculate('rac', period)\n rnc = simulation.calculate('rnc', period)\n\n return period, rag + ric + rac + rnc\n", "input_variables": ["rnc", "rag", "ric", "rac"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Plus values de cession exon\u00e9r\u00e9es -Revenu des professions non salari\u00e9es", "line_number": 1874, "module": "ir", "name": "rpns_exon", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Plus values de cession\n'ind'\nfrag_exon (f5hn, f5in, f5jn)\narag_exon (f5hb, f5ib, f5jb)\nnrag_exon (f5hh, f5ih, f5jh)\nmbic_exon (f5kn, f5ln, f5mn)\nabic_exon (f5kb, f5lb, f5mb)\nnbic_exon (f5kh, f5lh, f5mh)\nmacc_exon (f5nn, f5on, f5pn)\naacc_exon (f5nb, f5ob, f5pb)\nnacc_exon (f5nh, f5oh, f5ph)\nmbnc_exon (f5hp, f5ip, f5jp)\nabnc_exon (f5qb, f5rb, f5sb)\nnbnc_exon (f5qh, f5rh, f5sh)\nnbnc_pvce (f5qj, f5rj, f5sj)", "line_number": 1879, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Plus values de cession\n 'ind'\n frag_exon (f5hn, f5in, f5jn)\n arag_exon (f5hb, f5ib, f5jb)\n nrag_exon (f5hh, f5ih, f5jh)\n mbic_exon (f5kn, f5ln, f5mn)\n abic_exon (f5kb, f5lb, f5mb)\n nbic_exon (f5kh, f5lh, f5mh)\n macc_exon (f5nn, f5on, f5pn)\n aacc_exon (f5nb, f5ob, f5pb)\n nacc_exon (f5nh, f5oh, f5ph)\n mbnc_exon (f5hp, f5ip, f5jp)\n abnc_exon (f5qb, f5rb, f5sb)\n nbnc_exon (f5qh, f5rh, f5sh)\n nbnc_pvce (f5qj, f5rj, f5sj)\n '''\n period = period.this_year\n frag_exon = simulation.calculate('frag_exon', period)\n arag_exon = simulation.calculate('arag_exon', period)\n nrag_exon = simulation.calculate('nrag_exon', period)\n mbic_exon = simulation.calculate('mbic_exon', period)\n abic_exon = simulation.calculate('abic_exon', period)\n nbnc_proc = simulation.calculate('nbnc_proc', period)\n nbic_exon = simulation.calculate('nbic_exon', period)\n macc_exon = simulation.calculate('macc_exon', period)\n aacc_exon = simulation.calculate('aacc_exon', period)\n nacc_exon = simulation.calculate('nacc_exon', period)\n mbnc_exon = simulation.calculate('mbnc_exon', period)\n abnc_proc = simulation.calculate('abnc_proc', period)\n nrag_pvce = simulation.calculate('nrag_pvce', period)\n abnc_exon = simulation.calculate('abnc_exon', period)\n nbnc_exon = simulation.calculate('nbnc_exon', period)\n mncn_exon = simulation.calculate('mncn_exon', period)\n cncn_exon = simulation.calculate('cncn_exon', period)\n cncn_jcre = simulation.calculate('cncn_jcre', period)\n cncn_info = simulation.calculate('cncn_info', period)\n nbic_pvce = simulation.calculate('nbic_pvce', period)\n cga = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n\n return period, (frag_exon + arag_exon + nrag_exon + mbic_exon + abic_exon + nbnc_proc * (1 + cga) +\n nbic_exon + macc_exon + aacc_exon + nacc_exon + mbnc_exon + abnc_proc +\n abnc_exon + nbnc_exon + mncn_exon + cncn_exon + cncn_jcre + cncn_info + nbic_pvce + nrag_pvce)\n", "input_variables": ["cncn_jcre", "abic_exon", "macc_exon", "frag_exon", "nrag_pvce", "nacc_exon", "nbic_exon", "cncn_exon", "nbic_pvce", "nbnc_exon", "aacc_exon", "mbic_exon", "cncn_info", "nbnc_proc", "abnc_proc", "mncn_exon", "mbnc_exon", "abnc_exon", "arag_exon", "nrag_exon"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus des professions non salari\u00e9es individuels", "line_number": 2334, "module": "ir", "name": "rpns_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Revenus des professions non salari\u00e9es individuels", "line_number": 2339, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Revenus des professions non salari\u00e9es individuels\n '''\n period = period.this_year\n frag_impo = simulation.calculate('frag_impo', period)\n arag_impg = simulation.calculate('arag_impg', period)\n nrag_impg = simulation.calculate('nrag_impg', period)\n arag_defi = simulation.calculate('arag_defi', period)\n nrag_defi = simulation.calculate('nrag_defi', period)\n mbic_impv = simulation.calculate('mbic_impv', period)\n mbic_imps = simulation.calculate('mbic_imps', period)\n abic_impn = simulation.calculate('abic_impn', period)\n abic_imps = simulation.calculate('abic_imps', period)\n abic_defn = simulation.calculate('abic_defn', period)\n abic_defs = simulation.calculate('abic_defs', period)\n nbic_impn = simulation.calculate('nbic_impn', period)\n nbic_imps = simulation.calculate('nbic_imps', period)\n nbic_defn = simulation.calculate('nbic_defn', period)\n nbic_defs = simulation.calculate('nbic_defs', period)\n macc_impv = simulation.calculate('macc_impv', period)\n macc_imps = simulation.calculate('macc_imps', period)\n nbic_mvct = simulation.calculate('nbic_mvct', period)\n aacc_impn = simulation.calculate('aacc_impn', period)\n aacc_defn = simulation.calculate('aacc_defn', period)\n aacc_gits = simulation.calculate('aacc_gits', period)\n nacc_impn = simulation.calculate('nacc_impn', period)\n nacc_defn = simulation.calculate('nacc_defn', period)\n nacc_defs = simulation.calculate('nacc_defs', period)\n aacc_imps = simulation.calculate('aacc_imps', period)\n mbnc_impo = simulation.calculate('mbnc_impo', period)\n nacc_meup = simulation.calculate('nacc_meup', period)\n abic_impm = simulation.calculate('abic_impm', period)\n abic_defm = simulation.calculate('abic_defm', period)\n abnc_impo = simulation.calculate('abnc_impo', period)\n abnc_defi = simulation.calculate('abnc_defi', period)\n nbic_impm = simulation.calculate('nbic_impm', period)\n alnp_imps = simulation.calculate('alnp_imps', period)\n nbnc_impo = simulation.calculate('nbnc_impo', period)\n nbnc_defi = simulation.calculate('nbnc_defi', period)\n alnp_defs = simulation.calculate('alnp_defs', period)\n cbnc_assc = simulation.calculate('cbnc_assc', period)\n mncn_impo = simulation.calculate('mncn_impo', period)\n cncn_bene = simulation.calculate('cncn_bene', period)\n cncn_defi = simulation.calculate('cncn_defi', period)\n abnc_proc = simulation.calculate('abnc_proc', period)\n rpns_pvct = simulation.calculate('rpns_pvct', period)\n rpns_mvct = simulation.calculate('rpns_mvct', period)\n nbnc_proc = simulation.calculate('nbnc_proc', period)\n frag_fore = simulation.calculate('frag_fore', period)\n f5sq = simulation.calculate('f5sq', period)\n mncn_exon = simulation.calculate('mncn_exon', period)\n cncn_exon = simulation.calculate('cncn_exon', period)\n cncn_aimp = simulation.calculate('cncn_aimp', period)\n cncn_adef = simulation.calculate('cncn_adef', period)\n cncn_info = simulation.calculate('cncn_info', period)\n cncn_jcre = simulation.calculate('cncn_jcre', period)\n revimpres = simulation.calculate('revimpres', period)\n pveximpres = simulation.calculate('pveximpres', period)\n pvtaimpres = simulation.calculate('pvtaimpres', period)\n cga_taux2 = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n microentreprise = simulation.legislation_at(period.start).ir.rpns.microentreprise\n\n def abat_rpns(rev, P):\n return max_(0, rev - min_(rev, max_(P.taux * min_(P.max, rev), P.min)))\n\n # Jeunes agriculteurs montant de l'abattement de 50% ou 100%\n # nrag_ajag = f5hm + f5im + f5jm\n\n# # d\u00e9ficits agricole des ann\u00e9es ant\u00e9rieurs (imputables uniquement\n# # sur des revenus agricoles)\n# rag_timp = frag_impo + frag_pvct + arag_impg + nrag_impg\n# cond = (AUTRE <= microentreprise.def_agri_seuil)\n# def_agri = cond*(arag_defi + nrag_defi) + not_(cond)*min_(rag_timp, arag_defi + nrag_defi)\n# # TODO : check 2006 cf art 156 du CGI pour 2006\n# def_agri_ant = min_(max_(0,rag_timp - def_agri), f5sq)\n\n def_agri = f5sq + arag_defi + nrag_defi\n\n # # B revenus industriels et commerciaux professionnels\n # regime micro entreprise\n mbic_timp = abat_rpns(mbic_impv, microentreprise.vente) + abat_rpns(mbic_imps, microentreprise.servi)\n\n # R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el b\u00e9n\u00e9ficiant de l'abattement CGA\n abic_timp = abic_impn + abic_imps - (abic_defn + abic_defs)\n\n # R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el ne b\u00e9n\u00e9ficiant pas de l'abattement CGA\n nbic_timp = (nbic_impn + nbic_imps) - (nbic_defn + nbic_defs)\n\n # Abatemment artisant p\u00e9cheur\n # nbic_apch = f5ks + f5ls + f5ms # TODO : \u00e0 int\u00e9grer qqpart\n\n # # C revenus industriels et commerciaux non professionnels\n # (revenus accesoires du foyers en nomenclature INSEE)\n\n # regime micro entreprise\n macc_timp = abat_rpns(macc_impv, microentreprise.vente) + abat_rpns(macc_imps, microentreprise.servi)\n # R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el b\u00e9n\u00e9ficiant de l'abattement CGA\n aacc_timp = (max_(0, (aacc_impn + (aacc_gits > 0) * max_(microentreprise.servi.min, aacc_gits *\n (1 - microentreprise.vente.taux)) + (aacc_imps > 0) * max_(microentreprise.servi.min, aacc_imps *\n (1 - microentreprise.servi.taux)) + (nacc_meup > 0) * max_(microentreprise.servi.min, nacc_meup *\n (1 - microentreprise.vente.taux)) + nacc_defs - aacc_defn)))\n # R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el ne b\u00e9n\u00e9ficiant pas de l'abattement CGA\n nacc_timp = max_(0, nacc_impn - nacc_defn)\n\n # # E revenus non commerciaux non professionnels\n # regime d\u00e9claratif special ou micro-bnc\n mncn_timp = abat_rpns(mncn_impo, microentreprise.specialbnc)\n\n # r\u00e9gime de la d\u00e9claration control\u00e9e\n # total 11\n cncn_timp = max_(0, cncn_bene - cncn_defi)\n # Abatement jeunes cr\u00e9ateurs\n\n # # D revenus non commerciaux professionnels\n # regime d\u00e9claratif special ou micro-bnc\n mbnc_timp = abat_rpns(mbnc_impo, microentreprise.specialbnc)\n\n # regime de la d\u00e9claration contr\u00f4l\u00e9e b\u00e9n\u00e9ficiant de l'abattement association agr\u00e9\u00e9e\n abnc_timp = abnc_impo - abnc_defi\n\n # regime de la d\u00e9claration contr\u00f4l\u00e9e ne b\u00e9n\u00e9ficiant pas de l'abattement association agr\u00e9\u00e9e\n nbnc_timp = nbnc_impo - nbnc_defi\n\n # # Totaux\n atimp = arag_impg + abic_timp + aacc_timp + abnc_timp\n ntimp = nrag_impg + nbic_timp + nacc_timp + nbnc_timp + cncn_timp\n\n majo_cga = max_(0, cga_taux2 * (ntimp + frag_impo)) # Pour ne pas avoir \u00e0 majorer les d\u00e9ficits\n # total 6\n rev_NS = frag_impo + frag_fore + atimp + ntimp + majo_cga - def_agri\n\n # revenu net apr\u00e8s abatement\n # total 7\n rev_NS_mi = mbic_timp + max_(0, macc_timp) + mbnc_timp + mncn_timp\n exon = max_(0, macc_timp + nacc_timp - rpns_mvct) - macc_timp - nacc_timp # ajout artificiel\n RPNS = (rev_NS + rev_NS_mi + rpns_pvct + exon + abic_impm - abic_defm + alnp_imps + cncn_aimp - nbic_mvct)\n return period, RPNS\n", "input_variables": ["frag_fore", "cncn_jcre", "nrag_impg", "f5sq", "alnp_imps", "pvtaimpres", "cncn_aimp", "abnc_defi", "nacc_meup", "rpns_pvct", "cbnc_assc", "nbnc_proc", "revimpres", "rpns_mvct", "cncn_defi", "nbic_mvct", "macc_imps", "abic_imps", "macc_impv", "mncn_impo", "nbnc_defi", "mbic_imps", "abnc_impo", "mbic_impv", "abnc_proc", "mncn_exon", "abic_impn", "abic_impm", "nbnc_impo", "nbic_impm", "pveximpres", "cncn_bene", "arag_impg", "abic_defs", "nrag_defi", "nbic_defs", "frag_impo", "cncn_exon", "alnp_defs", "abic_defn", "cncn_info", "arag_defi", "abic_defm", "aacc_defn", "nacc_defn", "nacc_impn", "nbic_imps", "cncn_adef", "aacc_gits", "aacc_imps", "mbnc_impo", "nbic_defn", "aacc_impn", "nacc_defs", "nbic_impn"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Moins values de court terme - Revenu des professions non salari\u00e9es", "line_number": 2288, "module": "ir", "name": "rpns_mvct", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Moins values de court terme\n\n'ind'\nmacc_mvct (f5iu)\nmncn_mvct (f5ju)\nmbnc_mvct (f5kz)", "line_number": 2293, "module": "ir", "source": "def function(self, simulation, period):\n \"\"\"Moins values de court terme\n\n 'ind'\n macc_mvct (f5iu)\n mncn_mvct (f5ju)\n mbnc_mvct (f5kz)\n \"\"\"\n period = period.this_year\n macc_mvct_holder = simulation.compute('macc_mvct', period)\n mbnc_mvct = simulation.calculate('mbnc_mvct', period)\n mncn_mvct_holder = simulation.compute('mncn_mvct', period)\n\n macc_mvct = self.cast_from_entity_to_role(macc_mvct_holder, role = VOUS)\n mncn_mvct = self.cast_from_entity_to_role(mncn_mvct_holder, role = VOUS)\n return period, mbnc_mvct + macc_mvct # mncn_mvct ?\n", "input_variables": ["mncn_mvct", "mbnc_mvct", "macc_mvct"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Moins values de long terme - Revenu des professions non salari\u00e9es", "line_number": 2311, "module": "ir", "name": "rpns_mvlt", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Moins values de long terme\n'ind'\nmbic_mvlt (f5kr, f5lr, f5mr)\nmacc_mvlt (f5nr, f5or, f5pr)\nmncn_mvlt (f5kw, f5lw, f5mw)\nmbnc_mvlt (f5hs, f5is, f5js)", "line_number": 2316, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Moins values de long terme\n 'ind'\n mbic_mvlt (f5kr, f5lr, f5mr)\n macc_mvlt (f5nr, f5or, f5pr)\n mncn_mvlt (f5kw, f5lw, f5mw)\n mbnc_mvlt (f5hs, f5is, f5js)\n '''\n period = period.this_year\n mbic_mvlt = simulation.calculate('mbic_mvlt', period)\n macc_mvlt = simulation.calculate('macc_mvlt', period)\n mbnc_mvlt = simulation.calculate('mbnc_mvlt', period)\n mncn_mvlt = simulation.calculate('mncn_mvlt', period)\n\n return period, mbic_mvlt + macc_mvlt + mbnc_mvlt + mncn_mvlt\n", "input_variables": ["mncn_mvlt", "mbnc_mvlt", "mbic_mvlt", "macc_mvlt"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Plus values de cession - Revenu des professions non salari\u00e9es", "line_number": 1838, "module": "ir", "name": "rpns_pvce", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Plus values de cession\n'ind'\nfrag_pvce (f5hx, f5ix, f5jx)\narag_pvce (f5he, f5ie, f5je)\nmbic_pvce (f5kq, f5lq, f5mq)\nabic_pvce (f5ke, f5le, f5me)\nmacc_pvce (f5nq, f5oq, f5pq)\naacc_pvce (f5ne, f5oe, f5pe)\nmncn_pvce (f5kv, f5lv, f5mv)\ncncn_pvce (f5so, f5nt, f5ot)\nmbnc_pvce (f5hr, f5ir, f5jr)\nabnc_pvce (f5qd, f5rd, f5sd)", "line_number": 1843, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Plus values de cession\n 'ind'\n frag_pvce (f5hx, f5ix, f5jx)\n arag_pvce (f5he, f5ie, f5je)\n mbic_pvce (f5kq, f5lq, f5mq)\n abic_pvce (f5ke, f5le, f5me)\n macc_pvce (f5nq, f5oq, f5pq)\n aacc_pvce (f5ne, f5oe, f5pe)\n mncn_pvce (f5kv, f5lv, f5mv)\n cncn_pvce (f5so, f5nt, f5ot)\n mbnc_pvce (f5hr, f5ir, f5jr)\n abnc_pvce (f5qd, f5rd, f5sd)\n '''\n period = period.this_year\n frag_pvce = simulation.calculate('frag_pvce', period)\n arag_pvce = simulation.calculate('arag_pvce', period)\n mbic_pvce = simulation.calculate('mbic_pvce', period)\n abic_pvce = simulation.calculate('abic_pvce', period)\n macc_pvce = simulation.calculate('macc_pvce', period)\n aacc_pvce = simulation.calculate('aacc_pvce', period)\n mbnc_pvce = simulation.calculate('mbnc_pvce', period)\n abnc_pvce = simulation.calculate('abnc_pvce', period)\n mncn_pvce = simulation.calculate('mncn_pvce', period)\n cncn_pvce = simulation.calculate('cncn_pvce', period)\n\n return period, (frag_pvce + arag_pvce + mbic_pvce + abic_pvce + macc_pvce + aacc_pvce + mbnc_pvce +\n abnc_pvce + mncn_pvce + cncn_pvce)\n", "input_variables": ["frag_pvce", "abnc_pvce", "mncn_pvce", "arag_pvce", "macc_pvce", "cncn_pvce", "abic_pvce", "aacc_pvce", "mbic_pvce", "mbnc_pvce"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Plus values de court terme -Revenu des professions non salari\u00e9es", "line_number": 2263, "module": "ir", "name": "rpns_pvct", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Plus values de court terme\n'ind'\nfrag_pvct (f5hw, f5iw, f5jw)\nmbic_pvct (f5kx, f5lx, f5mx)\nmacc_pvct (f5nx, f5ox, f5px)\nmbnc_pvct (f5hv, f5iv, f5jv)\nmncn_pvct (f5ky, f5ly, f5my)", "line_number": 2268, "module": "ir", "source": "def function(self, simulation, period):\n '''\n Plus values de court terme\n 'ind'\n frag_pvct (f5hw, f5iw, f5jw)\n mbic_pvct (f5kx, f5lx, f5mx)\n macc_pvct (f5nx, f5ox, f5px)\n mbnc_pvct (f5hv, f5iv, f5jv)\n mncn_pvct (f5ky, f5ly, f5my)\n '''\n period = period.this_year\n frag_pvct = simulation.calculate('frag_pvct', period)\n mbic_pvct = simulation.calculate('mbic_pvct', period)\n macc_pvct = simulation.calculate('macc_pvct', period)\n mbnc_pvct = simulation.calculate('mbnc_pvct', period)\n mncn_pvct = simulation.calculate('mncn_pvct', period)\n\n return period, frag_pvct + macc_pvct + mbic_pvct + mbnc_pvct + mncn_pvct\n", "input_variables": ["frag_pvct", "mbic_pvct", "mncn_pvct", "macc_pvct", "mbnc_pvct"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2527, "module": "ir", "name": "taux_effectif", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 2533, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n rni = simulation.calculate('rni', period)\n nbptr = simulation.calculate('nbptr', period)\n microentreprise = simulation.calculate('microentreprise', period)\n abnc_proc_holder = simulation.compute('abnc_proc', period)\n nbnc_proc_holder = simulation.compute('nbnc_proc', period)\n bareme = simulation.legislation_at(period.start).ir.bareme\n cga = simulation.legislation_at(period.start).ir.rpns.cga_taux2\n\n abnc_proc = self.sum_by_entity(abnc_proc_holder)\n nbnc_proc = self.sum_by_entity(nbnc_proc_holder)\n base_fictive = rni + microentreprise + abnc_proc + nbnc_proc * (1 + cga)\n trigger = (microentreprise != 0) | (abnc_proc != 0) | (nbnc_proc != 0)\n return period, trigger * nbptr * bareme.calc(base_fictive / nbptr) / max_(1, base_fictive)\n", "input_variables": ["rni", "nbptr", "microentreprise", "nbnc_proc", "abnc_proc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Taux moyen d'imposition", "line_number": 2550, "module": "ir", "name": "taux_moyen_imposition", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 2555, "module": "ir", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'year').period('year')\n rni = simulation.calculate('rni', period)\n irpp = simulation.calculate('irpp', period)\n return period, (\n (- irpp) / (rni + (rni == 0))\n ) * (rni > 0)\n", "input_variables": ["rni", "irpp"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Taxe exceptionelle sur l'indemnit\u00e9 compensatrice des agents d'assurance", "line_number": 1242, "module": "ir", "name": "teicaa", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Taxe exceptionelle sur l'indemnit\u00e9 compensatrice des agents d'assurance", "line_number": 1247, "module": "ir", "source": "def function(self, simulation, period):\n \"\"\"\n Taxe exceptionelle sur l'indemnit\u00e9 compensatrice des agents d'assurance\n \"\"\"\n period = period.this_year\n f5qm_holder = simulation.compute('f5qm', period)\n bareme = simulation.legislation_at(period.start).ir.teicaa\n\n f5qm = self.filter_role(f5qm_holder, role = VOUS)\n f5rm = self.filter_role(f5qm_holder, role = CONJ)\n\n return period, bareme.calc(f5qm) + bareme.calc(f5rm)\n", "input_variables": ["f5qm"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Traitements salaires pensions et rentes individuelles", "line_number": 493, "module": "ir", "name": "traitements_salaires_pensions_rentes", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 498, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n\n revenu_assimile_salaire_apres_abattements = simulation.calculate('revenu_assimile_salaire_apres_abattements', period)\n revenu_assimile_pension_apres_abattements = simulation.calculate('revenu_assimile_pension_apres_abattements', period)\n abattement_salaires_pensions = simulation.calculate('abattement_salaires_pensions', period)\n\n # Quand tspr est calcul\u00e9 sur une ann\u00e9e glissante, retraite_titre_onereux_net_declarant1 est calcul\u00e9 sur l'ann\u00e9e l\u00e9gale\n # correspondante.\n retraite_titre_onereux_net_declarant1 = simulation.calculate('retraite_titre_onereux_net_declarant1', period.offset('first-of'))\n\n return period, revenu_assimile_salaire_apres_abattements + revenu_assimile_pension_apres_abattements - abattement_salaires_pensions + retraite_titre_onereux_net_declarant1\n", "input_variables": ["abattement_salaires_pensions", "revenu_assimile_salaire_apres_abattements", "revenu_assimile_pension_apres_abattements", "retraite_titre_onereux_net_declarant1"]}}, {"@type": "Boolean", "default": false, "entity": "foyers_fiscaux", "label": "D\u00e9clarant veuf", "line_number": 269, "module": "ir", "name": "veuf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 274, "module": "ir", "source": "def function(self, simulation, period):\n period = period.this_year\n statut_marital_holder = simulation.compute('statut_marital', period)\n\n statut_marital = self.filter_role(statut_marital_holder, role = VOUS)\n\n return period, statut_marital == 4\n", "input_variables": ["statut_marital"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 459, "module": "reductions_impot", "name": "adhcga", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Frais de comptabilit\u00e9 et d'adh\u00e9sion \u00e0 un CGA ou AA\n2002-", "line_number": 464, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Frais de comptabilit\u00e9 et d'adh\u00e9sion \u00e0 un CGA ou AA\n 2002-\n '''\n period = period.this_year\n f7ff = simulation.calculate('f7ff', period)\n f7fg = simulation.calculate('f7fg', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.adhcga\n\n return period, min_(f7ff, P.max * f7fg)\n", "input_variables": ["f7fg", "f7ff"]}}, {"@type": "Float", "default": 0, "end": "2004-12-31", "entity": "foyers_fiscaux", "line_number": 477, "module": "reductions_impot", "name": "assvie", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Assurance-vie (cases GW, GX et GY de la 2042)\n2002-2004", "line_number": 484, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Assurance-vie (cases GW, GX et GY de la 2042)\n 2002-2004\n '''\n period = period.this_year\n nb_pac = simulation.calculate('nb_pac', period)\n f7gw = simulation.calculate('f7gw', period)\n f7gx = simulation.calculate('f7gx', period)\n f7gy = simulation.calculate('f7gy', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.assvie\n\n max1 = P.max + nb_pac * P.pac\n return period, P.taux * min_(f7gw + f7gx + f7gy, max1)\n", "input_variables": ["f7gw", "f7gx", "f7gy", "nb_pac"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 500, "module": "reductions_impot", "name": "cappme", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2002", "line_number": 505, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2002\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cf\n seuil = P.seuil * (maries_ou_pacses + 1)\n return period, P.taux * min_(base, seuil)\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2003", "line_number": 521, "module": "reductions_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2003, 12, 31))\ndef function_20030101_20031231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2003\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cf + f7cl\n seuil = P.seuil * (maries_ou_pacses + 1)\n return period, P.taux * min_(base, seuil)\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2003-12-31", "start_instant": "2003-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2004", "line_number": 538, "module": "reductions_impot", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2004, 12, 31))\ndef function_20040101_20041231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2004\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n f7cm = simulation.calculate('f7cm', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cf + f7cl + f7cm\n seuil = P.seuil * (maries_ou_pacses + 1)\n return period, P.taux * min_(base, seuil)\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2004-12-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2005-2008", "line_number": 556, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2008, 12, 31))\ndef function_20050101_20081231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2005-2008\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n f7cm = simulation.calculate('f7cm', period)\n f7cn = simulation.calculate('f7cn', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cf + f7cl + f7cm + f7cn\n seuil = P.seuil * (maries_ou_pacses + 1)\n return period, P.taux * min_(base, seuil)\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2008-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2009-2010", "line_number": 575, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2010, 12, 31))\ndef function_20090101_20101231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2009-2010\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n f7cm = simulation.calculate('f7cm', period)\n f7cn = simulation.calculate('f7cn', period)\n f7cu = simulation.calculate('f7cu', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cf + f7cl + f7cm + f7cn + f7cu\n seuil = P.seuil * (maries_ou_pacses + 1)\n seuil = P.seuil_tpe * (maries_ou_pacses + 1) * (f7cu > 0) + P.seuil * (maries_ou_pacses + 1) * (f7cu <= 0)\n return period, P.taux * min_(base, seuil)\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2010-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2011", "line_number": 596, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2011\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n f7cm = simulation.calculate('f7cm', period)\n f7cn = simulation.calculate('f7cn', period)\n f7cq = simulation.calculate('f7cq', period)\n f7cu = simulation.calculate('f7cu', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cl + f7cm + f7cn + f7cq\n seuil = P.seuil_tpe * (maries_ou_pacses + 1) * (f7cu > 0) + P.seuil * (maries_ou_pacses + 1) * (f7cu <= 0)\n max0 = max_(seuil - base, 0)\n return period, max_(P.taux25 * min_(base, seuil), P.taux * min_(max0, f7cf + f7cu))\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2012 cf. 2041 GR", "line_number": 618, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2012 cf. 2041 GR\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n f7cm = simulation.calculate('f7cm', period)\n f7cn = simulation.calculate('f7cn', period)\n f7cq = simulation.calculate('f7cq', period)\n f7cu = simulation.calculate('f7cu', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n #TODO: g\u00e9rer les changements de situation familiale\n base = f7cl + f7cm + f7cn\n seuil1 = P.seuil * (maries_ou_pacses + 1)\n seuil2 = max_(0, P.seuil_tpe * (maries_ou_pacses + 1) - min_(base, seuil1) - min_(f7cq, seuil1) - min_(f7cu, seuil1))\n seuil3 = min_(P.seuil_tpe * (maries_ou_pacses + 1) - min_(base, seuil1) - min_(f7cq, seuil1), seuil1)\n return period, P.taux25 * min_(base, seuil1) + P.taux * min_(f7cq, seuil1) + P.taux18 * (min_(f7cf, seuil3) +\n mini(f7cu, seuil2, seuil1))\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital des PME\n2013", "line_number": 643, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Souscriptions au capital des PME\n 2013\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7cc = simulation.calculate('f7cc', period)\n f7cf = simulation.calculate('f7cf', period)\n f7cl = simulation.calculate('f7cl', period)\n f7cm = simulation.calculate('f7cm', period)\n f7cn = simulation.calculate('f7cn', period)\n f7cq = simulation.calculate('f7cq', period)\n f7cu = simulation.calculate('f7cu', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cappme\n\n base = f7cl + f7cm\n seuil1 = P.seuil * (maries_ou_pacses + 1)\n seuil2 = max_(0, P.seuil_tpe * (maries_ou_pacses + 1) - min_(base, seuil1) - min_(f7cn, seuil1) - min_(f7cu, seuil1))\n seuil3 = min_(P.seuil_tpe * (maries_ou_pacses + 1) - min_(base, seuil1) - min_(f7cq, seuil1), seuil1)\n return period, P.taux25 * min_(base, seuil1) + P.taux22 * min_(f7cn, seuil1) + P.taux18 * (min_(f7cf + f7cc, seuil3) +\n min_(f7cu + f7cq, seuil2))\n", "input_variables": ["maries_ou_pacses", "f7cc", "f7cf", "f7cl", "f7cm", "f7cn", "f7cq", "f7cu"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 669, "module": "reductions_impot", "name": "cotsyn", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Cotisations syndicales (2002-20131", "line_number": 674, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Cotisations syndicales (2002-20131\n '''\n period = period.this_year\n f7ac_holder = simulation.compute('f7ac', period)\n salaire_imposable_holder = simulation.compute_add('salaire_imposable', period)\n cho_holder = simulation.compute('chomage_imposable', period)\n rst_holder = simulation.compute('retraite_imposable', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.cotsyn\n\n f7ac = self.filter_role(f7ac_holder, role = VOUS)\n f7ae = self.filter_role(f7ac_holder, role = CONJ)\n f7ag = self.filter_role(f7ac_holder, role = PAC1)\n\n chomage_imposable = self.split_by_roles(cho_holder)\n retraite_imposable = self.split_by_roles(rst_holder)\n salaire_imposable = self.split_by_roles(salaire_imposable_holder)\n\n tx = P.seuil\n\n salv, salc, salp = salaire_imposable[VOUS], salaire_imposable[CONJ], salaire_imposable[PAC1]\n chov, choc, chop = chomage_imposable[VOUS], chomage_imposable[CONJ], chomage_imposable[PAC1]\n rstv, rstc, rstp = retraite_imposable[VOUS], retraite_imposable[CONJ], retraite_imposable[PAC1]\n maxv = (salv + chov + rstv) * tx\n maxc = (salc + choc + rstc) * tx\n maxp = (salp + chop + rstp) * tx\n\n return period, P.taux * (min_(f7ac, maxv) + min_(f7ae, maxc) + min_(f7ag, maxp))\n", "input_variables": ["salaire_imposable", "chomage_imposable", "f7ac", "retraite_imposable"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 705, "module": "reductions_impot", "name": "creaen", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n2006-2008", "line_number": 710, "module": "reductions_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n '''\n Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n 2006-2008\n '''\n period = period.this_year\n f7fy = simulation.calculate('f7fy', period)\n f7gy = simulation.calculate('f7gy', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.creaen\n\n return period, (P.base * f7fy + P.hand * f7gy)\n", "input_variables": ["f7gy", "f7fy", "f7hy", "f7iy", "f7ky", "f7jy", "f7ly", "f7my"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n2009", "line_number": 724, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n 2009\n '''\n period = period.this_year\n f7fy = simulation.calculate('f7fy', period)\n f7gy = simulation.calculate('f7gy', period)\n f7jy = simulation.calculate('f7jy', period)\n f7hy = simulation.calculate('f7hy', period)\n f7ky = simulation.calculate('f7ky', period)\n f7iy = simulation.calculate('f7iy', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.creaen\n\n return period, (P.base * ((f7jy + f7fy) + f7hy / 2) +\n P.hand * ((f7ky + f7gy) + f7iy / 2))\n", "input_variables": ["f7gy", "f7fy", "f7hy", "f7iy", "f7ky", "f7jy", "f7ly", "f7my"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n2010-2011", "line_number": 743, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2011, 12, 31))\ndef function_20100101_20111231(self, simulation, period):\n '''\n Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n 2010-2011\n '''\n period = period.this_year\n f7fy = simulation.calculate('f7fy', period)\n f7gy = simulation.calculate('f7gy', period)\n f7jy = simulation.calculate('f7jy', period)\n f7hy = simulation.calculate('f7hy', period)\n f7ky = simulation.calculate('f7ky', period)\n f7iy = simulation.calculate('f7iy', period)\n f7ly = simulation.calculate('f7ly', period)\n f7my = simulation.calculate('f7my', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.creaen\n\n return period, (P.base * ((f7jy + f7fy) + (f7hy + f7ly) / 2) +\n P.hand * ((f7ky + f7gy) + (f7iy + f7my) / 2))\n", "input_variables": ["f7gy", "f7fy", "f7hy", "f7iy", "f7ky", "f7jy", "f7ly", "f7my"]}, "stop_instant": "2011-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n2012-", "line_number": 764, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2014, 12, 31))\ndef function_20120101_20141231(self, simulation, period):\n '''\n Aide aux cr\u00e9ateurs et repreneurs d'entreprises\n 2012-\n '''\n period = period.this_year\n f7ly = simulation.calculate('f7ly', period)\n f7my = simulation.calculate('f7my', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.creaen\n\n return period, (P.base * (f7ly / 2) +\n P.hand * (f7my / 2))\n", "input_variables": ["f7gy", "f7fy", "f7hy", "f7iy", "f7ky", "f7jy", "f7ly", "f7my"]}, "stop_instant": "2014-12-31", "start_instant": "2012-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 798, "module": "reductions_impot", "name": "daepad", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9penses d'accueil dans un \u00e9tablissement pour personnes \u00e2g\u00e9es d\u00e9pendantes\n?-", "line_number": 803, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n D\u00e9penses d'accueil dans un \u00e9tablissement pour personnes \u00e2g\u00e9es d\u00e9pendantes\n ?-\n '''\n period = period.this_year\n f7cd = simulation.calculate('f7cd', period)\n f7ce = simulation.calculate('f7ce', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.daepad\n\n return period, P.taux * (min_(f7cd, P.max) + min_(f7ce, P.max))\n", "input_variables": ["f7cd", "f7ce"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 780, "module": "reductions_impot", "name": "deffor", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9fense des for\u00eats contre l'incendie\n2006-", "line_number": 786, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n D\u00e9fense des for\u00eats contre l'incendie\n 2006-\n '''\n period = period.this_year\n f7uc = simulation.calculate('f7uc', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.deffor\n\n return period, P.taux * min_(f7uc, P.max)\n", "input_variables": ["f7uc"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 816, "module": "reductions_impot", "name": "dfppce", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales", "line_number": 821, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2003, 12, 31))\ndef function_20020101_20031231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2003-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales", "line_number": 837, "module": "reductions_impot", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2004, 12, 31))\ndef function_20040101_20041231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf + f7xs\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2004-12-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales", "line_number": 854, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2005, 12, 31))\ndef function_20050101_20051231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf + f7xs + f7xt\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2005-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales", "line_number": 872, "module": "reductions_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2006, 12, 31))\ndef function_20060101_20061231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf + f7xs + f7xt + f7xu\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2006-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales", "line_number": 891, "module": "reductions_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2007, 12, 31))\ndef function_20070101_20071231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n f7xw = simulation.calculate('f7xw', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf + f7xs + f7xt + f7xu + f7xw\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2007-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales", "line_number": 911, "module": "reductions_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2010, 12, 31))\ndef function_20080101_20101231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n f7xw = simulation.calculate('f7xw', period)\n f7xy = simulation.calculate('f7xy', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf + f7xs + f7xt + f7xu + f7xw + f7xy\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2010-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales (2011-2013)", "line_number": 932, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales (2011-2013)\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n f7xw = simulation.calculate('f7xw', period)\n f7xy = simulation.calculate('f7xy', period)\n f7vc = simulation.calculate('f7vc', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = f7uf + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales (2011-2013)", "line_number": 953, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales (2011-2013)\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n f7xw = simulation.calculate('f7xw', period)\n f7xy = simulation.calculate('f7xy', period)\n f7vc = simulation.calculate('f7vc', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = min_(P.max_niv, f7uf) + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales (2011-2013)", "line_number": 974, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales (2011-2013)\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7uh = simulation.calculate('f7uh', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n f7xw = simulation.calculate('f7xw', period)\n f7xy = simulation.calculate('f7xy', period)\n f7vc = simulation.calculate('f7vc', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = min_(P.max_niv, f7uf + f7uh) + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\npolitiques et des campagnes \u00e9lectorales (2011-2013)", "line_number": 996, "module": "reductions_impot", "source": "@dated_function(start = date(2014, 1, 1)) #\u00a0Not checked\ndef function_2014__(self, simulation, period):\n '''\n Dons aux autres oeuvres et dons effectu\u00e9s pour le financement des partis\n politiques et des campagnes \u00e9lectorales (2011-2013)\n '''\n period = period.this_year\n rbg_int = simulation.calculate('rbg_int', period)\n f7uf = simulation.calculate('f7uf', period)\n f7uh = simulation.calculate('f7uh', period)\n f7xs = simulation.calculate('f7xs', period)\n f7xt = simulation.calculate('f7xt', period)\n f7xu = simulation.calculate('f7xu', period)\n f7xw = simulation.calculate('f7xw', period)\n f7xy = simulation.calculate('f7xy', period)\n f7vc = simulation.calculate('f7vc', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.dfppce\n\n base = min_(P.max_niv, f7uf + f7uh) + f7vc + f7xs + f7xt + f7xu + f7xw + f7xy\n max1 = P.max * rbg_int\n return period, P.taux * min_(base, max1)\n", "input_variables": ["f7uh", "rbg_int", "f7vc", "f7uf", "f7xs", "f7xu", "f7xt", "f7xw", "f7xy"]}, "stop_instant": null, "start_instant": "2014-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1025, "module": "reductions_impot", "name": "doment", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1030, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2005, 12, 31))\ndef function_20050101_20051231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n f7ur = simulation.calculate('f7ur', period)\n f7oz = simulation.calculate('f7oz', period)\n f7pz = simulation.calculate('f7pz', period)\n f7qz = simulation.calculate('f7qz', period)\n f7rz = simulation.calculate('f7rz', period)\n\n return period, f7ur + f7oz + f7pz + f7qz + f7rz\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2005-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1044, "module": "reductions_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n f7ur = simulation.calculate('f7ur', period)\n f7oz = simulation.calculate('f7oz', period)\n f7pz = simulation.calculate('f7pz', period)\n f7qz = simulation.calculate('f7qz', period)\n f7rz = simulation.calculate('f7rz', period)\n f7sz = simulation.calculate('f7sz', period)\n\n return period, f7ur + f7oz + f7pz + f7qz + f7rz + f7sz\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1059, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n f7oz = simulation.calculate('f7oz', period)\n f7pz = simulation.calculate('f7pz', period)\n f7qz = simulation.calculate('f7qz', period)\n f7rz = simulation.calculate('f7rz', period)\n f7sz = simulation.calculate('f7sz', period)\n f7qe = simulation.calculate('f7qe', period)\n f7qf = simulation.calculate('f7qf', period)\n f7qg = simulation.calculate('f7qg', period)\n f7qh = simulation.calculate('f7qh', period)\n f7qi = simulation.calculate('f7qi', period)\n f7qj = simulation.calculate('f7qj', period)\n\n return period, f7oz + f7pz + f7qz + f7rz + f7sz + f7qe + f7qf + f7qg + f7qh + f7qi + f7qj\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1079, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n f7oz = simulation.calculate('f7oz', period)\n f7pz = simulation.calculate('f7pz', period)\n f7qz = simulation.calculate('f7qz', period)\n f7rz = simulation.calculate('f7rz', period)\n f7qe = simulation.calculate('f7qe', period)\n f7qf = simulation.calculate('f7qf', period)\n f7qg = simulation.calculate('f7qg', period)\n f7qh = simulation.calculate('f7qh', period)\n f7qi = simulation.calculate('f7qi', period)\n f7qj = simulation.calculate('f7qj', period)\n f7qo = simulation.calculate('f7qo', period)\n f7qp = simulation.calculate('f7qp', period)\n f7qq = simulation.calculate('f7qq', period)\n f7qr = simulation.calculate('f7qr', period)\n f7qs = simulation.calculate('f7qs', period)\n f7mm = simulation.calculate('f7mm', period)\n f7ma = simulation.calculate('f7ma', period)\n f7lg = simulation.calculate('f7lg', period)\n f7ks = simulation.calculate('f7ks', period)\n f7ls = simulation.calculate('f7ls', period)\n\n return period, (f7oz + f7pz + f7qz + f7rz + f7qe + f7qf + f7qg + f7qh + f7qi + f7qj + f7qo + f7qp + f7qq + f7qr + f7qs +\n f7mm + f7ma + f7lg + f7ks + f7ls)\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1109, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n f7ks = simulation.calculate('f7ks', period)\n f7kt = simulation.calculate('f7kt', period)\n f7ku = simulation.calculate('f7ku', period)\n f7lg = simulation.calculate('f7lg', period)\n f7lh = simulation.calculate('f7lh', period)\n f7li = simulation.calculate('f7li', period)\n f7mm = simulation.calculate('f7mm', period)\n f7ma = simulation.calculate('f7ma', period)\n f7mb = simulation.calculate('f7mb', period)\n f7mc = simulation.calculate('f7mc', period)\n f7mn = simulation.calculate('f7mn', period)\n f7oz = simulation.calculate('f7oz', period)\n f7pa = simulation.calculate('f7pa', period)\n f7pb = simulation.calculate('f7pb', period)\n f7pd = simulation.calculate('f7pd', period)\n f7pe = simulation.calculate('f7pe', period)\n f7pf = simulation.calculate('f7pf', period)\n f7ph = simulation.calculate('f7ph', period)\n f7pi = simulation.calculate('f7pi', period)\n f7pj = simulation.calculate('f7pj', period)\n f7pl = simulation.calculate('f7pl', period)\n f7pz = simulation.calculate('f7pz', period)\n f7qz = simulation.calculate('f7qz', period)\n f7qe = simulation.calculate('f7qe', period)\n f7qf = simulation.calculate('f7qf', period)\n f7qg = simulation.calculate('f7qg', period)\n f7qh = simulation.calculate('f7qh', period)\n f7qi = simulation.calculate('f7qi', period)\n f7qo = simulation.calculate('f7qo', period)\n f7qp = simulation.calculate('f7qp', period)\n f7qq = simulation.calculate('f7qq', period)\n f7qr = simulation.calculate('f7qr', period)\n f7qv = simulation.calculate('f7qv', period)\n\n return period, (f7ks + f7kt + f7ku + f7lg + f7lh + f7li + f7mb + f7mn + f7mc + f7mm + f7ma + f7oz + f7pa + f7pb + f7pd +\n f7pe + f7pf + f7ph + f7pi + f7pj + f7pl + f7pz + f7qz + f7qf + f7qg + f7qh + f7qi + f7qo +\n f7qp + f7qq + f7qr + f7qe + f7qv)\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1153, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n f7ks = simulation.calculate('f7ks', period)\n f7kt = simulation.calculate('f7kt', period)\n f7ku = simulation.calculate('f7ku', period)\n f7lg = simulation.calculate('f7lg', period)\n f7lh = simulation.calculate('f7lh', period)\n f7li = simulation.calculate('f7li', period)\n f7ma = simulation.calculate('f7ma', period)\n f7mb = simulation.calculate('f7mb', period)\n f7mc = simulation.calculate('f7mc', period)\n f7mm = simulation.calculate('f7mm', period)\n f7mn = simulation.calculate('f7mn', period)\n f7nu = simulation.calculate('f7nu', period)\n f7nv = simulation.calculate('f7nv', period)\n f7nw = simulation.calculate('f7nw', period)\n f7ny = simulation.calculate('f7ny', period)\n f7pa = simulation.calculate('f7pa', period)\n f7pb = simulation.calculate('f7pb', period)\n f7pd = simulation.calculate('f7pd', period)\n f7pe = simulation.calculate('f7pe', period)\n f7pf = simulation.calculate('f7pf', period)\n f7ph = simulation.calculate('f7ph', period)\n f7pi = simulation.calculate('f7pi', period)\n f7pj = simulation.calculate('f7pj', period)\n f7pl = simulation.calculate('f7pl', period)\n f7pm = simulation.calculate('f7pm', period)\n f7pn = simulation.calculate('f7pn', period)\n f7po = simulation.calculate('f7po', period)\n f7pp = simulation.calculate('f7pp', period)\n f7pr = simulation.calculate('f7pr', period)\n f7ps = simulation.calculate('f7ps', period)\n f7pt = simulation.calculate('f7pt', period)\n f7pu = simulation.calculate('f7pu', period)\n f7pw = simulation.calculate('f7pw', period)\n f7px = simulation.calculate('f7px', period)\n f7py = simulation.calculate('f7py', period)\n f7pz = simulation.calculate('f7pz', period)\n f7qe = simulation.calculate('f7qe', period)\n f7qf = simulation.calculate('f7qf', period)\n f7qg = simulation.calculate('f7qg', period)\n f7qi = simulation.calculate('f7qi', period)\n f7qo = simulation.calculate('f7qo', period)\n f7qp = simulation.calculate('f7qp', period)\n f7qr = simulation.calculate('f7qr', period)\n f7qv = simulation.calculate('f7qv', period)\n f7qz = simulation.calculate('f7qz', period)\n f7rg = simulation.calculate('f7rg', period)\n f7ri = simulation.calculate('f7ri', period)\n f7rj = simulation.calculate('f7rj', period)\n f7rk = simulation.calculate('f7rk', period)\n f7rl = simulation.calculate('f7rl', period)\n f7rm = simulation.calculate('f7rm', period)\n f7ro = simulation.calculate('f7ro', period)\n f7rp = simulation.calculate('f7rp', period)\n f7rq = simulation.calculate('f7rq', period)\n f7rr = simulation.calculate('f7rr', period)\n f7rt = simulation.calculate('f7rt', period)\n f7ru = simulation.calculate('f7ru', period)\n f7rv = simulation.calculate('f7rv', period)\n f7rw = simulation.calculate('f7rw', period)\n f7rx = simulation.calculate('f7rx', period)\n f7ry = simulation.calculate('f7ry', period)\n\n return period, (f7ks + f7kt + f7ku + f7lg + f7lh + f7li + f7ma + f7mb + f7mc + f7mm + f7mn + f7pz + f7nu + f7nv + f7nw +\n f7ny + f7pa + f7pb + f7pd + f7pe + f7pf + f7ph + f7pi + f7pj + f7pl + f7pm + f7pn + f7po + f7pp + f7pr +\n f7ps + f7pt + f7pu + f7pw + f7px + f7py + f7qe + f7qf + f7qg + f7qi + f7qo + f7qp + f7qr + f7qv + f7qz +\n f7rg + f7ri + f7rj + f7rk + f7rl + f7rm + f7ro + f7rp + f7rq + f7rr + f7rt + f7ru + f7rv + f7rw)\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements dans les DOM-TOM dans le cadre d'une entrepise.", "line_number": 1226, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissements dans les DOM-TOM dans le cadre d'une entrepise.\n '''\n period = period.this_year\n fhsa = simulation.calculate('fhsa', period)\n fhsb = simulation.calculate('fhsb', period)\n fhsf = simulation.calculate('fhsf', period)\n fhsg = simulation.calculate('fhsg', period)\n fhsc = simulation.calculate('fhsc', period)\n fhsh = simulation.calculate('fhsh', period)\n fhse = simulation.calculate('fhse', period)\n fhsj = simulation.calculate('fhsj', period)\n fhsk = simulation.calculate('fhsk', period)\n fhsl = simulation.calculate('fhsl', period)\n fhsp = simulation.calculate('fhsp', period)\n fhsq = simulation.calculate('fhsq', period)\n fhsm = simulation.calculate('fhsm', period)\n fhsr = simulation.calculate('fhsr', period)\n fhso = simulation.calculate('fhso', period)\n fhst = simulation.calculate('fhst', period)\n fhsu = simulation.calculate('fhsu', period)\n fhsv = simulation.calculate('fhsv', period)\n fhsw = simulation.calculate('fhsw', period)\n fhsz = simulation.calculate('fhsz', period)\n fhta = simulation.calculate('fhta', period)\n fhtb = simulation.calculate('fhtb', period)\n fhtd = simulation.calculate('fhtd', period)\n f7ks = simulation.calculate('f7ks', period)\n f7kt = simulation.calculate('f7kt', period)\n f7ku = simulation.calculate('f7ku', period)\n f7lg = simulation.calculate('f7lg', period)\n f7lh = simulation.calculate('f7lh', period)\n f7li = simulation.calculate('f7li', period)\n f7ma = simulation.calculate('f7ma', period)\n f7mb = simulation.calculate('f7mb', period)\n f7mc = simulation.calculate('f7mc', period)\n f7mm = simulation.calculate('f7mm', period)\n f7mn = simulation.calculate('f7mn', period)\n f7nu = simulation.calculate('f7nu', period)\n f7nv = simulation.calculate('f7nv', period)\n f7nw = simulation.calculate('f7nw', period)\n f7ny = simulation.calculate('f7ny', period)\n f7pa = simulation.calculate('f7pa', period)\n f7pb = simulation.calculate('f7pb', period)\n f7pd = simulation.calculate('f7pd', period)\n f7pe = simulation.calculate('f7pe', period)\n f7pf = simulation.calculate('f7pf', period)\n f7ph = simulation.calculate('f7ph', period)\n f7pi = simulation.calculate('f7pi', period)\n f7pj = simulation.calculate('f7pj', period)\n f7pl = simulation.calculate('f7pl', period)\n f7pm = simulation.calculate('f7pm', period)\n f7pn = simulation.calculate('f7pn', period)\n f7po = simulation.calculate('f7po', period)\n f7pp = simulation.calculate('f7pp', period)\n f7pr = simulation.calculate('f7pr', period)\n f7ps = simulation.calculate('f7ps', period)\n f7pt = simulation.calculate('f7pt', period)\n f7pu = simulation.calculate('f7pu', period)\n f7pw = simulation.calculate('f7pw', period)\n f7px = simulation.calculate('f7px', period)\n f7py = simulation.calculate('f7py', period)\n f7qe = simulation.calculate('f7qe', period)\n f7qf = simulation.calculate('f7qf', period)\n f7qg = simulation.calculate('f7qg', period)\n f7qi = simulation.calculate('f7qi', period)\n f7qo = simulation.calculate('f7qo', period)\n f7qp = simulation.calculate('f7qp', period)\n f7qr = simulation.calculate('f7qr', period)\n f7qv = simulation.calculate('f7qv', period)\n f7qz = simulation.calculate('f7qz', period)\n f7rg = simulation.calculate('f7rg', period)\n f7ri = simulation.calculate('f7ri', period)\n f7rj = simulation.calculate('f7rj', period)\n f7rk = simulation.calculate('f7rk', period)\n f7rl = simulation.calculate('f7rl', period)\n f7rm = simulation.calculate('f7rm', period)\n f7ro = simulation.calculate('f7ro', period)\n f7rp = simulation.calculate('f7rp', period)\n f7rq = simulation.calculate('f7rq', period)\n f7rr = simulation.calculate('f7rr', period)\n f7rt = simulation.calculate('f7rt', period)\n f7ru = simulation.calculate('f7ru', period)\n f7rv = simulation.calculate('f7rv', period)\n f7rw = simulation.calculate('f7rw', period)\n f7ry = simulation.calculate('f7ry', period)\n\n return period, (fhsa + fhsb + fhsf + fhsg + fhsc + fhsh + fhse + fhsj + fhsk + fhsl + fhsp + fhsq + fhsm + fhsr + fhso +\n fhst + fhsu + fhsv + fhsw + fhsz + fhta + fhtb + fhtd + f7ks + f7kt + f7ku + f7lg + f7lh + f7li + f7ma +\n f7mb + f7mc + f7mm + f7mn + f7nu + f7nv + f7nw + f7ny + f7pa + f7pb + f7pd + f7pe + f7pf + f7ph + f7pi +\n f7pj + f7pl + f7pm + f7pn + f7po + f7pp + f7pr + f7ps + f7pt + f7pu + f7pw + f7px + f7py + f7qe + f7qf +\n f7qg + f7qi + f7qo + f7qp + f7qr + f7qv + f7qz + f7rg + f7ri + f7rj + f7rk + f7rl + f7rm + f7ro + f7rp +\n f7rq + f7rr + f7rt + f7ru + f7rv + f7rw)\n", "input_variables": ["f7rr", "f7rq", "f7rp", "f7rw", "f7rv", "f7ru", "f7rt", "f7rz", "f7ry", "f7rx", "f7rg", "f7rk", "f7rj", "f7ri", "f7ro", "f7rm", "f7rl", "f7sz", "f7py", "f7px", "f7pz", "f7pp", "f7ps", "f7pr", "f7pu", "f7pt", "f7pw", "f7pi", "f7ph", "f7pj", "f7pm", "f7pl", "f7po", "f7pn", "f7pa", "fhsw", "f7pb", "f7pe", "f7pd", "f7oz", "f7pf", "fhsr", "fhsq", "fhsp", "f7qz", "fhsv", "fhsu", "fhst", "f7qv", "fhsz", "f7qr", "f7qs", "f7qp", "f7qq", "fhsc", "f7qo", "fhsa", "f7qj", "fhsf", "f7qh", "f7qi", "fhsk", "fhsj", "fhsh", "fhso", "fhsm", "fhsl", "fhsb", "fhsg", "f7mb", "f7mc", "f7ma", "fhse", "f7mn", "f7mm", "f7qf", "f7qg", "f7qe", "f7nw", "f7nv", "f7nu", "f7ny", "fhtb", "fhta", "fhtd", "f7ks", "f7kt", "f7ku", "f7li", "f7lh", "f7lg", "f7ur", "f7ls"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1330, "module": "reductions_impot", "name": "domlog", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2002", "line_number": 1335, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2002\n '''\n period = period.this_year\n f7ua = simulation.calculate('f7ua', period)\n f7ub = simulation.calculate('f7ub', period)\n f7uc = simulation.calculate('f7uc', period)\n f7uj = simulation.calculate('f7uj', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.domlog\n\n return period, P.taux1 * f7uj + P.taux2 * (f7ua + f7ub + f7uc)\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2003-2004", "line_number": 1351, "module": "reductions_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2004, 12, 31))\ndef function_20030101_20041231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2003-2004\n '''\n period = period.this_year\n f7ua = simulation.calculate('f7ua', period)\n f7ub = simulation.calculate('f7ub', period)\n f7uc = simulation.calculate('f7uc', period)\n f7ui = simulation.calculate('f7ui', period)\n f7uj = simulation.calculate('f7uj', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.domlog\n\n return period, P.taux1 * f7uj + P.taux2 * (f7ua + f7ub + f7uc) + f7ui\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2004-12-31", "start_instant": "2003-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2005-2007", "line_number": 1368, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2007, 12, 31))\ndef function_20050101_20071231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2005-2007\n '''\n period = period.this_year\n f7ua = simulation.calculate('f7ua', period)\n f7ub = simulation.calculate('f7ub', period)\n f7uc = simulation.calculate('f7uc', period)\n f7ui = simulation.calculate('f7ui', period)\n f7uj = simulation.calculate('f7uj', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.domlog\n\n return period, P.taux1 * f7uj + P.taux2 * (f7ua + f7ub) + f7ui\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2007-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2008", "line_number": 1385, "module": "reductions_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2008, 12, 31))\ndef function_20080101_20081231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2008\n '''\n period = period.this_year\n f7ui = simulation.calculate('f7ui', period)\n\n return period, f7ui\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2008-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2009", "line_number": 1396, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2009\n '''\n period = period.this_year\n f7qb = simulation.calculate('f7qb', period)\n f7qc = simulation.calculate('f7qc', period)\n f7qd = simulation.calculate('f7qd', period)\n f7qk = simulation.calculate('f7qk', period)\n\n return period, f7qb + f7qc + f7qd + f7qk / 2\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2010\nTODO: Plafonnement sur la notice", "line_number": 1410, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2010\n TODO: Plafonnement sur la notice\n '''\n period = period.this_year\n f7qb = simulation.calculate('f7qb', period)\n f7qc = simulation.calculate('f7qc', period)\n f7qd = simulation.calculate('f7qd', period)\n f7ql = simulation.calculate('f7ql', period)\n f7qt = simulation.calculate('f7qt', period)\n f7qm = simulation.calculate('f7qm', period)\n\n return period, f7qb + f7qc + f7qd + f7ql + f7qt + f7qm\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2011\nTODO: Plafonnement sur la notice", "line_number": 1427, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2011\n TODO: Plafonnement sur la notice\n '''\n period = period.this_year\n f7qb = simulation.calculate('f7qb', period)\n f7qc = simulation.calculate('f7qc', period)\n f7qd = simulation.calculate('f7qd', period)\n f7ql = simulation.calculate('f7ql', period)\n f7qm = simulation.calculate('f7qm', period)\n f7qt = simulation.calculate('f7qt', period)\n f7oa = simulation.calculate('f7oa', period)\n f7ob = simulation.calculate('f7ob', period)\n f7oc = simulation.calculate('f7oc', period)\n f7oh = simulation.calculate('f7oh', period)\n f7oi = simulation.calculate('f7oi', period)\n f7oj = simulation.calculate('f7oj', period)\n f7ok = simulation.calculate('f7ok', period)\n\n return period, f7qb + f7qc + f7qd + f7ql + f7qm + f7qt + f7oa + f7ob + f7oc + f7oh + f7oi + f7oj + f7ok\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2012\nTODO: Plafonnement sur la notice", "line_number": 1451, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2012\n TODO: Plafonnement sur la notice\n '''\n period = period.this_year\n f7qb = simulation.calculate('f7qb', period)\n f7qc = simulation.calculate('f7qc', period)\n f7qd = simulation.calculate('f7qd', period)\n f7ql = simulation.calculate('f7ql', period)\n f7qm = simulation.calculate('f7qm', period)\n f7qt = simulation.calculate('f7qt', period)\n f7oa = simulation.calculate('f7oa', period)\n f7ob = simulation.calculate('f7ob', period)\n f7oc = simulation.calculate('f7oc', period)\n f7oh = simulation.calculate('f7oh', period)\n f7oi = simulation.calculate('f7oi', period)\n f7oj = simulation.calculate('f7oj', period)\n f7ok = simulation.calculate('f7ok', period)\n f7ol = simulation.calculate('f7ol', period)\n f7om = simulation.calculate('f7om', period)\n f7on = simulation.calculate('f7on', period)\n f7oo = simulation.calculate('f7oo', period)\n f7op = simulation.calculate('f7op', period)\n f7oq = simulation.calculate('f7oq', period)\n f7or = simulation.calculate('f7or', period)\n f7os = simulation.calculate('f7os', period)\n f7ot = simulation.calculate('f7ot', period)\n f7ou = simulation.calculate('f7ou', period)\n f7ov = simulation.calculate('f7ov', period)\n f7ow = simulation.calculate('f7ow', period)\n\n return period, (f7qb + f7qc + f7qd + f7ql + f7qm + f7qt + f7oa + f7ob + f7oc + f7oh + f7oi + f7oj + f7ok + f7ol + f7om +\n f7on + f7oo + f7op + f7oq + f7or + f7os + f7ot + f7ou + f7ov + f7ow)\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n2013\nTODO: Plafonnement sur la notice", "line_number": 1488, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissements OUTRE-MER dans le secteur du logement et autres secteurs d\u2019activit\u00e9\n 2013\n TODO: Plafonnement sur la notice\n '''\n period = period.this_year\n fhod = simulation.calculate('fhod', period)\n fhoe = simulation.calculate('fhoe', period)\n fhof = simulation.calculate('fhof', period)\n fhog = simulation.calculate('fhog', period)\n fhox = simulation.calculate('fhox', period)\n fhoy = simulation.calculate('fhoy', period)\n fhoz = simulation.calculate('fhoz', period)\n f7qb = simulation.calculate('f7qb', period)\n f7qc = simulation.calculate('f7qc', period)\n f7qd = simulation.calculate('f7qd', period)\n f7ql = simulation.calculate('f7ql', period)\n f7qm = simulation.calculate('f7qm', period)\n f7qt = simulation.calculate('f7qt', period)\n f7oa = simulation.calculate('f7oa', period)\n f7ob = simulation.calculate('f7ob', period)\n f7oc = simulation.calculate('f7oc', period)\n f7oh = simulation.calculate('f7oh', period)\n f7oi = simulation.calculate('f7oi', period)\n f7oj = simulation.calculate('f7oj', period)\n f7ok = simulation.calculate('f7ok', period)\n f7ol = simulation.calculate('f7ol', period)\n f7om = simulation.calculate('f7om', period)\n f7on = simulation.calculate('f7on', period)\n f7oo = simulation.calculate('f7oo', period)\n f7op = simulation.calculate('f7op', period)\n f7oq = simulation.calculate('f7oq', period)\n f7or = simulation.calculate('f7or', period)\n f7os = simulation.calculate('f7os', period)\n f7ot = simulation.calculate('f7ot', period)\n f7ou = simulation.calculate('f7ou', period)\n f7ov = simulation.calculate('f7ov', period)\n f7ow = simulation.calculate('f7ow', period)\n\n return period, (f7qb + f7qc + f7qd + f7ql + f7qm + f7qt + f7oa + f7ob + f7oc + f7oh + f7oi + f7oj + f7ok + f7ol + f7om +\n f7on + f7oo + f7op + f7oq + f7or + f7os + f7ot + f7ou + f7ov + f7ow + fhod + fhoe +\n fhof + fhog + fhox + fhoy + fhoz)\n", "input_variables": ["fhog", "fhof", "fhoe", "fhod", "f7oa", "f7ob", "f7oc", "f7ol", "f7om", "f7on", "f7oo", "f7oh", "f7oi", "f7oj", "f7ok", "f7ot", "f7ou", "f7ov", "f7ow", "f7op", "f7oq", "f7or", "f7os", "fhoz", "fhoy", "fhox", "f7uj", "f7ui", "f7ub", "f7uc", "f7qt", "f7ua", "f7ql", "f7qm", "f7qk", "f7qd", "f7qb", "f7qc"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1537, "module": "reductions_impot", "name": "domsoc", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements outre-mer dans le logement social (d\u00e9claration n\u00b02042 IOM)\n2010-\nTODO plafonnement \u00e0 15% f7qa / liens avec autres investissments ?", "line_number": 1542, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2012, 12, 31))\ndef function_20100101_20121231(self, simulation, period):\n '''\n Investissements outre-mer dans le logement social (d\u00e9claration n\u00b02042 IOM)\n 2010-\n TODO plafonnement \u00e0 15% f7qa / liens avec autres investissments ?\n '''\n period = period.this_year\n f7qn = simulation.calculate('f7qn', period)\n f7qk = simulation.calculate('f7qk', period)\n f7qu = simulation.calculate('f7qu', period)\n f7kg = simulation.calculate('f7kg', period)\n f7kh = simulation.calculate('f7kh', period)\n f7ki = simulation.calculate('f7ki', period)\n f7qj = simulation.calculate('f7qj', period)\n f7qs = simulation.calculate('f7qs', period)\n f7qw = simulation.calculate('f7qw', period)\n f7qx = simulation.calculate('f7qx', period)\n\n return period, f7qn + f7qk + f7qu + f7kg + f7kh + f7ki + f7qj + f7qs + f7qw + f7qx\n", "input_variables": ["f7kh", "f7ki", "f7qx", "f7qw", "f7qu", "f7qs", "f7kg", "f7qn", "fhra", "fhrb", "fhrc", "f7qj", "f7qk", "fhrd"]}, "stop_instant": "2012-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements outre-mer dans le logement social (d\u00e9claration n\u00b02042 IOM)\n2013\nTODO plafonnement \u00e0 15% f7qa / liens avec autres investissments ?", "line_number": 1563, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissements outre-mer dans le logement social (d\u00e9claration n\u00b02042 IOM)\n 2013\n TODO plafonnement \u00e0 15% f7qa / liens avec autres investissments ?\n '''\n period = period.this_year\n fhra = simulation.calculate('fhra', period)\n fhrb = simulation.calculate('fhrb', period)\n fhrc = simulation.calculate('fhrc', period)\n fhrd = simulation.calculate('fhrd', period)\n f7qn = simulation.calculate('f7qn', period)\n f7qk = simulation.calculate('f7qk', period)\n f7qu = simulation.calculate('f7qu', period)\n f7kg = simulation.calculate('f7kg', period)\n f7kh = simulation.calculate('f7kh', period)\n f7ki = simulation.calculate('f7ki', period)\n f7qj = simulation.calculate('f7qj', period)\n f7qs = simulation.calculate('f7qs', period)\n f7qw = simulation.calculate('f7qw', period)\n f7qx = simulation.calculate('f7qx', period)\n\n return period, fhra + fhrb + fhrc + fhrd + f7qn + f7qk + f7qu + f7kg + f7kh + f7ki + f7qj + f7qs + f7qw + f7qx\n", "input_variables": ["f7kh", "f7ki", "f7qx", "f7qw", "f7qu", "f7qs", "f7kg", "f7qn", "fhra", "fhrb", "fhrc", "f7qj", "f7qk", "fhrd"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1589, "module": "reductions_impot", "name": "donapd", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons effectu\u00e9s \u00e0 des organises d'aide aux personnes en difficult\u00e9 (2002-2010)", "line_number": 1594, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2010, 12, 31))\ndef function_20020101_20101231(self, simulation, period):\n '''\n Dons effectu\u00e9s \u00e0 des organises d'aide aux personnes en difficult\u00e9 (2002-2010)\n '''\n period = period.this_year\n f7ud = simulation.calculate('f7ud', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.donapd\n\n return period, P.taux * min_(f7ud, P.max)\n", "input_variables": ["f7va", "f7ud"]}, "stop_instant": "2010-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Dons effectu\u00e9s \u00e0 des organises d'aide aux personnes en difficult\u00e9 (2011-2013)", "line_number": 1605, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2013, 12, 31))\ndef function_20110101_20131231(self, simulation, period):\n '''\n Dons effectu\u00e9s \u00e0 des organises d'aide aux personnes en difficult\u00e9 (2011-2013)\n '''\n period = period.this_year\n f7ud = simulation.calculate('f7ud', period)\n f7va = simulation.calculate('f7va', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.donapd\n\n return period, P.taux * min_(f7ud + f7va, P.max)\n", "input_variables": ["f7va", "f7ud"]}, "stop_instant": "2013-12-31", "start_instant": "2011-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1618, "module": "reductions_impot", "name": "duflot", "start": "2013-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs interm\u00e9iaires (loi Duflot)\n2013-", "line_number": 1624, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Investissements locatifs interm\u00e9iaires (loi Duflot)\n 2013-\n '''\n period = period.this_year\n f7gh = simulation.calculate('f7gh', period)\n f7gi = simulation.calculate('f7gi', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.duflot\n\n return period, min_(P.plafond, P.taux_m * f7gh + P.taux_om * f7gi) / 9\n", "input_variables": ["f7gh", "f7gi"]}}, {"@type": "Float", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "line_number": 1639, "module": "reductions_impot", "name": "ecodev", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Sommes vers\u00e9es sur un compte \u00e9pargne cod\u00e9veloppement (case 7UH)\n2009", "line_number": 1646, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Sommes vers\u00e9es sur un compte \u00e9pargne cod\u00e9veloppement (case 7UH)\n 2009\n '''\n period = period.this_year\n f7uh = simulation.calculate('f7uh', period)\n rbg_int = simulation.calculate('rbg_int', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.ecodev\n\n return period, min_(f7uh * P.taux, min_(P.base * rbg_int, P.max)) # page3 ligne 18\n", "input_variables": ["f7uh", "rbg_int"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1659, "module": "reductions_impot", "name": "ecpess", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "R\u00e9duction d'imp\u00f4t au titre des enfants \u00e0 charge poursuivant leurs \u00e9tudes secondaires ou sup\u00e9rieures", "line_number": 1664, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n R\u00e9duction d'imp\u00f4t au titre des enfants \u00e0 charge poursuivant leurs \u00e9tudes secondaires ou sup\u00e9rieures\n '''\n period = period.this_year\n f7ea = simulation.calculate('f7ea', period)\n f7eb = simulation.calculate('f7eb', period)\n f7ec = simulation.calculate('f7ec', period)\n f7ed = simulation.calculate('f7ed', period)\n f7ef = simulation.calculate('f7ef', period)\n f7eg = simulation.calculate('f7eg', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.ecpess\n\n return period, (P.col * (f7ea + f7eb / 2) +\n P.lyc * (f7ec + f7ed / 2) +\n P.sup * (f7ef + f7eg / 2))\n", "input_variables": ["f7eb", "f7ec", "f7ea", "f7ef", "f7eg", "f7ed"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1682, "module": "reductions_impot", "name": "garext", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile (cases GA, GB, GC de la 2042)\net GE, GF, GG\n2002", "line_number": 1687, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile (cases GA, GB, GC de la 2042)\n et GE, GF, GG\n 2002\n '''\n period = period.this_year\n f7ga = simulation.calculate('f7ga', period)\n f7gb = simulation.calculate('f7gb', period)\n f7gc = simulation.calculate('f7gc', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.garext\n\n max1 = P.max\n return period, P.taux * (min_(f7ga, max1) + min_(f7gb, max1) + min_(f7gc, max1))\n", "input_variables": ["f7ge", "f7gf", "f7gg", "f7ga", "f7gb", "f7gc"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile (cases GA, GB, GC de la 2042)\net GE, GF, GG\n2003-2005", "line_number": 1704, "module": "reductions_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2005, 12, 31))\ndef function_20030101_20051231(self, simulation, period):\n '''\n Frais de garde des enfants \u00e0 l\u2019ext\u00e9rieur du domicile (cases GA, GB, GC de la 2042)\n et GE, GF, GG\n 2003-2005\n '''\n period = period.this_year\n f7ga = simulation.calculate('f7ga', period)\n f7gb = simulation.calculate('f7gb', period)\n f7gc = simulation.calculate('f7gc', period)\n f7ge = simulation.calculate('f7ge', period)\n f7gf = simulation.calculate('f7gf', period)\n f7gg = simulation.calculate('f7gg', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.garext\n\n max1 = P.max\n max2 = P.max / 2\n return period, P.taux * (min_(f7ga, max1) +\n min_(f7gb, max1) +\n min_(f7gc, max1) +\n min_(f7ge, max2) +\n min_(f7gf, max2) +\n min_(f7gg, max2))\n", "input_variables": ["f7ge", "f7gf", "f7gg", "f7ga", "f7gb", "f7gc"]}, "stop_instant": "2005-12-31", "start_instant": "2003-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1731, "module": "reductions_impot", "name": "intagr", "start": "2005-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Int\u00e9r\u00eats pour paiement diff\u00e9r\u00e9 accord\u00e9 aux agriculteurs\n2005-", "line_number": 1737, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Int\u00e9r\u00eats pour paiement diff\u00e9r\u00e9 accord\u00e9 aux agriculteurs\n 2005-\n '''\n period = period.this_year\n f7um = simulation.calculate('f7um', period)\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.intagr\n\n max1 = P.max * (1 + maries_ou_pacses)\n return period, P.taux * min_(f7um, max1)\n", "input_variables": ["maries_ou_pacses", "f7um"]}}, {"@type": "Float", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "line_number": 1751, "module": "reductions_impot", "name": "intcon", "start": "2004-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Int\u00e9r\u00eats des pr\u00eats \u00e0 la consommation (case UH)\n2004-2005", "line_number": 1758, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Int\u00e9r\u00eats des pr\u00eats \u00e0 la consommation (case UH)\n 2004-2005\n '''\n period = period.this_year\n f7uh = simulation.calculate('f7uh', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.intcon\n\n max1 = P.max\n return period, P.taux * min_(f7uh, max1)\n", "input_variables": ["f7uh"]}}, {"@type": "Float", "default": 0, "end": "2003-12-31", "entity": "foyers_fiscaux", "line_number": 1771, "module": "reductions_impot", "name": "intemp", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Int\u00e9r\u00eats d'emprunts\n2002-2003", "line_number": 1778, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Int\u00e9r\u00eats d'emprunts\n 2002-2003\n '''\n period = period.this_year\n nb_pac = simulation.calculate('nb_pac', period)\n f7wg = simulation.calculate('f7wg', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.intemp\n\n max1 = P.max + P.pac * nb_pac\n return period, P.taux * min_(f7wg, max1)\n", "input_variables": ["f7wg", "nb_pac"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1792, "module": "reductions_impot", "name": "invfor", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2002-2005", "line_number": 1797, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 12, 31))\ndef function_20020101_20051231(self, simulation, period):\n '''\n Investissements forestiers pour 2002-2005\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7un = simulation.calculate('f7un', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n seuil = P.seuil * (maries_ou_pacses + 1)\n return period, P.taux * min_(f7un, seuil)\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2005-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2006-2008", "line_number": 1811, "module": "reductions_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n '''\n Investissements forestiers pour 2006-2008\n '''\n period = period.this_year\n f7un = simulation.calculate('f7un', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n return period, P.taux * f7un\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2009", "line_number": 1823, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Investissements forestiers pour 2009\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7un = simulation.calculate('f7un', period)\n f7up = simulation.calculate('f7up', period)\n f7uq = simulation.calculate('f7uq', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n return period, P.taux * (min_(f7un, P.seuil * (maries_ou_pacses + 1)) + min_(f7up, P.ifortra_seuil * (maries_ou_pacses + 1)) +\n min_(f7uq, P.iforges_seuil * (maries_ou_pacses + 1)))\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2010", "line_number": 1839, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n Investissements forestiers pour 2010\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7te = simulation.calculate('f7te', period)\n f7un = simulation.calculate('f7un', period)\n f7up = simulation.calculate('f7up', period)\n f7uq = simulation.calculate('f7uq', period)\n f7uu = simulation.calculate('f7uu', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n return period, (P.taux * (\n min_(f7un, P.seuil * (maries_ou_pacses + 1)) +\n min_(f7up + f7uu + f7te, P.ifortra_seuil * (maries_ou_pacses + 1)) +\n min_(f7uq, P.iforges_seuil * (maries_ou_pacses + 1))))\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2011 cf. 2041 GK", "line_number": 1859, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Investissements forestiers pour 2011 cf. 2041 GK\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7te = simulation.calculate('f7te', period)\n f7tf = simulation.calculate('f7tf', period)\n f7ul = simulation.calculate('f7ul', period)\n f7un = simulation.calculate('f7un', period)\n f7up = simulation.calculate('f7up', period)\n f7uq = simulation.calculate('f7uq', period)\n f7uu = simulation.calculate('f7uu', period)\n f7uv = simulation.calculate('f7uv', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n max0 = max_(0, P.ifortra_seuil * (maries_ou_pacses + 1) - f7ul)\n max1 = max_(0, max0 - f7uu + f7te + f7uv + f7tf)\n return period, (P.taux * (\n min_(f7un, P.seuil * (maries_ou_pacses + 1)) +\n min_(f7up, max1) +\n min_(f7uq, P.iforges_seuil * (maries_ou_pacses + 1))) +\n P.report10 * min_(f7uu + f7te + f7uv + f7tf, max0) +\n P.taux_ass * min_(f7ul, P.ifortra_seuil * (maries_ou_pacses + 1)))\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2012 cf. 2041 GK", "line_number": 1886, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Investissements forestiers pour 2012 cf. 2041 GK\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7te = simulation.calculate('f7te', period)\n f7tf = simulation.calculate('f7tf', period)\n f7tg = simulation.calculate('f7tg', period)\n f7ul = simulation.calculate('f7ul', period)\n f7un = simulation.calculate('f7un', period)\n f7up = simulation.calculate('f7up', period)\n f7uq = simulation.calculate('f7uq', period)\n f7uu = simulation.calculate('f7uu', period)\n f7uv = simulation.calculate('f7uv', period)\n f7uw = simulation.calculate('f7uw', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n max0 = max_(0, P.ifortra_seuil * (maries_ou_pacses + 1) - f7ul)\n max1 = max_(0, max0 - f7uu + f7te + f7uv + f7tf)\n max2 = max_(0, max1 - f7tg - f7uw)\n return period, (P.taux * (\n min_(f7un, P.seuil * (maries_ou_pacses + 1)) +\n min_(f7up, max2) +\n min_(f7uq, P.iforges_seuil * (maries_ou_pacses + 1))) +\n P.report10 * min_(f7uu + f7te + f7uv + f7tf, max0) +\n P.report11 * min_(f7tg + f7uw, max1) +\n P.taux_ass * min_(f7ul, P.ifortra_seuil * (maries_ou_pacses + 1)))\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements forestiers pour 2013 cf. 2041 GK", "line_number": 1917, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissements forestiers pour 2013 cf. 2041 GK\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7te = simulation.calculate('f7te', period)\n f7tf = simulation.calculate('f7tf', period)\n f7tg = simulation.calculate('f7tg', period)\n f7th = simulation.calculate('f7th', period)\n f7ul = simulation.calculate('f7ul', period)\n f7un = simulation.calculate('f7un', period)\n f7up = simulation.calculate('f7up', period)\n f7uq = simulation.calculate('f7uq', period)\n f7uu = simulation.calculate('f7uu', period)\n f7uv = simulation.calculate('f7uv', period)\n f7uw = simulation.calculate('f7uw', period)\n f7ux = simulation.calculate('f7ux', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invfor\n\n max0 = max_(0, P.ifortra_seuil * (maries_ou_pacses + 1) - f7ul)\n max1 = max_(0, max0 - f7uu + f7te + f7uv + f7tf)\n max2 = max_(0, max1 - f7tg - f7uw)\n max3 = max_(0, max2 - f7th - f7ux)\n return period, (P.taux * (\n min_(f7un, P.seuil * (maries_ou_pacses + 1)) +\n min_(f7up, max3) +\n min_(f7uq, P.iforges_seuil * (maries_ou_pacses + 1))) +\n P.report10 * min_(f7uu + f7te + f7uv + f7tf, max0) +\n P.report11 * min_(f7tg + f7uw, max1) +\n P.report12 * min_(f7th + f7ux, max2) +\n P.taux_ass * min_(f7ul, P.ifortra_seuil * (maries_ou_pacses + 1)))\n", "input_variables": ["maries_ou_pacses", "f7un", "f7ul", "f7ux", "f7th", "f7te", "f7tg", "f7tf", "f7up", "f7uq", "f7uv", "f7uw", "f7uu"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 1953, "module": "reductions_impot", "name": "invlst", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs dans le secteur touristique\n2004", "line_number": 1958, "module": "reductions_impot", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2004, 12, 31))\ndef function_20040101_20041231(self, simulation, period):\n '''\n Investissements locatifs dans le secteur touristique\n 2004\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7xc = simulation.calculate('f7xc', period)\n f7xd = simulation.calculate('f7xd', period)\n f7xe = simulation.calculate('f7xe', period)\n f7xf = simulation.calculate('f7xf', period)\n f7xg = simulation.calculate('f7xg', period)\n f7xh = simulation.calculate('f7xh', period)\n f7xi = simulation.calculate('f7xi', period)\n f7xj = simulation.calculate('f7xj', period)\n f7xk = simulation.calculate('f7xk', period)\n f7xl = simulation.calculate('f7xl', period)\n f7xm = simulation.calculate('f7xm', period)\n f7xn = simulation.calculate('f7xn', period)\n f7xo = simulation.calculate('f7xo', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invlst\n\n seuil1 = P.seuil1 * (1 + maries_ou_pacses)\n seuil2 = P.seuil2 * (1 + maries_ou_pacses)\n seuil3 = P.seuil3 * (1 + maries_ou_pacses)\n\n xc = P.taux_xc * min_(f7xc, seuil1 / 4)\n xd = P.taux_xd * f7xd\n xe = P.taux_xe * min_(f7xe, seuil1 / 6)\n xf = P.taux_xf * f7xf\n xg = P.taux_xg * min_(f7xg, seuil2)\n xh = P.taux_xh * min_(f7xh, seuil3)\n xi = P.taux_xi * min_(f7xi, seuil1 / 4)\n xj = P.taux_xj * f7xj\n xk = P.taux_xk * f7xk\n xl = P.taux_xl * min_(f7xl, seuil1 / 6)\n xm = P.taux_xm * f7xm\n xn = P.taux_xn * min_(f7xn, seuil1 / 6)\n xo = P.taux_xo * f7xo\n\n return period, around(xc + xd + xe + xf + xg + xh + xi + xj + xk + xl + xm + xn + xo)\n", "input_variables": ["maries_ou_pacses", "f7xa", "f7xc", "f7xb", "f7xe", "f7xd", "f7xg", "f7xf", "f7xi", "f7xh", "f7xk", "f7xj", "f7xm", "f7xl", "f7xo", "f7xn", "f7xq", "f7xp", "f7xr", "f7xv", "f7xx", "f7xz", "f7uz", "f7uy"]}, "stop_instant": "2004-12-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs dans le secteur touristique\n2005-2010", "line_number": 2002, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2010, 12, 31))\ndef function_20050101_20101231(self, simulation, period):\n '''\n Investissements locatifs dans le secteur touristique\n 2005-2010\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7xc = simulation.calculate('f7xc', period)\n f7xd = simulation.calculate('f7xd', period)\n f7xe = simulation.calculate('f7xe', period)\n f7xf = simulation.calculate('f7xf', period)\n f7xg = simulation.calculate('f7xg', period)\n f7xh = simulation.calculate('f7xh', period)\n f7xi = simulation.calculate('f7xi', period)\n f7xj = simulation.calculate('f7xj', period)\n f7xk = simulation.calculate('f7xk', period)\n f7xl = simulation.calculate('f7xl', period)\n f7xm = simulation.calculate('f7xm', period)\n f7xn = simulation.calculate('f7xn', period)\n f7xo = simulation.calculate('f7xo', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invlst\n\n seuil1 = P.seuil1 * (1 + maries_ou_pacses)\n seuil2 = P.seuil2 * (1 + maries_ou_pacses)\n seuil3 = P.seuil3 * (1 + maries_ou_pacses)\n\n xc = P.taux_xc * min_(f7xc, seuil1 / 6)\n xd = P.taux_xd * f7xd\n xe = P.taux_xe * min_(f7xe, seuil1 / 6)\n xf = P.taux_xf * f7xf\n xg = P.taux_xg * min_(f7xg, seuil2)\n xh = P.taux_xh * min_(f7xh, seuil2 - f7xg)\n xi = P.taux_xi * f7xi\n xj = P.taux_xj * f7xj\n xk = P.taux_xk * f7xk\n xl = P.taux_xl * min_(f7xl, seuil1 / 6)\n xm = P.taux_xm * f7xm\n xn = P.taux_xn * min_(f7xn, seuil1 / 6)\n xo = P.taux_xo * f7xo\n\n return period, around(xc + xd + xe + xf + xg + xh + xi + xj + xk + xl + xm + xn + xo)\n", "input_variables": ["maries_ou_pacses", "f7xa", "f7xc", "f7xb", "f7xe", "f7xd", "f7xg", "f7xf", "f7xi", "f7xh", "f7xk", "f7xj", "f7xm", "f7xl", "f7xo", "f7xn", "f7xq", "f7xp", "f7xr", "f7xv", "f7xx", "f7xz", "f7uz", "f7uy"]}, "stop_instant": "2010-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs dans le secteur touristique\n2011", "line_number": 2046, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Investissements locatifs dans le secteur touristique\n 2011\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7xa = simulation.calculate('f7xa', period)\n f7xb = simulation.calculate('f7xb', period)\n f7xc = simulation.calculate('f7xc', period)\n f7xd = simulation.calculate('f7xd', period)\n f7xe = simulation.calculate('f7xe', period)\n f7xf = simulation.calculate('f7xf', period)\n f7xg = simulation.calculate('f7xg', period)\n f7xh = simulation.calculate('f7xh', period)\n f7xi = simulation.calculate('f7xi', period)\n f7xj = simulation.calculate('f7xj', period)\n f7xk = simulation.calculate('f7xk', period)\n f7xl = simulation.calculate('f7xl', period)\n f7xm = simulation.calculate('f7xm', period)\n f7xn = simulation.calculate('f7xn', period)\n f7xo = simulation.calculate('f7xo', period)\n f7xp = simulation.calculate('f7xp', period)\n f7xq = simulation.calculate('f7xq', period)\n f7xr = simulation.calculate('f7xr', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invlst\n\n seuil1 = P.seuil1 * (1 + maries_ou_pacses)\n seuil2 = P.seuil2 * (1 + maries_ou_pacses)\n seuil3 = P.seuil3 * (1 + maries_ou_pacses)\n\n xc = P.taux_xc * min_(f7xc, seuil1 / 6)\n xa = P.taux_xa * min_(f7xa, seuil2)\n xg = P.taux_xg * min_(f7xg, seuil2 - f7xa)\n xb = P.taux_xb * min_(f7xb, seuil2 - f7xa - f7xg)\n xh = P.taux_xh * min_(f7xh, seuil2 - f7xa - f7xg - f7xb)\n xi = P.taux_xi * (f7xf + f7xi + f7xp)\n xj = P.taux_xj * (f7xm + f7xj + f7xq)\n xl = P.taux_xl * min_(f7xl, seuil1 / 6)\n xo = P.taux_xo * (f7xk + f7xo + f7xr)\n\n return period, around(xc + xa + xg + xb + xh + xi + xj + xl + xo)\n", "input_variables": ["maries_ou_pacses", "f7xa", "f7xc", "f7xb", "f7xe", "f7xd", "f7xg", "f7xf", "f7xi", "f7xh", "f7xk", "f7xj", "f7xm", "f7xl", "f7xo", "f7xn", "f7xq", "f7xp", "f7xr", "f7xv", "f7xx", "f7xz", "f7uz", "f7uy"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs dans le secteur touristique\n2012", "line_number": 2091, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Investissements locatifs dans le secteur touristique\n 2012\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7xa = simulation.calculate('f7xa', period)\n f7xb = simulation.calculate('f7xb', period)\n f7xc = simulation.calculate('f7xc', period)\n f7xd = simulation.calculate('f7xd', period)\n f7xe = simulation.calculate('f7xe', period)\n f7xf = simulation.calculate('f7xf', period)\n f7xg = simulation.calculate('f7xg', period)\n f7xh = simulation.calculate('f7xh', period)\n f7xi = simulation.calculate('f7xi', period)\n f7xj = simulation.calculate('f7xj', period)\n f7xk = simulation.calculate('f7xk', period)\n f7xl = simulation.calculate('f7xl', period)\n f7xm = simulation.calculate('f7xm', period)\n f7xn = simulation.calculate('f7xn', period)\n f7xo = simulation.calculate('f7xo', period)\n f7xp = simulation.calculate('f7xp', period)\n f7xq = simulation.calculate('f7xq', period)\n f7xr = simulation.calculate('f7xr', period)\n f7xv = simulation.calculate('f7xv', period)\n f7xx = simulation.calculate('f7xx', period)\n f7xz = simulation.calculate('f7xz', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invlst\n\n seuil1 = P.seuil1 * (1 + maries_ou_pacses)\n seuil2 = P.seuil2 * (1 + maries_ou_pacses)\n seuil3 = P.seuil3 * (1 + maries_ou_pacses)\n\n xc = P.taux_xc * min_(f7xc, seuil1 / 6)\n xa = P.taux_xa * min_(f7xa, seuil2)\n xg = P.taux_xg * min_(f7xg, seuil2 - f7xa)\n xx = P.taux_xx * min_(f7xx, seuil2 - f7xa - f7xg)\n xb = P.taux_xb * min_(f7xb, seuil2 - f7xa - f7xg - f7xx)\n xh = P.taux_xh * min_(f7xh, seuil2 - f7xa - f7xg - f7xb - f7xx)\n xz = P.taux_xz * min_(f7xz, seuil2 - f7xa - f7xg - f7xb - f7xx - f7xh)\n xi = P.taux_xi * (f7xf + f7xi + f7xp + f7xn)\n xj = P.taux_xj * (f7xm + f7xj + f7xq + f7xv)\n xl = P.taux_xl * min_(f7xl, seuil1 / 6)\n xo = P.taux_xo * (f7xk + f7xo + f7xr)\n\n return period, around(xc + xa + xg + xx + xb + xz + xh + xi + xj + xl + xo)\n", "input_variables": ["maries_ou_pacses", "f7xa", "f7xc", "f7xb", "f7xe", "f7xd", "f7xg", "f7xf", "f7xi", "f7xh", "f7xk", "f7xj", "f7xm", "f7xl", "f7xo", "f7xn", "f7xq", "f7xp", "f7xr", "f7xv", "f7xx", "f7xz", "f7uz", "f7uy"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs dans le secteur touristique\n2013", "line_number": 2141, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissements locatifs dans le secteur touristique\n 2013\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7uy = simulation.calculate('f7uy', period)\n f7uz = simulation.calculate('f7uz', period)\n f7xf = simulation.calculate('f7xf', period)\n f7xi = simulation.calculate('f7xi', period)\n f7xj = simulation.calculate('f7xj', period)\n f7xk = simulation.calculate('f7xk', period)\n f7xm = simulation.calculate('f7xm', period)\n f7xn = simulation.calculate('f7xn', period)\n f7xo = simulation.calculate('f7xo', period)\n f7xp = simulation.calculate('f7xp', period)\n f7xq = simulation.calculate('f7xq', period)\n f7xr = simulation.calculate('f7xr', period)\n f7xv = simulation.calculate('f7xv', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invlst\n\n xi = P.taux_xi * (f7xf + f7xi + f7xp + f7xn + f7uy)\n xj = P.taux_xj * (f7xm + f7xj + f7xq + f7xv + f7uz)\n xo = P.taux_xo * (f7xk + f7xo + f7xr)\n\n return period, around(xi + xj + xo)\n", "input_variables": ["maries_ou_pacses", "f7xa", "f7xc", "f7xb", "f7xe", "f7xd", "f7xg", "f7xf", "f7xi", "f7xh", "f7xk", "f7xj", "f7xm", "f7xl", "f7xo", "f7xn", "f7xq", "f7xp", "f7xr", "f7xv", "f7xx", "f7xz", "f7uz", "f7uy"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "end": "2003-12-31", "entity": "foyers_fiscaux", "line_number": 2172, "module": "reductions_impot", "name": "invrev", "start": "2002-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatifs dans les r\u00e9sidences de tourisme situ\u00e9es dans une zone de\nrevitalisation rurale (cases GS, GT, XG, GU et GV)\n2002-2003\nTODO 1/4 cod\u00e9 en dur", "line_number": 2179, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Investissements locatifs dans les r\u00e9sidences de tourisme situ\u00e9es dans une zone de\n revitalisation rurale (cases GS, GT, XG, GU et GV)\n 2002-2003\n TODO 1/4 cod\u00e9 en dur\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7gs = simulation.calculate('f7gs', period)\n f7gt = simulation.calculate('f7gt', period)\n f7xg = simulation.calculate('f7xg', period)\n f7gu = simulation.calculate('f7gu', period)\n f7gv = simulation.calculate('f7gv', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.invrev\n\n return period, (P.taux_gs * min_(f7gs, P.seuil_gs * (1 + maries_ou_pacses)) / 4 +\n P.taux_gu * min_(f7gu, P.seuil_gu * (1 + maries_ou_pacses)) / 4 +\n P.taux_xg * min_(f7xg, P.seuil_xg * (1 + maries_ou_pacses)) / 4 +\n P.taux_gt * f7gt + P.taux_gt * f7gv)\n", "input_variables": ["maries_ou_pacses", "f7xg", "f7gt", "f7gu", "f7gv", "f7gs"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2201, "module": "reductions_impot", "name": "locmeu", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n2009", "line_number": 2206, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n 2009\n '''\n period = period.this_year\n f7ij = simulation.calculate('f7ij', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.locmeu\n\n return period, P.taux * min_(P.max, f7ij) / 9\n", "input_variables": ["f7iv", "f7iw", "f7it", "f7iu", "f7ir", "f7is", "f7ip", "f7iq", "f7iz", "f7ix", "f7iy", "f7if", "f7ig", "f7id", "f7ie", "f7ib", "f7ic", "f7ia", "f7in", "f7io", "f7il", "f7im", "f7ij", "f7ik", "f7ih", "f7ji", "f7jc", "f7jy", "f7jx", "f7js", "f7jw", "f7jv", "f7ju", "f7jt"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n2010", "line_number": 2218, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n 2010\n '''\n period = period.this_year\n f7ij = simulation.calculate('f7ij', period)\n f7ik = simulation.calculate('f7ik', period)\n f7il = simulation.calculate('f7il', period)\n f7im = simulation.calculate('f7im', period)\n f7is = simulation.calculate('f7is', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.locmeu\n\n return period, ((min_(P.max, max_(f7ij, f7il)) + min_(P.max, f7im)) / 9 + f7ik) * P.taux + f7is\n", "input_variables": ["f7iv", "f7iw", "f7it", "f7iu", "f7ir", "f7is", "f7ip", "f7iq", "f7iz", "f7ix", "f7iy", "f7if", "f7ig", "f7id", "f7ie", "f7ib", "f7ic", "f7ia", "f7in", "f7io", "f7il", "f7im", "f7ij", "f7ik", "f7ih", "f7ji", "f7jc", "f7jy", "f7jx", "f7js", "f7jw", "f7jv", "f7ju", "f7jt"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n2011", "line_number": 2234, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n 2011\n '''\n period = period.this_year\n f7ij = simulation.calculate('f7ij', period)\n f7ik = simulation.calculate('f7ik', period)\n f7il = simulation.calculate('f7il', period)\n f7im = simulation.calculate('f7im', period)\n f7in = simulation.calculate('f7in', period)\n f7io = simulation.calculate('f7io', period)\n f7ip = simulation.calculate('f7ip', period)\n f7iq = simulation.calculate('f7iq', period)\n f7ir = simulation.calculate('f7ir', period)\n f7is = simulation.calculate('f7is', period)\n f7it = simulation.calculate('f7it', period)\n f7iu = simulation.calculate('f7iu', period)\n f7iv = simulation.calculate('f7iv', period)\n f7iw = simulation.calculate('f7iw', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.locmeu\n\n m20 = (maxi(f7ij, f7il, f7in, f7iv) == max_(f7il, f7in))\n return period, ((min_(P.max, maxi(f7ij, f7il, f7in, f7iv)) * (P.taux20 * m20 + P.taux18 * not_(m20)) +\n P.taux * (min_(P.max, max_(f7im, f7iw)) + min_(P.max, f7io))) / 9 +\n P.taux * max_(f7ik, f7ip + f7ir + f7iq) +\n f7is + f7iu + f7it)\n", "input_variables": ["f7iv", "f7iw", "f7it", "f7iu", "f7ir", "f7is", "f7ip", "f7iq", "f7iz", "f7ix", "f7iy", "f7if", "f7ig", "f7id", "f7ie", "f7ib", "f7ic", "f7ia", "f7in", "f7io", "f7il", "f7im", "f7ij", "f7ik", "f7ih", "f7ji", "f7jc", "f7jy", "f7jx", "f7js", "f7jw", "f7jv", "f7ju", "f7jt"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n2012", "line_number": 2263, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n 2012\n '''\n period = period.this_year\n f7ia = simulation.calculate('f7ia', period)\n f7ib = simulation.calculate('f7ib', period)\n f7ic = simulation.calculate('f7ic', period)\n f7id = simulation.calculate('f7id', period)\n f7ie = simulation.calculate('f7ie', period)\n f7if = simulation.calculate('f7if', period)\n f7ig = simulation.calculate('f7ig', period)\n f7ih = simulation.calculate('f7ih', period)\n f7ij = simulation.calculate('f7ij', period)\n f7ik = simulation.calculate('f7ik', period)\n f7il = simulation.calculate('f7il', period)\n f7im = simulation.calculate('f7im', period)\n f7in = simulation.calculate('f7in', period)\n f7io = simulation.calculate('f7io', period)\n f7ip = simulation.calculate('f7ip', period)\n f7iq = simulation.calculate('f7iq', period)\n f7ir = simulation.calculate('f7ir', period)\n f7is = simulation.calculate('f7is', period)\n f7it = simulation.calculate('f7it', period)\n f7iu = simulation.calculate('f7iu', period)\n f7iv = simulation.calculate('f7iv', period)\n f7iw = simulation.calculate('f7iw', period)\n f7ix = simulation.calculate('f7ix', period)\n f7iz = simulation.calculate('f7iz', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.locmeu\n\n m18 = (maxi(f7id, f7ie, f7if, f7ig) == max_(f7ie, f7if))\n m20 = (maxi(f7ij, f7il, f7in, f7iv) == max_(f7il, f7in))\n return period, ((min_(P.max, maxi(f7ij, f7il, f7in, f7iv)) * (P.taux20 * m20 + P.taux18 * not_(m20)) +\n min_(P.max, maxi(f7id, f7ie, f7if, f7ig)) * (P.taux18 * m18 + P.taux11 * not_(m18)) +\n P.taux * (min_(P.max, max_(f7im, f7iw)) + min_(P.max, f7io))) / 9 +\n P.taux * max_(f7ik + f7ip, f7ir + f7iq) +\n f7ia + f7ib + f7ic + f7ih + f7is + f7iu + f7it + f7ix + f7iz)\n", "input_variables": ["f7iv", "f7iw", "f7it", "f7iu", "f7ir", "f7is", "f7ip", "f7iq", "f7iz", "f7ix", "f7iy", "f7if", "f7ig", "f7id", "f7ie", "f7ib", "f7ic", "f7ia", "f7in", "f7io", "f7il", "f7im", "f7ij", "f7ik", "f7ih", "f7ji", "f7jc", "f7jy", "f7jx", "f7js", "f7jw", "f7jv", "f7ju", "f7jt"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n2013", "line_number": 2304, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissement en vue de la location meubl\u00e9e non professionnelle dans certains \u00e9tablissements ou r\u00e9sidences\n 2013\n '''\n period = period.this_year\n f7ia = simulation.calculate('f7ia', period)\n f7ib = simulation.calculate('f7ib', period)\n f7ic = simulation.calculate('f7ic', period)\n f7id = simulation.calculate('f7id', period)\n f7ie = simulation.calculate('f7ie', period)\n f7if = simulation.calculate('f7if', period)\n f7ig = simulation.calculate('f7ig', period)\n f7ih = simulation.calculate('f7ih', period)\n f7ij = simulation.calculate('f7ij', period)\n f7ik = simulation.calculate('f7ik', period)\n f7il = simulation.calculate('f7il', period)\n f7im = simulation.calculate('f7im', period)\n f7in = simulation.calculate('f7in', period)\n f7io = simulation.calculate('f7io', period)\n f7ip = simulation.calculate('f7ip', period)\n f7iq = simulation.calculate('f7iq', period)\n f7ir = simulation.calculate('f7ir', period)\n f7is = simulation.calculate('f7is', period)\n f7it = simulation.calculate('f7it', period)\n f7iu = simulation.calculate('f7iu', period)\n f7iv = simulation.calculate('f7iv', period)\n f7iw = simulation.calculate('f7iw', period)\n f7ix = simulation.calculate('f7ix', period)\n f7iy = simulation.calculate('f7iy', period)\n f7iz = simulation.calculate('f7iz', period)\n f7jc = simulation.calculate('f7jc', period)\n f7ji = simulation.calculate('f7ji', period)\n f7js = simulation.calculate('f7js', period)\n f7jt = simulation.calculate('f7jt', period)\n f7ju = simulation.calculate('f7ju', period)\n f7jv = simulation.calculate('f7jv', period)\n f7jw = simulation.calculate('f7jw', period)\n f7jx = simulation.calculate('f7jx', period)\n f7jy = simulation.calculate('f7jy', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.locmeu\n\n m18 = (maxi(f7id, f7ie, f7if, f7ig) == max_(f7ie, f7if))\n m20 = (maxi(f7ij, f7il, f7in, f7iv) == max_(f7il, f7in))\n return period, ((min_(P.max, maxi(f7ij, f7il, f7in, f7iv)) * (P.taux20 * m20 + P.taux18 * not_(m20)) +\n min_(P.max, maxi(f7id, f7ie, f7if, f7ig)) * (P.taux18 * m18 + P.taux11 * not_(m18)) +\n P.taux11 * min_(P.max, f7jt + f7ju) +\n P.taux * (min_(P.max, max_(f7im, f7iw)) + min_(P.max, f7io))) / 9 +\n P.taux * max_(f7ik + f7ip, f7ir + f7iq) +\n f7ia + f7ib + f7ic + f7ih + f7is + f7iu + f7it + f7ix + f7iy + f7iz + f7jv + f7jw + f7jx + f7jy + f7jc +\n f7ji + f7js)\n", "input_variables": ["f7iv", "f7iw", "f7it", "f7iu", "f7ir", "f7is", "f7ip", "f7iq", "f7iz", "f7ix", "f7iy", "f7if", "f7ig", "f7id", "f7ie", "f7ib", "f7ic", "f7ia", "f7in", "f7io", "f7il", "f7im", "f7ij", "f7ik", "f7ih", "f7ji", "f7jc", "f7jy", "f7jx", "f7js", "f7jw", "f7jv", "f7ju", "f7jt"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2358, "module": "reductions_impot", "name": "mohist", "start": "2008-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Travaux de conservation et de restauration d\u2019objets class\u00e9s monuments historiques (case NZ)\n2008-", "line_number": 2364, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Travaux de conservation et de restauration d\u2019objets class\u00e9s monuments historiques (case NZ)\n 2008-\n '''\n period = period.this_year\n f7nz = simulation.calculate('f7nz', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.mohist\n\n return period, P.taux * min_(f7nz, P.max)\n", "input_variables": ["f7nz"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2376, "module": "reductions_impot", "name": "patnat", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9penses de protections du patrimoine naturel (case 7KA)\n2010", "line_number": 2381, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n D\u00e9penses de protections du patrimoine naturel (case 7KA)\n 2010\n '''\n period = period.this_year\n f7ka = simulation.calculate('f7ka', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.patnat\n\n max1 = P.max\n return period, P.taux * min_(f7ka, max1)\n", "input_variables": ["f7ka", "f7kb", "f7kc", "f7kd"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9penses de protections du patrimoine naturel (case 7KA, 7KB)\n2011", "line_number": 2394, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n D\u00e9penses de protections du patrimoine naturel (case 7KA, 7KB)\n 2011\n '''\n period = period.this_year\n f7ka = simulation.calculate('f7ka', period)\n f7kb = simulation.calculate('f7kb', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.patnat\n\n max1 = P.max\n return period, P.taux * min_(f7ka, max1) + f7kb\n", "input_variables": ["f7ka", "f7kb", "f7kc", "f7kd"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9penses de protections du patrimoine naturel (case 7KA, 7KB, 7KC)\n2012", "line_number": 2408, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n D\u00e9penses de protections du patrimoine naturel (case 7KA, 7KB, 7KC)\n 2012\n '''\n period = period.this_year\n f7ka = simulation.calculate('f7ka', period)\n f7kb = simulation.calculate('f7kb', period)\n f7kc = simulation.calculate('f7kc', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.patnat\n\n max1 = P.max\n return period, P.taux * min_(f7ka, max1) + f7kb + f7kc\n", "input_variables": ["f7ka", "f7kb", "f7kc", "f7kd"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "D\u00e9penses de protections du patrimoine naturel (case 7KA, 7KB, 7KC)\n2013", "line_number": 2423, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n D\u00e9penses de protections du patrimoine naturel (case 7KA, 7KB, 7KC)\n 2013\n '''\n period = period.this_year\n f7ka = simulation.calculate('f7ka', period)\n f7kb = simulation.calculate('f7kb', period)\n f7kc = simulation.calculate('f7kc', period)\n f7kd = simulation.calculate('f7kd', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.patnat\n\n max1 = P.max\n return period, P.taux * min_(f7ka, max1) + f7kb + f7kc + f7kd\n", "input_variables": ["f7ka", "f7kb", "f7kc", "f7kd"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2440, "module": "reductions_impot", "name": "prcomp", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestations compensatoires\n2002-", "line_number": 2445, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Prestations compensatoires\n 2002-\n '''\n period = period.this_year\n f7wm = simulation.calculate('f7wm', period)\n f7wn = simulation.calculate('f7wn', period)\n f7wo = simulation.calculate('f7wo', period)\n f7wp = simulation.calculate('f7wp', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.prcomp\n\n div = (f7wo == 0) * 1 + f7wo # Pour \u00e9viter les divisions par z\u00e9ro\n\n return period, ((f7wm == 0) * ((f7wn == f7wo) * P.taux * min_(f7wn, P.seuil) +\n (f7wn < f7wo) * (f7wo <= P.seuil) * P.taux * f7wn +\n max_(0, (f7wn < f7wo) * (f7wo > P.seuil) * P.taux * P.seuil * f7wn / div)) +\n (f7wm != 0) * ((f7wn == f7wm) * (f7wo <= P.seuil) * P.taux * f7wm +\n max_(0, (f7wn == f7wm) * (f7wo >= P.seuil) * P.taux * f7wm / div) +\n (f7wn > f7wm) * (f7wo <= P.seuil) * P.taux * f7wn +\n max_(0, (f7wn > f7wm) * (f7wo >= P.seuil) * P.taux * f7wn / div)) +\n P.taux * f7wp)\n", "input_variables": ["f7wm", "f7wn", "f7wo", "f7wp"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "R\u00e9duction d'imp\u00f4t exceptionnelle", "line_number": 2469, "module": "reductions_impot", "name": "reduction_impot_exceptionnelle", "url": "https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=2342AB1B1727908BFF5295A7F51A5A65. tpdjo13v_1?cidTexte=JORFTEXT000029349482&idArticle=LEGIARTI000029350526&dateTexte=20140809&categorieLien=cid", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 2476, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function(self, simulation, period):\n period = period.start.offset('first-of', 'year').period('year')\n nb_adult = simulation.calculate('nb_adult', period)\n nbptr = simulation.calculate('nbptr', period)\n rfr = simulation.calculate('rfr', period)\n params = simulation.legislation_at(period.start).ir.reductions_impots.reduction_impot_exceptionnelle\n plafond = params.seuil * nb_adult + (nbptr - nb_adult) * 2 * params.majoration_seuil\n montant = params.montant_plafond * nb_adult\n return period, min_(max_(plafond + montant - rfr, 0), montant)\n", "input_variables": ["rfr", "nbptr", "nb_adult"], "parameters": ["ir.reductions_impots.reduction_impot_exceptionnelle.majoration_seuil", "ir.reductions_impots.reduction_impot_exceptionnelle.montant_plafond", "ir.reductions_impots.reduction_impot_exceptionnelle.seuil"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 15, "module": "reductions_impot", "name": "reductions", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2002", "line_number": 20, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2002\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n assvie = simulation.calculate('assvie', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n dfppce = simulation.calculate('dfppce', period)\n daepad = simulation.calculate('daepad', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n garext = simulation.calculate('garext', period)\n intemp = simulation.calculate('intemp', period)\n invfor = simulation.calculate('invfor', period)\n invrev = simulation.calculate('invrev', period)\n ip_net = simulation.calculate('ip_net', period)\n prcomp = simulation.calculate('prcomp', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + assvie + cappme + cotsyn + dfppce + daepad + doment + domlog + donapd + ecpess +\n garext + intemp + invfor + invrev + prcomp + rsceha + saldom + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2003 et 2004", "line_number": 50, "module": "reductions_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2004, 12, 31))\ndef function_20030101_20041231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2003 et 2004\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n assvie = simulation.calculate('assvie', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n dfppce = simulation.calculate('dfppce', period)\n daepad = simulation.calculate('daepad', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n garext = simulation.calculate('garext', period)\n intemp = simulation.calculate('intemp', period)\n invfor = simulation.calculate('invfor', period)\n invrev = simulation.calculate('invrev', period)\n ip_net = simulation.calculate('ip_net', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + assvie + cappme + cotsyn + dfppce + daepad + doment + domlog + donapd + ecpess +\n garext + intemp + invfor + invrev + prcomp + repsoc + rsceha + saldom + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2004-12-31", "start_instant": "2003-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2005", "line_number": 81, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2005, 12, 31))\ndef function_20050101_20051231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2005\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n daepad = simulation.calculate('daepad', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n intcon = simulation.calculate('intcon', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + daepad + dfppce + doment + domlog + donapd + ecpess + intagr +\n intcon + invfor + invlst + prcomp + repsoc + rsceha + saldom + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2005-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2006", "line_number": 111, "module": "reductions_impot", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2006, 12, 31))\ndef function_20060101_20061231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2006\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n sofica = simulation.calculate('sofica', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + creaen + daepad + deffor + dfppce + doment + domlog + donapd +\n ecpess + intagr + invfor + invlst + prcomp + repsoc + rsceha + saldom + sofica + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2006-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2007", "line_number": 143, "module": "reductions_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2007, 12, 31))\ndef function_20070101_20071231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2007\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n sofica = simulation.calculate('sofica', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + creaen + daepad + deffor + dfppce + doment + domlog + donapd +\n ecpess + intagr + invfor + invlst + prcomp + repsoc + rsceha + saldom + sofica + spfcpi)\n\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2007-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2008", "line_number": 176, "module": "reductions_impot", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2008, 12, 31))\ndef function_20080101_20081231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2008\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n mohist = simulation.calculate('mohist', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n sofica = simulation.calculate('sofica', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + creaen + daepad + deffor + dfppce + doment + domlog + donapd +\n ecpess + intagr + invfor + invlst + mohist + prcomp + repsoc + rsceha + saldom + sofica + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2008-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2009", "line_number": 209, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2009\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n domsoc = simulation.calculate('domsoc', period)\n donapd = simulation.calculate('donapd', period)\n ecodev = simulation.calculate('ecodev', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n locmeu = simulation.calculate('locmeu', period)\n mohist = simulation.calculate('mohist', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n resimm = simulation.calculate('resimm', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n scelli = simulation.calculate('scelli', period)\n sofica = simulation.calculate('sofica', period)\n sofipe = simulation.calculate('sofipe', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + creaen + daepad + deffor + dfppce + doment + domlog + domsoc +\n donapd + ecodev + ecpess + intagr + invfor + invlst + locmeu + mohist + prcomp + repsoc + resimm + rsceha +\n saldom + scelli + sofica + sofipe + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2010", "line_number": 249, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period): # TODO: check (sees checked) and report in Niches.xls\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2010\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n domsoc = simulation.calculate('domsoc', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n locmeu = simulation.calculate('locmeu', period)\n mohist = simulation.calculate('mohist', period)\n patnat = simulation.calculate('patnat', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n resimm = simulation.calculate('resimm', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n scelli = simulation.calculate('scelli', period)\n sofica = simulation.calculate('sofica', period)\n sofipe = simulation.calculate('sofipe', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + creaen + daepad + deffor + dfppce + doment + domlog + domsoc +\n donapd + ecpess + intagr + invfor + invlst + locmeu + mohist + patnat + prcomp + repsoc + resimm + rsceha +\n saldom + scelli + sofica + sofipe + spfcpi) # TODO: check (sees checked) and report in Niches.xls\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2011", "line_number": 289, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2011\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n cotsyn = simulation.calculate('cotsyn', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n domsoc = simulation.calculate('domsoc', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n locmeu = simulation.calculate('locmeu', period)\n mohist = simulation.calculate('mohist', period)\n patnat = simulation.calculate('patnat', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n resimm = simulation.calculate('resimm', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n scelli = simulation.calculate('scelli', period)\n sofica = simulation.calculate('sofica', period)\n sofipe = simulation.calculate('sofipe', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + cotsyn + creaen + daepad + deffor + dfppce + doment + domlog + domsoc +\n donapd + ecpess + intagr + invfor + invlst + locmeu + mohist + patnat + prcomp + repsoc + resimm + rsceha +\n saldom + scelli + sofica + sofipe + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2012", "line_number": 329, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2012\n '''\n period = period.this_year\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n domsoc = simulation.calculate('domsoc', period)\n donapd = simulation.calculate('donapd', period)\n ecpess = simulation.calculate('ecpess', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n locmeu = simulation.calculate('locmeu', period)\n mohist = simulation.calculate('mohist', period)\n patnat = simulation.calculate('patnat', period)\n prcomp = simulation.calculate('prcomp', period)\n repsoc = simulation.calculate('repsoc', period)\n resimm = simulation.calculate('resimm', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n scelli = simulation.calculate('scelli', period)\n sofica = simulation.calculate('sofica', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (adhcga + cappme + creaen + daepad + deffor + dfppce + doment + domlog + domsoc +\n donapd + ecpess + intagr + invfor + invlst + locmeu + mohist + patnat + prcomp + repsoc + resimm + rsceha +\n saldom + scelli + sofica + spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2013", "line_number": 367, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2013\n '''\n period = period.this_year\n accult = simulation.calculate('accult', period)\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n duflot = simulation.calculate('duflot', period)\n ecpess = simulation.calculate('ecpess', period)\n garext = simulation.calculate('garext', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n locmeu = simulation.calculate('locmeu', period)\n mecena = simulation.calculate('mecena', period)\n mohist = simulation.calculate('mohist', period)\n patnat = simulation.calculate('patnat', period)\n prcomp = simulation.calculate('prcomp', period)\n reduction_impot_exceptionnelle = simulation.calculate('reduction_impot_exceptionnelle', period)\n repsoc = simulation.calculate('repsoc', period)\n resimm = simulation.calculate('resimm', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n scelli = simulation.calculate('scelli', period)\n sofica = simulation.calculate('sofica', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (accult + adhcga + cappme + creaen + daepad + deffor + dfppce + doment + domlog + donapd +\n duflot + ecpess + garext + intagr + invfor + invlst + locmeu + mecena + mohist +\n patnat + prcomp + reduction_impot_exceptionnelle + repsoc + resimm + rsceha + saldom + scelli + sofica +\n spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2014 et + (non v\u00e9rifi\u00e9e)", "line_number": 410, "module": "reductions_impot", "source": "@dated_function(start = date(2014, 1, 1)) # Not checked\ndef function_2014__(self, simulation, period):\n '''\n Renvoie la somme des r\u00e9ductions d'imp\u00f4t \u00e0 int\u00e9grer pour l'ann\u00e9e 2014 et + (non v\u00e9rifi\u00e9e)\n '''\n period = period.this_year\n accult = simulation.calculate('accult', period)\n adhcga = simulation.calculate('adhcga', period)\n cappme = simulation.calculate('cappme', period)\n creaen = simulation.calculate('creaen', period)\n daepad = simulation.calculate('daepad', period)\n deffor = simulation.calculate('deffor', period)\n dfppce = simulation.calculate('dfppce', period)\n doment = simulation.calculate('doment', period)\n domlog = simulation.calculate('domlog', period)\n donapd = simulation.calculate('donapd', period)\n duflot = simulation.calculate('duflot', period)\n ecpess = simulation.calculate('ecpess', period)\n garext = simulation.calculate('garext', period)\n intagr = simulation.calculate('intagr', period)\n invfor = simulation.calculate('invfor', period)\n invlst = simulation.calculate('invlst', period)\n ip_net = simulation.calculate('ip_net', period)\n locmeu = simulation.calculate('locmeu', period)\n mecena = simulation.calculate('mecena', period)\n mohist = simulation.calculate('mohist', period)\n patnat = simulation.calculate('patnat', period)\n prcomp = simulation.calculate('prcomp', period)\n reduction_impot_exceptionnelle = simulation.calculate('reduction_impot_exceptionnelle', period)\n repsoc = simulation.calculate('repsoc', period)\n resimm = simulation.calculate('resimm', period)\n rsceha = simulation.calculate('rsceha', period)\n saldom = simulation.calculate('saldom', period)\n scelli = simulation.calculate('scelli', period)\n sofica = simulation.calculate('sofica', period)\n spfcpi = simulation.calculate('spfcpi', period)\n\n total_reductions = (accult + adhcga + cappme + creaen + daepad + deffor + dfppce + doment + domlog + donapd +\n duflot + ecpess + garext + intagr + invfor + invlst + locmeu + mecena + mohist +\n patnat + prcomp + reduction_impot_exceptionnelle + repsoc + resimm + rsceha + saldom + scelli + sofica +\n spfcpi)\n return period, min_(ip_net, total_reductions)\n", "input_variables": ["repsoc", "intagr", "daepad", "dfppce", "donapd", "garext", "scelli", "prcomp", "intcon", "intemp", "mecena", "mohist", "ecpess", "assvie", "cotsyn", "rsceha", "domlog", "saldom", "invlst", "adhcga", "reduction_impot_exceptionnelle", "invfor", "sofica", "ecodev", "resimm", "accult", "creaen", "deffor", "patnat", "cappme", "invrev", "spfcpi", "doment", "domsoc", "duflot", "ip_net", "sofipe", "locmeu"]}, "stop_instant": null, "start_instant": "2014-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2488, "module": "reductions_impot", "name": "repsoc", "start": "2003-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Int\u00e9r\u00e8ts d'emprunts pour reprises de soci\u00e9t\u00e9\n2003-", "line_number": 2494, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Int\u00e9r\u00e8ts d'emprunts pour reprises de soci\u00e9t\u00e9\n 2003-\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7fh = simulation.calculate('f7fh', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.repsoc\n\n seuil = P.seuil * (maries_ou_pacses + 1)\n return period, P.taux * min_(f7fh, seuil)\n", "input_variables": ["maries_ou_pacses", "f7fh"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2508, "module": "reductions_impot", "name": "resimm", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Travaux de restauration immobili\u00e8re (cases 7RA et 7RB)\n2009-2010", "line_number": 2513, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2010, 12, 31))\ndef function_20090101_20101231(self, simulation, period):\n '''\n Travaux de restauration immobili\u00e8re (cases 7RA et 7RB)\n 2009-2010\n '''\n period = period.this_year\n f7ra = simulation.calculate('f7ra', period)\n f7rb = simulation.calculate('f7rb', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.resimm\n\n max1 = P.max\n max2 = max_(max1 - f7rb, 0)\n return period, P.taux_rb * min_(f7rb, max1) + P.taux_ra * min_(f7ra, max2)\n", "input_variables": ["f7sx", "f7sy", "f7rc", "f7rb", "f7ra", "f7rf", "f7re", "f7rd"]}, "stop_instant": "2010-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Travaux de restauration immobili\u00e8re (cases 7RA, 7RB, 7RC, 7RD)\n2011", "line_number": 2528, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Travaux de restauration immobili\u00e8re (cases 7RA, 7RB, 7RC, 7RD)\n 2011\n '''\n period = period.this_year\n f7ra = simulation.calculate('f7ra', period)\n f7rb = simulation.calculate('f7rb', period)\n f7rc = simulation.calculate('f7rc', period)\n f7rd = simulation.calculate('f7rd', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.resimm\n\n max1 = P.max\n max2 = max_(max1 - f7rd, 0)\n max3 = max_(max2 - f7rb, 0)\n max4 = max_(max3 - f7rc, 0)\n return period, (P.taux_rd * min_(f7rd, max1) + P.taux_rb * min_(f7rb, max2) + P.taux_rc * min_(f7rc, max3) +\n P.taux_ra * min_(f7ra, max4))\n", "input_variables": ["f7sx", "f7sy", "f7rc", "f7rb", "f7ra", "f7rf", "f7re", "f7rd"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Travaux de restauration immobili\u00e8re (cases 7RA, 7RB, 7RC, 7RD, 7RE, 7RF)\n2012", "line_number": 2548, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Travaux de restauration immobili\u00e8re (cases 7RA, 7RB, 7RC, 7RD, 7RE, 7RF)\n 2012\n '''\n period = period.this_year\n f7ra = simulation.calculate('f7ra', period)\n f7rb = simulation.calculate('f7rb', period)\n f7rc = simulation.calculate('f7rc', period)\n f7rd = simulation.calculate('f7rd', period)\n f7re = simulation.calculate('f7re', period)\n f7rf = simulation.calculate('f7rf', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.resimm\n\n max1 = P.max\n max2 = max_(max1 - f7rd, 0)\n max3 = max_(max2 - f7rb, 0)\n max4 = max_(max3 - f7rc - f7rf, 0)\n max5 = max_(max4 - f7ra, 0)\n return period, (P.taux_rd * min_(f7rd, max1) + P.taux_rb * min_(f7rb, max2) + P.taux_rc * min_(f7rc + f7rf, max3) +\n P.taux_ra * min_(f7ra, max4) + P.taux_re * min_(f7re, max5))\n", "input_variables": ["f7sx", "f7sy", "f7rc", "f7rb", "f7ra", "f7rf", "f7re", "f7rd"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Travaux de restauration immobili\u00e8re (cases 7RA, 7RB, 7RC, 7RD, 7RE, 7RF, 7SX, 7SY)\n2012", "line_number": 2571, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Travaux de restauration immobili\u00e8re (cases 7RA, 7RB, 7RC, 7RD, 7RE, 7RF, 7SX, 7SY)\n 2012\n '''\n period = period.this_year\n f7ra = simulation.calculate('f7ra', period)\n f7rb = simulation.calculate('f7rb', period)\n f7rc = simulation.calculate('f7rc', period)\n f7rd = simulation.calculate('f7rd', period)\n f7re = simulation.calculate('f7re', period)\n f7rf = simulation.calculate('f7rf', period)\n f7sx = simulation.calculate('f7sx', period)\n f7sy = simulation.calculate('f7sy', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.resimm\n\n max1 = P.max\n max2 = max_(max1 - f7rd, 0)\n max3 = max_(max2 - f7rb, 0)\n max4 = max_(max3 - f7rc - f7sy - f7rf, 0)\n max5 = max_(max4 - f7ra, 0)\n return period, (P.taux_rd * min_(f7rd, max1) + P.taux_rb * min_(f7rb, max2) + P.taux_rc * min_(f7sy + f7rf + f7rc, max3) +\n P.taux_ra * min_(f7ra, max4) + P.taux_re * min_(f7re + f7sx, max5))\n", "input_variables": ["f7sx", "f7sy", "f7rc", "f7rb", "f7ra", "f7rf", "f7re", "f7rd"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2597, "module": "reductions_impot", "name": "rsceha", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Rentes de survie et contrats d'\u00e9pargne handicap\n2002-", "line_number": 2602, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Rentes de survie et contrats d'\u00e9pargne handicap\n 2002-\n '''\n period = period.this_year\n nb_pac2 = simulation.calculate('nb_pac2', period)\n nbR = simulation.calculate('nbR', period)\n f7gz = simulation.calculate('f7gz', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.rsceha\n\n max1 = P.seuil1 + (nb_pac2 - nbR) * P.seuil2\n return period, P.taux * min_(f7gz, max1)\n", "input_variables": ["nbR", "f7gz", "nb_pac2"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2617, "module": "reductions_impot", "name": "saldom", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n2002-2004", "line_number": 2622, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2004, 12, 31))\ndef function_20020101_20041231(self, simulation, period):\n '''\n Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n 2002-2004\n '''\n period = period.this_year\n f7df = simulation.calculate('f7df', period)\n f7dg = simulation.calculate('f7dg', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.saldom\n\n isinvalid = f7dg\n max1 = P.max1 * not_(isinvalid) + P.max3 * isinvalid\n return period, P.taux * min_(f7df, max1)\n", "input_variables": ["f7dg", "f7df", "f7db", "f7dl", "nb_pac2", "f7dq"]}, "stop_instant": "2004-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n2005-2006", "line_number": 2638, "module": "reductions_impot", "source": "@dated_function(start = date(2005, 1, 1), stop = date(2006, 12, 31))\ndef function_20050101_20061231(self, simulation, period):\n '''\n Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n 2005-2006\n '''\n period = period.this_year\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7df = simulation.calculate('f7df', period)\n f7dl = simulation.calculate('f7dl', period)\n f7dg = simulation.calculate('f7dg', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.saldom\n\n isinvalid = f7dg\n nbpacmin = nb_pac2 + f7dl\n maxBase = P.max1\n maxDuMaxNonInv = P.max2\n maxNonInv = min_(maxBase + P.pac * nbpacmin, maxDuMaxNonInv)\n max1 = maxNonInv * not_(isinvalid) + P.max3 * isinvalid\n return period, P.taux * min_(f7df, max1)\n", "input_variables": ["f7dg", "f7df", "f7db", "f7dl", "nb_pac2", "f7dq"]}, "stop_instant": "2006-12-31", "start_instant": "2005-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n2007-2008", "line_number": 2660, "module": "reductions_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2008, 12, 31))\ndef function_20070101_20081231(self, simulation, period):\n '''\n Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n 2007-2008\n '''\n period = period.this_year\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7db = simulation.calculate('f7db', period)\n f7df = simulation.calculate('f7df', period)\n f7dl = simulation.calculate('f7dl', period)\n f7dg = simulation.calculate('f7dg', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.saldom\n\n isinvalid = f7dg\n nbpacmin = nb_pac2 + f7dl\n maxBase = P.max1\n maxDuMaxNonInv = P.max2\n maxNonInv = min_(maxBase + P.pac * nbpacmin, maxDuMaxNonInv)\n maxEffectif = maxNonInv * not_(isinvalid) + P.max3 * isinvalid\n max1 = maxEffectif - min_(f7db, maxEffectif)\n return period, P.taux * min_(f7df, max1)\n", "input_variables": ["f7dg", "f7df", "f7db", "f7dl", "nb_pac2", "f7dq"]}, "stop_instant": "2008-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n2009-2013", "line_number": 2684, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2013, 12, 31))\ndef function_20090101_20131231(self, simulation, period):\n '''\n Sommes vers\u00e9es pour l'emploi d'un salari\u00e9s \u00e0 domicile\n 2009-2013\n '''\n period = period.this_year\n nb_pac2 = simulation.calculate('nb_pac2', period)\n f7db = simulation.calculate('f7db', period)\n f7df = simulation.calculate('f7df', period)\n f7dl = simulation.calculate('f7dl', period)\n f7dq = simulation.calculate('f7dq', period)\n f7dg = simulation.calculate('f7dg', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.saldom\n\n isinvalid = f7dg\n annee1 = f7dq\n nbpacmin = nb_pac2 + f7dl\n maxBase = P.max1 * not_(annee1) + P.max1_1ereAnnee * annee1\n maxDuMaxNonInv = P.max2 * not_(annee1) + P.max2_1ereAnnee * annee1\n maxNonInv = min_(maxBase + P.pac * nbpacmin, maxDuMaxNonInv)\n maxEffectif = maxNonInv * not_(isinvalid) + P.max3 * isinvalid\n max1 = maxEffectif - min_(f7db, maxEffectif)\n return period, P.taux * min_(f7df, max1)\n", "input_variables": ["f7dg", "f7df", "f7db", "f7dl", "nb_pac2", "f7dq"]}, "stop_instant": "2013-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 2711, "module": "reductions_impot", "name": "scelli", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatif neufs : Dispositif Scellier (cases 7HJ et 7HK)\n2009", "line_number": 2716, "module": "reductions_impot", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2009, 12, 31))\ndef function_20090101_20091231(self, simulation, period):\n '''\n Investissements locatif neufs : Dispositif Scellier (cases 7HJ et 7HK)\n 2009\n '''\n period = period.this_year\n f7hj = simulation.calculate('f7hj', period)\n f7hk = simulation.calculate('f7hk', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.scelli\n\n return period, max_(P.taux1 * min_(P.max, f7hj), P.taux2 * min_(P.max, f7hk)) / 9\n", "input_variables": ["f7jg", "f7jk", "f7ld", "f7gx", "f7hg", "f7jj", "f7gt", "f7gu", "f7fd", "f7hf", "f7gp", "f7ne", "f7gs", "f7jo", "f7nh", "f7nd", "f7gw", "f7gj", "f7jr", "f7nc", "f7nl", "f7jq", "f7jf", "f7nb", "f7jp", "f7na", "f7jb", "f7fc", "f7jm", "f7jl", "f7jn", "f7fb", "f7le", "f7hd", "f7fa", "f7nn", "f7nk", "f7je", "f7ja", "f7lf", "f7ng", "f7nf", "f7hs", "f7hr", "f7hu", "f7ht", "f7hw", "f7hv", "f7no", "f7hx", "f7nm", "f7hz", "f7la", "f7nj", "f7lc", "f7lb", "f7ha", "f7nt", "f7ns", "f7ni", "f7nq", "f7np", "f7hh", "f7hk", "f7hj", "f7hm", "f7hl", "f7ho", "f7hn", "f7gl", "f7mg", "f7jd", "f7jh", "f7hb", "f7lm", "f7gv", "f7ls", "f7he", "f7lz", "f7gk", "f7nr"]}, "stop_instant": "2009-12-31", "start_instant": "2009-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatif neufs : Dispositif Scellier\n2010", "line_number": 2729, "module": "reductions_impot", "source": "@dated_function(start = date(2010, 1, 1), stop = date(2010, 12, 31))\ndef function_20100101_20101231(self, simulation, period):\n '''\n Investissements locatif neufs : Dispositif Scellier\n 2010\n '''\n period = period.this_year\n f7hj = simulation.calculate('f7hj', period)\n f7hk = simulation.calculate('f7hk', period)\n f7hn = simulation.calculate('f7hn', period)\n f7ho = simulation.calculate('f7ho', period)\n f7hl = simulation.calculate('f7hl', period)\n f7hm = simulation.calculate('f7hm', period)\n f7hr = simulation.calculate('f7hr', period)\n f7hs = simulation.calculate('f7hs', period)\n f7la = simulation.calculate('f7la', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.scelli\n\n return period, (max_(\n max_(P.taux1 * min_(P.max, f7hj),\n P.taux2 * min_(P.max, f7hk)),\n max_(P.taux1 * min_(P.max, f7hn),\n P.taux2 * min_(P.max, f7ho))) / 9 +\n max_(\n P.taux1 * min_(P.max, f7hl),\n P.taux2 * min_(P.max, f7hm)) / 9 +\n max_(P.taux1 * f7hr, P.taux2 * f7hs) +\n f7la)\n", "input_variables": ["f7jg", "f7jk", "f7ld", "f7gx", "f7hg", "f7jj", "f7gt", "f7gu", "f7fd", "f7hf", "f7gp", "f7ne", "f7gs", "f7jo", "f7nh", "f7nd", "f7gw", "f7gj", "f7jr", "f7nc", "f7nl", "f7jq", "f7jf", "f7nb", "f7jp", "f7na", "f7jb", "f7fc", "f7jm", "f7jl", "f7jn", "f7fb", "f7le", "f7hd", "f7fa", "f7nn", "f7nk", "f7je", "f7ja", "f7lf", "f7ng", "f7nf", "f7hs", "f7hr", "f7hu", "f7ht", "f7hw", "f7hv", "f7no", "f7hx", "f7nm", "f7hz", "f7la", "f7nj", "f7lc", "f7lb", "f7ha", "f7nt", "f7ns", "f7ni", "f7nq", "f7np", "f7hh", "f7hk", "f7hj", "f7hm", "f7hl", "f7ho", "f7hn", "f7gl", "f7mg", "f7jd", "f7jh", "f7hb", "f7lm", "f7gv", "f7ls", "f7he", "f7lz", "f7gk", "f7nr"]}, "stop_instant": "2010-12-31", "start_instant": "2010-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatif neufs : Dispositif Scellier\n2011", "line_number": 2758, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2011, 12, 31))\ndef function_20110101_20111231(self, simulation, period):\n '''\n Investissements locatif neufs : Dispositif Scellier\n 2011\n '''\n period = period.this_year\n f7hj = simulation.calculate('f7hj', period)\n f7hk = simulation.calculate('f7hk', period)\n f7hl = simulation.calculate('f7hl', period)\n f7hm = simulation.calculate('f7hm', period)\n f7hn = simulation.calculate('f7hn', period)\n f7ho = simulation.calculate('f7ho', period)\n f7hr = simulation.calculate('f7hr', period)\n f7hs = simulation.calculate('f7hs', period)\n f7ht = simulation.calculate('f7ht', period)\n f7hu = simulation.calculate('f7hu', period)\n f7hv = simulation.calculate('f7hv', period)\n f7hw = simulation.calculate('f7hw', period)\n f7hx = simulation.calculate('f7hx', period)\n f7hz = simulation.calculate('f7hz', period)\n f7la = simulation.calculate('f7la', period)\n f7lb = simulation.calculate('f7lb', period)\n f7lc = simulation.calculate('f7lc', period)\n f7na = simulation.calculate('f7na', period)\n f7nb = simulation.calculate('f7nb', period)\n f7nc = simulation.calculate('f7nc', period)\n f7nd = simulation.calculate('f7nd', period)\n f7ne = simulation.calculate('f7ne', period)\n f7nf = simulation.calculate('f7nf', period)\n f7ng = simulation.calculate('f7ng', period)\n f7nh = simulation.calculate('f7nh', period)\n f7ni = simulation.calculate('f7ni', period)\n f7nj = simulation.calculate('f7nj', period)\n f7nk = simulation.calculate('f7nk', period)\n f7nl = simulation.calculate('f7nl', period)\n f7nm = simulation.calculate('f7nm', period)\n f7nn = simulation.calculate('f7nn', period)\n f7no = simulation.calculate('f7no', period)\n f7np = simulation.calculate('f7np', period)\n f7nq = simulation.calculate('f7nq', period)\n f7nr = simulation.calculate('f7nr', period)\n f7ns = simulation.calculate('f7ns', period)\n f7nt = simulation.calculate('f7nt', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.scelli\n\n return period, (min_(P.max, maxi(\n P.taux13 * max_(f7nf, f7nj) / 9,\n P.taux15 * max_(f7ng, f7ni) / 9,\n P.taux22 * max_(f7na, f7ne) / 9,\n P.taux1 * maxi(f7nb, f7nc, f7nd, f7nh) / 9,\n P.taux36 * maxi(f7nk / 9, f7no / 9, f7np / 5, f7nt / 5),\n P.taux2 * maxi(f7nl / 9, f7nm / 9, f7nn / 9, f7nq / 5, f7nr / 5, f7ns / 5))) +\n min_(P.max, maxi(\n P.taux1 * max_(f7hj, f7hn),\n P.taux2 * max_(f7hk, f7ho))) / 9 +\n min_(P.max, max_(P.taux1 * f7hl, P.taux2 * f7hm)) / 9 +\n min_(P.max, maxi(P.taux1 * f7hv, P.taux1 * f7hx, P.taux2 * f7hw, P.taux2 * f7hz)) +\n min_(P.max, max_(P.taux1 * f7ht, P.taux2 * f7hu)) +\n min_(P.max, max_(P.taux1 * f7hr, P.taux2 * f7hs)) +\n f7la + f7lb + f7lc\n )\n", "input_variables": ["f7jg", "f7jk", "f7ld", "f7gx", "f7hg", "f7jj", "f7gt", "f7gu", "f7fd", "f7hf", "f7gp", "f7ne", "f7gs", "f7jo", "f7nh", "f7nd", "f7gw", "f7gj", "f7jr", "f7nc", "f7nl", "f7jq", "f7jf", "f7nb", "f7jp", "f7na", "f7jb", "f7fc", "f7jm", "f7jl", "f7jn", "f7fb", "f7le", "f7hd", "f7fa", "f7nn", "f7nk", "f7je", "f7ja", "f7lf", "f7ng", "f7nf", "f7hs", "f7hr", "f7hu", "f7ht", "f7hw", "f7hv", "f7no", "f7hx", "f7nm", "f7hz", "f7la", "f7nj", "f7lc", "f7lb", "f7ha", "f7nt", "f7ns", "f7ni", "f7nq", "f7np", "f7hh", "f7hk", "f7hj", "f7hm", "f7hl", "f7ho", "f7hn", "f7gl", "f7mg", "f7jd", "f7jh", "f7hb", "f7lm", "f7gv", "f7ls", "f7he", "f7lz", "f7gk", "f7nr"]}, "stop_instant": "2011-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatif neufs : Dispositif Scellier\n2012", "line_number": 2821, "module": "reductions_impot", "source": "@dated_function(start = date(2012, 1, 1), stop = date(2012, 12, 31))\ndef function_20120101_20121231(self, simulation, period):\n '''\n Investissements locatif neufs : Dispositif Scellier\n 2012\n '''\n period = period.this_year\n f7ha = simulation.calculate('f7ha', period)\n f7hb = simulation.calculate('f7hb', period)\n f7hg = simulation.calculate('f7hg', period)\n f7hh = simulation.calculate('f7hh', period)\n f7hd = simulation.calculate('f7hd', period)\n f7he = simulation.calculate('f7he', period)\n f7hf = simulation.calculate('f7hf', period)\n f7hj = simulation.calculate('f7hj', period)\n f7hk = simulation.calculate('f7hk', period)\n f7hl = simulation.calculate('f7hl', period)\n f7hm = simulation.calculate('f7hm', period)\n f7hn = simulation.calculate('f7hn', period)\n f7ho = simulation.calculate('f7ho', period)\n f7hr = simulation.calculate('f7hr', period)\n f7hs = simulation.calculate('f7hs', period)\n f7ht = simulation.calculate('f7ht', period)\n f7hu = simulation.calculate('f7hu', period)\n f7hv = simulation.calculate('f7hv', period)\n f7hw = simulation.calculate('f7hw', period)\n f7hx = simulation.calculate('f7hx', period)\n f7hz = simulation.calculate('f7hz', period)\n f7ja = simulation.calculate('f7ja', period)\n f7jb = simulation.calculate('f7jb', period)\n f7jd = simulation.calculate('f7jd', period)\n f7je = simulation.calculate('f7je', period)\n f7jf = simulation.calculate('f7jf', period)\n f7jg = simulation.calculate('f7jg', period)\n f7jh = simulation.calculate('f7jh', period)\n f7jj = simulation.calculate('f7jj', period)\n f7jk = simulation.calculate('f7jk', period)\n f7jl = simulation.calculate('f7jl', period)\n f7jm = simulation.calculate('f7jm', period)\n f7jn = simulation.calculate('f7jn', period)\n f7jo = simulation.calculate('f7jo', period)\n f7jp = simulation.calculate('f7jp', period)\n f7jq = simulation.calculate('f7jq', period)\n f7jr = simulation.calculate('f7jr', period)\n f7la = simulation.calculate('f7la', period)\n f7lb = simulation.calculate('f7lb', period)\n f7lc = simulation.calculate('f7lc', period)\n f7ld = simulation.calculate('f7ld', period)\n f7le = simulation.calculate('f7le', period)\n f7lf = simulation.calculate('f7lf', period)\n f7na = simulation.calculate('f7na', period)\n f7nb = simulation.calculate('f7nb', period)\n f7nc = simulation.calculate('f7nc', period)\n f7nd = simulation.calculate('f7nd', period)\n f7ne = simulation.calculate('f7ne', period)\n f7nf = simulation.calculate('f7nf', period)\n f7ng = simulation.calculate('f7ng', period)\n f7nh = simulation.calculate('f7nh', period)\n f7ni = simulation.calculate('f7ni', period)\n f7nj = simulation.calculate('f7nj', period)\n f7nk = simulation.calculate('f7nk', period)\n f7nl = simulation.calculate('f7nl', period)\n f7nm = simulation.calculate('f7nm', period)\n f7nn = simulation.calculate('f7nn', period)\n f7no = simulation.calculate('f7no', period)\n f7np = simulation.calculate('f7np', period)\n f7nq = simulation.calculate('f7nq', period)\n f7nr = simulation.calculate('f7nr', period)\n f7ns = simulation.calculate('f7ns', period)\n f7nt = simulation.calculate('f7nt', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.scelli\n\n return period, (min_(P.max, maxi(\n P.taux13 * max_(f7nf, f7nj) / 9,\n P.taux15 * max_(f7ng, f7ni) / 9,\n P.taux22 * max_(f7na, f7ne) / 9,\n P.taux1 * maxi(f7nb, f7nc, f7nd, f7nh) / 9,\n P.taux36 * maxi(f7nk / 9, f7no / 9, f7np / 5, f7nt / 5),\n P.taux2 * maxi(f7nl / 9, f7nm / 9, f7nn / 9, f7nq / 5, f7nr / 5, f7ns / 5))) +\n min_(P.max, maxi(\n P.taux1 * max_(f7hj, f7hn),\n P.taux2 * max_(f7hk, f7ho))) / 9 +\n min_(P.max, max_(P.taux1 * f7hl, P.taux2 * f7hm)) / 9 +\n min_(P.max, maxi(P.taux1 * f7hv, P.taux1 * f7hx, P.taux2 * f7hw, P.taux2 * f7hz)) +\n min_(P.max, max_(P.taux1 * f7ht, P.taux2 * f7hu)) +\n min_(P.max, max_(P.taux1 * f7hr, P.taux2 * f7hs)) +\n f7la + f7lb + f7lc + f7ld + f7le + f7lf +\n f7ha + f7hb + f7hg + f7hh + f7hd + f7he + f7hf +\n min_(P.max, maxi(\n P.taux6 * max_(f7jf, f7jj) / 9,\n P.taux13 * maxi(f7ja, f7je, f7jg, f7jh) / 9,\n P.taux22 * maxi(f7jb, f7jd) / 9,\n P.taux24 * maxi(f7jk / 9, f7jn / 9, f7jo / 5, f7jr / 5),\n P.taux36 * maxi(f7jl / 9, f7jm / 9, f7jp / 5, f7jq / 5)))\n )\n", "input_variables": ["f7jg", "f7jk", "f7ld", "f7gx", "f7hg", "f7jj", "f7gt", "f7gu", "f7fd", "f7hf", "f7gp", "f7ne", "f7gs", "f7jo", "f7nh", "f7nd", "f7gw", "f7gj", "f7jr", "f7nc", "f7nl", "f7jq", "f7jf", "f7nb", "f7jp", "f7na", "f7jb", "f7fc", "f7jm", "f7jl", "f7jn", "f7fb", "f7le", "f7hd", "f7fa", "f7nn", "f7nk", "f7je", "f7ja", "f7lf", "f7ng", "f7nf", "f7hs", "f7hr", "f7hu", "f7ht", "f7hw", "f7hv", "f7no", "f7hx", "f7nm", "f7hz", "f7la", "f7nj", "f7lc", "f7lb", "f7ha", "f7nt", "f7ns", "f7ni", "f7nq", "f7np", "f7hh", "f7hk", "f7hj", "f7hm", "f7hl", "f7ho", "f7hn", "f7gl", "f7mg", "f7jd", "f7jh", "f7hb", "f7lm", "f7gv", "f7ls", "f7he", "f7lz", "f7gk", "f7nr"]}, "stop_instant": "2012-12-31", "start_instant": "2012-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Investissements locatif neufs : Dispositif Scellier\n2013", "line_number": 2917, "module": "reductions_impot", "source": "@dated_function(start = date(2013, 1, 1), stop = date(2013, 12, 31))\ndef function_20130101_20131231(self, simulation, period):\n '''\n Investissements locatif neufs : Dispositif Scellier\n 2013\n '''\n period = period.this_year\n f7fa = simulation.calculate('f7fa', period)\n f7fb = simulation.calculate('f7fb', period)\n f7fc = simulation.calculate('f7fc', period)\n f7fd = simulation.calculate('f7fd', period)\n f7gj = simulation.calculate('f7gj', period)\n f7gk = simulation.calculate('f7gk', period)\n f7gl = simulation.calculate('f7gl', period)\n f7gp = simulation.calculate('f7gp', period)\n f7gs = simulation.calculate('f7gs', period)\n f7gt = simulation.calculate('f7gt', period)\n f7gu = simulation.calculate('f7gu', period)\n f7gv = simulation.calculate('f7gv', period)\n f7gw = simulation.calculate('f7gw', period)\n f7gx = simulation.calculate('f7gx', period)\n f7ha = simulation.calculate('f7ha', period)\n f7hb = simulation.calculate('f7hb', period)\n f7hg = simulation.calculate('f7hg', period)\n f7hh = simulation.calculate('f7hh', period)\n f7hd = simulation.calculate('f7hd', period)\n f7he = simulation.calculate('f7he', period)\n f7hf = simulation.calculate('f7hf', period)\n f7hj = simulation.calculate('f7hj', period)\n f7hk = simulation.calculate('f7hk', period)\n f7hl = simulation.calculate('f7hl', period)\n f7hm = simulation.calculate('f7hm', period)\n f7hn = simulation.calculate('f7hn', period)\n f7ho = simulation.calculate('f7ho', period)\n f7hr = simulation.calculate('f7hr', period)\n f7hs = simulation.calculate('f7hs', period)\n f7ht = simulation.calculate('f7ht', period)\n f7hu = simulation.calculate('f7hu', period)\n f7hv = simulation.calculate('f7hv', period)\n f7hw = simulation.calculate('f7hw', period)\n f7hx = simulation.calculate('f7hx', period)\n f7hz = simulation.calculate('f7hz', period)\n f7ja = simulation.calculate('f7ja', period)\n f7jb = simulation.calculate('f7jb', period)\n f7jd = simulation.calculate('f7jd', period)\n f7je = simulation.calculate('f7je', period)\n f7jf = simulation.calculate('f7jf', period)\n f7jg = simulation.calculate('f7jg', period)\n f7jh = simulation.calculate('f7jh', period)\n f7jj = simulation.calculate('f7jj', period)\n f7jk = simulation.calculate('f7jk', period)\n f7jl = simulation.calculate('f7jl', period)\n f7jm = simulation.calculate('f7jm', period)\n f7jn = simulation.calculate('f7jn', period)\n f7jo = simulation.calculate('f7jo', period)\n f7jp = simulation.calculate('f7jp', period)\n f7jq = simulation.calculate('f7jq', period)\n f7jr = simulation.calculate('f7jr', period)\n f7la = simulation.calculate('f7la', period)\n f7lb = simulation.calculate('f7lb', period)\n f7lc = simulation.calculate('f7lc', period)\n f7ld = simulation.calculate('f7ld', period)\n f7le = simulation.calculate('f7le', period)\n f7lf = simulation.calculate('f7lf', period)\n f7lm = simulation.calculate('f7lm', period)\n f7ls = simulation.calculate('f7ls', period)\n f7lz = simulation.calculate('f7lz', period)\n f7mg = simulation.calculate('f7mg', period)\n f7na = simulation.calculate('f7na', period)\n f7nb = simulation.calculate('f7nb', period)\n f7nc = simulation.calculate('f7nc', period)\n f7nd = simulation.calculate('f7nd', period)\n f7ne = simulation.calculate('f7ne', period)\n f7nf = simulation.calculate('f7nf', period)\n f7ng = simulation.calculate('f7ng', period)\n f7nh = simulation.calculate('f7nh', period)\n f7ni = simulation.calculate('f7ni', period)\n f7nj = simulation.calculate('f7nj', period)\n f7nk = simulation.calculate('f7nk', period)\n f7nl = simulation.calculate('f7nl', period)\n f7nm = simulation.calculate('f7nm', period)\n f7nn = simulation.calculate('f7nn', period)\n f7no = simulation.calculate('f7no', period)\n f7np = simulation.calculate('f7np', period)\n f7nq = simulation.calculate('f7nq', period)\n f7nr = simulation.calculate('f7nr', period)\n f7ns = simulation.calculate('f7ns', period)\n f7nt = simulation.calculate('f7nt', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.scelli\n\n return period, (min_(P.max, maxi(\n P.taux13 * max_(f7nf, f7nj) / 9,\n P.taux15 * max_(f7ng, f7ni) / 9,\n P.taux22 * max_(f7na, f7ne) / 9,\n P.taux1 * maxi(f7nb, f7nc, f7nd, f7nh) / 9,\n P.taux36 * maxi(f7nk / 9, f7no / 9, f7np / 5, f7nt / 5),\n P.taux2 * maxi(f7nl / 9, f7nm / 9, f7nn / 9, f7nq / 5, f7nr / 5, f7ns / 5))) +\n min_(P.max, maxi(\n P.taux1 * max_(f7hj, f7hn),\n P.taux2 * max_(f7hk, f7ho))) / 9 +\n min_(P.max, max_(P.taux1 * f7hl, P.taux2 * f7hm)) / 9 +\n min_(P.max, maxi(P.taux1 * f7hv, P.taux1 * f7hx, P.taux2 * f7hw, P.taux2 * f7hz)) +\n min_(P.max, max_(P.taux1 * f7ht, P.taux2 * f7hu)) +\n min_(P.max, max_(P.taux1 * f7hr, P.taux2 * f7hs)) +\n min_(P.max, maxi(\n P.taux6 * maxi(f7jf, f7jj, f7fb) / 9,\n P.taux13 * maxi(f7ja, f7je, f7jg, f7jh, f7fa) / 9,\n P.taux22 * maxi(f7jb, f7jd) / 9,\n P.taux24 * maxi(f7jk / 9, f7jn / 9, f7jo / 5, f7jr / 5, f7fc / 9, f7fd / 5),\n P.taux36 * maxi(f7jl / 9, f7jm / 9, f7jp / 5, f7jq / 5))) +\n f7la + f7lb + f7lc + f7ld + f7le + f7lf + f7lm + f7ls + f7lz + f7mg +\n f7ha + f7hb + f7hg + f7hh + f7hd + f7he + f7hf +\n f7gj + f7gk + f7gl + f7gp + f7gs + f7gt + f7gu + f7gv + f7gx + f7gw\n )\n", "input_variables": ["f7jg", "f7jk", "f7ld", "f7gx", "f7hg", "f7jj", "f7gt", "f7gu", "f7fd", "f7hf", "f7gp", "f7ne", "f7gs", "f7jo", "f7nh", "f7nd", "f7gw", "f7gj", "f7jr", "f7nc", "f7nl", "f7jq", "f7jf", "f7nb", "f7jp", "f7na", "f7jb", "f7fc", "f7jm", "f7jl", "f7jn", "f7fb", "f7le", "f7hd", "f7fa", "f7nn", "f7nk", "f7je", "f7ja", "f7lf", "f7ng", "f7nf", "f7hs", "f7hr", "f7hu", "f7ht", "f7hw", "f7hv", "f7no", "f7hx", "f7nm", "f7hz", "f7la", "f7nj", "f7lc", "f7lb", "f7ha", "f7nt", "f7ns", "f7ni", "f7nq", "f7np", "f7hh", "f7hk", "f7hj", "f7hm", "f7hl", "f7ho", "f7hn", "f7gl", "f7mg", "f7jd", "f7jh", "f7hb", "f7lm", "f7gv", "f7ls", "f7he", "f7lz", "f7gk", "f7nr"]}, "stop_instant": "2013-12-31", "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 3033, "module": "reductions_impot", "name": "sofica", "start": "2006-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscriptions au capital de SOFICA\n2006-", "line_number": 3039, "module": "reductions_impot", "source": "def function(self, simulation, period):\n '''\n Souscriptions au capital de SOFICA\n 2006-\n '''\n period = period.this_year\n f7gn = simulation.calculate('f7gn', period)\n f7fn = simulation.calculate('f7fn', period)\n rng = simulation.calculate('rng', period)\n P = simulation.legislation_at(period.start).ir.reductions_impots.sofica\n\n max0 = min_(P.taux1 * max_(rng, 0), P.max)\n max1 = max_(0, max0 - f7gn)\n return period, P.taux2 * min_(f7gn, max0) + P.taux3 * min_(f7fn, max1)\n", "input_variables": ["f7fn", "f7gn", "rng"]}}, {"@type": "Float", "default": 0, "end": "2011-01-01", "entity": "foyers_fiscaux", "line_number": 3055, "module": "reductions_impot", "name": "sofipe", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscription au capital d\u2019une SOFIPECHE (case 7GS)\n2009-2011", "line_number": 3062, "module": "reductions_impot", "source": "def function(self, simulation, period):\n \"\"\"\n Souscription au capital d\u2019une SOFIPECHE (case 7GS)\n 2009-2011\n \"\"\"\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n rbg_int = simulation.calculate('rbg_int', period)\n f7gs = simulation.calculate('f7gs', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.sofipe\n\n max1 = min_(P.max * (maries_ou_pacses + 1), P.base * rbg_int) # page3 ligne 18\n return period, P.taux * min_(f7gs, max1)\n", "input_variables": ["maries_ou_pacses", "rbg_int", "f7gs"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "line_number": 3078, "module": "reductions_impot", "name": "spfcpi", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscription de parts de fonds communs de placement dans l'innovation,\nde fonds d'investissement de proximit\u00e9\n2002", "line_number": 3083, "module": "reductions_impot", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Souscription de parts de fonds communs de placement dans l'innovation,\n de fonds d'investissement de proximit\u00e9\n 2002\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7gq = simulation.calculate('f7gq', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.spfcpi\n\n max1 = P.max * (maries_ou_pacses + 1)\n return period, P.taux1 * min_(f7gq, max1)\n", "input_variables": ["maries_ou_pacses", "f7fm", "f7fl", "f7gq", "f7fq"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscription de parts de fonds communs de placement dans l'innovation,\nde fonds d'investissement de proximit\u00e9\n2003-2006", "line_number": 3099, "module": "reductions_impot", "source": "@dated_function(start = date(2003, 1, 1), stop = date(2006, 12, 31))\ndef function_20030101_20061231(self, simulation, period):\n '''\n Souscription de parts de fonds communs de placement dans l'innovation,\n de fonds d'investissement de proximit\u00e9\n 2003-2006\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7gq = simulation.calculate('f7gq', period)\n f7fq = simulation.calculate('f7fq', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.spfcpi\n\n max1 = P.max * (maries_ou_pacses + 1)\n return period, (P.taux1 * min_(f7gq, max1) + P.taux1 * min_(f7fq, max1))\n", "input_variables": ["maries_ou_pacses", "f7fm", "f7fl", "f7gq", "f7fq"]}, "stop_instant": "2006-12-31", "start_instant": "2003-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscription de parts de fonds communs de placement dans l'innovation,\nde fonds d'investissement de proximit\u00e9\n2007-2010", "line_number": 3116, "module": "reductions_impot", "source": "@dated_function(start = date(2007, 1, 1), stop = date(2010, 12, 31))\ndef function_20070101_20101231(self, simulation, period):\n '''\n Souscription de parts de fonds communs de placement dans l'innovation,\n de fonds d'investissement de proximit\u00e9\n 2007-2010\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7gq = simulation.calculate('f7gq', period)\n f7fq = simulation.calculate('f7fq', period)\n f7fm = simulation.calculate('f7fm', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.spfcpi\n\n max1 = P.max * (maries_ou_pacses + 1)\n return period, (P.taux1 * min_(f7gq, max1) +\n P.taux1 * min_(f7fq, max1) +\n P.taux2 * min_(f7fm, max1))\n", "input_variables": ["maries_ou_pacses", "f7fm", "f7fl", "f7gq", "f7fq"]}, "stop_instant": "2010-12-31", "start_instant": "2007-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscription de parts de fonds communs de placement dans l'innovation,\nde fonds d'investissement de proximit\u00e9\n2011-2013", "line_number": 3136, "module": "reductions_impot", "source": "@dated_function(start = date(2011, 1, 1), stop = date(2013, 12, 31))\ndef function_20110101_20131231(self, simulation, period):\n '''\n Souscription de parts de fonds communs de placement dans l'innovation,\n de fonds d'investissement de proximit\u00e9\n 2011-2013\n '''\n period = period.this_year\n maries_ou_pacses = simulation.calculate('maries_ou_pacses', period)\n f7gq = simulation.calculate('f7gq', period)\n f7fq = simulation.calculate('f7fq', period)\n f7fm = simulation.calculate('f7fm', period)\n f7fl = simulation.calculate('f7fl', period)\n _P = simulation.legislation_at(period.start)\n P = simulation.legislation_at(period.start).ir.reductions_impots.spfcpi\n\n max1 = P.max * (maries_ou_pacses + 1)\n return period, (P.taux1 * min_(f7gq, max1) + P.taux1 * min_(f7fq, max1) + P.taux2 * min_(f7fm, max1) +\n P.taux3 * min_(f7fl, max1))\n", "input_variables": ["maries_ou_pacses", "f7fm", "f7fl", "f7gq", "f7fq"]}, "stop_instant": "2013-12-31", "start_instant": "2011-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Souscription de parts de fonds communs de placement dans l'innovation,\nde fonds d'investissement de proximit\u00e9\n2014", "line_number": 3156, "module": "reductions_impot", "source": "@dated_function(start = date(2014, 1, 1), stop = date(2014, 12, 31))\ndef function_20140101_20141231(self, simulation, period):\n '''\n Souscription de parts de fonds communs de placement dans l'innovation,\n de fonds d'investissement de proximit\u00e9\n 2014\n '''\n period = period.this_year\n f7gq = simulation.calculate('f7gq', period)\n\n return period, f7gq * 0\n", "input_variables": ["maries_ou_pacses", "f7fm", "f7fl", "f7gq", "f7fq"]}, "stop_instant": "2014-12-31", "start_instant": "2014-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution au financement des cong\u00e9 individuel de formation (CIF) des salari\u00e9es en CDD", "line_number": 30, "module": "taxes_salaires_main_oeuvre", "name": "conge_individuel_formation_cdd", "formula": {"@type": "SimpleFormula", "comments": "# TODO: date de d\u00e9but\n", "doc": null, "line_number": 36, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period)\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n law = simulation.legislation_at(period.start).cotsoc.conge_individuel_formation\n\n cotisation = - law.cdd * (contrat_de_travail_duree == 1) * assiette_cotisations_sociales\n return period, cotisation\n", "input_variables": ["contrat_de_travail_duree", "assiette_cotisations_sociales"], "parameters": ["cotsoc.conge_individuel_formation.cdd"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution additionnelle au d\u00e9veloppement de l'apprentissage", "line_number": 58, "module": "taxes_salaires_main_oeuvre", "name": "contribution_developpement_apprentissage", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 63, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n redevable_taxe_apprentissage = simulation.calculate('redevable_taxe_apprentissage', period)\n\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"employeur\",\n bareme_name = \"apprentissage_add\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation * redevable_taxe_apprentissage\n", "input_variables": ["plafond_securite_sociale", "categorie_salarie", "cotisation_sociale_mode_recouvrement", "assiette_cotisations_sociales", "redevable_taxe_apprentissage"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution suppl\u00e9mentaire \u00e0 l'apprentissage", "line_number": 76, "module": "taxes_salaires_main_oeuvre", "name": "contribution_supplementaire_apprentissage", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 81, "module": "taxes_salaires_main_oeuvre", "source": "@dated_function(date(2010, 1, 1))\ndef function(self, simulation, period):\n redevable_taxe_apprentissage = simulation.calculate('redevable_taxe_apprentissage', period)\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n ratio_alternants = simulation.calculate('ratio_alternants', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n taux = simulation.legislation_at(period.start).cotsoc.contribution_supplementaire_apprentissage\n\n if period.start.year > 2012:\n taux_contribution = (\n (effectif_entreprise < 2000) * (ratio_alternants < .01) * taux.moins_2000_moins_1pc_alternants +\n (effectif_entreprise >= 2000) * (ratio_alternants < .01) * taux.plus_2000_moins_1pc_alternants +\n (.01 <= ratio_alternants) * (ratio_alternants < .02) * taux.entre_1_2_pc_alternants +\n (.02 <= ratio_alternants) * (ratio_alternants < .03) * taux.entre_2_3_pc_alternants +\n (.03 <= ratio_alternants) * (ratio_alternants < .04) * taux.entre_3_4_pc_alternants +\n (.04 <= ratio_alternants) * (ratio_alternants < .05) * taux.entre_4_5_pc_alternants\n )\n else:\n taux_contribution = (effectif_entreprise >= 250) * taux.plus_de_250\n # TODO: gestion de la place dans le XML pb avec l'arbre des param\u00e8tres / preprocessing\n return period, - taux_contribution * assiette_cotisations_sociales * redevable_taxe_apprentissage\n", "input_variables": ["ratio_alternants", "assiette_cotisations_sociales", "redevable_taxe_apprentissage", "effectif_entreprise"], "parameters": ["cotsoc.contribution_supplementaire_apprentissage.entre_2_3_pc_alternants", "cotsoc.contribution_supplementaire_apprentissage.plus_2000_moins_1pc_alternants", "cotsoc.contribution_supplementaire_apprentissage.entre_3_4_pc_alternants", "cotsoc.contribution_supplementaire_apprentissage.moins_2000_moins_1pc_alternants", "cotsoc.contribution_supplementaire_apprentissage.entre_4_5_pc_alternants", "cotsoc.contribution_supplementaire_apprentissage.plus_de_250", "cotsoc.contribution_supplementaire_apprentissage.entre_1_2_pc_alternants"]}, "stop_instant": null, "start_instant": "2010-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation sociales employeur main d'oeuvre", "line_number": 104, "module": "taxes_salaires_main_oeuvre", "name": "cotisations_employeur_main_d_oeuvre", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 110, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n period = period\n conge_individuel_formation_cdd = simulation.calculate('conge_individuel_formation_cdd', period)\n contribution_developpement_apprentissage = simulation.calculate(\n 'contribution_developpement_apprentissage', period)\n contribution_supplementaire_apprentissage = simulation.calculate(\n 'contribution_supplementaire_apprentissage', period)\n financement_organisations_syndicales = simulation.calculate('financement_organisations_syndicales', period)\n fnal = simulation.calculate('fnal', period)\n formation_professionnelle = simulation.calculate('formation_professionnelle', period)\n participation_effort_construction = simulation.calculate_add('participation_effort_construction', period)\n prevoyance_obligatoire_cadre = simulation.calculate_add('prevoyance_obligatoire_cadre', period)\n complementaire_sante_employeur = simulation.calculate_add('complementaire_sante_employeur', period)\n\n taxe_apprentissage = simulation.calculate_add('taxe_apprentissage', period)\n versement_transport = simulation.calculate_add('versement_transport', period)\n\n cotisations_employeur_main_d_oeuvre = (\n conge_individuel_formation_cdd +\n contribution_developpement_apprentissage +\n contribution_supplementaire_apprentissage +\n financement_organisations_syndicales +\n fnal +\n formation_professionnelle +\n participation_effort_construction +\n prevoyance_obligatoire_cadre +\n complementaire_sante_employeur +\n taxe_apprentissage +\n versement_transport\n )\n return period, cotisations_employeur_main_d_oeuvre\n", "input_variables": ["versement_transport", "formation_professionnelle", "prevoyance_obligatoire_cadre", "contribution_supplementaire_apprentissage", "complementaire_sante_employeur", "conge_individuel_formation_cdd", "taxe_apprentissage", "financement_organisations_syndicales", "participation_effort_construction", "fnal", "contribution_developpement_apprentissage"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution patronale au financement des organisations syndicales", "line_number": 188, "module": "taxes_salaires_main_oeuvre", "name": "financement_organisations_syndicales", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 193, "module": "taxes_salaires_main_oeuvre", "source": "@dated_function(date(2015, 1, 1))\ndef function(self, simulation, period):\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'financement_organisations_syndicales',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation * or_(categorie_salarie <= 1, categorie_salarie == 6)\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "assiette_cotisations_sociales", "categorie_salarie"]}, "stop_instant": null, "start_instant": "2015-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation fonds national action logement (FNAL)", "line_number": 143, "module": "taxes_salaires_main_oeuvre", "name": "fnal", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 148, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n fnal_tranche_a = simulation.calculate('fnal_tranche_a', period)\n fnal_tranche_a_plus_20 = simulation.calculate('fnal_tranche_a_plus_20', period)\n return period, fnal_tranche_a + fnal_tranche_a_plus_20\n", "input_variables": ["fnal_tranche_a_plus_20", "fnal_tranche_a"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation fonds national action logement (FNAL tout employeur)", "line_number": 154, "module": "taxes_salaires_main_oeuvre", "name": "fnal_tranche_a", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 159, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n taille_entreprise = simulation.calculate('taille_entreprise', period)\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'fnal1',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation * (taille_entreprise <= 2)\n", "input_variables": ["taille_entreprise", "plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Fonds national action logement (FNAL, employeur avec plus de 20 salari\u00e9s)", "line_number": 171, "module": "taxes_salaires_main_oeuvre", "name": "fnal_tranche_a_plus_20", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 176, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n taille_entreprise = simulation.calculate('taille_entreprise', period)\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'fnal2',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation * (taille_entreprise > 2)\n", "input_variables": ["taille_entreprise", "plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Formation professionnelle", "line_number": 206, "module": "taxes_salaires_main_oeuvre", "name": "formation_professionnelle", "url": "https://www.service-public.fr/professionnels-entreprises/vosdroits/F22570", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 212, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n taille_entreprise = simulation.calculate('taille_entreprise', period)\n cotisation_0_9 = (taille_entreprise == 1) * apply_bareme(\n simulation,\n period, cotisation_type = 'employeur',\n bareme_name = 'formprof_09',\n variable_name = self.__class__.__name__,\n )\n cotisation_10_19 = (taille_entreprise == 2) * apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'formprof_1019',\n variable_name = self.__class__.__name__,\n )\n cotisation_20 = (taille_entreprise > 2) * apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'formprof_20',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation_0_9 + cotisation_10_19 + cotisation_20\n", "input_variables": ["taille_entreprise", "plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Participation \u00e0 l'effort de construction", "line_number": 237, "module": "taxes_salaires_main_oeuvre", "name": "participation_effort_construction", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 242, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n\n bareme = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'construction',\n variable_name = self.__class__.__name__,\n )\n\n # TODO : seuil pass\u00e9 de 10 \u00e0 20 avec l'Ordonnance n\u00b0 2005-895 du 2 ao\u00fbt 2005\n\n cotisation = (\n bareme * (effectif_entreprise >= 20) +\n self.zeros() * (effectif_entreprise < 20)\n )\n\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "categorie_salarie", "cotisation_sociale_mode_recouvrement", "effectif_entreprise", "assiette_cotisations_sociales"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Entreprise redevable de la taxe d'apprentissage", "line_number": 45, "module": "taxes_salaires_main_oeuvre", "name": "redevable_taxe_apprentissage", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 50, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n # L'association a but non lucratif ne paie pas d'IS de droit commun article 206 du Code g\u00e9n\u00e9ral des imp\u00f4ts\n # -> pas de taxe d'apprentissage\n association = simulation.calculate('entreprise_est_association_non_lucrative', period)\n\n return period, not_(association)\n", "input_variables": ["entreprise_est_association_non_lucrative"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taxe d'apprentissage (employeur, entreprise redevable de la taxe d'apprentissage uniquement)", "line_number": 264, "module": "taxes_salaires_main_oeuvre", "name": "taxe_apprentissage", "url": "https://www.service-public.fr/professionnels-entreprises/vosdroits/F22574", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 270, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n redevable_taxe_apprentissage = simulation.calculate('redevable_taxe_apprentissage', period)\n\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'apprentissage',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation * redevable_taxe_apprentissage\n", "input_variables": ["plafond_securite_sociale", "categorie_salarie", "cotisation_sociale_mode_recouvrement", "assiette_cotisations_sociales", "redevable_taxe_apprentissage"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taxe sur les salaires", "line_number": 284, "module": "taxes_salaires_main_oeuvre", "name": "taxe_salaires", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 291, "module": "taxes_salaires_main_oeuvre", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n assujettie_taxe_salaires = simulation.calculate('assujettie_taxe_salaires', period)\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n prevoyance_obligatoire_cadre = simulation.calculate('prevoyance_obligatoire_cadre', period)\n complementaire_sante_employeur = simulation.calculate('complementaire_sante_employeur', period)\n prise_en_charge_employeur_prevoyance_complementaire = simulation.calculate_add(\n 'prise_en_charge_employeur_prevoyance_complementaire', period)\n\n law = simulation.legislation_at(period.start)\n entreprise_est_association_non_lucrative = \\\n simulation.calculate('entreprise_est_association_non_lucrative', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n\n # impots.gouv.fr\n # La taxe est due notamment par les : [...] organismes sans but lucratif\n assujettissement = assujettie_taxe_salaires + entreprise_est_association_non_lucrative\n\n parametres = law.cotsoc.taxes_sal\n bareme = parametres.taux_maj\n base = assiette_cotisations_sociales - prevoyance_obligatoire_cadre\n base = assiette_cotisations_sociales + (\n - prevoyance_obligatoire_cadre + prise_en_charge_employeur_prevoyance_complementaire\n - complementaire_sante_employeur\n )\n\n # TODO: exon\u00e9rations apprentis\n # TODO: modify if DOM\n\n cotisation_individuelle = (\n bareme.calc(\n base,\n factor = 1 / 12,\n round_base_decimals = 2\n ) +\n round_(parametres.taux.metro * base, 2)\n )\n\n # Une franchise et une d\u00e9c\u00f4te s'appliquent \u00e0 cette taxe\n # Etant donn\u00e9 que nous n'avons pas la distribution de salaires de l'entreprise,\n # elles sont estim\u00e9es en prenant l'effectif de l'entreprise et\n # consid\u00e9rant que l'unique salari\u00e9 de la simulation est la moyenne.\n # http://www.impots.gouv.fr/portal/dgi/public/popup?typePage=cpr02&espId=2&docOid=documentstandard_1845\n estimation = cotisation_individuelle * effectif_entreprise * 12\n conditions = [estimation < parametres.franchise, estimation <= parametres.decote_montant, estimation > parametres.decote_montant]\n results = [0, estimation - (parametres.decote_montant - estimation) * parametres.decote_taux, estimation]\n\n estimation_reduite = np.select(conditions, results)\n\n # Abattement sp\u00e9cial de taxe sur les salaires\n # Les associations \u00e0 but non lucratif b\u00e9n\u00e9ficient d'un abattement important\n estimation_abattue_negative = estimation_reduite - parametres.abattement_special\n estimation_abattue = switch(\n entreprise_est_association_non_lucrative,\n {\n 0: estimation_reduite,\n 1: (estimation_abattue_negative >= 0) * estimation_abattue_negative,\n }\n )\n\n with np.errstate(invalid='ignore'):\n cotisation = switch(effectif_entreprise == 0, {\n True: self.zeros(),\n False: estimation_abattue / effectif_entreprise / 12\n })\n\n return period, - cotisation * assujettissement\n", "input_variables": ["effectif_entreprise", "prevoyance_obligatoire_cadre", "assujettie_taxe_salaires", "entreprise_est_association_non_lucrative", "assiette_cotisations_sociales", "complementaire_sante_employeur", "prise_en_charge_employeur_prevoyance_complementaire"], "parameters": ["cotsoc.taxes_sal.taux_maj", "cotsoc.taxes_sal.decote_montant", "cotsoc.taxes_sal.franchise", "cotsoc.taxes_sal.decote_taux", "cotsoc.taxes_sal.taux.metro"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations employeur accident du travail et maladie professionelle", "line_number": 140, "module": "travail_prive", "name": "accident_du_travail", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 145, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n assiette_cotisations_sociales = simulation.calculate(\n 'assiette_cotisations_sociales', period)\n taux_accident_travail = simulation.calculate('taux_accident_travail', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n assujetti = categorie_salarie <= 1 # TODO: ajouter contractuel du public salari\u00e9 de moins d'un an ou \u00e0 temps partiel\n return period, - assiette_cotisations_sociales * taux_accident_travail * assujetti\n", "input_variables": ["taux_accident_travail", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation retraite AGFF tranche A (employeur)", "line_number": 173, "module": "travail_prive", "name": "agff_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 179, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n assiette_cotisations_sociales = simulation.calculate(\n 'assiette_cotisations_sociales', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n\n law = simulation.legislation_at(period.start)\n\n cotisation_non_cadre = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = law.cotsoc.cotisations_employeur,\n bareme_name = \"agffnc\",\n base = assiette_cotisations_sociales,\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n\n cotisation_cadre = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = law.cotsoc.cotisations_employeur,\n bareme_name = \"agffc\",\n base = assiette_cotisations_sociales,\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n return period, cotisation_cadre + cotisation_non_cadre\n", "input_variables": ["plafond_securite_sociale", "categorie_salarie", "assiette_cotisations_sociales"], "parameters": ["cotsoc.cotisations_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation retraite AGFF tranche A (salari\u00e9)", "line_number": 155, "module": "travail_prive", "name": "agff_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 161, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"salarie\",\n bareme_name = \"agff\",\n variable_name = self.__class__.__name__\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation AGIRC tranche B (employeur)", "line_number": 296, "module": "travail_prive", "name": "agirc_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 301, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation, period,\n cotisation_type = \"employeur\",\n bareme_name = \"agirc\",\n variable_name = self.__class__.__name__\n )\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n return period, cotisation * (categorie_salarie == 1)\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette de la cotisation AGIRC pour la garantie minimale de points (GMP, salari\u00e9)", "line_number": 206, "module": "travail_prive", "name": "agirc_gmp_assiette", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 212, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n salaire_charniere = simulation.legislation_at(period.start).cotsoc.agirc_gmp.salaire_charniere # annuel\n assiette = max_(\n (salaire_charniere / 12 - assiette_cotisations_sociales) * (assiette_cotisations_sociales > 0),\n 0,\n )\n return period, assiette\n", "input_variables": ["assiette_cotisations_sociales"], "parameters": ["cotsoc.agirc_gmp.salaire_charniere"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation AGIRC pour la garantie minimale de points (GMP, employeur)", "line_number": 250, "module": "travail_prive", "name": "agirc_gmp_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 256, "module": "travail_prive", "source": "def function(self, simulation, period):\n\n period = period.start.period(u'month').offset('first-of')\n agirc_employeur = simulation.calculate('agirc_employeur', period)\n agirc_gmp_assiette = simulation.calculate('agirc_gmp_assiette', period)\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n law = simulation.legislation_at(period.start).cotsoc.agirc_gmp\n cotisation_forfaitaire = law.cotisation_employeur\n taux = simulation.legislation_at(period.start).cotsoc.cotisations_employeur['prive_cadre']['agirc'].rates[1]\n\n sous_plafond_securite_sociale = (\n (assiette_cotisations_sociales <= plafond_securite_sociale) & (assiette_cotisations_sociales > 0)\n )\n cotisation = - (\n sous_plafond_securite_sociale * cotisation_forfaitaire +\n not_(sous_plafond_securite_sociale) * agirc_gmp_assiette * taux\n )\n return period, min_((cotisation - agirc_employeur) * (categorie_salarie == 1), 0) # cotisation are negative\n", "input_variables": ["agirc_employeur", "agirc_gmp_assiette", "categorie_salarie", "assiette_cotisations_sociales"], "parameters": ["cotsoc.agirc_gmp.cotisation_employeur", "cotsoc.cotisations_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation AGIRC pour la garantie minimale de points (GMP, salari\u00e9)", "line_number": 223, "module": "travail_prive", "name": "agirc_gmp_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 229, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n agirc_gmp_assiette = simulation.calculate('agirc_gmp_assiette', period)\n agirc_salarie = simulation.calculate('agirc_salarie', period)\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n law = simulation.legislation_at(period.start).cotsoc.agirc_gmp\n cotisation_forfaitaire = law.cotisation_salarie\n taux = simulation.legislation_at(period.start).cotsoc.cotisations_salarie.prive_cadre.agirc.rates[1]\n\n sous_plafond_securite_sociale = (\n (assiette_cotisations_sociales <= plafond_securite_sociale) & (assiette_cotisations_sociales > 0)\n )\n cotisation = - (\n sous_plafond_securite_sociale * cotisation_forfaitaire +\n not_(sous_plafond_securite_sociale) * agirc_gmp_assiette * taux\n )\n return period, min_((cotisation - agirc_salarie) * (categorie_salarie == 1), 0) # cotisation are negative\n", "input_variables": ["agirc_gmp_assiette", "categorie_salarie", "assiette_cotisations_sociales", "agirc_salarie"], "parameters": ["cotsoc.agirc_gmp.cotisation_salarie", "cotsoc.cotisations_salarie.prive_cadre.agirc"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation AGIRC tranche B (salari\u00e9)", "line_number": 278, "module": "travail_prive", "name": "agirc_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 283, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"salarie\",\n bareme_name = \"agirc\",\n variable_name = self.__class__.__name__\n )\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n return period, cotisation * (categorie_salarie == 1)\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution \u00e0 l'association pour la gestion du r\u00e9gime de garantie des cr\u00e9ances des salari\u00e9s (AGS, employeur)", "line_number": 312, "module": "travail_prive", "name": "ags", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 317, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation, period,\n cotisation_type = \"employeur\",\n bareme_name = \"chomfg\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations Agenece pour l'emploi des cadres (APEC, employeur)", "line_number": 344, "module": "travail_prive", "name": "apec_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 349, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"employeur\",\n bareme_name = \"apec\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation # TODO: check public notamment contractuel\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations agence pour l'emploi des cadres (APEC, salari\u00e9)", "line_number": 327, "module": "travail_prive", "name": "apec_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 332, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n cotisation = apply_bareme(\n simulation, period,\n cotisation_type = \"salarie\",\n bareme_name = \"apec\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation * (categorie_salarie == 1) # TODO: check public notamment contractuel\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "assiette_cotisations_sociales", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation ARRCO tranche 1 (employeur)", "line_number": 390, "module": "travail_prive", "name": "arrco_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 396, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation_minimale = apply_bareme(\n simulation,\n period,\n cotisation_type = \"employeur\",\n bareme_name = \"arrco\",\n variable_name = self.__class__.__name__,\n )\n arrco_tranche_a_taux_employeur = simulation.calculate('arrco_tranche_a_taux_employeur', period)\n assiette_cotisations_sociales = simulation.calculate_add('assiette_cotisations_sociales', period)\n plafond_securite_sociale = simulation.calculate_add('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n # cas o\u00f9 l'entreprise applique un taux sp\u00e9cifique\n cotisation_entreprise = - (\n min_(max_(assiette_cotisations_sociales, 0), plafond_securite_sociale) *\n arrco_tranche_a_taux_employeur\n )\n return period, (\n cotisation_minimale * (arrco_tranche_a_taux_employeur == 0) + cotisation_entreprise\n ) * (categorie_salarie <= 1)\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation ARRCO tranche 1 (salari\u00e9)", "line_number": 360, "module": "travail_prive", "name": "arrco_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 366, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation_minimale = apply_bareme(\n simulation,\n period,\n cotisation_type = \"salarie\",\n bareme_name = \"arrco\",\n variable_name = self.__class__.__name__,\n )\n arrco_tranche_a_taux_salarie = simulation.calculate('arrco_tranche_a_taux_salarie', period)\n assiette_cotisations_sociales = simulation.calculate_add('assiette_cotisations_sociales', period)\n plafond_securite_sociale = simulation.calculate_add('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n # cas o\u00f9 l'entreprise applique un taux sp\u00e9cifique\n cotisation_entreprise = - (\n min_(max_(assiette_cotisations_sociales, 0), plafond_securite_sociale) *\n arrco_tranche_a_taux_salarie\n )\n return period, (\n cotisation_minimale * (arrco_tranche_a_taux_salarie == 0) + cotisation_entreprise\n ) * (categorie_salarie <= 1)\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette des cotisations sociales des salaries", "line_number": 24, "module": "travail_prive", "name": "assiette_cotisations_sociales", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 29, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period(u'month')\n assiette_cotisations_sociales_prive = simulation.calculate('assiette_cotisations_sociales_prive', period)\n assiette_cotisations_sociales_public = simulation.calculate('assiette_cotisations_sociales_public', period)\n stage_gratification_reintegration = simulation.calculate('stage_gratification_reintegration', period)\n return period, (\n assiette_cotisations_sociales_prive +\n assiette_cotisations_sociales_public +\n stage_gratification_reintegration\n )\n", "input_variables": ["stage_gratification_reintegration", "assiette_cotisations_sociales_prive", "assiette_cotisations_sociales_public"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette des cotisations sociales des salaries du prive", "line_number": 41, "module": "travail_prive", "name": "assiette_cotisations_sociales_prive", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 46, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period(u'month')\n avantage_en_nature = simulation.calculate('avantage_en_nature', period)\n hsup = simulation.calculate('hsup', period)\n indemnites_compensatrices_conges_payes = simulation.calculate('indemnites_compensatrices_conges_payes', period)\n indemnite_residence = simulation.calculate('indemnite_residence', period)\n primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n primes_salaires = simulation.calculate('primes_salaires', period)\n indemnite_fin_contrat = simulation.calculate('indemnite_fin_contrat', period)\n reintegration_titre_restaurant_employeur = simulation.calculate(\n \"reintegration_titre_restaurant_employeur\", period\n )\n remuneration_apprenti = simulation.calculate('remuneration_apprenti', period)\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n assiette = (\n salaire_de_base +\n primes_salaires +\n avantage_en_nature +\n hsup +\n indemnites_compensatrices_conges_payes +\n remuneration_apprenti +\n (categorie_salarie == CAT['public_non_titulaire']) * (indemnite_residence + primes_fonction_publique) +\n reintegration_titre_restaurant_employeur + indemnite_fin_contrat\n )\n return period, assiette * (assiette > 0)\n", "input_variables": ["salaire_de_base", "hsup", "indemnites_compensatrices_conges_payes", "remuneration_apprenti", "avantage_en_nature", "primes_salaires", "indemnite_residence", "primes_fonction_publique", "indemnite_fin_contrat", "categorie_salarie", "reintegration_titre_restaurant_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation ch\u00f4mage tranche A (employeur)", "line_number": 436, "module": "travail_prive", "name": "chomage_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 441, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"employeur\",\n bareme_name = \"assedic\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation ch\u00f4mage tranche A (salari\u00e9)", "line_number": 419, "module": "travail_prive", "name": "chomage_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 424, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"salarie\",\n bareme_name = \"assedic\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Couverture compl\u00e9mentaire sant\u00e9 collective d'entreprise - part employeur", "line_number": 651, "module": "travail_prive", "name": "complementaire_sante_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 656, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n complementaire_sante_taux_employeur = simulation.calculate(\n 'complementaire_sante_taux_employeur', period)\n complementaire_sante_montant = simulation.calculate('complementaire_sante_montant', period)\n\n cotisation = - complementaire_sante_taux_employeur * complementaire_sante_montant\n return period, cotisation\n", "input_variables": ["complementaire_sante_montant", "complementaire_sante_taux_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Couverture compl\u00e9mentaire sant\u00e9 collective d'entreprise - part salari\u00e9", "line_number": 666, "module": "travail_prive", "name": "complementaire_sante_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 671, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n complementaire_sante_taux_employeur = simulation.calculate(\n 'complementaire_sante_taux_employeur', period)\n complementaire_sante_montant = simulation.calculate('complementaire_sante_montant', period)\n\n cotisation = - (1 - complementaire_sante_taux_employeur) * complementaire_sante_montant\n return period, cotisation\n", "input_variables": ["complementaire_sante_montant", "complementaire_sante_taux_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution solidarit\u00e9 autonomie (employeur)", "line_number": 452, "module": "travail_prive", "name": "contribution_solidarite_autonomie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 457, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = \"employeur\",\n bareme_name = \"csa\",\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation exceptionnelle temporaire (employeur)", "line_number": 484, "module": "travail_prive", "name": "cotisation_exceptionnelle_temporaire_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 489, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'cet',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation_exceptionnelle_temporaire (salarie)", "line_number": 468, "module": "travail_prive", "name": "cotisation_exceptionnelle_temporaire_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 473, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'salarie',\n bareme_name = 'cet',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation famille (employeur)", "line_number": 500, "module": "travail_prive", "name": "famille", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 505, "module": "travail_prive", "source": "def function(self, simulation, period):\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'famille',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9 de fin de contrat", "line_number": 74, "module": "travail_prive", "name": "indemnite_fin_contrat", "url": "https://www.service-public.fr/particuliers/vosdroits/F40", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 80, "module": "travail_prive", "source": "def function(self, simulation, period):\n month = period.start.offset('first-of', 'month').period(u'month')\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period)\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n apprenti = simulation.calculate('apprenti', month)\n\n # Un grand nombre de conditions peuvent invalider cette indemnit\u00e9, voir le lien ci-dessus.\n # A ajouter au fur et \u00e0 mesure\n # Pour l'instant, cette variable d'entr\u00e9e peut les remplacer\n # Elle est cependant fix\u00e9e \u00e0 False par d\u00e9faut\n indemnite_fin_contrat_due = simulation.calculate('indemnite_fin_contrat_due', period)\n\n taux = simulation.legislation_at(period.start).cotsoc.indemnite_fin_contrat.taux\n\n result = (\n # CDD\n (contrat_de_travail_duree == 1) *\n # non fonction publique\n (\n (categorie_salarie == 0) +\n (categorie_salarie == 1)\n ) *\n not_(apprenti) *\n indemnite_fin_contrat_due *\n # 10% du brut\n taux * salaire_de_base\n )\n return period, result\n", "input_variables": ["apprenti", "indemnite_fin_contrat_due", "salaire_de_base", "contrat_de_travail_duree", "categorie_salarie"], "parameters": ["cotsoc.indemnite_fin_contrat.taux"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Heures suppl\u00e9mentaires compt\u00e9es n\u00e9gativement", "line_number": 569, "module": "travail_prive", "name": "mhsup", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 575, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n hsup = simulation.calculate('hsup', period)\n\n return period, -hsup\n", "input_variables": ["hsup"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation maladie (employeur)", "line_number": 533, "module": "travail_prive", "name": "mmid_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 538, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'maladie',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation maladie (salari\u00e9)", "line_number": 516, "module": "travail_prive", "name": "mmid_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 521, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'salarie',\n bareme_name = 'maladie',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation maladie (employeur)", "line_number": 551, "module": "travail_prive", "name": "mmida_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 556, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'employeur',\n bareme_name = 'maladie',\n variable_name = self.__class__.__name__,\n )\n contribution_solidarite_autonomie = simulation.calculate('contribution_solidarite_autonomie', period)\n return period, cotisation + contribution_solidarite_autonomie\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Plafond de la securite sociale", "line_number": 582, "module": "travail_prive", "name": "plafond_securite_sociale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 588, "module": "travail_prive", "source": "def function(self, simulation, period):\n\n period = period.start.period(u'month').offset('first-of')\n plafond_temps_plein = simulation.legislation_at(period.start).cotsoc.gen.plafond_securite_sociale\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n contrat_de_travail = simulation.calculate('contrat_de_travail', period)\n heures_remunerees_volume = simulation.calculate('heures_remunerees_volume', period)\n forfait_jours_remuneres_volume = simulation.calculate('forfait_jours_remuneres_volume', period)\n heures_duree_collective_entreprise = simulation.calculate('heures_duree_collective_entreprise', period)\n\n # TODO : handle contrat_de_travail > 1\n\n # 1) Proratisation pour temps partiel\n\n duree_legale_mensuelle = 35 * 52 / 12 # ~151,67\n heures_temps_plein = switch(heures_duree_collective_entreprise, {0: duree_legale_mensuelle, 1: heures_duree_collective_entreprise})\n\n plafond = switch(\n contrat_de_travail,\n { # temps plein\n 0: plafond_temps_plein,\n # temps partiel\n 1: plafond_temps_plein * (heures_remunerees_volume / heures_temps_plein),\n # forfait jour\n 5: plafond_temps_plein * (forfait_jours_remuneres_volume / 218)\n })\n\n # 2) Proratisation pour mois incomplet selon la m\u00e9thode des 30\u00e8mes\n\n # calcul du nombre de jours calendaires de pr\u00e9sence du salari\u00e9\n nombre_jours_calendaires = simulation.calculate('nombre_jours_calendaires', period)\n\n # Pour les salari\u00e9s entr\u00e9s ou sortis en cours de mois,\n # le plafond applicable est \u00e9gal \u00e0 autant de trenti\u00e8mes du plafond mensuel\n # que le salari\u00e9 a \u00e9t\u00e9 pr\u00e9sent de jours calendaires. Source urssaf.fr \"L\u2019assiette maximale\"\n\n plafond = plafond * (min_(nombre_jours_calendaires, 30) / 30)\n\n return period, plafond\n", "input_variables": ["contrat_de_travail", "salaire_de_base", "forfait_jours_remuneres_volume", "heures_duree_collective_entreprise", "heures_remunerees_volume"], "parameters": ["cotsoc.gen.plafond_securite_sociale"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation de pr\u00e9voyance pour les cadres et assimil\u00e9s", "line_number": 629, "module": "travail_prive", "name": "prevoyance_obligatoire_cadre", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 635, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n prevoyance_obligatoire_cadre_taux_employeur = simulation.calculate(\n 'prevoyance_obligatoire_cadre_taux_employeur', period)\n\n cotisation = - (\n (categorie_salarie == CAT['prive_cadre']) *\n min_(assiette_cotisations_sociales, plafond_securite_sociale) *\n prevoyance_obligatoire_cadre_taux_employeur\n )\n return period, cotisation\n", "input_variables": ["prevoyance_obligatoire_cadre_taux_employeur", "plafond_securite_sociale", "assiette_cotisations_sociales", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Prise en charge de l'employeur des d\u00e9penses de cantine et des titres restaurants non exon\u00e9r\u00e9s de charges sociales", "line_number": 110, "module": "travail_prive", "name": "reintegration_titre_restaurant_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 115, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period # TODO\n valeur_unitaire = simulation.calculate(\"titre_restaurant_valeur_unitaire\", period)\n volume = simulation.calculate(\"titre_restaurant_volume\", period)\n taux_employeur = simulation.calculate('titre_restaurant_taux_employeur', period)\n cantines_titres_restaurants = simulation.legislation_at(\n period.start).cotsoc.assiette.cantines_titres_restaurants\n\n taux_minimum_exoneration = cantines_titres_restaurants.taux_minimum_exoneration\n taux_maximum_exoneration = cantines_titres_restaurants.taux_maximum_exoneration\n seuil_prix_titre = cantines_titres_restaurants.seuil_prix_titre\n condition_exoneration_taux = (\n (taux_minimum_exoneration <= taux_employeur) *\n (taux_maximum_exoneration >= taux_employeur)\n )\n montant_reintegration = volume * (\n condition_exoneration_taux * max_(valeur_unitaire * taux_employeur - seuil_prix_titre, 0) +\n not_(condition_exoneration_taux) * valeur_unitaire * taux_employeur\n )\n return period, montant_reintegration\n", "input_variables": ["titre_restaurant_valeur_unitaire", "titre_restaurant_volume", "titre_restaurant_taux_employeur"], "parameters": ["cotsoc.assiette.cantines_titres_restaurants.taux_maximum_exoneration", "cotsoc.assiette.cantines_titres_restaurants.taux_minimum_exoneration", "cotsoc.assiette.cantines_titres_restaurants.seuil_prix_titre"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Cat\u00e9gorie de taille d'entreprise", "line_number": 681, "module": "travail_prive", "name": "taille_entreprise", "url": "http://www.insee.fr/fr/themes/document.asp?ref_id=ip1321", "labels": {"0": "Non pertinent", "1": "Moins de 10 salari\u00e9s", "2": "De 10 \u00e0 19 salari\u00e9s", "3": "De 20 \u00e0 249 salari\u00e9s", "4": "Plus de 250 salari\u00e9s"}, "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 698, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n\n taille_entreprise = (\n (effectif_entreprise > 0).astype(int16) +\n (effectif_entreprise > 9).astype(int16) +\n (effectif_entreprise > 19).astype(int16) +\n (effectif_entreprise > 249).astype(int16)\n )\n return period, taille_entreprise\n", "input_variables": ["effectif_entreprise"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Approximation du taux accident \u00e0 partir de l'exposition au risque donn\u00e9e", "line_number": 711, "module": "travail_prive", "name": "taux_accident_travail", "start": "2012-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 717, "module": "travail_prive", "source": "def function(self, simulation, period):\n period_extract = period.start.period(u'month').offset('first-of')\n exposition_accident = simulation.calculate('exposition_accident', period_extract)\n accident = simulation.legislation_at(period_extract.start).cotsoc.accident\n\n return period, (exposition_accident == 0) * accident.faible + (exposition_accident == 1) * accident.moyen \\\n + (exposition_accident == 2) * accident.eleve + (exposition_accident == 3) * accident.treseleve\n", "input_variables": ["exposition_accident"], "parameters": ["cotsoc.accident.moyen", "cotsoc.accident.eleve", "cotsoc.accident.treseleve", "cotsoc.accident.faible"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation vieillesse d\u00e9plafonn\u00e9e", "line_number": 759, "module": "travail_prive", "name": "vieillesse_deplafonnee_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 764, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period, cotisation_type = 'employeur',\n bareme_name = 'vieillesse_deplafonnee',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation vieillesse d\u00e9plafonn\u00e9e (salari\u00e9)", "line_number": 726, "module": "travail_prive", "name": "vieillesse_deplafonnee_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 731, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period,\n cotisation_type = 'salarie',\n bareme_name = 'vieillesse_deplafonnee',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation vieillesse plafonn\u00e9e (employeur)", "line_number": 775, "module": "travail_prive", "name": "vieillesse_plafonnee_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 780, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation,\n period, cotisation_type = 'employeur',\n bareme_name = 'vieillesse_plafonnee',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation vieillesse plafonn\u00e9e (salari\u00e9)", "line_number": 743, "module": "travail_prive", "name": "vieillesse_plafonnee_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 748, "module": "travail_prive", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n cotisation = apply_bareme(\n simulation, period,\n cotisation_type = 'salarie',\n bareme_name = 'vieillesse',\n variable_name = self.__class__.__name__,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "cotisation_sociale_mode_recouvrement", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'entreprise est situ\u00e9e danns un bassin d'emploi \u00e0 redynamiser (BER)", "line_number": 450, "module": "exonerations", "name": "bassin_emploi_redynamiser", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 458, "module": "exonerations", "source": "def function(self, simulation, period):\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n\n return period, (effectif_entreprise >= 1) * False\n", "input_variables": ["effectif_entreprise"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exon\u00e9rations de cotisations employeur d\u00e9pendant d'une zone g\u00e9ographique", "line_number": 17, "module": "exonerations", "name": "exoneration_cotisations_employeur_geographiques", "url": "https://www.apce.com/pid815/aides-au-recrutement.html?espace=1&tp=1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 23, "module": "exonerations", "source": "def function(self, simulation, period):\n exoneration_cotisations_employeur_zfu = simulation.calculate_add('exoneration_cotisations_employeur_zfu',\n period)\n exoneration_cotisations_employeur_zrd = simulation.calculate_add('exoneration_cotisations_employeur_zrd',\n period)\n exoneration_cotisations_employeur_zrr = simulation.calculate_add('exoneration_cotisations_employeur_zrr',\n period)\n\n exonerations_geographiques = (exoneration_cotisations_employeur_zfu + exoneration_cotisations_employeur_zrd +\n exoneration_cotisations_employeur_zrr)\n\n return period, exonerations_geographiques\n", "input_variables": ["exoneration_cotisations_employeur_zrd", "exoneration_cotisations_employeur_zrr", "exoneration_cotisations_employeur_zfu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations de cotisations employeur pour une jeune entreprise innovante", "line_number": 37, "module": "exonerations", "name": "exoneration_cotisations_employeur_jei", "url": "http://www.apce.com/pid1653/jeune-entreprise-innovante.html?pid=1653&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 43, "module": "exonerations", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_allegement = simulation.calculate('assiette_allegement', period)\n jei_date_demande = simulation.calculate('jei_date_demande', period)\n jeune_entreprise_innovante = simulation.calculate('jeune_entreprise_innovante', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n smic_proratise = simulation.calculate('smic_proratise', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n bareme_by_type_sal_name = simulation.legislation_at(period.start).cotsoc.cotisations_employeur\n bareme_names = ['vieillesse_deplafonnee', 'vieillesse_plafonnee', 'maladie', 'famille']\n\n exoneration = smic_proratise * 0.0\n for bareme_name in bareme_names:\n exoneration += apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = bareme_by_type_sal_name,\n bareme_name = bareme_name,\n categorie_salarie = categorie_salarie,\n base = min_(assiette_allegement, 4.5 * smic_proratise),\n plafond_securite_sociale = plafond_securite_sociale,\n round_base_decimals = 2,\n )\n\n exoneration_relative_year_passed = exoneration_relative_year(period, jei_date_demande)\n rate_by_year_passed = {\n 0: 1,\n 1: 1,\n 2: 1,\n 3: 1,\n 4: 1,\n 5: 1,\n 6: 1,\n 7: 1,\n } # TODO: move to legislation parameters file\n for year_passed, rate in rate_by_year_passed.iteritems():\n condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y')\n if condition_on_year_passed.any():\n exoneration[condition_on_year_passed] = rate * exoneration\n\n return period, - exoneration * jeune_entreprise_innovante\n", "input_variables": ["jei_date_demande", "jeune_entreprise_innovante", "smic_proratise", "assiette_allegement", "plafond_securite_sociale", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations de cotisations employeur pour l'embauche en zone franche urbaine (ZFU)", "line_number": 85, "module": "exonerations", "name": "exoneration_cotisations_employeur_zfu", "url": "http://www.apce.com/pid553/exoneration-dans-les-zfu.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 143, "module": "exonerations", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_allegement = simulation.calculate('assiette_allegement', period)\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period) # 0: CDI, 1:CDD\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n entreprise_chiffre_affaire = simulation.calculate('entreprise_chiffre_affaire', period)\n entreprise_bilan = simulation.calculate('entreprise_bilan', period)\n taux_versement_transport = simulation.calculate('taux_versement_transport', period)\n\n # TODO: move to legislation parameters file\n entreprise_eligible = (entreprise_chiffre_affaire <= 1e7) | (entreprise_bilan <= 1e7)\n\n smic_proratise = simulation.calculate('smic_proratise', period)\n zone_franche_urbaine = simulation.calculate('zone_franche_urbaine', period)\n\n duree_cdd_eligible = (contrat_de_travail_fin > contrat_de_travail_debut + timedelta64(365, 'D'))\n # TODO: move to legislation parameters file\n contrat_de_travail_eligible = (contrat_de_travail_debut <= datetime64(\"2014-12-31\")) * (\n (contrat_de_travail_duree == 0) + (\n (contrat_de_travail_duree == 1) * (duree_cdd_eligible)\n )\n )\n # TODO: move to legislation parameters file\n\n eligible = (\n contrat_de_travail_eligible *\n (effectif_entreprise <= 50) *\n zone_franche_urbaine *\n entreprise_eligible\n )\n bareme_by_name = simulation.legislation_at(period.start).cotsoc.cotisations_employeur['prive_non_cadre']\n taux_max = (\n bareme_by_name['vieillesse_deplafonnee'].rates[0] +\n bareme_by_name['vieillesse_plafonnee'].rates[0] +\n bareme_by_name['maladie'].rates[0] +\n bareme_by_name['famille'].rates[0] +\n bareme_by_name['fnal1'].rates[0] +\n bareme_by_name['fnal2'].rates[0] * (effectif_entreprise >= 20) +\n taux_versement_transport\n )\n # TODO: move to legislation parameters file : voir http://www.urssaf.fr/images/ref_lc2009-077.pdf\n seuil_max = 2\n seuil_min = 1.4\n\n taux_exoneration = compute_taux_exoneration(assiette_allegement, smic_proratise, taux_max, seuil_max, seuil_min)\n exoneration_relative_year_passed = exoneration_relative_year(period, contrat_de_travail_debut)\n large_rate_by_year_passed = {\n 0: 1,\n 1: 1,\n 2: 1,\n 3: 1,\n 4: 1,\n 5: .60,\n 6: .40,\n 7: .20,\n } # TODO: move to legislation parameters file\n small_rate_by_year_passed = {\n 0: 1,\n 1: 1,\n 2: 1,\n 3: 1,\n 4: 1,\n 5: .60,\n 6: .60,\n 7: .60,\n 8: .60,\n 9: .60,\n 10: .40,\n 11: .40,\n 12: .20,\n 13: .20,\n } # TODO: move to legislation parameters file\n large_taux_exoneration = eligible * 0.0\n small_taux_exoneration = eligible * 0.0\n for year_passed, rate in large_rate_by_year_passed.iteritems():\n condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y')\n if condition_on_year_passed.any():\n large_taux_exoneration[condition_on_year_passed] = rate * taux_exoneration\n\n for year_passed, rate in small_rate_by_year_passed.iteritems():\n if condition_on_year_passed.any():\n small_taux_exoneration[condition_on_year_passed] = rate * taux_exoneration\n\n exoneration_cotisations_zfu = eligible * assiette_allegement * (\n small_taux_exoneration * (effectif_entreprise <= 5) +\n large_taux_exoneration * (effectif_entreprise > 5)\n )\n return period, exoneration_cotisations_zfu\n", "input_variables": ["entreprise_chiffre_affaire", "effectif_entreprise", "entreprise_bilan", "contrat_de_travail_fin", "smic_proratise", "assiette_allegement", "taux_versement_transport", "contrat_de_travail_debut", "contrat_de_travail_duree", "zone_franche_urbaine"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations de cotisations employeur pour l'embauche en zone de restructuration de la D\u00e9fense (ZRD)", "line_number": 236, "module": "exonerations", "name": "exoneration_cotisations_employeur_zrd", "url": "http://www.apce.com/pid11668/exoneration-dans-les-zrd.html?espace=1&tp=1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 242, "module": "exonerations", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_allegement = simulation.calculate('assiette_allegement', period)\n entreprise_creation = simulation.calculate('entreprise_creation', period)\n smic_proratise = simulation.calculate('smic_proratise', period)\n zone_restructuration_defense = simulation.calculate('zone_restructuration_defense', period)\n\n eligible = zone_restructuration_defense\n taux_max = .281 # TODO: move to legislation parameters file\n seuil_max = 2.4\n seuil_min = 1.4\n taux_exoneration = compute_taux_exoneration(assiette_allegement, smic_proratise, taux_max, seuil_max, seuil_min)\n\n exoneration_relative_year_passed = exoneration_relative_year(period, entreprise_creation)\n rate_by_year_passed = {\n 0: 1,\n 1: 1,\n 2: 1,\n 3: 2 / 3,\n 4: 1 / 3,\n } # TODO: move to legislation parameters file\n ratio = eligible * 0.0\n for year_passed, rate in rate_by_year_passed.iteritems():\n condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y')\n if condition_on_year_passed.any():\n ratio[condition_on_year_passed] = rate\n\n exoneration_cotisations_zrd = ratio * taux_exoneration * assiette_allegement * eligible\n\n return period, exoneration_cotisations_zrd\n", "input_variables": ["smic_proratise", "assiette_allegement", "zone_restructuration_defense", "entreprise_creation"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations de cotisations employeur pour l'embauche en zone de revitalisation rurale (ZRR)", "line_number": 274, "module": "exonerations", "name": "exoneration_cotisations_employeur_zrr", "url": "http://www.apce.com/pid538/embauches-en-zru-et-zrr.html?espace=1&tp=1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 293, "module": "exonerations", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_allegement = simulation.calculate('assiette_allegement', period)\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period) # 0: CDI, 1:CDD\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n smic_proratise = simulation.calculate('smic_proratise', period)\n zone_revitalisation_rurale = simulation.calculate('zone_revitalisation_rurale', period)\n\n duree_cdd_eligible = contrat_de_travail_fin > contrat_de_travail_debut + timedelta64(365, 'D')\n # TODO: move to legislation parameters file\n contrat_de_travail_eligible = (\n contrat_de_travail_duree == 0) + (\n (contrat_de_travail_duree == 1) * (duree_cdd_eligible)\n )\n\n duree_validite = (\n datetime64(period.start) + timedelta64(1, 'D') - contrat_de_travail_debut\n ).astype('timedelta64[Y]') < timedelta64(1, 'Y')\n\n eligible = (\n contrat_de_travail_eligible *\n (effectif_entreprise <= 50) *\n zone_revitalisation_rurale *\n duree_validite\n )\n taux_max = .281 if period.start.year < 2015 else .2655 # TODO: move to legislation parameters file\n seuil_max = 2.4\n seuil_min = 1.5\n taux_exoneration = compute_taux_exoneration(assiette_allegement, smic_proratise, taux_max, seuil_max, seuil_min)\n exoneration_cotisations_zrr = taux_exoneration * assiette_allegement * eligible\n\n return period, exoneration_cotisations_zrr\n", "input_variables": ["effectif_entreprise", "contrat_de_travail_fin", "zone_revitalisation_rurale", "smic_proratise", "assiette_allegement", "contrat_de_travail_debut", "contrat_de_travail_duree"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations fiscales pour cr\u00e9ation d'une entreprise en zone de revitalisation rurale (ZRR)", "line_number": 330, "module": "exonerations", "name": "exoneration_is_creation_zrr", "url": "http://www.apce.com/pid11690/exonerations-d-impots-zrr.html?espace=1&tp=1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 336, "module": "exonerations", "source": "def function(self, simulation, period):\n period = period.this_year\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n entreprise_benefice = simulation.calculate('entreprise_benefice', period)\n # TODO: MODIFIER avec cr\u00e9ation d'entreprise\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period) # 0: CDI, 1:CDD\n\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n duree_eligible = contrat_de_travail_fin > contrat_de_travail_debut + timedelta64(365, 'D')\n # TODO: move to legislation parameters file\n contrat_de_travail_eligible = (\n contrat_de_travail_duree == 0) + (\n (contrat_de_travail_duree == 1) * (duree_eligible)\n )\n zone_revitalisation_rurale = simulation.calculate('zone_revitalisation_rurale', period)\n eligible = (\n contrat_de_travail_eligible *\n (effectif_entreprise <= 50) *\n zone_revitalisation_rurale\n )\n exoneration_relative_year_passed = exoneration_relative_year(period, contrat_de_travail_debut)\n rate_by_year_passed = {\n 0: 1,\n 1: 1,\n 2: 1,\n 3: 1,\n 4: 1,\n 5: .75,\n 6: .50,\n 7: .25,\n } # TODO: move to legislation parameters file\n taux_exoneraion = eligible * 0.0\n for year_passed, rate in rate_by_year_passed.iteritems():\n condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y')\n taux_exoneraion[condition_on_year_passed] = rate\n\n return period, taux_exoneraion * entreprise_benefice\n", "input_variables": ["effectif_entreprise", "entreprise_benefice", "contrat_de_travail_fin", "zone_revitalisation_rurale", "contrat_de_travail_debut", "contrat_de_travail_duree"]}}, {"@type": "Date", "default": "2099-12-31", "entity": "individus", "label": "Date de demande (et d'octroi) du statut de jeune entreprise innovante (JEI)", "line_number": 11, "module": "exonerations", "name": "jei_date_demande", "val_type": "date"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'entreprise est une jeune entreprise innovante", "line_number": 389, "module": "exonerations", "name": "jeune_entreprise_innovante", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 394, "module": "exonerations", "source": "def function(self, simulation, period):\n # Toute entreprise existante au 1er janvier 2004 ou cr\u00e9\u00e9e entre le 1er janvier 2004 et le 31 d\u00e9cembre 2016 \u00e0\n # condition de remplir les conditions suivantes :\n #\n # avoir moins de 8 ans d'existence au moment de la demande\n #\n # \u00eatre r\u00e9ellement nouvelle, c'est-\u00e0-dire ne pas avoir \u00e9t\u00e9 cr\u00e9\u00e9e dans le cadre d'une concentration,\n # d'une restructuration, d'une extension d'activit\u00e9 pr\u00e9existante ou d'une reprise\n #\n # employer moins de 250 personnes au cours de l'exercice au titre duquel elle demande \u00e0 b\u00e9n\u00e9ficier de ce statut\n #\n # r\u00e9aliser un chiffre d'affaires inf\u00e9rieur \u00e0 50 M\u20ac et disposer d'un total de bilan inf\u00e9rieur \u00e0 43 M\u20ac\n #\n # \u00eatre ind\u00e9pendante, c'est-\u00e0-dire que son capital doit \u00eatre d\u00e9tenu pour 50 % au minimum par :\n #\n # - des personnes physiques\n #\n # - une ou plusieurs autres JEI dont 50 % du capital au moins est d\u00e9tenu par des personnes physiques\n #\n # - des associations ou fondations reconnues d'utilit\u00e9 publique \u00e0 caract\u00e8re scientifique\n #\n # - des \u00e9tablissements de recherche et d'enseignement et leurs filiales\n #\n # - des structures d'investissement sous r\u00e9serve qu'il n'y ait pas de lien de d\u00e9pendance telles que des :\n # - fonds communs de placement dans l'innovation (FCPI)\n # - soci\u00e9t\u00e9s de capital-risque\n # - fonds d'investissement de proximit\u00e9 (FIP)\n # - soci\u00e9t\u00e9s de d\u00e9veloppement r\u00e9gional (SDR)\n # - soci\u00e9t\u00e9s financi\u00e8res d'innovation (SFI)\n # - soci\u00e9t\u00e9s unipersonnelles d'investissements \u00e0 risques (SUIR).\n #\n # r\u00e9aliser des d\u00e9penses de R\u00a7D repr\u00e9sentant au moins 15 % des charges fiscalement d\u00e9ductibles au titre du m\u00eame\n # exercice.\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n entreprise_bilan = simulation.calculate('entreprise_bilan', period)\n entreprise_chiffre_affaire = simulation.calculate('entreprise_chiffre_affaire', period)\n entreprise_creation = simulation.calculate('entreprise_creation', period)\n # entreprise_depenses_rd = simulation.calculate('entreprise_depenses_rd', period)\n jei_date_demande = simulation.calculate('jei_date_demande', period)\n # TODO: move to legislation parameters file\n # entreprise_depenses_rd > .15 TODO\n independance = True\n jeune_entreprise_innovante = (\n independance *\n (effectif_entreprise < 250) *\n (entreprise_creation <= datetime64(\"2016-12-31\")) *\n (\n (jei_date_demande + timedelta64(1, 'D') - entreprise_creation).astype('timedelta64[Y]') <\n timedelta64(8, 'Y')\n ) *\n (entreprise_chiffre_affaire < 50e6) *\n (entreprise_bilan < 43e6)\n )\n return period, jeune_entreprise_innovante\n", "input_variables": ["jei_date_demande", "entreprise_creation", "entreprise_chiffre_affaire", "effectif_entreprise", "entreprise_bilan"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'entreprise est situ\u00e9e danns une zone franche urbaine (ZFU)", "line_number": 474, "module": "exonerations", "name": "zone_franche_urbaine", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 479, "module": "exonerations", "source": "def function(self, simulation, period):\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n return period, (effectif_entreprise >= 1) * False\n", "input_variables": ["effectif_entreprise"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'entreprise est situ\u00e9e dans une zone de restructuration de la D\u00e9fense (ZRD)", "line_number": 464, "module": "exonerations", "name": "zone_restructuration_defense", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 469, "module": "exonerations", "source": "def function(self, simulation, period):\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n return period, (effectif_entreprise >= 1) * False\n", "input_variables": ["effectif_entreprise"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'entreprise est situ\u00e9e dans une zone de revitalisation rurale (ZRR)", "line_number": 484, "module": "exonerations", "name": "zone_revitalisation_rurale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 489, "module": "exonerations", "source": "def function(self, simulation, period):\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n return period, (effectif_entreprise >= 1) * False\n", "input_variables": ["effectif_entreprise"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Aide \u00e0 l'embauche d'un salari\u00e9 pour les PME", "line_number": 207, "module": "allegements", "name": "aide_embauche_pme", "url": "http://travail-emploi.gouv.fr/grands-dossiers/embauchepme", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 213, "module": "allegements", "source": "@dated_function(start=date(2016, 1, 18))\ndef function(self, simulation, period):\n period = period.this_month\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n apprenti = simulation.calculate('apprenti', period)\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period)\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n coefficient_proratisation = simulation.calculate('coefficient_proratisation', period)\n smic_proratise = simulation.calculate('smic_proratise', period)\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n\n # Cette aide est temporaire.\n # Si toutefois elle est reconduite et modifi\u00e9e pour 2017, les dates et le montant seront \u00e0 impl\u00e9menter comme\n # des params xml.\n\n # jusqu\u2019\u00e0 1,3 fois le Smic\n eligible_salaire = salaire_de_base <= (1.3 * smic_proratise)\n\n # pour les PME\n eligible_effectif = effectif_entreprise < 250\n\n # non cumulable avec l'aide pour la premi\u00e8re embauche\n # qui est identique, si ce n'est qu'elle couvre tous les salaires\n non_cumulee = effectif_entreprise > 1\n\n eligible_contrat = and_(\n contrat_de_travail_debut >= datetime64(\"2016-01-18\"),\n contrat_de_travail_debut <= datetime64(\"2016-12-31\")\n )\n\n # Si CDD, dur\u00e9e du contrat doit \u00eatre > 1 an\n eligible_duree = or_(\n # dur\u00e9e ind\u00e9termin\u00e9e\n contrat_de_travail_duree == 0,\n # dur\u00e9e d\u00e9termin\u00e9e sup\u00e9rieure \u00e0 1 an\n and_(\n # CDD\n contrat_de_travail_duree == 1,\n # > 6 mois\n (contrat_de_travail_fin - contrat_de_travail_debut).astype('timedelta64[M]') >= timedelta64(6, 'M')\n )\n )\n\n # Valable 2 ans seulement\n eligible_date = datetime64(period.offset(-24, 'month').start) < contrat_de_travail_debut\n\n eligible = (\n eligible_salaire * eligible_effectif * non_cumulee * eligible_contrat * eligible_duree *\n eligible_date * not_(apprenti)\n )\n # somme sur 24 mois, \u00e0 raison de 500 \u20ac maximum par trimestre\n montant_max = 4000\n\n # Si le salari\u00e9 est embauch\u00e9 \u00e0 temps partiel,\n # l\u2019aide est proratis\u00e9e en fonction de sa dur\u00e9e de travail.\n # TODO cette multiplication par le coefficient de proratisation suffit-elle pour le cas du temps partiel ?\n # A tester\n return period, eligible * (montant_max / 24) * coefficient_proratisation\n", "input_variables": ["salaire_de_base", "effectif_entreprise", "contrat_de_travail_fin", "coefficient_proratisation", "smic_proratise", "apprenti", "contrat_de_travail_debut", "contrat_de_travail_duree"]}, "stop_instant": null, "start_instant": "2016-01-18"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Aide \u00e0 l'embauche d'un premier salari\u00e9", "line_number": 149, "module": "allegements", "name": "aide_premier_salarie", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 154, "module": "allegements", "source": "@dated_function(start=date(2015, 6, 9))\ndef function(self, simulation, period):\n period = period.this_month\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n apprenti = simulation.calculate('apprenti', period)\n contrat_de_travail_duree = simulation.calculate('contrat_de_travail_duree', period)\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n coefficient_proratisation = simulation.calculate('coefficient_proratisation', period)\n\n # Cette aide est temporaire.\n # TODO : Si toutefois elle est reconduite et modifi\u00e9e pour 2017, les dates et le montant seront \u00e0\n # impl\u00e9menter comme des params xml.\n\n eligible_contrat = and_(\n contrat_de_travail_debut >= datetime64(\"2015-06-09\"),\n contrat_de_travail_debut <= datetime64(\"2016-12-31\")\n )\n\n # Si CDD, dur\u00e9e du contrat doit \u00eatre > 1 an\n eligible_duree = or_(\n # dur\u00e9e ind\u00e9termin\u00e9e\n contrat_de_travail_duree == 0,\n # dur\u00e9e d\u00e9termin\u00e9e sup\u00e9rieure \u00e0 1 an\n and_(\n contrat_de_travail_duree == 1, # CDD\n # > 6 mois\n (contrat_de_travail_fin - contrat_de_travail_debut).astype('timedelta64[M]') >= timedelta64(6, 'M')\n # Initialement, la condition \u00e9tait d'un contrat >= 12 mois,\n # pour les demandes transmises jusqu'au 26 janvier.\n )\n )\n\n eligible_date = datetime64(period.offset(-24, 'month').start) < contrat_de_travail_debut\n eligible = \\\n (effectif_entreprise == 1) * not_(apprenti) * eligible_contrat * eligible_duree * eligible_date\n\n # somme sur 24 mois, \u00e0 raison de 500 \u20ac maximum par trimestre\n montant_max = 4000\n\n # TODO comment impl\u00e9menter la condition \"premier employ\u00e9\" ? L'effectif est insuffisant en cas de rupture\n # d'un premier contrat\n # Condition : l\u2019entreprise n\u2019a pas conclu de contrat de travail avec un salari\u00e9,\n # au-del\u00e0 de la p\u00e9riode d\u2019essai, dans les 12 mois pr\u00e9c\u00e9dant la nouvelle\n # embauche.\n\n # Si le salari\u00e9 est embauch\u00e9 \u00e0 temps partiel,\n # l\u2019aide est proratis\u00e9e en fonction de sa dur\u00e9e de travail.\n # TODO cette multiplication par le coefficient de proratisation suffit-elle pour le cas du temps partiel ?\n # A tester\n return period, eligible * (montant_max / 24) * coefficient_proratisation\n", "input_variables": ["effectif_entreprise", "contrat_de_travail_fin", "coefficient_proratisation", "apprenti", "contrat_de_travail_debut", "contrat_de_travail_duree"]}, "stop_instant": null, "start_instant": "2015-06-09"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "All\u00e8gement de la cotisation d'allocationos familiales sur les bas et moyens salaires", "line_number": 343, "module": "allegements", "name": "allegement_cotisation_allocations_familiales", "url": "https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/la-cotisation-dallocations-famil/la-reduction-du-taux-de-la-cotis.html", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 349, "module": "allegements", "source": "@dated_function(date(2015, 1, 1))\ndef function(self, simulation, period):\n period = period.this_month\n stagiaire = simulation.calculate('stagiaire', period)\n apprenti = simulation.calculate('apprenti', period)\n allegement_mode_recouvrement = \\\n simulation.calculate('allegement_cotisation_allocations_familiales_mode_recouvrement', period)\n\n # switch on 3 possible payment options\n allegement = switch_on_allegement_mode(\n simulation, period,\n allegement_mode_recouvrement,\n self.__class__.__name__,\n )\n\n return period, allegement * not_(stagiaire) * not_(apprenti)\n", "input_variables": ["allegement_cotisation_allocations_familiales_mode_recouvrement", "apprenti", "stagiaire"]}, "stop_instant": null, "start_instant": "2015-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "All\u00e8gement de charges employeur sur les bas et moyens salaires (dit all\u00e8gement Fillon)", "line_number": 288, "module": "allegements", "name": "allegement_fillon", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 295, "module": "allegements", "source": "@dated_function(date(2005, 7, 1))\ndef function(self, simulation, period):\n period = period.this_month\n stagiaire = simulation.calculate('stagiaire', period)\n apprenti = simulation.calculate('apprenti', period)\n allegement_mode_recouvrement = simulation.calculate('allegement_fillon_mode_recouvrement', period)\n\n # switch on 3 possible payment options\n allegement = switch_on_allegement_mode(\n simulation, period,\n allegement_mode_recouvrement,\n self.__class__.__name__,\n )\n\n return period, allegement * not_(stagiaire) * not_(apprenti)\n", "input_variables": ["apprenti", "stagiaire", "allegement_fillon_mode_recouvrement"]}, "stop_instant": null, "start_instant": "2005-07-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette des all\u00e8gements de cotisations sociales employeur", "line_number": 22, "module": "allegements", "name": "assiette_allegement", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 28, "module": "allegements", "source": "def function(self, simulation, period):\n assiette_cotisations_sociales = simulation.calculate_add('assiette_cotisations_sociales', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n period = period\n # TODO v\u00e9rifier changement d'assiette\n return period, assiette_cotisations_sociales * (\n (categorie_salarie == CAT['prive_non_cadre']) | (categorie_salarie == CAT['prive_cadre'])\n )\n", "input_variables": ["categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Coefficient de proratisation du salaire notamment pour le calcul du SMIC", "line_number": 38, "module": "allegements", "name": "coefficient_proratisation", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 43, "module": "allegements", "source": "def function(self, simulation, period):\n # * Tous les calculs sont faits sur le mois *\n\n # Les types de contrats g\u00e9r\u00e9s\n contrat_de_travail = simulation.calculate('contrat_de_travail', period)\n # [ temps_plein\n # temps_partiel\n # forfait_heures_semaines\n # forfait_heures_mois\n # forfait_heures_annee\n # forfait_jours_annee ]\n\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n\n # Volume des heures r\u00e9mun\u00e9r\u00e9es \u00e0 un forfait heures\n forfait_heures_remunerees_volume = simulation.calculate('forfait_heures_remunerees_volume', period)\n # Volume des heures r\u00e9mun\u00e9r\u00e9es \u00e0 forfait jours\n forfait_jours_remuneres_volume = simulation.calculate('forfait_jours_remuneres_volume', period)\n heures_duree_collective_entreprise = simulation.calculate('heures_duree_collective_entreprise', period)\n # Volume des heures r\u00e9mun\u00e9r\u00e9es contractuellement (heures/mois, temps partiel)\n heures_remunerees_volume = simulation.calculate('heures_remunerees_volume', period)\n # Volume des heures non r\u00e9mun\u00e9r\u00e9es (convenance personnelle hors contrat/forfait)\n heures_non_remunerees_volume = simulation.calculate('heures_non_remunerees_volume', period)\n\n # D\u00e9compte des jours en d\u00e9but et fin de contrat\n # http://www.gestiondelapaie.com/flux-paie/?1029-la-bonne-premiere-paye\n\n # M\u00e9thode numpy de calcul des jours travaill\u00e9s\n busday_count = partial(original_busday_count, holidays=holidays) # @holidays : jours feri\u00e9s fran\u00e7ais\n\n debut_mois = datetime64(period.start.offset('first-of', 'month'))\n fin_mois = datetime64(period.start.offset('last-of', 'month')) + timedelta64(1,\n 'D') # busday ignores the last day\n\n jours_ouvres_ce_mois = busday_count(\n debut_mois,\n fin_mois,\n weekmask='1111100'\n )\n\n mois_incomplet = or_(contrat_de_travail_debut > debut_mois, contrat_de_travail_fin < fin_mois)\n # jours travaillables sur l'intersection du contrat de travail et du mois en cours\n jours_ouvres_ce_mois_incomplet = busday_count(\n max_(contrat_de_travail_debut, debut_mois),\n min_(contrat_de_travail_fin, fin_mois),\n weekmask='1111100'\n )\n\n duree_legale_mensuelle = 35 * 52 / 12 # ~151,67\n\n heures_temps_plein = switch(heures_duree_collective_entreprise,\n {0: duree_legale_mensuelle, 1: heures_duree_collective_entreprise})\n\n jours_absence = heures_non_remunerees_volume / 7\n\n coefficient_proratisation_temps_partiel = heures_remunerees_volume / heures_temps_plein\n coefficient_proratisation_forfait_jours = forfait_jours_remuneres_volume / 218\n\n # temps plein\n coefficient = switch(\n contrat_de_travail,\n { # temps plein\n 0: ((jours_ouvres_ce_mois_incomplet - jours_absence) /\n jours_ouvres_ce_mois\n ),\n # temps partiel\n # (en l'absence du d\u00e9tail pour chaque jour de la semaine ou chaque semaine du mois)\n 1: coefficient_proratisation_temps_partiel * (\n (jours_ouvres_ce_mois_incomplet * coefficient_proratisation_temps_partiel - jours_absence) /\n (jours_ouvres_ce_mois * coefficient_proratisation_temps_partiel + 1e-16)\n ),\n 5: coefficient_proratisation_forfait_jours * (\n (jours_ouvres_ce_mois_incomplet * coefficient_proratisation_forfait_jours - jours_absence) /\n (jours_ouvres_ce_mois * coefficient_proratisation_forfait_jours + 1e-16)\n )\n })\n\n # Forfait en heures\n # coefficient = (contrat_de_travail >= 2) * (contrat_de_travail <= 3) * (\n # forfait_heures_remunerees_volume / 45.7 * 52 / 12\n # ) +\n return period, coefficient\n", "input_variables": ["contrat_de_travail", "contrat_de_travail_fin", "heures_duree_collective_entreprise", "forfait_heures_remunerees_volume", "forfait_jours_remuneres_volume", "heures_non_remunerees_volume", "contrat_de_travail_debut", "heures_remunerees_volume"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cr\u00e9dit d'im\u00f4t pour la comp\u00e9titivit\u00e9 et l'emploi", "line_number": 128, "module": "allegements", "name": "credit_impot_competitivite_emploi", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 133, "module": "allegements", "source": "@dated_function(date(2013, 1, 1))\ndef function_2013_(self, simulation, period):\n period = period.this_month\n assiette_allegement = simulation.calculate('assiette_allegement', period)\n jeune_entreprise_innovante = simulation.calculate('jeune_entreprise_innovante', period)\n smic_proratise = simulation.calculate('smic_proratise', period)\n stagiaire = simulation.calculate('stagiaire', period)\n cotsoc = simulation.legislation_at(period.start).cotsoc\n taux_cice = taux_exo_cice(assiette_allegement, smic_proratise, cotsoc)\n credit_impot_competitivite_emploi = taux_cice * assiette_allegement\n non_cumul = not_(stagiaire)\n association = simulation.calculate('entreprise_est_association_non_lucrative', period)\n\n return period, credit_impot_competitivite_emploi * non_cumul * not_(association)\n", "input_variables": ["jeune_entreprise_innovante", "smic_proratise", "stagiaire", "assiette_allegement", "entreprise_est_association_non_lucrative"]}, "stop_instant": null, "start_instant": "2013-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "SMIC proratis\u00e9 (mensuel)", "line_number": 274, "module": "allegements", "name": "smic_proratise", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 279, "module": "allegements", "source": "def function(self, simulation, period):\n period = period.this_month\n coefficient_proratisation = simulation.calculate('coefficient_proratisation', period)\n smic_horaire_brut = simulation.legislation_at(period.start).cotsoc.gen.smic_h_b\n smic_proratise = coefficient_proratisation * smic_horaire_brut * 35 * 52 / 12\n\n return period, smic_proratise\n", "input_variables": ["coefficient_proratisation"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales employeur", "line_number": 15, "module": "travail_totaux", "name": "cotisations_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 22, "module": "travail_totaux", "source": "def function(self, simulation, period):\n period = period\n cotisations_employeur_contributives = simulation.calculate('cotisations_employeur_contributives', period)\n cotisations_employeur_non_contributives = simulation.calculate(\n 'cotisations_employeur_non_contributives', period)\n cotisations_employeur_main_d_oeuvre = simulation.calculate('cotisations_employeur_main_d_oeuvre', period)\n\n return period, (\n cotisations_employeur_contributives +\n cotisations_employeur_non_contributives +\n cotisations_employeur_main_d_oeuvre\n )\n", "input_variables": ["cotisations_employeur_contributives", "cotisations_employeur_non_contributives", "cotisations_employeur_main_d_oeuvre"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales employeur contributives", "line_number": 36, "module": "travail_totaux", "name": "cotisations_employeur_contributives", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 43, "module": "travail_totaux", "source": "def function(self, simulation, period):\n period = period\n ags = simulation.calculate('ags', period)\n agff_employeur = simulation.calculate_add('agff_employeur', period)\n agirc_employeur = simulation.calculate_add('agirc_employeur', period)\n agirc_gmp_employeur = simulation.calculate_add('agirc_gmp_employeur', period)\n apec_employeur = simulation.calculate('apec_employeur', period)\n arrco_employeur = simulation.calculate('arrco_employeur', period)\n chomage_employeur = simulation.calculate('chomage_employeur', period)\n cotisation_exceptionnelle_temporaire_employeur = simulation.calculate(\n 'cotisation_exceptionnelle_temporaire_employeur', period)\n fonds_emploi_hospitalier = simulation.calculate_add('fonds_emploi_hospitalier', period)\n ircantec_employeur = simulation.calculate_add('ircantec_employeur', period)\n pension_civile_employeur = simulation.calculate_add('pension_civile_employeur', period)\n rafp_employeur = simulation.calculate_add('rafp_employeur', period)\n vieillesse_deplafonnee_employeur = simulation.calculate_add('vieillesse_deplafonnee_employeur', period)\n vieillesse_plafonnee_employeur = simulation.calculate_add('vieillesse_plafonnee_employeur', period)\n\n cotisations = (\n # prive\n ags +\n agff_employeur +\n agirc_employeur +\n agirc_gmp_employeur +\n apec_employeur +\n arrco_employeur +\n chomage_employeur +\n cotisation_exceptionnelle_temporaire_employeur +\n vieillesse_deplafonnee_employeur +\n vieillesse_plafonnee_employeur +\n # public\n fonds_emploi_hospitalier +\n ircantec_employeur +\n pension_civile_employeur +\n rafp_employeur\n )\n return period, cotisations\n", "input_variables": ["fonds_emploi_hospitalier", "agirc_employeur", "vieillesse_deplafonnee_employeur", "vieillesse_plafonnee_employeur", "chomage_employeur", "arrco_employeur", "rafp_employeur", "agirc_gmp_employeur", "ircantec_employeur", "cotisation_exceptionnelle_temporaire_employeur", "apec_employeur", "pension_civile_employeur", "ags", "agff_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales employeur non-contributives", "line_number": 82, "module": "travail_totaux", "name": "cotisations_employeur_non_contributives", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 89, "module": "travail_totaux", "source": "def function(self, simulation, period):\n period = period\n accident_du_travail = simulation.calculate_add('accident_du_travail', period)\n allocations_temporaires_invalidite = simulation.calculate_add('allocations_temporaires_invalidite', period)\n contribution_solidarite_autonomie = simulation.calculate('contribution_solidarite_autonomie', period)\n famille = simulation.calculate('famille', period)\n mmid_employeur = simulation.calculate_add('mmid_employeur', period)\n taxe_salaires = simulation.calculate_add('taxe_salaires', period)\n forfait_social = simulation.calculate_add('forfait_social', period)\n\n cotisations_employeur_non_contributives = (\n allocations_temporaires_invalidite +\n accident_du_travail +\n contribution_solidarite_autonomie +\n famille +\n mmid_employeur +\n taxe_salaires +\n forfait_social\n )\n return period, cotisations_employeur_non_contributives\n", "input_variables": ["allocations_temporaires_invalidite", "contribution_solidarite_autonomie", "taxe_salaires", "accident_du_travail", "forfait_social", "mmid_employeur", "famille"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales salariales", "line_number": 177, "module": "travail_totaux", "name": "cotisations_salariales", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 184, "module": "travail_totaux", "source": "def function(self, simulation, period):\n period = period\n cotisations_salariales_contributives = simulation.calculate('cotisations_salariales_contributives', period)\n cotisations_salariales_non_contributives = simulation.calculate(\n 'cotisations_salariales_non_contributives', period)\n exoneration_cotisations_salariales_apprenti = simulation.calculate_add(\n 'exoneration_cotisations_salariales_apprenti', period)\n exoneration_cotisations_salarie_stagiaire = simulation.calculate_add(\n 'exoneration_cotisations_salarie_stagiaire', period)\n\n return period, (\n cotisations_salariales_contributives +\n cotisations_salariales_non_contributives +\n exoneration_cotisations_salariales_apprenti +\n exoneration_cotisations_salarie_stagiaire\n )\n", "input_variables": ["exoneration_cotisations_salariales_apprenti", "exoneration_cotisations_salarie_stagiaire", "cotisations_salariales_non_contributives", "cotisations_salariales_contributives"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales salariales contributives", "line_number": 111, "module": "travail_totaux", "name": "cotisations_salariales_contributives", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 118, "module": "travail_totaux", "source": "def function(self, simulation, period):\n period = period\n agff_salarie = simulation.calculate_add('agff_salarie', period)\n agirc_salarie = simulation.calculate_add('agirc_salarie', period)\n agirc_gmp_salarie = simulation.calculate_add('agirc_gmp_salarie', period)\n apec_salarie = simulation.calculate_add('apec_salarie', period)\n arrco_salarie = simulation.calculate_add('arrco_salarie', period)\n chomage_salarie = simulation.calculate_add('chomage_salarie', period)\n cotisation_exceptionnelle_temporaire_salarie = simulation.calculate_add(\n 'cotisation_exceptionnelle_temporaire_salarie', period)\n ircantec_salarie = simulation.calculate_add('ircantec_salarie', period)\n pension_civile_salarie = simulation.calculate_add('pension_civile_salarie', period)\n rafp_salarie = simulation.calculate_add('rafp_salarie', period)\n vieillesse_deplafonnee_salarie = simulation.calculate_add('vieillesse_deplafonnee_salarie', period)\n vieillesse_plafonnee_salarie = simulation.calculate_add('vieillesse_plafonnee_salarie', period)\n\n cotisations_salariales_contributives = (\n # prive\n agff_salarie +\n agirc_salarie +\n agirc_gmp_salarie +\n apec_salarie +\n arrco_salarie +\n chomage_salarie +\n cotisation_exceptionnelle_temporaire_salarie +\n vieillesse_deplafonnee_salarie +\n vieillesse_plafonnee_salarie +\n # public\n ircantec_salarie +\n pension_civile_salarie +\n rafp_salarie\n )\n\n return period, cotisations_salariales_contributives\n", "input_variables": ["vieillesse_deplafonnee_salarie", "agirc_gmp_salarie", "agff_salarie", "pension_civile_salarie", "ircantec_salarie", "rafp_salarie", "arrco_salarie", "vieillesse_plafonnee_salarie", "agirc_salarie", "apec_salarie", "cotisation_exceptionnelle_temporaire_salarie", "chomage_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisations sociales salariales non-contributives", "line_number": 154, "module": "travail_totaux", "name": "cotisations_salariales_non_contributives", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 161, "module": "travail_totaux", "source": "def function(self, simulation, period):\n period = period\n contribution_exceptionnelle_solidarite = simulation.calculate_add(\n 'contribution_exceptionnelle_solidarite', period)\n mmid_salarie = simulation.calculate_add('mmid_salarie', period)\n\n cotisations_salariales_non_contributives = (\n # prive\n mmid_salarie +\n # public\n contribution_exceptionnelle_solidarite\n )\n\n return period, cotisations_salariales_non_contributives\n", "input_variables": ["contribution_exceptionnelle_solidarite", "mmid_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations de cotisations employeur pour un stagaire", "line_number": 73, "module": "stage", "name": "exoneration_cotisations_employeur_stagiaire", "url": "http://www.apce.com/pid2798/stages.html?espace=3", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 79, "module": "stage", "source": "def function(self, simulation, period):\n period = period.this_month\n agirc_employeur = simulation.calculate('agirc_employeur', period)\n agirc_gmp_employeur = simulation.calculate('agirc_gmp_employeur', period)\n arrco_employeur = simulation.calculate('arrco_employeur', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n stage_gratification_reintegration = simulation.calculate('stage_gratification_reintegration', period)\n stagiaire = simulation.calculate('stagiaire', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n bareme_by_type_sal_name = simulation.legislation_at(period.start).cotsoc.cotisations_employeur\n exoneration = sum(\n apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = bareme_by_type_sal_name,\n bareme_name = bareme_name,\n categorie_salarie = categorie_salarie,\n base = stage_gratification_reintegration,\n plafond_securite_sociale = plafond_securite_sociale,\n round_base_decimals = 2,\n )\n for bareme_name in ['agffnc', 'agffc', 'chomfg', 'assedic']\n )\n exoneration += agirc_employeur + agirc_gmp_employeur + arrco_employeur\n return period, - exoneration * stagiaire\n", "input_variables": ["plafond_securite_sociale", "agirc_employeur", "stage_gratification_reintegration", "arrco_employeur", "agirc_gmp_employeur", "stagiaire", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exonr\u00e9rations de cotisations salari\u00e9 pour un stagiaire", "line_number": 105, "module": "stage", "name": "exoneration_cotisations_salarie_stagiaire", "url": "http://www.apce.com/pid2798/stages.html?espace=3", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 111, "module": "stage", "source": "def function(self, simulation, period):\n period = period.this_month\n agirc_salarie = simulation.calculate('agirc_salarie', period)\n agirc_gmp_salarie = simulation.calculate('agirc_gmp_salarie', period)\n arrco_salarie = simulation.calculate('arrco_salarie', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n stage_gratification_reintegration = simulation.calculate('stage_gratification_reintegration', period)\n stagiaire = simulation.calculate('stagiaire', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n bareme_by_type_sal_name = simulation.legislation_at(period.start).cotsoc.cotisations_salarie\n bareme_names = ['agff', 'assedic']\n\n exoneration = plafond_securite_sociale * 0.0\n for bareme_name in bareme_names:\n exoneration += apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = bareme_by_type_sal_name,\n bareme_name = bareme_name,\n categorie_salarie = categorie_salarie,\n base = stage_gratification_reintegration,\n plafond_securite_sociale = plafond_securite_sociale,\n round_base_decimals = 2,\n )\n exoneration = exoneration + agirc_salarie + agirc_gmp_salarie + arrco_salarie\n\n return period, - exoneration * stagiaire\n", "input_variables": ["plafond_securite_sociale", "agirc_gmp_salarie", "stage_gratification_reintegration", "arrco_salarie", "agirc_salarie", "stagiaire", "categorie_salarie"]}}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Nombre d'heures effectu\u00e9es en stage", "line_number": 13, "module": "stage", "name": "stage_duree_heures"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Gratification de stage", "line_number": 25, "module": "stage", "name": "stage_gratification", "start": "2014-11-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 31, "module": "stage", "source": "def function(self, simulation, period):\n period = period.this_month\n stage_duree_heures = simulation.calculate('stage_duree_heures', period)\n stage_gratification_taux = simulation.calculate('stage_gratification_taux', period)\n stagiaire = simulation.calculate('stagiaire', period)\n plafond_securite_sociale_horaire = simulation.legislation_at(period.start).cotsoc.gen.plafond_securite_sociale_horaire\n # TODO: move to legislation parameters file\n stage_gratification_taux_min = .1375 # depuis le 1er d\u00e9cembre 2014\n # .15 \u00e0 partir de 2015-09-01\n return period, stagiaire * plafond_securite_sociale_horaire * stage_duree_heures * max_(\n stage_gratification_taux, stage_gratification_taux_min)\n", "input_variables": ["stage_duree_heures", "stagiaire", "stage_gratification_taux"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Part de la gratification de stage r\u00e9int\u00e9gr\u00e9e \u00e0 l'assiette des cotisations et contributions sociales", "line_number": 44, "module": "stage", "name": "stage_gratification_reintegration", "start": "2014-11-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 50, "module": "stage", "source": "def function(self, simulation, period):\n period = period.this_month\n stage_duree_heures = simulation.calculate('stage_duree_heures', period)\n stage_gratification = simulation.calculate('stage_gratification', period)\n plafond_securite_sociale_horaire = (\n simulation.legislation_at(period.start).cotsoc.gen.plafond_securite_sociale_horaire)\n # TODO: move to legislation parameters file\n stage_gratification_taux_min = .1375 # .15 \u00e0 partir de 2015-09-01 \u00a0\n stage_gratification_min = plafond_securite_sociale_horaire * stage_duree_heures * stage_gratification_taux_min\n return period, max_(stage_gratification - stage_gratification_min, 0)\n", "input_variables": ["stage_gratification", "stage_duree_heures"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taux de gratification (en plafond de la S\u00e9curit\u00e9 sociale)", "line_number": 19, "module": "stage", "name": "stage_gratification_taux"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'individu est stagiaire", "line_number": 62, "module": "stage", "name": "stagiaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 67, "module": "stage", "source": "def function(self, simulation, period):\n period = period.this_month\n stage_duree_heures = simulation.calculate('stage_duree_heures', period)\n return period, (stage_duree_heures > 0)\n", "input_variables": ["stage_duree_heures"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'individu est apprenti", "line_number": 11, "module": "apprentissage", "name": "apprenti", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 17, "module": "apprentissage", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n age_condition = (16 <= age) * (age < 25)\n apprentissage_contrat_debut = simulation.calculate('apprentissage_contrat_debut', period)\n duree_contrat = (\n datetime64(period.start) + timedelta64(1, 'D') - apprentissage_contrat_debut\n ).astype('timedelta64[Y]')\n anciennete_contrat = (duree_contrat < timedelta64(3, 'Y'))\n\n return period, age_condition * anciennete_contrat\n", "input_variables": ["apprentissage_contrat_debut", "age"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exon\u00e9ration de cotisations employeur pour l'emploi d'un apprenti", "line_number": 93, "module": "apprentissage", "name": "exoneration_cotisations_employeur_apprenti", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 116, "module": "apprentissage", "source": "def function(self, simulation, period):\n period = period.this_month\n accident_du_travail = simulation.calculate('accident_du_travail', period)\n apprenti = simulation.calculate('apprenti', period)\n cotisations_employeur = simulation.calculate('cotisations_employeur', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n famille = simulation.calculate('famille', period)\n mmid_employeur = simulation.calculate('mmid_employeur', period)\n vieillesse_deplafonnee_employeur = simulation.calculate('vieillesse_deplafonnee_employeur', period)\n vieillesse_plafonnee_employeur = simulation.calculate('vieillesse_plafonnee_employeur', period)\n\n cotisations_non_exonerees = accident_du_travail\n exoneration_moins_11 = cotisations_non_exonerees - cotisations_employeur\n\n cotisations_exonerees = (famille + mmid_employeur + vieillesse_plafonnee_employeur +\n vieillesse_deplafonnee_employeur)\n exoneration_plus_11 = -cotisations_exonerees\n\n return period, (\n exoneration_plus_11 * (effectif_entreprise >= 11) +\n exoneration_moins_11 * (effectif_entreprise < 11)\n ) * apprenti\n", "input_variables": ["cotisations_employeur", "effectif_entreprise", "vieillesse_deplafonnee_employeur", "vieillesse_plafonnee_employeur", "accident_du_travail", "mmid_employeur", "apprenti", "famille"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exon\u00e9ration de cotisations salariales pour l'emploi d'un apprenti", "line_number": 140, "module": "apprentissage", "name": "exoneration_cotisations_salariales_apprenti", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 146, "module": "apprentissage", "source": "def function(self, simulation, period):\n period = period.this_month\n apprenti = simulation.calculate('apprenti', period)\n cotisations_salariales_contributives = simulation.calculate('cotisations_salariales_contributives', period)\n cotisations_salariales_non_contributives = simulation.calculate(\n 'cotisations_salariales_non_contributives', period)\n return period, - (cotisations_salariales_contributives + cotisations_salariales_non_contributives) * apprenti\n", "input_variables": ["apprenti", "cotisations_salariales_non_contributives", "cotisations_salariales_contributives"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Prime d'apprentissage pour les entreprise employant un apprenti", "line_number": 155, "module": "apprentissage", "name": "prime_apprentissage", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 177, "module": "apprentissage", "source": "def function(self, simulation, period):\n period = period.this_year\n apprenti = simulation.calculate('apprenti', period)\n return period, 1000 * apprenti\n", "input_variables": ["apprenti"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "R\u00e9mun\u00e9ration de l'apprenti", "line_number": 30, "module": "apprentissage", "name": "remuneration_apprenti", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 44, "module": "apprentissage", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n apprentissage_contrat_debut = simulation.calculate('apprentissage_contrat_debut', period)\n smic = simulation.legislation_at(period.start).cotsoc.gen.smic_h_b * 52 * 35 / 12\n anciennete_contrat = (\n datetime64(period.start) + timedelta64(1, 'D') - apprentissage_contrat_debut\n ).astype('timedelta64[Y]')\n apprenti = simulation.calculate('apprenti', period)\n salaire_en_smic = [ # TODO: move to parameters\n dict(\n part_de_smic_by_anciennete = {\n 1: .25,\n 2: .41,\n 3: .53,\n },\n age_min = 15,\n age_max = 18,\n ),\n dict(\n part_de_smic_by_anciennete = {\n 1: .37,\n 2: .49,\n 3: .61,\n },\n age_min = 18,\n age_max = 21,\n ),\n dict(\n part_de_smic_by_anciennete = {\n 1: .53,\n 2: .65,\n 3: .78,\n },\n age_min = 21,\n age_max = 99\n )\n ]\n\n output = age * 0.0\n for age_interval in salaire_en_smic:\n age_condition = (age_interval[\"age_min\"] <= age) * (age < age_interval[\"age_max\"])\n output[age_condition] = sum([\n (anciennete_contrat[age_condition] == timedelta64(anciennete, 'Y')) * part_de_smic\n for anciennete, part_de_smic in age_interval['part_de_smic_by_anciennete'].iteritems()\n ])\n return period, output * smic * apprenti\n", "input_variables": ["apprentissage_contrat_debut", "apprenti", "age"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Allocations temporaires d'invalidit\u00e9 (ATI, fonction publique et collectivit\u00e9s locales)", "line_number": 13, "module": "travail_fonction_publique", "name": "allocations_temporaires_invalidite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 19, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n\n assiette_cotisations_sociales_public = simulation.calculate('assiette_cotisations_sociales_public', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n _P = simulation.legislation_at(period.start)\n\n base = assiette_cotisations_sociales_public\n cotisation_etat = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur,\n bareme_name = \"ati\",\n base = base,\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n cotisation_collectivites_locales = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur,\n bareme_name = \"atiacl\",\n base = base,\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n return period, cotisation_etat + cotisation_collectivites_locales\n", "input_variables": ["plafond_securite_sociale", "assiette_cotisations_sociales_public", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette des cotisations sociales des agents titulaires de la fonction publique", "line_number": 45, "module": "travail_fonction_publique", "name": "assiette_cotisations_sociales_public", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 51, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n remuneration_principale = simulation.calculate('remuneration_principale', period)\n # primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n # indemnite_residence = simulation.calculate('indemnite_residence', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n public = (categorie_salarie >= 2)\n # titulaire = (categorie_salarie >= 2) * (categorie_salarie <= 5)\n assiette = public * (\n remuneration_principale\n # + not_(titulaire) * (indemnite_residence + primes_fonction_publique)\n )\n return period, assiette\n", "input_variables": ["categorie_salarie", "remuneration_principale"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation exceptionnelle au fonds de solidarit\u00e9 (salari\u00e9)", "line_number": 70, "module": "travail_fonction_publique", "name": "contribution_exceptionnelle_solidarite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 75, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n hsup = simulation.calculate('hsup', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n indemnite_residence = simulation.calculate('indemnite_residence', period)\n primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n rafp_salarie = simulation.calculate('rafp_salarie', period)\n pension_civile_salarie = simulation.calculate('pension_civile_salarie', period)\n cotisations_salariales_contributives = simulation.calculate('cotisations_salariales_contributives', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n\n _P = simulation.legislation_at(period.start)\n\n seuil_assuj_fds = seuil_fds(_P)\n\n assujettis = (\n (categorie_salarie == CAT['public_titulaire_etat']) +\n (categorie_salarie == CAT['public_titulaire_territoriale']) +\n (categorie_salarie == CAT['public_titulaire_hospitaliere']) +\n (categorie_salarie == CAT['public_non_titulaire'])\n ) * (\n (traitement_indiciaire_brut + salaire_de_base - hsup) > seuil_assuj_fds\n )\n\n # TODO: check assiette voir IPP\n cotisation = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = _P.cotsoc.cotisations_salarie,\n bareme_name = \"excep_solidarite\",\n base = assujettis * min_(\n (\n traitement_indiciaire_brut + salaire_de_base - hsup + indemnite_residence + rafp_salarie +\n pension_civile_salarie +\n primes_fonction_publique +\n (categorie_salarie == CAT['public_non_titulaire']) * cotisations_salariales_contributives\n ),\n _P.cotsoc.sal.fonc.commun.plafond_base_solidarite,\n ),\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "hsup", "pension_civile_salarie", "indemnite_residence", "cotisations_salariales_contributives", "rafp_salarie", "traitement_indiciaire_brut", "primes_fonction_publique", "salaire_de_base", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Fonds pour l'emploi hospitalier (employeur)", "line_number": 120, "module": "travail_fonction_publique", "name": "fonds_emploi_hospitalier", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 125, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n\n assiette_cotisations_sociales_public = simulation.calculate('assiette_cotisations_sociales_public', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n _P = simulation.legislation_at(period.start)\n cotisation = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur,\n bareme_name = \"feh\",\n base = assiette_cotisations_sociales_public, # TODO: check base\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n return period, cotisation\n", "input_variables": ["plafond_securite_sociale", "assiette_cotisations_sociales_public", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Ircantec employeur", "line_number": 164, "module": "travail_fonction_publique", "name": "ircantec_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 169, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n _P = simulation.legislation_at(period.start)\n\n ircantec = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = _P.cotsoc.cotisations_employeur,\n bareme_name = \"ircantec\",\n base = assiette_cotisations_sociales,\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n return period, ircantec\n", "input_variables": ["plafond_securite_sociale", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Ircantec salari\u00e9", "line_number": 142, "module": "travail_fonction_publique", "name": "ircantec_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 147, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n _P = simulation.legislation_at(period.start)\n\n ircantec = apply_bareme_for_relevant_type_sal(\n bareme_by_type_sal_name = _P.cotsoc.cotisations_salarie,\n bareme_name = \"ircantec\",\n base = assiette_cotisations_sociales,\n plafond_securite_sociale = plafond_securite_sociale,\n categorie_salarie = categorie_salarie,\n )\n return period, ircantec\n", "input_variables": ["plafond_securite_sociale", "categorie_salarie", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Cotisation patronale pension civile", "line_number": 209, "module": "travail_fonction_publique", "name": "pension_civile_employeur", "url": "http://www.ac-besancon.fr/spip.php?article2662", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 215, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_cotisations_sociales_public = simulation.calculate('assiette_cotisations_sociales_public', period)\n # plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n _P = simulation.legislation_at(period.start)\n\n pat = _P.cotsoc.cotisations_employeur\n terr_or_hosp = (\n (categorie_salarie == CAT['public_titulaire_territoriale']) | (categorie_salarie == CAT['public_titulaire_hospitaliere'])\n )\n cot_pat_pension_civile = (\n (categorie_salarie == CAT['public_titulaire_etat']) * pat['public_titulaire_etat']['pension'].calc(\n assiette_cotisations_sociales_public) +\n terr_or_hosp * pat['public_titulaire_territoriale']['cnracl'].calc(assiette_cotisations_sociales_public)\n )\n return period, -cot_pat_pension_civile\n", "input_variables": ["assiette_cotisations_sociales_public", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pension civile salari\u00e9", "line_number": 186, "module": "travail_fonction_publique", "name": "pension_civile_salarie", "url": "(u'http://www.ac-besancon.fr/spip.php?article2662',)", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 192, "module": "travail_fonction_publique", "source": "def function(self, simulation, period):\n period = period.this_month\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period) # TODO: check nbi\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n _P = simulation.legislation_at(period.start)\n\n sal = _P.cotsoc.cotisations_salarie\n terr_or_hosp = (\n categorie_salarie == CAT['public_titulaire_territoriale']) | (categorie_salarie == CAT['public_titulaire_hospitaliere'])\n pension_civile_salarie = (\n (categorie_salarie == CAT['public_titulaire_etat']) *\n sal['public_titulaire_etat']['pension'].calc(traitement_indiciaire_brut) +\n terr_or_hosp * sal['public_titulaire_territoriale']['cnracl1'].calc(traitement_indiciaire_brut)\n )\n return period, -pension_civile_salarie\n", "input_variables": ["traitement_indiciaire_brut", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Part patronale de la retraite additionnelle de la fonction publique", "line_number": 263, "module": "travail_fonction_publique", "name": "rafp_employeur", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": "# TODO: ajouter la gipa qui n'est pas affect\u00e9e par le plafond d'assiette\n", "doc": null, "line_number": 269, "module": "travail_fonction_publique", "source": "@dated_function(start = date(2005, 1, 1))\ndef function(self, simulation, period):\n period = period.this_month\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n supp_familial_traitement = simulation.calculate('supp_familial_traitement', period)\n indemnite_residence = simulation.calculate('indemnite_residence', period)\n _P = simulation.legislation_at(period.start)\n\n eligible = (\n (categorie_salarie == CAT['public_titulaire_etat']) +\n (categorie_salarie == CAT['public_titulaire_territoriale']) +\n (categorie_salarie == CAT['public_titulaire_hospitaliere'])\n )\n plaf_ass = _P.cotsoc.sal.fonc.etat.rafp_plaf_assiette\n base_imposable = primes_fonction_publique + supp_familial_traitement + indemnite_residence\n assiette = min_(base_imposable, plaf_ass * traitement_indiciaire_brut * eligible)\n bareme_rafp = _P.cotsoc.cotisations_employeur.public_titulaire_etat['rafp']\n rafp_employeur = eligible * bareme_rafp.calc(assiette)\n return period, - rafp_employeur\n", "input_variables": ["traitement_indiciaire_brut", "primes_fonction_publique", "supp_familial_traitement", "categorie_salarie", "indemnite_residence"]}, "stop_instant": null, "start_instant": "2005-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Part salariale de la retraite additionelle de la fonction publique", "line_number": 234, "module": "travail_fonction_publique", "name": "rafp_salarie", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 241, "module": "travail_fonction_publique", "source": "@dated_function(start = date(2005, 1, 1))\ndef function(self, simulation, period):\n period = period.this_month\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n supp_familial_traitement = simulation.calculate('supp_familial_traitement', period)\n indemnite_residence = simulation.calculate('indemnite_residence', period)\n _P = simulation.legislation_at(period.start)\n\n eligible = ((categorie_salarie == CAT['public_titulaire_etat'])\n + (categorie_salarie == CAT['public_titulaire_territoriale'])\n + (categorie_salarie == CAT['public_titulaire_hospitaliere']))\n\n plaf_ass = _P.cotsoc.sal.fonc.etat.rafp_plaf_assiette\n base_imposable = primes_fonction_publique + supp_familial_traitement + indemnite_residence\n assiette = min_(base_imposable, plaf_ass * traitement_indiciaire_brut * eligible)\n # M\u00eame r\u00e9gime pour les fonctions publiques d'Etat et des collectivit\u00e9 locales\n rafp_salarie = eligible * _P.cotsoc.cotisations_salarie.public_titulaire_etat['rafp'].calc(assiette)\n return period, -rafp_salarie\n", "input_variables": ["traitement_indiciaire_brut", "primes_fonction_publique", "supp_familial_traitement", "categorie_salarie", "indemnite_residence"]}, "stop_instant": null, "start_instant": "2005-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Exon\u00e9ration de cotisations patronales pour l'emploi d'un apprenti", "line_number": 98, "module": "contrat_professionnalisation", "name": "exoneration_cotisations_employeur_professionnalisation", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 119, "module": "contrat_professionnalisation", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n mmid_employeur = simulation.calculate('mmid_employeur', period)\n famille = simulation.calculate('famille', period)\n vieillesse_plafonnee_employeur = simulation.calculate('vieillesse_plafonnee_employeur', period)\n # FIXME: correspond bien \u00e0 vieillesse de base ?\n cotisations_exonerees = mmid_employeur + famille + vieillesse_plafonnee_employeur\n\n return period, cotisations_exonerees * (age > 45)\n", "input_variables": ["mmid_employeur", "age", "vieillesse_plafonnee_employeur", "famille"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'individu est en contrat de professionnalisation", "line_number": 12, "module": "contrat_professionnalisation", "name": "professionnalisation", "url": "http://www.apce.com/pid879/contrat-de-professionnalisation.html?espace=1&tp=1", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 18, "module": "contrat_professionnalisation", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n ass = simulation.calculate_add('ass', period)\n rsa = simulation.calculate('rsa', period)\n aah = simulation.calculate('aah', period)\n\n age_condition = (16 <= age) * (age < 25)\n dummy_ass = ass > 0\n dummy_rmi = rsa > 0\n dummy_aah = aah > 0\n\n return period, (age_condition + dummy_ass + dummy_aah + dummy_rmi) > 0\n", "input_variables": ["ass", "age", "rsa", "aah"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "R\u00e9mun\u00e9ration de l'apprenti", "line_number": 33, "module": "contrat_professionnalisation", "name": "remuneration_professionnalisation", "url": "http://www.apce.com/pid927/contrat-d-apprentissage.html?espace=1&tp=1&pagination=2", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 57, "module": "contrat_professionnalisation", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n smic = simulation.legislation_at(period.start).cotsoc.gen.smic_h_b * 52 * 35 / 12\n professionnalisation = simulation.calculate('professionnalisation', period)\n qualifie = simulation.calculate('qualifie')\n salaire_en_smic = [\n dict(\n part_de_smic_by_qualification = {\n 'non_qualifie': .55,\n 'qualifie': .65\n },\n age_min = 16,\n age_max = 21,\n ),\n dict(\n part_de_smic_by_qualification = {\n 1: .70,\n },\n age_min = 21,\n age_max = 25,\n ),\n dict(\n part_de_smic_by_qualification = {\n 1: 1.0,\n },\n age_min = 26,\n age_max = 99\n )\n ]\n\n taux_smic = age * 0.0\n for age_interval in salaire_en_smic:\n age_condition = (age_interval['age_min'] <= age) * (age <= age_interval['age_max'])\n taux_smic[age_condition] = sum([\n (qualifie[age_condition] == qualification) * part_de_smic\n for qualification, part_de_smic in age_interval['part_de_smic_by_qualification'].iteritems()\n ])\n return period, taux_smic * smic * professionnalisation\n", "input_variables": ["qualifie", "age", "professionnalisation"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CRDS sur les revenus du capital soumis au bar\u00e8me", "line_number": 66, "module": "capital", "name": "crds_cap_bar", "url": "http://fr.wikipedia.org/wiki/Contribution_pour_le_remboursement_de_la_dette_sociale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 73, "module": "capital", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_bar = simulation.calculate_add('rev_cap_bar', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -rev_cap_bar * _P.crds.capital\n", "input_variables": ["rev_cap_bar"], "parameters": ["crds.capital"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CRDS sur les revenus du capital soumis au bar\u00e8me (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 81, "module": "capital", "name": "crds_cap_bar_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 81, "module": "capital", "source": "class crds_cap_bar_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"CRDS sur les revenus du capital soumis au bar\u00e8me (pour le premier d\u00e9clarant du foyer fiscal)\"\n role = VOUS\n variable = crds_cap_bar\n", "input_variables": ["crds_cap_bar"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CRDS sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire", "line_number": 415, "module": "capital", "name": "crds_cap_lib", "url": "http://fr.wikipedia.org/wiki/Contribution_pour_le_remboursement_de_la_dette_sociale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 422, "module": "capital", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_lib = simulation.calculate_add('rev_cap_lib', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -rev_cap_lib * _P.crds.capital\n", "input_variables": ["rev_cap_lib"], "parameters": ["crds.capital"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CRDS sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 430, "module": "capital", "name": "crds_cap_lib_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 430, "module": "capital", "source": "class crds_cap_lib_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"CRDS sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire (pour le premier d\u00e9clarant du foyer fiscal)\" # noqa\n role = VOUS\n variable = crds_cap_lib\n", "input_variables": ["crds_cap_lib"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CRDS sur les revenus fonciers", "line_number": 321, "module": "capital", "name": "crds_fon", "url": "http://vosdroits.service-public.fr/particuliers/F2329.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule la CRDS sur les revenus fonciers\nAttention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer", "line_number": 327, "module": "capital", "source": "def function(self, simulation, period):\n '''\n Calcule la CRDS sur les revenus fonciers\n Attention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer\n '''\n period = period.this_year\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -rev_cat_rfon * _P.crds.capital\n", "input_variables": ["rev_cat_rfon"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CRDS sur les plus-values immobili\u00e8res", "line_number": 235, "module": "capital", "name": "crds_pv_immo", "url": "http://fr.wikipedia.org/wiki/Contribution_pour_le_remboursement_de_la_dette_sociale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule la CRDS sur les plus-values de cession immobili\u00e8re", "line_number": 241, "module": "capital", "source": "def function(self, simulation, period):\n \"\"\"\n Calcule la CRDS sur les plus-values de cession immobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vz = simulation.calculate('f3vz', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -f3vz * _P.crds.capital\n", "input_variables": ["f3vz"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CRDS sur les plus-values de cession de valeurs mobili\u00e8res", "line_number": 150, "module": "capital", "name": "crds_pv_mo", "url": "http://fr.wikipedia.org/wiki/Contribution_pour_le_remboursement_de_la_dette_sociale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule la CRDS sur les plus-values de cession mobili\u00e8re", "line_number": 156, "module": "capital", "source": "def function(self, simulation, period):\n \"\"\"\n Calcule la CRDS sur les plus-values de cession mobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -f3vg * _P.crds.capital\n", "input_variables": ["f3vg"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CSG sur les revenus du capital soumis au bar\u00e8me", "line_number": 44, "module": "capital", "name": "csg_cap_bar", "url": "http://fr.wikipedia.org/wiki/Contribution_sociale_g\u00e9n\u00e9ralis\u00e9e", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 51, "module": "capital", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_bar = simulation.calculate_add('rev_cap_bar', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -rev_cap_bar * _P.csg.capital.glob\n", "input_variables": ["rev_cap_bar"], "parameters": ["csg.capital.glob"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG sur les revenus du capital soumis au bar\u00e8me (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 59, "module": "capital", "name": "csg_cap_bar_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 59, "module": "capital", "source": "class csg_cap_bar_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"CSG sur les revenus du capital soumis au bar\u00e8me (pour le premier d\u00e9clarant du foyer fiscal)\"\n role = VOUS\n variable = csg_cap_bar\n", "input_variables": ["csg_cap_bar"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CSG sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire", "line_number": 393, "module": "capital", "name": "csg_cap_lib", "url": "http://fr.wikipedia.org/wiki/Contribution_sociale_g\u00e9n\u00e9ralis\u00e9e", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 400, "module": "capital", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_lib = simulation.calculate_add('rev_cap_lib', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -rev_cap_lib * _P.csg.capital.glob\n", "input_variables": ["rev_cap_lib"], "parameters": ["csg.capital.glob"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 408, "module": "capital", "name": "csg_cap_lib_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 408, "module": "capital", "source": "class csg_cap_lib_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"CSG sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire (pour le premier d\u00e9clarant du foyer fiscal)\" # noqa\n role = VOUS\n variable = csg_cap_lib\n", "input_variables": ["csg_cap_lib"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CSG sur les revenus fonciers", "line_number": 303, "module": "capital", "name": "csg_fon", "url": "http://fr.wikipedia.org/wiki/Contribution_sociale_g%C3%A9n%C3%A9ralis%C3%A9e", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule la CSG sur les revenus fonciers\nAttention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer", "line_number": 309, "module": "capital", "source": "def function(self, simulation, period):\n '''\n Calcule la CSG sur les revenus fonciers\n Attention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer\n '''\n period = period.this_year\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -rev_cat_rfon * _P.csg.capital.glob\n", "input_variables": ["rev_cat_rfon"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CSG sur les plus-values immobili\u00e8res", "line_number": 218, "module": "capital", "name": "csg_pv_immo", "url": "http://fr.wikipedia.org/wiki/Contribution_sociale_g%C3%A9n%C3%A9ralis%C3%A9e", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule la CSG sur les plus-values de cession immobili\u00e8re", "line_number": 224, "module": "capital", "source": "def function(self, simulation, period):\n \"\"\"\n Calcule la CSG sur les plus-values de cession immobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vz = simulation.calculate('f3vz', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -f3vz * _P.csg.capital.glob\n", "input_variables": ["f3vz"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "CSG sur les plus-values de cession de valeurs mobili\u00e8res", "line_number": 133, "module": "capital", "name": "csg_pv_mo", "url": "http://vosdroits.service-public.fr/particuliers/F21618.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule la CSG sur les plus-values de cession mobili\u00e8re", "line_number": 139, "module": "capital", "source": "def function(self, simulation, period):\n \"\"\"\n Calcule la CSG sur les plus-values de cession mobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -f3vg * _P.csg.capital.glob\n", "input_variables": ["f3vg"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Pr\u00e9l\u00e8vements sociaux sur les revenus du capital soumis au bar\u00e8me", "line_number": 88, "module": "capital", "name": "prelsoc_cap_bar", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&paf_gm=content&typePage=cpr02&sfid=501&espId=1&impot=CS", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 95, "module": "capital", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 12, 31))\ndef function_2002_2005(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_bar = simulation.calculate_add('rev_cap_bar', period)\n P = simulation.legislation_at(period.start).prelsoc\n\n total = P.base_pat\n return period, -rev_cap_bar * total\n", "input_variables": ["rev_cap_bar"], "parameters": ["prelsoc.add_pat", "prelsoc.base_pat", "prelsoc.rsa"]}, "stop_instant": "2005-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 104, "module": "capital", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_2006_2008(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_bar = simulation.calculate_add('rev_cap_bar', period)\n P = simulation.legislation_at(period.start).prelsoc\n\n total = P.base_pat + P.add_pat\n return period, -rev_cap_bar * total\n", "input_variables": ["rev_cap_bar"], "parameters": ["prelsoc.add_pat", "prelsoc.base_pat", "prelsoc.rsa"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 113, "module": "capital", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2015, 12, 31))\ndef function_2009_2015(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_bar = simulation.calculate_add('rev_cap_bar', period)\n P = simulation.legislation_at(period.start).prelsoc\n\n total = P.base_pat + P.add_pat + P.rsa\n return period, -rev_cap_bar * total\n", "input_variables": ["rev_cap_bar"], "parameters": ["prelsoc.add_pat", "prelsoc.base_pat", "prelsoc.rsa"]}, "stop_instant": "2015-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pr\u00e9l\u00e8vements sociaux sur les revenus du capital soumis au bar\u00e8me (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 123, "module": "capital", "name": "prelsoc_cap_bar_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 123, "module": "capital", "source": "class prelsoc_cap_bar_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Pr\u00e9l\u00e8vements sociaux sur les revenus du capital soumis au bar\u00e8me (pour le premier d\u00e9clarant du foyer fiscal)\" # noqa\n role = VOUS\n variable = prelsoc_cap_bar\n", "input_variables": ["prelsoc_cap_bar"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Pr\u00e9l\u00e8vements sociaux sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire", "line_number": 437, "module": "capital", "name": "prelsoc_cap_lib", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&paf_dm=popup&paf_gm=content&typePage=cpr02&sfid=501&espId=1&impot=CS", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 444, "module": "capital", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n rev_cap_lib = simulation.calculate_add('rev_cap_lib', period)\n prelsoc = simulation.legislation_at(period.start).prelsoc\n\n start_year = period.start.year\n if start_year < 2006:\n total = prelsoc.base_pat\n elif start_year < 2009:\n total = prelsoc.base_pat + prelsoc.add_pat\n else:\n total = prelsoc.base_pat + prelsoc.add_pat + prelsoc.rsa\n return period, -rev_cap_lib * total\n", "input_variables": ["rev_cap_lib"], "parameters": ["prelsoc.add_pat", "prelsoc.base_pat", "prelsoc.rsa"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pr\u00e9l\u00e8vements sociaux sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 459, "module": "capital", "name": "prelsoc_cap_lib_declarant1", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 459, "module": "capital", "source": "class prelsoc_cap_lib_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Pr\u00e9l\u00e8vements sociaux sur les revenus du capital soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire (pour le premier d\u00e9clarant du foyer fiscal)\" # noqa\n role = VOUS\n variable = prelsoc_cap_lib\n", "input_variables": ["prelsoc_cap_lib"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Pr\u00e9l\u00e8vements sociaux sur les revenus fonciers", "line_number": 339, "module": "capital", "name": "prelsoc_fon", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&paf_dm=popup&paf_gm=content&typePage=cpr02&sfid=501&espId=1&impot=CS", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les revenus fonciers\nAttention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer", "line_number": 345, "module": "capital", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 12, 31))\ndef function_20020101_20051231(self, simulation, period):\n '''\n Calcule le pr\u00e9l\u00e8vement social sur les revenus fonciers\n Attention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer\n '''\n period = period.this_year\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat\n\n return period, -rev_cat_rfon * total\n", "input_variables": ["rev_cat_rfon"]}, "stop_instant": "2005-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les revenus fonciers\nAttention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer", "line_number": 360, "module": "capital", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n '''\n Calcule le pr\u00e9l\u00e8vement social sur les revenus fonciers\n Attention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer\n '''\n period = period.this_year\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat + P.add_pat\n\n return period, -rev_cat_rfon * total\n", "input_variables": ["rev_cat_rfon"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les revenus fonciers\nAttention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer", "line_number": 375, "module": "capital", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2015, 12, 31))\ndef function_20090101_20151231(self, simulation, period):\n '''\n Calcule le pr\u00e9l\u00e8vement social sur les revenus fonciers\n Attention : assiette CSG = asiette IR valable 2006-2014 mais pourrait changer\n '''\n period = period.this_year\n rev_cat_rfon = simulation.calculate('rev_cat_rfon', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat + P.add_pat + P.rsa\n return period, -rev_cat_rfon * total\n", "input_variables": ["rev_cat_rfon"]}, "stop_instant": "2015-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Pr\u00e9l\u00e8vements sociaux sur les plus-values immobili\u00e8res", "line_number": 252, "module": "capital", "name": "prelsoc_pv_immo", "url": "http://www.pap.fr/argent/impots/les-plus-values-immobilieres/a1314/l-imposition-de-la-plus-value-immobiliere", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession immobili\u00e8re", "line_number": 258, "module": "capital", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 12, 31))\ndef function_20020101_20051231(self, simulation, period):\n \"\"\"\n Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession immobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vz = simulation.calculate('f3vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat\n\n return period, -f3vz * total\n", "input_variables": ["f3vz"]}, "stop_instant": "2005-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession immobili\u00e8re", "line_number": 272, "module": "capital", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n \"\"\"\n Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession immobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vz = simulation.calculate('f3vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat + P.add_pat\n\n return period, -f3vz * total\n", "input_variables": ["f3vz"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession immobili\u00e8re", "line_number": 286, "module": "capital", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2015, 12, 31))\ndef function_20090101_20151231(self, simulation, period):\n \"\"\"\n Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession immobili\u00e8re\n \"\"\"\n period = period.this_year\n f3vz = simulation.calculate('f3vz', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat + P.add_pat + P.rsa\n return period, -f3vz * total\n", "input_variables": ["f3vz"]}, "stop_instant": "2015-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Pr\u00e9l\u00e8vements sociaux sur les plus-values de cession de valeurs mobili\u00e8res", "line_number": 167, "module": "capital", "name": "prelsoc_pv_mo", "url": "http://www.impots.gouv.fr/portal/dgi/public/particuliers.impot?pageId=part_ctrb_soc&paf_dm=popup&paf_gm=content&typePage=cpr02&sfid=501&espId=1&impot=CS", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les plus-values\nde cession de valeurs mobili\u00e8res", "line_number": 173, "module": "capital", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 12, 31))\ndef function_20020101_20051231(self, simulation, period):\n \"\"\"\n Calcule le pr\u00e9l\u00e8vement social sur les plus-values\n de cession de valeurs mobili\u00e8res\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat\n return period, -f3vg * total\n", "input_variables": ["f3vg"]}, "stop_instant": "2005-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les plus-values\nde cession de valeurs mobili\u00e8res", "line_number": 187, "module": "capital", "source": "@dated_function(start = date(2006, 1, 1), stop = date(2008, 12, 31))\ndef function_20060101_20081231(self, simulation, period):\n \"\"\"\n Calcule le pr\u00e9l\u00e8vement social sur les plus-values\n de cession de valeurs mobili\u00e8res\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat + P.add_pat\n return period, -f3vg * total\n", "input_variables": ["f3vg"]}, "stop_instant": "2008-12-31", "start_instant": "2006-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession de valeurs mobili\u00e8res", "line_number": 201, "module": "capital", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2015, 12, 31))\ndef function_20090101_20151231(self, simulation, period):\n \"\"\"\n Calcule le pr\u00e9l\u00e8vement social sur les plus-values de cession de valeurs mobili\u00e8res\n \"\"\"\n period = period.this_year\n f3vg = simulation.calculate('f3vg', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.prelsoc\n total = P.base_pat + P.add_pat + P.rsa\n return period, -f3vg * total\n", "input_variables": ["f3vg"]}, "stop_instant": "2015-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette CSG - CRDS", "line_number": 18, "module": "activite", "name": "assiette_csg_abattue", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 23, "module": "activite", "source": "def function(self, simulation, period):\n period = period.this_month\n primes_salaires = simulation.calculate('primes_salaires', period)\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n # indemnites_journalieres_maladie = simulation.calculate('indemnites_journalieres_maladie', period)\n # TODO: mettre \u00e0 part ?\n indemnite_residence = simulation.calculate('indemnite_residence', period)\n supp_familial_traitement = simulation.calculate('supp_familial_traitement', period)\n hsup = simulation.calculate('hsup', period)\n remuneration_principale = simulation.calculate('remuneration_principale', period)\n stage_gratification_reintegration = simulation.calculate('stage_gratification_reintegration', period)\n indemnite_fin_contrat = simulation.calculate('indemnite_fin_contrat', period)\n\n return period, (\n remuneration_principale + salaire_de_base + primes_salaires + primes_fonction_publique +\n indemnite_residence + stage_gratification_reintegration + supp_familial_traitement - hsup +\n indemnite_fin_contrat\n )\n", "input_variables": ["salaire_de_base", "hsup", "stage_gratification_reintegration", "primes_salaires", "indemnite_residence", "primes_fonction_publique", "indemnite_fin_contrat", "supp_familial_traitement", "remuneration_principale"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Assiette CSG - CRDS", "line_number": 44, "module": "activite", "name": "assiette_csg_non_abattue", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 49, "module": "activite", "source": "def function(self, simulation, period):\n period = period.this_month\n prevoyance_obligatoire_cadre = simulation.calculate('prevoyance_obligatoire_cadre', period)\n complementaire_sante_employeur = simulation.calculate_add('complementaire_sante_employeur', period)\n prise_en_charge_employeur_prevoyance_complementaire = simulation.calculate_add(\n 'prise_en_charge_employeur_prevoyance_complementaire', period)\n\n # TODO + indemnites_journalieres_maladie,\n return period, (\n - prevoyance_obligatoire_cadre + prise_en_charge_employeur_prevoyance_complementaire\n - complementaire_sante_employeur\n )\n", "input_variables": ["prevoyance_obligatoire_cadre", "complementaire_sante_employeur", "prise_en_charge_employeur_prevoyance_complementaire"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CRDS sur les salaires", "line_number": 108, "module": "activite", "name": "crds_salaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 114, "module": "activite", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period)\n assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n\n law = simulation.legislation_at(period.start)\n\n montant_crds = montant_csg_crds(\n law_node = law.crds.activite,\n base_avec_abattement = assiette_csg_abattue,\n base_sans_abattement = assiette_csg_non_abattue,\n plafond_securite_sociale = plafond_securite_sociale,\n )\n\n return period, montant_crds\n", "input_variables": ["assiette_csg_abattue", "plafond_securite_sociale", "assiette_csg_non_abattue"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG d\u00e9ductible sur les salaires", "line_number": 63, "module": "activite", "name": "csg_deductible_salaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 69, "module": "activite", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period)\n assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n\n law = simulation.legislation_at(period.start)\n montant_csg = montant_csg_crds(\n base_avec_abattement = assiette_csg_abattue,\n base_sans_abattement = assiette_csg_non_abattue,\n law_node = law.csg.activite.deductible,\n plafond_securite_sociale = plafond_securite_sociale,\n )\n return period, montant_csg\n", "input_variables": ["assiette_csg_abattue", "plafond_securite_sociale", "assiette_csg_non_abattue"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG imposables sur les salaires", "line_number": 85, "module": "activite", "name": "csg_imposable_salaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 91, "module": "activite", "source": "def function(self, simulation, period):\n period = period.this_month\n assiette_csg_abattue = simulation.calculate('assiette_csg_abattue', period)\n assiette_csg_non_abattue = simulation.calculate('assiette_csg_non_abattue', period)\n plafond_securite_sociale = simulation.calculate('plafond_securite_sociale', period)\n law = simulation.legislation_at(period.start)\n\n montant_csg = montant_csg_crds(\n base_avec_abattement = assiette_csg_abattue,\n base_sans_abattement = assiette_csg_non_abattue,\n law_node = law.csg.activite.imposable,\n plafond_securite_sociale = plafond_securite_sociale,\n )\n\n return period, montant_csg\n", "input_variables": ["assiette_csg_abattue", "plafond_securite_sociale", "assiette_csg_non_abattue"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Forfait social", "line_number": 132, "module": "activite", "name": "forfait_social", "start": "2009-01-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 142, "module": "activite", "source": "def function(self, simulation, period):\n prevoyance_obligatoire_cadre = simulation.calculate_add('prevoyance_obligatoire_cadre', period)\n prise_en_charge_employeur_prevoyance_complementaire = simulation.calculate_add(\n 'prise_en_charge_employeur_prevoyance_complementaire', period)\n prise_en_charge_employeur_retraite_complementaire = simulation.calculate_add(\n 'prise_en_charge_employeur_retraite_complementaire', period)\n complementaire_sante_employeur = simulation.calculate_add('complementaire_sante_employeur', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n\n parametres = simulation.legislation_at(period.start).forfait_social\n taux_plein = parametres.taux_plein\n taux_reduit = parametres.taux_reduit\n seuil_effectif_taux_reduit = parametres.seuil_effectif_prevoyance_complementaire\n\n # TODO: complete this\n assiette_taux_plein = prise_en_charge_employeur_retraite_complementaire # TODO: compl\u00e9ter l'assiette\n\n # Les cotisations de pr\u00e9voyance compl\u00e9mentaire qui rentrent en compte dans l'assiette du taux r\u00e9duit\n # ne concernent que les entreprises de 10 ou 11 employ\u00e9s et plus\n # https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/le-forfait-social/le-forfait-social-au-taux-de-8.html\n assiette_taux_reduit = (\n - prevoyance_obligatoire_cadre + prise_en_charge_employeur_prevoyance_complementaire\n - complementaire_sante_employeur\n ) * (effectif_entreprise >= seuil_effectif_taux_reduit)\n\n return period, - (\n assiette_taux_plein * taux_plein + assiette_taux_reduit * taux_reduit\n )\n", "input_variables": ["prevoyance_obligatoire_cadre", "prise_en_charge_employeur_retraite_complementaire", "complementaire_sante_employeur", "prise_en_charge_employeur_prevoyance_complementaire", "effectif_entreprise"], "parameters": ["forfait_social.seuil_effectif_prevoyance_complementaire", "forfait_social.taux_reduit", "forfait_social.taux_plein"]}}, {"@type": "Float", "default": 0, "entity": "foyers_fiscaux", "label": "Revenu net des cotisations sociales pour le r\u00e9gime microsocial", "line_number": 255, "module": "activite", "name": "rev_microsocial", "start": "2009-01-01", "url": "http://www.apce.com/pid6137/regime-micro-social.html", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 263, "module": "activite", "source": "def function(self, simulation, period):\n period = period.this_year\n assiette_service = simulation.calculate('assiette_service', period)\n assiette_vente = simulation.calculate('assiette_vente', period)\n assiette_proflib = simulation.calculate('assiette_proflib', period)\n _P = simulation.legislation_at(period.start)\n\n P = _P.cotsoc.sal.microsocial\n total = assiette_service + assiette_vente + assiette_proflib\n prelsoc_ms = assiette_service * P.servi + assiette_vente * P.vente + assiette_proflib * P.rsi\n return period, total - prelsoc_ms\n", "input_variables": ["assiette_proflib", "assiette_service", "assiette_vente"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu net des cotisations sociales sous r\u00e9gime microsocial (auto-entrepreneur) (pour le premier d\u00e9clarant du foyer fiscal)", "line_number": 276, "module": "activite", "name": "rev_microsocial_declarant1", "start": "2009-01-01", "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 276, "module": "activite", "source": "class rev_microsocial_declarant1(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Revenu net des cotisations sociales sous r\u00e9gime microsocial (auto-entrepreneur) (pour le premier d\u00e9clarant du foyer fiscal)\" # noqa\n role = VOUS\n variable = rev_microsocial\n", "input_variables": ["rev_microsocial"]}}, {"@type": "Float", "cerfa_field": {"0": "1AJ", "1": "1BJ", "2": "1CJ", "3": "1DJ", "4": "1EJ"}, "default": 0, "entity": "individus", "label": "Salaires imposables", "line_number": 172, "module": "activite", "name": "salaire_imposable", "val_type": "monetary", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 188, "module": "activite", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n primes_salaires = simulation.calculate('primes_salaires', period)\n primes_fonction_publique = simulation.calculate('primes_fonction_publique', period)\n indemnite_residence = simulation.calculate('indemnite_residence', period)\n supp_familial_traitement = simulation.calculate('supp_familial_traitement', period)\n csg_deductible_salaire = simulation.calculate('csg_deductible_salaire', period)\n cotisations_salariales = simulation.calculate('cotisations_salariales', period)\n remuneration_principale = simulation.calculate('remuneration_principale', period)\n hsup = simulation.calculate('hsup', period)\n rev_microsocial_declarant1 = simulation.calculate_divide('rev_microsocial_declarant1', period)\n indemnite_fin_contrat = simulation.calculate('indemnite_fin_contrat', period)\n complementaire_sante_salarie = simulation.calculate('complementaire_sante_salarie', period)\n\n return period, (\n salaire_de_base + primes_salaires + remuneration_principale +\n primes_fonction_publique + indemnite_residence + supp_familial_traitement + csg_deductible_salaire +\n cotisations_salariales - hsup + rev_microsocial_declarant1 + indemnite_fin_contrat + complementaire_sante_salarie\n )\n", "input_variables": ["cotisations_salariales", "csg_deductible_salaire", "salaire_de_base", "complementaire_sante_salarie", "hsup", "rev_microsocial_declarant1", "primes_salaires", "indemnite_residence", "primes_fonction_publique", "indemnite_fin_contrat", "supp_familial_traitement", "remuneration_principale"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Salaires nets d'apr\u00e8s d\u00e9finition INSEE", "line_number": 210, "module": "activite", "name": "salaire_net", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcul du salaire net d'apr\u00e8s d\u00e9finition INSEE\nnet = net de csg et crds", "line_number": 217, "module": "activite", "source": "def function(self, simulation, period):\n '''\n Calcul du salaire net d'apr\u00e8s d\u00e9finition INSEE\n net = net de csg et crds\n '''\n period = period.start.period(u'month').offset('first-of')\n\n # salaire_de_base = simulation.get_array('salaire_de_base', period)\n # if salaire_de_base is None:\n # return period, self.zeros()\n salaire_imposable = simulation.calculate('salaire_imposable', period)\n crds_salaire = simulation.calculate('crds_salaire', period)\n csg_imposable_salaire = simulation.calculate('csg_imposable_salaire', period)\n\n return period, salaire_imposable + crds_salaire + csg_imposable_salaire\n", "input_variables": ["salaire_imposable", "crds_salaire", "csg_imposable_salaire"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taxe exceptionnelle de solidarit\u00e9 sur les tr\u00e8s hautes r\u00e9mun\u00e9rations", "line_number": 234, "module": "activite", "name": "tehr", "url": "http://vosdroits.service-public.fr/professionnels-entreprises/F32096.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 241, "module": "activite", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n salaire_de_base = simulation.calculate_add('salaire_de_base', period) # TODO: check base\n law = simulation.legislation_at(period.start)\n\n bar = law.cotsoc.tehr\n return period, -bar.calc(salaire_de_base)\n", "input_variables": ["salaire_de_base"], "parameters": ["cotsoc.tehr"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Contribution additionnelle de solidarit\u00e9 et d'autonomie", "line_number": 233, "module": "remplacement", "name": "casa", "url": "http://www.service-public.fr/actualites/002691.html", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 239, "module": "remplacement", "source": "@dated_function(date(2013, 4, 1))\ndef function_2013(self, simulation, period):\n period = period.this_month\n retraite_brute = simulation.calculate('retraite_brute', period)\n rfr_holder = simulation.compute('rfr', period.start.offset('first-of', 'year').offset(-2, 'year').period('year'))\n taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period)\n law = simulation.legislation_at(period.start)\n\n rfr = self.cast_from_entity_to_roles(rfr_holder)\n\n casa = (taux_csg_remplacement == 3) * law.prelsoc.add_ret * retraite_brute * (rfr > 13900)\n # TODO: insert in parameters file and deal with nombre de part fiscales\n\n return period, - casa\n", "input_variables": ["retraite_brute", "taux_csg_remplacement", "rfr"]}, "stop_instant": null, "start_instant": "2013-04-01"}]}}, {"@type": "Float", "cerfa_field": {"0": "1AP", "1": "1BP", "2": "1CP", "3": "1DP", "4": "1EP"}, "default": 0, "entity": "individus", "label": "Allocations ch\u00f4mage imposables", "line_number": 125, "module": "remplacement", "name": "chomage_imposable", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/chomage.htm", "val_type": "monetary", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 140, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period\n chomage_brut = simulation.calculate('chomage_brut', period)\n csg_deductible_chomage = simulation.calculate_add('csg_deductible_chomage', period)\n\n return period, chomage_brut + csg_deductible_chomage\n", "input_variables": ["csg_deductible_chomage", "chomage_brut"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Allocations ch\u00f4mage nettes", "line_number": 148, "module": "remplacement", "name": "chomage_net", "url": "http://vosdroits.service-public.fr/particuliers/N549.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 156, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period\n chomage_imposable = simulation.calculate('chomage_imposable', period)\n csg_imposable_chomage = simulation.calculate_add('csg_imposable_chomage', period)\n crds_chomage = simulation.calculate_add('crds_chomage', period)\n\n return period, chomage_imposable + csg_imposable_chomage + crds_chomage\n", "input_variables": ["chomage_imposable", "csg_imposable_chomage", "crds_chomage"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CRDS sur les allocations ch\u00f4mage", "line_number": 90, "module": "remplacement", "name": "crds_chomage", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/contrib-remb-dette-sociale.htm", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 97, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period.this_month\n chomage_brut = simulation.calculate('chomage_brut', period)\n csg_deductible_chomage = simulation.calculate('csg_deductible_chomage', period)\n csg_imposable_chomage = simulation.calculate('csg_imposable_chomage', period)\n taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period)\n law = simulation.legislation_at(period.start)\n\n smic_h_b = law.cotsoc.gen.smic_h_b\n # salaire_mensuel_reference = chomage_brut / .7\n # heures_mensuelles = min_(salaire_mensuel_reference / smic_h_b, 35 * 52 / 12) # TODO: depuis 2001 mais avant ?\n heures_mensuelles = 35 * 52 / 12\n cho_seuil_exo = law.csg.chomage.min_exo * heures_mensuelles * smic_h_b\n\n montant_crds = montant_csg_crds(\n base_avec_abattement = chomage_brut,\n law_node = law.crds.activite,\n plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale,\n ) * (2 <= taux_csg_remplacement)\n\n crds_chomage = max_(\n -montant_crds - max_(\n cho_seuil_exo - (chomage_brut + csg_imposable_chomage + csg_deductible_chomage + montant_crds), 0\n ), 0\n )\n return period, -crds_chomage\n", "input_variables": ["csg_deductible_chomage", "csg_imposable_chomage", "chomage_brut", "taux_csg_remplacement"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "CRDS sur les prestations familiales)", "line_number": 297, "module": "remplacement", "name": "crds_pfam", "url": "http://www.cleiss.fr/docs/regimes/regime_francea1.html", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Renvoie la CRDS des prestations familiales", "line_number": 303, "module": "remplacement", "source": "def function(self, simulation, period):\n '''\n Renvoie la CRDS des prestations familiales\n '''\n period = period\n af = simulation.calculate_add('af', period)\n cf = simulation.calculate_add('cf', period)\n asf = simulation.calculate_add('asf', period)\n ars = simulation.calculate('ars', period)\n paje = simulation.calculate_add('paje', period)\n ape = simulation.calculate_add('ape', period)\n apje = simulation.calculate_add('apje', period)\n _P = simulation.legislation_at(period.start)\n\n return period, -(af + cf + asf + ars + paje + ape + apje) * _P.fam.af.crds\n", "input_variables": ["ars", "af", "paje", "cf", "asf", "apje", "ape"], "parameters": ["fam.af.crds"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CRDS sur les pensions de retraite", "line_number": 212, "module": "remplacement", "name": "crds_retraite", "url": "http://www.pensions.bercy.gouv.fr/vous-%C3%AAtes-retrait%C3%A9-ou-pensionn%C3%A9/le-calcul-de-ma-pension/les-pr%C3%A9l%C3%A8vements-effectu%C3%A9s-sur-ma-pension", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 219, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period.this_month\n retraite_brute = simulation.calculate('retraite_brute', period)\n taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period)\n law = simulation.legislation_at(period.start)\n\n montant_crds = montant_csg_crds(\n base_sans_abattement = retraite_brute,\n law_node = law.crds.retraite,\n plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale,\n ) * (taux_csg_remplacement == 1)\n return period, montant_crds\n", "input_variables": ["retraite_brute", "taux_csg_remplacement"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG d\u00e9ductible sur les allocations ch\u00f4mage", "line_number": 37, "module": "remplacement", "name": "csg_deductible_chomage", "url": "http://vosdroits.service-public.fr/particuliers/F2329.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 44, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period.this_month\n chomage_brut = simulation.calculate('chomage_brut', period)\n csg_imposable_chomage = simulation.calculate('csg_imposable_chomage', period)\n taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period)\n law = simulation.legislation_at(period.start)\n montant_csg = montant_csg_crds(\n base_avec_abattement = chomage_brut,\n indicatrice_taux_plein = (taux_csg_remplacement == 3),\n indicatrice_taux_reduit = (taux_csg_remplacement == 2),\n law_node = law.csg.chomage.deductible,\n plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale,\n )\n nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ?\n cho_seuil_exo = law.csg.chomage.min_exo * nbh_travail * law.cotsoc.gen.smic_h_b\n csg_deductible_chomage = max_(\n - montant_csg - max_(cho_seuil_exo - (chomage_brut + csg_imposable_chomage + montant_csg), 0),\n 0,\n )\n\n return period, - csg_deductible_chomage\n", "input_variables": ["csg_imposable_chomage", "chomage_brut", "taux_csg_remplacement"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG d\u00e9ductible sur les pensions de retraite", "line_number": 169, "module": "remplacement", "name": "csg_deductible_retraite", "url": "https://www.lassuranceretraite.fr/cs/Satellite/PUBPrincipale/Retraites/Paiement-Votre-Retraite/Prelevements-Sociaux?packedargs=null", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 176, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period.this_month\n retraite_brute = simulation.calculate('retraite_brute', period)\n taux_csg_remplacement = simulation.calculate('taux_csg_remplacement', period)\n law = simulation.legislation_at(period.start)\n\n montant_csg = montant_csg_crds(\n base_sans_abattement = retraite_brute,\n indicatrice_taux_plein = (taux_csg_remplacement == 3),\n indicatrice_taux_reduit = (taux_csg_remplacement == 2),\n law_node = law.csg.retraite.deductible,\n plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale,\n )\n return period, montant_csg\n", "input_variables": ["retraite_brute", "taux_csg_remplacement"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG imposable sur les allocations ch\u00f4mage", "line_number": 67, "module": "remplacement", "name": "csg_imposable_chomage", "url": "http://vosdroits.service-public.fr/particuliers/F2329.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 74, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period.this_month\n chomage_brut = simulation.calculate('chomage_brut', period)\n law = simulation.legislation_at(period.start)\n\n montant_csg = montant_csg_crds(\n base_avec_abattement = chomage_brut,\n law_node = law.csg.chomage.imposable,\n plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale,\n )\n nbh_travail = 35 * 52 / 12 # = 151.67 # TODO: depuis 2001 mais avant ?\n cho_seuil_exo = law.csg.chomage.min_exo * nbh_travail * law.cotsoc.gen.smic_h_b\n csg_imposable_chomage = max_(- montant_csg - max_(cho_seuil_exo - (chomage_brut + montant_csg), 0), 0)\n return period, - csg_imposable_chomage\n", "input_variables": ["chomage_brut"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "CSG imposable sur les pensions de retraite", "line_number": 192, "module": "remplacement", "name": "csg_imposable_retraite", "url": "https://www.lassuranceretraite.fr/cs/Satellite/PUBPrincipale/Retraites/Paiement-Votre-Retraite/Prelevements-Sociaux?packedargs=null", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 199, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period.this_month\n retraite_brute = simulation.calculate('retraite_brute', period)\n law = simulation.legislation_at(period.start)\n\n montant_csg = montant_csg_crds(\n base_sans_abattement = retraite_brute,\n law_node = law.csg.retraite.imposable,\n plafond_securite_sociale = law.cotsoc.gen.plafond_securite_sociale,\n )\n return period, montant_csg\n", "input_variables": ["retraite_brute"]}}, {"@type": "Float", "cerfa_field": {"0": "1AS", "1": "1BS", "2": "1CS", "3": "1DS", "4": "1ES"}, "default": 0, "entity": "individus", "label": "Retraites au sens strict imposables (rentes \u00e0 titre on\u00e9reux exclues)", "line_number": 255, "module": "remplacement", "name": "retraite_imposable", "url": "http://vosdroits.service-public.fr/particuliers/F415.xhtml", "val_type": "monetary", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 270, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period\n retraite_brute = simulation.calculate_add('retraite_brute', period)\n csg_deductible_retraite = simulation.calculate_add('csg_deductible_retraite', period)\n\n return period, retraite_brute + csg_deductible_retraite\n", "input_variables": ["retraite_brute", "csg_deductible_retraite"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pensions de retraite nettes", "line_number": 278, "module": "remplacement", "name": "retraite_nette", "url": "http://vosdroits.service-public.fr/particuliers/N20166.xhtml", "formula": {"@type": "SimpleFormula", "comments": "# def function(self, retraite_imposable, csg_imposable_retraite, crds_retraite, casa):\n# return retraite_imposable + csg_imposable_retraite + crds_retraite + casa\n", "doc": null, "line_number": 288, "module": "remplacement", "source": "def function(self, simulation, period):\n period = period\n retraite_imposable = simulation.calculate('retraite_imposable', period)\n csg_imposable_retraite = simulation.calculate_add('csg_imposable_retraite', period)\n crds_retraite = simulation.calculate_add('crds_retraite', period)\n\n return period, retraite_imposable + csg_imposable_retraite + crds_retraite\n", "input_variables": ["crds_retraite", "csg_imposable_retraite", "retraite_imposable"]}}, {"@type": "Enumeration", "default": "3", "entity": "individus", "label": "Taux retenu sur la CSG des revenus de remplacment", "line_number": 16, "module": "remplacement", "name": "taux_csg_remplacement", "labels": {"0": "Non renseign\u00e9/non pertinent", "1": "Exon\u00e9r\u00e9", "2": "Taux r\u00e9duit", "3": "Taux plein"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "", "line_number": 11, "module": "versement_transport", "name": "taux_versement_transport", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 16, "module": "versement_transport", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n depcom_entreprise = simulation.calculate('depcom_entreprise', period)\n effectif_entreprise = simulation.calculate('effectif_entreprise', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n seuil_effectif = simulation.legislation_at(period.start).cotsoc.versement_transport.seuil_effectif\n\n preload_taux_versement_transport()\n public = (categorie_salarie >= 2)\n taux_versement_transport = fromiter(\n (\n get_taux_versement_transport(code_commune, period)\n for code_commune in depcom_entreprise\n ),\n dtype = 'float',\n )\n # \"L'entreprise emploie-t-elle plus de 9 ou 10 salari\u00e9s dans le p\u00e9rim\u00e8tre de l'Autorit\u00e9 organisatrice de transport\n # (AOT) suivante ou syndicat mixte de transport (SMT)\"\n return period, taux_versement_transport * or_(effectif_entreprise >= seuil_effectif, public) / 100\n", "input_variables": ["effectif_entreprise", "categorie_salarie", "depcom_entreprise"], "parameters": ["cotsoc.versement_transport.seuil_effectif"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Versement transport", "line_number": 38, "module": "versement_transport", "name": "versement_transport", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 43, "module": "versement_transport", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n assiette_cotisations_sociales = simulation.calculate('assiette_cotisations_sociales', period)\n taux_versement_transport = simulation.calculate('taux_versement_transport', period)\n cotisation = - taux_versement_transport * assiette_cotisations_sociales\n return period, cotisation\n", "input_variables": ["taux_versement_transport", "assiette_cotisations_sociales"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Allocation d'aide au retour \u00e0 l'emploi", "line_number": 39, "module": "autres", "name": "allocation_aide_retour_emploi"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Allocation de s\u00e9curisation professionnelle", "line_number": 45, "module": "autres", "name": "allocation_securisation_professionnelle"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Bourse de l'enseignement sup\u00e9rieur", "line_number": 81, "module": "autres", "name": "bourse_enseignement_sup"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "D\u00e9dommagement vers\u00e9 aux victimes de l'amiante", "line_number": 63, "module": "autres", "name": "dedommagement_victime_amiante"}, {"@type": "Integer", "cerfa_field": "8TA", "default": 0, "entity": "foyers_fiscaux", "label": "Retenue \u00e0 la source en France ou imp\u00f4t pay\u00e9 \u00e0 l'\u00e9tranger", "line_number": 91, "module": "autres", "name": "f8ta", "val_type": "monetary"}, {"@type": "Boolean", "cerfa_field": "8TD", "default": false, "end": "2014-12-31", "entity": "foyers_fiscaux", "label": "Revenus non imposables d\u00e9passent la moiti\u00e9 du RFR", "line_number": 119, "module": "autres", "name": "f8td", "start": "2011-01-01"}, {"@type": "Integer", "cerfa_field": "8TD", "default": 0, "end": "2005-12-31", "entity": "foyers_fiscaux", "label": "Contribution exceptionnelle sur les hauts revenus", "line_number": 109, "module": "autres", "name": "f8td_2002_2005", "start": "2002-01-01"}, {"@type": "Integer", "cerfa_field": "8TH", "default": 0, "entity": "foyers_fiscaux", "label": "Retenue \u00e0 la source \u00e9lus locaux", "line_number": 100, "module": "autres", "name": "f8th", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TK", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus de l'\u00e9tranger exon\u00e9r\u00e9s d'imp\u00f4t", "line_number": 130, "module": "autres", "name": "f8ti", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8TK", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus de l'\u00e9tranger imposables", "line_number": 138, "module": "autres", "name": "f8tk", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "8UY", "default": 0, "entity": "foyers_fiscaux", "label": "Auto-entrepreneur : versements lib\u00e9ratoires d\u2019imp\u00f4t sur le revenu dont le remboursement est demand\u00e9", "line_number": 147, "module": "autres", "name": "f8uy", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Gains exceptionnels", "line_number": 32, "module": "autres", "name": "gains_exceptionnels"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s de volontariat", "line_number": 57, "module": "autres", "name": "indemnites_volontariat"}, {"@type": "Float", "cerfa_field": "{0: u'1AO', 1: u'1BO', 2: u'1CO', 3: u'1DO', 4: u'1EO'}", "default": 0, "entity": "individus", "label": "Pensions alimentaires per\u00e7ues", "line_number": 6, "module": "autres", "name": "pensions_alimentaires_percues", "val_type": "monetary"}, {"@type": "Boolean", "default": true, "entity": "individus", "label": "Pension d\u00e9clar\u00e9e", "line_number": 18, "module": "autres", "name": "pensions_alimentaires_percues_decl"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pensions alimentaires vers\u00e9es pour un individu", "line_number": 25, "module": "autres", "name": "pensions_alimentaires_versees_individu"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Pensions d'invalidit\u00e9", "line_number": 75, "module": "autres", "name": "pensions_invalidite"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Prestation compensatoire", "line_number": 69, "module": "autres", "name": "prestation_compensatoire"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Prime forfaitaire mensuelle pour la reprise d'activit\u00e9", "line_number": 51, "module": "autres", "name": "prime_forfaitaire_mensuelle_reprise_activite"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Allocation \u00e9quivalent retraite (AER)", "line_number": 12, "module": "retraite", "name": "aer"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Retraite brute", "line_number": 6, "module": "retraite", "name": "retraite_brute"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Retraite du combattant", "line_number": 19, "module": "retraite", "name": "retraite_combattant"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Ch\u00f4mage brut", "line_number": 20, "module": "chomage", "name": "chomage_brut"}, {"@type": "Boolean", "cerfa_field": "{0: u'1AI', 1: u'1BI', 2: u'1CI', 3: u'1DI', 4: u'1EI'}", "default": false, "entity": "individus", "label": "Demandeur d'emploi inscrit depuis plus d'un an", "line_number": 6, "module": "chomage", "name": "chomeur_longue_duree"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s de ch\u00f4mage partiel", "line_number": 26, "module": "chomage", "name": "indemnites_chomage_partiel"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Total des indemnit\u00e9s journali\u00e8res", "line_number": 43, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 48, "module": "indemnites_journalieres_securite_sociale", "source": "def function(self, simulation, period):\n ressources = [\n 'indemnites_journalieres_maternite',\n 'indemnites_journalieres_paternite',\n 'indemnites_journalieres_adoption',\n 'indemnites_journalieres_maladie',\n 'indemnites_journalieres_accident_travail',\n 'indemnites_journalieres_maladie_professionnelle',\n ]\n total = sum(simulation.calculate(ressource, period) for ressource in ressources)\n\n return period, total\n"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s journali\u00e8res d'accident du travail", "line_number": 29, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_accident_travail"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s journali\u00e8res d'adoption", "line_number": 17, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_adoption"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Total des indemnit\u00e9s journali\u00e8res imposables", "line_number": 62, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_imposables", "url": "http://vosdroits.service-public.fr/particuliers/F3152.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 68, "module": "indemnites_journalieres_securite_sociale", "source": "def function(self, simulation, period):\n indemnites_journalieres = simulation.calculate('indemnites_journalieres', period)\n indemnites_journalieres_accident_travail = simulation.calculate('indemnites_journalieres_accident_travail', period)\n indemnites_journalieres_maladie_professionnelle = simulation.calculate('indemnites_journalieres_accident_travail', period)\n result = indemnites_journalieres - 0.5 * (\n indemnites_journalieres_accident_travail + indemnites_journalieres_maladie_professionnelle\n )\n\n return period, result\n", "input_variables": ["indemnites_journalieres_accident_travail", "indemnites_journalieres"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s journali\u00e8res de maladie", "line_number": 23, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_maladie"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s journali\u00e8res de maladie professionnelle", "line_number": 35, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_maladie_professionnelle"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s journali\u00e8res de maternit\u00e9", "line_number": 5, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_maternite"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s journali\u00e8res de paternit\u00e9", "line_number": 11, "module": "indemnites_journalieres_securite_sociale", "name": "indemnites_journalieres_paternite"}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre d'enfants dans la famille au sens des allocations familiales pour le fonctionnaires", "line_number": 675, "module": "salarie", "name": "af_nbenf_fonc", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 681, "module": "salarie", "source": "def function(self, simulation, period):\n # Note : Cette variable est \"instantan\u00e9e\" : quelque soit la p\u00e9riode demand\u00e9e, elle retourne la valeur au premier\n # jour, sans changer la p\u00e9riode.\n age_holder = simulation.compute('age', period)\n salaire_de_base = simulation.calculate_add('salaire_de_base', period.start.period('month', 6).offset(-6))\n law = simulation.legislation_at(period.start)\n nbh_travaillees = 169\n smic_mensuel_brut = law.cotsoc.gen.smic_h_b * nbh_travaillees\n autonomie_financiere_holder = (salaire_de_base / 6) >= (law.fam.af.seuil_rev_taux * smic_mensuel_brut)\n age = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n af_nbenf = nb_enf(age, autonomie_financiere, law.fam.af.age1, law.fam.af.age2)\n\n return period, af_nbenf\n", "input_variables": ["age", "salaire_de_base"], "parameters": ["fam.af.seuil_rev_taux", "fam.af.age1", "cotsoc.gen.smic_h_b", "fam.af.age2"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Mode de recouvrement de l'all\u00e8gement de la cotisation d'allocations familiales", "line_number": 165, "module": "salarie", "name": "allegement_cotisation_allocations_familiales_mode_recouvrement", "labels": {"0": "fin_d_annee", "1": "anticipe_regularisation_fin_de_periode", "2": "progressif"}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Mode de recouvrement des all\u00e8gements Fillon", "line_number": 151, "module": "salarie", "name": "allegement_fillon_mode_recouvrement", "labels": {"0": "fin_d_annee", "1": "anticipe_regularisation_fin_de_periode", "2": "progressif"}}, {"@type": "Date", "default": "1970-01-01", "entity": "individus", "label": "Date de d\u00e9but du contrat d'apprentissage", "line_number": 179, "module": "salarie", "name": "apprentissage_contrat_debut", "val_type": "date"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taux ARRCO tranche A employeur) propre \u00e0 l'entreprise", "line_number": 185, "module": "salarie", "name": "arrco_tranche_a_taux_employeur"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taux ARRCO tranche A salari\u00e9) propre \u00e0 l'entreprise", "line_number": 191, "module": "salarie", "name": "arrco_tranche_a_taux_salarie"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Entreprise assujettie \u00e0 la taxe sur les salaires", "line_number": 197, "module": "salarie", "name": "assujettie_taxe_salaires"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Avantages en nature", "line_number": 508, "module": "salarie", "name": "avantage_en_nature", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 514, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n avantage_en_nature_valeur_reelle = simulation.calculate('avantage_en_nature_valeur_reelle', period)\n avantage_en_nature_valeur_forfaitaire = simulation.calculate('avantage_en_nature_valeur_forfaitaire', period)\n\n return period, avantage_en_nature_valeur_reelle + avantage_en_nature_valeur_forfaitaire\n", "input_variables": ["avantage_en_nature_valeur_forfaitaire", "avantage_en_nature_valeur_reelle"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Evaluation fofaitaire des avantages en nature ", "line_number": 522, "module": "salarie", "name": "avantage_en_nature_valeur_forfaitaire", "formula": {"@type": "SimpleFormula", "comments": "# TODO: coplete this function\n", "doc": null, "line_number": 529, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n avantage_en_nature_valeur_reelle = simulation.calculate('avantage_en_nature_valeur_reelle', period)\n\n return period, avantage_en_nature_valeur_reelle * 0\n", "input_variables": ["avantage_en_nature_valeur_reelle"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Avantages en nature (Valeur r\u00e9elle)", "line_number": 203, "module": "salarie", "name": "avantage_en_nature_valeur_reelle"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Bourse de recherche", "line_number": 23, "module": "salarie", "name": "bourse_recherche"}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Cat\u00e9gorie de salari\u00e9", "line_number": 454, "module": "salarie", "name": "categorie_salarie", "labels": {"0": "prive_non_cadre", "1": "prive_cadre", "2": "public_titulaire_etat", "3": "public_titulaire_militaire", "4": "public_titulaire_territoriale", "5": "public_titulaire_hospitaliere", "6": "public_non_titulaire"}}, {"@type": "String", "default": "", "entity": "individus", "label": "Localisation entreprise (Code postal)", "line_number": 283, "module": "salarie", "name": "code_postal_entreprise"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Montant de la compl\u00e9mentaire sant\u00e9 obligatoire retenue par l'employeur", "line_number": 373, "module": "salarie", "name": "complementaire_sante_montant"}, {"@type": "Float", "default": 0.5, "entity": "individus", "label": "Part de la compl\u00e9mentaire sant\u00e9 obligatoire pay\u00e9e par l'employeur", "line_number": 379, "module": "salarie", "name": "complementaire_sante_taux_employeur"}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Type contrat de travail", "line_number": 221, "module": "salarie", "name": "contrat_de_travail", "labels": {"0": "temps_plein", "1": "temps_partiel", "2": "forfait_heures_semaines", "3": "forfait_heures_mois", "4": "forfait_heures_annee", "5": "forfait_jours_annee"}}, {"@type": "Date", "default": "1870-01-01", "entity": "individus", "label": "Date d'arriv\u00e9e dans l'entreprise", "line_number": 238, "module": "salarie", "name": "contrat_de_travail_debut", "val_type": "date"}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Type (dur\u00e9e determin\u00e9e ou ind\u00e9termin\u00e9e) du contrat de travail", "line_number": 250, "module": "salarie", "name": "contrat_de_travail_duree", "labels": {"0": "cdi", "1": "cdd"}}, {"@type": "Date", "default": "2099-12-31", "entity": "individus", "label": "Date de d\u00e9part de l'entreprise", "line_number": 244, "module": "salarie", "name": "contrat_de_travail_fin", "val_type": "date"}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Mode de recouvrement des cotisations sociales", "line_number": 261, "module": "salarie", "name": "cotisation_sociale_mode_recouvrement", "labels": {"0": "Mensuel avec r\u00e9gularisation en fin d'ann\u00e9e", "1": "Annuel"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Charges, aides et cr\u00e9dits diff\u00e9r\u00e9es ou particuli\u00e8res", "line_number": 907, "module": "salarie", "name": "cout_differe", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 912, "module": "salarie", "source": "def function(self, simulation, period):\n credit_impot_competitivite_emploi = simulation.calculate_add('credit_impot_competitivite_emploi', period)\n aide_premier_salarie = simulation.calculate_add('aide_premier_salarie', period)\n aide_embauche_pme = simulation.calculate_add('aide_embauche_pme', period)\n tehr = simulation.calculate_divide('tehr', period)\n\n return period, credit_impot_competitivite_emploi + aide_premier_salarie + aide_embauche_pme + tehr\n", "input_variables": ["credit_impot_competitivite_emploi", "aide_embauche_pme", "aide_premier_salarie", "tehr"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Co\u00fbt du travail \u00e0 long terme. Inclut les charges, aides et cr\u00e9dits diff\u00e9r\u00e9s", "line_number": 893, "module": "salarie", "name": "cout_du_travail", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 899, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n salaire_super_brut = simulation.calculate('salaire_super_brut', period)\n cout_differe = simulation.calculate('cout_differe', period)\n\n return period, salaire_super_brut - cout_differe\n", "input_variables": ["salaire_super_brut", "cout_differe"]}}, {"@type": "String", "default": "", "entity": "individus", "label": "Localisation entreprise (depcom)", "line_number": 277, "module": "salarie", "name": "depcom_entreprise"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "D\u00e9pense de cantine et de titre restaurant \u00e0 charge de l'employe", "line_number": 536, "module": "salarie", "name": "depense_cantine_titre_restaurant_employe", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 542, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n\n valeur_unitaire = simulation.calculate(\"titre_restaurant_valeur_unitaire\", period)\n volume = simulation.calculate(\"titre_restaurant_volume\", period)\n taux_employeur = simulation.calculate('titre_restaurant_taux_employeur', period)\n\n return period, - valeur_unitaire * volume * (1 - taux_employeur)\n", "input_variables": ["titre_restaurant_valeur_unitaire", "titre_restaurant_volume", "titre_restaurant_taux_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "D\u00e9pense de cantine et de titre restaurant \u00e0 charge de l'employeur", "line_number": 552, "module": "salarie", "name": "depense_cantine_titre_restaurant_employeur", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 558, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n valeur_unitaire = simulation.calculate(\"titre_restaurant_valeur_unitaire\", period)\n volume = simulation.calculate(\"titre_restaurant_volume\", period) # Compute with jours ouvrables ?\n taux_employeur = simulation.calculate('titre_restaurant_taux_employeur', period)\n\n return period, valeur_unitaire * volume * taux_employeur\n", "input_variables": ["titre_restaurant_valeur_unitaire", "titre_restaurant_volume", "titre_restaurant_taux_employeur"]}}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Effectif de l'entreprise", "line_number": 289, "module": "salarie", "name": "effectif_entreprise"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Entreprise assujettie \u00e0 la contribution \u00e9conomique territoriale", "line_number": 297, "module": "salarie", "name": "entreprise_assujettie_cet"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Entreprise assujettie \u00e0 l'imp\u00f4t sur les soci\u00e9t\u00e9s (IS)", "line_number": 303, "module": "salarie", "name": "entreprise_assujettie_is"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Entreprise assujettie \u00e0 la TVA", "line_number": 309, "module": "salarie", "name": "entreprise_assujettie_tva"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "B\u00e9n\u00e9fice de l'entreprise", "line_number": 315, "module": "salarie", "name": "entreprise_benefice"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Bilan de l'entreprise", "line_number": 322, "module": "salarie", "name": "entreprise_bilan"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Chiffre d'affaire de l'entreprise", "line_number": 328, "module": "salarie", "name": "entreprise_chiffre_affaire"}, {"@type": "Date", "default": "1970-01-01", "entity": "individus", "label": "Date de cr\u00e9ation de l'entreprise", "line_number": 334, "module": "salarie", "name": "entreprise_creation", "val_type": "date"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'entreprise est une association \u00e0 but non lucratif, par exemple loi de 1901", "line_number": 271, "module": "salarie", "name": "entreprise_est_association_non_lucrative"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Charges, aides et cr\u00e9dits diff\u00e9r\u00e9es ou particuli\u00e8res", "line_number": 865, "module": "salarie", "name": "exonerations_et_allegements", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 870, "module": "salarie", "source": "def function(self, simulation, period):\n exoneration_cotisations_employeur_apprenti = simulation.calculate_add(\n 'exoneration_cotisations_employeur_apprenti', period)\n exoneration_cotisations_employeur_geographiques = simulation.calculate(\n 'exoneration_cotisations_employeur_geographiques', period)\n exoneration_cotisations_employeur_jei = simulation.calculate_add(\n 'exoneration_cotisations_employeur_jei', period)\n exoneration_cotisations_employeur_stagiaire = simulation.calculate_add(\n 'exoneration_cotisations_employeur_stagiaire', period)\n\n allegement_fillon = simulation.calculate_add('allegement_fillon', period)\n allegement_cot_alloc_fam = simulation.calculate_add('allegement_cotisation_allocations_familiales', period)\n\n return period, (\n allegement_fillon +\n allegement_cot_alloc_fam +\n exoneration_cotisations_employeur_geographiques +\n exoneration_cotisations_employeur_jei +\n exoneration_cotisations_employeur_apprenti +\n exoneration_cotisations_employeur_stagiaire\n )\n", "input_variables": ["exoneration_cotisations_employeur_geographiques", "exoneration_cotisations_employeur_apprenti", "allegement_cotisation_allocations_familiales", "exoneration_cotisations_employeur_jei", "allegement_fillon", "exoneration_cotisations_employeur_stagiaire"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Exposition au risque pour les accidents du travail", "line_number": 135, "module": "salarie", "name": "exposition_accident", "labels": {"0": "Faible", "1": "Moyen", "2": "\u00c9lev\u00e9", "3": "Tr\u00e8s \u00e9lev\u00e9"}}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Volume des heures r\u00e9mun\u00e9r\u00e9es \u00e0 un forfait heures", "line_number": 490, "module": "salarie", "name": "forfait_heures_remunerees_volume"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Volume des heures r\u00e9mun\u00e9r\u00e9es \u00e0 forfait jours", "line_number": 496, "module": "salarie", "name": "forfait_jours_remuneres_volume"}, {"@type": "Integer", "cerfa_field": "{0: u'1AK', 1: u'1BK', 2: u'1CK', 3: u'1DK', 4: u'1EK'}", "default": 0, "entity": "individus", "label": "Frais r\u00e9els", "line_number": 46, "module": "salarie", "name": "frais_reels", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9 de garantie individuelle du pouvoir d'achat", "line_number": 605, "module": "salarie", "name": "gipa", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 611, "module": "salarie", "source": "def function(self, simulation, period):\n period = period.start.period(u'year').offset('first-of')\n return period, self.zeros()\n"}}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Dur\u00e9e mensuelle collective dans l'entreprise (heures, temps plein)", "line_number": 472, "module": "salarie", "name": "heures_duree_collective_entreprise"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Volume des heures non r\u00e9mun\u00e9r\u00e9es (convenance personnelle hors contrat/forfait)", "line_number": 478, "module": "salarie", "name": "heures_non_remunerees_volume"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Volume des heures r\u00e9mun\u00e9r\u00e9es contractuellement (heures/mois, temps partiel)", "line_number": 484, "module": "salarie", "name": "heures_remunerees_volume"}, {"@type": "Integer", "cerfa_field": "{0: u'1AU', 1: u'1BU', 2: u'1CU', 3: u'1DU'}", "default": 0, "end": "2013-12-13", "entity": "individus", "label": "Heures suppl\u00e9mentaires : revenus exon\u00e9r\u00e9s connus", "line_number": 60, "module": "salarie", "name": "hsup", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Boolean", "default": false, "entity": "individus", "line_number": 215, "module": "salarie", "name": "indemnite_fin_contrat_due"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9 de r\u00e9sidence des fonctionnaires", "line_number": 616, "module": "salarie", "name": "indemnite_residence", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 621, "module": "salarie", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n zone_apl_individu = simulation.calculate('zone_apl_individu', period)\n _P = simulation.legislation_at(period.start)\n\n zone_apl = zone_apl_individu # TODO: ces zones ne correpondent pas aux zones APL\n P = _P.fonc.indem_resid\n min_zone_1, min_zone_2, min_zone_3 = P.min * P.taux.zone1, P.min * P.taux.zone2, P.min * P.taux.zone3\n taux = P.taux.zone1 * (zone_apl == 1) + P.taux.zone2 * (zone_apl == 2) + P.taux.zone3 * (zone_apl == 3)\n plancher = min_zone_1 * (zone_apl == 1) + min_zone_2 * (zone_apl == 2) + min_zone_3 * (zone_apl == 3)\n\n return period, max_(\n plancher,\n taux * (traitement_indiciaire_brut + salaire_de_base)\n ) * (categorie_salarie >= 2)\n", "input_variables": ["traitement_indiciaire_brut", "salaire_de_base", "zone_apl_individu", "categorie_salarie"], "parameters": ["fonc.indem_resid.taux.zone2", "fonc.indem_resid.taux.zone3", "fonc.indem_resid.taux.zone1", "fonc.indem_resid.min"]}}, {"@type": "Float", "default": 0, "entity": "individus", "line_number": 209, "module": "salarie", "name": "indemnites_compensatrices_conges_payes"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s forfaitaires (transport, nourriture)", "line_number": 416, "module": "salarie", "name": "indemnites_forfaitaires"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s de stage", "line_number": 11, "module": "salarie", "name": "indemnites_stage"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indice major\u00e9", "line_number": 641, "module": "salarie", "name": "indice_majore", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 646, "module": "salarie", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n _P = simulation.legislation_at(period.start)\n\n traitement_annuel_brut = _P.fonc.IM_100\n return period, (traitement_indiciaire_brut * 100 * 12 / traitement_annuel_brut) * (categorie_salarie >= 2)\n", "input_variables": ["traitement_indiciaire_brut", "categorie_salarie"], "parameters": ["fonc.IM_100"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Nombre de salari\u00e9s dans l'\u00e9tablissement de l'emploi actuel", "line_number": 103, "module": "salarie", "name": "nbsala", "labels": {"0": "Sans objet", "1": "Aucun salari\u00e9", "2": "1 \u00e0 4 salari\u00e9s", "3": "5 \u00e0 9 salari\u00e9s", "4": "10 \u00e0 19 salari\u00e9s", "5": "20 \u00e0 49 salari\u00e9s", "6": "50 \u00e0 199 salari\u00e9s", "7": "200 \u00e0 499 salari\u00e9s", "8": "500 \u00e0 999 salari\u00e9s", "9": "1000 salari\u00e9s ou plus", "10": "Ne sait pas"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Nombre de jours calendaires travaill\u00e9s", "line_number": 567, "module": "salarie", "name": "nombre_jours_calendaires", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 572, "module": "salarie", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period(u'month')\n contrat_de_travail_debut = simulation.calculate('contrat_de_travail_debut', period)\n contrat_de_travail_fin = simulation.calculate('contrat_de_travail_fin', period)\n\n busday_count = partial(original_busday_count, weekmask = \"1\" * 7)\n debut_mois = datetime64(period.start.offset('first-of', 'month'))\n fin_mois = datetime64(period.start.offset('last-of', 'month'))\n jours_travailles = max_(\n busday_count(\n max_(contrat_de_travail_debut, debut_mois),\n min_(contrat_de_travail_fin, fin_mois) + timedelta64(1, 'D')\n ),\n 0,\n )\n\n return period, jours_travailles\n", "input_variables": ["contrat_de_travail_debut", "contrat_de_travail_fin"]}}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Nombre de tickets restaurant", "line_number": 340, "module": "salarie", "name": "nombre_tickets_restaurant"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Nouvelle bonification indicaire", "line_number": 347, "module": "salarie", "name": "nouvelle_bonification_indiciaire"}, {"@type": "Integer", "cerfa_field": "{0: u'1AV', 1: u'1BV', 2: u'1CV', 3: u'1DV', 4: u'1QV'}", "default": 0, "entity": "individus", "label": "Prime pour l'emploi des salari\u00e9s: nombre d'heures pay\u00e9es dans l'ann\u00e9e", "line_number": 75, "module": "salarie", "name": "ppe_du_sa"}, {"@type": "Boolean", "cerfa_field": "{0: u'1AX', 1: u'1BX', 2: u'1CX', 3: u'1DX', 4: u'1QX'}", "default": false, "entity": "individus", "label": "Prime pour l'emploi des salari\u00e9s: indicateur de travail \u00e0 temps plein sur l'ann\u00e9e enti\u00e8re", "line_number": 88, "module": "salarie", "name": "ppe_tp_sa"}, {"@type": "Float", "default": 0.015, "entity": "individus", "label": "Taux de cotisation employeur pour la pr\u00e9voyance obligatoire des cadres", "line_number": 353, "module": "salarie", "name": "prevoyance_obligatoire_cadre_taux_employe"}, {"@type": "Float", "default": 0.015, "entity": "individus", "label": "Taux de cotisation employeur pour la pr\u00e9voyance obligatoire des cadres", "line_number": 360, "module": "salarie", "name": "prevoyance_obligatoire_cadre_taux_employeur"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Calcul des primes pour les fonctionnaries", "line_number": 656, "module": "salarie", "name": "primes_fonction_publique", "url": "http://vosdroits.service-public.fr/particuliers/F465.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 662, "module": "salarie", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n public = (\n (categorie_salarie == CAT['public_titulaire_etat']) +\n (categorie_salarie == CAT['public_titulaire_territoriale']) +\n (categorie_salarie == CAT['public_titulaire_hospitaliere'])\n )\n return period, TAUX_DE_PRIME * traitement_indiciaire_brut * public\n", "input_variables": ["traitement_indiciaire_brut", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Indemnit\u00e9s, primes et avantages en argent", "line_number": 367, "module": "salarie", "name": "primes_salaires"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Part salariale des cotisations de pr\u00e9voyance compl\u00e9mentaire prise en charge par l'employeur", "line_number": 386, "module": "salarie", "name": "prise_en_charge_employeur_prevoyance_complementaire"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Part salariale des cotisations de retraite compl\u00e9mentaire prise en charge par l'employeur", "line_number": 392, "module": "salarie", "name": "prise_en_charge_employeur_retraite_complementaire"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Part salariale des cotisations de retraite suppl\u00e9mentaire prise en charge par l'employeur", "line_number": 398, "module": "salarie", "name": "prise_en_charge_employeur_retraite_supplementaire"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Ratio d'alternants dans l'effectif moyen", "line_number": 404, "module": "salarie", "name": "ratio_alternants"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Remboursement partiel des frais de transport par l'employeur", "line_number": 591, "module": "salarie", "name": "remboursement_transport", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 596, "module": "salarie", "source": "def function(self, simulation, period):\n\n remboursement_transport_base = simulation.calculate('remboursement_transport_base', period)\n # TODO: param\u00e8tres en dur dans le code\n return period, - .5 * remboursement_transport_base\n", "input_variables": ["remboursement_transport_base"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base pour le calcul du remboursement des frais de transport", "line_number": 410, "module": "salarie", "name": "remboursement_transport_base"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "R\u00e9mun\u00e9ration principale des agents titulaires de la fonction publique", "line_number": 774, "module": "salarie", "name": "remuneration_principale", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 779, "module": "salarie", "source": "def function(self, simulation, period):\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n nouvelle_bonification_indiciaire = simulation.calculate('nouvelle_bonification_indiciaire', period)\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n return period, (\n (categorie_salarie >= 2) * (categorie_salarie <= 5) * (\n traitement_indiciaire_brut + nouvelle_bonification_indiciaire\n )\n )\n", "input_variables": ["nouvelle_bonification_indiciaire", "traitement_indiciaire_brut", "categorie_salarie"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus de stage de formation professionnelle", "line_number": 17, "module": "salarie", "name": "revenus_stage_formation_pro"}, {"@type": "Integer", "cerfa_field": "{0: u'1AC', 1: u'1BC', 2: u'1CC', 3: u'1DC'}", "default": 0, "entity": "individus", "label": "Salaires et pensions exon\u00e9r\u00e9s de source \u00e9trang\u00e8re retenus pour le calcul du taux effectif", "line_number": 31, "module": "salarie", "name": "sal_pen_exo_etr", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Salaire de base, en g\u00e9n\u00e9ral appel\u00e9 salaire brut, la 1\u00e8re ligne sur la fiche de paie", "line_number": 422, "module": "salarie", "name": "salaire_de_base", "url": "http://www.insee.fr/fr/methodes/default.asp?page=definitions/salaire-mensuel-base-smb.htm"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Salaire net \u00e0 payer (fiche de paie)", "line_number": 790, "module": "salarie", "name": "salaire_net_a_payer", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcul du salaire net \u00e0 payer apr\u00e8s d\u00e9duction des sommes\ndues par les salari\u00e9 avanc\u00e9es par l'employeur", "line_number": 797, "module": "salarie", "source": "def function(self, simulation, period):\n '''\n Calcul du salaire net \u00e0 payer apr\u00e8s d\u00e9duction des sommes\n dues par les salari\u00e9 avanc\u00e9es par l'employeur\n '''\n period = period\n salaire_net = simulation.calculate_add('salaire_net', period)\n depense_cantine_titre_restaurant_employe = simulation.calculate(\n 'depense_cantine_titre_restaurant_employe')\n indemnites_forfaitaires = simulation.calculate('indemnites_forfaitaires', period)\n remuneration_apprenti = simulation.calculate('remuneration_apprenti', period)\n stage_gratification = simulation.calculate('stage_gratification', period)\n salaire_net_a_payer = (\n salaire_net +\n remuneration_apprenti +\n stage_gratification +\n depense_cantine_titre_restaurant_employe +\n indemnites_forfaitaires\n )\n return period, salaire_net_a_payer\n", "input_variables": ["stage_gratification", "salaire_net", "remuneration_apprenti", "depense_cantine_titre_restaurant_employe", "indemnites_forfaitaires"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Co\u00fbt du travail \u00e0 court terme. Inclut les exon\u00e9rations et all\u00e8gements de charges", "line_number": 851, "module": "salarie", "name": "salaire_super_brut", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 857, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n salaire_super_brut_hors_allegements = simulation.calculate('salaire_super_brut_hors_allegements', period)\n exonerations_et_allegements = simulation.calculate('exonerations_et_allegements', period)\n\n return period, salaire_super_brut_hors_allegements - exonerations_et_allegements\n", "input_variables": ["exonerations_et_allegements", "salaire_super_brut_hors_allegements"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Salaire super-brut (fiche de paie): r\u00e9mun\u00e9ration + cotisations sociales employeur", "line_number": 819, "module": "salarie", "name": "salaire_super_brut_hors_allegements", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 826, "module": "salarie", "source": "def function(self, simulation, period):\n period = period\n salaire_de_base = simulation.calculate('salaire_de_base', period)\n remuneration_principale = simulation.calculate('remuneration_principale', period)\n remuneration_apprenti = simulation.calculate_add('remuneration_apprenti', period)\n\n primes_fonction_publique = simulation.calculate_add('primes_fonction_publique', period)\n indemnite_residence = simulation.calculate_add('indemnite_residence', period)\n supp_familial_traitement = simulation.calculate_add('supp_familial_traitement', period)\n cotisations_employeur = simulation.calculate('cotisations_employeur', period)\n depense_cantine_titre_restaurant_employeur = simulation.calculate(\n 'depense_cantine_titre_restaurant_employeur', period)\n reintegration_titre_restaurant_employeur = simulation.calculate(\n 'reintegration_titre_restaurant_employeur', period)\n indemnite_fin_contrat = simulation.calculate('indemnite_fin_contrat', period)\n salaire_super_brut_hors_allegements = (\n salaire_de_base + remuneration_principale + remuneration_apprenti +\n primes_fonction_publique + indemnite_residence + supp_familial_traitement + indemnite_fin_contrat +\n depense_cantine_titre_restaurant_employeur - reintegration_titre_restaurant_employeur\n - cotisations_employeur\n )\n\n return period, salaire_super_brut_hors_allegements\n", "input_variables": ["depense_cantine_titre_restaurant_employeur", "cotisations_employeur", "salaire_de_base", "remuneration_apprenti", "indemnite_residence", "primes_fonction_publique", "indemnite_fin_contrat", "supp_familial_traitement", "remuneration_principale", "reintegration_titre_restaurant_employeur"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Suppl\u00e9ment familial de traitement", "line_number": 697, "module": "salarie", "name": "supp_familial_traitement", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 704, "module": "salarie", "source": "def function(self, simulation, period):\n period = period.start.period(u'month').offset('first-of')\n categorie_salarie = simulation.calculate('categorie_salarie', period)\n traitement_indiciaire_brut = simulation.calculate('traitement_indiciaire_brut', period)\n af_nbenf_fonc_holder = simulation.compute('af_nbenf_fonc', period)\n _P = simulation.legislation_at(period.start)\n\n fonc_nbenf = self.cast_from_entity_to_role(af_nbenf_fonc_holder, role = CHEF)\n P = _P.fonc.supp_fam\n part_fixe_1 = P.fixe.enf1\n part_fixe_2 = P.fixe.enf2\n part_fixe_supp = P.fixe.enfsupp\n part_fixe = (\n part_fixe_1 * (fonc_nbenf == 1) + part_fixe_2 * (fonc_nbenf == 2) +\n part_fixe_supp * max_(0, fonc_nbenf - 2)\n )\n # pct_variable_1 = 0\n pct_variable_2 = P.prop.enf2\n pct_variable_3 = P.prop.enf3\n pct_variable_supp = P.prop.enfsupp\n pct_variable = (\n pct_variable_2 * (fonc_nbenf == 2) + (pct_variable_3) * (fonc_nbenf == 3) +\n pct_variable_supp * max_(0, fonc_nbenf - 3))\n\n indice_maj_min = P.IM_min\n indice_maj_max = P.IM_max\n\n traitement_brut_mensuel_min = _traitement_brut_mensuel(indice_maj_min, _P)\n plancher_mensuel_1 = part_fixe\n plancher_mensuel_2 = part_fixe + traitement_brut_mensuel_min * pct_variable_2\n plancher_mensuel_3 = part_fixe + traitement_brut_mensuel_min * pct_variable_3\n plancher_mensuel_supp = traitement_brut_mensuel_min * pct_variable_supp\n\n plancher = (plancher_mensuel_1 * (fonc_nbenf == 1) +\n plancher_mensuel_2 * (fonc_nbenf == 2) +\n plancher_mensuel_3 * (fonc_nbenf >= 3) +\n plancher_mensuel_supp * max_(0, fonc_nbenf - 3))\n\n traitement_brut_mensuel_max = _traitement_brut_mensuel(indice_maj_max, _P)\n plafond_mensuel_1 = part_fixe\n plafond_mensuel_2 = part_fixe + traitement_brut_mensuel_max * pct_variable_2\n plafond_mensuel_3 = part_fixe + traitement_brut_mensuel_max * pct_variable_3\n plafond_mensuel_supp = traitement_brut_mensuel_max * pct_variable_supp\n\n plafond = (plafond_mensuel_1 * (fonc_nbenf == 1) + plafond_mensuel_2 * (fonc_nbenf == 2) +\n plafond_mensuel_3 * (fonc_nbenf == 3) +\n plafond_mensuel_supp * max_(0, fonc_nbenf - 3))\n\n sft = (categorie_salarie >= 2) * min_(\n max_(part_fixe + pct_variable * traitement_indiciaire_brut, plancher),\n plafond\n )\n # Nota Bene:\n # categorie_salarie is an EnumCol which enum is:\n # CAT = Enum(['prive_non_cadre',\n # 'prive_cadre',\n # 'public_titulaire_etat',\n # 'public_titulaire_militaire',\n # 'public_titulaire_territoriale',\n # 'public_titulaire_hospitaliere',\n # 'public_non_titulaire'])\n return period, sft\n", "input_variables": ["traitement_indiciaire_brut", "af_nbenf_fonc", "categorie_salarie"], "parameters": ["fonc.supp_fam.fixe.enf1", "fonc.supp_fam.fixe.enfsupp", "fonc.supp_fam.IM_max", "fonc.supp_fam.fixe.enf2", "fonc.supp_fam.prop.enf2", "fonc.supp_fam.prop.enf3", "fonc.IM_100", "fonc.supp_fam.IM_min", "fonc.supp_fam.prop.enfsupp"]}}, {"@type": "Float", "default": 0.5, "entity": "individus", "label": "Taux de participation de l'employeur au titre restaurant", "line_number": 430, "module": "salarie", "name": "titre_restaurant_taux_employeur"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Valeur faciale unitaire du titre restaurant", "line_number": 436, "module": "salarie", "name": "titre_restaurant_valeur_unitaire"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Volume des titres restaurant", "line_number": 442, "module": "salarie", "name": "titre_restaurant_volume"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Traitement indiciaire brut (TIB)", "line_number": 448, "module": "salarie", "name": "traitement_indiciaire_brut"}, {"@type": "Boolean", "default": true, "entity": "individus", "label": "L'entreprise employant le salari\u00e9 paye de la TVA", "line_number": 125, "module": "salarie", "name": "tva_ent"}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Volume des jours pour lesquels sont vers\u00e9s une idemnit\u00e9 journali\u00e8re par la s\u00e9curit\u00e9 sociale", "line_number": 502, "module": "salarie", "name": "volume_jours_ijss"}, {"@type": "Integer", "cerfa_field": "{0: u'5NF', 1: u'5OF', 2: u'5PF'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits industriels et commerciaux non professionnels: r\u00e9gime normal ou simplifi\u00e9 avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 429, "module": "non_salarie", "name": "aacc_defn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NG', 1: u'5OG', 2: u'5PG'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "D\u00e9ficits de revenus industriels et commerciaux non professionnels avec CGA (r\u00e9gime simplifi\u00e9 du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 460, "module": "non_salarie", "name": "aacc_defs", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NB', 1: u'5OB', 2: u'5PB'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels exon\u00e9r\u00e9s yc plus-values avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 368, "module": "non_salarie", "name": "aacc_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NG', 1: u'5OG', 2: u'5PG'}", "default": 0, "entity": "individus", "label": "Location de g\u00eetes ruraux, chambres d'h\u00f4tes et meubl\u00e9s de tourisme (r\u00e9gime micro entreprise)", "line_number": 439, "module": "non_salarie", "name": "aacc_gits", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NC', 1: u'5OC', 2: u'5PC'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels imposables: r\u00e9gime normal ou simplifi\u00e9 avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 408, "module": "non_salarie", "name": "aacc_impn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5ND', 1: u'5OD', 2: u'5PD'}", "default": 0, "entity": "individus", "label": "Locations meubl\u00e9es non professionnelles (r\u00e9gime micro entreprise)", "line_number": 418, "module": "non_salarie", "name": "aacc_imps", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NE', 1: u'5OE', 2: u'5PE'}", "default": 0, "entity": "individus", "label": "Plus-values industrielles et commerciales non professionnelles de cession taxables \u00e0 16% avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 819, "module": "non_salarie", "name": "aacc_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QA', 1: u'5RA', 2: u'5SA'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits de locations meubl\u00e9esavec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el pour les revenus industriels et commerciaux professionnels)", "line_number": 937, "module": "non_salarie", "name": "abic_defm", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KF', 1: u'5LF', 2: u'5MF'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits industriels et commerciaux: r\u00e9gime normal ou simplifi\u00e9 avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 305, "module": "non_salarie", "name": "abic_defn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KG', 1: u'5LG', 2: u'5MG'}", "default": 0, "end": "2009-12-01", "entity": "individus", "label": "D\u00e9ficits industriels et commerciaux: simplifi\u00e9 avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 315, "module": "non_salarie", "name": "abic_defs", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KB', 1: u'5LB', 2: u'5MB'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux nets exon\u00e9r\u00e9s yc plus-values avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 206, "module": "non_salarie", "name": "abic_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HA', 1: u'5IA', 2: u'5JA'}", "default": 0, "entity": "individus", "label": "Locations meubl\u00e9es imposables avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el pour les revenus industriels et commerciaux professionnels)", "line_number": 915, "module": "non_salarie", "name": "abic_impm", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KC', 1: u'5LC', 2: u'5MC'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux imposables: r\u00e9gime normal ou simplifi\u00e9 avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 246, "module": "non_salarie", "name": "abic_impn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KD', 1: u'5LD', 2: u'5MD'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Revenus industriels et commerciaux imposables: r\u00e9gime simplifi\u00e9 avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 256, "module": "non_salarie", "name": "abic_imps", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KE', 1: u'5LE', 2: u'5ME'}", "default": 0, "entity": "individus", "label": "Plus-values industrielles et commerciales de cession taxables \u00e0 16% avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 788, "module": "non_salarie", "name": "abic_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QE', 1: u'5RE', 2: u'5SE'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits non commerciaux professionnels (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus b\u00e9n\u00e9ficiant de l'abattement association agr\u00e9e ou viseur)", "line_number": 586, "module": "non_salarie", "name": "abnc_defi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QB', 1: u'5RB', 2: u'5SB'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux professionnels exon\u00e9r\u00e9s (yc compris plus-values) (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus b\u00e9n\u00e9ficiant de l'abattement association agr\u00e9e ou viseur)", "line_number": 546, "module": "non_salarie", "name": "abnc_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QC', 1: u'5RC', 2: u'5SC'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux professionnels imposables (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus b\u00e9n\u00e9ficiant de l'abattement association agr\u00e9e ou viseur)", "line_number": 576, "module": "non_salarie", "name": "abnc_impo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TF', 1: u'5UF', 2: u'5VF'}", "default": 0, "entity": "individus", "label": "Honoraires de prospection commerciale exon\u00e9r\u00e9s avec CGA ou viseur (revenus non commerciaux professionnels, r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 994, "module": "non_salarie", "name": "abnc_proc", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QD', 1: u'5RD', 2: u'5SD'}", "default": 0, "entity": "individus", "label": "Plus-values non commerciaux professionnels de cession taxables \u00e0 16% (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus b\u00e9n\u00e9ficiant de l'abattement association agr\u00e9e ou viseur)", "line_number": 872, "module": "non_salarie", "name": "abnc_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NY', 1: u'5OY', 2: u'5PY'}", "default": 0, "end": "2010-12-31", "entity": "individus", "label": "D\u00e9ficits de locations meubl\u00e9es non professionnelles avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 960, "module": "non_salarie", "name": "alnp_defs", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NA', 1: u'5OA', 2: u'5PA'}", "default": 0, "end": "2010-12-31", "entity": "individus", "label": "Locations meubl\u00e9es non professionnelles imposables avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 948, "module": "non_salarie", "name": "alnp_imps", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HF', 1: u'5IF', 2: u'5JF'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits agricoles (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus b\u00e9n\u00e9ficiant de l'abattement CGA ou viseur)", "line_number": 104, "module": "non_salarie", "name": "arag_defi", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HB', 1: u'5IB', 2: u'5JB'}", "default": 0, "entity": "individus", "label": "Revenus agricoles exon\u00e9r\u00e9s yc plus-values (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus b\u00e9n\u00e9ficiant de l'abattement CGA ou viseur), activit\u00e9s exerc\u00e9es en Corse", "line_number": 82, "module": "non_salarie", "name": "arag_exon", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HC', 1: u'5IC', 2: u'5JC'}", "default": 0, "entity": "individus", "label": "Revenus agricoles imposables, cas g\u00e9n\u00e9ral moyenne triennale (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus b\u00e9n\u00e9ficiant de l'abattement CGA ou viseur)", "line_number": 93, "module": "non_salarie", "name": "arag_impg", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HE', 1: u'5IE', 2: u'5JE'}", "default": 0, "entity": "individus", "label": "Plus-values agricoles de cession taxables \u00e0 16% (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus b\u00e9n\u00e9ficiant de l'abattement CGA ou viseur)", "line_number": 756, "module": "non_salarie", "name": "arag_pvce", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HZ', 1: u'5IZ', 2: u'5JZ'}", "default": 0, "entity": "individus", "label": "Abattement pour les jeunes agriculteurs des revenus agricoles sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 904, "module": "non_salarie", "name": "arag_sjag", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QM', 1: u'5RM'}", "default": 0, "entity": "individus", "label": "Agents g\u00e9n\u00e9raux d'assurances : indemnit\u00e9s de cessation d'activit\u00e9 (revenus non commerciaux professionnels, r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 984, "module": "non_salarie", "name": "cbnc_assc", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5JJ', 1: u'5RG', 2: u'5SG'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits non commerciaux non professionnels avec CGA (r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 1049, "module": "non_salarie", "name": "cncn_adef", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5JG', 1: u'5RF', 2: u'5SF'}", "default": 0, "entity": "individus", "label": "Revenus imposables non commerciaux non professionnels avec CGA (r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 1038, "module": "non_salarie", "name": "cncn_aimp", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5SN', 1: u'5NS', 2: u'5OS'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux non professionnels imposables sans AA (r\u00e9gime de la d\u00e9claration control\u00e9e)", "line_number": 513, "module": "non_salarie", "name": "cncn_bene", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5SP', 1: u'5NU', 2: u'5OU'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits non commerciaux non professionnels sans AA (r\u00e9gime de la d\u00e9claration control\u00e9e)", "line_number": 524, "module": "non_salarie", "name": "cncn_defi", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HK', 1: u'5JK', 2: u'5LK'}", "default": 0, "entity": "individus", "label": "Revenus nets exon\u00e9r\u00e9s non commerciaux non professionnels (r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 1027, "module": "non_salarie", "name": "cncn_exon", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TC', 1: u'5UC', 2: u'5VC'}", "default": 0, "entity": "individus", "label": "Inventeurs et auteurs de logiciels : produits taxables \u00e0 16%, revenus non commerciaux non professionnels avec CGA (r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 1060, "module": "non_salarie", "name": "cncn_info", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5SV', 1: u'5SW', 2: u'5SX'}", "default": 0, "entity": "individus", "label": "Jeunes cr\u00e9ateurs : abattement de 50%, revenus non commerciaux non professionnels avec CGA (r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 1071, "module": "non_salarie", "name": "cncn_jcre", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5SO', 1: u'5NT', 2: u'5OT'}", "default": 0, "entity": "individus", "label": "Plus-values non commerciales non professionnelles taxables \u00e0 16% avec AA ou viseur (r\u00e9gime de la d\u00e9claration control\u00e9e)", "line_number": 851, "module": "non_salarie", "name": "cncn_pvce", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TB', 1: u'5UB', 2: u'5VB'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Revenus industriels et commerciaux professionnels imposables: prestations de services et locations meubl\u00e9es (r\u00e9gime auto-entrepreneur)", "line_number": 172, "module": "non_salarie", "name": "ebic_imps", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TA', 1: u'5UA', 2: u'5VA'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Revenus industriels et commerciaux professionnels imposables: vente de marchandises et assimil\u00e9es (r\u00e9gime auto-entrepreneur)", "line_number": 160, "module": "non_salarie", "name": "ebic_impv", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TE', 1: u'5UE', 2: u'5VE'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Revenus non commerciaux (r\u00e9gime auto-entrepreneur ayant opt\u00e9 pour le versement lib\u00e9ratoire)", "line_number": 184, "module": "non_salarie", "name": "ebnc_impo", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GA", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-10)", "line_number": 1168, "module": "non_salarie", "name": "f5ga", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GB", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-9)", "line_number": 1178, "module": "non_salarie", "name": "f5gb", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GC", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-8)", "line_number": 1188, "module": "non_salarie", "name": "f5gc", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GD", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-7)", "line_number": 1198, "module": "non_salarie", "name": "f5gd", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GE", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-6)", "line_number": 1208, "module": "non_salarie", "name": "f5ge", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GF", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-5)", "line_number": 1218, "module": "non_salarie", "name": "f5gf", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GG", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-4)", "line_number": 1228, "module": "non_salarie", "name": "f5gg", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GH", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-3)", "line_number": 1238, "module": "non_salarie", "name": "f5gh", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GI", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-2)", "line_number": 1248, "module": "non_salarie", "name": "f5gi", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5GJ", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus de locations meubl\u00e9es non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-1)", "line_number": 1258, "module": "non_salarie", "name": "f5gj", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5HT", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus non commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-6)", "line_number": 1318, "module": "non_salarie", "name": "f5ht", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5IT", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus non commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-5)", "line_number": 1327, "module": "non_salarie", "name": "f5it", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5JT", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus non commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-4)", "line_number": 1336, "module": "non_salarie", "name": "f5jt", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5KT", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus non commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-3)", "line_number": 1345, "module": "non_salarie", "name": "f5kt", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5LT", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus non commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-2)", "line_number": 1354, "module": "non_salarie", "name": "f5lt", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5MT", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus non commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-1)", "line_number": 1363, "module": "non_salarie", "name": "f5mt", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5QF", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus agricoles des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-6)", "line_number": 1114, "module": "non_salarie", "name": "f5qf", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5QG", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus agricoles des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-5)", "line_number": 1123, "module": "non_salarie", "name": "f5qg", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QM', 1: u'5RM'}", "default": 0, "entity": "individus", "label": "Agents g\u00e9n\u00e9raux d\u2019assurances: indemnit\u00e9s de cessation d\u2019activit\u00e9", "line_number": 25, "module": "non_salarie", "name": "f5qm", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5QN", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus agricoles des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-4)", "line_number": 1132, "module": "non_salarie", "name": "f5qn", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5QO", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus agricoles des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-3)", "line_number": 1141, "module": "non_salarie", "name": "f5qo", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5QP", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus agricoles des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-2)", "line_number": 1150, "module": "non_salarie", "name": "f5qp", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5QQ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus agricoles des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-1)", "line_number": 1159, "module": "non_salarie", "name": "f5qq", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5RN", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus industriels et commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-6)", "line_number": 1268, "module": "non_salarie", "name": "f5rn", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5RO", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus industriels et commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-5)", "line_number": 1278, "module": "non_salarie", "name": "f5ro", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5RP", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus industriels et commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-4)", "line_number": 1286, "module": "non_salarie", "name": "f5rp", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5RQ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus industriels et commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-3)", "line_number": 1294, "module": "non_salarie", "name": "f5rq", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5RR", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus industriels et commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-2)", "line_number": 1302, "module": "non_salarie", "name": "f5rr", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5RW", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des revenus industriels et commerciaux non professionnelles ann\u00e9es ant\u00e9rieures non encore d\u00e9duits (n-1)", "line_number": 1310, "module": "non_salarie", "name": "f5rw", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "entity": "individus", "line_number": 1372, "module": "non_salarie", "name": "f5sq"}, {"@type": "Integer", "cerfa_field": "{0: u'5HN', 1: u'5IN', 2: u'5JN'}", "default": 0, "entity": "individus", "label": "Revenus agricoles exon\u00e9r\u00e9s (r\u00e9gime du forfait)", "line_number": 60, "module": "non_salarie", "name": "frag_exon", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HD', 1: u'5ID', 2: u'5JD'}", "default": 0, "entity": "individus", "label": "Revenus des exploitants forestiers (r\u00e9gime du forfait)", "line_number": 893, "module": "non_salarie", "name": "frag_fore", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HO', 1: u'5IO', 2: u'5JO'}", "default": 0, "entity": "individus", "label": "Revenus agricoles imposables (r\u00e9gime du forfait)", "line_number": 71, "module": "non_salarie", "name": "frag_impo", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HX', 1: u'5IX', 2: u'5JX'}", "default": 0, "entity": "individus", "label": "Plus-values agricoles de cession taxables \u00e0 16% (r\u00e9gime du forfait)", "line_number": 745, "module": "non_salarie", "name": "frag_pvce", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HW', 1: u'5IW', 2: u'5JW'}", "default": 0, "entity": "individus", "label": "Plus-values agricoles \u00e0 court terme (r\u00e9gime du forfait)", "line_number": 654, "module": "non_salarie", "name": "frag_pvct", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NN', 1: u'5ON', 2: u'5PN'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels nets exon\u00e9r\u00e9s (r\u00e9gime micro entreprise)", "line_number": 358, "module": "non_salarie", "name": "macc_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NP', 1: u'5OP', 2: u'5PP'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels imposables: prestations de services (r\u00e9gime micro entreprise)", "line_number": 398, "module": "non_salarie", "name": "macc_imps", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NO', 1: u'5OO', 2: u'5PO'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels imposables: vente de marchandises et assimil\u00e9es (r\u00e9gime micro entreprise)", "line_number": 388, "module": "non_salarie", "name": "macc_impv", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5IU", "default": 0, "entity": "foyers_fiscaux", "label": "Moins-values industrielles et commerciales non professionnelles nettes \u00e0 court terme du foyer (r\u00e9gime micro entreprise)", "line_number": 626, "module": "non_salarie", "name": "macc_mvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NR', 1: u'5OR', 2: u'5PR'}", "default": 0, "entity": "individus", "label": "Moins-values industrielles et commerciales non professionnelles \u00e0 long terme (r\u00e9gime micro entreprise)", "line_number": 715, "module": "non_salarie", "name": "macc_mvlt", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NQ', 1: u'5OQ', 2: u'5PQ'}", "default": 0, "entity": "individus", "label": "Plus-values industrielles et commerciales non professionnelles imposables: plus-values de cession taxables \u00e0 16% (r\u00e9gime micro entreprise)", "line_number": 809, "module": "non_salarie", "name": "macc_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NX', 1: u'5OX', 2: u'5PX'}", "default": 0, "entity": "individus", "label": "Plus-values industrielles et commerciales non professionnelles imposables: plus-values nettes \u00e0 court terme (r\u00e9gime micro entreprise)", "line_number": 675, "module": "non_salarie", "name": "macc_pvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KN', 1: u'5LN', 2: u'5MN'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux professionnels nets exon\u00e9r\u00e9s (r\u00e9gime micro entreprise)", "line_number": 196, "module": "non_salarie", "name": "mbic_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KP', 1: u'5LP', 2: u'5MP'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux professionnels imposables: prestations de services et locations meubl\u00e9es (r\u00e9gime micro entreprise)", "line_number": 236, "module": "non_salarie", "name": "mbic_imps", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KO', 1: u'5LO', 2: u'5MO'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux professionnels imposables: vente de marchandises (r\u00e9gime micro entreprise)", "line_number": 226, "module": "non_salarie", "name": "mbic_impv", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "5HU", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "Moins-values industrielles et commerciales nettes \u00e0 court terme du foyer (r\u00e9gime micro entreprise)", "line_number": 616, "module": "non_salarie", "name": "mbic_mvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KR', 1: u'5LR', 2: u'5MR'}", "default": 0, "entity": "individus", "label": "Moins-values industrielles et commerciales professionnels \u00e0 long terme (r\u00e9gime micro entreprise)", "line_number": 705, "module": "non_salarie", "name": "mbic_mvlt", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KQ', 1: u'5LQ', 2: u'5MQ'}", "default": 0, "entity": "individus", "label": "Plus-values industrielles et commerciales professionnelles imposables: plus-values de cession taxables \u00e0 16% (r\u00e9gime micro entreprise)", "line_number": 778, "module": "non_salarie", "name": "mbic_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KX', 1: u'5LX', 2: u'5MX'}", "default": 0, "entity": "individus", "label": "Plus-values industrielles et commerciales professionnels imposables: plus-values nettes \u00e0 court terme (r\u00e9gime micro entreprise)", "line_number": 665, "module": "non_salarie", "name": "mbic_pvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HP', 1: u'5IP', 2: u'5JP'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux professionnels nets exon\u00e9r\u00e9s (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 536, "module": "non_salarie", "name": "mbnc_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HQ', 1: u'5IQ', 2: u'5JQ'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux professionnels imposables (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 566, "module": "non_salarie", "name": "mbnc_impo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KZ', 1: u'5LZ', 2: u'5MZ'}", "default": 0, "entity": "individus", "label": "Moins-values non commerciales professionnelles nettes \u00e0 court terme (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 642, "module": "non_salarie", "name": "mbnc_mvct", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HS', 1: u'5IS', 2: u'5JS'}", "default": 0, "entity": "individus", "label": "Moins-values non commerciales professionnelles \u00e0 long terme (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 735, "module": "non_salarie", "name": "mbnc_mvlt", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HR', 1: u'5IR', 2: u'5JR'}", "default": 0, "entity": "individus", "label": "Plus-values non commerciales professionnelles de cession taxables \u00e0 16% (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 862, "module": "non_salarie", "name": "mbnc_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HV', 1: u'5IV', 2: u'5JV'}", "default": 0, "entity": "individus", "label": "Plus-values non commerciales professionnelles imposables et Plus-values nettes \u00e0 court terme (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 685, "module": "non_salarie", "name": "mbnc_pvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TH', 1: u'5UH', 2: u'5VH'}", "default": 0, "entity": "individus", "label": "Revenus nets exon\u00e9r\u00e9s non commerciaux non professionnels (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 1016, "module": "non_salarie", "name": "mncn_exon", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KU', 1: u'5LU', 2: u'5MU'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux non professionnels imposables (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 503, "module": "non_salarie", "name": "mncn_impo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "JU", "default": 0, "entity": "foyers_fiscaux", "label": "Moins-values non commerciales non professionnelles nettes \u00e0 court terme du foyer (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 634, "module": "non_salarie", "name": "mncn_mvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KW', 1: u'5LW', 2: u'5MW'}", "default": 0, "entity": "individus", "label": "Moins-values non commerciales non professionnelles \u00e0 long terme (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 725, "module": "non_salarie", "name": "mncn_mvlt", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KV', 1: u'5LV', 2: u'5MV'}", "default": 0, "entity": "individus", "label": "Plus-values non commerciales non professionnelles de cession taxables \u00e0 16% (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 841, "module": "non_salarie", "name": "mncn_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KY', 1: u'5LY', 2: u'5MY'}", "default": 0, "entity": "individus", "label": "Plus-values non commerciales non professionnelles imposables et plus-values nettes \u00e0 court terme (r\u00e9gime d\u00e9claratif sp\u00e9cial ou micro BNC)", "line_number": 695, "module": "non_salarie", "name": "mncn_pvct", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NL', 1: u'5OL', 2: u'5PL'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits industriels et commerciaux non professionnels: r\u00e9gime normal ou simplifi\u00e9 sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 482, "module": "non_salarie", "name": "nacc_defn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NM', 1: u'5OM', 2: u'5PM'}", "default": 0, "entity": "individus", "label": "Locations meubl\u00e9es non professionnelles: G\u00eetes ruraux et chambres d'h\u00f4tes d\u00e9j\u00e0 soumis aux pr\u00e9l\u00e8vements sociaux avec CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 492, "module": "non_salarie", "name": "nacc_defs", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NH', 1: u'5OH', 2: u'5PH'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels exon\u00e9r\u00e9s yc plus-values sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 378, "module": "non_salarie", "name": "nacc_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NI', 1: u'5OI', 2: u'5PI'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux non professionnels imposables: r\u00e9gime normal ou simplifi\u00e9 sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 450, "module": "non_salarie", "name": "nacc_impn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NJ', 1: u'5OJ', 2: u'5PJ'}", "default": 0, "entity": "individus", "label": "Locations meubl\u00e9es non professionnelles: Locations d\u00e9j\u00e0 soumises aux pr\u00e9l\u00e8vements sociaux (r\u00e9gime micro entreprise)", "line_number": 471, "module": "non_salarie", "name": "nacc_meup", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NK', 1: u'5OK', 2: u'5PK'}", "default": 0, "end": "2010-12-31", "entity": "individus", "label": "Locations meubl\u00e9es non professionnelles: Revenus imposables sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 829, "module": "non_salarie", "name": "nacc_pvce", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KS', 1: u'5LS', 2: u'5MS'}", "default": 0, "entity": "individus", "label": "Artisans p\u00eacheurs : abattement 50% avec CGA ou viseur (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 348, "module": "non_salarie", "name": "nbic_apch", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KL', 1: u'5LL', 2: u'5ML'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits industriels et commerciaux: r\u00e9gime normal ou simplifi\u00e9 sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 327, "module": "non_salarie", "name": "nbic_defn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KM', 1: u'5LM', 2: u'5MM'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Locations d\u00e9j\u00e0 soumises aux pr\u00e9l\u00e8vements sociaux sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 337, "module": "non_salarie", "name": "nbic_defs", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KH', 1: u'5LH', 2: u'5MH'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux nets exon\u00e9r\u00e9s yc plus-values sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 216, "module": "non_salarie", "name": "nbic_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KA', 1: u'5LA', 2: u'5MA'}", "default": 0, "entity": "individus", "label": "Locations meubl\u00e9es imposables sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 926, "module": "non_salarie", "name": "nbic_impm", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KI', 1: u'5LI', 2: u'5MI'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux professionnels imposables: r\u00e9gime normal ou simplifi\u00e9 sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 268, "module": "non_salarie", "name": "nbic_impn", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KJ', 1: u'5LJ', 2: u'5MJ'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Revenus industriels et commerciaux professionnels imposables: r\u00e9gime simplifi\u00e9 sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 282, "module": "non_salarie", "name": "nbic_imps", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5KJ', 1: u'5LJ', 2: u'5MJ'}", "default": 0, "entity": "individus", "label": "Revenus industriels et commerciaux professionnels moins-values nettes \u00e0 court terme", "line_number": 293, "module": "non_salarie", "name": "nbic_mvct", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5IK', 1: u'5KK', 2: u'5MK'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux non professionnels exon\u00e9r\u00e9s sans AA (r\u00e9gime de la d\u00e9claration control\u00e9e)", "line_number": 798, "module": "non_salarie", "name": "nbic_pvce", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QK', 1: u'5RK', 2: u'5SK'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits non commerciaux professionnels (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement association agr\u00e9e)", "line_number": 606, "module": "non_salarie", "name": "nbnc_defi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QH', 1: u'5RH', 2: u'5SH'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux professionnels exon\u00e9r\u00e9s (yc compris plus-values) (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement association agr\u00e9e)", "line_number": 556, "module": "non_salarie", "name": "nbnc_exon", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QI', 1: u'5RI', 2: u'5SI'}", "default": 0, "entity": "individus", "label": "Revenus non commerciaux professionnels imposables (r\u00e9gime de la d\u00e9claration control\u00e9e, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement association agr\u00e9e)", "line_number": 596, "module": "non_salarie", "name": "nbnc_impo", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5TI', 1: u'5UI', 2: u'5VI'}", "default": 0, "entity": "individus", "label": "Honoraires de prospection commerciale exon\u00e9r\u00e9s sans CGA (revenus non commerciaux professionnels, r\u00e9gime de la d\u00e9claration contr\u00f4l\u00e9e)", "line_number": 1005, "module": "non_salarie", "name": "nbnc_proc", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5QJ', 1: u'5RJ', 2: u'5SJ'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits industriels et commerciaux: locations meubl\u00e9es sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 882, "module": "non_salarie", "name": "nbnc_pvce", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NZ', 1: u'5OZ', 2: u'5PZ'}", "default": 0, "end": "2010-12-31", "entity": "individus", "label": "D\u00e9ficits de locations meubl\u00e9es non professionnelles imposables sans CGA (r\u00e9gime du b\u00e9n\u00e9fice r\u00e9el)", "line_number": 972, "module": "non_salarie", "name": "nlnp_defs", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HM', 1: u'5IM', 2: u'5JM'}", "default": 0, "entity": "individus", "label": "Jeunes agriculteurs, Abattement de 50% ou 100% (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus b\u00e9n\u00e9ficiant de l'abattement CGA ou viseur)", "line_number": 148, "module": "non_salarie", "name": "nrag_ajag", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HL', 1: u'5IL', 2: u'5JL'}", "default": 0, "entity": "individus", "label": "D\u00e9ficits agricoles (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement CGA ou viseur)", "line_number": 137, "module": "non_salarie", "name": "nrag_defi", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HH', 1: u'5IH', 2: u'5JH'}", "default": 0, "entity": "individus", "label": "Revenus agricoles exon\u00e9r\u00e9s yc plus-values (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement CGA ou viseur), activit\u00e9s exerc\u00e9es en Corse", "line_number": 115, "module": "non_salarie", "name": "nrag_exon", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HI', 1: u'5II', 2: u'5JI'}", "default": 0, "entity": "individus", "label": "Revenus agricoles imposables, cas g\u00e9n\u00e9ral moyenne triennale (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement CGA ou viseur)", "line_number": 126, "module": "non_salarie", "name": "nrag_impg", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5HK', 1: u'5LK', 2: u'5JK'}", "default": 0, "end": "2006-12-31", "entity": "individus", "label": "Plus-values agricoles de cession taxables \u00e0 16% (R\u00e9gime du b\u00e9n\u00e9fice r\u00e9el, revenus ne b\u00e9n\u00e9ficiant pas de l'abattement CGA ou viseur)", "line_number": 767, "module": "non_salarie", "name": "nrag_pvce", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'5NV', 1: u'5OV', 2: u'5PV'}", "default": 0, "end": "2006-12-31", "entity": "individus", "label": "Prime pour l'emploi des non-salari\u00e9s: nombre de jours travaill\u00e9s dans l'ann\u00e9e", "line_number": 36, "module": "non_salarie", "name": "ppe_du_ns"}, {"@type": "Boolean", "cerfa_field": "{0: u'5NW', 1: u'5OW', 2: u'5PW'}", "default": false, "end": "2006-12-31", "entity": "individus", "label": "Prime pour l'emploi des non-salari\u00e9s: indicateur de travail \u00e0 temps plein sur l'ann\u00e9e enti\u00e8re", "line_number": 48, "module": "non_salarie", "name": "ppe_tp_ns"}, {"@type": "Integer", "cerfa_field": "{0: u'5HG', 1: u'5IG'}", "default": 0, "entity": "individus", "label": "Plus-values \u00e0 long terme exon\u00e9r\u00e9es en cas de d\u00e9part \u00e0 la retraite \u00e0 imposer aux pr\u00e9l\u00e8vements sociaux", "line_number": 1092, "module": "non_salarie", "name": "pveximpres", "start": "2006-01-01"}, {"@type": "Integer", "cerfa_field": "{0: u'5HZ', 1: u'5IZ', 2: u'5JZ'}", "default": 0, "end": "2009-12-31", "entity": "individus", "label": "Plus-values \u00e0 long terme taxables \u00e0 16% \u00e0 la retraite \u00e0 imposer aux pr\u00e9l\u00e8vements sociaux", "line_number": 1103, "module": "non_salarie", "name": "pvtaimpres"}, {"@type": "Integer", "cerfa_field": "{0: u'5HY', 1: u'5IY', 2: u'5JY'}", "default": 0, "entity": "individus", "label": "Revenus nets \u00e0 imposer aux pr\u00e9l\u00e8vements sociaux", "line_number": 1082, "module": "non_salarie", "name": "revimpres", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "B\u00e9n\u00e9fice en tant qu'auto-entrepreneur", "line_number": 1483, "module": "non_salarie", "name": "tns_auto_entrepreneur_benefice", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1488, "module": "non_salarie", "source": "@dated_function(start = date(2008, 1, 1))\ndef function(self, simulation, period):\n period = period.this_month\n tns_auto_entrepreneur_type_activite = simulation.calculate('tns_auto_entrepreneur_type_activite', period)\n tns_auto_entrepreneur_chiffre_affaires = simulation.calculate('tns_auto_entrepreneur_chiffre_affaires', period)\n bareme = simulation.legislation_at(period.start).tns\n\n benefice = compute_benefice_auto_entrepreneur_micro_entreprise(\n bareme, tns_auto_entrepreneur_type_activite, tns_auto_entrepreneur_chiffre_affaires)\n return period, benefice\n", "input_variables": ["tns_auto_entrepreneur_type_activite", "tns_auto_entrepreneur_chiffre_affaires"]}, "stop_instant": null, "start_instant": "2008-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Chiffre d'affaires en tant qu'auto-entrepreneur", "line_number": 1384, "module": "non_salarie", "name": "tns_auto_entrepreneur_chiffre_affaires"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu d'un auto-entrepreneur", "line_number": 1520, "module": "non_salarie", "name": "tns_auto_entrepreneur_revenus_net", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1525, "module": "non_salarie", "source": "@dated_function(start = date(2008, 1, 1))\ndef function(self, simulation, period):\n period = period.this_month\n tns_auto_entrepreneur_benefice = simulation.calculate('tns_auto_entrepreneur_benefice', period)\n tns_auto_entrepreneur_type_activite = simulation.calculate('tns_auto_entrepreneur_type_activite', period)\n tns_auto_entrepreneur_chiffre_affaires = simulation.calculate('tns_auto_entrepreneur_chiffre_affaires', period)\n bareme_cs_ae = simulation.legislation_at(period.start).tns.auto_entrepreneur\n taux_cotisations_sociales_sur_CA = (\n (tns_auto_entrepreneur_type_activite == 0) * bareme_cs_ae.achat_revente +\n (tns_auto_entrepreneur_type_activite == 1) * bareme_cs_ae.bic +\n (tns_auto_entrepreneur_type_activite == 2) * bareme_cs_ae.bnc)\n tns_auto_entrepreneur_charges_sociales = taux_cotisations_sociales_sur_CA * tns_auto_entrepreneur_chiffre_affaires\n revenus = tns_auto_entrepreneur_benefice - tns_auto_entrepreneur_charges_sociales\n\n return period, revenus\n", "input_variables": ["tns_auto_entrepreneur_type_activite", "tns_auto_entrepreneur_benefice", "tns_auto_entrepreneur_chiffre_affaires"]}, "stop_instant": null, "start_instant": "2008-01-01"}]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Type d'activit\u00e9 de l'auto-entrepreneur", "line_number": 1401, "module": "non_salarie", "name": "tns_auto_entrepreneur_type_activite", "labels": {"0": "achat_revente", "1": "bic", "2": "bnc"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Autres revenus non salari\u00e9s", "line_number": 1415, "module": "non_salarie", "name": "tns_autres_revenus"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Chiffre d'affaire pour les TNS non agricoles autres que les AE et ME", "line_number": 1421, "module": "non_salarie", "name": "tns_autres_revenus_chiffre_affaires"}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Type d'activit\u00e9 de l'entreprise non AE ni ME", "line_number": 1427, "module": "non_salarie", "name": "tns_autres_revenus_type_activite", "labels": {"0": "achat_revente", "1": "bic", "2": "bnc"}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Le TNS a au moins un employ\u00e9. Ne s'applique pas pour les agricoles ni auto-entrepreneurs ni micro entreprise", "line_number": 1433, "module": "non_salarie", "name": "tns_avec_employe"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Dernier b\u00e9n\u00e9fice agricole", "line_number": 1440, "module": "non_salarie", "name": "tns_benefice_exploitant_agricole"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "B\u00e9n\u00e9fice de la micro entreprise", "line_number": 1500, "module": "non_salarie", "name": "tns_micro_entreprise_benefice", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1505, "module": "non_salarie", "source": "@dated_function(start = date(2008, 1, 1))\ndef function(self, simulation, period):\n period = period.this_year\n tns_micro_entreprise_type_activite = simulation.calculate('tns_micro_entreprise_type_activite', period)\n tns_micro_entreprise_chiffre_affaires = simulation.calculate('tns_micro_entreprise_chiffre_affaires', period)\n bareme = simulation.legislation_at(period.start).tns\n\n benefice = compute_benefice_auto_entrepreneur_micro_entreprise(\n bareme, tns_micro_entreprise_type_activite, tns_micro_entreprise_chiffre_affaires)\n return period, benefice\n", "input_variables": ["tns_micro_entreprise_chiffre_affaires", "tns_micro_entreprise_type_activite"]}, "stop_instant": null, "start_instant": "2008-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Chiffre d'affaires en de micro-entreprise", "line_number": 1391, "module": "non_salarie", "name": "tns_micro_entreprise_chiffre_affaires"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu d'un TNS dans une micro-entreprise", "line_number": 1542, "module": "non_salarie", "name": "tns_micro_entreprise_revenus_net", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1547, "module": "non_salarie", "source": "def function(self, simulation, period):\n period = period.this_month\n tns_micro_entreprise_benefice = simulation.calculate('tns_micro_entreprise_benefice', period)\n taux_cotisations_sociales = simulation.legislation_at(period.start).tns.micro_entreprise.cotisations_sociales\n tns_micro_entreprise_charges_sociales = tns_micro_entreprise_benefice * taux_cotisations_sociales\n revenus = tns_micro_entreprise_benefice - tns_micro_entreprise_charges_sociales\n\n return period, revenus\n", "input_variables": ["tns_micro_entreprise_benefice"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Type d'activit\u00e9 de la micro-entreprise", "line_number": 1408, "module": "non_salarie", "name": "tns_micro_entreprise_type_activite", "labels": {"0": "achat_revente", "1": "bic", "2": "bnc"}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "L'individu a une activit\u00e9 professionnelle non salari\u00e9e", "line_number": 1449, "module": "non_salarie", "name": "travailleur_non_salarie", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1454, "module": "non_salarie", "source": "def function(self, simulation, period):\n period = period.this_month\n this_year_and_last_year = period.start.offset('first-of', 'year').period('year', 2).offset(-1)\n tns_auto_entrepreneur_chiffre_affaires = simulation.calculate('tns_auto_entrepreneur_chiffre_affaires', period) != 0\n tns_micro_entreprise_chiffre_affaires = simulation.calculate_add('tns_micro_entreprise_chiffre_affaires', this_year_and_last_year) != 0\n tns_autres_revenus = simulation.calculate_add('tns_autres_revenus', this_year_and_last_year) != 0\n tns_benefice_exploitant_agricole = simulation.calculate_add('tns_benefice_exploitant_agricole', this_year_and_last_year) != 0\n tns_autres_revenus_chiffre_affaires = simulation.calculate_add('tns_autres_revenus_chiffre_affaires', this_year_and_last_year) != 0\n\n result = (\n tns_auto_entrepreneur_chiffre_affaires + tns_micro_entreprise_chiffre_affaires +\n tns_autres_revenus + tns_benefice_exploitant_agricole + tns_autres_revenus_chiffre_affaires\n )\n\n return period, result\n", "input_variables": ["tns_micro_entreprise_chiffre_affaires", "tns_autres_revenus_chiffre_affaires", "tns_auto_entrepreneur_chiffre_affaires", "tns_benefice_exploitant_agricole", "tns_autres_revenus"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "\u00c9pargne non r\u00e9mun\u00e9r\u00e9e", "line_number": 219, "module": "financier", "name": "epargne_non_remuneree"}, {"@type": "Integer", "cerfa_field": "2AA", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits", "line_number": 133, "module": "financier", "name": "f2aa", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2AB", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d'imp\u00f4t sur valeurs \u00e9trang\u00e8res", "line_number": 117, "module": "financier", "name": "f2ab", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2AL", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits", "line_number": 142, "module": "financier", "name": "f2al", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2AM", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits", "line_number": 151, "module": "financier", "name": "f2am", "start": "2009-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2AN", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits", "line_number": 160, "module": "financier", "name": "f2an", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2AQ", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits", "line_number": 169, "module": "financier", "name": "f2aq", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2AR", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits", "line_number": 178, "module": "financier", "name": "f2ar", "start": "2012-01-01", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "end": "2011-12-31", "entity": "foyers_fiscaux", "label": "D\u00e9ficits des ann\u00e9es ant\u00e9rieures non encore d\u00e9duits: ann\u00e9e 2012", "line_number": 189, "module": "financier", "name": "f2as", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2BG", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dits d'imp\u00f4t 'directive \u00e9pargne' et autres cr\u00e9dits d'imp\u00f4t restituables", "line_number": 125, "module": "financier", "name": "f2bg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2BH", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus des lignes 2DC, 2CH, 2TS, 2TR d\u00e9j\u00e0 soumis au pr\u00e9l\u00e8vement sociaux avec CSG d\u00e9ductible", "line_number": 91, "module": "financier", "name": "f2bh", "start": "2007-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2CA", "default": 0, "entity": "foyers_fiscaux", "label": "Frais et charges d\u00e9ductibles", "line_number": 100, "module": "financier", "name": "f2ca", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2CG", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus des lignes 2DC, 2CH, 2TS, 2TR d\u00e9j\u00e0 soumis au pr\u00e9l\u00e8vement sociaux sans CSG d\u00e9ductible", "line_number": 83, "module": "financier", "name": "f2cg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2CH", "default": 0, "entity": "foyers_fiscaux", "label": "Produits des contrats d'assurance-vie et de capitalisation d'une dur\u00e9e d'au moins 6 ou 8 ans donnant droit \u00e0 abattement", "line_number": 50, "module": "financier", "name": "f2ch", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2CK", "default": 0, "entity": "foyers_fiscaux", "label": "Cr\u00e9dit d'imp\u00f4t \u00e9gal au pr\u00e9l\u00e8vement forfaitaire d\u00e9j\u00e0 vers\u00e9", "line_number": 108, "module": "financier", "name": "f2ck", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2DA", "default": 0, "end": "2012-12-31", "entity": "foyers_fiscaux", "label": "Revenus des actions et parts soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire de 21 %", "line_number": 8, "module": "financier", "name": "f2da", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2DC", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus des actions et parts donnant droit \u00e0 abattement", "line_number": 35, "module": "financier", "name": "f2dc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2DH", "default": 0, "entity": "foyers_fiscaux", "label": "Produits d\u2019assurance-vie et de capitalisation soumis au pr\u00e9l\u00e8vement lib\u00e9ratoire de 7.5 %", "line_number": 18, "module": "financier", "name": "f2dh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2DM", "default": 0, "entity": "foyers_fiscaux", "label": "Impatri\u00e9s: revenus de capitaux mobiliers per\u00e7us \u00e0 l'\u00e9tranger, abattement de 50 %", "line_number": 197, "module": "financier", "name": "f2dm", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2EE", "default": 0, "entity": "foyers_fiscaux", "label": "Autres produits de placement soumis aux pr\u00e9l\u00e8vements lib\u00e9ratoires", "line_number": 26, "module": "financier", "name": "f2ee", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2FU", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus imposables des titres non c\u00f4t\u00e9s d\u00e9tenus dans le PEA et distributions per\u00e7ues via votre entreprise donnant droit \u00e0 abattement", "line_number": 43, "module": "financier", "name": "f2fu", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2GO", "default": 0, "entity": "foyers_fiscaux", "label": "Autres revenus distribu\u00e9s et revenus des structures soumises hors de France \u00e0 un r\u00e9gime fiscal privil\u00e9gi\u00e9 (n'ouvrant pas droit \u00e0 abattement)", "line_number": 66, "module": "financier", "name": "f2go", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2GR", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "label": "Revenus distribu\u00e9s dans le PEA (pour le calcul du cr\u00e9dit d'imp\u00f4t de 50 %)", "line_number": 207, "module": "financier", "name": "f2gr", "start": "2005-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2TR", "default": 0, "entity": "foyers_fiscaux", "label": "Produits de placements \u00e0 revenu fixe, int\u00e9r\u00eats et autres revenus assimil\u00e9s (n'ouvrant pas droit \u00e0 abattement)", "line_number": 73, "module": "financier", "name": "f2tr", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "2TS", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus de valeurs mobili\u00e8res, produits des contrats d'assurance-vie d'une dur\u00e9e inf\u00e9rieure \u00e0 8 ans et distributions (n'ouvrant pas droit \u00e0 abattement)", "line_number": 59, "module": "financier", "name": "f2ts", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Int\u00e9r\u00eats vers\u00e9s pour l'\u00e9pargne sur livret", "line_number": 225, "module": "financier", "name": "interets_epargne_sur_livrets"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus du capital", "line_number": 231, "module": "financier", "name": "revenus_capital"}, {"@type": "Integer", "cerfa_field": "1AW", "default": 0, "entity": "foyers_fiscaux", "label": "Rentes viag\u00e8res \u00e0 titre on\u00e9reux per\u00e7ues par le foyer par \u00e2ge d'entr\u00e9e en jouissance : Moins de 50 ans", "line_number": 7, "module": "foncier", "name": "f1aw", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "1BW", "default": 0, "entity": "foyers_fiscaux", "label": "Rentes viag\u00e8res \u00e0 titre on\u00e9reux per\u00e7ues par le foyer par \u00e2ge d'entr\u00e9e en jouissance : De 50 \u00e0 59 ans", "line_number": 15, "module": "foncier", "name": "f1bw", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "1CW", "default": 0, "entity": "foyers_fiscaux", "label": "Rentes viag\u00e8res \u00e0 titre on\u00e9reux per\u00e7ues par le foyer par \u00e2ge d'entr\u00e9e en jouissance : De 60 \u00e0 69 ans", "line_number": 22, "module": "foncier", "name": "f1cw", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "1DW", "default": 0, "entity": "foyers_fiscaux", "label": "Rentes viag\u00e8res \u00e0 titre on\u00e9reux per\u00e7ues par le foyer par \u00e2ge d'entr\u00e9e en jouissance : A partir de 70 ans", "line_number": 29, "module": "foncier", "name": "f1dw", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "4BA", "default": 0, "entity": "foyers_fiscaux", "label": "Revenus fonciers imposables", "line_number": 39, "module": "foncier", "name": "f4ba", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "4BB", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit imputable sur les revenus fonciers", "line_number": 47, "module": "foncier", "name": "f4bb", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "4BC", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficit imputable sur le revenu global", "line_number": 55, "module": "foncier", "name": "f4bc", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "4BD", "default": 0, "entity": "foyers_fiscaux", "label": "D\u00e9ficits ant\u00e9rieurs non encore imput\u00e9s", "line_number": 63, "module": "foncier", "name": "f4bd", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "4BE", "default": 0, "entity": "foyers_fiscaux", "label": "Micro foncier: recettes brutes sans abattement", "line_number": 71, "module": "foncier", "name": "f4be", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "4BF", "default": 0, "entity": "foyers_fiscaux", "label": "Primes d'assurance pour loyers impay\u00e9s des locations conventionn\u00e9es", "line_number": 80, "module": "foncier", "name": "f4bf", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "line_number": 88, "module": "foncier", "name": "f4bl"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus locatifs", "line_number": 96, "module": "foncier", "name": "revenus_locatifs"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Valeur locative des biens immobiliers poss\u00e9d\u00e9s et non lou\u00e9s", "line_number": 101, "module": "foncier", "name": "valeur_locative_immo_non_loue"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Valeur locative des terrains poss\u00e9d\u00e9s et non lou\u00e9s", "line_number": 107, "module": "foncier", "name": "valeur_locative_terrains_non_loue"}, {"@type": "Integer", "cerfa_field": "{0: u'1TV', 1: u'1UV'}", "default": 0, "entity": "individus", "label": "Gains de lev\u00e9e d'options sur titres en cas de cession ou de conversion au porteur dans le d\u00e9lai d'indisponibilit\u00e9: entre 1 et 2 ans", "line_number": 13, "module": "plus_value", "name": "f1tv", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'1TW', 1: u'1UW'}", "default": 0, "entity": "individus", "label": "Gains de lev\u00e9e d'options sur titres en cas de cession ou de conversion au porteur dans le d\u00e9lai d'indisponibilit\u00e9: entre 2 et 3 ans", "line_number": 23, "module": "plus_value", "name": "f1tw", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'1TX', 1: u'1UX'}", "default": 0, "entity": "individus", "label": "Gains de lev\u00e9e d'options sur titres en cas de cession ou de conversion au porteur dans le d\u00e9lai d'indisponibilit\u00e9: entre 3 et 4 ans", "line_number": 33, "module": "plus_value", "name": "f1tx", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "line_number": 53, "module": "plus_value", "name": "f3sa"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "line_number": 67, "module": "plus_value", "name": "f3sd", "start": "2012-01-01"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "line_number": 60, "module": "plus_value", "name": "f3sf", "start": "2012-01-01"}, {"@type": "Integer", "default": 0, "entity": "foyers_fiscaux", "line_number": 45, "module": "plus_value", "name": "f3si", "start": "2012-01-01"}, {"@type": "Integer", "cerfa_field": "{0: u'3VA', 1: u'3VB'}", "default": 0, "entity": "individus", "label": "Abattement pour dur\u00e9e de d\u00e9tention des titres en cas de d\u00e9part \u00e0 la retraite d'un dirigeant appliqu\u00e9 sur des plus-values", "line_number": 180, "module": "plus_value", "name": "f3va", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VC", "default": 0, "entity": "foyers_fiscaux", "label": "Produits et plus-values exon\u00e9r\u00e9s provenant de structure de capital-risque", "line_number": 74, "module": "plus_value", "name": "f3vc", "start": "2006-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'3VD', 1: u'3SD'}", "default": 0, "entity": "individus", "label": "Gains de lev\u00e9e d'options sur titres et gains d'acquisition d'actions taxables \u00e0 18 %", "line_number": 83, "module": "plus_value", "name": "f3vd", "start": "2008-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VE", "default": 0, "entity": "foyers_fiscaux", "label": "Plus-values r\u00e9alis\u00e9es par les non-r\u00e9sidents pour lesquelles vous demandez le remboursement de l'exc\u00e9dent du pr\u00e9l\u00e8vement de 45 %", "line_number": 94, "module": "plus_value", "name": "f3ve", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'3VF', 1: u'3SF'}", "default": 0, "entity": "individus", "label": "Gains de lev\u00e9e d'options sur titres et gains d'acquisition d'actions taxables \u00e0 41 %", "line_number": 112, "module": "plus_value", "name": "f3vf", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VG", "default": 0, "entity": "foyers_fiscaux", "label": "Plus-value imposable sur gains de cession de valeurs mobili\u00e8res, de droits sociaux et gains assimil\u00e9s", "line_number": 193, "module": "plus_value", "name": "f3vg", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VH", "default": 0, "entity": "foyers_fiscaux", "label": "Perte de l'ann\u00e9e de perception des revenus", "line_number": 201, "module": "plus_value", "name": "f3vh", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'3VI', 1: u'3SI'}", "default": 0, "entity": "individus", "label": "Gains de lev\u00e9e d'options sur titres et gains d'acquisition d'actions taxables \u00e0 30 %", "line_number": 143, "module": "plus_value", "name": "f3vi", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "{0: u'3VJ', 1: u'3VK'}", "default": 0, "entity": "individus", "label": "Gains imposables sur option dans la cat\u00e9gorie des salaires", "line_number": 170, "module": "plus_value", "name": "f3vj", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VL", "default": 0, "entity": "foyers_fiscaux", "label": "Distributions par des soci\u00e9t\u00e9s de capital-risque taxables \u00e0 19 %", "line_number": 135, "module": "plus_value", "name": "f3vl", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VM", "default": 0, "entity": "foyers_fiscaux", "label": "Cl\u00f4ture du PEA avant l'expiration de la 2e ann\u00e9e: gains taxables \u00e0 22.5 %", "line_number": 153, "module": "plus_value", "name": "f3vm", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VT", "default": 0, "entity": "foyers_fiscaux", "label": "Cl\u00f4ture du PEA entre la 2e et la 5e ann\u00e9e: gains taxables \u00e0 19 %", "line_number": 161, "module": "plus_value", "name": "f3vt", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "default": 0, "end": "2009-12-31", "entity": "foyers_fiscaux", "line_number": 209, "module": "plus_value", "name": "f3vu"}, {"@type": "Integer", "cerfa_field": "3VV", "default": 0, "entity": "foyers_fiscaux", "label": "Plus-values r\u00e9alis\u00e9es par les non-r\u00e9sidents: montant du pr\u00e9l\u00e8vement de 45 % d\u00e9j\u00e0 vers\u00e9", "line_number": 216, "module": "plus_value", "name": "f3vv", "start": "2013-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VV", "default": 0, "end": "2010-12-31", "entity": "foyers_fiscaux", "label": "Pertes ouvrant droit au cr\u00e9dit d\u2019imp\u00f4t de 19 % ", "line_number": 225, "module": "plus_value", "name": "f3vv_end_2010", "start": "2010-01-01", "val_type": "monetary"}, {"@type": "Integer", "cerfa_field": "3VZ", "default": 0, "entity": "foyers_fiscaux", "label": "Plus-values imposables sur cessions d\u2019immeubles ou de biens meubles", "line_number": 235, "module": "plus_value", "name": "f3vz", "start": "2011-01-01", "val_type": "monetary"}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Aide au logement (tout type)", "line_number": 603, "module": "aides_logement", "name": "aide_logement", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 608, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n apl = simulation.calculate('apl', period)\n als = simulation.calculate('als', period)\n alf = simulation.calculate('alf', period)\n\n return period, max_(max_(apl, als), alf)\n", "input_variables": ["alf", "als", "apl"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu de r\u00e9f\u00e9rence, bas\u00e9 sur la situation familiale, pris en compte dans le calcul des AL.", "line_number": 336, "module": "aides_logement", "name": "aide_logement_R0", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 341, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n al = simulation.legislation_at(period.start).al\n pfam_n_2 = simulation.legislation_at(period.start.offset(-2, 'year')).fam\n couple = simulation.calculate('al_couple', period)\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n residence_dom = simulation.calculate('residence_dom')\n\n R1 = al.rmi * (\n al.R1.taux1 * not_(couple) * (al_nb_pac == 0) +\n al.R1.taux2 * couple * (al_nb_pac == 0) +\n al.R1.taux3 * (al_nb_pac == 1) +\n al.R1.taux4 * (al_nb_pac >= 2) +\n al.R1.taux5 * (al_nb_pac > 2) * (al_nb_pac - 2)\n )\n R2 = pfam_n_2.af.bmaf * (\n al.R2.taux3_dom * residence_dom * (al_nb_pac == 1) +\n al.R2.taux4 * (al_nb_pac >= 2) +\n al.R2.taux5 * (al_nb_pac > 2) * (al_nb_pac - 2)\n )\n\n R0 = round_(12 * (R1 - R2) * (1 - al.autres.abat_sal))\n\n return period, R0\n", "input_variables": ["al_nb_personnes_a_charge", "residence_dom", "al_couple"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Montant de l'abattement pour personnes au ch\u00f4mage indemnis\u00e9 (R351-13 du CCH)", "line_number": 135, "module": "aides_logement", "name": "aide_logement_abattement_chomage_indemnise", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 140, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n chomage_net_m_1 = simulation.calculate('chomage_net', period.offset(-1))\n chomage_net_m_2 = simulation.calculate('chomage_net', period.offset(-2))\n revenus_activite_pro = simulation.calculate('salaire_imposable', period.n_2)\n taux_abattement = simulation.legislation_at(period.start).al.ressources.abattement_chomage_indemnise\n taux_frais_pro = simulation.legislation_at(period.start).ir.tspr.abatpro.taux\n\n abattement = and_(chomage_net_m_1 > 0, chomage_net_m_2 > 0) * taux_abattement * revenus_activite_pro\n abattement = round_((1 - taux_frais_pro) * abattement)\n\n return period, abattement\n", "input_variables": ["salaire_imposable", "chomage_net"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Montant de l'abattement sur les salaires en cas de d\u00e9part en retraite", "line_number": 153, "module": "aides_logement", "name": "aide_logement_abattement_depart_retraite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 158, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n retraite = simulation.calculate('activite', period) == 3\n activite_n_2 = simulation.calculate('salaire_imposable', period.n_2)\n retraite_n_2 = simulation.calculate('retraite_imposable', period.n_2)\n taux_frais_pro = simulation.legislation_at(period.start).ir.tspr.abatpro.taux\n\n abattement = 0.3 * activite_n_2 * (retraite_n_2 == 0) * retraite\n abattement = round_((1 - taux_frais_pro) * abattement)\n\n return period, abattement\n", "input_variables": ["salaire_imposable", "activite", "retraite_imposable"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressources des allocations logement", "line_number": 225, "module": "aides_logement", "name": "aide_logement_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 230, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n mois_precedent = period.offset(-1)\n last_day_reference_year = period.n_2.stop\n base_ressources_defaut = simulation.calculate('aide_logement_base_ressources_defaut', period)\n base_ressources_eval_forfaitaire = simulation.calculate(\n 'aide_logement_base_ressources_eval_forfaitaire', period)\n en_couple = simulation.calculate('en_couple', period)\n aah_holder = simulation.compute('aah', mois_precedent)\n aah = self.sum_by_entity(aah_holder, roles = [CHEF, PART])\n age_holder = simulation.compute('age', period)\n age = self.split_by_roles(age_holder, roles = [CHEF, PART])\n smic_horaire_brut_n2 = simulation.legislation_at(last_day_reference_year).cotsoc.gen.smic_h_b\n salaire_imposable_holder = simulation.compute('salaire_imposable', period.offset(-1))\n somme_salaires = self.sum_by_entity(salaire_imposable_holder, roles = [CHEF, PART])\n\n plafond_eval_forfaitaire = 1015 * smic_horaire_brut_n2\n\n plafond_salaire_jeune_isole = simulation.legislation_at(period.start).al.ressources.dar_8\n plafond_salaire_jeune_couple = simulation.legislation_at(period.start).al.ressources.dar_9\n plafond_salaire_jeune = where(en_couple, plafond_salaire_jeune_couple, plafond_salaire_jeune_isole)\n\n neutral_jeune = or_(age[CHEF] < 25, and_(en_couple, age[PART] < 25))\n neutral_jeune &= somme_salaires < plafond_salaire_jeune\n\n eval_forfaitaire = base_ressources_defaut <= plafond_eval_forfaitaire\n eval_forfaitaire &= base_ressources_eval_forfaitaire > 0\n eval_forfaitaire &= aah == 0\n eval_forfaitaire &= not_(neutral_jeune)\n\n ressources = where(eval_forfaitaire, base_ressources_eval_forfaitaire, base_ressources_defaut)\n\n # Planchers de ressources pour \u00e9tudiants\n # Seul le statut \u00e9tudiant (et boursier) du demandeur importe, pas celui du conjoint\n Pr = simulation.legislation_at(period.start).al.ressources\n etudiant_holder = simulation.compute('etudiant', period)\n boursier_holder = simulation.compute('boursier', period)\n etudiant = self.split_by_roles(etudiant_holder, roles = [CHEF, PART])\n boursier = self.split_by_roles(boursier_holder, roles = [CHEF, PART])\n montant_plancher_ressources = max_(0, etudiant[CHEF] * Pr.dar_4 - boursier[CHEF] * Pr.dar_5)\n ressources = max_(ressources, montant_plancher_ressources)\n\n # Arrondi aux 100 euros sup\u00e9rieurs\n ressources = ceil(ressources / 100) * 100\n\n return period, ressources\n", "input_variables": ["aide_logement_base_ressources_defaut", "salaire_imposable", "age", "aah", "en_couple", "etudiant", "aide_logement_base_ressources_eval_forfaitaire", "boursier"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressource par d\u00e9faut des allocations logement", "line_number": 191, "module": "aides_logement", "name": "aide_logement_base_ressources_defaut", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 196, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n rev_coll_holder = simulation.compute('rev_coll', period.n_2)\n rev_coll = self.sum_by_entity(rev_coll_holder)\n biactivite = simulation.calculate('biactivite', period)\n Pr = simulation.legislation_at(period.start).al.ressources\n base_ressources_holder = simulation.compute('prestations_familiales_base_ressources_individu', period)\n base_ressources_parents = self.sum_by_entity(base_ressources_holder, roles = [CHEF, PART])\n abattement_chomage_indemnise_holder = simulation.compute('aide_logement_abattement_chomage_indemnise', period)\n abattement_chomage_indemnise = self.sum_by_entity(abattement_chomage_indemnise_holder, roles = [CHEF, PART])\n abattement_depart_retraite_holder = simulation.compute('aide_logement_abattement_depart_retraite', period)\n abattement_depart_retraite = self.sum_by_entity(abattement_depart_retraite_holder, roles = [CHEF, PART])\n neutralisation_rsa = simulation.calculate('aide_logement_neutralisation_rsa', period)\n abattement_ressources_enfant = simulation.legislation_at(period.n_2.stop).minim.aspa.plaf_seul * 1.25\n br_enfants = self.sum_by_entity(\n max_(0, base_ressources_holder.array - abattement_ressources_enfant), roles = ENFS)\n ressources = (\n base_ressources_parents + br_enfants + rev_coll -\n (abattement_chomage_indemnise + abattement_depart_retraite + neutralisation_rsa)\n )\n\n # Abattement forfaitaire pour double activit\u00e9\n abattement_double_activite = biactivite * Pr.dar_1\n\n # Arrondi aux 100 euros sup\u00e9rieurs\n result = max_(ressources - abattement_double_activite, 0)\n\n return period, result\n", "input_variables": ["prestations_familiales_base_ressources_individu", "rev_coll", "aide_logement_abattement_depart_retraite", "aide_logement_neutralisation_rsa", "biactivite", "aide_logement_abattement_chomage_indemnise"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressources en \u00e9valuation forfaitaire des aides au logement (R351-7 du CCH)", "line_number": 101, "module": "aides_logement", "name": "aide_logement_base_ressources_eval_forfaitaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 106, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n\n def eval_forfaitaire_salaries():\n salaire_imposable_holder = simulation.compute('salaire_imposable', period.offset(-1))\n salaire_imposable = self.sum_by_entity(salaire_imposable_holder, roles = [CHEF, PART])\n\n # Application de l'abattement pour frais professionnels\n params_abattement = simulation.legislation_at(period.start).ir.tspr.abatpro\n somme_salaires_mois_precedent = 12 * salaire_imposable\n montant_abattement = round_(\n min_(\n max_(params_abattement.taux * somme_salaires_mois_precedent, params_abattement.min),\n params_abattement.max\n )\n )\n return max_(0, somme_salaires_mois_precedent - montant_abattement)\n\n def eval_forfaitaire_tns():\n last_july_first = Instant(\n (period.start.year if period.start.month >= 7 else period.start.year - 1,\n 7, 1))\n smic_horaire_brut = simulation.legislation_at(last_july_first).cotsoc.gen.smic_h_b\n travailleur_non_salarie_holder = simulation.compute('travailleur_non_salarie', period)\n any_tns = self.any_by_roles(travailleur_non_salarie_holder)\n return any_tns * 1500 * smic_horaire_brut\n\n return period, max_(eval_forfaitaire_salaries(), eval_forfaitaire_tns())\n", "input_variables": ["salaire_imposable"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Charges retenues dans le calcul des aides au logement", "line_number": 320, "module": "aides_logement", "name": "aide_logement_charges", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 325, "module": "aides_logement", "source": "def function(self, simulation, period):\n P = simulation.legislation_at(period.start).al.forfait_charges\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n couple = simulation.calculate('al_couple', period)\n coloc_holder = simulation.compute('coloc', period)\n coloc = self.any_by_roles(coloc_holder)\n montant_coloc = where(couple, 1, 0.5) * P.fc1 + al_nb_pac * P.fc2\n montant_cas_general = P.fc1 + al_nb_pac * P.fc2\n\n return period, where(coloc, montant_coloc, montant_cas_general)\n", "input_variables": ["coloc", "al_nb_personnes_a_charge", "al_couple"], "parameters": ["al.forfait_charges.fc1", "al.forfait_charges.fc2"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Loyer retenu (hors charge) dans le calcul des aides au logement", "line_number": 277, "module": "aides_logement", "name": "aide_logement_loyer_retenu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 282, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n al = simulation.legislation_at(period.start).al\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n couple = simulation.calculate('al_couple', period)\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n loyer = simulation.calculate('loyer_famille', period)\n coloc_holder = simulation.compute('coloc', period)\n coloc = self.any_by_roles(coloc_holder)\n logement_chambre_holder = simulation.compute('logement_chambre', period)\n chambre = self.any_by_roles(logement_chambre_holder)\n zone_apl = simulation.calculate('zone_apl_famille', period)\n\n def loyer_reel(): # L1\n coeff_meuble = where(statut_occupation_logement == 5, 2 / 3, 1) # Coeff de 2/3 pour les meubl\u00e9s\n return round_(loyer * coeff_meuble)\n\n def loyer_plafond(): # L2\n # Preprocessing pour pouvoir acc\u00e9der aux param\u00e8tres dynamiquement par zone.\n plafonds_by_zone = [[0] + [al.loyers_plafond['zone' + str(zone)]['L' + str(i)] for zone in range(1, 4)] for i in range(1, 5)]\n plafond_personne_seule = take(plafonds_by_zone[0], zone_apl)\n plafond_couple = take(plafonds_by_zone[1], zone_apl)\n plafond_famille = take(plafonds_by_zone[2], zone_apl) + (al_nb_pac > 1) * (al_nb_pac - 1) * take(plafonds_by_zone[3], zone_apl)\n\n plafond = select(\n [not_(couple) * (al_nb_pac == 0) + chambre, al_nb_pac > 0],\n [plafond_personne_seule, plafond_famille],\n default = plafond_couple\n )\n\n coeff_coloc = where(coloc, al.loyers_plafond.colocation, 1)\n coeff_chambre = where(chambre, al.loyers_plafond.chambre, 1)\n\n return round_(plafond * coeff_coloc * coeff_chambre, 2)\n\n # loyer retenu\n return period, min_(loyer_reel(), loyer_plafond())\n", "input_variables": ["statut_occupation_logement_famille", "zone_apl_famille", "al_nb_personnes_a_charge", "logement_chambre", "loyer_famille", "coloc", "al_couple"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant des aides au logement net de CRDS", "line_number": 484, "module": "aides_logement", "name": "aide_logement_montant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 489, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n aide_logement_montant_brut = simulation.calculate('aide_logement_montant_brut', period)\n crds_logement = simulation.calculate('crds_logement', period)\n montant = round_(aide_logement_montant_brut + crds_logement, 2)\n\n return period, montant\n", "input_variables": ["crds_logement", "aide_logement_montant_brut"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Formule des aides aux logements en secteur locatif en montant brut avant CRDS", "line_number": 457, "module": "aides_logement", "name": "aide_logement_montant_brut", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 462, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n\n al = simulation.legislation_at(period.start).al\n\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n locataire = ((3 <= statut_occupation_logement) * (5 >= statut_occupation_logement)) + (statut_occupation_logement == 7)\n accedant = (statut_occupation_logement == 1)\n\n loyer_retenu = simulation.calculate('aide_logement_loyer_retenu', period)\n charges_retenues = simulation.calculate('aide_logement_charges', period)\n participation_personelle = simulation.calculate('aide_logement_participation_personelle', period)\n\n montant_locataire = max_(0, loyer_retenu + charges_retenues - participation_personelle)\n montant_accedants = 0 # TODO: APL pour les acc\u00e9dants \u00e0 la propri\u00e9t\u00e9\n\n montant = select([locataire, accedant], [montant_locataire, montant_accedants])\n\n montant = montant * (montant >= al.autres.nv_seuil) # Montant minimal de versement\n\n return period, montant\n", "input_variables": ["aide_logement_participation_personelle", "statut_occupation_logement_famille", "aide_logement_loyer_retenu", "aide_logement_charges"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Abattement sur les revenus n-2 pour les b\u00e9n\u00e9ficiaires du RSA", "line_number": 170, "module": "aides_logement", "name": "aide_logement_neutralisation_rsa", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 175, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n # Circular definition, as rsa depends on al.\n # We don't allow it, so default value of rsa will be returned if a recursion is detected.\n rsa_last_month = simulation.calculate('rsa', period.last_month, max_nb_cycles = 0)\n activite = simulation.compute('salaire_imposable', period.n_2)\n chomage = simulation.compute('chomage_imposable', period.n_2)\n activite_n_2 = self.sum_by_entity(activite)\n chomage_n_2 = self.sum_by_entity(chomage)\n taux_frais_pro = simulation.legislation_at(period.start).ir.tspr.abatpro.taux\n\n abattement = (activite_n_2 + chomage_n_2) * rsa_last_month\n abattement = round_((1 - taux_frais_pro) * abattement)\n\n return period, abattement\n", "input_variables": ["salaire_imposable", "chomage_imposable", "rsa"]}}, {"@type": "Enumeration", "default": "0", "entity": "familles", "label": "Aide au logement non calculable", "line_number": 584, "module": "aides_logement", "name": "aide_logement_non_calculable", "labels": {"0": "", "1": "primo_accedant", "2": "locataire_foyer"}, "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 596, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n\n return period, (statut_occupation_logement == 1) * 1 + (statut_occupation_logement == 7) * 2\n", "input_variables": ["statut_occupation_logement_famille"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Participation personelle de la famille au loyer", "line_number": 432, "module": "aides_logement", "name": "aide_logement_participation_personelle", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 437, "module": "aides_logement", "source": "def function(self, simulation, period):\n\n al = simulation.legislation_at(period.start).al\n\n R = simulation.calculate('aide_logement_base_ressources', period)\n R0 = simulation.calculate('aide_logement_R0', period)\n Rp = max_(0, R - R0)\n\n loyer_retenu = simulation.calculate('aide_logement_loyer_retenu', period)\n charges_retenues = simulation.calculate('aide_logement_charges', period)\n E = loyer_retenu + charges_retenues\n P0 = max_(al.pp.taux * E, al.pp.min) # Participation personnelle minimale\n\n Tf = simulation.calculate('aide_logement_taux_famille', period)\n Tl = simulation.calculate('aide_logement_taux_loyer', period)\n Tp = Tf + Tl # Taux de participation\n\n return period, P0 + Tp * Rp\n", "input_variables": ["aide_logement_taux_famille", "aide_logement_taux_loyer", "aide_logement_R0", "aide_logement_charges", "aide_logement_base_ressources", "aide_logement_loyer_retenu"], "parameters": ["al.pp.taux", "al.pp.min"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Taux repr\u00e9sentant la situation familiale, d\u00e9croissant avec le nombre de personnes \u00e0 charge", "line_number": 366, "module": "aides_logement", "name": "aide_logement_taux_famille", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 371, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n al = simulation.legislation_at(period.start).al\n couple = simulation.calculate('al_couple', period)\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n residence_dom = simulation.calculate('residence_dom')\n\n TF_metropole = (\n al.TF.taux1 * (not_(couple)) * (al_nb_pac == 0) +\n al.TF.taux2 * (couple) * (al_nb_pac == 0) +\n al.TF.taux3 * (al_nb_pac == 1) +\n al.TF.taux4 * (al_nb_pac == 2) +\n al.TF.taux5 * (al_nb_pac == 3) +\n al.TF.taux6 * (al_nb_pac >= 4) +\n al.TF.taux7 * (al_nb_pac > 4) * (al_nb_pac - 4)\n )\n\n TF_dom = (\n al.TF.dom.taux1 * (not_(couple)) * (al_nb_pac == 0) +\n al.TF.dom.taux2 * (couple) * (al_nb_pac == 0) +\n al.TF.dom.taux3 * (al_nb_pac == 1) +\n al.TF.dom.taux4 * (al_nb_pac == 2) +\n al.TF.dom.taux5 * (al_nb_pac == 3) +\n al.TF.dom.taux6 * (al_nb_pac == 4) +\n al.TF.dom.taux7 * (al_nb_pac == 5) +\n al.TF.dom.taux8 * (al_nb_pac >= 6)\n )\n\n return period, where(residence_dom, TF_dom, TF_metropole)\n", "input_variables": ["al_nb_personnes_a_charge", "residence_dom", "al_couple"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Taux obscur bas\u00e9 sur une comparaison du loyer retenu \u00e0 un loyer de r\u00e9f\u00e9rence.", "line_number": 401, "module": "aides_logement", "name": "aide_logement_taux_loyer", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 406, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n al = simulation.legislation_at(period.start).al\n z2 = al.loyers_plafond.zone2\n\n L = simulation.calculate('aide_logement_loyer_retenu', period)\n couple = simulation.calculate('al_couple', period)\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n\n loyer_reference = (\n z2.L1 * (not_(couple)) * (al_nb_pac == 0) +\n z2.L2 * (couple) * (al_nb_pac == 0) +\n z2.L3 * (al_nb_pac >= 1) +\n z2.L4 * (al_nb_pac > 1) * (al_nb_pac - 1)\n )\n\n RL = L / loyer_reference\n\n # TODO: param\u00e8tres en dur ??\n TL = where(RL >= 0.75,\n al.TL.taux3 * (RL - 0.75) + al.TL.taux2 * (0.75 - 0.45),\n max_(0, al.TL.taux2 * (RL - 0.45))\n )\n\n return period, TL\n", "input_variables": ["al_nb_personnes_a_charge", "aide_logement_loyer_retenu", "al_couple"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Situation de couple pour le calcul des AL", "line_number": 89, "module": "aides_logement", "name": "al_couple", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 94, "module": "aides_logement", "source": "def function(self, simulation, period):\n en_couple = simulation.calculate('en_couple', period)\n enceinte = simulation.calculate('enceinte_fam', period)\n couple = en_couple + enceinte # le bar\u00e8me \"couple\" est utilis\u00e9 pour les femmes enceintes isol\u00e9es\n\n return period, couple\n", "input_variables": ["enceinte_fam", "en_couple"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre de personne \u00e0 charge au sens des allocations logement", "line_number": 25, "module": "aides_logement", "name": "al_nb_personnes_a_charge", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "site de la CAF en 2011:\n\n# Enfant \u00e0 charge\nVous assurez financi\u00e8rement l'entretien et asez la responsabilit\u00e9\naffective et \u00e9ducative d'un enfant, que vous ayez ou non un lien de\nparent\u00e9 avec lui. Il est reconnu \u00e0 votre charge pour le versement\ndes aides au logement jusqu'au mois pr\u00e9c\u00e9dent ses 21 ans.\nAttention, s'il travaille, il doit gagner moins de 836,55 \u20ac par mois.\n\n# Parents \u00e2g\u00e9s ou infirmes\nSont \u00e0 votre charge s'ils vivent avec vous et si leurs revenus 2009\nne d\u00e9passent pas 10 386,59 \u20ac :\n* vos parents ou grand-parents \u00e2g\u00e9s de plus de 65 ans ou d'au moins\n60 ans, inaptes au travail, anciens d\u00e9port\u00e9s,\n* vos proches parents infirmes \u00e2g\u00e9s de 22 ans ou plus (parents,\ngrand-parents, enfants, petits enfants, fr\u00e8res, soeurs, oncles,\ntantes, neveux, ni\u00e8ces).", "line_number": 30, "module": "aides_logement", "source": "def function(self, simulation, period):\n '''\n site de la CAF en 2011:\n\n # Enfant \u00e0 charge\n Vous assurez financi\u00e8rement l'entretien et asez la responsabilit\u00e9\n affective et \u00e9ducative d'un enfant, que vous ayez ou non un lien de\n parent\u00e9 avec lui. Il est reconnu \u00e0 votre charge pour le versement\n des aides au logement jusqu'au mois pr\u00e9c\u00e9dent ses 21 ans.\n Attention, s'il travaille, il doit gagner moins de 836,55 \u20ac par mois.\n\n # Parents \u00e2g\u00e9s ou infirmes\n Sont \u00e0 votre charge s'ils vivent avec vous et si leurs revenus 2009\n ne d\u00e9passent pas 10 386,59 \u20ac :\n * vos parents ou grand-parents \u00e2g\u00e9s de plus de 65 ans ou d'au moins\n 60 ans, inaptes au travail, anciens d\u00e9port\u00e9s,\n * vos proches parents infirmes \u00e2g\u00e9s de 22 ans ou plus (parents,\n grand-parents, enfants, petits enfants, fr\u00e8res, soeurs, oncles,\n tantes, neveux, ni\u00e8ces).\n '''\n\n period = period.this_month\n age_holder = simulation.compute('age', period)\n age_max_enfant = simulation.legislation_at(period.start).fam.cf.age2\n residence_dom = simulation.calculate('residence_dom', period)\n\n def al_nb_enfants():\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period)\n age = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n age_min_enfant = simulation.legislation_at(period.start).fam.af.age1\n\n return nb_enf(age, autonomie_financiere, age_min_enfant, age_max_enfant - 1) # La limite sur l'age max est stricte.\n\n def al_nb_adultes_handicapes():\n\n # Variables \u00e0 valeur pour un individu\n base_ressources_i = simulation.compute('prestations_familiales_base_ressources_individu', period).array\n inapte_travail = simulation.compute('inapte_travail', period).array\n taux_incapacite = simulation.compute('taux_incapacite', period).array\n age = age_holder.array\n\n # Parametres\n plafond_ressource = simulation.legislation_at(period.n_2.stop).minim.aspa.plaf_seul * 1.25\n taux_incapacite_minimum = 0.8\n\n adulte_handicape = (\n ((taux_incapacite > taux_incapacite_minimum) + inapte_travail) *\n (age >= age_max_enfant) *\n (base_ressources_i <= plafond_ressource)\n )\n\n return self.sum_by_entity(adulte_handicape)\n\n nb_pac = al_nb_enfants() + al_nb_adultes_handicapes()\n nb_pac = where(residence_dom, min_(nb_pac, 6), nb_pac) # Dans les DOMs, le bar\u00e8me est fixe \u00e0 partir de 6 enfants.\n\n return period, nb_pac\n", "input_variables": ["age", "residence_dom", "autonomie_financiere"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation logement familiale", "line_number": 497, "module": "aides_logement", "name": "alf", "url": "http://vosdroits.service-public.fr/particuliers/F13132.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 504, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n aide_logement_montant = simulation.calculate('aide_logement_montant', period)\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n proprietaire_proche_famille = simulation.calculate('proprietaire_proche_famille', period)\n\n result = (al_nb_pac >= 1) * (statut_occupation_logement != 3) * not_(proprietaire_proche_famille) * aide_logement_montant\n return period, result\n", "input_variables": ["aide_logement_montant", "statut_occupation_logement_famille", "al_nb_personnes_a_charge", "proprietaire_proche_famille"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation logement sociale", "line_number": 554, "module": "aides_logement", "name": "als", "url": "http://vosdroits.service-public.fr/particuliers/F1280.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 561, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n als_non_etudiant = simulation.calculate('als_non_etudiant', period)\n als_etudiant = simulation.calculate('als_etudiant', period)\n result = (als_non_etudiant + als_etudiant)\n\n return period, result\n", "input_variables": ["als_non_etudiant", "als_etudiant"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation logement sociale (\u00e9tudiante)", "line_number": 533, "module": "aides_logement", "name": "als_etudiant", "url": "https://www.caf.fr/actualites/2012/etudiants-tout-savoir-sur-les-aides-au-logement", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 540, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n aide_logement_montant = simulation.calculate('aide_logement_montant', period)\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n etudiant_holder = simulation.compute('etudiant', period)\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n proprietaire_proche_famille = simulation.calculate('proprietaire_proche_famille', period)\n\n etudiant = self.split_by_roles(etudiant_holder, roles = [CHEF, PART])\n return period, (\n (al_nb_pac == 0) * (statut_occupation_logement != 3) * not_(proprietaire_proche_famille) *\n (etudiant[CHEF] | etudiant[PART]) * aide_logement_montant\n )\n", "input_variables": ["aide_logement_montant", "proprietaire_proche_famille", "statut_occupation_logement_famille", "al_nb_personnes_a_charge", "etudiant"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation logement sociale (non \u00e9tudiante)", "line_number": 514, "module": "aides_logement", "name": "als_non_etudiant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 519, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n aide_logement_montant = simulation.calculate('aide_logement_montant', period)\n al_nb_pac = simulation.calculate('al_nb_personnes_a_charge', period)\n etudiant_holder = simulation.compute('etudiant', period)\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n proprietaire_proche_famille = simulation.calculate('proprietaire_proche_famille', period)\n\n etudiant = self.split_by_roles(etudiant_holder, roles = [CHEF, PART])\n return period, (\n (al_nb_pac == 0) * (statut_occupation_logement != 3) * not_(proprietaire_proche_famille) *\n not_(etudiant[CHEF] | etudiant[PART]) * aide_logement_montant\n )\n", "input_variables": ["aide_logement_montant", "proprietaire_proche_famille", "statut_occupation_logement_famille", "al_nb_personnes_a_charge", "etudiant"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": " Aide personnalis\u00e9e au logement", "line_number": 569, "module": "aides_logement", "name": "apl", "url": "(u'http://vosdroits.service-public.fr/particuliers/F12006.xhtml',)", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 577, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n aide_logement_montant = simulation.calculate('aide_logement_montant', period)\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n\n return period, aide_logement_montant * (statut_occupation_logement == 3)\n", "input_variables": ["aide_logement_montant", "statut_occupation_logement_famille"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "CRDS des allocations logement", "line_number": 616, "module": "aides_logement", "name": "crds_logement", "url": "http://vosdroits.service-public.fr/particuliers/F17585.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 623, "module": "aides_logement", "source": "def function(self, simulation, period):\n period = period.this_month\n aide_logement_montant_brut = simulation.calculate('aide_logement_montant_brut', period)\n crds = simulation.legislation_at(period.start).fam.af.crds\n return period, -aide_logement_montant_brut * crds\n", "input_variables": ["aide_logement_montant_brut"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Statut d'occupation de l'individu", "line_number": 629, "module": "aides_logement", "name": "statut_occupation_logement_individu", "labels": {"0": "Non renseign\u00e9", "1": "Acc\u00e9dant \u00e0 la propri\u00e9t\u00e9", "2": "Propri\u00e9taire (non acc\u00e9dant) du logement", "3": "Locataire d'un logement HLM", "4": "Locataire ou sous-locataire d'un logement lou\u00e9 vide non-HLM", "5": "Locataire ou sous-locataire d'un logement lou\u00e9 meubl\u00e9 ou d'une chambre d'h\u00f4tel", "6": "Log\u00e9 gratuitement par des parents, des amis ou l'employeur", "7": "Locataire d'un foyer (r\u00e9sidence universitaire, maison de retraite, foyer de jeune travailleur, r\u00e9sidence sociale...)", "8": "Sans domicile stable"}, "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 629, "module": "aides_logement", "source": "class statut_occupation_logement_individu(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Statut d'occupation de l'individu\"\n variable = statut_occupation_logement\n", "input_variables": ["statut_occupation_logement"]}}, {"@type": "Enumeration", "default": "0", "entity": "familles", "label": "Statut d'occupation de la famille", "line_number": 634, "module": "aides_logement", "name": "statut_occupation_logement_famille", "labels": {"0": "Non renseign\u00e9", "1": "Acc\u00e9dant \u00e0 la propri\u00e9t\u00e9", "2": "Propri\u00e9taire (non acc\u00e9dant) du logement", "3": "Locataire d'un logement HLM", "4": "Locataire ou sous-locataire d'un logement lou\u00e9 vide non-HLM", "5": "Locataire ou sous-locataire d'un logement lou\u00e9 meubl\u00e9 ou d'une chambre d'h\u00f4tel", "6": "Log\u00e9 gratuitement par des parents, des amis ou l'employeur", "7": "Locataire d'un foyer (r\u00e9sidence universitaire, maison de retraite, foyer de jeune travailleur, r\u00e9sidence sociale...)", "8": "Sans domicile stable"}, "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 634, "module": "aides_logement", "source": "class statut_occupation_logement_famille(PersonToEntityColumn):\n entity_class = Familles\n label = u\"Statut d'occupation de la famille\"\n role = CHEF\n variable = statut_occupation_logement_individu\n", "input_variables": ["statut_occupation_logement_individu"]}}, {"@type": "Enumeration", "default": "2", "entity": "menages", "label": "Zone APL", "line_number": 640, "module": "aides_logement", "name": "zone_apl", "labels": {"0": "Non renseign\u00e9", "1": "Zone 1", "2": "Zone 2", "3": "Zone 3"}, "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Retrouve la zone APL (aide personnalis\u00e9e au logement) de la commune\nen fonction du depcom (code INSEE)", "line_number": 653, "module": "aides_logement", "source": "def function(self, simulation, period):\n '''\n Retrouve la zone APL (aide personnalis\u00e9e au logement) de la commune\n en fonction du depcom (code INSEE)\n '''\n period = period\n depcom = simulation.calculate('depcom', period)\n\n preload_zone_apl()\n default_value = 2\n return period, fromiter(\n (\n zone_apl_by_depcom.get(depcom_cell, default_value)\n for depcom_cell in depcom\n ),\n dtype = int16,\n )\n", "input_variables": ["depcom"]}}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Zone apl de la personne", "line_number": 693, "module": "aides_logement", "name": "zone_apl_individu", "labels": {"0": "Non renseign\u00e9", "1": "Zone 1", "2": "Zone 2", "3": "Zone 3"}, "formula": {"@type": "EntityToPerson", "comments": null, "doc": null, "line_number": 693, "module": "aides_logement", "source": "class zone_apl_individu(EntityToPersonColumn):\n entity_class = Individus\n label = u\"Zone apl de la personne\"\n variable = zone_apl\n", "input_variables": ["zone_apl"]}}, {"@type": "Enumeration", "default": "0", "entity": "familles", "label": "Zone apl de la famille", "line_number": 698, "module": "aides_logement", "name": "zone_apl_famille", "labels": {"0": "Non renseign\u00e9", "1": "Zone 1", "2": "Zone 2", "3": "Zone 3"}, "formula": {"@type": "PersonToEntity", "comments": null, "doc": null, "line_number": 698, "module": "aides_logement", "source": "class zone_apl_famille(PersonToEntityColumn):\n entity_class = Familles\n label = u\"Zone apl de la famille\"\n role = CHEF\n variable = zone_apl_individu\n", "input_variables": ["zone_apl_individu"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant mensuel de la bourse de coll\u00e8ge", "line_number": 15, "module": "education", "name": "bourse_college", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 20, "module": "education", "source": "def function(self, simulation, period):\n period = period.this_month\n rfr = simulation.calculate('rfr', period.n_2)\n age_holder = simulation.compute('age', period)\n scolarite_holder = simulation.compute('scolarite', period)\n P = simulation.legislation_at(period.start).bourses_education.bourse_college\n\n ages = self.split_by_roles(age_holder, roles = ENFS)\n nb_enfants = sum(\n age >= 0 for age in ages.itervalues()\n )\n\n scolarites = self.split_by_roles(scolarite_holder, roles = ENFS)\n\n nb_enfants_college = sum(\n scolarite == SCOLARITE_COLLEGE for scolarite in scolarites.itervalues()\n )\n\n montant_par_enfant = apply_thresholds(\n rfr,\n thresholds = [\n # plafond_taux_3 est le plus bas\n round_(P.plafond_taux_3 + P.plafond_taux_3 * nb_enfants * P.coeff_enfant_supplementaire),\n round_(P.plafond_taux_2 + P.plafond_taux_2 * nb_enfants * P.coeff_enfant_supplementaire),\n round_(P.plafond_taux_1 + P.plafond_taux_1 * nb_enfants * P.coeff_enfant_supplementaire),\n ],\n choices = [P.montant_taux_3, P.montant_taux_2, P.montant_taux_1]\n )\n\n montant = nb_enfants_college * montant_par_enfant\n\n return period, montant / 12\n", "input_variables": ["rfr", "age", "scolarite"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant mensuel de la bourse de lyc\u00e9e", "line_number": 107, "module": "education", "name": "bourse_lycee", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 112, "module": "education", "source": "def function(self, simulation, period):\n period = period.this_month\n nombre_parts = simulation.calculate('bourse_lycee_nombre_parts', period)\n scolarite_holder = simulation.compute('scolarite', period)\n valeur_part = simulation.legislation_at(period.start).bourses_education.bourse_lycee.valeur_part\n\n scolarites = self.split_by_roles(scolarite_holder, roles = ENFS)\n\n nb_enfants_lycee = sum(\n scolarite == SCOLARITE_LYCEE for scolarite in scolarites.itervalues()\n )\n\n montant = nombre_parts * valeur_part * nb_enfants_lycee\n\n return period, montant / 12\n", "input_variables": ["bourse_lycee_nombre_parts", "scolarite"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Nombre de parts pour le calcul du montant de la bourse de lyc\u00e9e", "line_number": 79, "module": "education", "name": "bourse_lycee_nombre_parts", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 84, "module": "education", "source": "def function(self, simulation, period):\n period = period.this_month\n points_de_charge = simulation.calculate('bourse_lycee_points_de_charge', period)\n rfr = simulation.calculate('rfr', period.n_2)\n plafonds_reference = simulation.legislation_at(period.start).bourses_education.bourse_lycee.plafonds_reference\n increments_par_point_de_charge = simulation.legislation_at(period.start).bourses_education.bourse_lycee.increments_par_point_de_charge\n\n choices = [10, 9, 8, 7, 6, 5, 4, 3]\n nombre_parts = apply_thresholds(\n rfr,\n thresholds = [\n round(\n plafonds_reference['{}_parts'.format(index)] +\n ((points_de_charge - 9) * increments_par_point_de_charge['{}_parts'.format(index)])\n )\n for index in choices\n ],\n choices = choices,\n )\n\n return period, nombre_parts\n", "input_variables": ["rfr", "bourse_lycee_points_de_charge"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Nombre de points de charge pour la bourse de lyc\u00e9e", "line_number": 54, "module": "education", "name": "bourse_lycee_points_de_charge", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 59, "module": "education", "source": "def function(self, simulation, period):\n period = period.this_month\n age_holder = simulation.compute('age', period)\n isole = not_(simulation.calculate('en_couple', period))\n\n # compte le nombre d'enfants\n ages = self.split_by_roles(age_holder, roles = ENFS)\n nb_enfants = sum(\n age >= 0 for age in ages.itervalues()\n )\n\n points_de_charge = 11 * (nb_enfants >= 1)\n points_de_charge += 1 * (nb_enfants >= 2) # 1 point de charge pour le 2\u00e8me enfant\n points_de_charge += 2 * (nb_enfants >= 3) + 2 * (nb_enfants >= 4) # 2 points de charge pour les 3\u00e8me et 4\u00e8me enfants\n points_de_charge += 3 * (nb_enfants >= 5) * (nb_enfants - 4) # 3 points de charge pour chaque enfant au-dessus de 4 enfants\n points_de_charge += 3 * isole # 3 points de charge en plus si parent isol\u00e9\n\n return period, points_de_charge\n", "input_variables": ["en_couple", "age"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "\u00c9l\u00e8ve ou \u00e9tudiant boursier", "line_number": 143, "module": "education", "name": "boursier"}, {"@type": "Enumeration", "default": "0", "entity": "individus", "label": "Scolarit\u00e9 de l'enfant : coll\u00e8ge, lyc\u00e9e...", "line_number": 129, "module": "education", "name": "scolarite", "labels": {"0": "Inconnue", "1": "Coll\u00e8ge", "2": "Lyc\u00e9e"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocations familiales - total des allocations", "line_number": 333, "module": "af", "name": "af", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 339, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n af_base = simulation.calculate('af_base', period)\n af_majoration = simulation.calculate('af_majoration', period)\n af_allocation_forfaitaire = simulation.calculate('af_allocation_forfaitaire', period)\n af_complement_degressif = simulation.calculate('af_complement_degressif', period)\n af_forfaitaire_complement_degressif = simulation.calculate('af_allocation_forfaitaire_complement_degressif', period)\n\n return period, af_base + af_majoration + af_allocation_forfaitaire + af_complement_degressif + af_forfaitaire_complement_degressif\n", "input_variables": ["af_base", "af_allocation_forfaitaire_complement_degressif", "af_complement_degressif", "af_allocation_forfaitaire", "af_majoration"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Allocations familiales - \u00c2ge de l'a\u00een\u00e9 des enfants \u00e9ligibles", "line_number": 172, "module": "af", "name": "af_age_aine", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 177, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n\n age_holder = simulation.compute('age', period)\n age_enfants = self.split_by_roles(age_holder, roles = ENFS)\n\n pfam_enfant_a_charge_holder = simulation.compute('prestations_familiales_enfant_a_charge', period)\n af_enfants_a_charge = self.split_by_roles(pfam_enfant_a_charge_holder, roles = ENFS)\n\n pfam = simulation.legislation_at(period.start).fam\n\n # Calcul de l'\u00e2ge de l'a\u00een\u00e9\n age_aine = -9999\n for key, age in age_enfants.iteritems():\n a_charge = af_enfants_a_charge[key] * (age <= pfam.af.age2)\n aine_potentiel = a_charge * (age > age_aine)\n age_aine = aine_potentiel * age + not_(aine_potentiel) * age_aine\n\n return period, age_aine\n", "input_variables": ["prestations_familiales_enfant_a_charge", "age"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocations familiales - forfait", "line_number": 312, "module": "af", "name": "af_allocation_forfaitaire", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 317, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n af_nbenf = simulation.calculate('af_nbenf', period)\n af_forfaitaire_nbenf = simulation.calculate('af_allocation_forfaitaire_nb_enfants', period)\n P = simulation.legislation_at(period.start).fam.af\n\n bmaf = P.bmaf\n af_forfait = round(bmaf * P.taux.forfait, 2)\n af_allocation_forfaitaire = ((af_nbenf >= 2) * af_forfaitaire_nbenf) * af_forfait\n\n af_forfaitaire_taux_modulation = simulation.calculate('af_allocation_forfaitaire_taux_modulation', period)\n af_forfaitaire_module = af_allocation_forfaitaire * af_forfaitaire_taux_modulation\n\n return period, af_forfaitaire_module\n", "input_variables": ["af_allocation_forfaitaire_nb_enfants", "af_allocation_forfaitaire_taux_modulation", "af_nbenf"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "AF - Compl\u00e9ment d\u00e9gressif pour l'allocation forfaitaire en cas de d\u00e9passement du plafond", "line_number": 283, "module": "af", "name": "af_allocation_forfaitaire_complement_degressif", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 288, "module": "af", "source": "@dated_function(start = date(2015, 7, 1))\ndef function_2015(self, simulation, period):\n period = period.this_month\n af_nbenf = simulation.calculate('af_nbenf', period)\n af_forfaitaire_nbenf = simulation.calculate('af_allocation_forfaitaire_nb_enfants', period)\n pfam = simulation.legislation_at(period.start).fam.af\n nb_enf_tot = af_nbenf + af_forfaitaire_nbenf\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n af_allocation_forfaitaire = simulation.calculate('af_allocation_forfaitaire', period)\n modulation = pfam.modulation\n plafond1 = modulation.plafond1 + nb_enf_tot * modulation.enfant_supp\n plafond2 = modulation.plafond2 + nb_enf_tot * modulation.enfant_supp\n\n depassement_plafond1 = max_(0, base_ressources - plafond1)\n depassement_plafond2 = max_(0, base_ressources - plafond2)\n\n depassement_mensuel = (\n (depassement_plafond2 == 0) * depassement_plafond1 +\n (depassement_plafond2 > 0) * depassement_plafond2\n ) / 12\n\n return period, max_(0, af_allocation_forfaitaire - depassement_mensuel) * (depassement_mensuel > 0)\n", "input_variables": ["af_allocation_forfaitaire_nb_enfants", "af_nbenf", "af_allocation_forfaitaire", "prestations_familiales_base_ressources"]}, "stop_instant": null, "start_instant": "2015-07-01"}]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre d'enfants ouvrant droit \u00e0 l'allocation forfaitaire des AF", "line_number": 45, "module": "af", "name": "af_allocation_forfaitaire_nb_enfants", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 50, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n age_holder = simulation.compute('age', period)\n age = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n pfam = simulation.legislation_at(period.start).fam.af\n af_forfaitaire_nbenf = nb_enf(age, autonomie_financiere, pfam.age3, pfam.age3)\n\n return period, af_forfaitaire_nbenf\n", "input_variables": ["age", "autonomie_financiere"]}}, {"@type": "Float", "default": 1, "entity": "familles", "label": "Taux de modulation \u00e0 appliquer \u00e0 l'allocation forfaitaire des AF depuis 2015", "line_number": 146, "module": "af", "name": "af_allocation_forfaitaire_taux_modulation", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 151, "module": "af", "source": "@dated_function(start = date(2015, 7, 1))\ndef function_2015(self, simulation, period):\n period = period.this_month\n pfam = simulation.legislation_at(period.start).fam.af\n af_nbenf = simulation.calculate('af_nbenf', period)\n af_forfaitaire_nbenf = simulation.calculate('af_allocation_forfaitaire_nb_enfants', period)\n nb_enf_tot = af_nbenf + af_forfaitaire_nbenf\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n modulation = pfam.modulation\n plafond1 = modulation.plafond1 + nb_enf_tot * modulation.enfant_supp\n plafond2 = modulation.plafond2 + nb_enf_tot * modulation.enfant_supp\n\n taux = (\n (base_ressources <= plafond1) * 1 +\n (base_ressources > plafond1) * (base_ressources <= plafond2) * modulation.taux1 +\n (base_ressources > plafond2) * modulation.taux2\n )\n\n return period, taux\n", "input_variables": ["af_allocation_forfaitaire_nb_enfants", "af_nbenf", "prestations_familiales_base_ressources"]}, "stop_instant": null, "start_instant": "2015-07-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocations familiales - allocation de base", "line_number": 91, "module": "af", "name": "af_base", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 97, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n\n eligibilite_base = simulation.calculate('af_eligibilite_base', period)\n eligibilite_dom = simulation.calculate('af_eligibilite_dom', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n\n pfam = simulation.legislation_at(period.start).fam.af\n\n eligibilite = or_(eligibilite_base, eligibilite_dom)\n\n un_seul_enfant = eligibilite_dom * (af_nbenf == 1) * pfam.taux.enf_seul\n plus_de_deux_enfants = (af_nbenf >= 2) * pfam.taux.enf2\n plus_de_trois_enfants = max_(af_nbenf - 2, 0) * pfam.taux.enf3\n taux_total = un_seul_enfant + plus_de_deux_enfants + plus_de_trois_enfants\n montant_base = eligibilite * round(pfam.bmaf * taux_total, 2)\n coeff_garde_alternee = simulation.calculate('af_coeff_garde_alternee', period)\n montant_base = montant_base * coeff_garde_alternee\n\n af_taux_modulation = simulation.calculate('af_taux_modulation', period)\n montant_base_module = montant_base * af_taux_modulation\n\n return period, montant_base_module\n", "input_variables": ["af_taux_modulation", "af_eligibilite_base", "af_eligibilite_dom", "af_nbenf", "af_coeff_garde_alternee"]}}, {"@type": "Float", "default": 1, "entity": "familles", "label": "Coefficient \u00e0 appliquer aux af pour tenir compte de la garde altern\u00e9e", "line_number": 25, "module": "af", "name": "af_coeff_garde_alternee", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 30, "module": "af", "source": "@dated_function(start = date(2007, 5, 1))\ndef function_2007(self, simulation, period):\n period = period.this_month\n nb_enf = simulation.calculate('af_nbenf', period)\n garde_alternee = simulation.compute('garde_alternee', period)\n pfam_enfant_a_charge = simulation.compute('prestations_familiales_enfant_a_charge', period)\n\n # Le nombre d'enfants \u00e0 charge en garde altern\u00e9e, qui v\u00e9rifient donc pfam_enfant_a_charge = true et garde_alternee = true\n nb_enf_garde_alternee = self.sum_by_entity(garde_alternee.array * pfam_enfant_a_charge.array)\n\n # Avoid division by zero. If nb_enf == 0, necessarily nb_enf_garde_alternee = 0 so coeff = 1\n coeff = 1 - (nb_enf_garde_alternee / (nb_enf + (nb_enf == 0))) * 0.5\n\n return period, coeff\n", "input_variables": ["prestations_familiales_enfant_a_charge", "garde_alternee", "af_nbenf"]}, "stop_instant": null, "start_instant": "2007-05-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "AF - Compl\u00e9ment d\u00e9gressif en cas de d\u00e9passement du plafond", "line_number": 254, "module": "af", "name": "af_complement_degressif", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 259, "module": "af", "source": "@dated_function(start = date(2015, 7, 1))\ndef function_2015(self, simulation, period):\n period = period.this_month\n af_nbenf = simulation.calculate('af_nbenf', period)\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n af_base = simulation.calculate('af_base', period)\n af_majoration = simulation.calculate('af_majoration', period)\n pfam = simulation.legislation_at(period.start).fam.af\n modulation = pfam.modulation\n plafond1 = modulation.plafond1 + af_nbenf * modulation.enfant_supp\n plafond2 = modulation.plafond2 + af_nbenf * modulation.enfant_supp\n\n depassement_plafond1 = max_(0, base_ressources - plafond1)\n depassement_plafond2 = max_(0, base_ressources - plafond2)\n\n depassement_mensuel = (\n (depassement_plafond2 == 0) * depassement_plafond1 +\n (depassement_plafond2 > 0) * depassement_plafond2\n ) / 12\n\n af = af_base + af_majoration\n return period, max_(0, af - depassement_mensuel) * (depassement_mensuel > 0)\n", "input_variables": ["af_base", "af_majoration", "af_nbenf", "prestations_familiales_base_ressources"]}, "stop_instant": null, "start_instant": "2015-07-01"}]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Allocations familiales - \u00c9ligibilit\u00e9 pour la France m\u00e9tropolitaine sous condition de ressources", "line_number": 62, "module": "af", "name": "af_eligibilite_base", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 67, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n\n residence_dom = simulation.calculate('residence_dom', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n\n return period, not_(residence_dom) * (af_nbenf >= 2)\n", "input_variables": ["residence_dom", "af_nbenf"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Allocations familiales - \u00c9ligibilit\u00e9 pour les DOM (hors Mayotte) sous condition de ressources", "line_number": 76, "module": "af", "name": "af_eligibilite_dom", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 81, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n\n residence_dom = simulation.calculate('residence_dom', period)\n residence_mayotte = simulation.calculate('residence_mayotte', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n\n return period, residence_dom * not_(residence_mayotte) * (af_nbenf >= 1)\n", "input_variables": ["residence_dom", "af_nbenf", "residence_mayotte"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocations familiales - majoration pour \u00e2ge", "line_number": 238, "module": "af", "name": "af_majoration", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 243, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n af_majoration_enfant_holder = simulation.compute('af_majoration_enfant', period)\n af_majoration_enfants = self.sum_by_entity(af_majoration_enfant_holder, roles = ENFS)\n\n af_taux_modulation = simulation.calculate('af_taux_modulation', period)\n af_majoration_enfants_module = af_majoration_enfants * af_taux_modulation\n\n return period, af_majoration_enfants_module\n", "input_variables": ["af_majoration_enfant", "af_taux_modulation"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Allocations familiales - Majoration pour \u00e2ge applicable \u00e0 l'enfant", "line_number": 198, "module": "af", "name": "af_majoration_enfant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 203, "module": "af", "source": "def function(self, simulation, period):\n period = period.this_month\n\n pfam_enfant_a_charge = simulation.calculate('prestations_familiales_enfant_a_charge', period)\n age = simulation.calculate('age', period)\n garde_alternee = simulation.calculate('garde_alternee', period)\n age_aine_holder = simulation.compute('af_age_aine', period)\n age_aine = self.cast_from_entity_to_roles(age_aine_holder, roles = ENFS)\n af_nbenf_holder = simulation.compute('af_nbenf', period)\n af_nbenf = self.cast_from_entity_to_roles(af_nbenf_holder, roles = ENFS)\n af_base_holder = simulation.compute('af_base', period)\n af_base = self.cast_from_entity_to_roles(af_base_holder, roles = ENFS)\n\n pfam = simulation.legislation_at(period.start).fam\n\n montant_enfant_seul = pfam.af.bmaf * (\n (pfam.af.maj_age_un_enfant.age1 <= age) * (age < pfam.af.maj_age_un_enfant.age2) * pfam.af.maj_age_un_enfant.taux1 +\n (pfam.af.maj_age_un_enfant.age2 <= age) * pfam.af.maj_age_un_enfant.taux2\n )\n\n montant_plusieurs_enfants = pfam.af.bmaf * (\n (pfam.af.maj_age_deux_enfants.age1 <= age) * (age < pfam.af.maj_age_deux_enfants.age2) * pfam.af.maj_age_deux_enfants.taux1 +\n (pfam.af.maj_age_deux_enfants.age2 <= age) * pfam.af.maj_age_deux_enfants.taux2\n )\n\n montant = (af_nbenf == 1) * montant_enfant_seul + (af_nbenf > 1) * montant_plusieurs_enfants\n\n # Attention ! Ne fonctionne pas pour les enfants du m\u00eame \u00e2ge (typiquement les jumeaux...)\n pas_aine = or_(af_nbenf != 2, (af_nbenf == 2) * not_(age == age_aine))\n\n coeff_garde_alternee = where(garde_alternee, pfam.af.facteur_garde_alternee, 1)\n\n return period, pfam_enfant_a_charge * (af_base > 0) * pas_aine * montant * coeff_garde_alternee\n", "input_variables": ["af_base", "age", "af_age_aine", "garde_alternee", "af_nbenf", "prestations_familiales_enfant_a_charge"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre d'enfants dans la famille au sens des allocations familiales", "line_number": 12, "module": "af", "name": "af_nbenf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 17, "module": "af", "source": "def function(self, simulation, period):\n period_mois = period.this_month\n\n pfam_enfant_a_charge_holder = simulation.compute('prestations_familiales_enfant_a_charge', period_mois)\n af_nbenf = self.sum_by_entity(pfam_enfant_a_charge_holder)\n\n return period, af_nbenf\n", "input_variables": ["prestations_familiales_enfant_a_charge"]}}, {"@type": "Float", "default": 1, "entity": "familles", "label": "Taux de modulation \u00e0 appliquer au montant des AF depuis 2015", "line_number": 122, "module": "af", "name": "af_taux_modulation", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 127, "module": "af", "source": "@dated_function(start = date(2015, 7, 1))\ndef function_2015(self, simulation, period):\n period = period.this_month\n af_nbenf = simulation.calculate('af_nbenf', period)\n pfam = simulation.legislation_at(period.start).fam.af\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n modulation = pfam.modulation\n plafond1 = modulation.plafond1 + af_nbenf * modulation.enfant_supp\n plafond2 = modulation.plafond2 + af_nbenf * modulation.enfant_supp\n\n taux = (\n (base_ressources <= plafond1) * 1 +\n (base_ressources > plafond1) * (base_ressources <= plafond2) * modulation.taux1 +\n (base_ressources > plafond2) * modulation.taux2\n )\n\n return period, taux\n", "input_variables": ["af_nbenf", "prestations_familiales_base_ressources"]}, "stop_instant": null, "start_instant": "2015-07-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation d'\u00e9ducation de l'enfant handicap\u00e9", "line_number": 14, "module": "aeeh", "name": "aeeh", "url": "http://vosdroits.service-public.fr/particuliers/N14808.xhtml", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Allocation d'\u00e9ducation de l'enfant handicap\u00e9 (Allocation d'\u00e9ducation sp\u00e9cialis\u00e9e avant le 1er janvier 2006)\n\nCe montant peut \u00eatre major\u00e9 par un compl\u00e9ment accord\u00e9 par la Cdaph qui prend en compte :\nle co\u00fbt du handicap de l'enfant,\nla cessation ou la r\u00e9duction d'activit\u00e9 professionnelle d'un ou l'autre des deux parents,\nl'embauche d'une tierce personne r\u00e9mun\u00e9r\u00e9e.\n\nUne majoration est vers\u00e9e au parent isol\u00e9 b\u00e9n\u00e9ficiaire d'un compl\u00e9ment d'Aeeh lorsqu'il cesse ou r\u00e9duit son activit\u00e9\nprofessionnelle ou lorsqu'il embauche une tierce personne r\u00e9mun\u00e9r\u00e9e.", "line_number": 20, "module": "aeeh", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2002, 12, 31))\ndef function_20020101_20021231(self, simulation, period):\n '''\n Allocation d'\u00e9ducation de l'enfant handicap\u00e9 (Allocation d'\u00e9ducation sp\u00e9cialis\u00e9e avant le 1er janvier 2006)\n\n Ce montant peut \u00eatre major\u00e9 par un compl\u00e9ment accord\u00e9 par la Cdaph qui prend en compte :\n le co\u00fbt du handicap de l'enfant,\n la cessation ou la r\u00e9duction d'activit\u00e9 professionnelle d'un ou l'autre des deux parents,\n l'embauche d'une tierce personne r\u00e9mun\u00e9r\u00e9e.\n\n Une majoration est vers\u00e9e au parent isol\u00e9 b\u00e9n\u00e9ficiaire d'un compl\u00e9ment d'Aeeh lorsqu'il cesse ou r\u00e9duit son activit\u00e9\n professionnelle ou lorsqu'il embauche une tierce personne r\u00e9mun\u00e9r\u00e9e.\n '''\n period = period.start.offset('first-of', 'month').period('year')\n age_holder = simulation.compute('age', period)\n handicap_holder = simulation.compute('handicap', period)\n niveau_handicap_holder = simulation.compute('aeeh_niveau_handicap', period)\n P = simulation.legislation_at(period.start).fam\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n niveau_handicap = self.split_by_roles(niveau_handicap_holder, roles = ENFS)\n handicap = self.split_by_roles(handicap_holder, roles = ENFS)\n\n aeeh = 0\n for enfant in age.iterkeys():\n enfhand = handicap[enfant] * (age[enfant] < P.aeeh.age) / 12\n categ = niveau_handicap[enfant]\n aeeh += 0 * enfhand # TODO:\n\n# L'attribution de l'AEEH de base et de ses compl\u00e9ments \u00e9ventuels ne fait pas obstacle au\n# versement des prestations familiales.\n# L'allocation de pr\u00e9sence parentale peut \u00eatre cumul\u00e9e avec l'AEEH de base, mais pas avec son\n# compl\u00e9ment ni avec la majoration de parent isol\u00e9.\n# Tous les \u00e9l\u00e9ments de la prestattion de compensation du handicap (PCH) sont \u00e9galement ouverts\n# aux b\u00e9n\u00e9ficiaires de l'AEEH de base, sous certaines conditions, mais ce cumul est exclusif du\n# compl\u00e9ment de l'AEEH. Les parents d'enfants handicap\u00e9s doivent donc choisir entre le versement\n# du compl\u00e9ment d'AEEH et la PCH.\n\n # Ces allocations ne sont pas soumis \u00e0 la CRDS\n return period, 12 * aeeh # annualis\u00e9\n", "input_variables": ["handicap", "en_couple", "age", "aeeh_niveau_handicap"], "parameters": ["fam.aeeh.maj2", "fam.aeeh.maj3", "fam.aeeh.cpl5", "fam.aeeh.cpl4", "fam.aeeh.cpl3", "fam.aeeh.cpl2", "fam.af.bmaf", "fam.aeeh.maj5", "fam.aeeh.cpl6", "fam.aeeh.age", "fam.aeeh.maj4", "fam.aeeh.base", "fam.aeeh.maj6", "fam.aeeh.cpl1"]}, "stop_instant": "2002-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Allocation d'\u00e9ducation de l'enfant handicap\u00e9 (Allocation d'\u00e9ducation sp\u00e9cialis\u00e9e avant le 1er janvier 2006)\n\nCe montant peut \u00eatre major\u00e9 par un compl\u00e9ment accord\u00e9 par la Cdaph qui prend en compte :\nle co\u00fbt du handicap de l'enfant,\nla cessation ou la r\u00e9duction d'activit\u00e9 professionnelle d'un ou l'autre des deux parents,\nl'embauche d'une tierce personne r\u00e9mun\u00e9r\u00e9e.\n\nUne majoration est vers\u00e9e au parent isol\u00e9 b\u00e9n\u00e9ficiaire d'un compl\u00e9ment d'Aeeh lorsqu'il cesse ou r\u00e9duit son activit\u00e9\nprofessionnelle ou lorsqu'il embauche une tierce personne r\u00e9mun\u00e9r\u00e9e.", "line_number": 61, "module": "aeeh", "source": "@dated_function(start = date(2003, 1, 1))\ndef function_20030101(self, simulation, period):\n '''\n Allocation d'\u00e9ducation de l'enfant handicap\u00e9 (Allocation d'\u00e9ducation sp\u00e9cialis\u00e9e avant le 1er janvier 2006)\n\n Ce montant peut \u00eatre major\u00e9 par un compl\u00e9ment accord\u00e9 par la Cdaph qui prend en compte :\n le co\u00fbt du handicap de l'enfant,\n la cessation ou la r\u00e9duction d'activit\u00e9 professionnelle d'un ou l'autre des deux parents,\n l'embauche d'une tierce personne r\u00e9mun\u00e9r\u00e9e.\n\n Une majoration est vers\u00e9e au parent isol\u00e9 b\u00e9n\u00e9ficiaire d'un compl\u00e9ment d'Aeeh lorsqu'il cesse ou r\u00e9duit son activit\u00e9\n professionnelle ou lorsqu'il embauche une tierce personne r\u00e9mun\u00e9r\u00e9e.\n '''\n period = period.start.offset('first-of', 'month').period('year')\n age_holder = simulation.compute('age', period)\n handicap_holder = simulation.compute('handicap', period)\n isole = not_(simulation.calculate('en_couple', period))\n niveau_handicap_holder = simulation.compute('aeeh_niveau_handicap', period)\n P = simulation.legislation_at(period.start).fam\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n niveau_handicap = self.split_by_roles(niveau_handicap_holder, roles = ENFS)\n handicap = self.split_by_roles(handicap_holder, roles = ENFS)\n\n aeeh = 0\n for enfant in age.iterkeys():\n enfhand = handicap[enfant] * (age[enfant] < P.aeeh.age) / 12\n categ = niveau_handicap[enfant]\n aeeh += enfhand * (P.af.bmaf * (P.aeeh.base +\n P.aeeh.cpl1 * (categ == 1) +\n (categ == 2) * (P.aeeh.cpl2 + P.aeeh.maj2 * isole) +\n (categ == 3) * (P.aeeh.cpl3 + P.aeeh.maj3 * isole) +\n (categ == 4) * (P.aeeh.cpl4 + P.aeeh.maj4 * isole) +\n (categ == 5) * (P.aeeh.cpl5 + P.aeeh.maj5 * isole) +\n (categ == 6) * (P.aeeh.maj6 * isole)) +\n (categ == 6) * P.aeeh.cpl6)\n\n# L'attribution de l'AEEH de base et de ses compl\u00e9ments \u00e9ventuels ne fait pas obstacle au\n# versement des prestations familiales.\n# L'allocation de pr\u00e9sence parentale peut \u00eatre cumul\u00e9e avec l'AEEH de base, mais pas avec son\n# compl\u00e9ment ni avec la majoration de parent isol\u00e9.\n# Tous les \u00e9l\u00e9ments de la prestattion de compensation du handicap (PCH) sont \u00e9galement ouverts\n# aux b\u00e9n\u00e9ficiaires de l'AEEH de base, sous certaines conditions, mais ce cumul est exclusif du\n# compl\u00e9ment de l'AEEH. Les parents d'enfants handicap\u00e9s doivent donc choisir entre le versement\n# du compl\u00e9ment d'AEEH et la PCH.\n\n # Ces allocations ne sont pas soumis \u00e0 la CRDS\n return period, 12 * aeeh # annualis\u00e9\n", "input_variables": ["handicap", "en_couple", "age", "aeeh_niveau_handicap"], "parameters": ["fam.aeeh.maj2", "fam.aeeh.maj3", "fam.aeeh.cpl5", "fam.aeeh.cpl4", "fam.aeeh.cpl3", "fam.aeeh.cpl2", "fam.af.bmaf", "fam.aeeh.maj5", "fam.aeeh.cpl6", "fam.aeeh.age", "fam.aeeh.maj4", "fam.aeeh.base", "fam.aeeh.maj6", "fam.aeeh.cpl1"]}, "stop_instant": null, "start_instant": "2003-01-01"}]}}, {"@type": "Integer", "default": 0, "entity": "individus", "label": "Cat\u00e9gorie de handicap prise en compte pour l'AEEH", "line_number": 9, "module": "aeeh", "name": "aeeh_niveau_handicap"}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Indicatrice d'autonomie financi\u00e8re vis-\u00e0-vis des prestations familiales", "line_number": 9, "module": "base_ressource", "name": "autonomie_financiere", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 14, "module": "base_ressource", "source": "def function(self, simulation, period):\n period = period.this_month\n salaire_net = simulation.calculate_add('salaire_net', period.start.period('month', 6).offset(-6))\n _P = simulation.legislation_at(period.start)\n\n nbh_travaillees = 169\n smic_mensuel_brut = _P.cotsoc.gen.smic_h_b * nbh_travaillees\n\n # Oui on compare du salaire net avec un bout du SMIC brut ...\n return period, salaire_net / 6 >= (_P.fam.af.seuil_rev_taux * smic_mensuel_brut)\n", "input_variables": ["salaire_net"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Indicatrice de biactivit\u00e9", "line_number": 64, "module": "base_ressource", "name": "biactivite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 69, "module": "base_ressource", "source": "def function(self, simulation, period):\n period = period.this_month\n annee_fiscale_n_2 = period.n_2\n\n base_ressources_i_holder = simulation.compute('prestations_familiales_base_ressources_individu', period)\n base_ressources_i = self.split_by_roles(base_ressources_i_holder, roles = [CHEF, PART])\n\n pfam = simulation.legislation_at(annee_fiscale_n_2.start).fam\n seuil_rev = 12 * pfam.af.bmaf\n\n return period, (base_ressources_i[CHEF] >= seuil_rev) & (base_ressources_i[PART] >= seuil_rev)\n", "input_variables": ["prestations_familiales_base_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Dividendes impos\u00e9s", "line_number": 82, "module": "base_ressource", "name": "div", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 87, "module": "base_ressource", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period('year')\n rpns_pvce = simulation.calculate('rpns_pvce', period)\n rpns_pvct = simulation.calculate('rpns_pvct', period)\n rpns_mvct = simulation.calculate('rpns_mvct', period)\n rpns_mvlt = simulation.calculate('rpns_mvlt', period)\n f3vc_holder = simulation.compute('f3vc', period)\n f3ve_holder = simulation.compute('f3ve', period)\n f3vg_holder = simulation.compute('f3vg', period)\n f3vh_holder = simulation.compute('f3vh', period)\n f3vl_holder = simulation.compute('f3vl', period)\n f3vm_holder = simulation.compute('f3vm', period)\n\n f3vc = self.cast_from_entity_to_role(f3vc_holder, role = VOUS)\n f3ve = self.cast_from_entity_to_role(f3ve_holder, role = VOUS)\n f3vg = self.cast_from_entity_to_role(f3vg_holder, role = VOUS)\n f3vh = self.cast_from_entity_to_role(f3vh_holder, role = VOUS)\n f3vl = self.cast_from_entity_to_role(f3vl_holder, role = VOUS)\n f3vm = self.cast_from_entity_to_role(f3vm_holder, role = VOUS)\n\n return period, f3vc + f3ve + f3vg - f3vh + f3vl + f3vm + rpns_pvce + rpns_pvct - rpns_mvct - rpns_mvlt\n", "input_variables": ["rpns_pvce", "f3vl", "f3vc", "f3vh", "rpns_mvlt", "f3vm", "rpns_mvct", "rpns_pvct", "f3vg", "f3ve"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressource des prestations familiales", "line_number": 149, "module": "base_ressource", "name": "prestations_familiales_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Base ressource des prestations familiales de la famille\n'fam'", "line_number": 154, "module": "base_ressource", "source": "def function(self, simulation, period):\n '''\n Base ressource des prestations familiales de la famille\n 'fam'\n '''\n period = period.this_month\n # period_legacy = period.start.offset('first-of', 'month').period('year')\n annee_fiscale_n_2 = period.n_2\n\n base_ressources_i = simulation.calculate('prestations_familiales_base_ressources_individu', period)\n enfant_i = simulation.calculate('est_enfant_dans_famille', period)\n enfant_a_charge_i = simulation.calculate('prestations_familiales_enfant_a_charge', period)\n ressources_i = (not_(enfant_i) + enfant_a_charge_i) * base_ressources_i\n base_ressources_i_total = self.sum_by_entity(ressources_i)\n\n rev_coll_holder = simulation.compute('rev_coll', annee_fiscale_n_2)\n\n rev_coll = self.split_by_roles(rev_coll_holder, roles = [CHEF, PART])\n\n base_ressources = base_ressources_i_total + rev_coll[CHEF] + rev_coll[PART]\n return period, base_ressources\n", "input_variables": ["prestations_familiales_enfant_a_charge", "rev_coll", "est_enfant_dans_famille", "prestations_familiales_base_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base ressource individuelle des prestations familiales", "line_number": 48, "module": "base_ressource", "name": "prestations_familiales_base_ressources_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 53, "module": "base_ressource", "source": "def function(self, simulation, period):\n period = period.this_month\n annee_fiscale_n_2 = period.n_2\n\n traitements_salaires_pensions_rentes = simulation.calculate('traitements_salaires_pensions_rentes', annee_fiscale_n_2)\n hsup = simulation.calculate('hsup', annee_fiscale_n_2)\n rpns = simulation.calculate('rpns', annee_fiscale_n_2)\n\n return period, traitements_salaires_pensions_rentes + hsup + rpns\n", "input_variables": ["hsup", "rpns", "traitements_salaires_pensions_rentes"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant consid\u00e9r\u00e9 \u00e0 charge au sens des prestations familiales", "line_number": 26, "module": "base_ressource", "name": "prestations_familiales_enfant_a_charge", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 31, "module": "base_ressource", "source": "def function(self, simulation, period):\n period = period.this_month\n\n est_enfant_dans_famille = simulation.calculate('est_enfant_dans_famille', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n age = simulation.calculate('age', period)\n rempli_obligation_scolaire = simulation.calculate('rempli_obligation_scolaire', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n condition_enfant = ((age >= pfam.enfants.age_minimal) * (age < pfam.enfants.age_intermediaire) *\n rempli_obligation_scolaire)\n condition_jeune = (age >= pfam.enfants.age_intermediaire) * (age < pfam.enfants.age_limite) * not_(autonomie_financiere)\n\n return period, or_(condition_enfant, condition_jeune) * est_enfant_dans_famille\n", "input_variables": ["age", "autonomie_financiere", "est_enfant_dans_famille", "rempli_obligation_scolaire"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus collectifs", "line_number": 110, "module": "base_ressource", "name": "rev_coll", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 115, "module": "base_ressource", "source": "def function(self, simulation, period):\n period = period.start.offset('first-of', 'month').period('year')\n # Quand rev_coll est calcul\u00e9 sur une ann\u00e9e glissante, retraite_titre_onereux_net_declarant1 est calcul\u00e9 sur l'ann\u00e9e l\u00e9gale\n # correspondante.\n retraite_titre_onereux_net_declarant1 = simulation.calculate('retraite_titre_onereux_net_declarant1', period.offset('first-of'))\n rev_cap_lib_holder = simulation.compute_add('rev_cap_lib', period)\n rev_cat_rvcm_holder = simulation.compute('rev_cat_rvcm', period)\n # div = simulation.calculate('div', period) # TODO why is this variable not used ?\n abat_spe_holder = simulation.compute('abat_spe', period)\n glo = simulation.calculate('glo', period)\n fon_holder = simulation.compute('fon', period)\n # Quand rev_coll est calcul\u00e9 sur une ann\u00e9e glissante, pensions_alimentaires_versees_declarant1 est calcul\u00e9 sur l'ann\u00e9e l\u00e9gale\n # correspondante.\n pensions_alimentaires_versees_declarant1 = simulation.calculate('pensions_alimentaires_versees_declarant1', period.offset('first-of'))\n f7ga_holder = simulation.compute('f7ga', period)\n f7gb_holder = simulation.compute('f7gb', period)\n f7gc_holder = simulation.compute('f7gc', period)\n rev_cat_pv_holder = simulation.compute('rev_cat_pv', period)\n\n # TODO: ajouter les revenus de l'\u00e9tranger etr*0.9\n # pensions_alimentaires_versees_declarant1 is negative since it is paid by the declaree\n rev_cap_lib = self.cast_from_entity_to_role(rev_cap_lib_holder, role = VOUS)\n rev_cat_rvcm = self.cast_from_entity_to_role(rev_cat_rvcm_holder, role = VOUS)\n abat_spe = self.cast_from_entity_to_role(abat_spe_holder, role = VOUS)\n fon = self.cast_from_entity_to_role(fon_holder, role = VOUS)\n f7ga = self.cast_from_entity_to_role(f7ga_holder, role = VOUS)\n f7gb = self.cast_from_entity_to_role(f7gb_holder, role = VOUS)\n f7gc = self.cast_from_entity_to_role(f7gc_holder, role = VOUS)\n rev_cat_pv = self.cast_from_entity_to_role(rev_cat_pv_holder, role = VOUS)\n\n return period, (retraite_titre_onereux_net_declarant1 + rev_cap_lib + rev_cat_rvcm + fon + glo + pensions_alimentaires_versees_declarant1 - f7ga - f7gb\n - f7gc - abat_spe + rev_cat_pv)\n", "input_variables": ["rev_cat_pv", "rev_cap_lib", "glo", "retraite_titre_onereux_net_declarant1", "rev_cat_rvcm", "pensions_alimentaires_versees_declarant1", "abat_spe", "fon", "f7ga", "f7gb", "f7gc"]}}, {"@type": "Float", "default": 0, "end": "2004-01-01", "entity": "familles", "label": "Allocation parentale d'\u00e9ducation", "line_number": 707, "module": "paje", "name": "ape", "url": "http://fr.wikipedia.org/wiki/Allocation_parentale_d'%C3%A9ducation_en_France", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "L'allocation de base de la paje n'est pas cumulable avec le compl\u00e9ment familial", "line_number": 714, "module": "paje", "source": "def function(self, simulation, period):\n '''\n L'allocation de base de la paje n'est pas cumulable avec le compl\u00e9ment familial\n '''\n period = period.this_month\n apje_avant_cumul = simulation.calculate('apje_avant_cumul', period)\n ape_avant_cumul = simulation.calculate('ape_avant_cumul', period)\n cf_montant = simulation.calculate('cf_montant', period)\n\n ape = (apje_avant_cumul < ape_avant_cumul) * (cf_montant < ape_avant_cumul) * ape_avant_cumul\n return period, round(ape, 2)\n", "input_variables": ["cf_montant", "apje_avant_cumul", "ape_avant_cumul"]}}, {"@type": "Float", "default": 0, "end": "2004-01-01", "entity": "familles", "label": "Allocation parentale d'\u00e9ducation, avant prise en compte de la non-cumulabilit\u00e9 avec le CF et l'APJE", "line_number": 590, "module": "paje", "name": "ape_avant_cumul", "url": "http://fr.wikipedia.org/wiki/Allocation_parentale_d'%C3%A9ducation_en_France", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Allocation parentale d'\u00e9ducation\n'fam'\n\nL\u2019allocation parentale d\u2019\u00e9ducation s\u2019adresse aux parents qui souhaitent arr\u00eater ou\nr\u00e9duire leur activit\u00e9 pour s\u2019occuper de leurs jeunes enfants, \u00e0 condition que ceux-ci\nsoient n\u00e9s avant le 01/01/2004. En effet, pour les enfants n\u00e9s depuis cette date,\ndans le cadre de la Prestation d\u2019Accueil du Jeune Enfant, les parents peuvent b\u00e9n\u00e9ficier\ndu \u00ab compl\u00e9ment de libre choix d\u2019activit\u00e9. \u00bb\n\nLes personnes en couple peuvent toutes deux b\u00e9n\u00e9ficier de l\u2019APE \u00e0 taux plein, mais pas en m\u00eame temps.\nEn revanche, elles peuvent cumuler deux taux partiels, \u00e0 condition que leur total ne d\u00e9passe pas le montant\ndu taux plein.\n\nTODO: cumul, adoption, tripl\u00e9s,\nCumul d'allocations : Cette allocation n'est pas cumulable pour un m\u00eame m\u00e9nage avec\n- une autre APE (sauf \u00e0 taux partiel),\n- ou l'allocation pour jeune enfant (APJE) vers\u00e9e \u00e0 partir de la naissance,\n- ou le compl\u00e9ment familial,\n- ou l'allocation d\u2019adulte handicap\u00e9 (AAH).\nEnfin, il est \u00e0 noter que cette allocation n\u2019est pas cumulable avec :\n- une pension d\u2019invalidit\u00e9 ou une retraite ;\n- des indemnit\u00e9s journali\u00e8res de maladie, de maternit\u00e9 ou d\u2019accident du travail ;\n- des allocations ch\u00f4mage. Il est tout de m\u00eame possible de demander aux ASSEDIC la suspension de ces derni\u00e8res\n pour percevoir l\u2019APE.\n\nL'allocation parentale d'\u00e9ducation n'est pas soumise \u00e0 condition de ressources, sauf l\u2019APE \u00e0 taux partiel pour\nles professions non salari\u00e9es.", "line_number": 597, "module": "paje", "source": "def function(self, simulation, period):\n '''\n Allocation parentale d'\u00e9ducation\n 'fam'\n\n L\u2019allocation parentale d\u2019\u00e9ducation s\u2019adresse aux parents qui souhaitent arr\u00eater ou\n r\u00e9duire leur activit\u00e9 pour s\u2019occuper de leurs jeunes enfants, \u00e0 condition que ceux-ci\n soient n\u00e9s avant le 01/01/2004. En effet, pour les enfants n\u00e9s depuis cette date,\n dans le cadre de la Prestation d\u2019Accueil du Jeune Enfant, les parents peuvent b\u00e9n\u00e9ficier\n du \u00ab compl\u00e9ment de libre choix d\u2019activit\u00e9. \u00bb\n\n Les personnes en couple peuvent toutes deux b\u00e9n\u00e9ficier de l\u2019APE \u00e0 taux plein, mais pas en m\u00eame temps.\n En revanche, elles peuvent cumuler deux taux partiels, \u00e0 condition que leur total ne d\u00e9passe pas le montant\n du taux plein.\n\n TODO: cumul, adoption, tripl\u00e9s,\n Cumul d'allocations : Cette allocation n'est pas cumulable pour un m\u00eame m\u00e9nage avec\n - une autre APE (sauf \u00e0 taux partiel),\n - ou l'allocation pour jeune enfant (APJE) vers\u00e9e \u00e0 partir de la naissance,\n - ou le compl\u00e9ment familial,\n - ou l'allocation d\u2019adulte handicap\u00e9 (AAH).\n Enfin, il est \u00e0 noter que cette allocation n\u2019est pas cumulable avec :\n - une pension d\u2019invalidit\u00e9 ou une retraite ;\n - des indemnit\u00e9s journali\u00e8res de maladie, de maternit\u00e9 ou d\u2019accident du travail ;\n - des allocations ch\u00f4mage. Il est tout de m\u00eame possible de demander aux ASSEDIC la suspension de ces derni\u00e8res\n pour percevoir l\u2019APE.\n\n L'allocation parentale d'\u00e9ducation n'est pas soumise \u00e0 condition de ressources, sauf l\u2019APE \u00e0 taux partiel pour\n les professions non salari\u00e9es.\n '''\n period = period.this_month\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', accept_other_period = True)\n inactif = simulation.calculate('inactif', period)\n partiel1 = simulation.calculate('partiel1', period)\n partiel2 = simulation.calculate('partiel2', period)\n P = simulation.legislation_at(period.start).fam\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n\n elig = (nb_enf(age, autonomie_financiere, 0, P.ape.age - 1) >= 1) & (nb_enf(age, autonomie_financiere, 0, P.af.age2) >= 2)\n # Inactif\n # Temps partiel 1\n # Salari\u00e9:\n # Temps de travail ne d\u00e9passant pas 50 % de la dur\u00e9e du travail fix\u00e9e dans l'entreprise\n # VRP ou non salari\u00e9 travaillant \u00e0 temps partiel:\n # Temps de travail ne d\u00e9passant pas 76 heures par mois et un revenu professionnel mensuel inf\u00e9rieur ou \u00e9gal \u00e0\n # (smic_8.27*169*85 %)\n # partiel1 = zeros((12,self.taille))\n\n # Temps partiel 2\n # Salari\u00e9:\n # Salari\u00e9: Temps de travail compris entre 50 et 80 % de la dur\u00e9e du travail fix\u00e9e dans l'entreprise.\n # Temps de travail compris entre 77 et 122 heures par mois et un revenu professionnel mensuel ne d\u00e9passant pas\n # (smic_8.27*169*136 %)\n ape = elig * (inactif * P.ape.tx_inactif + partiel1 * P.ape.tx_50 + partiel2 * P.ape.tx_80)\n # Cummul APE APJE CF\n return period, ape # annualis\u00e9\n", "input_variables": ["age", "partiel1", "inactif", "autonomie_financiere", "partiel2"]}}, {"@type": "Float", "default": 0, "end": "2004-01-01", "entity": "familles", "label": "Allocation pour le jeune enfant", "line_number": 727, "module": "paje", "name": "apje", "url": "http://vosdroits.service-public.fr/particuliers/F2552.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 734, "module": "paje", "source": "def function(self, simulation, period):\n # L'APJE n'est pas cumulable avec le compl\u00e9ment familial et l'APE\n period = period.this_month\n apje_avant_cumul = simulation.calculate('apje_avant_cumul', period)\n ape_avant_cumul = simulation.calculate('ape_avant_cumul', period)\n cf_montant = simulation.calculate('cf_montant', period)\n\n apje = (cf_montant < apje_avant_cumul) * (ape_avant_cumul < apje_avant_cumul) * apje_avant_cumul\n return period, round(apje, 2)\n", "input_variables": ["cf_montant", "apje_avant_cumul", "ape_avant_cumul"]}}, {"@type": "Float", "default": 0, "end": "2004-01-01", "entity": "familles", "label": "Allocation pour le jeune enfant, avant prise en compte de la non-cumulabilit\u00e9 avec le CF et l'APE", "line_number": 658, "module": "paje", "name": "apje_avant_cumul", "url": "http://vosdroits.service-public.fr/particuliers/F2552.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Allocation pour jeune enfant", "line_number": 665, "module": "paje", "source": "def function(self, simulation, period):\n '''\n Allocation pour jeune enfant\n '''\n period = period.this_month\n base_ressources = simulation.calculate('prestations_familFiales_base_ressources', period.this_month)\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period.this_month)\n biactivite = simulation.calculate_add('biactivite', period)\n isole = not_(simulation.calculate('en_couple', period))\n P = simulation.legislation_at(period.start).fam\n P_n_2 = simulation.legislation_at(period.start.offset(-2, 'year')).fam\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n\n # TODO: APJE courte voir doc ERF 2006\n nbenf = nb_enf(age, autonomie_financiere, 0, P.apje.age - 1)\n bmaf = P.af.bmaf\n bmaf_n_2 = P_n_2.af.bmaf\n base = round(P.apje.taux * bmaf, 2)\n base2 = round(P.apje.taux * bmaf_n_2, 2)\n\n plaf_tx = (nbenf > 0) + P.apje.plaf_tx1 * min_(nbenf, 2) + P.apje.plaf_tx2 * max_(nbenf - 2, 0)\n majo = isole | biactivite\n plaf = P.apje.plaf * plaf_tx + P.apje.plaf_maj * majo\n plaf2 = plaf + 12 * base2\n\n apje = (nbenf >= 1) * ((base_ressources <= plaf) * base + (base_ressources > plaf) * max_(plaf2 - base_ressources, 0) / 12.0)\n\n # Pour b\u00e9n\u00e9ficier de cette allocation, il faut que tous les enfants du foyer soient n\u00e9s, adopt\u00e9s, ou recueillis\n # en vue d\u2019une adoption avant le 1er janvier 2004, et qu\u2019au moins l\u2019un d\u2019entre eux ait moins de 3 ans.\n # Cette allocation est vers\u00e9E du 5\ufffd\ufffdme mois de grossesse jusqu\ufffd\ufffd\ufffdau mois pr\u00e9c\u00e9dant le 3\u00e8me anniversaire de\n # l\u2019enfant.\n\n # Non cumul APE APJE CF\n # - L\u2019allocation parentale d\u2019\u00e9ducation (APE), sauf pour les femmes enceintes.\n # L\u2019APJE est alors vers\u00e9e du 5\u00e8me mois de grossesse jusqu\u2019\u00e0 la naissance de l\u2019enfant.\n # - Le CF\n return period, apje\n", "input_variables": ["en_couple", "prestations_familFiales_base_ressources", "biactivite", "age", "autonomie_financiere"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Assistante maternelle (CLCMG)", "line_number": 48, "module": "paje", "name": "ass_mat"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Emploi direct (CLCMG)", "line_number": 41, "module": "paje", "name": "empl_dir"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Garde \u00e0 domicile (CLCMG)", "line_number": 55, "module": "paje", "name": "gar_dom"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Parent inactif (PAJE-CLCA)", "line_number": 13, "module": "paje", "name": "inactif"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Opte pour le COLCA", "line_number": 34, "module": "paje", "name": "opt_colca"}, {"@type": "Float", "default": 0, "entity": "familles", "label": "PAJE - Ensemble des prestations", "line_number": 63, "module": "paje", "name": "paje", "start": "2004-01-01", "url": "http://www.caf.fr/aides-et-services/s-informer-sur-les-aides/petite-enfance/la-prestation-d-accueil-du-jeune-enfant-paje-0", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestation d'accueil du jeune enfant", "line_number": 70, "module": "paje", "source": "def function(self, simulation, period):\n '''\n Prestation d'accueil du jeune enfant\n '''\n period = period.this_month\n\n paje_base = simulation.calculate('paje_base', period)\n paje_naissance = simulation.calculate('paje_naissance', period)\n paje_clca = simulation.calculate('paje_clca', period)\n paje_clmg = simulation.calculate('paje_clmg', period)\n paje_colca = simulation.calculate('paje_colca', period)\n\n return period, paje_base + (paje_naissance + paje_clca + paje_clmg + paje_colca) / 12\n", "input_variables": ["paje_clmg", "paje_clca", "paje_naissance", "paje_colca", "paje_base"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de base de la PAJE", "line_number": 85, "module": "paje", "name": "paje_base", "start": "2004-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F2552.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 93, "module": "paje", "source": "def function(self, simulation, period):\n period = period.this_month\n couple_biactif = simulation.calculate('biactivite', period)\n parent_isole = not_(simulation.calculate('en_couple', period))\n nombre_enfants = simulation.calculate('af_nbenf', period)\n pfam = simulation.legislation_at(period.start).fam\n\n date_gel_paje = Instant((2013, 04, 01)) # Le montant de la PAJE est gel\u00e9 depuis avril 2013.\n bmaf = pfam.af.bmaf if period.start < date_gel_paje else simulation.legislation_at(date_gel_paje).fam.af.bmaf\n montant_taux_plein = bmaf * pfam.paje.base.taux\n\n def plafond_avant_avril_2014():\n plafond_de_base = pfam.paje.base.avant_2014.plaf\n maj_plafond_2_premiers_enfants = pfam.paje.base.avant_2014.plaf_tx1 * plafond_de_base\n maj_plafond_par_enfant_sup = pfam.paje.base.avant_2014.plaf_tx2 * plafond_de_base\n maj_plafond_seul_biactif = pfam.paje.base.avant_2014.plaf_maj\n\n plafond = (\n plafond_de_base +\n min_(nombre_enfants, 2) * maj_plafond_2_premiers_enfants +\n max_(nombre_enfants - 2, 0) * maj_plafond_par_enfant_sup +\n (couple_biactif + parent_isole) * maj_plafond_seul_biactif\n )\n return plafond\n\n def plafond_taux_plein():\n plafond_de_base = pfam.paje.base.apres_2014.taux_plein.plaf\n maj_plafond_seul_biactif = pfam.paje.base.apres_2014.taux_plein.plaf_maj\n maj_plafond_par_enfant = pfam.paje.base.apres_2014.plaf_tx_par_enf * plafond_de_base\n\n plafond = (\n plafond_de_base +\n nombre_enfants * maj_plafond_par_enfant +\n (couple_biactif + parent_isole) * maj_plafond_seul_biactif\n )\n return plafond\n\n def plafond_taux_partiel():\n plafond_de_base = pfam.paje.base.apres_2014.taux_partiel.plaf\n maj_plafond_seul_biactif = pfam.paje.base.apres_2014.taux_partiel.plaf_maj\n maj_plafond_par_enfant = pfam.paje.base.apres_2014.plaf_tx_par_enf * plafond_de_base\n\n plafond = (\n plafond_de_base +\n nombre_enfants * maj_plafond_par_enfant +\n (couple_biactif + parent_isole) * maj_plafond_seul_biactif\n )\n return plafond\n\n def enfant_eligible_ne_avant_avril_2014():\n paje_base_enfant_eligible_avant_reforme_2014 = simulation.compute('paje_base_enfant_eligible_avant_reforme_2014', period)\n return self.any_by_roles(paje_base_enfant_eligible_avant_reforme_2014)\n\n def enfant_eligible_ne_apres_avril_2014():\n paje_base_enfant_eligible_apres_reforme_2014 = simulation.compute('paje_base_enfant_eligible_apres_reforme_2014', period)\n return self.any_by_roles(paje_base_enfant_eligible_apres_reforme_2014)\n\n def montant_enfant_ne_avant_avril_2014():\n ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n return (ressources <= plafond_avant_avril_2014()) * montant_taux_plein\n\n def montant_enfant_ne_apres_avril_2014():\n ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n montant_taux_partiel = montant_taux_plein / 2\n\n montant = (\n (ressources <= plafond_taux_plein()) * montant_taux_plein +\n (ressources <= plafond_taux_partiel()) * (ressources > plafond_taux_plein()) * montant_taux_partiel\n )\n return montant\n\n montant = (\n enfant_eligible_ne_avant_avril_2014() * montant_enfant_ne_avant_avril_2014() +\n not_(enfant_eligible_ne_avant_avril_2014()) * enfant_eligible_ne_apres_avril_2014() * montant_enfant_ne_apres_avril_2014()\n )\n\n return period, montant\n", "input_variables": ["en_couple", "biactivite", "af_nbenf"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant ouvrant droit \u00e0 la PAJE de base n\u00e9 apr\u00e8s le 1er avril 2014", "line_number": 190, "module": "paje", "name": "paje_base_enfant_eligible_apres_reforme_2014", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 195, "module": "paje", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n date_naissance = simulation.calculate('date_naissance', period)\n ne_avant_2014 = datetime64('2014-04-01') > date_naissance\n age_limite = simulation.legislation_at(period.start).fam.paje.base.age\n\n # L'allocation de base est vers\u00e9e jusqu'au dernier jour du mois civil pr\u00e9c\u00e9dant\n # celui au cours duquel l'enfant atteint l'\u00e2ge de 3 ans.\n return period, (age < age_limite) * not_(autonomie_financiere) * not_(ne_avant_2014)\n", "input_variables": ["age", "date_naissance", "autonomie_financiere"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant ouvrant droit \u00e0 la PAJE de base n\u00e9 avant le 1er avril 2014", "line_number": 172, "module": "paje", "name": "paje_base_enfant_eligible_avant_reforme_2014", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 177, "module": "paje", "source": "def function(self, simulation, period):\n period = period.this_month\n age = simulation.calculate('age', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n date_naissance = simulation.calculate('date_naissance', period)\n ne_avant_2014 = datetime64('2014-04-01') > date_naissance\n age_limite = simulation.legislation_at(period.start).fam.paje.base.age\n\n # L'allocation de base est vers\u00e9e jusqu'au dernier jour du mois civil pr\u00e9c\u00e9dant\n # celui au cours duquel l'enfant atteint l'\u00e2ge de 3 ans.\n return period, (age < age_limite) * not_(autonomie_financiere) * ne_avant_2014\n", "input_variables": ["age", "date_naissance", "autonomie_financiere"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "PAJE - Compl\u00e9ment de libre choix d'activit\u00e9", "line_number": 253, "module": "paje", "name": "paje_clca", "start": "2004-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F313.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestation d'accueil du jeune enfant - Compl\u00e9ment de libre choix d'activit\u00e9\n'fam'\n\nParameters:\n-----------\n\nage : \u00e2ge en mois\naf_nbenf : nombre d'enfants aus sens des allocations familiales\npaje_base : allocation de base de la PAJE\ninactif : indicatrice d'inactivit\u00e9\npartiel1 : Salari\u00e9: Temps de travail ne d\u00e9passant pas 50 % de la dur\u00e9e du travail fix\u00e9e dans l'entreprise pour\n les salari\u00e9s VRP ou non salari\u00e9 travaillant \u00e0 temps partiel: Temps de travail ne d\u00e9passant pas 76\n heures par mois et un revenu professionnel mensuel inf\u00e9rieur ou \u00e9gal \u00e0 (smic_8.27*169*85 %)\npartiel2 : Salari\u00e9: Temps de travail compris entre 50 et 80 % de la dur\u00e9e du travail fix\u00e9e dans l'entreprise.\n VRP ou non salari\u00e9 travaillant \u00e0 temps partiel: Temps de travail compris entre 77 et 122 heures\n par mois et un revenu professionnel mensuel ne d\u00e9passant pas (smic_8.27*169*136 %)\n\nhttp://www.caf.fr/wps/portal/particuliers/catalogue/metropole/paje", "line_number": 261, "module": "paje", "source": "def function(self, simulation, period):\n \"\"\"\n Prestation d'accueil du jeune enfant - Compl\u00e9ment de libre choix d'activit\u00e9\n 'fam'\n\n Parameters:\n -----------\n\n age : \u00e2ge en mois\n af_nbenf : nombre d'enfants aus sens des allocations familiales\n paje_base : allocation de base de la PAJE\n inactif : indicatrice d'inactivit\u00e9\n partiel1 : Salari\u00e9: Temps de travail ne d\u00e9passant pas 50 % de la dur\u00e9e du travail fix\u00e9e dans l'entreprise pour\n les salari\u00e9s VRP ou non salari\u00e9 travaillant \u00e0 temps partiel: Temps de travail ne d\u00e9passant pas 76\n heures par mois et un revenu professionnel mensuel inf\u00e9rieur ou \u00e9gal \u00e0 (smic_8.27*169*85 %)\n partiel2 : Salari\u00e9: Temps de travail compris entre 50 et 80 % de la dur\u00e9e du travail fix\u00e9e dans l'entreprise.\n VRP ou non salari\u00e9 travaillant \u00e0 temps partiel: Temps de travail compris entre 77 et 122 heures\n par mois et un revenu professionnel mensuel ne d\u00e9passant pas (smic_8.27*169*136 %)\n\n http://www.caf.fr/wps/portal/particuliers/catalogue/metropole/paje\n \"\"\"\n period = period.this_month\n\n age_en_mois_holder = simulation.compute('age_en_mois', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n paje_base = simulation.calculate('paje_base', period)\n inactif = simulation.calculate('inactif', period)\n partiel1 = simulation.calculate('partiel1', period)\n partiel2 = simulation.calculate('partiel2', period)\n\n P = simulation.legislation_at(period.start).fam\n\n age_en_mois = self.split_by_roles(age_en_mois_holder, roles = ENFS)\n\n paje = paje_base >= 0\n # dur\u00e9e de versement :\n # Pour un seul enfant \u00e0 charge, le CLCA est vers\u00e9 pendant une p\u00e9riode de 6 mois (P.paje.clca.duree1)\n # \u00e0 partir de la naissance ou de la cessation des IJ maternit\u00e9 et paternit\u00e9.\n # A partir du 2\u00e8me enfant, il est vers\u00e9 jusqu\u2019au mois pr\u00e9c\u00e9dant le 3\u00e8me anniversaire\n # de l\u2019enfant.\n\n # Calcul de l'ann\u00e9e et mois de naisage_in_months( du cadet\n # TODO: ajuster en fonction de la cessation des IJ etc\n age_m_benjamin = age_en_mois_benjamin(age_en_mois)\n condition1 = (af_nbenf == 1) * (age_m_benjamin >= 0) * (age_m_benjamin < P.paje.clca.duree1)\n age_benjamin = floor(age_m_benjamin / 12)\n condition2 = (age_benjamin <= (P.paje.base.age - 1))\n condition = (af_nbenf >= 2) * condition2 + condition1\n paje_clca = (condition * P.af.bmaf) * (\n (not_(paje)) * (inactif * P.paje.clca.sansab_tx_inactif +\n partiel1 * P.paje.clca.sansab_tx_partiel1 +\n partiel2 * P.paje.clca.sansab_tx_partiel2) +\n (paje) * (inactif * P.paje.clca.avecab_tx_inactif +\n partiel1 * P.paje.clca.avecab_tx_partiel1 +\n partiel2 * P.paje.clca.avecab_tx_partiel2))\n return period, paje_clca\n", "input_variables": ["age_en_mois", "partiel1", "af_nbenf", "partiel2", "inactif", "paje_base"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Indicatrice Clca taux partiel", "line_number": 340, "module": "paje", "name": "paje_clca_taux_partiel", "start": "2004-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F313.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 347, "module": "paje", "source": "def function(self, simulation, period):\n period = period.this_month\n paje_clca = simulation.calculate('paje_clca', period)\n partiel1 = simulation.calculate('partiel1', period)\n\n return period, (paje_clca > 0) * partiel1\n", "input_variables": ["paje_clca", "partiel1"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Indicatrice Clca taux plein", "line_number": 325, "module": "paje", "name": "paje_clca_taux_plein", "start": "2004-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F313.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 332, "module": "paje", "source": "def function(self, simulation, period):\n period = period.this_month\n paje_clca = simulation.calculate('paje_clca', period)\n inactif = simulation.calculate('inactif', period)\n\n return period, (paje_clca > 0) * inactif\n", "input_variables": ["paje_clca", "inactif"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "PAJE - Compl\u00e9ment de libre choix du mode de garde", "line_number": 357, "module": "paje", "name": "paje_clmg", "start": "2004-01-01", "url": "http://www.caf.fr/aides-et-services/s-informer-sur-les-aides/petite-enfance/le-complement-de-libre-choix-du-mode-de-garde", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestation d accueil du jeune enfant - Compl\u00e9ment de libre choix du mode de garde\n\nLes conditions\n\nVous devez :\n\n avoir un enfant de moins de 6 ans n\u00e9, adopt\u00e9 ou recueilli en vue d'adoption \u00e0 partir du 1er janvier 2004\n employer une assistante maternelle agr\u00e9\u00e9e ou une garde \u00e0 domicile.\n avoir une activit\u00e9 professionnelle minimale\n si vous \u00eates salari\u00e9 cette activit\u00e9 doit vous procurer un revenu minimum de :\n si vous vivez seul : une fois la BMAF\n si vous vivez en couple soit 2 fois la BMAF\n si vous \u00eates non salari\u00e9, vous devez \u00eatre \u00e0 jour de vos cotisations sociales d'assurance vieillesse\n\nVous n'avez pas besoin de justifier d'une activit\u00e9 min_ si vous \u00eates :\n\n b\u00e9n\u00e9ficiaire de l'allocation aux adultes handicap\u00e9s (Aah)\n au ch\u00f4mage et b\u00e9n\u00e9ficiaire de l'allocation d'insertion ou de l'allocation de solidarit\u00e9 sp\u00e9cifique\n b\u00e9n\u00e9ficiaire du Revenu de solidarit\u00e9 active (Rsa), sous certaines conditions de ressources \u00e9tudi\u00e9es par\n votre Caf, et inscrit dans une d\u00e9marche d'insertion\u00e9tudiant (si vous vivez en couple,\n vous devez \u00eatre tous les deux \u00e9tudiants).\n\nAutres conditions \u00e0 remplir : Assistante maternelle agr\u00e9\u00e9e Garde \u00e0 domicile\nSon salaire brut ne doit pas d\u00e9passer par jour de garde et par enfant 5 fois le montant du Smic horaire brut,\nsoit au max 45,00 \u20ac.\nVous ne devez pas b\u00e9n\u00e9ficier de l'exon\u00e9ration des cotisations sociales dues pour la personne employ\u00e9e.", "line_number": 365, "module": "paje", "source": "def function(self, simulation, period):\n '''\n Prestation d accueil du jeune enfant - Compl\u00e9ment de libre choix du mode de garde\n\n Les conditions\n\n Vous devez :\n\n avoir un enfant de moins de 6 ans n\u00e9, adopt\u00e9 ou recueilli en vue d'adoption \u00e0 partir du 1er janvier 2004\n employer une assistante maternelle agr\u00e9\u00e9e ou une garde \u00e0 domicile.\n avoir une activit\u00e9 professionnelle minimale\n si vous \u00eates salari\u00e9 cette activit\u00e9 doit vous procurer un revenu minimum de :\n si vous vivez seul : une fois la BMAF\n si vous vivez en couple soit 2 fois la BMAF\n si vous \u00eates non salari\u00e9, vous devez \u00eatre \u00e0 jour de vos cotisations sociales d'assurance vieillesse\n\n Vous n'avez pas besoin de justifier d'une activit\u00e9 min_ si vous \u00eates :\n\n b\u00e9n\u00e9ficiaire de l'allocation aux adultes handicap\u00e9s (Aah)\n au ch\u00f4mage et b\u00e9n\u00e9ficiaire de l'allocation d'insertion ou de l'allocation de solidarit\u00e9 sp\u00e9cifique\n b\u00e9n\u00e9ficiaire du Revenu de solidarit\u00e9 active (Rsa), sous certaines conditions de ressources \u00e9tudi\u00e9es par\n votre Caf, et inscrit dans une d\u00e9marche d'insertion\u00e9tudiant (si vous vivez en couple,\n vous devez \u00eatre tous les deux \u00e9tudiants).\n\n Autres conditions \u00e0 remplir : Assistante maternelle agr\u00e9\u00e9e Garde \u00e0 domicile\n Son salaire brut ne doit pas d\u00e9passer par jour de garde et par enfant 5 fois le montant du Smic horaire brut,\n soit au max 45,00 \u20ac.\n Vous ne devez pas b\u00e9n\u00e9ficier de l'exon\u00e9ration des cotisations sociales dues pour la personne employ\u00e9e.\n '''\n period = period.this_month\n aah_holder = simulation.compute('aah', period)\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period, accept_other_period = True)\n etu_holder = simulation.compute('etudiant', period)\n salaire_imposable_holder = simulation.compute('salaire_imposable', period)\n hsup_holder = simulation.compute('hsup', period)\n en_couple = simulation.calculate('en_couple', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period.this_month)\n empl_dir = simulation.calculate('empl_dir', period)\n ass_mat = simulation.calculate('ass_mat', period)\n gar_dom = simulation.calculate('gar_dom', period)\n paje_clca_taux_partiel = simulation.calculate('paje_clca_taux_partiel', period)\n paje_clca_taux_plein = simulation.calculate('paje_clca_taux_plein', period)\n P = simulation.legislation_at(period.start).fam\n P_n_2 = simulation.legislation_at(period.start.offset(-2, 'year')).fam\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n etudiant = self.split_by_roles(etu_holder, roles = [CHEF, PART])\n hsup = self.split_by_roles(hsup_holder, roles = [CHEF, PART])\n salaire_imposable = self.split_by_roles(salaire_imposable_holder, roles = [CHEF, PART])\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n aah = self.sum_by_entity(aah_holder)\n\n # condition de revenu minimal\n\n bmaf_n_2 = P_n_2.af.bmaf\n cond_age_enf = (nb_enf(age, autonomie_financiere, P.paje.clmg.age1, P.paje.clmg.age2 - 1) > 0)\n cond_sal = (\n salaire_imposable[CHEF] + salaire_imposable[PART] + hsup[CHEF] + hsup[PART] >\n 12 * bmaf_n_2 * (1 + en_couple)\n )\n# TODO: cond_rpns =\n cond_act = cond_sal # | cond_rpns\n\n cond_nonact = (aah > 0) | (etudiant[CHEF] & etudiant[PART]) # | (ass>0)\n# TODO: RSA insertion, alloc insertion, ass\n elig = cond_age_enf & (cond_act | cond_nonact)\n nbenf = af_nbenf\n seuil1 = (P.paje.clmg.seuil11 * (nbenf == 1) + P.paje.clmg.seuil12 * (nbenf >= 2) +\n max_(nbenf - 2, 0) * P.paje.clmg.seuil1sup)\n seuil2 = (P.paje.clmg.seuil21 * (nbenf == 1) + P.paje.clmg.seuil22 * (nbenf >= 2) +\n max_(nbenf - 2, 0) * P.paje.clmg.seuil2sup)\n\n# Si vous b\u00e9n\u00e9ficiez du Clca taux partiel (= vous travaillez entre 50 et 80% de la dur\u00e9e du travail fix\u00e9e\n# dans l'entreprise), vous cumulez int\u00e9gralement le Clca et le Cmg.\n# Si vous b\u00e9n\u00e9ficiez du Clca taux partiel (= vous travaillez \u00e0 50% ou moins de la dur\u00e9e\n# du travail fix\u00e9e dans l'entreprise), le montant des plafonds Cmg est divis\u00e9 par 2.\n seuil1 = seuil1 * (1 - .5 * paje_clca_taux_partiel)\n seuil2 = seuil2 * (1 - .5 * paje_clca_taux_partiel)\n\n clmg = P.af.bmaf * ((nb_enf(age, autonomie_financiere, 0, P.paje.clmg.age1 - 1) > 0) +\n 0.5 * (nb_enf(age, autonomie_financiere, P.paje.clmg.age1, P.paje.clmg.age2 - 1) > 0)\n ) * (\n empl_dir * (\n (base_ressources < seuil1) * P.paje.clmg.empl_dir1 +\n ((base_ressources >= seuil1) & (base_ressources < seuil2)) * P.paje.clmg.empl_dir2 +\n (base_ressources >= seuil2) * P.paje.clmg.empl_dir3) +\n ass_mat * (\n (base_ressources < seuil1) * P.paje.clmg.ass_mat1 +\n ((base_ressources >= seuil1) & (base_ressources < seuil2)) * P.paje.clmg.ass_mat2 +\n (base_ressources >= seuil2) * P.paje.clmg.ass_mat3) +\n gar_dom * (\n (base_ressources < seuil1) * P.paje.clmg.domi1 +\n ((base_ressources >= seuil1) & (base_ressources < seuil2)) * P.paje.clmg.domi2 +\n (base_ressources >= seuil2) * P.paje.clmg.domi3))\n # TODO: connecter avec le cr\u00e9dit d'imp\u00f4t\n # Si vous b\u00e9n\u00e9ficiez du Clca taux plein\n # (= vous ne travaillez plus ou interrompez votre activit\u00e9 professionnelle),\n # vous ne pouvez pas b\u00e9n\u00e9ficier du Cmg.\n paje_clmg = elig * not_(paje_clca_taux_plein) * clmg\n # TODO v\u00e9rfiez les r\u00e8gles de cumul\n return period, paje_clmg\n", "input_variables": ["paje_clca_taux_plein", "paje_clca_taux_partiel", "hsup", "salaire_imposable", "age", "aah", "gar_dom", "en_couple", "empl_dir", "etudiant", "af_nbenf", "autonomie_financiere", "ass_mat", "prestations_familiales_base_ressources"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "PAJE - Compl\u00e9ment optionnel de libre choix d'activit\u00e9", "line_number": 470, "module": "paje", "name": "paje_colca", "start": "2004-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F15110.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestation d'accueil du jeune enfant - Compl\u00e9ment optionnel de libre choix du mode de garde", "line_number": 478, "module": "paje", "source": "def function(self, simulation, period):\n '''\n Prestation d'accueil du jeune enfant - Compl\u00e9ment optionnel de libre choix du mode de garde\n '''\n period = period.this_month\n\n af_nbenf = simulation.calculate('af_nbenf', period)\n age_en_mois_holder = simulation.compute('age_en_mois', period)\n opt_colca = simulation.calculate('opt_colca', period)\n paje_base = simulation.calculate('paje_base', period)\n\n P = simulation.legislation_at(period.start).fam\n\n age_en_mois = self.split_by_roles(age_en_mois_holder, roles = ENFS)\n age_m_benjamin = age_en_mois_benjamin(age_en_mois)\n condition = (age_m_benjamin < 12 * P.paje.colca.age) * (age_m_benjamin >= 0)\n nbenf = af_nbenf\n paje = (paje_base > 0)\n paje_colca = opt_colca * condition * (nbenf >= 3) * P.af.bmaf * (\n (paje) * P.paje.colca.avecab + not_(paje) * P.paje.colca.sansab)\n return period, paje_colca\n", "input_variables": ["opt_colca", "age_en_mois", "af_nbenf", "paje_base"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de naissance de la PAJE", "line_number": 208, "module": "paje", "name": "paje_naissance", "start": "2004-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F2550.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prestation d'accueil du jeune enfant - Allocation de naissance", "line_number": 216, "module": "paje", "source": "def function(self, simulation, period):\n '''\n Prestation d'accueil du jeune enfant - Allocation de naissance\n '''\n period = period.this_month\n age_en_mois_holder = simulation.compute('age_en_mois', period)\n # age_holder = simulation.compute('age', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period)\n isole = not_(simulation.calculate('en_couple', period))\n biactivite = simulation.calculate('biactivite', period)\n P = simulation.legislation_at(period.start).fam\n\n # age = self.split_by_roles(age_holder, roles = ENFS)\n age_en_mois = self.split_by_roles(age_en_mois_holder, roles = ENFS)\n\n date_gel_paje = Instant((2013, 04, 01)) # Le montant de la PAJE est gel\u00e9 depuis avril 2013.\n bmaf = P.af.bmaf if period.start < date_gel_paje else simulation.legislation_at(date_gel_paje).fam.af.bmaf\n nais_prime = round(100 * P.paje.nais.prime_tx * bmaf) / 100\n # Vers\u00e9e au 7e mois de grossesse dans l'ann\u00e9e\n # donc les enfants concern\u00e9s sont les enfants qui ont -2 mois\n nbnais = 0\n for age_m in age_en_mois.itervalues():\n nbnais += (age_m == -2) # cas mensuel\n # nbnais += (age_m >= -2) * (age_m < 10) # cas annuel\n\n nbenf = af_nbenf + nbnais # On ajoute l'enfant \u00e0 na\u00eetre;\n\n # Est-ce que ces taux n'ont pas \u00e9t\u00e9 mis \u00e0 jour en avril 2014 ?\n plaf_tx = (nbenf > 0) + P.paje.base.avant_2014.plaf_tx1 * min_(nbenf, 2) + P.paje.base.avant_2014.plaf_tx2 * max_(nbenf - 2, 0)\n majo = isole | biactivite\n plaf = P.paje.base.avant_2014.plaf * plaf_tx + (plaf_tx > 0) * P.paje.base.avant_2014.plaf_maj * majo\n elig = (base_ressources <= plaf) * (nbnais != 0)\n nais_brut = nais_prime * elig * (nbnais)\n return period, nais_brut\n", "input_variables": ["en_couple", "biactivite", "age_en_mois", "af_nbenf", "prestations_familiales_base_ressources"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prestation Partag\u00e9e d\u2019\u00e9ducation de l\u2019Enfant (PreParE)", "line_number": 318, "module": "paje", "name": "paje_prepare"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Parent actif \u00e0 moins de 50% (PAJE-CLCA)", "line_number": 20, "module": "paje", "name": "partiel1"}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Parent actif entre 50% et 80% (PAJE-CLCA)", "line_number": 27, "module": "paje", "name": "partiel2"}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de rentr\u00e9e scolaire", "line_number": 11, "module": "ars", "name": "ars", "url": "http://vosdroits.service-public.fr/particuliers/F1878.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "Allocation de rentr\u00e9e scolaire brute de CRDS", "line_number": 17, "module": "ars", "source": "def function(self, simulation, period):\n '''\n Allocation de rentr\u00e9e scolaire brute de CRDS\n '''\n period_br = period.this_year\n period = period.start.offset('first-of', 'year').offset(9, 'month').period('month')\n age_holder = simulation.compute('age', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period)\n base_ressources = simulation.calculate('prestations_familiales_base_ressources', period_br.this_month)\n P = simulation.legislation_at(period.start).fam\n # TODO: convention sur la mensualisation\n # On tient compte du fait qu'en cas de l\u00e9ger d\u00e9passement du plafond, une allocation d\u00e9gressive\n # (appel\u00e9e allocation diff\u00e9rentielle), calcul\u00e9e en fonction des revenus, peut \u00eatre vers\u00e9e.\n age = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n\n bmaf = P.af.bmaf\n # On doit prendre l'\u00e2ge en septembre\n enf_05 = nb_enf(age, autonomie_financiere, P.ars.agep - 1, P.ars.agep - 1) # 5 ans et 6 ans avant le 31 d\u00e9cembre\n # enf_05 = 0\n # Un enfant scolaris\u00e9 qui n'a pas encore atteint l'\u00e2ge de 6 ans\n # avant le 1er f\u00e9vrier 2012 peut donner droit \u00e0 l'ARS \u00e0 condition qu'il\n # soit inscrit \u00e0 l'\u00e9cole primaire. Il faudra alors pr\u00e9senter un\n # certificat de scolarit\u00e9.\n enf_primaire = enf_05 + nb_enf(age, autonomie_financiere, P.ars.agep, P.ars.agec - 1)\n enf_college = nb_enf(age, autonomie_financiere, P.ars.agec, P.ars.agel - 1)\n enf_lycee = nb_enf(age, autonomie_financiere, P.ars.agel, P.ars.ages)\n\n arsnbenf = enf_primaire + enf_college + enf_lycee\n\n # Plafond en fonction du nb d'enfants A CHARGE (Cf. article R543)\n ars_plaf_res = P.ars.plaf * (1 + af_nbenf * P.ars.plaf_enf_supp)\n arsbase = bmaf * (P.ars.tx0610 * enf_primaire +\n P.ars.tx1114 * enf_college +\n P.ars.tx1518 * enf_lycee)\n # Forme de l'ARS en fonction des enfants a*n - (rev-plaf)/n\n # ars_diff = (ars_plaf_res + arsbase - base_ressources) / arsnbenf\n ars = (arsnbenf > 0) * max_(0, arsbase - max_(0, (base_ressources - ars_plaf_res) / max_(1, arsnbenf)))\n # Calcul net de crds : ars_net = (P.ars.enf0610 * enf_primaire + P.ars.enf1114 * enf_college + P.ars.enf1518 * enf_lycee)\n\n return period_br, ars * (ars >= P.ars.seuil_nv)\n", "input_variables": ["age", "af_nbenf", "autonomie_financiere", "prestations_familiales_base_ressources"], "parameters": ["fam.ars.agep", "fam.af.bmaf"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de soutien familial (ASF)", "line_number": 48, "module": "asf", "name": "asf", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 54, "module": "asf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n pfam = simulation.legislation_at(period.start).fam\n asf_elig = simulation.calculate('asf_elig', period)\n asf_par_enfant = simulation.calculate('asf_elig_enfant', period) * pfam.af.bmaf * pfam.asf.taux1\n montant = self.sum_by_entity(asf_par_enfant, roles = ENFS)\n\n return period, asf_elig * montant\n", "input_variables": ["asf_elig", "asf_elig_enfant"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "\u00c9ligibilit\u00e9 \u00e0 l'ASF", "line_number": 32, "module": "asf", "name": "asf_elig", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 37, "module": "asf", "source": "def function(self, simulation, period):\n period = period.this_month\n pensions_alimentaires_percues_holder = simulation.compute('pensions_alimentaires_percues', period)\n pensions_alimentaires_percues = self.sum_by_entity(pensions_alimentaires_percues_holder)\n\n isole = not_(simulation.calculate('en_couple', period))\n residence_mayotte = simulation.calculate('residence_mayotte', period)\n\n return period, not_(residence_mayotte) * isole * not_(pensions_alimentaires_percues) # Parent isol\u00e9 et ne r\u00e9sident pas \u00e0 Mayotte\n", "input_variables": ["pensions_alimentaires_percues", "residence_mayotte", "en_couple"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant pouvant ouvrir droit \u00e0 l'ASF", "line_number": 12, "module": "asf", "name": "asf_elig_enfant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 17, "module": "asf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n age = simulation.calculate('age', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n eligibilite = (\n (age >= pfam.af.age1) * (age < pfam.af.age3) * # \u00c2ge compatible avec les prestations familiales\n not_(autonomie_financiere)) # Ne per\u00e7oit pas plus de ressources que \"55% du SMIC\" au sens CAF\n\n return period, eligibilite\n", "input_variables": ["age", "autonomie_financiere"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Compl\u00e9ment familial", "line_number": 279, "module": "cf", "name": "cf", "url": "http://vosdroits.service-public.fr/particuliers/F13214.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": "L'allocation de base de la paje n'est pas cumulable avec le compl\u00e9ment familial", "line_number": 286, "module": "cf", "source": "def function(self, simulation, period):\n '''\n L'allocation de base de la paje n'est pas cumulable avec le compl\u00e9ment familial\n '''\n period = period.this_month\n paje_base = simulation.calculate('paje_base', period)\n apje_avant_cumul = simulation.calculate('apje_avant_cumul', period)\n ape_avant_cumul = simulation.calculate('ape_avant_cumul', period)\n cf_montant = simulation.calculate('cf_montant', period)\n residence_mayotte = simulation.calculate('residence_mayotte', period)\n\n cf_brut = not_(paje_base) * (apje_avant_cumul <= cf_montant) * (ape_avant_cumul <= cf_montant) * cf_montant\n return period, not_(residence_mayotte) * round(cf_brut, 2)\n", "input_variables": ["cf_montant", "apje_avant_cumul", "residence_mayotte", "ape_avant_cumul", "paje_base"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Compl\u00e9ment familial (DOM) - Enfant pris en compte pour l'\u00e9ligibilit\u00e9", "line_number": 51, "module": "cf", "name": "cf_dom_enfant_eligible", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 56, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n cf_enfant_a_charge = simulation.calculate('cf_enfant_a_charge', period)\n age = simulation.calculate('age', period)\n rempli_obligation_scolaire = simulation.calculate('rempli_obligation_scolaire', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n condition_age = (age >= pfam.cf.age1) * (age < pfam.cf.age_limite_dom)\n condition_situation = cf_enfant_a_charge * rempli_obligation_scolaire\n\n return period, condition_age * condition_situation\n", "input_variables": ["age", "rempli_obligation_scolaire", "cf_enfant_a_charge"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Compl\u00e9ment familial (DOM) - Enfant trop jeune pour ouvrir le droit", "line_number": 71, "module": "cf", "name": "cf_dom_enfant_trop_jeune", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 76, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n est_enfant_dans_famille = simulation.calculate('est_enfant_dans_famille', period)\n age = simulation.calculate('age', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n condition_age = (age >= 0) * (age < pfam.cf.age1)\n\n return period, condition_age * est_enfant_dans_famille\n", "input_variables": ["age", "est_enfant_dans_famille"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "\u00c9ligibilit\u00e9 au compl\u00e9ment familial sous condition de ressources et avant cumul", "line_number": 168, "module": "cf", "name": "cf_eligibilite_base", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 173, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n residence_dom = simulation.calculate('residence_dom', period)\n\n cf_enfant_eligible_holder = simulation.compute('cf_enfant_eligible', period)\n cf_nbenf = self.sum_by_entity(cf_enfant_eligible_holder)\n\n return period, not_(residence_dom) * (cf_nbenf >= 3)\n", "input_variables": ["cf_enfant_eligible", "residence_dom"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "\u00c9ligibilit\u00e9 au compl\u00e9ment familial pour les DOM sous condition de ressources et avant cumul", "line_number": 183, "module": "cf", "name": "cf_eligibilite_dom", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 189, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n residence_dom = simulation.calculate('residence_dom', period)\n residence_mayotte = simulation.calculate('residence_mayotte', period)\n\n cf_dom_enfant_eligible_holder = simulation.compute('cf_dom_enfant_eligible', period)\n cf_nbenf = self.sum_by_entity(cf_dom_enfant_eligible_holder)\n\n cf_dom_enfant_trop_jeune_holder = simulation.compute('cf_dom_enfant_trop_jeune', period)\n cf_nbenf_trop_jeune = self.sum_by_entity(cf_dom_enfant_trop_jeune_holder)\n\n condition_composition_famille = (cf_nbenf >= 1) * (cf_nbenf_trop_jeune == 0)\n condition_residence = residence_dom * not_(residence_mayotte)\n\n return period, condition_composition_famille * condition_residence\n", "input_variables": ["residence_dom", "cf_dom_enfant_eligible", "cf_dom_enfant_trop_jeune", "residence_mayotte"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Compl\u00e9ment familial - Enfant consid\u00e9r\u00e9 \u00e0 charge", "line_number": 10, "module": "cf", "name": "cf_enfant_a_charge", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 15, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n est_enfant_dans_famille = simulation.calculate('est_enfant_dans_famille', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n age = simulation.calculate('age', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n condition_age = (age >= 0) * (age < pfam.cf.age2)\n condition_situation = est_enfant_dans_famille * not_(autonomie_financiere)\n\n return period, condition_age * condition_situation\n", "input_variables": ["age", "autonomie_financiere", "est_enfant_dans_famille"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Compl\u00e9ment familial - Enfant pris en compte pour l'\u00e9ligibilit\u00e9", "line_number": 30, "module": "cf", "name": "cf_enfant_eligible", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 35, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n cf_enfant_a_charge = simulation.calculate('cf_enfant_a_charge', period)\n age = simulation.calculate('age', period)\n rempli_obligation_scolaire = simulation.calculate('rempli_obligation_scolaire', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n condition_enfant = ((age >= pfam.cf.age1) * (age < pfam.enfants.age_intermediaire) *\n rempli_obligation_scolaire)\n condition_jeune = (age >= pfam.enfants.age_intermediaire) * (age < pfam.cf.age2)\n\n return period, or_(condition_enfant, condition_jeune) * cf_enfant_a_charge\n", "input_variables": ["age", "rempli_obligation_scolaire", "cf_enfant_a_charge"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Compl\u00e9ment familial major\u00e9 avant cumul", "line_number": 239, "module": "cf", "name": "cf_majore_avant_cumul", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 244, "module": "cf", "source": "@dated_function(date(2014, 4, 1))\ndef function(self, simulation, period):\n period = period.this_month\n\n eligibilite_base = simulation.calculate('cf_eligibilite_base', period)\n eligibilite_dom = simulation.calculate('cf_eligibilite_dom', period)\n ressources = simulation.calculate('cf_ressources', period)\n plafond_majore = simulation.calculate('cf_majore_plafond', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n eligibilite_sous_condition = or_(eligibilite_base, eligibilite_dom)\n\n # Montant\n montant = pfam.af.bmaf * (pfam.cf.tx_majore * eligibilite_base + pfam.cf.tx_majore_dom * eligibilite_dom)\n\n eligibilite = eligibilite_sous_condition * (ressources <= plafond_majore)\n\n return period, eligibilite * montant\n", "input_variables": ["cf_majore_plafond", "cf_ressources", "cf_eligibilite_base", "cf_eligibilite_dom"]}, "stop_instant": null, "start_instant": "2014-04-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Plafond d'\u00e9ligibilit\u00e9 au Compl\u00e9ment Familial major\u00e9", "line_number": 143, "module": "cf", "name": "cf_majore_plafond", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 148, "module": "cf", "source": "@dated_function(date(2014, 4, 1))\ndef function(self, simulation, period):\n period = period.this_month\n plafond_base = simulation.calculate('cf_plafond', period)\n pfam = simulation.legislation_at(period.start).fam\n return period, plafond_base * pfam.cf.plafond_cf_majore\n", "input_variables": ["cf_plafond"]}, "stop_instant": null, "start_instant": "2014-04-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant du compl\u00e9ment familial, avant prise en compte d'\u00e9ventuels cumuls", "line_number": 265, "module": "cf", "name": "cf_montant", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 270, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n cf_non_majore_avant_cumul = simulation.calculate('cf_non_majore_avant_cumul', period)\n cf_majore_avant_cumul = simulation.calculate('cf_majore_avant_cumul', period)\n\n return period, max_(cf_non_majore_avant_cumul, cf_majore_avant_cumul)\n", "input_variables": ["cf_non_majore_avant_cumul", "cf_majore_avant_cumul"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Compl\u00e9ment familial non major\u00e9 avant cumul", "line_number": 207, "module": "cf", "name": "cf_non_majore_avant_cumul", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 212, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n eligibilite_base = simulation.calculate('cf_eligibilite_base', period)\n eligibilite_dom = simulation.calculate('cf_eligibilite_dom', period)\n ressources = simulation.calculate('cf_ressources', period)\n plafond = simulation.calculate('cf_plafond', period)\n\n pfam = simulation.legislation_at(period.start).fam\n\n eligibilite_sous_condition = or_(eligibilite_base, eligibilite_dom)\n\n # Montant\n montant = pfam.af.bmaf * (pfam.cf.tx * eligibilite_base + pfam.cf.tx_dom * eligibilite_dom)\n\n # Compl\u00e9ment familial\n eligibilite = eligibilite_sous_condition * (ressources <= plafond)\n\n # Compl\u00e9ment familial diff\u00e9rentiel\n plafond_diff = plafond + 12 * montant\n eligibilite_diff = not_(eligibilite) * eligibilite_sous_condition * (\n ressources <= plafond_diff)\n montant_diff = (plafond_diff - ressources) / 12\n\n return period, max_(eligibilite * montant, eligibilite_diff * montant_diff)\n", "input_variables": ["cf_ressources", "cf_eligibilite_base", "cf_plafond", "cf_eligibilite_dom"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Plafond d'\u00e9ligibilit\u00e9 au Compl\u00e9ment Familial", "line_number": 104, "module": "cf", "name": "cf_plafond", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 109, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n pfam = simulation.legislation_at(period.start).fam\n\n eligibilite_base = simulation.calculate('cf_eligibilite_base', period)\n eligibilite_dom = simulation.calculate('cf_eligibilite_dom', period)\n isole = not_(simulation.calculate('en_couple', period))\n biactivite = simulation.calculate('biactivite', period)\n cf_enfant_a_charge_holder = simulation.compute('cf_enfant_a_charge', period)\n\n # Calcul du nombre d'enfants \u00e0 charge au sens du CF\n cf_nbenf = self.sum_by_entity(cf_enfant_a_charge_holder)\n\n # Calcul du taux \u00e0 appliquer au plafond de base pour la France m\u00e9tropolitaine\n taux_plafond_metropole = 1 + pfam.cf.majoration_plafond_tx1 * min_(cf_nbenf, 2) + pfam.cf.majoration_plafond_tx2 * max_(cf_nbenf - 2, 0)\n\n # Majoration du plafond pour biactivit\u00e9 ou isolement (France m\u00e9tropolitaine)\n majoration_plafond = (isole | biactivite)\n\n # Calcul du plafond pour la France m\u00e9tropolitaine\n plafond_metropole = pfam.cf.plafond * taux_plafond_metropole + pfam.cf.majoration_plafond_biact_isole * majoration_plafond\n\n # Calcul du taux \u00e0 appliquer au plafond de base pour les DOM\n taux_plafond_dom = 1 + cf_nbenf * pfam.ars.plaf_enf_supp\n\n # Calcul du plafond pour les DOM\n plafond_dom = pfam.ars.plaf * taux_plafond_dom\n\n plafond = (eligibilite_base * plafond_metropole + eligibilite_dom * plafond_dom)\n\n return period, plafond\n", "input_variables": ["en_couple", "biactivite", "cf_eligibilite_base", "cf_eligibilite_dom", "cf_enfant_a_charge"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Ressources prises en compte pour l'\u00e9ligibilit\u00e9 au compl\u00e9ment familial", "line_number": 156, "module": "cf", "name": "cf_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 161, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n cf_ressources_i_holder = simulation.compute('cf_ressources_individu', period)\n ressources = self.sum_by_entity(cf_ressources_i_holder)\n return period, ressources\n", "input_variables": ["cf_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Compl\u00e9ment familial - Ressources de l'individu prises en compte", "line_number": 89, "module": "cf", "name": "cf_ressources_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 94, "module": "cf", "source": "def function(self, simulation, period):\n period = period.this_month\n\n base_ressources = simulation.calculate('prestations_familiales_base_ressources_individu', period)\n est_enfant_dans_famille = simulation.calculate('est_enfant_dans_famille', period)\n cf_enfant_a_charge = simulation.calculate('cf_enfant_a_charge', period)\n\n return period, or_(not_(est_enfant_dans_famille), cf_enfant_a_charge) * base_ressources\n", "input_variables": ["cf_enfant_a_charge", "est_enfant_dans_famille", "prestations_familiales_base_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Allocation adulte handicap\u00e9 (Individus) mensualis\u00e9e", "line_number": 223, "module": "aah", "name": "aah", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 229, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n\n aah_base = simulation.calculate('aah_base', period)\n # caah\n # mva\n\n return period, aah_base\n", "input_variables": ["aah_base"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Montant de l'Allocation adulte handicap\u00e9 (hors compl\u00e9ment) pour un individu, mensualis\u00e9e", "line_number": 198, "module": "aah", "name": "aah_base", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 204, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n law = simulation.legislation_at(period.start)\n\n aah_eligible = simulation.calculate('aah_eligible', period)\n aah_non_calculable = simulation.calculate('aah_non_calculable', period)\n\n def montant_aah():\n aah_base_ressources = simulation.calculate('aah_base_ressources', period)\n en_couple = simulation.calculate('en_couple', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n plaf_ress_aah = 12 * law.minim.aah.montant * (1 + en_couple + law.minim.aah.tx_plaf_supp * af_nbenf)\n return max_(plaf_ress_aah - aah_base_ressources, 0) / 12\n\n # Le montant est \u00e0 valeur pour une famille, il faut le caster pour l'individu\n # Pour le moment, on ne neutralise pas l'aah en cas de non calculabilit\u00e9 pour pouvoir tester\n return period, aah_eligible * self.cast_from_entity_to_roles(montant_aah(), entity = 'famille') # * not_(aah_non_calculable)\n", "input_variables": ["en_couple", "aah_eligible", "af_nbenf", "aah_base_ressources", "aah_non_calculable"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressources de l'allocation adulte handicap\u00e9", "line_number": 9, "module": "aah", "name": "aah_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 14, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n law = simulation.legislation_at(period.start)\n\n salaire_this_month = simulation.compute('salaire_imposable', period)\n demandeur_en_activite = self.filter_role(salaire_this_month, role = CHEF) > 0\n\n def assiette_conjoint(revenus_conjoint):\n return 0.9 * (1 - 0.2) * revenus_conjoint\n\n def assiette_demandeur(revenus_demandeur):\n smic_brut_annuel = 12 * law.cotsoc.gen.smic_h_b * law.cotsoc.gen.nb_heure_travail_mensuel\n tranche1 = min_(0.3 * smic_brut_annuel, revenus_demandeur)\n tranche2 = revenus_demandeur - tranche1\n return (1 - 0.8) * tranche1 + (1 - 0.4) * tranche2\n\n def base_ressource_eval_trim():\n aah_base_ressources_eval_trimestrielle = simulation.compute('aah_base_ressources_eval_trimestrielle', period)\n base_ressource_demandeur = self.filter_role(aah_base_ressources_eval_trimestrielle, role = CHEF)\n base_ressource_conjoint = self.filter_role(aah_base_ressources_eval_trimestrielle, role = PART)\n\n return assiette_demandeur(base_ressource_demandeur) + assiette_conjoint(base_ressource_conjoint)\n\n def base_ressource_eval_annuelle():\n aah_base_ressources_eval_annuelle = simulation.compute('aah_base_ressources_eval_annuelle', period)\n base_ressource_demandeur = self.filter_role(aah_base_ressources_eval_annuelle, role = CHEF)\n base_ressource_conjoint = self.filter_role(aah_base_ressources_eval_annuelle, role = PART)\n\n return assiette_demandeur(base_ressource_demandeur) + assiette_conjoint(base_ressource_conjoint)\n\n aah_base_ressource = (\n demandeur_en_activite * base_ressource_eval_trim() +\n not_(demandeur_en_activite) * base_ressource_eval_annuelle()\n )\n\n return period, aah_base_ressource\n", "input_variables": ["aah_base_ressources_eval_annuelle", "salaire_imposable", "aah_base_ressources_eval_trimestrielle"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base de ressources de l'ASS pour un individu, \u00e9valuation annuelle", "line_number": 116, "module": "aah", "name": "aah_base_ressources_eval_annuelle", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 121, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n return period, simulation.calculate('revenu_activite', period.n_2) + simulation.calculate('revenu_assimile_pension', period.n_2)\n", "input_variables": ["revenu_assimile_pension", "revenu_activite"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base de ressources de l'ASS pour un individu, \u00e9valuation trimestrielle", "line_number": 52, "module": "aah", "name": "aah_base_ressources_eval_trimestrielle", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 71, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n three_previous_months = period.start.period('month', 3).offset(-3)\n last_year = period.last_year\n\n salaire_net = simulation.calculate_add('salaire_net', three_previous_months)\n chomage_net = simulation.calculate_add('chomage_net', three_previous_months)\n retraite_nette = simulation.calculate_add('retraite_nette', three_previous_months)\n pensions_alimentaires_percues = simulation.calculate_add('pensions_alimentaires_percues', three_previous_months)\n pensions_alimentaires_versees_individu = simulation.calculate_add(\n 'pensions_alimentaires_versees_individu', three_previous_months)\n rsa_base_ressources_patrimoine_i = simulation.calculate_add('rsa_base_ressources_patrimoine_individu', three_previous_months)\n indemnites_journalieres_imposables = simulation.calculate_add('indemnites_journalieres_imposables', three_previous_months)\n indemnites_stage = simulation.calculate_add('indemnites_stage', three_previous_months)\n revenus_stage_formation_pro = simulation.calculate_add('revenus_stage_formation_pro', three_previous_months)\n allocation_securisation_professionnelle = simulation.calculate_add(\n 'allocation_securisation_professionnelle', three_previous_months)\n prestation_compensatoire = simulation.calculate_add('prestation_compensatoire', three_previous_months)\n pensions_invalidite = simulation.calculate_add('pensions_invalidite', three_previous_months)\n indemnites_chomage_partiel = simulation.calculate_add('indemnites_chomage_partiel', three_previous_months)\n bourse_recherche = simulation.calculate_add('bourse_recherche', three_previous_months)\n gains_exceptionnels = simulation.calculate_add('gains_exceptionnels', three_previous_months)\n\n def revenus_tns():\n revenus_auto_entrepreneur = simulation.calculate_add('tns_auto_entrepreneur_benefice', three_previous_months)\n\n # Les revenus TNS hors AE sont estim\u00e9s en se basant sur le revenu N-1\n tns_micro_entreprise_benefice = simulation.calculate('tns_micro_entreprise_benefice', last_year) * 3 / 12\n tns_benefice_exploitant_agricole = simulation.calculate('tns_benefice_exploitant_agricole', last_year) * 3 / 12\n tns_autres_revenus = simulation.calculate('tns_autres_revenus', last_year) * 3 / 12\n\n return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus\n\n result = (\n salaire_net + indemnites_chomage_partiel + indemnites_stage + chomage_net + retraite_nette +\n pensions_alimentaires_percues - abs_(pensions_alimentaires_versees_individu) +\n rsa_base_ressources_patrimoine_i + allocation_securisation_professionnelle +\n indemnites_journalieres_imposables + prestation_compensatoire +\n pensions_invalidite + bourse_recherche + gains_exceptionnels + revenus_tns() +\n revenus_stage_formation_pro\n )\n\n return period, result * 4\n", "input_variables": ["indemnites_journalieres_imposables", "pensions_invalidite", "rsa_base_ressources_patrimoine_individu", "chomage_net", "gains_exceptionnels", "bourse_recherche", "retraite_nette", "indemnites_stage", "pensions_alimentaires_percues", "pensions_alimentaires_versees_individu", "salaire_net", "prestation_compensatoire", "allocation_securisation_professionnelle", "indemnites_chomage_partiel", "revenus_stage_formation_pro"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Eligibilit\u00e9 \u00e0 l'Allocation adulte handicap\u00e9", "line_number": 126, "module": "aah", "name": "aah_eligible", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 160, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n law = simulation.legislation_at(period.start)\n\n taux_incapacite = simulation.calculate('taux_incapacite', period)\n age = simulation.calculate('age', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n\n eligible_aah = (\n (taux_incapacite >= 0.5) *\n (age <= law.minim.aah.age_legal_retraite) *\n ((age >= law.fam.aeeh.age) + ((age >= 16) * (autonomie_financiere)))\n )\n\n return period, eligible_aah\n", "input_variables": ["age", "taux_incapacite", "autonomie_financiere"]}}, {"@type": "Enumeration", "default": "0", "entity": "familles", "label": "AAH non calculable", "line_number": 178, "module": "aah", "name": "aah_non_calculable", "labels": {"0": "", "1": "intervention_CDAPH_necessaire"}, "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 189, "module": "aah", "source": "def function(self, simulation, period):\n period = period.this_month\n taux_incapacite = simulation.calculate('taux_incapacite', period)\n aah_eligible = simulation.calculate('aah_eligible', period)\n\n # Pour le moment r\u00e9sultat \"pas assez fiable, donc on renvoit une non calculabilit\u00e9 tout le temps.\n return period, self.any_by_roles(aah_eligible) # * (taux_incapacite < 0.8)\n", "input_variables": ["aah_eligible", "taux_incapacite"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Compl\u00e9ment d'allocation adulte handicap\u00e9 (mensualis\u00e9)", "line_number": 239, "module": "aah", "name": "caah", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 321, "module": "aah", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2005, 6, 30)) # TODO FIXME start date\ndef function_2005_06_30(self, simulation, period):\n period = period.this_month\n law = simulation.legislation_at(period.start)\n\n cpltx = law.minim.caah.cpltx\n aah_montant = law.minim.aah.montant\n\n aah = simulation.calculate('aah', period)\n asi_eligibilite = simulation.calculate('asi_eligibilite', period)\n asi_holder = simulation.compute('asi', period) # montant asi de la famille\n asi = self.cast_from_entity_to_roles(asi_holder) # attribu\u00e9 \u00e0 tous les membres de la famille\n benef_asi = (asi_eligibilite * (asi > 0))\n al_holder = simulation.compute('aide_logement_montant', period) # montant allocs logement de la famille\n al = self.cast_from_entity_to_roles(al_holder) # attribu\u00e9 \u00e0 tout individu membre de la famille\n\n elig_ancien_caah = (al > 0) * ((aah > 0) | (benef_asi > 0)) # TODO: & invalidit\u00e9 >= 80% & logement ind\u00e9pendant\n ancien_caah = cpltx * aah_montant * elig_ancien_caah\n # En fait le taux cpltx perdure jusqu'en 2008\n\n return period, ancien_caah\n", "input_variables": ["aide_logement_montant", "asi", "asi_eligibilite", "aah"]}, "stop_instant": "2005-06-30", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 293, "module": "aah", "source": "@dated_function(start = date(2005, 7, 1))\ndef function_2005_07_01(self, simulation, period):\n period = period.this_month\n law = simulation.legislation_at(period.start)\n\n grph = law.minim.caah.grph\n aah_montant = law.minim.aah.montant\n\n aah = simulation.calculate('aah', period)\n asi_eligibilite = simulation.calculate('asi_eligibilite', period)\n asi_holder = simulation.compute('asi', period) # montant asi de la famille\n asi = self.cast_from_entity_to_roles(asi_holder) # attribu\u00e9 \u00e0 tous les membres de la famille\n benef_asi = (asi_eligibilite * (asi > 0))\n al_holder = simulation.compute('aide_logement_montant', period) # montant allocs logement de la famille\n al = self.cast_from_entity_to_roles(al_holder) # attribu\u00e9 \u00e0 tout individu membre de la famille\n\n elig_cpl = ((aah > 0) | (benef_asi > 0))\n # TODO: & logement ind\u00e9pendant & inactif 12 derniers mois\n # & capa de travail < 5% & taux d'incapacit\u00e9 >= 80%\n compl_ress = elig_cpl * max_(grph - aah_montant, 0)\n\n elig_mva = (al > 0) * ((aah > 0) | (benef_asi > 0))\n # TODO: & logement ind\u00e9pendant & pas de revenus professionnels\n # propres & capa de travail < 5% & taux d'incapacit\u00e9 >= 80%\n mva = 0.0 * elig_mva # TODO: rentrer mva dans param\u00e8tres. mva (mensuelle) = 104,77 en 2015, \u00e9tait de 101,80 en 2006, et de 119,72 en 2007\n\n return period, max_(compl_ress, mva)\n", "input_variables": ["aide_logement_montant", "asi", "asi_eligibilite", "aah"]}, "stop_instant": null, "start_instant": "2005-07-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Aide exceptionelle de fin d'ann\u00e9e (prime de No\u00ebl)", "line_number": 11, "module": "rsa", "name": "aefa", "url": "http://www.pole-emploi.fr/candidat/aide-exceptionnelle-de-fin-d-annee-dite-prime-de-noel--@/suarticle.jspz?id=70996", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 107, "module": "rsa", "source": "@dated_function(start = date(2002, 1, 1), stop = date(2007, 12, 31))\ndef function__2008_(self, simulation, period):\n period = period.this_year\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period, accept_other_period = True)\n af_nbenf = simulation.calculate('af_nbenf', period)\n nb_parents = simulation.calculate('nb_parents', period)\n ass = simulation.calculate_add('ass', period)\n aer_holder = simulation.compute('aer', period)\n api = simulation.calculate_add('api', period)\n rsa = simulation.calculate('rsa', period)\n P = simulation.legislation_at(period.start).minim.aefa\n af = simulation.legislation_at(period.start).fam.af\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n aer = self.sum_by_entity(aer_holder)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n dummy_ass = ass > 0\n dummy_aer = aer > 0\n dummy_api = api > 0\n dummy_rmi = rsa > 0\n maj = 0 # TODO\n condition = (dummy_ass + dummy_aer + dummy_api + dummy_rmi > 0)\n if hasattr(af, \"age3\"):\n nbPAC = nb_enf(age, autonomie_financiere, af.age1, af.age3)\n else:\n nbPAC = af_nbenf\n # TODO check nombre de PAC pour une famille\n aefa = condition * P.mon_seul * (\n 1 + (nb_parents == 2) * P.tx_2p +\n nbPAC * P.tx_supp * (nb_parents <= 2) +\n nbPAC * P.tx_3pac * max_(nbPAC - 2, 0)\n )\n aefa_maj = P.mon_seul * maj\n aefa = max_(aefa_maj, aefa)\n return period, aefa\n", "input_variables": ["ass", "aer", "age", "rsa", "api", "nb_parents", "af_nbenf", "autonomie_financiere"]}, "stop_instant": "2007-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 69, "module": "rsa", "source": "@dated_function(start = date(2008, 1, 1), stop = date(2008, 12, 31))\ndef function_2008(self, simulation, period):\n period = period.this_year\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period, accept_other_period = True)\n af_nbenf = simulation.calculate('af_nbenf', period)\n nb_parents = simulation.calculate('nb_parents', period)\n ass = simulation.calculate_add('ass', period)\n aer_holder = simulation.compute('aer', period)\n api = simulation.calculate_add('api', period)\n rsa = simulation.calculate('rsa', period)\n P = simulation.legislation_at(period.start).minim.aefa\n af = simulation.legislation_at(period.start).fam.af\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n aer = self.sum_by_entity(aer_holder)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n dummy_ass = ass > 0\n dummy_aer = aer > 0\n dummy_api = api > 0\n dummy_rmi = rsa > 0\n maj = 0 # TODO\n condition = (dummy_ass + dummy_aer + dummy_api + dummy_rmi > 0)\n if hasattr(af, \"age3\"):\n nbPAC = nb_enf(age, autonomie_financiere, af.age1, af.age3)\n else:\n nbPAC = af_nbenf\n # TODO check nombre de PAC pour une famille\n aefa = condition * P.mon_seul * (\n 1 + (nb_parents == 2) * P.tx_2p +\n nbPAC * P.tx_supp * (nb_parents <= 2) +\n nbPAC * P.tx_3pac * max_(nbPAC - 2, 0)\n )\n aefa += condition * P.forf2008\n aefa_maj = P.mon_seul * maj\n aefa = max_(aefa_maj, aefa)\n return period, aefa\n", "input_variables": ["ass", "aer", "age", "rsa", "api", "nb_parents", "af_nbenf", "autonomie_financiere"]}, "stop_instant": "2008-12-31", "start_instant": "2008-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 32, "module": "rsa", "source": "@dated_function(start = date(2009, 1, 1), stop = date(2015, 12, 31))\ndef function_2009__(self, simulation, period):\n period = period.this_year\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period, accept_other_period = True)\n af_nbenf = simulation.calculate('af_nbenf', period)\n nb_parents = simulation.calculate('nb_parents', period)\n ass = simulation.calculate_add('ass', period)\n aer_holder = simulation.compute('aer', period)\n api = simulation.calculate_add('api', period)\n rsa = simulation.calculate_add('rsa', period)\n P = simulation.legislation_at(period.start).minim.aefa\n af = simulation.legislation_at(period.start).fam.af\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n aer = self.sum_by_entity(aer_holder)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n dummy_ass = ass > 0\n dummy_aer = aer > 0\n dummy_api = api > 0\n dummy_rmi = rsa > 0\n maj = 0 # TODO\n condition = (dummy_ass + dummy_aer + dummy_api + dummy_rmi > 0)\n if hasattr(af, \"age3\"):\n nbPAC = nb_enf(age, autonomie_financiere, af.age1, af.age3)\n else:\n nbPAC = af_nbenf\n # TODO check nombre de PAC pour une famille\n aefa = condition * P.mon_seul * (\n 1 + (nb_parents == 2) * P.tx_2p +\n nbPAC * P.tx_supp * (nb_parents <= 2) +\n nbPAC * P.tx_3pac * max_(nbPAC - 2, 0)\n )\n aefa_maj = P.mon_seul * maj\n aefa = max_(aefa_maj, aefa)\n return period, aefa\n", "input_variables": ["ass", "aer", "age", "rsa", "api", "nb_parents", "af_nbenf", "autonomie_financiere"]}, "stop_instant": "2015-12-31", "start_instant": "2009-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de parent isol\u00e9", "line_number": 145, "module": "rsa", "name": "api", "url": "(u'http://fr.wikipedia.org/wiki/Allocation_de_parent_isol%C3%A9',)", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Allocation de parent isol\u00e9", "line_number": 151, "module": "rsa", "source": "@dated_function(stop = date(2009, 5, 31))\ndef function__2009(self, simulation, period):\n \"\"\"\n Allocation de parent isol\u00e9\n \"\"\"\n period = period.this_month\n age_en_mois_holder = simulation.compute('age_en_mois', period)\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period)\n isole = not_(simulation.calculate('en_couple', period))\n rsa_forfait_logement = simulation.calculate('rsa_forfait_logement', period)\n rsa_base_ressources = simulation.calculate('rsa_base_ressources', period)\n af_majoration = simulation.calculate('af_majoration', period)\n rsa = simulation.calculate('rsa', period)\n af = simulation.legislation_at(period.start).fam.af\n api = simulation.legislation_at(period.start).minim.api\n\n age = self.split_by_roles(age_holder, roles = ENFS)\n age_en_mois = self.split_by_roles(age_en_mois_holder, roles = ENFS)\n autonomie_financiere = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n # TODO:\n # Majoration pour isolement\n # Si vous \u00eates parent isol\u00e9, c\u2019est-\u00e0-dire c\u00e9libataire, divorc\u00e9(e), s\u00e9par\u00e9(e) ou veuf(ve) avec des enfants\n # \u00e0 charge ou enceinte, le montant forfaitaire garanti est major\u00e9.\n # Ce montant forfaitaire major\u00e9 est accord\u00e9 \u00e0 partir du mois au cours duquel survient l'un des \u00e9v\u00e9nements\n # suivants :\n # - d\u00e9claration de grossesse,\n # - naissance d'un enfant,\n # - prise en charge d'un enfant,\n # - s\u00e9paration, veuvage,\n # - d\u00e9p\u00f4t de la demande si l\u2019\u00e9v\u00e9nement est ant\u00e9rieur.\n #\n # Le montant forfaitaire major\u00e9 peut \u00eatre accord\u00e9 pendant 12 mois, continus ou discontinus, au cours\n # d\u2019une p\u00e9riode de 18 mois suivant l\u2019\u00e9v\u00e9nement.\n # Si votre plus jeune enfant \u00e0 charge a moins de 3 ans, le montant forfaitaire major\u00e9 vous est accord\u00e9\n # jusqu'\u00e0 ses 3 ans.\n benjamin = age_en_mois_benjamin(age_en_mois)\n enceinte = (benjamin < 0) * (benjamin > -6)\n # TODO: quel mois mettre ?\n # TODO: pas compl\u00e8tement exact\n # L'allocataire per\u00e7oit l'API :\n # jusqu'\ufffd\ufffd ce que le plus jeune enfant ait 3 ans,\n # ou pendant 12 mois cons\u00e9cutifs si les enfants sont \u00e2g\u00e9s de plus de 3 ans\n # et s'il a pr\u00e9sent\u00e9 sa demande dans les 6 mois \u00e0 partir du moment o\u00f9 il\n # assure seul la charge de l'enfant.\n # TODO: API courte gens pour les gens qui ont divorc\u00e9s dans l'ann\u00e9e\n # Le droit \u00e0 l'allocation est r\u00e9\u00e9tudi\u00e9 tous les 3 mois.\n # # Calcul de l'ann\u00e9e et mois de naissance du benjamin\n\n condition = (floor(benjamin / 12) <= api.age - 1)\n eligib = isole * ((enceinte != 0) | (nb_enf(age, autonomie_financiere, 0, api.age - 1) > 0)) * condition\n\n # moins de 20 ans avant inclusion dans rsa\n # moins de 25 ans apr\u00e8s inclusion dans rsa\n api1 = eligib * af.bmaf * (api.base + api.enf_sup * nb_enf(age, autonomie_financiere, af.age1, api.age_pac - 1))\n rsa = (api.age_pac >= 25) # dummy passage au rsa major\u00e9\n br_api = rsa_base_ressources + af_majoration * not_(rsa)\n # On pourrait mensualiser RMI, BRrmi et forfait logement\n api = max_(0, api1 - rsa_forfait_logement / 12 - br_api / 12 - rsa / 12)\n # L'API est exon\u00e9r\u00e9e de CRDS\n return period, api # annualis\u00e9\n", "input_variables": ["autonomie_financiere", "af_majoration", "age", "age_en_mois", "rsa", "en_couple", "rsa_base_ressources", "rsa_forfait_logement"]}, "stop_instant": "2009-05-31", "start_instant": null}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "CRDS vers\u00e9e sur les minimas sociaux", "line_number": 394, "module": "rsa", "name": "crds_mini", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "CRDS sur les minima sociaux", "line_number": 399, "module": "rsa", "source": "@dated_function(start = date(2009, 6, 1))\ndef function_2009_(self, simulation, period):\n \"\"\"\n CRDS sur les minima sociaux\n \"\"\"\n period = period.this_month\n rsa_activite = simulation.calculate('rsa_activite', period)\n taux_crds = simulation.legislation_at(period.start).fam.af.crds\n\n return period, - taux_crds * rsa_activite\n", "input_variables": ["rsa_activite"]}, "stop_instant": null, "start_instant": "2009-06-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Dividende entrant en compte dans le calcul des minimas", "line_number": 411, "module": "rsa", "name": "div_ms", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 416, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n period_declaration = period.this_year\n f3vc_holder = simulation.compute('f3vc', period_declaration)\n f3ve_holder = simulation.compute('f3ve', period_declaration)\n f3vg_holder = simulation.compute('f3vg', period_declaration)\n f3vl_holder = simulation.compute('f3vl', period_declaration)\n f3vm_holder = simulation.compute('f3vm', period_declaration)\n\n f3vc = self.cast_from_entity_to_role(f3vc_holder, role = VOUS)\n f3ve = self.cast_from_entity_to_role(f3ve_holder, role = VOUS)\n f3vg = self.cast_from_entity_to_role(f3vg_holder, role = VOUS)\n f3vl = self.cast_from_entity_to_role(f3vl_holder, role = VOUS)\n f3vm = self.cast_from_entity_to_role(f3vm_holder, role = VOUS)\n\n return period, (f3vc + f3ve + f3vg + f3vl + f3vm) / 12\n", "input_variables": ["f3vc", "f3vg", "f3vm", "f3ve", "f3vl"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 434, "module": "rsa", "name": "enceinte_fam", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 438, "module": "rsa", "source": "def function(self, simulation, period):\n period = period\n age_en_mois_holder = simulation.compute('age_en_mois', period)\n enceinte_holder = simulation.compute('enceinte', period)\n\n age_en_mois_enf = self.split_by_roles(age_en_mois_holder, roles = ENFS)\n enceinte = self.split_by_roles(enceinte_holder, roles = [CHEF, PART])\n\n benjamin = age_en_mois_benjamin(age_en_mois_enf)\n enceinte_compat = and_(benjamin < 0, benjamin > -6)\n return period, or_(or_(enceinte_compat, enceinte[CHEF]), enceinte[PART])\n", "input_variables": ["age_en_mois", "enceinte"]}}, {"@type": "Boolean", "default": false, "entity": "menages", "label": "Partipation aux frais de logement pour un heberg\u00e9 \u00e0 titre gratuit", "line_number": 497, "module": "rsa", "name": "participation_frais"}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prime de solidarit\u00e9 active", "line_number": 502, "module": "rsa", "name": "psa", "url": "http://www.service-public.fr/actualites/001077.html", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Prime de solidarit\u00e9 active (exceptionnelle, 200\u20ac vers\u00e9s une fois en avril 2009)\nVersement en avril 2009 d\u2019une prime de solidarit\u00e9 active (Psa) aux familles modestes qui ont b\u00e9n\u00e9fici\u00e9\nen janvier, f\u00e9vrier ou mars 2009 du Rmi, de l\u2019Api (du Rsa exp\u00e9rimental, du Cav ou du Rma pour\nles ex-b\u00e9n\u00e9ficiaires du Rmi ou de l\u2019Api), de la prime forfaitaire mensuelle au titre du Rmi ou de l\u2019Api\nou enfin d\u2019une aide au logement (\u00e0 condition d\u2019exercer une activit\u00e9 professionnelle et\nd\u2019\u00eatre \u00e2g\u00e9 de plus de 25 ans ou d\u2019avoir au moins un enfant \u00e0 charge).\nLa Psa, prime exceptionnelle, s\u2019\u00e9l\u00e8ve \u00e0 200 euros par foyer b\u00e9n\u00e9ficiaire.", "line_number": 508, "module": "rsa", "source": "@dated_function(start = date(2009, 4, 1), stop = date(2009, 4, 30))\ndef function_2009(self, simulation, period):\n '''\n Prime de solidarit\u00e9 active (exceptionnelle, 200\u20ac vers\u00e9s une fois en avril 2009)\n Versement en avril 2009 d\u2019une prime de solidarit\u00e9 active (Psa) aux familles modestes qui ont b\u00e9n\u00e9fici\u00e9\n en janvier, f\u00e9vrier ou mars 2009 du Rmi, de l\u2019Api (du Rsa exp\u00e9rimental, du Cav ou du Rma pour\n les ex-b\u00e9n\u00e9ficiaires du Rmi ou de l\u2019Api), de la prime forfaitaire mensuelle au titre du Rmi ou de l\u2019Api\n ou enfin d\u2019une aide au logement (\u00e0 condition d\u2019exercer une activit\u00e9 professionnelle et\n d\u2019\u00eatre \u00e2g\u00e9 de plus de 25 ans ou d\u2019avoir au moins un enfant \u00e0 charge).\n La Psa, prime exceptionnelle, s\u2019\u00e9l\u00e8ve \u00e0 200 euros par foyer b\u00e9n\u00e9ficiaire.\n '''\n period = period.this_month\n api = simulation.calculate('api', period)\n rsa = simulation.calculate('rsa', period)\n activite_holder = simulation.compute('activite', period)\n af_nbenf = simulation.calculate('af_nbenf', period)\n\n aide_logement = simulation.calculate('aide_logement', period)\n P = simulation.legislation_at(period.start).minim.rmi\n\n activite = self.split_by_roles(activite_holder, roles = [CHEF, PART])\n dummy_api = api > 0\n dummy_rmi = rsa > 0\n dummy_al = and_(aide_logement > 0, or_(af_nbenf > 0, or_(activite[CHEF] == 0, activite[PART] == 0)))\n condition = (dummy_api + dummy_rmi + dummy_al > 0)\n psa = condition * P.psa\n return period, psa\n", "input_variables": ["activite", "api", "aide_logement", "rsa", "af_nbenf"]}, "stop_instant": "2009-04-30", "start_instant": "2009-04-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus fonciers pour la base ressource du rmi/rsa", "line_number": 591, "module": "rsa", "name": "revenus_fonciers_minima_sociaux", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 596, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n period_declaration = period.this_year\n f4ba_holder = simulation.compute('f4ba', period_declaration)\n f4be_holder = simulation.compute('f4be', period_declaration)\n\n f4ba = self.cast_from_entity_to_role(f4ba_holder, role = VOUS)\n f4be = self.cast_from_entity_to_role(f4be_holder, role = VOUS)\n\n return period, (f4ba + f4be) / 12\n", "input_variables": ["f4be", "f4ba"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu Minimum d'Insertion", "line_number": 608, "module": "rsa", "name": "rmi", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 613, "module": "rsa", "source": "@dated_function(start = date(1988, 12, 1), stop = date(2009, 5, 31))\ndef function(self, simulation, period):\n period = period.this_month\n activite = simulation.calculate('activite', period)\n rsa_base_ressources = simulation.calculate('rsa_base_ressources', period)\n rsa_socle = simulation.calculate('rsa_socle', period)\n rsa_forfait_logement = simulation.calculate('rsa_forfait_logement', period)\n\n return period, (activite != 0) * (activite != 2) * (activite != 3) * (\n max_(0, rsa_socle - rsa_forfait_logement - rsa_base_ressources))\n", "input_variables": ["rsa_base_ressources", "activite", "rsa_socle", "rsa_forfait_logement"]}, "stop_instant": "2009-05-31", "start_instant": "1988-12-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu de solidarit\u00e9 active", "line_number": 626, "module": "rsa", "name": "rsa", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 632, "module": "rsa", "source": "@dated_function(start = date(2009, 06, 1))\ndef function(self, simulation, period):\n period = period.this_month\n rsa_majore = simulation.calculate('rsa_majore', period)\n rsa_non_majore = simulation.calculate('rsa_non_majore', period)\n rsa_non_calculable = simulation.calculate('rsa_non_calculable', period)\n\n rsa = (1 - rsa_non_calculable) * max_(rsa_majore, rsa_non_majore)\n\n return period, rsa\n", "input_variables": ["rsa_majore", "rsa_non_majore", "rsa_non_calculable"]}, "stop_instant": null, "start_instant": "2009-06-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu de solidarit\u00e9 active - activit\u00e9", "line_number": 644, "module": "rsa", "name": "rsa_activite", "start": "2009-06-01", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": "Calcule le montant du RSA activit\u00e9\nNote: le partage en moiti\u00e9 est un point de l\u00e9gislation, pas un choix arbitraire", "line_number": 651, "module": "rsa", "source": "@dated_function(start = date(2009, 6, 1), stop = date(2015, 12, 31))\ndef function_2009(self, simulation, period):\n '''\n Calcule le montant du RSA activit\u00e9\n Note: le partage en moiti\u00e9 est un point de l\u00e9gislation, pas un choix arbitraire\n '''\n period = period\n rsa = simulation.calculate_add('rsa', period)\n rmi = simulation.calculate_add('rmi', period)\n\n return period, max_(rsa - rmi, 0)\n", "input_variables": ["rmi", "rsa"]}, "stop_instant": "2015-12-31", "start_instant": "2009-06-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu de solidarit\u00e9 active - activit\u00e9 au niveau de l'individu", "line_number": 664, "module": "rsa", "name": "rsa_activite_individu", "start": "2009-06-01", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 670, "module": "rsa", "source": "@dated_function(start = date(2009, 6, 1))\ndef function_2009_(self, simulation, period):\n period = period # TODO: rentre dans le calcul de la PPE check period !!!\n rsa_activite_holder = simulation.compute('rsa_activite', period)\n en_couple_holder = simulation.compute('en_couple', period)\n maries_holder = simulation.compute('maries', period)\n quifam = simulation.calculate('quifam', period)\n\n en_couple = self.cast_from_entity_to_roles(en_couple_holder)\n maries = self.cast_from_entity_to_roles(maries_holder)\n rsa_activite = self.cast_from_entity_to_roles(rsa_activite_holder)\n\n conj = or_(en_couple, maries)\n\n rsa_activite_i = self.zeros()\n\n chef_filter = quifam == 0\n rsa_activite_i[chef_filter] = rsa_activite[chef_filter] / (1 + conj[chef_filter])\n partenaire_filter = quifam == 1\n rsa_activite_i[partenaire_filter] = rsa_activite[partenaire_filter] * conj[partenaire_filter] / 2\n return period, rsa_activite_i\n", "input_variables": ["en_couple", "rsa_activite", "quifam", "maries"]}, "stop_instant": null, "start_instant": "2009-06-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressources du Rmi ou du Rsa", "line_number": 236, "module": "rsa", "name": "rsa_base_ressources", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 241, "module": "rsa", "source": "@dated_function(stop = date(2009, 5, 31))\ndef function_rmi(self, simulation, period):\n period = period.this_month\n rsa_base_ressources_prestations_familiales = simulation.calculate('rsa_base_ressources_prestations_familiales', period)\n rsa_base_ressources_minima_sociaux = simulation.calculate('rsa_base_ressources_minima_sociaux', period)\n rsa_base_ressources_i_holder = simulation.compute('rsa_base_ressources_individu', period)\n\n rsa_base_ressources_i_total = self.sum_by_entity(rsa_base_ressources_i_holder)\n return period, rsa_base_ressources_prestations_familiales + rsa_base_ressources_minima_sociaux + rsa_base_ressources_i_total\n", "input_variables": ["rsa_revenu_activite_individu", "est_enfant_dans_famille", "rsa_base_ressources_minima_sociaux", "rsa_base_ressources_prestations_familiales", "rsa_enfant_a_charge", "rsa_base_ressources_individu"]}, "stop_instant": "2009-05-31", "start_instant": null}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 251, "module": "rsa", "source": "@dated_function(start = date(2009, 6, 1))\ndef function_rsa(self, simulation, period):\n period = period.this_month\n rsa_base_ressources_prestations_familiales = simulation.calculate('rsa_base_ressources_prestations_familiales', period)\n rsa_base_ressources_minima_sociaux = simulation.calculate('rsa_base_ressources_minima_sociaux', period)\n\n enfant_i = simulation.calculate('est_enfant_dans_famille', period)\n rsa_enfant_a_charge_i = simulation.calculate('rsa_enfant_a_charge', period)\n ressources_individuelles_i = simulation.calculate('rsa_base_ressources_individu', period) + simulation.calculate('rsa_revenu_activite_individu', period)\n\n ressources_individuelles = self.sum_by_entity(\n (not_(enfant_i) + rsa_enfant_a_charge_i) * ressources_individuelles_i\n )\n\n return period, rsa_base_ressources_prestations_familiales + rsa_base_ressources_minima_sociaux + ressources_individuelles\n", "input_variables": ["rsa_revenu_activite_individu", "est_enfant_dans_famille", "rsa_base_ressources_minima_sociaux", "rsa_base_ressources_prestations_familiales", "rsa_enfant_a_charge", "rsa_base_ressources_individu"]}, "stop_instant": null, "start_instant": "2009-06-01"}]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base ressource individuelle du RSA/RMI (hors revenus d'actvit\u00e9)", "line_number": 268, "module": "rsa", "name": "rsa_base_ressources_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 273, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n three_previous_months = period.last_3_months\n\n r = rsa_ressource_calculator(simulation, period)\n\n # Ressources professionelles\n chomage_net = r.calcule_ressource('chomage_net', revenu_pro = True)\n retraite_nette = r.calcule_ressource('retraite_nette', revenu_pro = True)\n\n pensions_alimentaires_percues = r.calcule_ressource('pensions_alimentaires_percues')\n allocation_aide_retour_emploi = r.calcule_ressource('allocation_aide_retour_emploi')\n allocation_securisation_professionnelle = r.calcule_ressource('allocation_securisation_professionnelle')\n prestation_compensatoire = r.calcule_ressource('prestation_compensatoire')\n retraite_titre_onereux_declarant1 = r.calcule_ressource('retraite_titre_onereux_declarant1')\n revenus_fonciers_minima_sociaux = r.calcule_ressource('revenus_fonciers_minima_sociaux')\n div_ms = r.calcule_ressource('div_ms')\n gains_exceptionnels = r.calcule_ressource('gains_exceptionnels')\n dedommagement_victime_amiante = r.calcule_ressource('dedommagement_victime_amiante')\n pensions_invalidite = r.calcule_ressource('pensions_invalidite')\n rsa_base_ressources_patrimoine_i = r.calcule_ressource('rsa_base_ressources_patrimoine_individu')\n prime_forfaitaire_mensuelle_reprise_activite = r.calcule_ressource('prime_forfaitaire_mensuelle_reprise_activite')\n rev_cap_bar_holder = simulation.compute_add('rev_cap_bar', three_previous_months)\n rev_cap_lib_holder = simulation.compute_add('rev_cap_lib', three_previous_months)\n rev_cap_bar = self.cast_from_entity_to_role(rev_cap_bar_holder, role = VOUS)\n rev_cap_lib = self.cast_from_entity_to_role(rev_cap_lib_holder, role = VOUS)\n\n result = (\n chomage_net + retraite_nette + pensions_alimentaires_percues + retraite_titre_onereux_declarant1 + rev_cap_bar +\n rev_cap_lib + revenus_fonciers_minima_sociaux + div_ms +\n gains_exceptionnels + dedommagement_victime_amiante + pensions_invalidite + allocation_aide_retour_emploi +\n allocation_securisation_professionnelle + prestation_compensatoire +\n rsa_base_ressources_patrimoine_i + prime_forfaitaire_mensuelle_reprise_activite\n ) / 3\n\n return period, result\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Minima sociaux inclus dans la base ressource RSA/RMI", "line_number": 311, "module": "rsa", "name": "rsa_base_ressources_minima_sociaux", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 316, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n three_previous_months = period.last_3_months\n aspa = simulation.calculate('aspa', period)\n asi = simulation.calculate('asi', period)\n ass = simulation.calculate('ass', period)\n aah_holder = simulation.compute_add('aah', three_previous_months)\n caah_holder = simulation.compute_add('caah', three_previous_months)\n\n aah = self.sum_by_entity(aah_holder) / 3\n caah = self.sum_by_entity(caah_holder) / 3\n\n return period, aspa + asi + ass + aah + caah\n", "input_variables": ["ass", "asi", "caah", "aspa", "aah"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base de ressources des revenus du patrimoine du RSA", "line_number": 693, "module": "rsa", "name": "rsa_base_ressources_patrimoine_individu", "start": "2009-06-01", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 699, "module": "rsa", "source": "@dated_function(start = date(2009, 6, 1))\ndef function_2009_(self, simulation, period):\n period = period.this_month\n interets_epargne_sur_livrets = simulation.calculate('interets_epargne_sur_livrets', period)\n epargne_non_remuneree = simulation.calculate('epargne_non_remuneree', period)\n revenus_capital = simulation.calculate('revenus_capital', period)\n valeur_locative_immo_non_loue = simulation.calculate('valeur_locative_immo_non_loue', period)\n valeur_locative_terrains_non_loue = simulation.calculate('valeur_locative_terrains_non_loue', period)\n revenus_locatifs = simulation.calculate('revenus_locatifs', period)\n rsa = simulation.legislation_at(period.start).minim.rmi\n\n return period, (\n interets_epargne_sur_livrets / 12 +\n epargne_non_remuneree * rsa.patrimoine.taux_interet_forfaitaire_epargne_non_remunere / 12 +\n revenus_capital +\n valeur_locative_immo_non_loue * rsa.patrimoine.abattement_valeur_locative_immo_non_loue +\n valeur_locative_terrains_non_loue * rsa.patrimoine.abattement_valeur_locative_terrains_non_loue +\n revenus_locatifs\n )\n", "input_variables": ["interets_epargne_sur_livrets", "revenus_capital", "revenus_locatifs", "valeur_locative_immo_non_loue", "valeur_locative_terrains_non_loue", "epargne_non_remuneree"]}, "stop_instant": null, "start_instant": "2009-06-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prestations familiales inclues dans la base ressource RSA/RMI", "line_number": 331, "module": "rsa", "name": "rsa_base_ressources_prestations_familiales", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 336, "module": "rsa", "source": "@dated_function(date(2002, 1, 1), date(2003, 12, 31))\ndef function_2002(self, simulation, period):\n period = period.this_month\n prestations = [\n 'af_base',\n 'cf',\n 'asf',\n 'apje',\n 'ape',\n ]\n result = sum(simulation.calculate(prestation, period) for prestation in prestations)\n\n return period, result\n"}, "stop_instant": "2003-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 350, "module": "rsa", "source": "@dated_function(start = date(2004, 1, 1), stop = date(2014, 3, 31))\ndef function_2003(self, simulation, period):\n period = period.this_month\n prestations = [\n 'af_base',\n 'cf',\n 'asf',\n 'paje_base',\n 'paje_clca',\n 'paje_prepare',\n 'paje_colca',\n ]\n\n result = sum(simulation.calculate(prestation, period) for prestation in prestations)\n\n return period, result\n"}, "stop_instant": "2014-03-31", "start_instant": "2004-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 367, "module": "rsa", "source": "@dated_function(start = date(2014, 4, 1))\ndef function_2014(self, simulation, period):\n # TODO : Neutraliser les ressources de type prestations familiales quand elles sont interrompues\n period = period.this_month\n\n prestations_calculees = [\n 'af_base',\n 'rsa_forfait_asf',\n 'paje_base',\n ]\n prestations_autres = [\n 'paje_clca',\n 'paje_prepare',\n 'paje_colca',\n ]\n\n result = sum(simulation.calculate(prestation, period) for prestation in prestations_calculees)\n result += sum(simulation.calculate_add(prestation, period.last_3_months) / 3 for prestation in prestations_autres)\n cf_non_majore_avant_cumul = simulation.calculate('cf_non_majore_avant_cumul', period)\n cf = simulation.calculate('cf', period)\n # Seul le montant non major\u00e9 est pris en compte dans la base de ressources du RSA\n cf_non_majore = (cf > 0) * cf_non_majore_avant_cumul\n result = result + cf_non_majore\n\n return period, result\n"}, "stop_instant": null, "start_instant": "2014-04-01"}]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Conditions de nationnalit\u00e9 et de titre de s\u00e9jour pour b\u00e9n\u00e9ficier du RSA", "line_number": 719, "module": "rsa", "name": "rsa_condition_nationalite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 724, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n ressortissant_eee = simulation.calculate('ressortissant_eee', period)\n duree_possession_titre_sejour= simulation.calculate('duree_possession_titre_sejour', period)\n duree_min_titre_sejour = simulation.legislation_at(period.start).minim.rmi.duree_min_titre_sejour\n\n return period, or_(ressortissant_eee, duree_possession_titre_sejour >= duree_min_titre_sejour)\n", "input_variables": ["duree_possession_titre_sejour", "ressortissant_eee"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Eligibilit\u00e9 au RSA", "line_number": 733, "module": "rsa", "name": "rsa_eligibilite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 738, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n age_holder = simulation.compute('age', period)\n age_parents = self.split_by_roles(age_holder, roles = [CHEF, PART])\n activite_holder = simulation.compute('activite', period)\n activite_parents = self.split_by_roles(activite_holder, roles = [CHEF, PART])\n rsa_nb_enfants = simulation.calculate('rsa_nb_enfants', period)\n rsa_eligibilite_tns = simulation.calculate('rsa_eligibilite_tns', period)\n rsa_condition_nationalite = simulation.compute('rsa_condition_nationalite', period)\n condition_nationalite = self.any_by_roles(rsa_condition_nationalite, roles = [CHEF, PART])\n rmi = simulation.legislation_at(period.start).minim.rmi\n age_min = (rsa_nb_enfants == 0) * rmi.age_pac\n\n eligib = (\n (age_parents[CHEF] >= age_min) * not_(activite_parents[CHEF] == 2) +\n (age_parents[PART] >= age_min) * not_(activite_parents[PART] == 2)\n )\n eligib = eligib * (\n condition_nationalite *\n rsa_eligibilite_tns\n )\n\n return period, eligib\n", "input_variables": ["rsa_nb_enfants", "age", "activite", "rsa_condition_nationalite", "rsa_eligibilite_tns"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Eligibilit\u00e9 au RSA pour un travailleur non salari\u00e9", "line_number": 763, "module": "rsa", "name": "rsa_eligibilite_tns", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 768, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n last_year = period.last_year\n\n tns_benefice_exploitant_agricole_holder = simulation.compute('tns_benefice_exploitant_agricole', last_year)\n tns_benefice_exploitant_agricole = self.sum_by_entity(tns_benefice_exploitant_agricole_holder)\n tns_employe_holder = simulation.compute('tns_avec_employe', period)\n tns_avec_employe = self.any_by_roles(tns_employe_holder)\n tns_autres_revenus_chiffre_affaires_holder = simulation.compute('tns_autres_revenus_chiffre_affaires', last_year)\n tns_autres_revenus_chiffre_affaires = self.split_by_roles(tns_autres_revenus_chiffre_affaires_holder)\n tns_autres_revenus_type_activite_holder = simulation.compute('tns_autres_revenus_type_activite', period)\n tns_autres_revenus_type_activite = self.split_by_roles(tns_autres_revenus_type_activite_holder)\n\n has_conjoint = simulation.calculate('nb_parents', period) > 1\n rsa_nb_enfants = simulation.calculate('rsa_nb_enfants', period)\n P = simulation.legislation_at(period.start)\n P_agr = P.tns.exploitant_agricole\n P_micro = P.ir.rpns.microentreprise\n maj_2p = P_agr.maj_2p\n maj_1e_2ad = P_agr.maj_1e_2ad\n maj_e_sup = P_agr.maj_e_sup\n\n def eligibilite_agricole(has_conjoint, rsa_nb_enfants, tns_benefice_exploitant_agricole, P_agr):\n plafond_benefice_agricole = P_agr.plafond_rsa * P.cotsoc.gen.smic_h_b\n taux_avec_conjoint = 1 + maj_2p + maj_1e_2ad * (rsa_nb_enfants > 0) + maj_e_sup * max_(rsa_nb_enfants - 1, 0)\n taux_sans_conjoint = 1 + maj_2p * (rsa_nb_enfants > 0) + maj_e_sup * max_(rsa_nb_enfants - 1, 0)\n taux_majoration = has_conjoint * taux_avec_conjoint + (1 - has_conjoint) * taux_sans_conjoint\n plafond_benefice_agricole_majore = taux_majoration * plafond_benefice_agricole\n\n return tns_benefice_exploitant_agricole < plafond_benefice_agricole_majore\n\n def eligibilite_chiffre_affaire(ca, type_activite, P_micro):\n plaf_vente = P_micro.vente.max\n plaf_service = P_micro.servi.max\n\n return ((type_activite == 0) * (ca <= plaf_vente)) + ((type_activite >= 1) * (ca <= plaf_service))\n\n eligibilite_agricole = eligibilite_agricole(\n has_conjoint, rsa_nb_enfants, tns_benefice_exploitant_agricole, P_agr\n )\n eligibilite_chiffre_affaire = (\n eligibilite_chiffre_affaire(\n tns_autres_revenus_chiffre_affaires[CHEF], tns_autres_revenus_type_activite[CHEF], P_micro\n ) *\n eligibilite_chiffre_affaire(\n tns_autres_revenus_chiffre_affaires[PART], tns_autres_revenus_type_activite[PART], P_micro\n )\n )\n\n return period, eligibilite_agricole * (1 - tns_avec_employe) * eligibilite_chiffre_affaire\n", "input_variables": ["tns_autres_revenus_chiffre_affaires", "tns_benefice_exploitant_agricole", "tns_avec_employe", "nb_parents", "rsa_nb_enfants", "tns_autres_revenus_type_activite"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Enfant pris en compte dans le calcul du RSA", "line_number": 450, "module": "rsa", "name": "rsa_enfant_a_charge", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 455, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n\n P_rsa = simulation.legislation_at(period.start).minim.rmi\n\n enfant = simulation.calculate('est_enfant_dans_famille', period)\n age = simulation.calculate('age', period)\n autonomie_financiere = simulation.calculate('autonomie_financiere', period)\n ressources = simulation.calculate('rsa_base_ressources_individu', period) + (1 - P_rsa.pente) * simulation.calculate('rsa_revenu_activite_individu', period)\n\n\n # R\u00e8gle CAF: Si un enfant touche des ressources, et que son impact global (augmentation du montant forfaitaire - ressources prises en compte) fait baisser le montant du RSA, alors il doit \u00eatre exclu du calcul du RSA.\n # Cette r\u00e8gle est complexe, on applique donc l'approximation suivante:\n # - Cas g\u00e9n\u00e9ral: enfant pris en compte si ressources <= augmentation du MF pour un enfant suppl\u00e9mentaire (taux marginal).\n # - Si la pr\u00e9sence de l'enfant ouvre droit au RSA major\u00e9, pris en compte si ressources <= majoration du RSA pour isolement avec un enfant.\n\n def ouvre_droit_majoration():\n enceinte_fam = simulation.calculate('enceinte_fam', period)\n isole = not_(simulation.calculate('en_couple', period))\n isolement_recent = simulation.calculate('rsa_isolement_recent', period)\n presence_autres_enfants = self.sum_by_entity(enfant * not_(autonomie_financiere) * (age <= P_rsa.age_pac), entity = \"famille\") > 1\n\n return self.cast_from_entity_to_roles(not_(enceinte_fam) * isole * isolement_recent * not_(presence_autres_enfants), entity = 'famille')\n\n return period, (\n enfant * not_(autonomie_financiere) *\n (age <= P_rsa.age_pac) *\n where(ouvre_droit_majoration(),\n ressources < (P_rsa.majo_rsa.pac0 - 1 + P_rsa.majo_rsa.pac_enf_sup) * P_rsa.rmi,\n ressources < P_rsa.txps * P_rsa.rmi\n )\n )\n", "input_variables": ["rsa_revenu_activite_individu", "est_enfant_dans_famille", "enceinte_fam", "age", "en_couple", "autonomie_financiere", "rsa_isolement_recent", "rsa_base_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de soutien familial forfaitis\u00e9e pour le RSA", "line_number": 820, "module": "rsa", "name": "rsa_forfait_asf", "start": "2014-04-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 826, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n # Si un ASF est vers\u00e9, on ne prend pas en compte le montant r\u00e9el mais un forfait.\n asf_verse = simulation.calculate('asf', period) > 0\n rsa_forfait_asf_i_holder = simulation.compute('rsa_forfait_asf_individu', period)\n montant = self.sum_by_entity(rsa_forfait_asf_i_holder, roles = ENFS)\n\n return period, asf_verse * montant\n", "input_variables": ["rsa_forfait_asf_individu", "asf"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "RSA - Montant individuel de forfait ASF", "line_number": 836, "module": "rsa", "name": "rsa_forfait_asf_individu", "start": "2014-04-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 842, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n\n asf_elig_enfant = simulation.calculate('asf_elig_enfant', period)\n pfam = simulation.legislation_at(period.start).fam\n minim = simulation.legislation_at(period.start).minim\n\n return period, asf_elig_enfant * pfam.af.bmaf * minim.rmi.forfait_asf.taux1\n", "input_variables": ["asf_elig_enfant"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Forfait logement intervenant dans le calcul du Rmi ou du Rsa", "line_number": 852, "module": "rsa", "name": "rsa_forfait_logement", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 857, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n\n forf_logement = simulation.legislation_at(period.start).minim.rmi.forfait_logement\n rmi = simulation.legislation_at(period.start).minim.rmi.rmi\n\n nb_pac = simulation.calculate('nb_parents', period) + simulation.calculate('rsa_nb_enfants', period)\n aide_logement = simulation.calculate('aide_logement', period)\n\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n\n participation_frais_holder = simulation.compute('participation_frais', period)\n participation_frais = self.cast_from_entity_to_roles(participation_frais_holder)\n participation_frais = self.filter_role(participation_frais, role = CHEF)\n\n loyer_holder = simulation.compute('loyer', period)\n loyer = self.cast_from_entity_to_roles(loyer_holder)\n loyer = self.filter_role(loyer, role = CHEF)\n\n avantage_nature = or_(\n (statut_occupation_logement == 2) * not_(loyer),\n (statut_occupation_logement == 6) * (1 - participation_frais)\n )\n\n avantage_al = aide_logement > 0\n\n montant_forfait = rmi * (\n (nb_pac == 1) * forf_logement.taux1 +\n (nb_pac == 2) * forf_logement.taux2 +\n (nb_pac >= 3) * forf_logement.taux3\n )\n\n montant_al = avantage_al * min_(aide_logement, montant_forfait)\n montant_nature = avantage_nature * montant_forfait\n\n return period, max_(montant_al, montant_nature)\n", "input_variables": ["statut_occupation_logement_famille", "aide_logement", "loyer", "nb_parents", "participation_frais", "rsa_nb_enfants"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Situation d'isolement depuis moins de 18 mois", "line_number": 895, "module": "rsa", "name": "rsa_isolement_recent"}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu de solidarit\u00e9 active - major\u00e9", "line_number": 900, "module": "rsa", "name": "rsa_majore", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 905, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n rsa_socle_majore = simulation.calculate('rsa_socle_majore', period)\n rsa_revenu_activite = simulation.calculate('rsa_revenu_activite', period)\n rsa_forfait_logement = simulation.calculate('rsa_forfait_logement', period)\n rsa_base_ressources = simulation.calculate('rsa_base_ressources', period)\n P = simulation.legislation_at(period.start).minim.rmi\n\n base_normalise = max_(rsa_socle_majore - rsa_forfait_logement - rsa_base_ressources + P.pente * rsa_revenu_activite, 0)\n\n return period, base_normalise * (base_normalise >= P.rsa_nv)\n", "input_variables": ["rsa_base_ressources", "rsa_socle_majore", "rsa_revenu_activite", "rsa_forfait_logement"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Eligibilit\u00e9 au RSA major\u00e9 pour parent isol\u00e9", "line_number": 917, "module": "rsa", "name": "rsa_majore_eligibilite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 922, "module": "rsa", "source": "def function(self, simulation, period):\n\n def has_enfant_moins_3_ans():\n age_holder = simulation.compute('age', period)\n autonomie_financiere_holder = simulation.compute('autonomie_financiere', period)\n age_enf = self.split_by_roles(age_holder, roles = ENFS)\n autonomie_financiere_enf = self.split_by_roles(autonomie_financiere_holder, roles = ENFS)\n nbenf = nb_enf(age_enf, autonomie_financiere_enf, 0, 2)\n\n return nbenf > 0\n\n period = period.this_month\n isole = not_(simulation.calculate('en_couple', period))\n isolement_recent = simulation.calculate('rsa_isolement_recent', period)\n enfant_moins_3_ans = has_enfant_moins_3_ans()\n enceinte_fam = simulation.calculate('enceinte_fam', period)\n nbenf = simulation.calculate('rsa_nb_enfants', period)\n rsa_eligibilite_tns = simulation.calculate('rsa_eligibilite_tns', period)\n eligib = (\n isole *\n (enceinte_fam | (nbenf > 0)) *\n (enfant_moins_3_ans | isolement_recent | enceinte_fam) *\n rsa_eligibilite_tns\n )\n\n return period, eligib\n", "input_variables": ["en_couple", "age", "autonomie_financiere", "rsa_isolement_recent"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre d'enfants pris en compte pour le calcul du RSA", "line_number": 488, "module": "rsa", "name": "rsa_nb_enfants", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 493, "module": "rsa", "source": "def function(self, simulation, period):\n\n return period, self.sum_by_entity(simulation.compute('rsa_enfant_a_charge', period))\n", "input_variables": ["rsa_enfant_a_charge"]}}, {"@type": "Enumeration", "default": "0", "entity": "familles", "label": "RSA non calculable", "line_number": 950, "module": "rsa", "name": "rsa_non_calculable", "labels": {"0": "", "1": "tns", "2": "conjoint_tns"}, "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 962, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n\n # Si le montant du RSA est nul sans tenir compte des revenus\n # TNS pouvant provoquer une non calculabilit\u00e9 (parce que\n # les autres revenus sont trop importants), alors a fortiori\n # la famille ne sera pas \u00e9ligible au RSA en tenant compte de\n # ces ressources. Il n'y a donc pas non calculabilit\u00e9.\n eligible_rsa = (\n simulation.calculate('rsa_majore', period) +\n simulation.calculate('rsa_non_majore', period)\n ) > 0\n non_calculable_tns_holder = simulation.compute('rsa_non_calculable_tns_individu', period)\n non_calculable_tns_parents = self.split_by_roles(non_calculable_tns_holder, roles = [CHEF, PART])\n non_calculable = select(\n [non_calculable_tns_parents[CHEF] > 0, non_calculable_tns_parents[PART] > 0],\n [1, 2]\n )\n non_calculable = eligible_rsa * non_calculable\n\n return period, non_calculable\n", "input_variables": ["rsa_majore", "rsa_non_majore", "rsa_non_calculable_tns_individu"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "RSA non calculable du fait de la situation de l'individu. Dans le cas des TNS, l'utilisateur est renvoy\u00e9 vers son PCG", "line_number": 985, "module": "rsa", "name": "rsa_non_calculable_tns_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 990, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n this_year_and_last_year = period.start.offset('first-of', 'year').period('year', 2).offset(-1)\n tns_benefice_exploitant_agricole = simulation.calculate_add('tns_benefice_exploitant_agricole', this_year_and_last_year)\n tns_micro_entreprise_chiffre_affaires = simulation.calculate_add('tns_micro_entreprise_chiffre_affaires', this_year_and_last_year)\n tns_autres_revenus = simulation.calculate_add('tns_autres_revenus', this_year_and_last_year)\n\n return period, (\n (tns_benefice_exploitant_agricole > 0) + (tns_micro_entreprise_chiffre_affaires > 0) +\n (tns_autres_revenus > 0)\n )\n", "input_variables": ["tns_micro_entreprise_chiffre_affaires", "tns_benefice_exploitant_agricole", "tns_autres_revenus"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu de solidarit\u00e9 active - non major\u00e9", "line_number": 1003, "module": "rsa", "name": "rsa_non_majore", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1008, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n rsa_socle = simulation.calculate('rsa_socle', period)\n rsa_revenu_activite = simulation.calculate('rsa_revenu_activite', period)\n rsa_forfait_logement = simulation.calculate('rsa_forfait_logement', period)\n rsa_base_ressources = simulation.calculate('rsa_base_ressources', period)\n P = simulation.legislation_at(period.start).minim.rmi\n\n base_normalise = max_(rsa_socle - rsa_forfait_logement - rsa_base_ressources + P.pente * rsa_revenu_activite, 0)\n\n return period, base_normalise * (base_normalise >= P.rsa_nv)\n", "input_variables": ["rsa_base_ressources", "rsa_socle", "rsa_revenu_activite", "rsa_forfait_logement"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenus d'activit\u00e9 du RSA", "line_number": 537, "module": "rsa", "name": "rsa_revenu_activite", "start": "2009-06-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 543, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n rsa_revenu_activite_i = simulation.calculate('rsa_revenu_activite_individu', period)\n rsa_enfant_a_charge_i = simulation.calculate('rsa_enfant_a_charge', period)\n enfant_i = simulation.calculate('est_enfant_dans_famille', period)\n\n return period, self.sum_by_entity(\n (not_(enfant_i) + rsa_enfant_a_charge_i) * rsa_revenu_activite_i\n )\n", "input_variables": ["rsa_revenu_activite_individu", "est_enfant_dans_famille", "rsa_enfant_a_charge"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenus d'activit\u00e9 du Rsa - Individuel", "line_number": 553, "module": "rsa", "name": "rsa_revenu_activite_individu", "start": "2009-06-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 559, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n\n r = rsa_ressource_calculator(simulation, period)\n\n salaire_net = r.calcule_ressource('salaire_net', revenu_pro = True)\n indemnites_journalieres = r.calcule_ressource('indemnites_journalieres', revenu_pro = True)\n indemnites_chomage_partiel = r.calcule_ressource('indemnites_chomage_partiel', revenu_pro = True)\n indemnites_volontariat = r.calcule_ressource('indemnites_volontariat', revenu_pro = True)\n revenus_stage_formation_pro = r.calcule_ressource('revenus_stage_formation_pro', revenu_pro = True)\n indemnites_stage = r.calcule_ressource('indemnites_stage', revenu_pro = True)\n bourse_recherche = r.calcule_ressource('bourse_recherche', revenu_pro = True)\n hsup = r.calcule_ressource('hsup', revenu_pro = True)\n etr = r.calcule_ressource('etr', revenu_pro = True)\n\n # Ressources TNS\n\n # WARNING : D'apr\u00e8s les caisses, le revenu pris en compte pour les AE pour le RSA ne prend en compte que\n # l'abattement standard sur le CA, mais pas les cotisations pour charges sociales. Dans l'attente d'une\n # \u00e9ventuelle correction, nous impl\u00e9mentons selon leurs instructions. Si changement, il suffira de remplacer le\n # tns_auto_entrepreneur_benefice par tns_auto_entrepreneur_revenus_net\n tns_auto_entrepreneur_revenus_rsa = r.calcule_ressource('tns_auto_entrepreneur_benefice', revenu_pro = True)\n\n result = (\n salaire_net + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat +\n revenus_stage_formation_pro + indemnites_stage + bourse_recherche + hsup + etr +\n tns_auto_entrepreneur_revenus_rsa\n ) / 3\n\n return period, result\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "RSA socle", "line_number": 1057, "module": "rsa", "name": "rsa_socle", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1062, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n nb_parents = simulation.calculate('nb_parents', period)\n eligib = simulation.calculate('rsa_eligibilite', period)\n rsa_nb_enfants = simulation.calculate('rsa_nb_enfants', period)\n rmi = simulation.legislation_at(period.start).minim.rmi\n\n nb_personnes = nb_parents + rsa_nb_enfants\n\n taux = (\n 1 +\n (nb_personnes >= 2) * rmi.txp2 +\n (nb_personnes >= 3) * rmi.txp3 +\n (nb_personnes >= 4) * where(nb_parents == 1, rmi.txps, rmi.txp3) + # Si nb_parents == 1, pas de conjoint, la 4e personne est un enfant, donc le taux est de 40%.\n max_(nb_personnes - 4, 0) * rmi.txps\n )\n return period, eligib * rmi.rmi * taux\n", "input_variables": ["rsa_nb_enfants", "nb_parents", "rsa_eligibilite"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Majoration pour parent isol\u00e9 du Revenu de solidarit\u00e9 active socle", "line_number": 1081, "module": "rsa", "name": "rsa_socle_majore", "start": "2009-06-01", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 1087, "module": "rsa", "source": "def function(self, simulation, period):\n period = period.this_month\n rmi = simulation.legislation_at(period.start).minim.rmi\n eligib = simulation.calculate('rsa_majore_eligibilite', period)\n nbenf = simulation.calculate('rsa_nb_enfants', period)\n taux = rmi.majo_rsa.pac0 + rmi.majo_rsa.pac_enf_sup * nbenf\n return period, eligib * rmi.rmi * taux\n", "input_variables": ["rsa_nb_enfants", "rsa_majore_eligibilite"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prime Pour l'Activit\u00e9", "line_number": 284, "module": "ppa", "name": "ppa", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 289, "module": "ppa", "source": "@dated_function(start = date(2016, 1, 1))\ndef function(self, simulation, period):\n period = period.this_month\n seuil_non_versement = simulation.legislation_at(period.start).minim.ppa.seuil_non_versement\n # \u00e9ligibilit\u00e9 \u00e9tudiants\n\n ppa_eligibilite_etudiants = simulation.calculate('ppa_eligibilite_etudiants', period)\n m_1 = period.last_month\n m_2 = m_1.last_month\n m_3 = m_2.last_month\n ppa = sum(simulation.calculate('ppa_fictive', period2, extra_params = [period])\n for period2 in [m_1, m_2, m_3]) / 3\n ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement)\n\n return period, ppa\n", "input_variables": ["ppa_eligibilite_etudiants"]}, "stop_instant": null, "start_instant": "2016-01-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Bases ressource prise en compte pour la PPA", "line_number": 215, "module": "ppa", "name": "ppa_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 220, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n ppa_revenu_activite = simulation.calculate('ppa_revenu_activite', period, extra_params = [reference_period])\n ppa_ressources_hors_activite = simulation.calculate('ppa_ressources_hors_activite', period, extra_params = [reference_period])\n return period, ppa_revenu_activite + ppa_ressources_hors_activite\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prestations familiales prises en compte dans le calcul de la PPA", "line_number": 186, "module": "ppa", "name": "ppa_base_ressources_prestations_familiales", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 191, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n\n prestations_calculees = [\n 'af_base',\n 'rsa_forfait_asf',\n 'paje_base',\n ]\n prestations_autres = [\n 'paje_clca',\n 'paje_prepare',\n 'paje_colca',\n ]\n\n result = sum(simulation.calculate(prestation, reference_period) for prestation in prestations_calculees)\n result += sum(simulation.calculate(prestation, period) for prestation in prestations_autres)\n cf_non_majore_avant_cumul = simulation.calculate('cf_non_majore_avant_cumul', reference_period)\n cf = simulation.calculate('cf', reference_period)\n # Seul le montant non major\u00e9 est pris en compte dans la base de ressources du RSA\n cf_non_majore = (cf > 0) * cf_non_majore_avant_cumul\n result = result + cf_non_majore\n\n return period, result\n"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Bonification de la PPA pour un individu", "line_number": 226, "module": "ppa", "name": "ppa_bonification", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 231, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n P = simulation.legislation_at(reference_period.start)\n smic_horaire = P.cotsoc.gen.smic_h_b\n rsa_base = P.minim.rmi.rmi\n revenu_activite = simulation.calculate('ppa_revenu_activite_individu', period, extra_params = [reference_period])\n seuil_1 = P.minim.ppa.bonification.seuil_1 * smic_horaire\n seuil_2 = P.minim.ppa.bonification.seuil_2 * smic_horaire\n bonification_max = round_(P.minim.ppa.bonification.montant_max * rsa_base)\n\n bonification = bonification_max * (revenu_activite - seuil_1) / (seuil_2 - seuil_1)\n bonification = max_(bonification, 0)\n bonification = min_(bonification, bonification_max)\n\n return period, bonification\n"}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Eligibilit\u00e9 \u00e0 la PPA pour un mois", "line_number": 9, "module": "ppa", "name": "ppa_eligibilite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 14, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n P = simulation.legislation_at(reference_period.start)\n age_min = P.minim.ppa.age_min\n condition_age_individus = simulation.calculate('age', period) >= age_min\n condition_age = self.any_by_roles(condition_age_individus)\n elig = condition_age\n\n return period, elig\n"}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Eligibilit\u00e9 \u00e0 la PPA (condition sur tout le trimestre)", "line_number": 24, "module": "ppa", "name": "ppa_eligibilite_etudiants", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 29, "module": "ppa", "source": "def function(self, simulation, period):\n P = simulation.legislation_at(period.start)\n period = period.this_month\n ppa_majoree_eligibilite = simulation.calculate('rsa_majore_eligibilite', period)\n\n # Pour un individu\n etudiant = simulation.calculate('etudiant', period) # individu\n plancher_ressource = 169 * P.cotsoc.gen.smic_h_b * P.fam.af.seuil_rev_taux\n def condition_ressource(period2):\n revenu_activite = simulation.calculate('ppa_revenu_activite_individu', period2, extra_params = [period])\n return revenu_activite > plancher_ressource\n m_1 = period.offset(-1, 'month')\n m_2 = period.offset(-2, 'month')\n m_3 = period.offset(-3, 'month')\n condition_etudiant_i = condition_ressource(m_1) * condition_ressource(m_2) * condition_ressource(m_3)\n\n # Au moins une personne de la famille doit \u00eatre non \u00e9tudiant ou avoir des ressources > plancher\n condition_famille = self.any_by_roles(not_(etudiant) + condition_etudiant_i, roles = [CHEF, CONJ])\n return period, ppa_majoree_eligibilite + condition_famille\n", "input_variables": ["ppa_revenu_activite_individu", "etudiant", "rsa_majore_eligibilite"], "parameters": ["fam.af.seuil_rev_taux", "cotsoc.gen.smic_h_b"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Prime pour l'activit\u00e9 fictive pour un mois", "line_number": 247, "module": "ppa", "name": "ppa_fictive", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 252, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n forfait_logement = simulation.calculate('rsa_forfait_logement', reference_period)\n ppa_majoree_eligibilite = simulation.calculate('rsa_majore_eligibilite', reference_period)\n\n elig = simulation.calculate('ppa_eligibilite', period, extra_params = [reference_period])\n pente = simulation.legislation_at(reference_period.start).minim.ppa.pente\n mff_non_majore = simulation.calculate('ppa_montant_forfaitaire_familial_non_majore', period, extra_params = [reference_period])\n mff_majore = simulation.calculate('ppa_montant_forfaitaire_familial_majore', period, extra_params = [reference_period])\n montant_forfaitaire_familialise = where(ppa_majoree_eligibilite, mff_majore, mff_non_majore)\n ppa_base_ressources = simulation.calculate('ppa_base_ressources', period, extra_params = [reference_period])\n ppa_revenu_activite = simulation.calculate('ppa_revenu_activite', period, extra_params = [reference_period])\n bonification_individus = simulation.compute('ppa_bonification', period, extra_params = [reference_period])\n bonification = self.sum_by_entity(bonification_individus)\n\n ppa_montant_base = (\n montant_forfaitaire_familialise +\n bonification +\n pente * ppa_revenu_activite - ppa_base_ressources\n - forfait_logement\n )\n\n ppa_deduction = (\n montant_forfaitaire_familialise\n - ppa_base_ressources\n - forfait_logement\n )\n\n ppa_fictive = ppa_montant_base - max_(ppa_deduction,0)\n ppa_fictive = max_(ppa_fictive, 0)\n return period, elig * ppa_fictive\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant forfaitaire familial (avec majoration)", "line_number": 72, "module": "ppa", "name": "ppa_montant_forfaitaire_familial_majore", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 77, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n nb_enfants = simulation.calculate('rsa_nb_enfants', period)\n rmi = simulation.legislation_at(reference_period.start).minim.rmi\n taux_majore = rmi.majo_rsa.pac0 + rmi.majo_rsa.pac_enf_sup * nb_enfants\n\n return period, rmi.rmi * taux_majore\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant forfaitaire familial (sans majoration)", "line_number": 49, "module": "ppa", "name": "ppa_montant_forfaitaire_familial_non_majore", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 54, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n nb_parents = simulation.calculate('nb_parents', period)\n nb_enfants = simulation.calculate('rsa_nb_enfants', period)\n ppa_majoree_eligibilite = simulation.calculate('rsa_majore_eligibilite', period)\n rmi = simulation.legislation_at(reference_period.start).minim.rmi\n nb_personnes = nb_parents + nb_enfants\n\n taux_non_majore = (\n 1 +\n (nb_personnes >= 2) * rmi.txp2 +\n (nb_personnes >= 3) * rmi.txp3 +\n (nb_personnes >= 4) * where(nb_parents == 1, rmi.txps, rmi.txp3) + # Si nb_parents == 1, pas de conjoint, la 4e personne est un enfant, donc le taux est de 40%.\n max_(nb_personnes - 4, 0) * rmi.txps\n )\n\n return period, rmi.rmi * taux_non_majore\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu hors activit\u00e9 pris en compte pour la PPA", "line_number": 136, "module": "ppa", "name": "ppa_ressources_hors_activite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 141, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n pf = simulation.calculate('ppa_base_ressources_prestations_familiales', period, extra_params = [reference_period])\n ressources_hors_activite_individus = simulation.compute('ppa_ressources_hors_activite_individu', period, extra_params = [reference_period])\n ressources = [\n 'ass',\n 'asi',\n 'aspa'\n ]\n\n ressources_hors_activite = self.sum_by_entity(ressources_hors_activite_individus) + pf + sum(\n simulation.calculate(ressource, reference_period) for ressource in ressources)\n\n return period, ressources_hors_activite\n"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu hors activit\u00e9 pris en compte pour la PPA (Individus) pour un mois", "line_number": 155, "module": "ppa", "name": "ppa_ressources_hors_activite_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 160, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n P = simulation.legislation_at(reference_period.start)\n smic_horaire = P.cotsoc.gen.smic_h_b\n\n ressources = [\n 'chomage_net',\n 'retraite_nette',\n 'retraite_combattant',\n 'pensions_invalidite',\n 'pensions_alimentaires_percues',\n 'prestation_compensatoire',\n 'revenus_locatifs',\n 'prime_forfaitaire_mensuelle_reprise_activite',\n ]\n\n ressources_hors_activite_i = sum(\n simulation.calculate(ressource, period) for ressource in ressources)\n revenus_activites = simulation.calculate('ppa_revenu_activite_individu', period, extra_params = [reference_period])\n\n # L'aah est pris en compte comme revenu d'activit\u00e9 si revenu d'activit\u00e9 hors aah > 29 * smic horaire brut\n seuil_aah_activite = P.minim.ppa.seuil_aah_activite * smic_horaire\n aah_hors_activite = (revenus_activites < seuil_aah_activite) * simulation.calculate('aah', period)\n\n return period, ressources_hors_activite_i + aah_hors_activite\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Revenu d'activit\u00e9 pris en compte pour la PPA", "line_number": 84, "module": "ppa", "name": "ppa_revenu_activite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 89, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n ppa_revenu_activite_individus = simulation.compute('ppa_revenu_activite_individu', period, extra_params = [reference_period])\n ppa_revenu_activite = self.sum_by_entity(ppa_revenu_activite_individus)\n\n return period, ppa_revenu_activite\n"}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Revenu d'activit\u00e9 pris en compte pour la PPA (Individus) pour un mois", "line_number": 96, "module": "ppa", "name": "ppa_revenu_activite_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 101, "module": "ppa", "source": "def function(self, simulation, period, reference_period):\n period = period.this_month\n P = simulation.legislation_at(reference_period.start)\n smic_horaire = P.cotsoc.gen.smic_h_b\n\n ressources = [\n 'salaire_net',\n 'revenus_stage_formation_pro',\n 'bourse_recherche',\n 'indemnites_chomage_partiel',\n 'indemnites_journalieres',\n 'tns_auto_entrepreneur_benefice',\n ]\n\n revenus_mensualises = sum(\n simulation.calculate(ressource, period) for ressource in ressources)\n\n def get_last_known(variable_name):\n valeur_n = simulation.calculate(variable_name, period.this_year)\n valeur_n_1 = simulation.calculate(variable_name, period.last_year)\n valeur_n_2 = simulation.calculate(variable_name, period.n_2)\n return select(\n [valeur_n > 0, valeur_n_1 > 0, valeur_n_2 > 0],\n [valeur_n, valeur_n_1, valeur_n_2]\n ) / 12\n revenus_annualises = get_last_known('tns_benefice_exploitant_agricole') + get_last_known('tns_autres_revenus') + get_last_known('tns_micro_entreprise_benefice')\n\n revenus_activites = revenus_mensualises + revenus_annualises\n\n # L'aah est pris en compte comme revenu d'activit\u00e9 si revenu d'activit\u00e9 hors aah > 29 * smic horaire brut\n seuil_aah_activite = P.minim.ppa.seuil_aah_activite * smic_horaire\n aah_activite = (revenus_activites >= seuil_aah_activite) * simulation.calculate('aah', period)\n\n return period, revenus_activites + aah_activite\n"}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant (mensuel) de l'ACS", "line_number": 314, "module": "cmu", "name": "acs", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 319, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n\n cmu_c = simulation.calculate('cmu_c', period)\n cmu_base_ressources = simulation.calculate('cmu_base_ressources', period)\n acs_plafond = simulation.calculate('acs_plafond', period)\n acs_montant = simulation.calculate('acs_montant', period)\n residence_mayotte = simulation.calculate('residence_mayotte', period)\n\n return period, not_(residence_mayotte) * not_(cmu_c) * (cmu_base_ressources <= acs_plafond) * acs_montant / 12\n", "input_variables": ["cmu_base_ressources", "cmu_c", "acs_plafond", "acs_montant", "residence_mayotte"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant de l'ACS en cas d'\u00e9ligibilit\u00e9", "line_number": 13, "module": "cmu", "name": "acs_montant", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 18, "module": "cmu", "source": "@dated_function(start = date(2009, 8, 1))\ndef function_2009(self, simulation, period):\n period = period.this_month\n age_holder = simulation.compute('age', period)\n P = simulation.legislation_at(period.start).cmu\n\n ages_couple = self.split_by_roles(age_holder, roles = [CHEF, PART])\n ages_pac = self.split_by_roles(age_holder, roles = ENFS)\n\n return period, ((nb_par_age(ages_couple, 0, 15) + nb_par_age(ages_pac, 0, 15)) * P.acs_moins_16_ans +\n (nb_par_age(ages_couple, 16, 49) + nb_par_age(ages_pac, 16, 25)) * P.acs_16_49_ans +\n nb_par_age(ages_couple, 50, 59) * P.acs_50_59_ans +\n nb_par_age(ages_couple, 60, 200) * P.acs_plus_60_ans)\n", "input_variables": ["age"]}, "stop_instant": null, "start_instant": "2009-08-01"}]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Plafond annuel de ressources pour l'\u00e9ligibilit\u00e9 \u00e0 l'ACS", "line_number": 139, "module": "cmu", "name": "acs_plafond", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 144, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n cmu_c_plafond = simulation.calculate('cmu_c_plafond', period)\n P = simulation.legislation_at(period.start).cmu\n\n return period, cmu_c_plafond * (1 + P.majoration_plafond_acs)\n", "input_variables": ["cmu_c_plafond"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base de ressources prise en compte pour l'\u00e9ligibilit\u00e9 \u00e0 la CMU-C / ACS", "line_number": 221, "module": "cmu", "name": "cmu_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 226, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n previous_year = period.start.period('year').offset(-1)\n aspa = simulation.calculate_add('aspa', previous_year)\n ass = simulation.calculate_add('ass', previous_year)\n asi = simulation.calculate_add('asi', previous_year)\n af = simulation.calculate_add('af', previous_year)\n cf = simulation.calculate_add('cf', previous_year)\n asf = simulation.calculate_add('asf', previous_year)\n paje_clca = simulation.calculate_add('paje_clca', previous_year)\n paje_prepare = simulation.calculate_add('paje_prepare', previous_year)\n aide_logement = simulation.calculate_add('aide_logement', previous_year)\n statut_occupation_logement = simulation.calculate('statut_occupation_logement_famille', period)\n cmu_forfait_logement_base = simulation.calculate('cmu_forfait_logement_base', period)\n cmu_forfait_logement_al = simulation.calculate('cmu_forfait_logement_al', period)\n age_holder = simulation.compute('age', period)\n cmu_base_ressources_i_holder = simulation.compute('cmu_base_ressources_individu', period)\n P = simulation.legislation_at(period.start).cmu\n\n cmu_br_i_par = self.split_by_roles(cmu_base_ressources_i_holder, roles = [CHEF, PART])\n cmu_br_i_pac = self.split_by_roles(cmu_base_ressources_i_holder, roles = ENFS)\n\n age_pac = self.split_by_roles(age_holder, roles = ENFS)\n\n forfait_logement = (((statut_occupation_logement == 2) + (statut_occupation_logement == 6)) * cmu_forfait_logement_base +\n (aide_logement > 0) * min_(cmu_forfait_logement_al, aide_logement))\n\n res = cmu_br_i_par[CHEF] + cmu_br_i_par[PART] + forfait_logement\n\n res += (aspa + ass + asi + af + cf + asf)\n\n res += paje_clca + paje_prepare\n\n for key, age in age_pac.iteritems():\n res += (0 <= age) * (age <= P.age_limite_pac) * cmu_br_i_pac[key]\n\n return period, res\n", "input_variables": ["ass", "statut_occupation_logement_famille", "aspa", "af", "cmu_forfait_logement_base", "paje_clca", "age", "aide_logement", "cf", "paje_prepare", "asf", "cmu_forfait_logement_al", "cmu_base_ressources_individu", "asi"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base de ressources de l'individu prise en compte pour l'\u00e9ligibilit\u00e9 \u00e0 la CMU-C / ACS", "line_number": 152, "module": "cmu", "name": "cmu_base_ressources_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 157, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n # Rolling year\n previous_year = period.start.period('year').offset(-1)\n # N-1\n last_year = period.last_year\n last_month = period.last_month\n\n salaire_net = simulation.calculate_add('salaire_net', previous_year)\n chomage_net = simulation.calculate('chomage_net', previous_year)\n retraite_nette = simulation.calculate('retraite_nette', previous_year)\n pensions_alimentaires_percues = simulation.calculate('pensions_alimentaires_percues', previous_year)\n pensions_alimentaires_versees_individu = simulation.calculate(\n 'pensions_alimentaires_versees_individu', previous_year\n )\n rsa_base_ressources_patrimoine_i = simulation.calculate_add('rsa_base_ressources_patrimoine_individu', previous_year)\n aah = simulation.calculate_add('aah', previous_year)\n indemnites_journalieres = simulation.calculate('indemnites_journalieres', previous_year)\n indemnites_stage = simulation.calculate('indemnites_stage', previous_year)\n revenus_stage_formation_pro_annee = simulation.calculate('revenus_stage_formation_pro', previous_year)\n allocation_securisation_professionnelle = simulation.calculate(\n 'allocation_securisation_professionnelle', previous_year\n )\n prime_forfaitaire_mensuelle_reprise_activite = simulation.calculate(\n 'prime_forfaitaire_mensuelle_reprise_activite', previous_year\n )\n dedommagement_victime_amiante = simulation.calculate('dedommagement_victime_amiante', previous_year)\n prestation_compensatoire = simulation.calculate('prestation_compensatoire', previous_year)\n retraite_combattant = simulation.calculate('retraite_combattant', previous_year)\n pensions_invalidite = simulation.calculate('pensions_invalidite', previous_year)\n indemnites_chomage_partiel = simulation.calculate('indemnites_chomage_partiel', previous_year)\n bourse_enseignement_sup = simulation.calculate('bourse_enseignement_sup', previous_year)\n bourse_recherche = simulation.calculate('bourse_recherche', previous_year)\n gains_exceptionnels = simulation.calculate('gains_exceptionnels', previous_year)\n revenus_stage_formation_pro_last_month = simulation.calculate('revenus_stage_formation_pro', last_month)\n chomage_last_month = simulation.calculate('chomage_net', last_month)\n\n def revenus_tns():\n revenus_auto_entrepreneur = simulation.calculate_add('tns_auto_entrepreneur_benefice', previous_year)\n\n # Les revenus TNS hors AE sont estim\u00e9s en se basant sur le revenu N-1\n tns_micro_entreprise_benefice = simulation.calculate('tns_micro_entreprise_benefice', last_year)\n tns_benefice_exploitant_agricole = simulation.calculate('tns_benefice_exploitant_agricole', last_year)\n tns_autres_revenus = simulation.calculate('tns_autres_revenus', last_year)\n\n return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus\n\n P = simulation.legislation_at(period.start).cmu\n\n # Revenus de stage de formation professionnelle exclus si plus per\u00e7us depuis 1 mois\n revenus_stage_formation_pro = revenus_stage_formation_pro_annee * (revenus_stage_formation_pro_last_month > 0)\n\n # Abattement sur revenus d'activit\u00e9 si ch\u00f4mage ou formation professionnelle\n abattement_chomage_fp = or_(chomage_last_month > 0, revenus_stage_formation_pro_last_month > 0)\n\n return period, ((salaire_net + indemnites_chomage_partiel) * (1 - abattement_chomage_fp * P.abattement_chomage) +\n indemnites_stage + aah + chomage_net + retraite_nette + pensions_alimentaires_percues -\n abs_(pensions_alimentaires_versees_individu) + rsa_base_ressources_patrimoine_i +\n allocation_securisation_professionnelle + indemnites_journalieres +\n prime_forfaitaire_mensuelle_reprise_activite + dedommagement_victime_amiante + prestation_compensatoire +\n retraite_combattant + pensions_invalidite + bourse_enseignement_sup + bourse_recherche +\n gains_exceptionnels + revenus_tns() + revenus_stage_formation_pro)\n", "input_variables": ["pensions_invalidite", "rsa_base_ressources_patrimoine_individu", "dedommagement_victime_amiante", "retraite_combattant", "bourse_enseignement_sup", "chomage_net", "aah", "bourse_recherche", "prime_forfaitaire_mensuelle_reprise_activite", "retraite_nette", "indemnites_stage", "pensions_alimentaires_percues", "gains_exceptionnels", "pensions_alimentaires_versees_individu", "salaire_net", "prestation_compensatoire", "allocation_securisation_professionnelle", "indemnites_chomage_partiel", "revenus_stage_formation_pro", "indemnites_journalieres"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "\u00c9ligibilit\u00e9 \u00e0 la CMU-C", "line_number": 279, "module": "cmu", "name": "cmu_c", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 287, "module": "cmu", "source": "def function(self, simulation, period):\n # Note : Cette variable est calcul\u00e9e pour un an, mais si elle est demand\u00e9e pour une p\u00e9riode plus petite, elle\n # r\u00e9pond pour la p\u00e9riode demand\u00e9e.\n this_month = period.this_month\n this_rolling_year = this_month.start.period('year')\n if period.stop > this_rolling_year.stop:\n period = this_rolling_year\n else:\n period = this_month\n\n cmu_c_plafond = simulation.calculate('cmu_c_plafond', this_month)\n cmu_base_ressources = simulation.calculate('cmu_base_ressources', this_month)\n residence_mayotte = simulation.calculate('residence_mayotte', this_month)\n\n rsa_socle = simulation.calculate('rsa_socle', this_month)\n rsa_socle_majore = simulation.calculate('rsa_socle_majore', this_month)\n rsa_forfait_logement = simulation.calculate('rsa_forfait_logement', this_month)\n rsa_base_ressources = simulation.calculate('rsa_base_ressources', this_month)\n socle = max_(rsa_socle, rsa_socle_majore)\n rsa = simulation.calculate('rsa', this_month)\n\n eligibilite_basique = cmu_base_ressources <= cmu_c_plafond\n eligibilite_rsa = (rsa > 0) * (rsa_base_ressources < socle - rsa_forfait_logement)\n\n return period, not_(residence_mayotte) * or_(eligibilite_basique, eligibilite_rsa)\n", "input_variables": ["cmu_base_ressources", "cmu_c_plafond", "rsa_socle_majore", "rsa_base_ressources", "rsa", "rsa_socle", "rsa_forfait_logement", "residence_mayotte"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Plafond annuel de ressources pour l'\u00e9ligibilit\u00e9 \u00e0 la CMU-C", "line_number": 88, "module": "cmu", "name": "cmu_c_plafond", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 93, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n age_holder = simulation.compute('age', period)\n alt_holder = simulation.compute('garde_alternee', period)\n cmu_eligible_majoration_dom = simulation.calculate('cmu_eligible_majoration_dom', period)\n # cmu_nbp_foyer = simulation.calculate('cmu_nbp_foyer', period)\n P = simulation.legislation_at(period.start).cmu\n\n PAC = [PART] + ENFS\n\n # Calcul du coefficient personnes \u00e0 charge, avec prise en compte de la garde altern\u00e9e\n\n # Tableau des coefficients\n coefficients_array = array(\n [P.coeff_p2, P.coeff_p3_p4, P.coeff_p3_p4] + [P.coeff_p5_plus] * (len(PAC) - 3)\n )\n\n # Tri des personnes \u00e0 charge, le conjoint en premier, les enfants par \u00e2ge d\u00e9croissant\n age_by_role = self.split_by_roles(age_holder, roles = PAC)\n alt_by_role = self.split_by_roles(alt_holder, roles = PAC)\n\n age_and_alt_matrix = array(\n [\n (role == PART) * 10000 + age_by_role[role] * 10 + alt_by_role[role] - (age_by_role[role] < 0) * 999999\n for role in sorted(age_by_role)\n ]\n ).transpose()\n\n # Calcul avec matrices interm\u00e9diaires\n reverse_sorted = partial(sorted, reverse = True)\n\n sorted_age_and_alt_matrix = apply_along_axis(reverse_sorted, 1, age_and_alt_matrix)\n # Calcule weighted_alt_matrix, qui vaut 0.5 pour les enfants en garde altern\u00e9e, 1 sinon.\n sorted_present_matrix = sorted_age_and_alt_matrix >= 0\n sorted_alt_matrix = (sorted_age_and_alt_matrix % 10) * sorted_present_matrix\n weighted_alt_matrix = sorted_present_matrix - sorted_alt_matrix * 0.5\n\n # Calcul final du coefficient\n coeff_pac = weighted_alt_matrix.dot(coefficients_array)\n\n return period, (P.plafond_base *\n (1 + cmu_eligible_majoration_dom * P.majoration_dom) *\n (1 + coeff_pac)\n )\n", "input_variables": ["age", "garde_alternee", "cmu_eligible_majoration_dom"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "line_number": 74, "module": "cmu", "name": "cmu_eligible_majoration_dom", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 78, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n residence_guadeloupe = simulation.calculate('residence_guadeloupe', period)\n residence_martinique = simulation.calculate('residence_martinique', period)\n residence_guyane = simulation.calculate('residence_guyane', period)\n residence_reunion = simulation.calculate('residence_reunion', period)\n\n return period, residence_guadeloupe | residence_martinique | residence_guyane | residence_reunion\n", "input_variables": ["residence_guadeloupe", "residence_guyane", "residence_reunion", "residence_martinique"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Forfait logement applicable en cas d'aide au logement", "line_number": 47, "module": "cmu", "name": "cmu_forfait_logement_al", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 52, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n cmu_nbp_foyer = simulation.calculate('cmu_nbp_foyer', period)\n P = simulation.legislation_at(period.start).cmu.forfait_logement_al\n law_rsa = simulation.legislation_at(period.start).minim.rmi\n\n return period, forfait_logement(cmu_nbp_foyer, P, law_rsa)\n", "input_variables": ["cmu_nbp_foyer"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Forfait logement applicable en cas de propri\u00e9t\u00e9 ou d'occupation \u00e0 titre gratuit", "line_number": 33, "module": "cmu", "name": "cmu_forfait_logement_base", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 38, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n cmu_nbp_foyer = simulation.calculate('cmu_nbp_foyer', period)\n P = simulation.legislation_at(period.start).cmu.forfait_logement\n law_rsa = simulation.legislation_at(period.start).minim.rmi\n\n return period, forfait_logement(cmu_nbp_foyer, P, law_rsa)\n", "input_variables": ["cmu_nbp_foyer"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre de personnes \u00e0 charge au titre de la CMU", "line_number": 265, "module": "cmu", "name": "cmu_nb_pac", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 270, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n age_holder = simulation.compute('age', period)\n P = simulation.legislation_at(period.start).cmu\n\n ages = self.split_by_roles(age_holder, roles = ENFS)\n return period, nb_par_age(ages, 0, P.age_limite_pac)\n", "input_variables": ["age"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre de personnes dans le foyer CMU", "line_number": 61, "module": "cmu", "name": "cmu_nbp_foyer", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 66, "module": "cmu", "source": "def function(self, simulation, period):\n period = period.this_month\n nb_parents = simulation.calculate('nb_parents', period)\n cmu_nb_pac = simulation.calculate('cmu_nb_pac', period)\n\n return period, nb_parents + cmu_nb_pac\n", "input_variables": ["nb_parents", "cmu_nb_pac"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Montant de l'ASS pour une famille", "line_number": 19, "module": "ass", "name": "ass", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 24, "module": "ass", "source": "def function(self, simulation, period):\n period = period.this_month\n\n ass_base_ressources = simulation.calculate('ass_base_ressources', period)\n ass_eligibilite_i_holder = simulation.compute('ass_eligibilite_individu', period)\n en_couple = simulation.calculate('en_couple', period)\n ass_params = simulation.legislation_at(period.start).minim.ass\n\n ass_eligibilite_i = self.split_by_roles(ass_eligibilite_i_holder, roles = [CHEF, PART])\n\n elig = or_(ass_eligibilite_i[CHEF], ass_eligibilite_i[PART])\n montant_journalier = ass_params.montant_plein\n montant_mensuel = 30 * montant_journalier\n plafond_mensuel = montant_journalier * (ass_params.plaf_seul * not_(en_couple) + ass_params.plaf_coup * en_couple)\n revenus = ass_base_ressources / 12\n\n ass = min_(montant_mensuel, plafond_mensuel - revenus)\n ass = max_(ass, 0)\n ass = ass * elig\n ass = ass * not_(ass < ass_params.montant_plein) # pas d'ASS si montant mensuel < montant journalier de base\n\n return period, ass\n", "input_variables": ["en_couple", "ass_base_ressources", "ass_eligibilite_individu"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base de ressources de l'ASS", "line_number": 48, "module": "ass", "name": "ass_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 53, "module": "ass", "source": "def function(self, simulation, period):\n period = period.this_month\n ass_base_ressources_i_holder = simulation.compute('ass_base_ressources_individu', period)\n ass_base_ressources_demandeur = self.filter_role(ass_base_ressources_i_holder, role = CHEF)\n ass_base_ressources_conjoint_holder = simulation.compute('ass_base_ressources_conjoint', period)\n ass_base_ressources_conjoint = self.filter_role(ass_base_ressources_conjoint_holder, role = PART)\n\n result = ass_base_ressources_demandeur + ass_base_ressources_conjoint\n return period, result\n", "input_variables": ["ass_base_ressources_conjoint", "ass_base_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base de ressources individuelle pour le conjoint du demandeur de l'ASS", "line_number": 108, "module": "ass", "name": "ass_base_ressources_conjoint", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 113, "module": "ass", "source": "def function(self, simulation, period):\n period = period.this_month\n last_month = period.start.period('month').offset(-1)\n # Rolling year\n previous_year = period.start.period('year').offset(-1)\n # N-1\n last_year = period.last_year\n\n has_ressources_substitution = (\n simulation.calculate('chomage_net', last_month) +\n simulation.calculate('indemnites_journalieres', last_month) +\n simulation.calculate('retraite_nette', last_month)\n ) > 0\n\n def calculateWithAbatement(ressourceName, neutral_totale = False):\n ressource_year = simulation.calculate_add(ressourceName, previous_year)\n ressource_last_month = simulation.calculate(ressourceName, last_month)\n\n ressource_interrompue = (ressource_year > 0) * (ressource_last_month == 0)\n\n # Les ressources interrompues sont abattues diff\u00e9rement si elles sont substitu\u00e9es ou non.\n # http://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000020398006&cidTexte=LEGITEXT000006072050\n\n tx_abat_partiel = simulation.legislation_at(period.start).minim.ass.abat_rev_subst_conj\n tx_abat_total = simulation.legislation_at(period.start).minim.ass.abat_rev_non_subst_conj\n\n abat_partiel = ressource_interrompue * has_ressources_substitution * (1 - neutral_totale)\n abat_total = ressource_interrompue * (1 - abat_partiel)\n\n tx_abat_applique = abat_partiel * tx_abat_partiel + abat_total * tx_abat_total\n\n return (1 - tx_abat_applique) * ressource_year\n\n salaire_imposable = calculateWithAbatement('salaire_imposable')\n indemnites_stage = calculateWithAbatement('indemnites_stage', neutral_totale = True)\n revenus_stage_formation_pro = calculateWithAbatement('revenus_stage_formation_pro')\n chomage_net = calculateWithAbatement('chomage_net', neutral_totale = True)\n indemnites_journalieres = calculateWithAbatement('indemnites_journalieres')\n aah = calculateWithAbatement('aah')\n retraite_nette = calculateWithAbatement('retraite_nette')\n pensions_alimentaires_percues = calculateWithAbatement('pensions_alimentaires_percues')\n\n def revenus_tns():\n revenus_auto_entrepreneur = simulation.calculate_add('tns_auto_entrepreneur_benefice', previous_year)\n\n # Les revenus TNS hors AE sont estim\u00e9s en se basant sur le revenu N-1\n tns_micro_entreprise_benefice = simulation.calculate('tns_micro_entreprise_benefice', last_year)\n tns_benefice_exploitant_agricole = simulation.calculate('tns_benefice_exploitant_agricole', last_year)\n tns_autres_revenus = simulation.calculate('tns_autres_revenus', last_year)\n\n return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus\n\n pensions_alimentaires_versees_individu = simulation.calculate_add('pensions_alimentaires_versees_individu', previous_year)\n\n result = (\n salaire_imposable + pensions_alimentaires_percues - abs_(pensions_alimentaires_versees_individu) +\n aah + indemnites_stage + revenus_stage_formation_pro + retraite_nette + chomage_net +\n indemnites_journalieres + revenus_tns()\n )\n\n return period, result\n", "input_variables": ["pensions_alimentaires_versees_individu", "retraite_nette", "chomage_net", "salaire_imposable", "indemnites_journalieres"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base de ressources individuelle de l'ASS", "line_number": 64, "module": "ass", "name": "ass_base_ressources_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 69, "module": "ass", "source": "def function(self, simulation, period):\n period = period.this_month\n # Rolling year\n previous_year = period.start.period('year').offset(-1)\n # N-1\n last_year = period.last_year\n\n salaire_imposable = simulation.calculate_add('salaire_imposable', previous_year)\n salaire_imposable_this_month = simulation.calculate('salaire_imposable', period)\n salaire_imposable_interrompu = (salaire_imposable > 0) * (salaire_imposable_this_month == 0)\n # Le Salaire d'une activit\u00e9 partielle est neutralis\u00e9 en cas d'interruption\n salaire_imposable = (1 - salaire_imposable_interrompu) * salaire_imposable\n retraite_nette = simulation.calculate('retraite_nette', previous_year)\n\n def revenus_tns():\n revenus_auto_entrepreneur = simulation.calculate_add('tns_auto_entrepreneur_benefice', previous_year)\n\n # Les revenus TNS hors AE sont estim\u00e9s en se basant sur le revenu N-1\n tns_micro_entreprise_benefice = simulation.calculate('tns_micro_entreprise_benefice', last_year)\n tns_benefice_exploitant_agricole = simulation.calculate('tns_benefice_exploitant_agricole', last_year)\n tns_autres_revenus = simulation.calculate('tns_autres_revenus', last_year)\n\n return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus\n\n pensions_alimentaires_percues = simulation.calculate('pensions_alimentaires_percues', previous_year)\n pensions_alimentaires_versees_individu = simulation.calculate(\n 'pensions_alimentaires_versees_individu', previous_year\n )\n\n aah = simulation.calculate_add('aah', previous_year)\n indemnites_stage = simulation.calculate('indemnites_stage', previous_year)\n revenus_stage_formation_pro = simulation.calculate('revenus_stage_formation_pro', previous_year)\n\n return period, (\n salaire_imposable + retraite_nette + pensions_alimentaires_percues - abs_(pensions_alimentaires_versees_individu) +\n aah + indemnites_stage + revenus_stage_formation_pro + revenus_tns()\n )\n", "input_variables": ["salaire_imposable", "aah", "pensions_alimentaires_percues", "retraite_nette", "indemnites_stage", "pensions_alimentaires_versees_individu", "revenus_stage_formation_pro"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "\u00c9ligibilit\u00e9 individuelle \u00e0 l'ASS", "line_number": 176, "module": "ass", "name": "ass_eligibilite_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 181, "module": "ass", "source": "def function(self, simulation, period):\n period = period.this_month\n\n # 1 si demandeur d'emploi\n activite = simulation.calculate('activite', period)\n\n # Indique que l'user a travaill\u00e9 5 ans au cours des 10 dernieres ann\u00e9es.\n ass_precondition_remplie = simulation.calculate('ass_precondition_remplie', period)\n\n are_perceived_this_month = simulation.calculate('chomage_net', period)\n\n return period, and_(and_(activite == 1, ass_precondition_remplie), are_perceived_this_month == 0)\n", "input_variables": ["activite", "chomage_net", "ass_precondition_remplie"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "\u00c9ligible \u00e0 l'ASS", "line_number": 11, "module": "ass", "name": "ass_precondition_remplie"}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation suppl\u00e9mentaire d'invalidit\u00e9", "line_number": 191, "module": "asi_aspa", "name": "asi", "start": "2007-01-01", "url": "http://vosdroits.service-public.fr/particuliers/F16940.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 199, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n asi_elig_holder = simulation.compute('asi_eligibilite', period)\n aspa_elig_holder = simulation.compute('aspa_eligibilite', period)\n maries = simulation.calculate('maries', period)\n en_couple = simulation.calculate('en_couple', period)\n asi_aspa_nb_alloc = simulation.calculate('asi_aspa_nb_alloc', period)\n base_ressources = simulation.calculate('asi_aspa_base_ressources', period)\n P = simulation.legislation_at(period.start).minim\n\n asi_eligibilite = self.split_by_roles(asi_elig_holder, roles = [CHEF, PART])\n aspa_eligibilite = self.split_by_roles(aspa_elig_holder, roles = [CHEF, PART])\n\n # Un seul \u00e9ligible\n elig1 = ((asi_aspa_nb_alloc == 1) & (asi_eligibilite[CHEF] | asi_eligibilite[PART]))\n # Couple d'\u00e9ligibles mari\u00e9s\n elig2 = asi_eligibilite[CHEF] & asi_eligibilite[PART] & maries\n # Couple d'\u00e9ligibles non mari\u00e9s\n elig3 = asi_eligibilite[CHEF] & asi_eligibilite[PART] & not_(maries)\n # Un seul \u00e9ligible et \u00e9poux \u00e9ligible ASPA\n elig4 = ((asi_eligibilite[CHEF] & aspa_eligibilite[PART]) | (asi_eligibilite[PART] & aspa_eligibilite[CHEF])) & maries\n # Un seul \u00e9ligible et conjoint non mari\u00e9 \u00e9ligible ASPA\n elig5 = ((asi_eligibilite[CHEF] & aspa_eligibilite[PART]) | (asi_eligibilite[PART] & aspa_eligibilite[CHEF])) & not_(maries)\n\n elig = elig1 | elig2 | elig3 | elig4 | elig5\n\n montant_max = (elig1 * P.asi.montant_seul +\n elig2 * P.asi.montant_couple +\n elig3 * 2 * P.asi.montant_seul +\n elig4 * (P.asi.montant_couple / 2 + P.aspa.montant_couple / 2) +\n elig5 * (P.asi.montant_seul + P.aspa.montant_couple / 2)) / 12\n\n ressources = base_ressources + montant_max\n\n plafond_ressources = (elig1 * (P.asi.plaf_seul * not_(en_couple) + P.asi.plaf_couple * en_couple) +\n elig2 * P.asi.plaf_couple +\n elig3 * P.asi.plaf_couple +\n elig4 * P.aspa.plaf_couple +\n elig5 * P.aspa.plaf_couple) / 12\n\n depassement = max_(ressources - plafond_ressources, 0)\n\n diff = ((elig1 | elig2 | elig3) * (montant_max - depassement) +\n elig4 * (P.asi.montant_couple / 12 / 2 - depassement / 2) +\n elig5 * (P.asi.montant_seul / 12 - depassement / 2))\n\n # Montant mensuel servi (sous r\u00e9serve d'\u00e9ligibilit\u00e9)\n montant_servi_asi = max_(diff, 0)\n\n # TODO: Faute de mieux, on verse l'asi \u00e0 la famille plut\u00f4t qu'aux individus\n # asi[CHEF] = asi_eligibilite[CHEF]*montant_servi_asi*(elig1*1 + elig2/2 + elig3/2)\n # asi[PART] = asi_eligibilite[PART]*montant_servi_asi*(elig1*1 + elig2/2 + elig3/2)\n return period, elig * montant_servi_asi\n", "input_variables": ["asi_aspa_nb_alloc", "asi_eligibilite", "asi_aspa_base_ressources", "maries", "en_couple", "aspa_eligibilite"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Base ressource du minimum vieillesse et assimil\u00e9s (ASPA)", "line_number": 106, "module": "asi_aspa", "name": "asi_aspa_base_ressources", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 111, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n asi_aspa_base_ressources_i_holder = simulation.compute('asi_aspa_base_ressources_individu', period)\n ass = simulation.calculate('ass', period)\n\n asi_aspa_base_ressources_i = self.split_by_roles(asi_aspa_base_ressources_i_holder, roles = [CHEF, PART])\n return period, ass + asi_aspa_base_ressources_i[CHEF] + asi_aspa_base_ressources_i[PART]\n", "input_variables": ["ass", "asi_aspa_base_ressources_individu"]}}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Base ressources individuelle du minimum vieillesse/ASPA", "line_number": 21, "module": "asi_aspa", "name": "asi_aspa_base_ressources_individu", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 26, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n last_year = period.last_year\n three_previous_months = period.last_3_months\n\n aspa_eligibilite = simulation.calculate('aspa_eligibilite', period)\n aspa_couple_holder = simulation.compute('aspa_couple', period)\n salaire_de_base = simulation.calculate_add('salaire_de_base', three_previous_months)\n chomage_net = simulation.calculate_add('chomage_net', three_previous_months)\n retraite_brute = simulation.calculate_add('retraite_brute', three_previous_months)\n pensions_alimentaires_percues = simulation.calculate('pensions_alimentaires_percues', three_previous_months)\n pensions_alimentaires_versees_individu = simulation.calculate(\n 'pensions_alimentaires_versees_individu', three_previous_months\n )\n retraite_titre_onereux_declarant1 = simulation.calculate_add('retraite_titre_onereux_declarant1', three_previous_months)\n rpns = simulation.calculate_add_divide('rpns', three_previous_months)\n rev_cap_bar_holder = simulation.compute_add_divide('rev_cap_bar', three_previous_months)\n rev_cap_lib_holder = simulation.compute_add_divide('rev_cap_lib', three_previous_months)\n revenus_fonciers_minima_sociaux = simulation.calculate_add('revenus_fonciers_minima_sociaux', three_previous_months)\n div_ms = simulation.calculate_add('div_ms', three_previous_months)\n revenus_stage_formation_pro = simulation.calculate('revenus_stage_formation_pro', three_previous_months)\n allocation_securisation_professionnelle = simulation.calculate(\n 'allocation_securisation_professionnelle', three_previous_months\n )\n prime_forfaitaire_mensuelle_reprise_activite = simulation.calculate(\n 'prime_forfaitaire_mensuelle_reprise_activite', three_previous_months\n )\n dedommagement_victime_amiante = simulation.calculate('dedommagement_victime_amiante', three_previous_months)\n prestation_compensatoire = simulation.calculate('prestation_compensatoire', three_previous_months)\n pensions_invalidite = simulation.calculate('pensions_invalidite', three_previous_months)\n gains_exceptionnels = simulation.calculate('gains_exceptionnels', three_previous_months)\n indemnites_chomage_partiel = simulation.calculate('indemnites_chomage_partiel', three_previous_months)\n indemnites_journalieres = simulation.calculate('indemnites_journalieres', three_previous_months)\n indemnites_volontariat = simulation.calculate('indemnites_volontariat', three_previous_months)\n\n def revenus_tns():\n revenus_auto_entrepreneur = simulation.calculate_add('tns_auto_entrepreneur_benefice', three_previous_months)\n\n # Les revenus TNS hors AE sont estim\u00e9s en se basant sur le revenu N-1\n tns_micro_entreprise_benefice = simulation.calculate('tns_micro_entreprise_benefice', last_year) * (3 / 12)\n tns_benefice_exploitant_agricole = simulation.calculate('tns_benefice_exploitant_agricole', last_year) * (3 / 12)\n tns_autres_revenus = simulation.calculate('tns_autres_revenus', last_year) * (3 / 12)\n\n return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus\n\n rsa_base_ressources_patrimoine_i = simulation.calculate_add(\n 'rsa_base_ressources_patrimoine_individu', three_previous_months\n )\n aah = simulation.calculate_add('aah', three_previous_months)\n legislation = simulation.legislation_at(period.start)\n leg_1er_janvier = simulation.legislation_at(period.start.offset('first-of', 'year'))\n\n aspa_couple = self.cast_from_entity_to_role(aspa_couple_holder, role = VOUS)\n rev_cap_bar = self.cast_from_entity_to_role(rev_cap_bar_holder, role = VOUS)\n rev_cap_lib = self.cast_from_entity_to_role(rev_cap_lib_holder, role = VOUS)\n\n # Inclus l'AAH si conjoint non pensionn\u00e9 ASPA, retraite et pension invalidit\u00e9\n # FIXME Il faudrait v\u00e9rifier que le conjoint est pensionn\u00e9 ASPA, pas qu'il est juste \u00e9ligible !\n aah = aah * not_(aspa_eligibilite)\n\n # Abattement sur les salaires (appliqu\u00e9 sur une base trimestrielle)\n abattement_forfaitaire_base = (\n leg_1er_janvier.cotsoc.gen.smic_h_b * legislation.cotsoc.gen.nb_heure_travail_mensuel\n )\n abattement_forfaitaire_taux = (aspa_couple * legislation.minim.aspa.abattement_forfaitaire_tx_couple +\n not_(aspa_couple) * legislation.minim.aspa.abattement_forfaitaire_tx_seul\n )\n abattement_forfaitaire = abattement_forfaitaire_base * abattement_forfaitaire_taux\n salaire_de_base = max_(0, salaire_de_base - abattement_forfaitaire)\n\n return period, (salaire_de_base + chomage_net + retraite_brute + pensions_alimentaires_percues -\n abs_(pensions_alimentaires_versees_individu) + retraite_titre_onereux_declarant1 + rpns +\n max_(0, rev_cap_bar) + max_(0, rev_cap_lib) + max_(0, revenus_fonciers_minima_sociaux) + max_(0, div_ms) + # max_(0,etr) +\n revenus_stage_formation_pro + allocation_securisation_professionnelle +\n prime_forfaitaire_mensuelle_reprise_activite + dedommagement_victime_amiante + prestation_compensatoire +\n pensions_invalidite + gains_exceptionnels + indemnites_journalieres + indemnites_chomage_partiel +\n indemnites_volontariat + revenus_tns() + rsa_base_ressources_patrimoine_i + aah\n ) / 3\n", "input_variables": ["pensions_invalidite", "rsa_base_ressources_patrimoine_individu", "retraite_titre_onereux_declarant1", "revenus_fonciers_minima_sociaux", "aah", "retraite_brute", "prime_forfaitaire_mensuelle_reprise_activite", "indemnites_journalieres", "pensions_alimentaires_versees_individu", "allocation_securisation_professionnelle", "rev_cap_bar", "rpns", "div_ms", "indemnites_volontariat", "aspa_couple", "prestation_compensatoire", "salaire_de_base", "aspa_eligibilite", "dedommagement_victime_amiante", "pensions_alimentaires_percues", "indemnites_chomage_partiel", "revenus_stage_formation_pro", "rev_cap_lib", "chomage_net", "gains_exceptionnels"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Condition de nationnalit\u00e9 et de titre de s\u00e9jour pour b\u00e9n\u00e9ficier de l'ASPA ou l'ASI", "line_number": 162, "module": "asi_aspa", "name": "asi_aspa_condition_nationalite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 167, "module": "asi_aspa", "source": "def function(self, simulation, period):\n ressortissant_eee = simulation.calculate('ressortissant_eee', period)\n duree_possession_titre_sejour= simulation.calculate('duree_possession_titre_sejour', period)\n duree_min_titre_sejour = simulation.legislation_at(period.start).minim.aspa.duree_min_titre_sejour\n\n return period, or_(ressortissant_eee, duree_possession_titre_sejour >= duree_min_titre_sejour)\n", "input_variables": ["duree_possession_titre_sejour", "ressortissant_eee"], "parameters": ["minim.aspa.duree_min_titre_sejour"]}}, {"@type": "Integer", "default": 0, "entity": "familles", "label": "Nombre d'allocataires ASI/ASPA", "line_number": 175, "module": "asi_aspa", "name": "asi_aspa_nb_alloc", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 180, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n aspa_elig_holder = simulation.compute('aspa_eligibilite', period)\n asi_elig_holder = simulation.compute('asi_eligibilite', period)\n\n asi_eligibilite = self.split_by_roles(asi_elig_holder, roles = [CHEF, PART])\n aspa_eligibilite = self.split_by_roles(aspa_elig_holder, roles = [CHEF, PART])\n\n return period, (1 * aspa_eligibilite[CHEF] + 1 * aspa_eligibilite[PART] + 1 * asi_eligibilite[CHEF] + 1 * asi_eligibilite[PART])\n", "input_variables": ["aspa_eligibilite", "asi_eligibilite"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Indicatrice individuelle d'\u00e9ligibilit\u00e9 \u00e0 l'allocation suppl\u00e9mentaire d'invalidit\u00e9", "line_number": 141, "module": "asi_aspa", "name": "asi_eligibilite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 146, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n last_month = period.start.period('month').offset(-1)\n\n aspa_eligibilite = simulation.calculate('aspa_eligibilite', period)\n handicap = simulation.calculate('handicap', period)\n retraite_nette = simulation.calculate('retraite_nette', last_month)\n pensions_invalidite = simulation.calculate('pensions_invalidite', last_month)\n\n condition_situation = handicap & not_(aspa_eligibilite)\n condition_pensionnement = (retraite_nette + pensions_invalidite) > 0\n condition_nationalite = simulation.calculate('asi_aspa_condition_nationalite', period)\n\n return period, condition_situation * condition_pensionnement * condition_nationalite\n", "input_variables": ["handicap", "pensions_invalidite", "aspa_eligibilite", "retraite_nette", "asi_aspa_condition_nationalite"]}}, {"@type": "Float", "default": 0, "entity": "familles", "label": "Allocation de solidarit\u00e9 aux personnes ag\u00e9es", "line_number": 274, "module": "asi_aspa", "name": "aspa", "url": "http://vosdroits.service-public.fr/particuliers/F16871.xhtml", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 281, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n asi_elig_holder = simulation.compute('asi_eligibilite', period)\n aspa_elig_holder = simulation.compute('aspa_eligibilite', period)\n maries = simulation.calculate('maries', period)\n en_couple = simulation.calculate('en_couple', period)\n asi_aspa_nb_alloc = simulation.calculate('asi_aspa_nb_alloc', period)\n base_ressources = simulation.calculate('asi_aspa_base_ressources', period)\n P = simulation.legislation_at(period.start).minim\n\n asi_eligibilite = self.split_by_roles(asi_elig_holder, roles = [CHEF, PART])\n aspa_eligibilite = self.split_by_roles(aspa_elig_holder, roles = [CHEF, PART])\n\n # Un seul \u00e9ligible\n elig1 = ((asi_aspa_nb_alloc == 1) & (aspa_eligibilite[CHEF] | aspa_eligibilite[PART]))\n # Couple d'\u00e9ligibles\n elig2 = (aspa_eligibilite[CHEF] & aspa_eligibilite[PART])\n # Un seul \u00e9ligible et \u00e9poux \u00e9ligible ASI\n elig3 = ((asi_eligibilite[CHEF] & aspa_eligibilite[PART]) | (asi_eligibilite[PART] & aspa_eligibilite[CHEF])) & maries\n # Un seul \u00e9ligible et conjoint non mari\u00e9 \u00e9ligible ASI\n elig4 = ((asi_eligibilite[CHEF] & aspa_eligibilite[PART]) | (asi_eligibilite[PART] & aspa_eligibilite[CHEF])) & not_(maries)\n\n elig = elig1 | elig2 | elig3 | elig4\n\n montant_max = (\n elig1 * P.aspa.montant_seul +\n elig2 * P.aspa.montant_couple +\n elig3 * (P.asi.montant_couple / 2 + P.aspa.montant_couple / 2) +\n elig4 * (P.asi.montant_seul + P.aspa.montant_couple / 2)\n ) / 12\n\n ressources = base_ressources + montant_max\n\n plafond_ressources = (elig1 * (P.aspa.plaf_seul * not_(en_couple) + P.aspa.plaf_couple * en_couple) +\n (elig2 | elig3 | elig4) * P.aspa.plaf_couple) / 12\n\n depassement = max_(ressources - plafond_ressources, 0)\n\n diff = ((elig1 | elig2) * (montant_max - depassement) +\n (elig3 | elig4) * (P.aspa.montant_couple / 12 / 2 - depassement / 2))\n\n # Montant mensuel servi (sous r\u00e9serve d'\u00e9ligibilit\u00e9)\n montant_servi_aspa = max_(diff, 0)\n\n # TODO: Faute de mieux, on verse l'aspa \u00e0 la famille plut\u00f4t qu'aux individus\n # aspa[CHEF] = aspa_eligibilite[CHEF]*montant_servi_aspa*(elig1 + elig2/2)\n # aspa[PART] = aspa_eligibilite[PART]*montant_servi_aspa*(elig1 + elig2/2)\n return period, elig * montant_servi_aspa\n", "input_variables": ["asi_aspa_nb_alloc", "asi_eligibilite", "asi_aspa_base_ressources", "maries", "en_couple", "aspa_eligibilite"]}}, {"@type": "Boolean", "default": false, "entity": "familles", "label": "Couple au sens de l'ASPA", "line_number": 254, "module": "asi_aspa", "name": "aspa_couple", "formula": {"@type": "DatedFormula", "dated_formulas": [{"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 259, "module": "asi_aspa", "source": "@dated_function(date(2002, 1, 1), date(2006, 12, 31))\ndef function_2002_2006(self, simulation, period):\n period = period\n maries = simulation.calculate('maries', period)\n\n return period, maries\n", "input_variables": ["en_couple", "maries"]}, "stop_instant": "2006-12-31", "start_instant": "2002-01-01"}, {"formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 266, "module": "asi_aspa", "source": "@dated_function(date(2007, 1, 1))\ndef function_2007(self, simulation, period):\n period = period\n en_couple = simulation.calculate('en_couple', period)\n\n return period, en_couple\n", "input_variables": ["en_couple", "maries"]}, "stop_instant": null, "start_instant": "2007-01-01"}]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Indicatrice individuelle d'\u00e9ligibilit\u00e9 \u00e0 l'allocation de solidarit\u00e9 aux personnes ag\u00e9es", "line_number": 120, "module": "asi_aspa", "name": "aspa_eligibilite", "formula": {"@type": "SimpleFormula", "comments": null, "doc": null, "line_number": 125, "module": "asi_aspa", "source": "def function(self, simulation, period):\n period = period.this_month\n\n age = simulation.calculate('age', period)\n inapte_travail = simulation.calculate('inapte_travail', period)\n taux_incapacite = simulation.calculate('taux_incapacite', period)\n P = simulation.legislation_at(period.start).minim\n condition_invalidite = (taux_incapacite > P.aspa.taux_incapacite_aspa_anticipe) + inapte_travail\n condition_age_base = (age >= P.aspa.age_min)\n condition_age_anticipe = (age >= P.aah.age_legal_retraite) * condition_invalidite\n condition_age = condition_age_base + condition_age_anticipe\n condition_nationalite = simulation.calculate('asi_aspa_condition_nationalite', period)\n\n return period, condition_age * condition_nationalite\n", "input_variables": ["age", "inapte_travail", "taux_incapacite", "asi_aspa_condition_nationalite"]}}, {"@type": "Boolean", "default": false, "entity": "individus", "label": "Reconnu inapte au travail", "line_number": 10, "module": "asi_aspa", "name": "inapte_travail"}, {"@type": "Float", "default": 0, "entity": "individus", "label": "Taux d'incapacit\u00e9", "line_number": 15, "module": "asi_aspa", "name": "taux_incapacite"}]} |