Jeanbrun complet — Projection 20 ans

Accéder au simulateur ↗

Simulateur Jeanbrun complet — Projection 20 ans

À quoi sert ce simulateur ?

Simulateur composite qui modélise un investissement immobilier locatif sous le dispositif loi Jeanbrun (Budget 2026) sur toute la durée de détention (20 ans par défaut), en agrégeant trois briques :

  • jeanbrun — amortissement fiscal du bien (intermédiaire, social, très social) et économie d'impôt sur la période d'engagement (9, 12 ou 15 ans).
  • credit — tableau d'amortissement mensuel du crédit amortissable (intérêts, capital, assurance).
  • pv-immo-engine — calcul de la plus-value immobilière à la cession (abattement durée de détention, IR 19 %, PS 17,2 %, surtaxe art. 1609 nonies G).

Il répond aux questions que pose un CGP sur le cas pratique complet du mémento : financement, loyers revalorisés, charges, IR + PS foncier année par année, effort d'épargne mensuel, valeur revalorisée à la cession, PV nette et gain patrimonial à terme.

Constantes fiscales 2026

  • Revenus fonciers nus : PS 17,2 % (CSG 9,2 + CRDS 0,5 + PS 7,5) — carve-out LFSS 2026 art. 12 / CSS L.136-8 IV.
  • Plus-value immobilière particulière : IR 19 % + PS 17,2 % (même carve-out) + éventuelle surtaxe.
  • Abattements durée de détention : IR 6 %/an de la 6ᵉ à la 21ᵉ, puis 4 % à la 22ᵉ (exonération totale 22 ans). PS 1,65 %/an de la 6ᵉ à la 21ᵉ, 1,6 % à la 22ᵉ, puis 9 %/an jusqu'à la 30ᵉ (exonération totale 30 ans).

À ne pas confondre avec le LMNP (revenus BIC de location meublée) qui, lui, passe à 18,6 % en 2026.

Hypothèses du modèle

  1. Régime réel d'imposition foncière : loyers nets de vacance − charges − intérêts d'emprunt − assurance − amortissement Jeanbrun = résultat foncier.
  2. Déficit foncier reportable sur les revenus fonciers des années suivantes. L'imputation sur le revenu global (10 700 € / an) n'est pas modélisée — le déficit reste 100 % foncier.
  3. Amortissement Jeanbrun : taux et plafonds tirés de settings.json, base = 80 % du prix + travaux éligibles (≥ 30 % du prix pour l'ancien avec travaux).
  4. Plus-value à la cession : seul le prix d'acquisition nu est revalorisé (frais et travaux restent au prix d'origine dans la base). Cohérent avec shared/pv-immo-engine.js.
  5. Patrimoine net au terme = valeur bien revalorisée − capital restant dû − impôt PV cession.
  6. Gain net au terme = patrimoine net + cumul cash-flow 20 ans − apportEur initial.

Entrées principales

CatégorieChampUnité
AcquisitionprixAcquisition, fraisAcquisition, travauxRenovation, typeLogement, typeBienEUR, enum
EngagementanneesEngagement9, 12 ou 15 ans
CréditapportEur, tauxCredit, dureeCreditMois, tauxAssuranceEUR, %, mois, %
ExploitationloyerEurParMois, revalorisationLoyer, vacanceLocative, chargesCopro, taxeFonciere, gestionLocative, revalorisationChargesEUR, % décimal
FiscalitétmiDecimal, partsFiscales, declarationCommunedécimal, nombre, booléen
CessiondureeDetention, revalorisationBienannées, % décimal

Sorties clés

  • bilan.effort_mensuel_moyen — effort d'épargne moyen sur la durée.
  • bilan.gain_net_terme — patrimoine net au terme + cumul cash-flow − apportEur.
  • bilan.total_economie_jeanbrun — cumul de l'économie d'impôt due à l'amortissement Jeanbrun sur la période d'engagement (référence issue de jeanbrun/simulate.js).
  • projection[] — ligne par année : loyers, charges, intérêts, amortissement JB, résultat foncier, IR, PS, cash-flow net, effort mensuel.
  • credit.annees[] — amortissement crédit agrégé par année (intérêts, capital, assurance, CRD).
  • plus_value — détail du calcul à la cession (abattements, IR, PS, surtaxe).

Intégration

  • Branche CSS partagée (../styles.css), pas de build.
  • Utilise les factories createPlansStore, createHandleRoute, createClickHandler, createMarkdownFetcher, showModal, renderDashboardShell, makeTopbar.
  • SSO Capital Explorer : flow OAuth porté côté serveur (server/src/auth.ts), token lu depuis localStorage par ../cx-sso-gate.js — aucun cx-auth.js à inclure.
  • Chargement des dépendances en navigateur : jeanbrun/simulate.js et credit/simulate.js sont inclus puis leurs globaux sont capturés dans window.__jb_loi et window.__jb_credit avant que ./simulate.js ne redéfinisse simulate.