// ============================================================ // Monarch — Simulateurs de dette : rachat de société (LBO) · immobilier locatif // CorporateBuyoutDebtSimulator — nom propre vs holding (vampirisme de la cible) // RealEstateDebtSimulator — nom propre/SCI IR vs SCI à l'IS (autofinancement) // Sans schéma : barres de flux + chiffres. Requiert window.MSC + window.__mscShared. // ============================================================ (function () { const { useState, useEffect } = React; const M = window.MSC; const { C, SERIF, BODY, IS, fmt, pct, CountEuro, injectCore, useReveal, Eyebrow, Label, MoneyInput, Toggle, Shell, InputsCard, Doctrine, Alert, CTAEmail, ProsCons, Explainer } = M; function shared() { return window.__mscShared; } // annuité constante (capital + intérêts) function annuite(P, taux, annees) { const r = taux, n = annees; if (r <= 0) return P / n; return P * r / (1 - Math.pow(1 + r, -n)); } function FlowBar({ label, sub, value, max, run, color, danger, good }) { const [on, setOn] = useState(false); useEffect(() => { if (run) { const id = setTimeout(() => setOn(true), 80); return () => clearTimeout(id); } else setOn(false); }, [run]); return (
{label}
{sub &&
{sub}
}
); } // ===================================================== // 1. RACHAT DE SOCIÉTÉ — la dette d'acquisition // ===================================================== function CorporateBuyoutDebtSimulator() { useEffect(injectCore, []); const { ParamRecap, Panel } = shared(); const [acq, setAcq] = useState(1500000); const [taux, setTaux] = useState(4); const [duree, setDuree] = useState(7); const [done, setDone] = useState(false); const [busy, setBusy] = useState(false); const reveal = useReveal(done, 250); const P = Math.max(0, Number(acq) || 0); const r = Math.max(0, Number(taux) || 0) / 100; const n = Math.max(1, Number(duree) || 1); const charge = annuite(P, r, n); // annuité à payer à la banque const coutTotal = charge * n; // total remboursé const interetsTotal = coutTotal - P; // coût des intérêts const mensualite = charge / 12; const superBrutPropre = charge / (1 - 0.314); // à siphonner de la cible (Flat Tax) const superBrutHolding = charge / (1 - 0.0125); // via mère-fille const economie = superBrutPropre - superBrutHolding; const max = superBrutPropre || 1; const go = () => { setBusy(true); setDone(false); setTimeout(() => { setBusy(false); setDone(true); }, 700); }; return ( {!done &&
{Number(taux).toFixed(1).replace(".", ",")} %
setTaux(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
{n} ans
setDuree(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
} {done &&
setDone(false)} /> {/* Annuité de remboursement */}
L'annuité de remboursement

Ce que vous remboursez à la banque

par an, soit {fmt(mensualite)} par mois
Capital emprunté
{fmt(P)}
Intérêts sur {n} ans
{fmt(interetsTotal)}
Coût total du crédit
{fmt(coutTotal)}

Chaque année, {fmt(superBrutPropre)} doivent sortir de la société pour qu'il vous reste {fmt(charge)} net une fois l'impôt payé. Autant d'argent en moins pour la développer.

À remonter de la société / an (presque sans impôt)
Frottement limité à 1,25 %
Trésorerie de la cible préservée chaque année grâce au logement de la dette dans la holding :
économisés par an · {fmt(economie * n)} sur la durée

Racheter une entreprise en empruntant à titre personnel coûte cher : pour rembourser 100 € à la banque, il faut sortir environ 145 € de la société (le reste part en impôt sur les dividendes). En logeant l'emprunt dans une holding, les bénéfices remontent presque sans impôt pour rembourser la banque, et les intérêts deviennent déductibles. Le cabinet met en place ce montage.

} ); } // ===================================================== // 2. IMMOBILIER LOCATIF — l'effort d'épargne // ===================================================== function RealEstateDebtSimulator() { useEffect(injectCore, []); const { ParamRecap, Panel } = shared(); const TMIs = [{ id: "11", v: 0.11 }, { id: "30", v: 0.30 }, { id: "41", v: 0.41 }, { id: "45", v: 0.45 }]; const [projet, setProjet] = useState(500000); const [loyer, setLoyer] = useState(35000); const [taux, setTaux] = useState(3.5); const [duree, setDuree] = useState(20); const [tmiId, setTmiId] = useState("41"); const [done, setDone] = useState(false); const [busy, setBusy] = useState(false); const reveal = useReveal(done, 250); const P = Math.max(0, Number(projet) || 0); const Lo = Math.max(0, Number(loyer) || 0); const r = Math.max(0, Number(taux) || 0) / 100; const n = Math.max(1, Number(duree) || 1); const tmi = (TMIs.find((t) => t.id === tmiId) || TMIs[1]).v; const PS = 0.172; const mens = annuite(P, r, n); // annuité annuelle const coutTotalImmo = mens * n; const interetsTotalImmo = coutTotalImmo - P; const interets = P * r; // intérêts ~année 1 const amort = P * 0.85 * 0.03; // amortissement bâti (~85 % de la valeur, 3 %/an) // A : nom propre / SCI IR const baseIR = Math.max(0, Lo - interets); const impotIR = baseIR * (tmi + PS); const cashIR = Lo - mens - impotIR; const effortIR = cashIR < 0 ? -cashIR / 12 : 0; // B : SCI à l'IS const baseIS = Math.max(0, Lo - interets - amort); const impotIS = IS(baseIS); const cashIS = Lo - mens - impotIS; const effortIS = cashIS < 0 ? -cashIS / 12 : 0; const tauxFoncier = Math.round((tmi + PS) * 1000) / 10; const go = () => { setBusy(true); setDone(false); setTimeout(() => { setBusy(false); setDone(true); }, 700); }; return ( {!done &&
{Number(taux).toFixed(1).replace(".", ",")} %
setTaux(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
{n} ans
setDuree(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
} {done &&
setDone(false)} />
Votre crédit immobilier

Mensualité de {fmt(mens / 12)}

Capital emprunté
{fmt(P)}
Intérêts sur {n} ans
{fmt(interetsTotalImmo)}
Coût total du crédit
{fmt(coutTotalImmo)}
Effort d'épargne mensuel
à injecter chaque mois pour rembourser la banque ({fmt(Math.abs(cashIR))}/an de cash-flow négatif)
Impôt IS annuel
{baseIS <= 0 ? "Base taxable nulle — amortissement + intérêts neutralisent l'impôt" : `Base ${fmt(baseIS)} après amortissement`}
Effort d'épargne mensuel
{effortIS <= 1 ? "Les loyers couvrent l'emprunt : l'actif s'autofinance." : "quasi-équilibre de trésorerie"}

Acquérir de l'immobilier de rendement en nom propre ou en SCI à l'IR est une anomalie pour un contribuable fortement fiscalisé : le frottement de votre imposition personnelle détruit la rentabilité locative et exige des injections de trésorerie constantes. Le cabinet structure vos acquisitions (SCI à l'IS, holding) pour créer un effet de levier total — la société amortit l'actif, neutralise l'impôt immédiat, et permet à l'immobilier de se financer seul, en circuit fermé.

Estimation indicative (intérêts et amortissement de 1re année ; la base IS remonte progressivement avec l'amortissement du capital). La revente d'un bien à l'IS génère une plus-value majorée — à anticiper.

}
); } window.CorporateBuyoutDebtSimulator = CorporateBuyoutDebtSimulator; window.RealEstateDebtSimulator = RealEstateDebtSimulator; // ===================================================== // 3. CAPITALISATION FINANCIÈRE — l'effet boule de neige // ===================================================== function FinancialCapitalizationSimulator() { useEffect(injectCore, []); const { ParamRecap } = shared(); const [capital, setCapital] = useState(100000); const [perf, setPerf] = useState(6); const [duree, setDuree] = useState(15); const [done, setDone] = useState(false); const [busy, setBusy] = useState(false); const reveal = useReveal(done, 250); const K = Math.max(0, Number(capital) || 0); const g = Math.max(0, Number(perf) || 0) / 100; const n = Math.max(1, Math.min(30, Number(duree) || 1)); const gNet = g * (1 - 0.314); // gain net annuel en nom propre const nomPropre = K * Math.pow(1 + gNet, n); const holding = K * Math.pow(1 + g, n); const ecart = holding - nomPropre; const go = () => { setBusy(true); setDone(false); setTimeout(() => { setBusy(false); setDone(true); }, 700); }; return ( {!done &&
{Number(perf).toFixed(1).replace(".", ",")} %
setPerf(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
{n} ans
setDuree(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
} {done &&
setDone(false)} />
En {n} ans, à effort de départ identique, la holding vous fait gagner :
de patrimoine supplémentaire

Le pire ennemi d'un capital qui grandit, ce n'est pas le rendement, c'est l'impôt prélevé chaque année. Placer vos excédents à votre nom revient à retirer près d'un tiers des gains à chaque étape. En holding, 100 % de la performance est réinvestie et l'impôt personnel n'intervient qu'à la sortie, jamais pendant la phase de croissance. Le cabinet met en place cette structure de capitalisation.

Estimation simplifiée : en holding, l'impôt sur les sociétés sur les gains réalisés reste dû ; l'avantage tient au report de l'impôt personnel (31,4 %) et au réinvestissement intégral.

}
); } function GrowthCurve({ reveal, K, g, gNet, n }) { const [on, setOn] = useState(false); useEffect(() => { if (reveal) { const id = setTimeout(() => setOn(true), 250); return () => clearTimeout(id); } else setOn(false); }, [reveal]); const x0 = 46, x1 = 694, yb = 250, yt = 26; const hi = [], lo = []; for (let k = 0; k <= n; k++) { hi.push(K * Math.pow(1 + g, k)); lo.push(K * Math.pow(1 + gNet, k)); } const maxV = hi[n] || 1; const X = (k) => x0 + (x1 - x0) * (k / n); const Y = (v) => yb - (yb - yt) * (v / maxV); const path = (arr) => arr.map((v, i) => `${i === 0 ? "M" : "L"} ${X(i).toFixed(1)} ${Y(v).toFixed(1)}`).join(" "); const area = [...hi.map((v, i) => `${X(i).toFixed(1)},${Y(v).toFixed(1)}`), ...lo.map((v, i) => `${X(n - i).toFixed(1)},${Y(lo[n - i]).toFixed(1)}`)].join(" "); return (
La croissance, année après année

L'écart se creuse avec le temps

{[0, Math.round(n / 2), n].map((k) => AN {k})}
À votre nom{fmt(lo[n])} En holding{fmt(hi[n])}
); } window.FinancialCapitalizationSimulator = FinancialCapitalizationSimulator; // ===================================================== // 4. INTÉRÊTS COMPOSÉS — le levier du temps // ===================================================== function CompoundInterestSimulator() { useEffect(injectCore, []); const { ParamRecap } = shared(); const [capital, setCapital] = useState(100000); const [mensuel, setMensuel] = useState(1000); const [perf, setPerf] = useState(7); const [duree, setDuree] = useState(20); const [done, setDone] = useState(false); const [busy, setBusy] = useState(false); const reveal = useReveal(done, 250); const K = Math.max(0, Number(capital) || 0); const mAnnuel = Math.max(0, Number(mensuel) || 0) * 12; const g = Math.max(0, Number(perf) || 0) / 100; const n = Math.max(1, Math.min(30, Number(duree) || 1)); // série annuelle : versé cumulé vs total const verseArr = [], totalArr = []; let total = K; verseArr.push(K); totalArr.push(K); for (let k = 1; k <= n; k++) { total = total * (1 + g) + mAnnuel; verseArr.push(K + mAnnuel * k); totalArr.push(total); } const totalVerse = K + mAnnuel * n; const totalFinal = totalArr[n]; const gains = totalFinal - totalVerse; const bascule = gains > (totalVerse); const go = () => { setBusy(true); setDone(false); setTimeout(() => { setBusy(false); setDone(true); }, 700); }; return ( {!done &&
{Number(perf).toFixed(1).replace(".", ",")} %
setPerf(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
{n} ans
setDuree(Number(e.target.value))} style={{ width: "100%", marginTop: 8, accentColor: C.sauge }} />
} {done &&
setDone(false)} />
La richesse créée par le temps
La capitalisation a généré de gains, en plus de vos versements

