// ============================================================
// Monarch — Simulateurs : DMTG (escalier successoral) ·
// Plus-value immobilière des particuliers (sablier / double échelle)
// Requiert window.MSC (simcore.jsx) et window.__mscShared (simulators2.jsx).
// Visuels SVG « blueprint » explicitement demandés (escalier, frise).
// ============================================================
(function () {
const { useState, useEffect } = React;
const M = window.MSC;
const { C, SERIF, BODY, dmtg, fmt, pct, CountEuro, injectCore, useReveal,
Eyebrow, Label, MoneyInput, IntInput, Toggle, Shell, InputsCard, Doctrine, Alert, CTAEmail, ProsCons } = M;
function shared() { return window.__mscShared; }
// tranches du barème DMTG en ligne directe
const TR = [
[0, 8072, 0.05], [8072, 12109, 0.10], [12109, 15932, 0.15],
[15932, 552324, 0.20], [552324, 902838, 0.30], [902838, 1805677, 0.40], [1805677, Infinity, 0.45]
];
function breakdown(base) {
let reste = Math.max(0, base);
return TR.map(([lo, hi, taux]) => {
const span = hi - lo;
const amount = Math.min(Math.max(0, base - lo), span);
const tax = amount * taux;
return { taux, amount, tax, reached: base > lo };
});
}
// Liens de parenté : abattement + barème applicable
const LIENS = [
{ id: "enfant", label: "Enfant", abat: 100000, bareme: "direct" },
{ id: "petitenfant", label: "Petit-enfant", abat: 31865, bareme: "direct" },
{ id: "arriere", label: "Arrière-petit-enfant", abat: 5310, bareme: "direct" },
{ id: "epoux", label: "Époux", abat: 80724, bareme: "direct", exoSucc: true },
{ id: "pacs", label: "Partenaire de Pacs", abat: 80724, bareme: "direct", exoSucc: true },
{ id: "ascendant", label: "Ascendant", abat: 100000, bareme: "direct" },
{ id: "frere", label: "Frère ou sœur", abat: 15932, bareme: "frere" },
{ id: "neveu", label: "Neveu ou nièce", abat: 7967, bareme: "flat55" },
{ id: "autre", label: "Autre situation", abat: 1594, bareme: "flat60" }
];
function baremeFrere(base) { return Math.min(Math.max(0, base), 24430) * 0.35 + Math.max(0, base - 24430) * 0.45; }
function taxForLien(bareme, base) {
if (bareme === "frere") return baremeFrere(base);
if (bareme === "flat55") return Math.max(0, base) * 0.55;
if (bareme === "flat60") return Math.max(0, base) * 0.60;
return dmtg(base);
}
// =====================================================
// 1. DMTG — Droits de mutation à titre gratuit
// =====================================================
function DMTGSimulator() {
useEffect(injectCore, []);
const { ParamRecap } = shared();
const [valeur, setValeur] = useState(3000000);
const [enfants, setEnfants] = useState(2);
const [lien, setLien] = useState("enfant");
const [horizon, setHorizon] = useState("donation");
const [done, setDone] = useState(false);
const [busy, setBusy] = useState(false);
const reveal = useReveal(done, 250);
const V = Math.max(0, Number(valeur) || 0);
const n = Math.max(1, Number(enfants) || 1);
const L = LIENS.find((x) => x.id === lien) || LIENS[0];
const perChild = V / n;
const exonere = horizon === "succession" && L.exoSucc;
// abattement légal selon le lien (1 abattement par bénéficiaire)
const base = exonere ? 0 : Math.max(0, perChild - L.abat);
const taxPer = exonere ? 0 : taxForLien(L.bareme, base);
const activeBase = base;
const activeTax = taxPer * n;
const net = V - activeTax;
const tauxMoyen = perChild > 0 ? (taxPer / perChild) * 100 : 0;
const isDirect = L.bareme === "direct";
const go = () => { setBusy(true); setDone(false); setTimeout(() => { setBusy(false); setDone(true); }, 700); };
return (
Abattement légal : {fmt(L.abat)} par bénéficiaire{L.exoSucc ? " · succession totalement exonérée" : ""}. Depuis la loi TEPA, le conjoint survivant et le partenaire de Pacs sont totalement exonérés de droits de succession. L'enjeu se déplace alors vers la transmission à la génération suivante et la protection du conjoint (quotité disponible, démembrement croisé écarté).
La charge fiscale imposée à vos héritiers s'élève à {fmt(activeTax)}.
Sans anticipation, c'est l'outil de travail ou le patrimoine immobilier lui-même qui devra être liquidé pour honorer cette dette envers l'État. Net transmis : {fmt(net)}.
L'anticipation par donation permet de renouveler l'abattement de {fmt(L.abat)} tous les 15 ans : fractionner la transmission réduit mécaniquement les droits.
Pour réduire cette pression, la pratique courante préconise le démembrement (donation avec réserve d'usufruit). Nous l'écartons quasi-systématiquement : elle vous ampute de votre qualité pleine et entière d'associé sur les titres transmis et fragilise votre pouvoir de décision. Notre architecture repose sur une holding familiale et l'émission de parts de préférence : la valeur économique glisse vers la génération suivante pour purger les DMTG, tandis que votre pouvoir de décision reste verrouillé via un droit de vote renforcé — dans le respect de la prohibition des clauses léonines (un droit minimal restant attaché à chaque catégorie de titres).Aucun droit de succession entre {L.label.toLowerCase()}
{L.bareme === "frere" ? "35 % puis 45 % au-delà de 24 430 €" : L.bareme === "flat55" ? "Taux unique de 55 %" : "Taux unique de 60 %"}
L'obsession de l'exonération totale (attendre 30 ans) fige votre patrimoine : pendant des décennies, votre capital est immobilisé et ne produit aucun effet de levier. L'ingénierie Monarch s'affranchit de cette passivité : via un OBO immobilier (vente à soi-même), votre holding ou votre SCI à l'IS rachète le bien aujourd'hui. Vous purgez l'impôt, mais vous encaissez immédiatement des liquidités sur votre compte personnel — prêtes à être réinvesties ou à sécuriser votre train de vie — tout en conservant le contrôle de l'actif.
La part colorée représente la fraction de plus-value encore imposable à la date de vente : l'IR disparaît à 22 ans, les prélèvements sociaux ne s'effacent qu'à 30 ans.