Marcel Patrimoine compare des scénarios de donation ou de démembrement et chiffre leur effet fiscal. Estimation indicative, pas un conseil en investissement. Chaque champ du profil est optionnel ; la réponse contient les scénarios chiffrés, les scénarios écartés, les sujets non couverts, les champs manquants et les avertissements. Elle porte un traceId, le même pour un même profil et une même version de règles, et sa rulesVersion.
View input schema
{
"type": "object",
"properties": {
"foyer": {
"type": "object",
"properties": {
"age": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Âge de la personne, en années entières, de 0 à 120."
},
"situation": {
"type": "string",
"enum": [
"seul",
"couple"
],
"description": "Personne seule ou couple."
},
"parts": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Nombre de parts fiscales du foyer. Un nombre strictement positif, par exemple 1, 1,5 ou 2."
},
"revenusProN1": {
"type": "number",
"minimum": 0,
"description": "Revenus professionnels déclarés l'an dernier, en euros."
},
"tmi": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Tranche marginale d'imposition actuelle, en décimal : 0.30 pour 30 %."
},
"revenuNetMensuel": {
"type": "number",
"minimum": 0,
"description": "Revenu net mensuel, en euros."
},
"nbEnfants": {
"type": "integer",
"minimum": 0,
"description": "Nombre d'enfants."
},
"ageConjoint": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Âge du conjoint, en années entières, de 0 à 120."
}
},
"additionalProperties": false,
"description": "Foyer. Chaque champ est optionnel."
},
"retraite": {
"type": "object",
"properties": {
"ageDepart": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Âge prévu de cessation d'activité."
},
"pensionEstimeeAnnuelle": {
"type": "number",
"minimum": 0,
"description": "Pension annuelle estimée, en euros."
},
"tmiSortieSaisie": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Tranche marginale d'imposition à la retraite, en décimal, si elle est connue."
}
},
"additionalProperties": false,
"description": "Retraite. Chaque champ est optionnel."
},
"capaciteEpargneMensuelle": {
"type": "number",
"minimum": 0,
"description": "Somme que le foyer peut mettre de côté chaque mois, en euros."
},
"enveloppes": {
"type": "object",
"properties": {
"liquidites": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"description": "Total des liquidités, en euros, lorsque le détail n'est pas connu."
},
{
"type": "object",
"properties": {
"total": {
"type": "number",
"minimum": 0,
"description": "Total des liquidités, en euros."
},
"livretA": {
"type": "number",
"minimum": 0,
"description": "Part placée sur un Livret A, en euros. Elle ne dépasse pas le total."
}
},
"required": [
"total"
],
"additionalProperties": false
}
],
"description": "Liquidités : un montant, ou un total avec la part de Livret A."
},
"pea": {
"type": "object",
"properties": {
"valeur": {
"type": "number",
"minimum": 0,
"description": "Valeur actuelle du plan, en euros."
},
"versements": {
"type": "number",
"minimum": 0,
"description": "Total des versements, en euros."
},
"plusValueLatente": {
"type": "number",
"description": "Plus-value latente, en euros. Une moins-value est un nombre négatif."
},
"ancienneteAns": {
"type": "number",
"minimum": 0,
"description": "Ancienneté du plan, en années."
}
},
"required": [
"valeur"
],
"additionalProperties": false,
"description": "PEA."
},
"peaPme": {
"type": "object",
"properties": {
"valeur": {
"type": "number",
"minimum": 0,
"description": "Valeur du PEA-PME, en euros."
},
"versements": {
"type": "number",
"minimum": 0,
"description": "Versements sur le PEA-PME, en euros."
},
"plusValueLatente": {
"type": "number",
"description": "Plus-value latente du PEA-PME, en euros."
}
},
"required": [
"valeur"
],
"additionalProperties": false,
"description": "PEA-PME. Sa fiscalité de sortie n'est pas chiffrée."
},
"av": {
"type": "array",
"items": {
"type": "object",
"properties": {
"valeur": {
"type": "number",
"minimum": 0,
"description": "Valeur actuelle du contrat, en euros."
},
"versements": {
"type": "number",
"minimum": 0,
"description": "Sommes versées sur le contrat, en euros."
},
"ancienneteAns": {
"type": "number",
"minimum": 0,
"description": "Ancienneté du contrat, en années."
},
"partUC": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Fraction du contrat en unités de compte, entre 0 et 1. Les montants en euros sont montantUC et montantFondsEuros."
},
"montantUC": {
"type": "number",
"minimum": 0,
"description": "Montant en unités de compte, en euros."
},
"montantFondsEuros": {
"type": "number",
"minimum": 0,
"description": "Montant en fonds euros, en euros."
},
"plusValueLatente": {
"type": "number",
"description": "Plus-value latente du contrat, en euros. Une moins-value est un nombre négatif."
},
"plusValuesUC": {
"type": "number",
"minimum": 0,
"description": "Gains des unités de compte, en euros."
},
"plusValuesFondsEuros": {
"type": "number",
"minimum": 0,
"description": "Gains du fonds euros, en euros."
},
"primesAvant70": {
"type": "number",
"minimum": 0,
"description": "Primes versées avant les 70 ans de l'assuré, en euros."
},
"primesApres70": {
"type": "number",
"minimum": 0,
"description": "Primes versées à partir des 70 ans de l'assuré, en euros."
},
"primesParAge": {
"type": "array",
"items": {
"type": "object",
"properties": {
"montant": {
"type": "number",
"minimum": 0,
"description": "Montant de la prime, en euros."
},
"ageAuVersement": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Âge de l'assuré au versement de la prime."
}
},
"required": [
"montant",
"ageAuVersement"
],
"additionalProperties": false
},
"description": "Primes avec l'âge de l'assuré au versement."
}
},
"required": [
"valeur"
],
"additionalProperties": false,
"description": "Contrat d'assurance-vie."
},
"description": "Contrats d'assurance-vie."
},
"per": {
"type": "object",
"properties": {
"valeur": {
"type": "number",
"minimum": 0,
"description": "Valeur du PER, en euros."
},
"versementsDeduits": {
"type": "number",
"minimum": 0,
"description": "Versements déjà déduits, en euros."
},
"versementsNonDeduits": {
"type": "number",
"minimum": 0,
"description": "Versements non déduits, en euros."
},
"plusValueLatente": {
"type": "number",
"description": "Plus-value latente du PER, en euros."
}
},
"required": [
"valeur"
],
"additionalProperties": false,
"description": "Plan d'épargne retraite déjà ouvert."
},
"cto": {
"type": "object",
"properties": {
"valeur": {
"type": "number",
"minimum": 0,
"description": "Valeur du compte-titres, en euros."
},
"plusValueLatente": {
"type": "number",
"description": "Plus-value latente du compte-titres, en euros."
},
"versementsProgrammesMensuels": {
"type": "number",
"minimum": 0,
"description": "Versements programmés mensuels, en euros."
}
},
"required": [
"valeur"
],
"additionalProperties": false,
"description": "Compte-titres ordinaire."
},
"immobilier": {
"type": "array",
"items": {
"type": "object",
"properties": {
"valeur": {
"type": "number",
"minimum": 0,
"description": "Valeur du bien, en euros."
},
"capitalRestantDu": {
"type": "number",
"minimum": 0,
"description": "Capital restant dû du crédit du bien, en euros."
},
"residencePrincipale": {
"type": "boolean",
"description": "true lorsque le bien est la résidence principale."
},
"bienCommun": {
"type": "boolean",
"description": "true lorsque le bien est commun aux deux membres du couple."
},
"mensualite": {
"type": "number",
"minimum": 0,
"description": "Mensualité du crédit, en euros."
}
},
"required": [
"residencePrincipale"
],
"additionalProperties": false
},
"description": "Biens immobiliers."
},
"titresSociete": {
"type": "object",
"properties": {
"valeurTitres": {
"type": "number",
"minimum": 0,
"description": "Valeur des titres de la société, en euros."
},
"prixRevient": {
"type": "number",
"minimum": 0,
"description": "Prix de revient des titres, en euros."
},
"nbEnfants": {
"type": "integer",
"exclusiveMinimum": 0
},
"ageDirigeant": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Âge du dirigeant."
},
"horizonCession": {
"type": "number",
"minimum": 0,
"description": "Horizon de cession, en années."
},
"eccDuree": {
"type": "number",
"minimum": 0,
"description": "Durée de l'engagement collectif, en années."
},
"eicDuree": {
"type": "number",
"minimum": 0,
"description": "Durée de l'engagement individuel, en années."
}
},
"required": [
"valeurTitres",
"prixRevient",
"nbEnfants",
"ageDirigeant"
],
"additionalProperties": false,
"description": "Parts de société. Le chiffrage Dutreil n'est pas publié dans cette version."
}
},
"additionalProperties": false,
"description": "Enveloppes détenues. Chaque champ est optionnel."
},
"dettes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"immobilier",
"lombard",
"autre"
],
"description": "Nature de la dette. « lombard » pour un crédit adossé à un contrat."
},
"capitalRestantDu": {
"type": "number",
"minimum": 0,
"description": "Capital restant dû, en euros."
},
"echeance": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}(-\\d{2})?$",
"description": "Échéance, AAAA-MM ou AAAA-MM-JJ."
},
"mensualite": {
"type": "number",
"minimum": 0,
"description": "Mensualité, en euros."
},
"assiette": {
"type": "string",
"enum": [
"av",
"immobilier",
"autre"
],
"description": "Bien qui garantit la dette. « av » lorsque le crédit Lombard est adossé à l'assurance-vie."
}
},
"required": [
"type",
"capitalRestantDu"
],
"additionalProperties": false
},
"description": "Dettes, dont le crédit Lombard adossé à l'assurance-vie."
},
"transmission": {
"type": "object",
"properties": {
"valeurATransmettre": {
"type": "number",
"minimum": 0,
"description": "Montant que le foyer peut donner, en euros, hors enveloppes bloquées. La dette qui garantit un contrat est déjà déduite du patrimoine net."
},
"donationsAnterieures": {
"type": "array",
"items": {
"type": "object",
"properties": {
"montant": {
"type": "number",
"minimum": 0,
"description": "Montant de la donation antérieure, en euros."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date de la donation, AAAA-MM-JJ."
},
"ancienneteAns": {
"type": "number",
"minimum": 0,
"description": "Ancienneté de la donation, en années."
},
"lien": {
"type": "string",
"enum": [
"enfant",
"petit_enfant",
"arriere_petit_enfant",
"conjoint",
"frere_soeur",
"neveu_niece",
"autre",
"ligne_directe"
],
"description": "Lien entre le donateur et le donataire."
},
"sens": {
"type": "string",
"enum": [
"recue",
"consentie"
],
"description": "Donation reçue ou consentie."
},
"beneficiaire": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0
},
{
"type": "string",
"const": "tous"
}
],
"description": "Bénéficiaire de la donation antérieure : index à partir de 1, ou tous. Absent : le premier, et l'hypothèse est indiquée."
},
"donateur": {
"type": "number",
"enum": [
1,
2
],
"description": "Donateur de la donation antérieure, 1 ou 2. Absent : le donateur 1 lorsque deux donateurs sont retenus."
}
},
"required": [
"montant"
],
"additionalProperties": false
},
"description": "Donations déjà réalisées."
},
"donateurs": {
"type": "number",
"enum": [
1,
2
],
"description": "Nombre de donateurs de la transmission. Absent : 1, sauf si la situation est couple et que le bien est indiqué comme commun."
},
"bienCommun": {
"type": "boolean",
"description": "true lorsque le bien transmis est commun. Avec une situation couple, deux donateurs sont alors retenus."
},
"ageUsufruitierConjoint": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Âge en années révolues du second donateur. Absent : l'âge du conjoint, sinon le même âge, signalé."
},
"beneficiaires": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lien": {
"type": "string",
"enum": [
"enfant",
"petit_enfant",
"arriere_petit_enfant",
"conjoint",
"frere_soeur",
"neveu_niece",
"autre"
],
"description": "Lien avec le bénéficiaire."
},
"nombre": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"required": [
"lien",
"nombre"
],
"additionalProperties": false
},
"description": "Personnes qui recevraient une donation."
}
},
"additionalProperties": false,
"description": "Transmission. Chaque champ est optionnel."
},
"objectifs": {
"type": "array",
"items": {
"type": "string",
"enum": [
"reduire_ir",
"preparer_retraite",
"transmettre",
"liquidite"
]
},
"description": "Buts du calcul. Au moins un objectif permet de chiffrer. Absents : une question est posée, sans montant."
},
"horizonAns": {
"type": "number",
"const": 10,
"description": "Horizon du chiffrage, en années. Seule la valeur 10 est acceptée. Absente : 10 ans."
},
"hypotheses": {
"type": "object",
"properties": {
"rendementAnnuel": {
"type": "number",
"exclusiveMinimum": -1,
"maximum": 1,
"description": "Rendement annuel saisi, strictement supérieur à -1 et au plus égal à 1. Absent : les valorisations restent constantes."
}
},
"additionalProperties": false,
"description": "Hypothèses explicites. Aucun taux n'est inventé."
},
"dateReference": {
"$ref": "#/properties/transmission/properties/donationsAnterieures/items/properties/date",
"description": "Date de référence des calculs, AAAA-MM-JJ. Absente : la date du jour n'est pas utilisée pour le rappel des donations."
}
},
"additionalProperties": false,
"description": "Profil patrimonial. Chaque champ est optionnel. Les montants sont en euros, les taux entre 0 et 1, les âges entre 0 et 120.",
"$schema": "http://json-schema.org/draft-07/schema#"
}