{"id":2089,"date":"2026-05-29T09:59:58","date_gmt":"2026-05-29T09:59:58","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=2089"},"modified":"2026-10-21T09:15:54","modified_gmt":"2026-10-21T09:15:54","slug":"calculateur-pret-piscine","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/fr\/calculateur-pret-piscine\/","title":{"rendered":"Calculateur de pr\u00eat piscine"},"content":{"rendered":"\n<div class=\"pool-calc-container\">\n    <div class=\"pool-calc-header\">\n\n        <p>Estimez vos mensualit\u00e9s et explorez les options de financement de piscine \u00e0 l\u2019international.<\/p>\n    <\/div>\n\n    <div class=\"pool-calc-layout\">\n        <!-- Main Calculator Wrapper -->\n        <div class=\"pool-calc-main\">\n            <!-- Step 1 -->\n            <div class=\"calc-step active\" id=\"step-1\">\n                <div class=\"step-badge\">\u00c9tape 1 sur 4<\/div>\n                <h3>Co\u00fbt du projet<\/h3>\n                <div class=\"form-group\">\n                    <label for=\"project-cost\">Co\u00fbt total du projet de piscine<\/label>\n                    <div class=\"input-with-currency\">\n                        <select id=\"currency-select\" class=\"currency-toggle\" onchange=\"updateCurrencySymbols()\">\n                            <option value=\"$\">USD ($)<\/option>\n                            <option value=\"\u20ac\">EUR (\u20ac)<\/option>\n                            <option value=\"\u00a3\">GBP (\u00a3)<\/option>\n                            <option value=\"AU$\">AUD (AU$)<\/option>\n                        <\/select>\n                        <input type=\"number\" id=\"project-cost\" placeholder=\"0.00\" value=\"65000\">\n                    <\/div>\n                <\/div>\n                <button type=\"button\" class=\"btn-next\" onclick=\"nextStep(2)\">\u00c9tape suivante \u2192<\/button>\n            <\/div>\n\n            <!-- Step 2 -->\n            <div class=\"calc-step\" id=\"step-2\">\n                <div class=\"step-badge\">\u00c9tape 2 sur 4<\/div>\n                <h3>Apport &#038; taux de base<\/h3>\n                <div class=\"form-group\">\n                    <label for=\"down-payment\">Apport personnel<\/label>\n                    <div class=\"input-prefix-wrapper\">\n                        <span class=\"currency-symbol\">$<\/span>\n                        <input type=\"number\" id=\"down-payment\" placeholder=\"0.00\" value=\"10000\">\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <label for=\"custom-apr\">Taux d\u2019int\u00e9r\u00eat personnalis\u00e9 (TAEG %)<\/label>\n                    <input type=\"number\" id=\"custom-apr\" placeholder=\"ex. 6,5\" step=\"0.01\" value=\"6.5\">\n                <\/div>\n                <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn-prev\" onclick=\"prevStep(1)\">\u2190 Retour<\/button>\n                    <button type=\"button\" class=\"btn-next\" onclick=\"nextStep(3)\">\u00c9tape suivante \u2192<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Step 3 -->\n            <div class=\"calc-step\" id=\"step-3\">\n                <div class=\"step-badge\">\u00c9tape 3 sur 4<\/div>\n                <h3>Conditions du pr\u00eat<\/h3>\n                <div class=\"form-group\">\n                    <label for=\"loan-term\">Dur\u00e9e du pr\u00eat<\/label>\n                    <select id=\"loan-term\">\n                        <option value=\"60\">5 ans (60 mois)<\/option>\n                        <option value=\"84\">7 ans (84 mois)<\/option>\n                        <option value=\"120\" selected>10 ans (120 mois)<\/option>\n                        <option value=\"144\">12 ans (144 mois)<\/option>\n                        <option value=\"180\">15 ans (180 mois)<\/option>\n                        <option value=\"240\">20 ans (240 mois)<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label for=\"credit-score\">Profil de solvabilit\u00e9 (remplace le taux personnalis\u00e9 sauf si \u00ab&nbsp;Personnalis\u00e9&nbsp;\u00bb est s\u00e9lectionn\u00e9)<\/label>\n                    <select id=\"credit-score\">\n                        <option value=\"custom\" selected>Taux personnalis\u00e9 (saisi \u00e0 l\u2019\u00e9tape 2)<\/option>\n                        <option value=\"excellent\">Excellent (750+) ~ 6,25 %<\/option>\n                        <option value=\"good\">Bon (700-749) ~ 8,00 %<\/option>\n                        <option value=\"fair\">Moyen (650-699) ~ 11,00 %<\/option>\n                        <option value=\"below\">Inf\u00e9rieur \u00e0 650 ~ 15,5 %<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn-prev\" onclick=\"prevStep(2)\">\u2190 Retour<\/button>\n                    <button type=\"button\" class=\"btn-calc\" onclick=\"calculatePoolLoan()\">Calculer<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Step 4: Results -->\n            <div class=\"calc-step\" id=\"step-4\">\n                <div class=\"step-badge\">\u00c9tape 4 sur 4&nbsp;: R\u00e9sultats<\/div>\n\n                <div class=\"results-grid\">\n                    <div class=\"result-card main-card\">\n                        <h4>Mensualit\u00e9<\/h4>\n                        <div class=\"result-value\" id=\"res-monthly\">0.00<\/div>\n                    <\/div>\n                    <div class=\"result-card\">\n                        <h4>Montant du pr\u00eat<\/h4>\n                        <div class=\"result-value\" id=\"res-loan-amt\">0.00<\/div>\n                    <\/div>\n                    <div class=\"result-card\">\n                        <h4>Int\u00e9r\u00eats totaux<\/h4>\n                        <div class=\"result-value\" id=\"res-total-int\">0.00<\/div>\n                    <\/div>\n                    <div class=\"result-card\">\n                        <h4>Co\u00fbt total (pr\u00eat + int\u00e9r\u00eats)<\/h4>\n                        <div class=\"result-value\" id=\"res-total-cost\">0.00<\/div>\n                    <\/div>\n                    <div class=\"result-card\">\n                        <h4>Taux d\u2019int\u00e9r\u00eat (TAEG)<\/h4>\n                        <div class=\"result-value\" id=\"res-apr\">0.00%<\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn-prev\" onclick=\"prevStep(3)\">\u2190 Recalculer<\/button>\n                    <button type=\"button\" class=\"btn-amort\" onclick=\"toggleAmortizationTable()\">Afficher l\u2019amortissement annuel<\/button>\n                <\/div>\n\n                <div id=\"amortization-wrapper\" style=\"display: none;\">\n                    <table class=\"amort-table\">\n                        <thead>\n                            <tr>\n                                <th>Ann\u00e9e<\/th>\n                                <th>Paiement<\/th>\n                                <th>Capital<\/th>\n                                <th>Int\u00e9r\u00eats<\/th>\n                                <th>Solde<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"amort-table-body\">\n                            <!-- Dynamic data rows -->\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Sidebar Global Cost Guide Reference -->\n        <div class=\"pool-calc-sidebar\">\n            <h3 class=\"sidebar-main-title\">Guide international des co\u00fbts de piscine<\/h3>\n\n            <!-- Region Tab Controls -->\n            <div class=\"region-tabs\">\n                <button class=\"tab-btn active\" onclick=\"switchRegion('us')\">USA<\/button>\n                <button class=\"tab-btn\" onclick=\"switchRegion('eu')\">Europe<\/button>\n                <button class=\"tab-btn\" onclick=\"switchRegion('au')\">Australie<\/button>\n            <\/div>\n\n            <!-- US Data -->\n            <div id=\"region-us\" class=\"region-content active\">\n                <h4>Piscines enterr\u00e9es (cl\u00e9 en main)<\/h4>\n                <ul>\n                    <li><strong>Liner vinyle&nbsp;:<\/strong> $45,000 \u2013 $90,000 <small>(Remplacement du liner tous les 7-10 ans)<\/small><\/li>\n                    <li><strong>Coque polyester&nbsp;:<\/strong> $55,000 \u2013 $100,000+ <small>(Entretien r\u00e9duit)<\/small><\/li>\n                    <li><strong>B\u00e9ton \/ Gunite&nbsp;:<\/strong> $65,000 \u2013 $120,000+ <small>(Enti\u00e8rement sur mesure)<\/small><\/li>\n                <\/ul>\n                <h4>Piscines hors-sol<\/h4>\n                <ul>\n                    <li><strong>Parois souples&nbsp;:<\/strong> $200 \u2013 $2,500 <small>(DIY \/ saisonnier)<\/small><\/li>\n                    <li><strong>Structure m\u00e9tallique \/ r\u00e9sine&nbsp;:<\/strong> $1,500 \u2013 $10,000<\/li>\n                <\/ul>\n                <h4>Co\u00fbts annexes<\/h4>\n                <ul>\n                    <li><strong>Permis &#038; contr\u00f4les&nbsp;:<\/strong> $100 \u2013 $1,800<\/li>\n                    <li><strong>Terrasses &#038; am\u00e9nagement paysager&nbsp;:<\/strong> $3,000 \u2013 $20,000<\/li>\n                    <li><strong>Cl\u00f4ture de s\u00e9curit\u00e9&nbsp;:<\/strong> $1,000 \u2013 $2,500<\/li>\n                    <li><strong>Syst\u00e8mes de chauffage&nbsp;:<\/strong> $500 \u2013 $7,500<\/li>\n                <\/ul>\n            <\/div>\n\n            <!-- Europe Data -->\n            <div id=\"region-eu\" class=\"region-content\">\n                <h4>Co\u00fbts d\u2019installation<\/h4>\n                <ul>\n                    <li><strong>Hors-sol &#038; kits DIY&nbsp;:<\/strong> \u20ac1,000 \u2013 \u20ac15,000<\/li>\n                    <li><strong>Enterr\u00e9e standard (France\/Sud)&nbsp;:<\/strong> \u20ac15,000 \u2013 \u20ac40,000 <small>(ex. 7 m \u00d7 3 m)<\/small><\/li>\n                    <li><strong>Enterr\u00e9e haut de gamme (UK\/CH\/sur mesure)&nbsp;:<\/strong> \u00a330,000 \u2013 \u20ac100,000+ <small>(B\u00e9ton\/C\u00e9ramique)<\/small><\/li>\n                <\/ul>\n                <h4>Entretien (priv\u00e9)<\/h4>\n                <ul>\n                    <li><strong>\u00c9nergie &#038; produits chimiques&nbsp;:<\/strong> ~\u20ac15 \u2013 \u20ac50 \/ mois <small>(Filtration\/traitement estival)<\/small><\/li>\n                    <li><strong>Entretien professionnel&nbsp;:<\/strong> \u00a31,000 \u2013 \u20ac4,000 \/ an <small>(Ouverture\/fermeture saisonni\u00e8re)<\/small><\/li>\n                    <li><strong>Chauffage&nbsp;:<\/strong> Une pompe \u00e0 chaleur augmente fortement les co\u00fbts dans les climats froids.<\/li>\n                <\/ul>\n                <h4>S\u00e9ances en piscine publique<\/h4>\n                <ul>\n                    <li><strong>France&nbsp;:<\/strong> \u20ac3.50 \u2013 \u20ac10 \/ s\u00e9ance<\/li>\n                    <li><strong>Royaume-Uni&nbsp;:<\/strong> \u00a35 \u2013 \u00a315 \/ s\u00e9ance<\/li>\n                    <li><strong>Pays nordiques &#038; Europe de l\u2019Est&nbsp;:<\/strong> \u20ac5 \u2013 \u20ac20 <small>(inclut sauna\/spa)<\/small><\/li>\n                <\/ul>\n            <\/div>\n\n            <!-- Australia Data -->\n            <div id=\"region-au\" class=\"region-content\">\n                <h4>Co\u00fbts moyens par type<\/h4>\n                <ul>\n                    <li><strong>Hors-sol \/ vinyle&nbsp;:<\/strong> $3,500 \u2013 $15,000<\/li>\n                    <li><strong>Plunge \/ modulaire&nbsp;:<\/strong> $20,000 \u2013 $50,000 <small>(Id\u00e9al pour petits jardins)<\/small><\/li>\n                    <li><strong>Coque polyester&nbsp;:<\/strong> $25,000 \u2013 $75,000+ <small>(D\u00e9pend de l\u2019acc\u00e8s grue)<\/small><\/li>\n                    <li><strong>Piscines en b\u00e9ton&nbsp;:<\/strong> $50,000 \u2013 $100,000+ <small>(Plus grande libert\u00e9 de design)<\/small><\/li>\n                <\/ul>\n                <h4>Co\u00fbts cach\u00e9s &#038; suppl\u00e9mentaires<\/h4>\n                <p style=\"font-size: 12px; color: #718096; margin: 5px 0 10px 0;\">Pr\u00e9voyez 10 000 \u00e0 30 000 $ suppl\u00e9mentaires pour&nbsp;:<\/p>\n                <ul>\n                    <li><strong>Autorisations municipales&nbsp;:<\/strong> $2,000 \u2013 $4,000<\/li>\n                    <li><strong>Cl\u00f4ture de piscine&nbsp;:<\/strong> $200 \u2013 $600 \/ m\u00e8tre lin\u00e9aire<\/li>\n                    <li><strong>Chauffage (solaire\/pompe \u00e0 chaleur)&nbsp;:<\/strong> $2,700 \u2013 $6,900<\/li>\n                    <li><strong>Am\u00e9nagement paysager&nbsp;:<\/strong> Terrasse, murs de sout\u00e8nement et terrassement peuvent doubler le co\u00fbt.<\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<style>\n\/* Scoped Styling for WordPress compatibility *\/\n.pool-calc-container {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    max-width: 1050px;\n    margin: 20px auto;\n    background: #ffffff;\n    border-radius: 12px;\n    box-shadow: 0 8px 30px rgba(0,0,0,0.08);\n    overflow: hidden;\n    color: #333333;\n}\n.pool-calc-header {\n    background-color: #1ecad3;\n    color: #ffffff;\n    padding: 30px;\n    text-align: center;\n}\n.pool-calc-header h2 { margin: 0 0 10px 0; color: #ffffff; font-size: 28px; font-weight: 700; }\n.pool-calc-header p { margin: 0; font-size: 16px; opacity: 0.9; }\n.pool-calc-layout { display: flex; flex-wrap: wrap; }\n.pool-calc-main { flex: 1; min-width: 300px; padding: 40px; border-right: 1px solid #eeeeee; }\n.pool-calc-sidebar { width: 340px; padding: 35px 25px; background-color: #fcfdfd; box-sizing: border-box; }\n@media (max-width: 868px) {\n    .pool-calc-layout { flex-direction: column; }\n    .pool-calc-sidebar { width: 100%; border-top: 1px solid #eeeeee; }\n    .pool-calc-main { padding: 25px; }\n}\n.calc-step { display: none; }\n.calc-step.active { display: block; animation: fadeIn 0.4s ease-in-out; }\n@keyframes fadeIn {\n    from { opacity: 0; transform: translateY(4px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n.step-badge {\n    display: inline-block;\n    background: rgba(30, 202, 211, 0.1);\n    color: #1ecad3;\n    padding: 4px 12px;\n    border-radius: 20px;\n    font-size: 13px;\n    font-weight: 600;\n    margin-bottom: 15px;\n}\n.calc-step h3 { margin: 0 0 25px 0; font-size: 22px; color: #222; }\n.form-group { margin-bottom: 25px; }\n.form-group label { display: block; font-weight: 600; margin-bottom: 8px; font-size: 15px; color: #444; }\n.input-with-currency, .input-prefix-wrapper {\n    display: flex; align-items: center;\n    border: 2px solid #e2e8f0; border-radius: 8px; overflow: hidden;\n}\n.input-with-currency:focus-within, .input-prefix-wrapper:focus-within { border-color: #1ecad3; }\n.currency-toggle {\n    background: #f7fafc; border: none; border-right: 2px solid #e2e8f0;\n    padding: 12px; font-weight: bold; color: #4a5568; outline: none; cursor: pointer;\n}\n.currency-symbol {\n    background: #f7fafc; padding: 12px 18px; font-weight: bold;\n    color: #4a5568; border-right: 2px solid #e2e8f0;\n}\n.form-group input[type=\"number\"], .form-group select {\n    width: 100%; padding: 12px 15px; border: 2px solid #e2e8f0;\n    border-radius: 8px; font-size: 16px; outline: none; box-sizing: border-box;\n}\n.input-with-currency input, .input-prefix-wrapper input { border: none !important; width: 100%; }\n.btn-next, .btn-calc, .btn-amort {\n    background-color: #1ecad3; color: white; border: none;\n    padding: 14px 28px; font-size: 16px; font-weight: 600;\n    border-radius: 8px; cursor: pointer; transition: background 0.2s;\n}\n.btn-next:hover, .btn-calc:hover, .btn-amort:hover { background-color: #17b3ba; }\n.btn-prev {\n    background-color: #e2e8f0; color: #4a5568; border: none;\n    padding: 14px 28px; font-size: 16px; font-weight: 600;\n    border-radius: 8px; cursor: pointer; margin-right: 10px;\n}\n.btn-prev:hover { background-color: #cbd5e0; }\n.btn-group { margin-top: 30px; display: flex; }\n.btn-amort { background-color: #2d3748; }\n.btn-amort:hover { background-color: #1a202c; }\n.results-grid {\n    display: grid; grid-template-columns: repeat(2, 11fr);\n    gap: 15px; margin-bottom: 25px;\n}\n.result-card { background: #f7fafc; padding: 15px; border-radius: 8px; border-left: 4px solid #1ecad3; }\n.result-card.main-card {\n    grid-column: span 2;\n    background: rgba(30, 202, 211, 0.05);\n    border-left-width: 6px;\n}\n.result-card h4 {\n    margin: 0 0 5px 0; font-size: 13px; text-transform: uppercase;\n    color: #718096; letter-spacing: 0.5px;\n}\n.result-value { font-size: 20px; font-weight: 700; color: #1a202c; }\n.main-card .result-value { font-size: 32px; color: #1ecad3; }\n#amortization-wrapper {\n    margin-top: 30px; max-height: 400px; overflow-y: auto;\n    border: 1px solid #e2e8f0; border-radius: 8px;\n}\n.amort-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; }\n.amort-table th {\n    background-color: #f7fafc; padding: 12px; position: sticky; top: 0;\n    border-bottom: 2px solid #e2e8f0; color: #4a5568;\n}\n.amort-table td { padding: 10px 12px; border-bottom: 1px solid #edf2f7; }\n.sidebar-main-title { margin: 0 0 15px 0; font-size: 18px; color: #1a202c; }\n.region-tabs {\n    display: flex; gap: 5px; margin-bottom: 20px;\n    border-bottom: 2px solid #e2e8f0; padding-bottom: 8px;\n}\n.tab-btn {\n    background: none; border: none; padding: 6px 12px;\n    font-size: 13px; font-weight: 600; color: #718096;\n    cursor: pointer; border-radius: 4px; transition: all 0.2s;\n}\n.tab-btn:hover { background: #edf2f7; color: #2d3748; }\n.tab-btn.active { background-color: #1ecad3; color: #ffffff; }\n.region-content { display: none; }\n.region-content.active { display: block; animation: fadeIn 0.3s ease; }\n.pool-calc-sidebar h4 { margin: 15px 0 5px 0; font-size: 14px; color: #2d3748; }\n.pool-calc-sidebar ul { margin: 0 0 15px 0; padding-left: 18px; }\n.pool-calc-sidebar li { font-size: 13px; margin-bottom: 6px; line-height: 1.4; color: #4a5568; }\n.pool-calc-sidebar small { display: block; color: #718096; font-size: 11px; }\n<\/style>\n\n<script>\nlet currentCurrencySymbol = \"$\";\n\nfunction updateCurrencySymbols() {\n    const selector = document.getElementById('currency-select');\n    currentCurrencySymbol = selector.value;\n    const prefix = document.querySelector('.currency-symbol');\n    if(prefix) prefix.innerText = currentCurrencySymbol;\n}\n\nfunction nextStep(stepNumber) {\n    document.querySelectorAll('.calc-step').forEach(step => step.classList.remove('active'));\n    document.getElementById(`step-${stepNumber}`).classList.add('active');\n}\n\nfunction prevStep(stepNumber) {\n    document.querySelectorAll('.calc-step').forEach(step => step.classList.remove('active'));\n    document.getElementById(`step-${stepNumber}`).classList.add('active');\n}\n\nfunction switchRegion(regionCode) {\n    document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));\n    event.target.classList.add('active');\n    document.querySelectorAll('.region-content').forEach(panel => panel.classList.remove('active'));\n    document.getElementById(`region-${regionCode}`).classList.add('active');\n}\n\nfunction getSelectedAPR() {\n    const creditScore = document.getElementById('credit-score').value;\n    const customApr = parseFloat(document.getElementById('custom-apr').value) || 0;\n    switch(creditScore) {\n        case 'excellent': return 6.25;\n        case 'good':      return 8.00;\n        case 'fair':      return 11.00;\n        case 'below':     return 15.50;\n        case 'custom':\n        default:          return customApr;\n    }\n}\n\nfunction calculatePoolLoan() {\n    const totalCost = parseFloat(document.getElementById('project-cost').value) || 0;\n    const downPayment = parseFloat(document.getElementById('down-payment').value) || 0;\n    const months = parseInt(document.getElementById('loan-term').value) || 60;\n    const apr = getSelectedAPR();\n    const loanAmount = Math.max(0, totalCost - downPayment);\n    const monthlyRate = (apr \/ 100) \/ 12;\n    let monthlyPayment = 0;\n    if (loanAmount > 0) {\n        if (monthlyRate === 0) {\n            monthlyPayment = loanAmount \/ months;\n        } else {\n            monthlyPayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, months)) \/ (Math.pow(1 + monthlyRate, months) - 1);\n        }\n    }\n    const totalCostOfLoan = monthlyPayment * months;\n    const totalInterest = Math.max(0, totalCostOfLoan - loanAmount);\n    document.getElementById('res-monthly').innerText = currentCurrencySymbol + \" \" + monthlyPayment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});\n    document.getElementById('res-loan-amt').innerText = currentCurrencySymbol + \" \" + loanAmount.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});\n    document.getElementById('res-total-int').innerText = currentCurrencySymbol + \" \" + totalInterest.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});\n    document.getElementById('res-total-cost').innerText = currentCurrencySymbol + \" \" + (loanAmount + totalInterest).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});\n    document.getElementById('res-apr').innerText = apr.toFixed(2) + \"%\";\n    buildAmortizationSchedule(loanAmount, monthlyRate, monthlyPayment, months);\n    nextStep(4);\n}\n\nfunction buildAmortizationSchedule(loanAmount, monthlyRate, monthlyPayment, totalMonths) {\n    const tableBody = document.getElementById('amort-table-body');\n    tableBody.innerHTML = \"\";\n    let balance = loanAmount;\n    let yearlyPrincipal = 0;\n    let yearlyInterest = 0;\n    let yearlyPayment = 0;\n    let yearCounter = 1;\n    for (let m = 1; m <= totalMonths; m++) {\n        let interestPayment = balance * monthlyRate;\n        let principalPayment = monthlyPayment - interestPayment;\n        if (balance < principalPayment) {\n            principalPayment = balance;\n            monthlyPayment = principalPayment + interestPayment;\n        }\n        balance -= principalPayment;\n        yearlyPrincipal += principalPayment;\n        yearlyInterest += interestPayment;\n        yearlyPayment += monthlyPayment;\n        if (m % 12 === 0 || m === totalMonths) {\n            const row = document.createElement('tr');\n            row.innerHTML = `\n                <td><strong>Ann\u00e9e ${yearCounter}<\/strong><\/td>\n                <td>${currentCurrencySymbol} ${yearlyPayment.toLocaleString(undefined, {maximumFractionDigits: 0})}<\/td>\n                <td>${currentCurrencySymbol} ${yearlyPrincipal.toLocaleString(undefined, {maximumFractionDigits: 0})}<\/td>\n                <td>${currentCurrencySymbol} ${yearlyInterest.toLocaleString(undefined, {maximumFractionDigits: 0})}<\/td>\n                <td>${currentCurrencySymbol} ${Math.max(0, balance).toLocaleString(undefined, {maximumFractionDigits: 0})}<\/td>\n            `;\n            tableBody.appendChild(row);\n            yearlyPrincipal = 0;\n            yearlyInterest = 0;\n            yearlyPayment = 0;\n            yearCounter++;\n        }\n        if (balance <= 0) break;\n    }\n}\n\nfunction toggleAmortizationTable() {\n    const wrapper = document.getElementById('amortization-wrapper');\n    const btn = document.querySelector('.btn-amort');\n    if (wrapper.style.display === 'none') {\n        wrapper.style.display = 'block';\n        btn.innerText = \"Masquer l\u2019amortissement\";\n    } else {\n        wrapper.style.display = 'none';\n        btn.innerText = \"Afficher l\u2019amortissement annuel\";\n    }\n}\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ sur le financement d\u2019une piscine<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1779168690306\"><strong class=\"schema-faq-question\">Une piscine augmente-t-elle la valeur de la maison&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Oui, mais en g\u00e9n\u00e9ral de seulement 5 % \u00e0 7 % de la valeur globale du bien. Si une piscine enterr\u00e9e renforce l\u2019attrait visuel et la valeur de revente dans les climats chauds, elle permet rarement de r\u00e9cup\u00e9rer 100 % du co\u00fbt d\u2019installation initial.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168716210\"><strong class=\"schema-faq-question\">Quel profil de solvabilit\u00e9 faut-il pour obtenir un pr\u00eat piscine&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Certains pr\u00eateurs acceptent des profils modestes, mais il faut g\u00e9n\u00e9ralement un bon dossier de cr\u00e9dit pour obtenir les taux d\u2019int\u00e9r\u00eat les plus comp\u00e9titifs et des conditions souples sur un pr\u00eat non garanti.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168725206\"><strong class=\"schema-faq-question\">Puis-je financer une piscine sans apport&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Oui. De nombreux pr\u00eats personnels non garantis et programmes de financement sp\u00e9cialis\u00e9s piscine proposent une formule \u00e0 100 % sans apport, \u00e0 condition de pr\u00e9senter un bon historique de cr\u00e9dit et des revenus v\u00e9rifiables.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168742183\"><strong class=\"schema-faq-question\">Combien de temps prend l\u2019approbation d\u2019un pr\u00eat piscine&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Un pr\u00eat personnel non garanti pour piscine peut \u00eatre valid\u00e9 rapidement, souvent en 1 \u00e0 3 jours ouvr\u00e9s. Les solutions garanties par le bien (pr\u00eat ou ligne de cr\u00e9dit hypoth\u00e9caire) demandent une \u00e9valuation et une instruction formelle, et prennent g\u00e9n\u00e9ralement de 2 \u00e0 6 semaines.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168751940\"><strong class=\"schema-faq-question\">Faut-il rembourser son pr\u00eat piscine par anticipation&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Oui, en r\u00e8gle g\u00e9n\u00e9rale. Solder le capital plus t\u00f4t r\u00e9duit le total des int\u00e9r\u00eats pay\u00e9s. V\u00e9rifiez d\u2019abord que votre contrat ne pr\u00e9voit pas d\u2019indemnit\u00e9s de remboursement anticip\u00e9 (la plupart des pr\u00eats personnels non garantis n\u2019en imposent pas).<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168769212\"><strong class=\"schema-faq-question\">Les int\u00e9r\u00eats d\u2019un pr\u00eat piscine sont-ils d\u00e9ductibles d\u2019imp\u00f4ts&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Une d\u00e9duction n\u2019est possible que dans le cadre d\u2019un pr\u00eat garanti par le bien immobilier et lorsque la piscine est reconnue comme une am\u00e9lioration durable du logement. Les r\u00e8gles d\u00e9pendent du pays&nbsp;: consultez un conseiller fiscal en cas de doute. Les int\u00e9r\u00eats d\u2019un pr\u00eat personnel non garanti ne sont en g\u00e9n\u00e9ral pas d\u00e9ductibles.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168785407\"><strong class=\"schema-faq-question\">Que se passe-t-il si je vends ma maison avant la fin du pr\u00eat&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Si le pr\u00eat est garanti par le logement, le solde restant doit \u00eatre rembours\u00e9 imm\u00e9diatement lors de la vente avec le produit de cession. S\u2019il s\u2019agit d\u2019un pr\u00eat personnel non garanti, vous continuez \u00e0 payer vos mensualit\u00e9s normalement, car la dette est attach\u00e9e \u00e0 vous et non \u00e0 la maison.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779168798809\"><strong class=\"schema-faq-question\">Quel est le taux d\u2019int\u00e9r\u00eat habituel d\u2019un pr\u00eat piscine&nbsp;?<\/strong> <p class=\"schema-faq-answer\">Les taux varient fortement selon votre profil. Ils se situent en g\u00e9n\u00e9ral entre 5,5 % et 7 % pour les meilleurs dossiers, et peuvent grimper de 13 % \u00e0 18 % pour les emprunteurs en reconstruction de cr\u00e9dit.<\/p> <\/div> <\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<!-- aiper-tool-links -->\n<div class=\"aiper-tool-links\">\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Plus d'outils<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-temps-remplissage-piscine\/\" class=\"aiper-tl-tag\">Calculateur de temps de remplissage de piscine<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-taux-renouvellement-piscine\/\" class=\"aiper-tl-tag\">Calculateur de taux de renouvellement de piscine<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-indice-saturation-piscine\/\" class=\"aiper-tl-tag\">Calculateur d'indice de saturation pour piscine (LSI)<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Articles connexes<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/fr\/reduire-alcalinite-piscine\/\" class=\"aiper-tl-tag\">Comment r\u00e9duire l'alcalinit\u00e9 d'une piscine<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/robot-piscine-bloque-drain-principal\/\" class=\"aiper-tl-tag\">Pourquoi le robot de piscine reste bloqu\u00e9 sur le drain principal ?<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/hivernage-piscine-enterree\/\" class=\"aiper-tl-tag\">Hivernage piscine enterr\u00e9e : guide \u00e9tape par \u00e9tape<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/laisser-robot-nettoyeur-piscine-dans-eau\/\" class=\"aiper-tl-tag\">Peut-on laisser un robot nettoyeur de piscine dans l'eau ?<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.aiper-tool-links{margin:2.5rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(148,134,247,.04),rgba(30,202,211,.04));border-radius:12px;border:1px solid rgba(148,134,247,.10)}\n.aiper-tl-section{margin-bottom:1.25rem}\n.aiper-tl-section:last-child{margin-bottom:0}\n.aiper-tl-heading{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8899aa;margin:0 0 .65rem}\n.aiper-tl-tags{display:flex;flex-wrap:wrap;gap:.5rem}\n.aiper-tl-tag{display:inline-block;padding:.4rem .95rem;font-size:.82rem;font-weight:500;line-height:1.35;color:#9486f7;background:rgba(148,134,247,.055);border:1px solid rgba(30,202,211,.25);border-radius:22px;text-decoration:none;transition:all .18s}\n.aiper-tl-tag:hover{background:#1ecad3;color:#fff;border-color:#1ecad3;box-shadow:0 2px 10px rgba(30,202,211,.22)}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>Estimez vos mensualit\u00e9s et explorez les options de financement de piscine \u00e0 l\u2019international. \u00c9tape 1 sur 4 Co\u00fbt du projet Co\u00fbt total du projet de piscine USD ($)EUR (\u20ac)GBP (\u00a3)AUD (AU$) \u00c9tape suivante \u2192 \u00c9tape 2 sur 4 Apport &#038; taux de base Apport personnel $ Taux d\u2019int\u00e9r\u00eat personnalis\u00e9 (TAEG %) \u2190 Retour \u00c9tape suivante&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-2089","page","type-page","status-publish","hentry"],"lang":"fr","translations":{"fr":2089,"de":2088,"en":1763,"es":2090},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=2089"}],"version-history":[{"count":4,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2089\/revisions"}],"predecessor-version":[{"id":11891,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2089\/revisions\/11891"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=2089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}