Assurance vie : combien vais-je toucher ? Calcul net 2026
{
“@context”: “https://schema.org”,
“@graph”: [
{
“@type”: “Article”,
“@id”: “https://linvestisseur-malin.fr/en-gb/assurance-vie-combien-vais-je-toucher-calcul-net-2026-4/#article”,
“headline”: “Assurance vie : combien vais-je toucher ? Calcul net 2026”,
“description”: “DĂ©couvrez combien vous allez vraiment toucher de votre assurance vie. Calcul net aprĂšs fiscalitĂ©, abattements 2026 et simulation interactive.”,
“datePublished”: “2026-05-21 01:32:02”,
“dateModified”: “2026-05-21 01:32:02”,
“wordCount”: 1968,
“inLanguage”: “fr-FR”,
“mainEntityOfPage”: {
“@type”: “WebPage”,
“@id”: “https://linvestisseur-malin.fr/en-gb/assurance-vie-combien-vais-je-toucher-calcul-net-2026-4/”
},
“author”: {
“@type”: “Person”,
“@id”: “https://linvestisseur-malin.fr/en-gb/assurance-vie-combien-vais-je-toucher-calcul-net-2026-4/#author”,
“name”: “Kevin Grillot”,
“jobTitle”: “Expert en Finance Personnelle et Investissement”,
“description”: “Je suis consultant en investissement avec 8 ans d’expĂ©rience dans l’analyse des marchĂ©s financiers et la gestion de patrimoine. SpĂ©cialisĂ© en crypto-actifs, bricks/">immobilier et fintech, je guide les investisseurs français vers des dĂ©cisions Ă©clairĂ©es et rentables.”,
“image”: “https://kevin-grillot.fr/wp-content/uploads/2022/01/31-min-768×1024.jpg”,
“email”: “grillotkevin@gmail.com”,
“sameAs”: [
“https://www.linkedin.com/in/kevin-grillot/”,
“https://kevin-grillot.fr”
]
},
“publisher”: {
“@type”: “Organization”,
“@id”: “https://linvestisseur-malin.fr#org”,
“name”: “L’investisseur Malin”,
“logo”: {
“@type”: “ImageObject”,
“url”: “https://linvestisseur-malin.fr/wp-content/uploads/2021/12/Logo-fond-blanc-1024×1024.jpg”
},
“address”: null,
“email”: “grillotkevin@gmail.com”,
“telephone”: null,
“sameAs”: []
}
},
{
“@type”: “FAQPage”,
“@id”: “https://linvestisseur-malin.fr/en-gb/assurance-vie-combien-vais-je-toucher-calcul-net-2026-4/#faq”,
“mainEntity”: [
{
“@type”: “Question”,
“name”: “Quelle somme touche-t-on d’une assurance vie ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Le montant dĂ©pend du capital versĂ© plus les intĂ©rĂȘts gĂ©nĂ©rĂ©s. Si vous versez 50 000 ⏠sur 10 ans en fonds euro Ă 1,5% net, vous aurez environ 58 000 ⏠brut. Net aprĂšs fiscalitĂ© : environ 55 000-56 000 ⏠selon l’anciennetĂ© du contrat et votre situation. Le montant exact figure sur votre relevĂ© annuel de l’assureur.”
}
},
{
“@type”: “Question”,
“name”: “Comment connaĂźtre le montant de l’assurance vie ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Trois moyens : consultez votre dernier relevĂ© annuel (obligatoire chaque annĂ©e), connectez-vous Ă votre espace client en ligne chez votre assureur, ou appelez directement votre conseiller pour une simulation. Posez la question du « taux brut avant frais de gestion » pour connaĂźtre le vrai rendement.”
}
},
{
“@type”: “Question”,
“name”: “Quel est le montant d’une assurance vie en cas de dĂ©cĂšs ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Vos hĂ©ritiers reçoivent l’intĂ©gralitĂ© du capital brut (versements + intĂ©rĂȘts) sans passer par la succession. Ils doivent ensuite payer des droits selon le lien de parentĂ©. Un enfant bĂ©nĂ©ficie d’un abattement de 152 500 ⏠puis paie 60% sur l’excĂ©dent. Un Ă©poux est exonĂ©rĂ© totalement.”
}
},
{
“@type”: “Question”,
“name”: “Quels sont les piĂšges Ă Ă©viter en assurance vie ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Principal piĂšge : retirer avant 8 ans (fiscalitĂ© Ă 30%). Autre erreur : ne pas dĂ©signer clairement un bĂ©nĂ©ficiaire (le capital rentre en succession classique). Ăviter aussi les retraits partiels multiples (scission fiscale coĂ»teuse) et une mauvaise allocation fonds euros/unitĂ©s de compte. Demander les frais de gestion exacts : ils rĂ©duisent directement votre rendement final.”
}
},
{
“@type”: “Question”,
“name”: “Y a-t-il un plafond de montant pour une assurance vie ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Non de plafond global. Mais pour la transmission : versements avant 70 ans bĂ©nĂ©ficient d’un abattement de 152 500 ⏠par bĂ©nĂ©ficiaire. Versements aprĂšs 70 ans limitĂ©s Ă 30 000 ⏠par bĂ©nĂ©ficiaire et perdent l’abattement. Aucune limite sur ce que vous pouvez placer, mais la fiscalitĂ© succession change aprĂšs 70 ans.”
}
},
{
“@type”: “Question”,
“name”: “Combien de temps faut-il attendre pour profiter de la fiscalitĂ© rĂ©duite ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “8 ans d’anciennetĂ© du contrat. Avant : 30% de prĂ©lĂšvement forfaitaire sur les gains. AprĂšs 8 ans : 24,7% + abattement annuel de 4 600 ⏠(cĂ©libataire) ou 9 200 ⏠(couple). C’est l’une des raisons pour lesquelles l’assurance vie est efficace long terme : la fiscalitĂ© s’amĂ©liore drastiquement Ă 8 ans.”
}
},
{
“@type”: “Question”,
“name”: “Les frais de gestion rĂ©duisent-ils vraiment le montant final ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Oui, fortement. 1% de frais annuels sur 100 000 ⏠= 1 000 ⏠perdus chaque annĂ©e sans compter les intĂ©rĂȘts manquĂ©s. Sur 20 ans, ce sont plus de 20 000 ⏠d’Ă©cart. Comparer les assureurs : certains Ă 0,6%, d’autres Ă 1,5%. Demander une baisse si vous avez un gros encours (>100 000 âŹ).”
}
},
{
“@type”: “Question”,
“name”: “Mon conjoint recevra-t-il le capital sans impĂŽt si je suis mariĂ© ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Oui, totalement. L’Ă©poux bĂ©nĂ©ficiaire est exonĂ©rĂ© de droits de succession, quel que soit le montant de l’assurance vie. C’est l’avantage majeur pour les couples mariĂ©s. Les enfants, eux, bĂ©nĂ©ficient de l’abattement de 152 500 ⏠chacun, puis paient 60% sur l’excĂ©dent.”
}
}
]
},
{
“@type”: “BreadcrumbList”,
“@id”: “https://linvestisseur-malin.fr/en-gb/assurance-vie-combien-vais-je-toucher-calcul-net-2026-4/#breadcrumb”,
“itemListElement”: [
{
“@type”: “ListItem”,
“position”: 1,
“name”: “Accueil”,
“item”: “https://linvestisseur-malin.fr”
},
{
“@type”: “ListItem”,
“position”: 2,
“name”: “Assurance vie : combien vais-je toucher ? Calcul net 2026”,
“item”: “https://linvestisseur-malin.fr/en-gb/assurance-vie-combien-vais-je-toucher-calcul-net-2026-4/”
}
]
}
]
}
.otc-article * { box-sizing: border-box; }
.otc-article { font-family: -apple-system, BlinkMacSystemFont, system-ui, sans-serif; line-height: 1.7; color: #1f2937; max-width: 880px; margin: 0 auto; }
.otc-progress { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg,#3b82f6,#8b5cf6); width: 0%; z-index: 9999; transition: width 80ms linear; }
.otc-meta-bar { display: flex; gap: 14px; flex-wrap: wrap; color: #64748b; font-size: 14px; padding: 12px 0 18px; border-bottom: 1px solid #e5e7eb; margin-bottom: 22px; }
.otc-meta-bar span { display: inline-flex; align-items: center; gap: 5px; }
.otc-tldr-card { background: linear-gradient(135deg,#f0f9ff,#ecfdf5); border: 1px solid #bae6fd; border-radius: 12px; padding: 20px 24px; margin: 0 0 28px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.otc-tldr-title { font-size: 14px; font-weight: 700; color: #0369a1; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.otc-tldr-bullets { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.otc-tldr-bullets li { padding-left: 26px; position: relative; line-height: 1.5; color: #1e293b; }
.otc-tldr-bullets li::before { content: ‘â’; position: absolute; left: 0; top: 0; width: 18px; height: 18px; background: #10b981; color: white; border-radius: 50%; text-align: center; font-size: 11px; line-height: 18px; font-weight: 700; }
.otc-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0 0 32px; }
.otc-stat-card { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; }
.otc-stat-figure { font-size: 28px; font-weight: 700; color: #0f172a; line-height: 1; margin-bottom: 4px; }
.otc-stat-context { font-size: 13px; color: #475569; line-height: 1.4; margin-bottom: 6px; }
.otc-stat-source { font-size: 11px; color: #3b82f6; text-decoration: none; }
.otc-author { display: flex; gap: 16px; padding: 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; margin: 32px 0; align-items: center; }
.otc-author img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.otc-author .info .name { font-weight: 600; font-size: 16px; }
.otc-author .info .job { color: #64748b; font-size: 13px; margin-top: 2px; }
.otc-author .info .bio { font-size: 13px; color: #475569; margin-top: 6px; line-height: 1.5; }
.otc-author .links { margin-top: 6px; display: flex; gap: 8px; flex-wrap: wrap; }
.otc-author .links a { color: #3b82f6; font-size: 12px; text-decoration: none; }
.otc-faq h2 { margin-top: 40px; }
.otc-faq details { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; margin-bottom: 8px; transition: background 0.15s; }
.otc-faq details:hover { background: #f1f5f9; }
.otc-faq details[open] { background: white; box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
.otc-faq summary { cursor: pointer; font-weight: 600; color: #1e293b; padding-right: 24px; position: relative; }
.otc-faq summary::-webkit-details-marker { display: none; }
.otc-faq summary::after { content: ‘+’; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: #3b82f6; transition: transform 0.2s; }
.otc-faq details[open] summary::after { content: ‘â’; }
.otc-faq p { margin: 10px 0 0; color: #475569; line-height: 1.6; }
.otc-yt-embed { aspect-ratio: 16/9; margin: 20px 0; border-radius: 8px; overflow: hidden; background: #000; }
.otc-yt-embed iframe { width: 100%; height: 100%; border: 0; }
.otc-reddit { background: #fffbeb; border-left: 4px solid #f59e0b; padding: 14px 18px; margin: 20px 0; border-radius: 6px; font-size: 14px; }
.otc-reddit .src { color: #92400e; font-size: 12px; margin-top: 8px; }
.otc-reddit a { color: #b45309; }
.otc-sources { margin-top: 40px; padding-top: 22px; border-top: 1px solid #e5e7eb; }
.otc-sources h2 { font-size: 18px; color: #475569; margin-bottom: 14px; }
.otc-sources ol { padding-left: 22px; color: #475569; font-size: 13px; }
.otc-sources li { margin-bottom: 6px; line-height: 1.5; }
.otc-sources a { color: #3b82f6; }
.otc-updated-badge { display: inline-block; background: #dcfce7; color: #166534; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 500; }
.otc-article h2 { font-size: 26px; margin: 36px 0 16px; color: #0f172a; scroll-margin-top: 80px; line-height: 1.3; font-weight: 700; }
.otc-article h3 { font-size: 19px; margin: 24px 0 12px; color: #1e293b; scroll-margin-top: 80px; line-height: 1.4; font-weight: 600; }
.otc-article h4 { font-size: 16px; margin: 18px 0 8px; color: #334155; }
.otc-article p { margin: 0 0 14px; }
.otc-article ul, .otc-article ol { margin: 0 0 16px 24px; }
.otc-article ul li, .otc-article ol li { margin-bottom: 6px; }
.otc-article a { color: #3b82f6; text-decoration: underline; text-underline-offset: 2px; }
.otc-article a:hover { color: #1e40af; }
.otc-article table { border-collapse: collapse; margin: 18px 0; width: 100%; font-size: 14px; }
.otc-article th, .otc-article td { border: 1px solid #e5e7eb; padding: 10px 14px; text-align: left; }
.otc-article th { background: #f8fafc; font-weight: 600; color: #1e293b; }
.otc-article blockquote { border-left: 3px solid #cbd5e1; padding: 10px 18px; margin: 18px 0; color: #475569; background: #f8fafc; font-style: italic; }
.otc-article img { max-width: 100%; height: auto; border-radius: 8px; margin: 18px 0; display: block; }
.otc-article figure { margin: 18px 0; }
.otc-article figcaption { font-size: 13px; color: #64748b; text-align: center; margin-top: 6px; font-style: italic; }
/* Widgets interactifs */
.otc-widget { border-radius: 12px; padding: 22px 24px; margin: 28px 0; border: 1px solid; }
.otc-widget-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.otc-widget-icon { font-size: 32px; line-height: 1; }
.otc-widget h3.otc-widget-title { font-size: 18px; margin: 0; line-height: 1.3; }
.otc-widget-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; opacity: 0.85; margin-bottom: 2px; }
.otc-widget-desc { font-size: 14px; line-height: 1.5; margin: 0 0 16px; opacity: 0.95; }
.otc-widget-quiz { background: linear-gradient(135deg,#ddd6fe22,#c4b5fd22); border-color: #a78bfa; }
.otc-widget-quiz h3, .otc-widget-quiz .otc-widget-label { color: #5b21b6; }
.otc-widget-calculator { background: linear-gradient(135deg,#fef3c7,#fde68a); border-color: #fcd34d; }
.otc-widget-calculator h3, .otc-widget-calculator .otc-widget-label { color: #78350f; }
.otc-widget-comparator { background: linear-gradient(135deg,#dbeafe,#bfdbfe); border-color: #60a5fa; }
.otc-widget-comparator h3, .otc-widget-comparator .otc-widget-label { color: #1e40af; }
.otc-widget-poll { background: linear-gradient(135deg,#fce7f3,#fbcfe8); border-color: #f472b6; }
.otc-widget-poll h3, .otc-widget-poll .otc-widget-label { color: #9d174d; }
.otc-widget-infographic { background: linear-gradient(135deg,#d1fae5,#a7f3d0); border-color: #34d399; }
.otc-widget-infographic h3, .otc-widget-infographic .otc-widget-label { color: #065f46; }
.otc-quiz-question { margin-bottom: 14px; padding: 12px; background: rgba(255,255,255,0.6); border-radius: 8px; }
.otc-quiz-question .q { font-weight: 600; margin-bottom: 8px; color: #1e293b; }
.otc-quiz-options { display: grid; gap: 6px; }
.otc-quiz-options label { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: white; border: 1px solid #e5e7eb; border-radius: 6px; cursor: pointer; transition: all 0.12s; font-size: 14px; }
.otc-quiz-options label:hover { border-color: #7c3aed; background: #faf5ff; }
.otc-quiz-options input[type=radio] { margin: 0; }
.otc-quiz-options input[type=radio]:checked + span { font-weight: 600; }
.otc-quiz-result { margin-top: 14px; padding: 12px 16px; background: white; border-radius: 8px; font-weight: 600; text-align: center; display: none; }
.otc-quiz-result.show { display: block; }
.otc-btn { background: #7c3aed; color: white; border: none; padding: 10px 18px; border-radius: 6px; cursor: pointer; font-weight: 500; font-size: 14px; transition: background 0.15s; }
.otc-btn:hover { background: #6d28d9; }
.otc-widget-calculator .otc-btn { background: #b45309; }
.otc-widget-calculator .otc-btn:hover { background: #92400e; }
.otc-widget-comparator .otc-btn { background: #2563eb; }
.otc-widget-comparator .otc-btn:hover { background: #1d4ed8; }
.otc-widget-poll .otc-btn { background: #db2777; }
.otc-widget-poll .otc-btn:hover { background: #be185d; }
.otc-calc-row { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.otc-calc-row label { font-weight: 500; min-width: 130px; font-size: 14px; }
.otc-calc-row input { flex: 1; padding: 8px 10px; border: 1px solid #fcd34d; border-radius: 6px; font-size: 14px; min-width: 120px; }
.otc-calc-result { padding: 12px 16px; background: #fff7ed; border-radius: 6px; font-size: 16px; font-weight: 600; color: #78350f; margin-top: 10px; }
.otc-poll-options { display: grid; gap: 8px; }
.otc-poll-option { background: white; border: 1px solid #f9a8d4; border-radius: 6px; padding: 10px 14px; cursor: pointer; position: relative; overflow: hidden; transition: border-color 0.12s; }
.otc-poll-option:hover { border-color: #ec4899; }
.otc-poll-option .pct-bar { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(236, 72, 153, 0.15); transition: width 0.5s; z-index: 0; width: 0; }
.otc-poll-option .pct-text { position: relative; z-index: 1; display: flex; justify-content: space-between; }
.otc-poll-voted .otc-poll-option { cursor: default; }
.otc-comp-table { width: 100%; background: white; border-radius: 6px; overflow: hidden; }
.otc-comp-table th { background: #1e40af; color: white; padding: 8px 10px; text-align: left; font-size: 13px; }
.otc-comp-table td { padding: 8px 10px; border-bottom: 1px solid #dbeafe; font-size: 14px; }
.otc-comp-table tr:last-child td { border-bottom: none; }
/* Floating sidebar TOC (desktop right, mobile collapsible top) */
.otc-floating-toc {
background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px;
padding: 12px 16px; margin: 0 0 24px;
font-size: 13px;
}
.otc-toc-toggle {
background: none; border: 0; width: 100%; display: flex; justify-content: space-between; align-items: center;
font-weight: 700; color: #0f172a; font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em;
cursor: pointer; padding: 0;
}
.otc-toc-chevron { transition: transform 0.2s; font-size: 14px; }
.otc-floating-toc[data-collapsed=true] .otc-toc-chevron { transform: rotate(-90deg); }
.otc-floating-toc[data-collapsed=true] .otc-toc-list { display: none; }
.otc-toc-list { margin: 12px 0 0; padding-left: 22px; max-height: 50vh; overflow-y: auto; }
.otc-toc-list li { margin-bottom: 5px; line-height: 1.4; }
.otc-toc-list a { color: #475569; text-decoration: none; transition: color 0.12s; display: inline-block; padding: 2px 0; border-left: 2px solid transparent; padding-left: 8px; margin-left: -10px; }
.otc-toc-list a:hover { color: #2563eb; }
.otc-toc-list a.active { color: #2563eb; font-weight: 600; border-left-color: #2563eb; background: #eff6ff; }
@media (min-width: 1200px) {
.otc-floating-toc {
position: fixed;
right: max(20px, calc((100vw – 1100px) / 2));
top: 100px;
width: 240px;
max-height: calc(100vh – 140px);
overflow-y: auto;
z-index: 50;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
margin: 0;
}
.otc-floating-toc[data-collapsed=true] { width: auto; }
}
@media (min-width: 1500px) {
.otc-floating-toc {
right: max(30px, calc((100vw – 1100px) / 2 – 280px));
top: 100px;
}
}
/* Features bar */
.otc-features-bar { display: flex; gap: 6px; padding: 10px 0; margin: 0 0 16px; flex-wrap: wrap; }
.otc-feat-btn {
background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
padding: 6px 12px; cursor: pointer; font-size: 13px; color: #475569;
display: inline-flex; align-items: center; gap: 4px; transition: all 0.12s;
}
.otc-feat-btn:hover { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.otc-feat-btn.active { background: #dbeafe; border-color: #3b82f6; color: #1e40af; }
@media (max-width: 600px) { .otc-feat-btn span { display: none; } }
/* Pull quotes / Click-to-tweet */
.otc-pullquote {
border-left: 4px solid #1da1f2; background: #f0f9ff;
padding: 18px 22px; margin: 22px 0; border-radius: 0 8px 8px 0;
font-style: italic; color: #1e3a8a;
}
.otc-pullquote-text { font-size: 17px; line-height: 1.6; margin-bottom: 10px; }
.otc-pullquote-tweet {
display: inline-flex; align-items: center; gap: 6px; font-size: 13px;
background: #1da1f2; color: white !important; padding: 6px 14px; border-radius: 18px;
text-decoration: none !important; font-style: normal;
}
.otc-pullquote-tweet:hover { background: #0d8bd9; }
/* Reading mode */
body.otc-reading-mode { background: #faf8f3 !important; }
body.otc-reading-mode .otc-article { max-width: 720px; font-size: 18px; line-height: 1.85; }
body.otc-reading-mode .otc-article h2 { font-size: 28px; }
body.otc-reading-mode header,
body.otc-reading-mode footer,
body.otc-reading-mode aside:not(.otc-tldr-card):not(.otc-author):not(.otc-faq):not(.otc-newsletter):not(.otc-helpful):not(.otc-related):not(.otc-pullquote):not(.otc-stat-card):not(.otc-widget):not(.otc-floating-toc),
body.otc-reading-mode .sidebar,
body.otc-reading-mode .navigation,
body.otc-reading-mode #wpadminbar { display: none !important; }
/* Print */
@media print {
.otc-floating-toc, .otc-features-bar, .otc-share, .otc-newsletter, .otc-helpful, .otc-widget, .otc-progress, .otc-yt-embed, .otc-pullquote-tweet { display: none !important; }
.otc-article { font-size: 11pt; max-width: none; }
.otc-article h2, .otc-article h3 { page-break-after: avoid; }
.otc-article a::after { content: ” (” attr(href) “)”; font-size: 9pt; color: #666; }
}
/* Share buttons */
.otc-share { display: flex; align-items: center; gap: 8px; padding: 12px 0; margin: 0 0 20px; border-top: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; flex-wrap: wrap; }
.otc-share-label { font-size: 13px; color: #64748b; font-weight: 500; }
.otc-share-btn { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: white; font-weight: 700; font-size: 16px; border: 0; cursor: pointer; transition: transform 0.12s; }
.otc-share-btn:hover { transform: scale(1.1); }
.otc-share-x { background: #000; }
.otc-share-fb { background: #1877f2; }
.otc-share-ln { background: #0a66c2; }
.otc-share-wa { background: #25d366; }
.otc-share-copy { background: #64748b; }
/* Newsletter CTA */
.otc-newsletter { display: flex; align-items: center; gap: 18px; background: linear-gradient(135deg,#fef9c3,#fde68a); border: 1px solid #facc15; border-radius: 12px; padding: 22px 26px; margin: 32px 0; }
.otc-newsletter-icon { font-size: 42px; flex-shrink: 0; }
.otc-newsletter-body { flex: 1; }
.otc-newsletter h3 { margin: 0 0 6px; font-size: 18px; color: #78350f; }
.otc-newsletter p { margin: 0 0 12px; color: #78350f; font-size: 14px; }
.otc-newsletter-form { display: flex; gap: 8px; flex-wrap: wrap; }
.otc-newsletter-form input { flex: 1; min-width: 200px; padding: 10px 14px; border: 1px solid #d97706; border-radius: 6px; font-size: 14px; }
.otc-newsletter-form .otc-btn { background: #d97706; }
.otc-newsletter-form .otc-btn:hover { background: #b45309; }
.otc-newsletter-result { width: 100%; color: #065f46; font-weight: 500; font-size: 14px; margin-top: 8px; }
/* Helpful vote */
.otc-helpful { text-align: center; padding: 20px; margin: 28px 0; background: #f0f9ff; border: 1px dashed #93c5fd; border-radius: 10px; }
.otc-helpful h3 { margin: 0 0 12px; color: #1e40af; font-size: 16px; }
.otc-helpful-buttons { display: flex; gap: 12px; justify-content: center; }
.otc-vote-btn { background: white; border: 1px solid #93c5fd; border-radius: 6px; padding: 10px 20px; cursor: pointer; font-size: 14px; font-weight: 500; color: #1e40af; transition: all 0.12s; }
.otc-vote-btn:hover { background: #2563eb; color: white; }
.otc-vote-thanks { color: #1e40af; font-weight: 500; padding: 8px; }
.otc-vote-thanks a { color: #2563eb; }
/* Related articles */
.otc-related { margin: 36px 0 0; padding-top: 24px; border-top: 1px solid #e5e7eb; }
.otc-related h2 { margin-bottom: 16px; }
.otc-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.otc-related-card { display: block; background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; text-decoration: none; transition: border-color 0.12s, transform 0.12s; }
.otc-related-card:hover { border-color: #3b82f6; transform: translateY(-2px); }
.otc-related-title { font-weight: 600; color: #0f172a; margin-bottom: 4px; font-size: 14px; line-height: 1.4; }
.otc-related-meta { font-size: 12px; color: #64748b; }
@media (max-width: 600px) { .otc-article h2 { font-size: 22px; } .otc-stats-row { grid-template-columns: 1fr; } .otc-newsletter { flex-direction: column; text-align: center; } }
Comprendre le montant brut de votre assurance vie
Le capital brut que contient votre contrat d’assurance vie rĂ©sulte simplement de ce que vous y avez versĂ© plus les intĂ©rĂȘts accumulĂ©s. Si vous avez versĂ© 50 000 ⏠sur 10 ans et que le fonds euro a rendu 1,5% net, vous avez environ 58 000 ⏠brut.
Cette somme, votre assureur la dĂ©tient en fonds euros (capital garanti) ou en unitĂ©s de compte (soumises aux variations du marchĂ©). Les fonds euros offrent une sĂ©curitĂ© : votre capital de base ne baisse jamais, seuls les intĂ©rĂȘts varient chaque annĂ©e.
Mais attention : le brut ne correspond pas au net que vous recevrez rĂ©ellement. Entre le montant affichĂ© et l’argent en poche, il y a :
- Les frais de gestion annuels (0,6 Ă 1,5% prĂ©levĂ©s chaque annĂ©e sur l’encours)
- Les impÎts et prélÚvements sociaux à la sortie
- Les droits de succession si transmission aux héritiers
Comment les frais de gestion réduisent votre capital
Les frais de gestion sont le coĂ»t silencieux de votre assurance vie. Vous ne les voyez pas dĂ©bitĂ©s mensuellement sur votre compte courant : ils sont prĂ©levĂ©s directement sur votre encours par l’assureur.
Exemple concret :
- Vous avez 100 000 ⏠sur votre contrat
- Frais de gestion : 0,75% annuels
- PrĂ©lĂšvement annuel : 750 âŹ
- AprĂšs 10 ans : ces frais vous ont coĂ»tĂ© environ 7 500 ⏠(sans compter les intĂ©rĂȘts perdus sur cette somme)
C’est pourquoi il est crucial de demander Ă votre assureur le taux brut avant frais : si on vous annonce 1,8% net, demandez le taux placĂ© rĂ©el. La diffĂ©rence, c’est ce que vous perdez directement chaque annĂ©e.
Les frais varient selon :
- Le type de contrat (fonds euros moins chers que les unités de compte en gestion libre)
- Votre assureur (Malakoff Humanis, Prosper Conseil, Boursorama : tarifs différents)
- Le montant investi (au-delĂ de 500 000 âŹ, certains nĂ©gocient une rĂ©duction)
Fiscalité avant 8 ans : le prélÚvement forfaitaire unique
Si vous retirez des fonds avant que votre contrat n’atteigne 8 ans d’anciennetĂ©, vous ĂȘtes soumis au prĂ©lĂšvement forfaitaire unique (PFU) de 30% sur les intĂ©rĂȘts gĂ©nĂ©rĂ©s.
Ce prélÚvement porte uniquement sur le gain, pas sur votre capital initial. Exemple :
- Capital versĂ© : 50 000 âŹ
- Gain gĂ©nĂ©rĂ© : 2 500 âŹ
- PrĂ©lĂšvement 30% : 750 âŹ
- Vous recevez net : 51 750 âŹ
Le prélÚvement se compose de :
- 12,8% d’impĂŽt sur le revenu
- 17,2% de prélÚvements sociaux (CSG, CRDS)
Cette configuration la plus lourde s’applique systĂ©matiquement dans les premiĂšres annĂ©es du contrat, peu importe votre niveau de revenu.
FiscalitĂ© aprĂšs 8 ans : le taux rĂ©duit et l’abattement
Un tournant dĂ©cisif intervient Ă la 8Ăšme annĂ©e d’anciennetĂ© du contrat. La fiscalitĂ© bascule vers un rĂ©gime beaucoup plus favorable.
AprĂšs 8 ans, vous ĂȘtes soumis au prĂ©lĂšvement forfaitaire unique de 24,7% sur les intĂ©rĂȘts (au lieu de 30%), soit :
- 7,5% d’impĂŽt sur le revenu
- 17,2% de prélÚvements sociaux
Mais surtout, vous bĂ©nĂ©ficiez d’un abattement annuel de 4 600 ⏠(celibataire) ou 9 200 ⏠(couple mariĂ©/PACS) sur la portion imposable des gains.
Exemple d’une personne seule aprĂšs 8 ans :
- Gain annuel de 3 000 âŹ
- Abattement : 4 600 âŹ
- Base imposable : 0 ⏠â vous ne payez aucun impĂŽt cette annĂ©e
Cet abattement est majeur pour les petits Ă©pargnants. Un couple avec un contrat de 200 000 ⏠en fonds euro rend Ă 1,5% (3 000 ⏠de gain) bĂ©nĂ©ficie d’une franchise totale.
En cas de décÚs : succession et transmission aux héritiers
Le montant que vos hĂ©ritiers vont rĂ©ellement toucher dĂ©pend d’une rĂšgle fondamentale : les contrats d’assurance vie ne passent pas par la succession classique. C’est leur avantage principal.
Le capital va directement aux bĂ©nĂ©ficiaires dĂ©signĂ©s, sans passage par le notaire (sauf si les bĂ©nĂ©ficiaires ne sont pas identifiĂ©s). Cette transmission bĂ©nĂ©ficie d’un rĂ©gime fiscal ultra-favorable comparĂ© Ă l’hĂ©ritage classique.
Les droits à payer selon le lien de parenté :
Exemple concret : vous décédez avec 200 000 ⏠sur votre assurance vie, bénéficiaire unique votre enfant.
- Capital : 200 000 âŹ
- Abattement enfant : 152 500 âŹ
- Base imposable : 47 500 âŹ
- Droits (60%) : 28 500 âŹ
- Montant net reçu par l’enfant : 171 500 âŹ
Attention Ă la rĂšgle des 70 ans : les versements effectuĂ©s aprĂšs vos 70 ans sont limitĂ©s Ă 30 000 ⏠par bĂ©nĂ©ficiaire. Au-delĂ , ces versements tardifs rentrent dans le calcul de la succession classique et perdent l’avantage de l’abattement de 152 500 âŹ.
Les piÚges à éviter : capital perdu ou non déclaré
Certaines erreurs courantes gaspillent une part importante de votre Ă©pargne d’assurance vie.
PiÚge 1 : pas de bénéficiaire clairement désigné
Si votre contrat ne nomme personne, le capital rentre dans votre succession. Vos hĂ©ritiers perdront 45% Ă 60% en droits de succession au lieu de bĂ©nĂ©ficier de l’abattement de 152 500 âŹ. Action : vĂ©rifier votre clause bĂ©nĂ©ficiaire tous les 5 ans, particuliĂšrement aprĂšs un mariage, un PACS ou une sĂ©paration.
PiĂšge 2 : retrait partiel pigeonnier
Chaque retrait partiel scinde votre contrat : la fraction retirée crée une transaction fiscal indépendante. Vous payez des impÎts plusieurs fois sur des petites tranches. Meilleure pratique : retrait unique ou attendre 8 ans avant toute sortie.
PiÚge 3 : confondre prélÚvements sociaux et impÎt sur le revenu
Les 17,2% de prĂ©lĂšvements sociaux (CSG, CRDS) s’ajoutent toujours, indĂ©pendamment de votre revenu ou situation fiscale. MĂȘme un retraitĂ© sans revenu les paie. C’est un prĂ©lĂšvement Ă la source, non une option.
PiÚge 4 : mauvaise allocation fonds euros/unités de compte
Un contrat en 100% unitĂ©s de compte peut perdre 20-30% en annĂ©es baissiĂšres, alors qu’un fonds euro garanti Ă 1,5% aurait pu rapporter. Pas de « rattrapage » possible aprĂšs. Conseil : diversifier selon votre horizon (moins de 5 ans = 80% fonds euros ; plus de 10 ans = 40-60% unitĂ©s de compte).
Simulation : calculez votre montant net final
Voici comment estimer précisément combien vous allez toucher avec un exemple.
Scénario : contrat ouvert il y a 6 ans
- Capital versĂ© cumulĂ© : 60 000 âŹ
- Rendement fonds euro : 1,5% net moyen par an
- Capital actuel : ~66 000 ⏠(60 000 à 1,015^6)
- Vous décidez de tout retirer maintenant
Fiscalité appliquée (avant 8 ans) :
- Gain rĂ©alisĂ© : 6 000 âŹ
- PrĂ©lĂšvement 30% : 1 800 âŹ
- Montant net reçu : 64 200 âŹ
Maintenant, comparons si vous aviez attendu 8 ans :
- Capital à 8 ans : ~68 000 ⏠(60 000 à 1,015^8)
- Gain : 8 000 âŹ
- AprÚs abattement 4 600 ⏠: 3 400 ⏠imposables
- PrĂ©lĂšvement 24,7% : 840 âŹ
- Montant net reçu : 67 160 âŹ
Attendre 2 ans supplĂ©mentaires vous aurait rapportĂ© 2 960 ⏠de plus (mĂȘme sans nouveau versement).
Transmission Ă l’hĂ©ritier : le cas du couple mariĂ©
Si vous ĂȘtes mariĂ© et que votre conjoint est bĂ©nĂ©ficiaire unique, aucun impĂŽt n’est dĂ», peu importe le montant. L’exonĂ©ration est totale grĂące au lien de parentĂ©.
Pour vos enfants, en revanche, chacun bĂ©nĂ©ficie de son propre abattement de 152 500 âŹ. Si vous avez 3 enfants et 400 000 ⏠:
- Abattement total : 152 500 ⏠à 3 = 457 500 âŹ
- Base imposable : 0 ⏠(le capital est infĂ©rieur Ă l’abattement)
- Droits Ă payer : 0 âŹ
Mais si le capital atteint 600 000 ⏠:
- Abattement total : 457 500 âŹ
- ExcĂ©dent imposable : 142 500 âŹ
- Droits (60%) : 85 500 âŹ
- Partage entre 3 enfants : 28 500 ⏠chacun
Cette structure explique pourquoi l’assurance vie est l’outil privilĂ©giĂ© de transmission de patrimoine pour les familles.
Assurance vie vs succession classique : quelle différence ?
L’assurance vie offre une avantage fiscal radicalement diffĂ©rent de l’hĂ©ritage.
Héritage classique (immobilier, portefeuille actions, livret A) :
- Abattement enfant : 100 000 ⏠seulement
- Taux droits succession : 60% au-delĂ
- Sur 200 000 ⏠hérités par enfant : 60 000 ⏠de droits
Assurance vie :
- Abattement enfant : 152 500 âŹ
- Taux droits succession : 60% au-delĂ
- Sur 200 000 ⏠reçus par enfant : (200 000 – 152 500) Ă 60% = 28 500 ⏠de droits
Ăconomie fiscale : 31 500 ⏠sur un mĂȘme patrimoine, simplement parce qu’il est dans une assurance vie.
C’est la raison pour laquelle tout conseiller en patrimoine recommande une part d’assurance vie : elle est le seul placement permettant une transmission allĂ©gĂ©e aux hĂ©ritiers.
Comment connaĂźtre le montant exact de votre contrat
Vous avez trois sources d’information :
1. Relevé annuel obligatoire
Votre assureur doit vous envoyer chaque année le relevé de votre contrat. Il indique :
- Montant des primes versées (cumulé)
- Valeur de rachat (ce que vous pouvez récupérer en retirant tout)
- Plus-value gĂ©nĂ©rĂ©e (intĂ©rĂȘts nets)
- Date d’anciennetĂ© prĂ©cise
Si vous n’avez pas reçu de relevĂ© depuis 2 ans, contactez votre assureur : obligation lĂ©gale.
2. Simulateur en ligne
De nombreuses plateformes (Boursorama, Assurland, Meilleurtaux) proposent des estimations gratuites. Il suffit d’entrer :
- Capital initial
- Versements mensuels ou annuels
- Taux supposé (1,5% pour fonds euro classique)
- Horizon (nombre d’annĂ©es)
Le calcul : Capital à (1 + taux)^années donne une premiÚre estimation.
3. Appel direct Ă votre conseiller
La solution la plus fiable. Posez cette question précise : « Quel est le taux brut avant frais de gestion sur mon compte ? » Vous saurez alors le vrai rendement en jeu.
Optimiser votre assurance vie pour maximiser le montant reçu
Trois leviers d’optimisation concrets :
Levier 1 : réduire les frais de gestion
Comparez les offres. Un fonds euro Ă 0,5% de frais vs 1,2% reprĂ©sente 0,7% perdus chaque annĂ©e. Sur 100 000 âŹ, c’est 700 ⏠annuels en moins. Sur 20 ans, cela fait 14 000 ⏠d’Ă©cart.
Assureurs réputés moins chers :
- Boursorama (0,6-0,8%)
- Crédit du Nord (0,7%)
- Fortuneo (0,65%)
Demander une baisse de frais si vous avez plus de 100 000 ⏠: les assureurs négocient souvent.
Levier 2 : attendre 8 ans avant retrait si possible
La fiscalitĂ© bascule de 30% Ă 24,7%, plus l’abattement de 4 600 ⏠annuel. Si vous avez un besoin de liquiditĂ© imminente, c’est un mauvais calcul de retirer d’une assurance vie jeune. PrĂ©fĂ©rer dĂ©bloquer une Ă©pargne classique d’abord.
Levier 3 : bien désigner ses bénéficiaires
Un enfant : abattement de 152 500 âŹ. Trois enfants : abattement cumulĂ© de 457 500 âŹ. Plus le nombre d’hĂ©ritiers est important, plus la franchise fiscale augmente. VĂ©rifier que votre clause bĂ©nĂ©ficiaire reflĂšte votre volontĂ© rĂ©elle.
Conclusion : Savoir combien vous allez toucher, c’est possible
Le montant que vous toucherez de votre assurance vie dĂ©pend de quatre variables clĂ©s : le capital investi, la durĂ©e de placement, les frais prĂ©levĂ©s et la fiscalitĂ© applicable. Une assurance vie bien gĂ©rĂ©e durant 15 ans peut vous permettre de transmettre 60-70% de plus Ă vos hĂ©ritiers que si ce mĂȘme argent dormait sur un compte courant ou Ă©tait hĂ©ritĂ© classiquement.
La vraie question Ă vous poser : combien vous allez toucher net, aprĂšs impĂŽts et frais. Pas le chiffre brut que vous annonce l’assureur. Avec les outils fournis dans cet article et une simulation simple (capital Ă 1,015^annĂ©es), vous pouvez estimez votre rendement final.
Si votre contrat a plus de 8 ans d’anciennetĂ©, vous ĂȘtes dans la zone optimale : fiscalitĂ© rĂ©duite et abattements substantiels. C’est le bon moment pour vĂ©rifier vos frais de gestion et optimiser la stratĂ©gie de transmission si vous avez un projet patrimonial.
Questions fréquentes
Quelle somme touche-t-on d’une assurance vie ?
Le montant dĂ©pend du capital versĂ© plus les intĂ©rĂȘts gĂ©nĂ©rĂ©s. Si vous versez 50 000 ⏠sur 10 ans en fonds euro Ă 1,5% net, vous aurez environ 58 000 ⏠brut. Net aprĂšs fiscalitĂ© : environ 55 000-56 000 ⏠selon l’anciennetĂ© du contrat et votre situation. Le montant exact figure sur votre relevĂ© annuel de l’assureur.
Comment connaĂźtre le montant de l’assurance vie ?
Trois moyens : consultez votre dernier relevé annuel (obligatoire chaque année), connectez-vous à votre espace client en ligne chez votre assureur, ou appelez directement votre conseiller pour une simulation. Posez la question du « taux brut avant frais de gestion » pour connaßtre le vrai rendement.
Quel est le montant d’une assurance vie en cas de dĂ©cĂšs ?
Vos hĂ©ritiers reçoivent l’intĂ©gralitĂ© du capital brut (versements + intĂ©rĂȘts) sans passer par la succession. Ils doivent ensuite payer des droits selon le lien de parentĂ©. Un enfant bĂ©nĂ©ficie d’un abattement de 152 500 ⏠puis paie 60% sur l’excĂ©dent. Un Ă©poux est exonĂ©rĂ© totalement.
Quels sont les piÚges à éviter en assurance vie ?
Principal piĂšge : retirer avant 8 ans (fiscalitĂ© Ă 30%). Autre erreur : ne pas dĂ©signer clairement un bĂ©nĂ©ficiaire (le capital rentre en succession classique). Ăviter aussi les retraits partiels multiples (scission fiscale coĂ»teuse) et une mauvaise allocation fonds euros/unitĂ©s de compte. Demander les frais de gestion exacts : ils rĂ©duisent directement votre rendement final.
Y a-t-il un plafond de montant pour une assurance vie ?
Non de plafond global. Mais pour la transmission : versements avant 70 ans bĂ©nĂ©ficient d’un abattement de 152 500 ⏠par bĂ©nĂ©ficiaire. Versements aprĂšs 70 ans limitĂ©s Ă 30 000 ⏠par bĂ©nĂ©ficiaire et perdent l’abattement. Aucune limite sur ce que vous pouvez placer, mais la fiscalitĂ© succession change aprĂšs 70 ans.
Combien de temps faut-il attendre pour profiter de la fiscalité réduite ?
8 ans d’anciennetĂ© du contrat. Avant : 30% de prĂ©lĂšvement forfaitaire sur les gains. AprĂšs 8 ans : 24,7% + abattement annuel de 4 600 ⏠(cĂ©libataire) ou 9 200 ⏠(couple). C’est l’une des raisons pour lesquelles l’assurance vie est efficace long terme : la fiscalitĂ© s’amĂ©liore drastiquement Ă 8 ans.
Les frais de gestion réduisent-ils vraiment le montant final ?
Oui, fortement. 1% de frais annuels sur 100 000 ⏠= 1 000 ⏠perdus chaque annĂ©e sans compter les intĂ©rĂȘts manquĂ©s. Sur 20 ans, ce sont plus de 20 000 ⏠d’Ă©cart. Comparer les assureurs : certains Ă 0,6%, d’autres Ă 1,5%. Demander une baisse si vous avez un gros encours (>100 000 âŹ).
Mon conjoint recevra-t-il le capital sans impÎt si je suis marié ?
Oui, totalement. L’Ă©poux bĂ©nĂ©ficiaire est exonĂ©rĂ© de droits de succession, quel que soit le montant de l’assurance vie. C’est l’avantage majeur pour les couples mariĂ©s. Les enfants, eux, bĂ©nĂ©ficient de l’abattement de 152 500 ⏠chacun, puis paient 60% sur l’excĂ©dent.
đ Sources & rĂ©fĂ©rences
- Banque de France â Banque de France
- Code des assurances – Article L132-1 â LĂ©gifrance
- Placements – Meilleurtaux â Meilleurtaux
- MinistĂšre de l’Ăconomie â Gouvernement français
- Droits de succession – Service public â Service-Public.gouv.fr
/* Otomatic Widgets â vanilla JS, externe pour passer les filtres WP/CMS */
(function () {
‘use strict’;
function init() {
// Reading progress
var p = document.getElementById(‘otc-progress’);
if (p) {
function upd() {
var s = window.scrollY,
h = document.documentElement.scrollHeight – window.innerHeight;
p.style.width = (h ? (s / h) * 100 : 0) + ‘%’;
}
document.addEventListener(‘scroll’, upd, { passive: true });
upd();
}
// Quiz interactif
document.querySelectorAll(‘.otc-widget-quiz’).forEach(function (quiz) {
var qs = quiz.querySelectorAll(‘.otc-quiz-question’);
if (!qs.length) return;
var btn = quiz.querySelector(‘.otc-quiz-submit’);
var res = quiz.querySelector(‘.otc-quiz-result’);
if (btn && !btn.dataset.bound) {
btn.dataset.bound = ‘1’;
btn.addEventListener(‘click’, function () {
var score = 0,
total = qs.length;
qs.forEach(function (q) {
var sel = q.querySelector(‘input[type=radio]:checked’);
if (sel && sel.dataset.correct === ‘1’) score++;
});
var pct = Math.round((score / total) * 100);
var msg =
pct >= 80 ? ‘đ Excellent ! ‘ : pct >= 50 ? ‘đ Pas mal ! ‘ : ‘đ Continuez Ă apprendre ! ‘;
res.textContent = msg + ‘Score : ‘ + score + ‘/’ + total + ‘ (‘ + pct + ‘%)’;
res.classList.add(‘show’);
});
}
});
// Calculateur live
document.querySelectorAll(‘.otc-widget-calculator-inner’).forEach(function (calc) {
var inputs = calc.querySelectorAll(‘input[type=number]’);
var resEl = calc.querySelector(‘.otc-calc-result’);
var formula = calc.dataset.formula || ‘v.a + v.b’;
var unit = calc.dataset.unit || ”;
var label = calc.dataset.resultLabel || ‘Total : ‘;
if (!inputs.length || !resEl) return;
// Nettoie la formule : strip “var”/”let”/”const” dĂ©clarations + dĂ©tecte si c’est une expression ou un body
var formulaClean = formula
.replace(/b(var|let|const)s+/g, ”) // strip dĂ©clarations
.replace(/bv.s*varb/g, ‘v.v’) // au cas oĂč Claude Ă©crit v.var
.trim();
var isBody = /[;]s*S/.test(formulaClean) || /breturnb/.test(formulaClean);
function compute() {
var values = {};
inputs.forEach(function (i) {
values[i.name] = parseFloat(i.value) || 0;
});
try {
var fn;
if (isBody) {
// Body : ajoute return si absent
var body = /breturnb/.test(formulaClean) ? formulaClean : (formulaClean + ‘; return v.result || 0;’);
fn = new Function(‘v’, body);
} else {
fn = new Function(‘v’, ‘return (‘ + formulaClean + ‘)’);
}
var r = fn(values);
var out =
typeof r === ‘number’
? Math.round(r * 100) / 100
: r;
resEl.textContent = label + out + unit;
} catch (e) {
resEl.textContent = ‘Erreur de calcul : ‘ + e.message;
}
}
inputs.forEach(function (i) {
if (!i.dataset.bound) {
i.dataset.bound = ‘1’;
i.addEventListener(‘input’, compute);
}
});
compute();
});
// Sondage avec localStorage
document.querySelectorAll(‘.otc-widget-poll [data-poll-id]’).forEach(function (poll) {
var pollId = poll.dataset.pollId;
var key = ‘otc_poll_’ + pollId;
var stored = JSON.parse(localStorage.getItem(key) || ‘{“votes”:{},”voted”:false}’);
var options = poll.querySelectorAll(‘.otc-poll-option’);
function render() {
var totalVotes = Object.values(stored.votes).reduce(function (a, b) {
return a + b;
}, 0);
if (totalVotes === 0) totalVotes = 1;
options.forEach(function (o) {
var k = o.dataset.optionKey;
var v = stored.votes[k] || 0;
var pct = Math.round((v / totalVotes) * 100);
var bar = o.querySelector(‘.pct-bar’);
var pctEl = o.querySelector(‘.pct’);
if (bar) bar.style.width = pct + ‘%’;
if (pctEl && stored.voted) pctEl.textContent = pct + ‘%’;
});
if (stored.voted) poll.classList.add(‘otc-poll-voted’);
}
options.forEach(function (o) {
if (o.dataset.bound) return;
o.dataset.bound = ‘1’;
o.addEventListener(‘click’, function () {
if (stored.voted) return;
var k = o.dataset.optionKey;
stored.votes[k] = (stored.votes[k] || 0) + 1;
stored.voted = true;
localStorage.setItem(key, JSON.stringify(stored));
render();
});
});
render();
});
// Floating TOC scroll spy + collapse toggle
var toc = document.querySelector(‘.otc-floating-toc’);
if (toc) {
var toggle = toc.querySelector(‘.otc-toc-toggle’);
var headings = document.querySelectorAll(‘.otc-article h2[id]’);
var links = toc.querySelectorAll(‘a[href^=”#”]’);
// Collapse au clic
if (toggle && !toggle.dataset.bound) {
toggle.dataset.bound = ‘1’;
toggle.addEventListener(‘click’, function () {
var collapsed = toc.dataset.collapsed === ‘true’;
toc.dataset.collapsed = collapsed ? ‘false’ : ‘true’;
toggle.setAttribute(‘aria-expanded’, collapsed ? ‘true’ : ‘false’);
});
}
// Auto-collapse au scroll vers le bas (mobile)
function spy() {
var sy = window.scrollY + 120;
var current = null;
headings.forEach(function (h) {
if (h.offsetTop = 13 && savedFs <= 22) {
var body = document.querySelector('.otc-article');
if (body) body.style.fontSize = savedFs + 'px';
}
} catch (e) {}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
// Re-init si contenu ajouté dynamiquement (idempotent grùce aux dataset.bound)
setTimeout(init, 1500);
})();