À {n} ans, votre patrimoine atteint {fmt(totalFinal)}. Vous avez versé {fmt(totalVerse)} ; les intérêts ont ajouté {fmt(gains)}.{bascule ? " La bascule est franchie : l'argent généré a dépassé votre propre effort." : ""}

Laisser les excédents de votre entreprise sur un compte non rémunéré, c'est renoncer au levier le plus puissant : le temps. L'inflation grignote ce capital chaque année. Le cabinet structure vos excédents professionnels (contrat de capitalisation en holding, usufruit de SCPI…) pour que chaque euro de votre groupe travaille et se transforme en revenu durable.

}
); } function StackedArea({ reveal, verse, total, n }) { const [on, setOn] = useState(false); useEffect(() => { if (reveal) { const id = setTimeout(() => setOn(true), 250); return () => clearTimeout(id); } else setOn(false); }, [reveal]); const x0 = 46, x1 = 694, yb = 250, yt = 26; const maxV = total[n] || 1; const X = (k) => x0 + (x1 - x0) * (k / n); const Y = (v) => yb - (yb - yt) * (v / maxV); const baseline = `${X(0).toFixed(1)},${yb} ` + verse.map((v, i) => `${X(i).toFixed(1)},${Y(v).toFixed(1)}`).join(" ") + ` ${X(n).toFixed(1)},${yb}`; const interestPoly = verse.map((v, i) => `${X(i).toFixed(1)},${Y(v).toFixed(1)}`).join(" ") + " " + [...total].reverse().map((v, i) => `${X(n - i).toFixed(1)},${Y(v).toFixed(1)}`).join(" "); return (
Vos versements vs les intérêts générés

La part des intérêts grandit avec le temps

{[0, Math.round(n / 2), n].map((k) => AN {k})}
Vos versements{fmt(verse[n])} Intérêts générés{fmt(total[n] - verse[n])}
); } window.CompoundInterestSimulator = CompoundInterestSimulator; })();