Étape 1 sur 3 33%

Votre prêt et votre assurance

Assurance actuelle

Votre financement

Renseignez au moins le capital initial ou le capital restant dû. Le capital initial figure dans votre offre de prêt ; le capital restant dû est actualisé dans votre tableau d’amortissement définitif.

Début estimé en cas de changement
Durée retenue

Un délai de précaution de trois mois est appliqué, puis le démarrage est aligné sur l’échéance mensuelle suivante du prêt.

Connaissez-vous le coût de votre assurance actuelle ? *

Coût de votre assurance

Renseignez au moins l’un des deux montants ; si vous disposez des deux, renseignez-les. Ces montants sont disponibles dans votre offre de prêt ou dans votre tableau d’amortissement définitif.

Votre profil d’assuré

Emprunteur principal

Fumeur ? *Vous êtes généralement considéré comme fumeur si vous avez fumé ou vapoté au cours des 12 à 24 derniers mois, quelle que soit la fréquence.
Métier à risque ? *
Sport à risque ? *

Co-emprunteur

Fumeur ? *Vous êtes généralement considéré comme fumeur si vous avez fumé ou vapoté au cours des 12 à 24 derniers mois, quelle que soit la fréquence.
Métier à risque ? *
Sport à risque ? *
Total assuré100 %

Aucun détail médical, professionnel ou sportif n’est demandé dans cette simulation. Une étude complémentaire peut être nécessaire pour confirmer le tarif.

Votre économie estimée

'); printDocument.close(); setTimeout(function () { frame.contentWindow.focus(); frame.contentWindow.print(); setTimeout(function () { if (frame.parentNode) frame.parentNode.removeChild(frame); }, 1200); }, 250); }var DOCUMENT_FIELD_KEYS = { amort:'tableau_amortissement', insurance:'echeancier_ou_attestation_assurance', offer:'offre_pret_ou_fsi', other:'autre_document' };function renderFileList(key) { var target = el('cee-v17-doc-' + key + '-list'); if (!target) return; target.className = 'cee-v17-file-list'; if (!files[key].length) { target.textContent = 'Aucun fichier'; return; } target.innerHTML = files[key].map(function (file, index) { return '' + esc(file.name) + ''; }).join(''); }function handleFiles(input, key) { Array.prototype.slice.call(input.files || []).forEach(function (file) { var exists = files[key].some(function (item) { return item.name === file.name && item.size === file.size && item.lastModified === file.lastModified; }); if (!exists) files[key].push(file); }); input.value = ''; invalidatePreparedLead(); renderFileList(key); }function exportChoice(value, mapping) { return Object.prototype.hasOwnProperty.call(mapping, value) ? mapping[value] : value; }function exportBorrower(borrower) { return { date_naissance:borrower.birth, quotite:num(borrower.quotity), fumeur:borrower.smoker, metier_a_risque:borrower.riskyJob, sport_a_risque:borrower.riskySport }; }function exportLoan() { return { origine_assurance:exportChoice(state.loan.insuranceOrigin, { bank:'banque', changed:'delegation', unknown:'inconnue' }), banque:state.loan.bankName, banque_autre:state.loan.bankOther, assureur:state.loan.insurerName, assureur_autre:state.loan.insurerOther, capital_restant:state.loan.remainingCapital === '' ? null : num(state.loan.remainingCapital), capital_inconnu:num(state.loan.remainingCapital) < 1000 && num(state.loan.initialCapital) >= 1000, capital_initial:state.loan.initialCapital === '' ? null : num(state.loan.initialCapital), date_debut_pret:state.loan.startDate, date_fin_pret:state.loan.endDate, nombre_assures:Number(state.loan.borrowerCount) || null, cout_actuel_connu:state.loan.currentCostKnown, cout_total_assurance:state.loan.totalInsuranceCost === '' ? null : num(state.loan.totalInsuranceCost), mode_cotisation:exportChoice(state.loan.premiumMode, { fixed:'fixe', variable:'evolutive', unknown:'inconnu' }), cout_restant_connu:num(state.loan.variableRemainingCost) > 0, cout_restant:state.loan.variableRemainingCost === '' ? null : num(state.loan.variableRemainingCost) }; }function exportCalculation() { var c = state.calculation || {}; return { cout_actuel_connu:c.currentCostKnown, capital_reference:c.capital, nombre_mois:c.months, duree:c.durationLabel, date_changement:c.switchDate, cout_actuel:c.currentCost, mensualite_nouvelle_assurance:c.alternativeMonthlyStart, cout_nouvelle_assurance:c.alternativeCost, borne_basse_nouvelle_assurance:c.alternativeCostLow, borne_haute_nouvelle_assurance:c.alternativeCostHigh, economie_brute:c.grossSaving, honoraires:c.fee, economie_nette:c.netSaving, economie_mensuelle_brute:c.averageMonthlyGrossSaving, economie_annuelle_brute:c.averageAnnualGrossSaving, fourchette_basse_nette:c.rangeLow, fourchette_haute_nette:c.rangeHigh, incertitude:c.uncertainty }; }function buildPendingSimulation() { syncStateFromDOM(); if (!state.calculation) calculate(); var activeBorrowers = { principal:exportBorrower(state.borrowers.main) }; if (String(state.loan.borrowerCount) === '2') activeBorrowers.co_emprunteur = exportBorrower(state.borrowers.co); return { simulation_id:'SIM-EMP-' + Date.now() + '-' + Math.random().toString(36).slice(2,8), produit:'assurance_emprunteur', calculateur_id:'calculateur_economie_emprunteur', version_calculateur:CONFIG.version, date_simulation:new Date().toISOString(), url_calculateur:'https://assuransa.fr/emprunteur-simulateur-economies/', donnees_metier:{ pret:exportLoan(), assures:activeBorrowers, calcul:exportCalculation() } }; }function openContactFromResult() { try { sessionStorage.setItem('assuransa_pending_simulation', JSON.stringify(buildPendingSimulation())); } catch (e) {} var contactUrl = String(root.getAttribute('data-contact-url') || '').trim() || 'https://asorae.fr/contact/'; window.location.href = contactUrl; }function returnFromResult() { var configuredUrl = String(root.getAttribute('data-return-url') || '').trim(); if (configuredUrl) { window.location.href = configuredUrl; return; } if (window.history && window.history.length > 1) { window.history.back(); return; } window.location.href = '/'; }function resetCalculator() { state = freshState(); files = { amort:[], insurance:[], offer:[], other:[] }; qAll('[data-asw-date]').forEach(clearDateError); qAll('input, select').forEach(function (input) { if (input.type === 'checkbox') input.checked = false; else if (input.type !== 'file') input.value = ''; }); el('cee-v17-main-quotity').value = '100'; el('cee-v17-co-quotity').value = '50'; qAll('.wiz-choice').forEach(function (button) { button.classList.remove('is-selected'); button.setAttribute('aria-pressed', 'false'); }); Object.keys(files).forEach(renderFileList); var coToggle = el('cee-v17-co-accordion-toggle'); var coContent = el('cee-v17-co-accordion-content'); if (coToggle) coToggle.setAttribute('aria-expanded', 'false'); if (coContent) coContent.hidden = true; var docToggle = el('cee-v17-doc-accordion-toggle'); var docContent = el('cee-v17-doc-accordion-content'); if (docToggle) docToggle.setAttribute('aria-expanded', 'false'); if (docContent) docContent.hidden = true; root.ceePreparedPayload = null; root.ceePreparedFormData = null; var result = el('cee-v17-result'); if (result) result.innerHTML = ''; updateConditionals(); syncAllChoices(); showStep(1); }function ceeScrollTargetFor(input) { var node = input.parentElement; while (node && node !== document.body) { var style = window.getComputedStyle(node); if (/(auto|scroll)/.test(style.overflowY) && node.scrollHeight > node.clientHeight) return node; node = node.parentElement; } return window; }root.addEventListener('wheel', function (event) { var input = event.target && event.target.closest ? event.target.closest('input[type="number"]') : null; if (!input || !root.contains(input)) return; var original = input.value; event.preventDefault(); var scrollTarget = ceeScrollTargetFor(input); var multiplier = event.deltaMode === 1 ? 16 : (event.deltaMode === 2 ? window.innerHeight : 1); var deltaY = event.deltaY * multiplier; if (scrollTarget === window) window.scrollBy(0,deltaY); else scrollTarget.scrollBy(0,deltaY); requestAnimationFrame(function () { if (input.value !== original) input.value = original; }); }, { capture:true, passive:false });function ceeSetNumericValue(input, value) { input.value = String(value); input.dispatchEvent(new Event('input',{bubbles:true})); }function ceeInsertFrenchDecimal(input, digit) { var current = String(input.value || ''); if (current.indexOf('.') !== -1) { delete input.dataset.aswDecimalPending; return; } ceeSetNumericValue(input,(current || '0') + '.' + String(digit)); delete input.dataset.aswDecimalPending; }root.addEventListener('keydown', function (event) { var input = event.target && event.target.closest ? event.target.closest('input[type="number"]') : null; if (!input || !root.contains(input)) return; if (event.key === 'ArrowUp' || event.key === 'ArrowDown') { event.preventDefault(); return; } if (input.dataset.numeric === 'integer') return; if (event.key === ',') { event.preventDefault(); if (String(input.value || '').indexOf('.') === -1) input.dataset.aswDecimalPending = '1'; return; } if (input.dataset.aswDecimalPending === '1') { if (/^[0-9]$/.test(event.key)) { event.preventDefault(); ceeInsertFrenchDecimal(input,event.key); return; } if (event.key === 'Backspace' || event.key === 'Delete' || event.key === 'Escape' || event.key === 'Tab' || event.key === 'Enter') delete input.dataset.aswDecimalPending; } });root.addEventListener('beforeinput', function (event) { var input = event.target.closest('input[type="number"][data-asw-number]'); if (!input || !root.contains(input) || input.dataset.numeric === 'integer') return; var data = event.data; if (input.dataset.aswDecimalPending === '1' && data && /^[0-9]$/.test(data)) { event.preventDefault(); ceeInsertFrenchDecimal(input,data); return; } if (!data || data.indexOf(',') === -1) return; event.preventDefault(); var normalized = String(data).replace(/\s+/g,'').replace(',','.'); var current = String(input.value || ''); if (normalized === '.') { if (current.indexOf('.') === -1) input.dataset.aswDecimalPending = '1'; return; } var candidate = current + normalized; if (/^(?:\d+(?:\.\d*)?|\.\d+)$/.test(candidate) && !/\.$/.test(candidate)) ceeSetNumericValue(input,candidate); });root.addEventListener('paste', function (event) { var input = event.target.closest('input[type="number"][data-asw-number]'); if (!input || !root.contains(input) || input.dataset.numeric === 'integer' || !event.clipboardData) return; var text = String(event.clipboardData.getData('text') || '').trim(); if (text.indexOf(',') === -1) return; var normalized = text.replace(/\s+/g,'').replace(',','.'); if (!/^(?:\d+(?:\.\d+)?|\.\d+)$/.test(normalized)) return; event.preventDefault(); ceeSetNumericValue(input,normalized); delete input.dataset.aswDecimalPending; });root.addEventListener('blur', function (event) { var numeric = event.target.closest ? event.target.closest('input[type="number"][data-asw-number]') : null; if (numeric) delete numeric.dataset.aswDecimalPending; var dateInput = event.target.closest ? event.target.closest('[data-asw-date]') : null; if (dateInput && root.contains(dateInput)) validateStandardDate(dateInput); }, true);root.addEventListener('focusin', function (event) { var dateInput = event.target.closest ? event.target.closest('[data-asw-date]') : null; if (!dateInput || !root.contains(dateInput)) return; var invalid = dateInput.getAttribute('aria-invalid') === 'true' || dateInput.classList.contains('cee-v17-is-invalid'); if (invalid) { dateInput.value = ''; if (dateInput.dataset.bind) setPath(dateInput.dataset.bind, ''); clearDateError(dateInput); clearInvalidNode(dateInput); invalidatePreparedLead(); invalidateCalculation(dateInput.dataset.bind || ''); if (dateInput.dataset.bind === 'loan.startDate' || dateInput.dataset.bind === 'loan.endDate') updateSchedulePreview(); } setTimeout(function () { try { dateInput.setSelectionRange(0, 0); } catch (_error) {} }, 0); });root.addEventListener('input', function (event) { var target = event.target; var isQuotity = Boolean(target.dataset.bind && target.dataset.bind.indexOf('borrowers.') === 0 && target.dataset.bind.indexOf('.quotity') !== -1); if (target.dataset.numeric) normalizeNumericInput(target); if (target.classList.contains('cee-v17-date')) { formatDateInput(target); if (target.value.length === 10) validateStandardDate(target); else clearDateError(target); } else if (target.dataset.bind) setPath(target.dataset.bind, target.value); if (target.dataset.bind === 'loan.startDate' || target.dataset.bind === 'loan.endDate') updateSchedulePreview(); if (target.dataset.bind) invalidatePreparedLead(); invalidateCalculation(target.dataset.bind || ''); clearCorrectedTarget(target); if (isQuotity) updateQuotityTotal(); });root.addEventListener('change', function (event) { var target = event.target; if (target.dataset.numeric) normalizeNumericInput(target); if (target.dataset.bind) { setPath(target.dataset.bind, target.value); invalidatePreparedLead(); if (target.dataset.bind === 'loan.bankName' || target.dataset.bind === 'loan.insurerName') updateConditionals(); } if (target.dataset.bindChecked) { setPath(target.dataset.bindChecked, target.checked); updateConditionals(); invalidatePreparedLead(); invalidateCalculation(target.dataset.bindChecked); } if (target.id === 'cee-v17-consent' || target.id === 'cee-v17-legal') invalidatePreparedLead(); if (target.dataset.bind) invalidateCalculation(target.dataset.bind); if (target.type === 'file' && target.id.indexOf('cee-v17-doc-') === 0) handleFiles(target, target.id.replace('cee-v17-doc-', '')); clearCorrectedTarget(target); });var coAccordionToggle = el('cee-v17-co-accordion-toggle'); if (coAccordionToggle) coAccordionToggle.addEventListener('click', function () { var content = el('cee-v17-co-accordion-content'); var expanded = coAccordionToggle.getAttribute('aria-expanded') === 'true'; coAccordionToggle.setAttribute('aria-expanded', expanded ? 'false' : 'true'); if (content) content.hidden = expanded; });root.addEventListener('click', function (event) { var button = event.target.closest('button'); if (!button || !root.contains(button)) return; if (button.id === 'cee-v17-doc-accordion-toggle') { var content = el('cee-v17-doc-accordion-content'); var expanded = button.getAttribute('aria-expanded') === 'true'; button.setAttribute('aria-expanded', expanded ? 'false' : 'true'); content.hidden = expanded; announce(expanded ? 'Documents repliés.' : 'Documents affichés.'); return; } if (button.hasAttribute('data-cee-next')) { nextStep(); return; } if (button.hasAttribute('data-cee-prev')) { prevStep(); return; } if (button.hasAttribute('data-cee-contact')) { openContactFromResult(); return; } if (button.hasAttribute('data-cee-print')) { printResult(); return; } if (button.hasAttribute('data-cee-restart')) { resetCalculator(); return; } if (button.dataset.ceeDocRemove) { event.preventDefault(); event.stopPropagation(); files[button.dataset.ceeDocRemove].splice(Number(button.dataset.ceeDocIndex), 1); invalidatePreparedLead(); renderFileList(button.dataset.ceeDocRemove); announce('Fichier retiré.'); return; } if (button.dataset.choice) { var path = button.dataset.choice; var previous = getPath(path); var value = decodeChoiceValue(button.dataset.value); setPath(path, value); if (path === 'loan.insuranceOrigin' && previous !== value) { if (value !== 'bank') { state.loan.bankName = ''; state.loan.bankOther = ''; el('cee-v17-bank').value = ''; el('cee-v17-bank-other').value = ''; } if (value !== 'changed') { state.loan.insurerName = ''; state.loan.insurerOther = ''; el('cee-v17-insurer').value = ''; el('cee-v17-insurer-other').value = ''; } } if (path === 'loan.borrowerCount' && previous !== value) { if (value === '2') { state.borrowers.main.quotity = '50'; state.borrowers.co.quotity = '50'; el('cee-v17-main-quotity').value = '50'; el('cee-v17-co-quotity').value = '50'; } else { state.borrowers.main.quotity = '100'; state.borrowers.co = { birth:'', quotity:'50', smoker:'', riskyJob:'', riskySport:'' }; el('cee-v17-main-quotity').value = '100'; el('cee-v17-co-birth').value = ''; el('cee-v17-co-quotity').value = '50'; syncChoiceVisual('borrowers.co.smoker'); syncChoiceVisual('borrowers.co.riskyJob'); syncChoiceVisual('borrowers.co.riskySport'); } } if (path === 'loan.currentCostKnown' && value === false) { state.loan.totalInsuranceCost = ''; state.loan.premiumMode = ''; state.loan.variableRemainingKnown = ''; state.loan.variableRemainingCost = ''; el('cee-v17-total-insurance-cost').value = ''; el('cee-v17-variable-remaining-cost').value = ''; syncChoiceVisual('loan.premiumMode'); } syncChoiceVisual(path); clearCorrectedTarget(button); updateConditionals(); invalidatePreparedLead(); invalidateCalculation(path); announce('Sélection : ' + button.textContent.trim()); } });renderIcons(); initTooltips(); window.addEventListener('resize', alignSidebarHintsWithProgress); if (document.fonts && document.fonts.ready) document.fonts.ready.then(alignSidebarHintsWithProgress); resetCalculator(); root.ceeDiagnostics = { version:CONFIG.version, getState:function () { return JSON.parse(JSON.stringify(state)); }, calculate:function () { calculate(); return JSON.parse(JSON.stringify(state.calculation)); }, getPreparedPayload:function () { return root.ceePreparedPayload ? JSON.parse(JSON.stringify(root.ceePreparedPayload)) : null; }, config:CONFIG }; })();