{"id":2917,"date":"2026-05-01T13:02:51","date_gmt":"2026-05-01T18:02:51","guid":{"rendered":"https:\/\/demandehypotheque.com\/calculatrice-hypothecaire\/"},"modified":"2026-05-01T13:55:54","modified_gmt":"2026-05-01T18:55:54","slug":"calculatrice-hypothecaire","status":"publish","type":"page","link":"https:\/\/demandehypotheque.com\/en\/calculatrice-hypothecaire\/","title":{"rendered":"Calculatrice Hypoth\u00e9caire"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2917\" class=\"elementor elementor-2917 elementor-bc-flex-widget\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cta_bar_65708 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cta_bar_65708\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cta_col_54597\" data-id=\"cta_col_54597\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cta_w_65708 elementor-widget elementor-widget-html\" data-id=\"cta_w_65708\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div style=\"display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;font-family:Roboto,sans-serif;\">\n  <span style=\"color:#fff;font-size:14px;font-weight:600;\">&#128197; R\u00e9sultats obtenus ? Un courtier peut vous obtenir encore mieux \u2014 consultation gratuite<\/span>\n  <a href=\"https:\/\/agenda.equipebeaulieu.com\/preapprobation-hypothecaire\" style=\"background:#C4131D;color:#fff;padding:9px 22px;border-radius:4px;text-decoration:none;font-weight:700;font-size:13px;white-space:nowrap;text-transform:uppercase;\" target=\"_blank\" rel=\"noopener\">Prendre rendez-vous \u2192<\/a>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-calc_section elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"calc_section\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-calc_col\" data-id=\"calc_col\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-calc_widget elementor-widget elementor-widget-html\" data-id=\"calc_widget\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<style>\n.calc-wrapper { max-width: 700px; margin: 0 auto; font-family: Roboto, sans-serif; }\n.calc-title { color: #003DA5; font-size: 2em; font-weight: 900; text-align: center; margin-bottom: 10px; }\n.calc-subtitle { text-align: center; color: #555; margin-bottom: 30px; font-size: 15px; }\n.calc-form { background: #fff; border-radius: 8px; box-shadow: 0 2px 20px rgba(0,0,0,0.1); padding: 30px; }\n.calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }\n@media(max-width:600px){ .calc-row { grid-template-columns: 1fr; } }\n.calc-field label { display: block; font-weight: 600; color: #333; margin-bottom: 6px; font-size: 14px; }\n.calc-field input, .calc-field select {\n  width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 4px;\n  font-size: 16px; box-sizing: border-box; color: #333;\n}\n.calc-field input:focus, .calc-field select:focus { border-color: #003DA5; outline: none; }\n.calc-field .hint { font-size: 12px; color: #888; margin-top: 4px; }\n.calc-btn {\n  width: 100%; padding: 16px; background: #C4131D; color: #fff;\n  border: none; border-radius: 4px; font-size: 17px; font-weight: 700;\n  cursor: pointer; text-transform: uppercase; letter-spacing: 1px; margin-top: 10px;\n}\n.calc-btn:hover { background: #003DA5; }\n.calc-results { display: none; margin-top: 25px; background: #003DA5; border-radius: 8px; padding: 25px; color: #fff; }\n.calc-results.show { display: block; }\n.results-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; text-align: center; }\n@media(max-width:600px){ .results-grid { grid-template-columns: 1fr; } }\n.result-box { background: rgba(255,255,255,0.15); border-radius: 6px; padding: 15px; }\n.result-label { font-size: 12px; opacity: 0.85; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }\n.result-value { font-size: 22px; font-weight: 900; }\n.result-sub { font-size: 11px; opacity: 0.75; margin-top: 4px; }\n.cmhc-notice { margin-top: 15px; background: rgba(255,255,255,0.1); border-radius: 6px; padding: 12px; font-size: 13px; text-align: center; }\n.amort-bar { margin-top: 20px; }\n.amort-bar-label { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 6px; opacity: 0.85; }\n.amort-bar-track { background: rgba(255,255,255,0.2); border-radius: 4px; height: 8px; }\n.amort-bar-principal { background: #fff; border-radius: 4px; height: 8px; }\n.calc-cta { text-align: center; margin-top: 20px; font-size: 14px; }\n.calc-cta a { color: #fff; font-weight: 700; text-decoration: underline; }\n.full-width-field { margin-bottom: 20px; }\n<\/style>\n\n<div class=\"calc-wrapper\">\n  <div class=\"calc-form\">\n    <div class=\"calc-row\">\n      <div class=\"calc-field\">\n        <label>Prix d'achat ($)<\/label>\n        <input type=\"number\" id=\"ch_price\" value=\"500000\" min=\"50000\" step=\"5000\">\n      <\/div>\n      <div class=\"calc-field\">\n        <label>Mise de fonds ($)<\/label>\n        <input type=\"number\" id=\"ch_down\" value=\"100000\" min=\"0\" step=\"1000\">\n        <div class=\"hint\" id=\"ch_down_pct\">20.0% de mise de fonds<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"calc-row\">\n      <div class=\"calc-field\">\n        <label>Taux d'int\u00e9r\u00eat annuel (%)<\/label>\n        <input type=\"number\" id=\"ch_rate\" value=\"5.09\" min=\"0.1\" max=\"20\" step=\"0.01\">\n        <div class=\"hint\">Taux compos\u00e9 semi-annuellement<\/div>\n      <\/div>\n      <div class=\"calc-field\">\n        <label>P\u00e9riode d'amortissement<\/label>\n        <select id=\"ch_amort\">\n          <option value=\"10\">10 ans<\/option>\n          <option value=\"15\">15 ans<\/option>\n          <option value=\"20\">20 ans<\/option>\n          <option value=\"25\" selected>25 ans<\/option>\n          <option value=\"30\">30 ans<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"full-width-field\">\n      <div class=\"calc-field\">\n        <label>Fr\u00e9quence de paiement<\/label>\n        <select id=\"ch_freq\">\n          <option value=\"12\">Mensuel (12x\/an)<\/option>\n          <option value=\"24\">Bimensuel (24x\/an)<\/option>\n          <option value=\"26\">Aux 2 semaines acc\u00e9l\u00e9r\u00e9 (26x\/an)<\/option>\n          <option value=\"52\">Hebdomadaire (52x\/an)<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <button class=\"calc-btn\" onclick=\"calculateMortgage()\">Calculer mon paiement<\/button>\n    <div class=\"calc-results\" id=\"ch_results\">\n      <div class=\"results-grid\">\n        <div class=\"result-box\">\n          <div class=\"result-label\">Paiement<\/div>\n          <div class=\"result-value\" id=\"ch_payment\">\u2014<\/div>\n          <div class=\"result-sub\" id=\"ch_freq_label\">par mois<\/div>\n        <\/div>\n        <div class=\"result-box\">\n          <div class=\"result-label\">Total des int\u00e9r\u00eats<\/div>\n          <div class=\"result-value\" id=\"ch_total_interest\">\u2014<\/div>\n          <div class=\"result-sub\">sur la p\u00e9riode<\/div>\n        <\/div>\n        <div class=\"result-box\">\n          <div class=\"result-label\">Co\u00fbt total<\/div>\n          <div class=\"result-value\" id=\"ch_total_cost\">\u2014<\/div>\n          <div class=\"result-sub\">capital + int\u00e9r\u00eats<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"amort-bar\">\n        <div class=\"amort-bar-label\">\n          <span>Capital <span id=\"ch_pct_cap\">\u2014<\/span>%<\/span>\n          <span>Int\u00e9r\u00eats <span id=\"ch_pct_int\">\u2014<\/span>%<\/span>\n        <\/div>\n        <div class=\"amort-bar-track\"><div class=\"amort-bar-principal\" id=\"ch_bar\"><\/div><\/div>\n      <\/div>\n      <div class=\"cmhc-notice\" id=\"ch_cmhc\"><\/div>\n      <div class=\"calc-cta\">\n        <p>Pr\u00eat \u00e0 aller de l'avant ? <a href=\"\/contact\/\">Contactez-nous<\/a> \u2014 nous n\u00e9gocions pour vous le meilleur taux.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\ndocument.getElementById('ch_price').addEventListener('input', updateDownPct);\ndocument.getElementById('ch_down').addEventListener('input', updateDownPct);\nfunction updateDownPct(){\n  var price = parseFloat(document.getElementById('ch_price').value)||0;\n  var down = parseFloat(document.getElementById('ch_down').value)||0;\n  var pct = price > 0 ? (down\/price*100).toFixed(1) : '0.0';\n  document.getElementById('ch_down_pct').textContent = pct + '% de mise de fonds';\n}\nfunction fmt(n){ return '$' + n.toFixed(0).replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ' '); }\nfunction calculateMortgage(){\n  var price = parseFloat(document.getElementById('ch_price').value)||0;\n  var down = parseFloat(document.getElementById('ch_down').value)||0;\n  var annualRate = parseFloat(document.getElementById('ch_rate').value)||0;\n  var years = parseInt(document.getElementById('ch_amort').value)||25;\n  var freq = parseInt(document.getElementById('ch_freq').value)||12;\n  var principal = price - down;\n  if(principal <= 0 || annualRate <= 0){ alert('Veuillez entrer des valeurs valides.'); return; }\n  \/\/ Canada: semi-annual compounding\n  var effectiveAnnual = Math.pow(1 + (annualRate\/100)\/2, 2) - 1;\n  var periodicRate = Math.pow(1 + effectiveAnnual, 1\/freq) - 1;\n  var n = years * freq;\n  var payment = principal * periodicRate * Math.pow(1+periodicRate,n) \/ (Math.pow(1+periodicRate,n)-1);\n  var totalPaid = payment * n;\n  var totalInterest = totalPaid - principal;\n  var pctCap = (principal\/totalPaid*100).toFixed(1);\n  var pctInt = (100 - parseFloat(pctCap)).toFixed(1);\n  var freqLabels = {12:'par mois', 24:'aux 2 semaines', 26:'aux 2 semaines', 52:'par semaine'};\n  document.getElementById('ch_payment').textContent = fmt(payment);\n  document.getElementById('ch_freq_label').textContent = freqLabels[freq] || 'par p\u00e9riode';\n  document.getElementById('ch_total_interest').textContent = fmt(totalInterest);\n  document.getElementById('ch_total_cost').textContent = fmt(totalPaid);\n  document.getElementById('ch_pct_cap').textContent = pctCap;\n  document.getElementById('ch_pct_int').textContent = pctInt;\n  document.getElementById('ch_bar').style.width = pctCap + '%';\n  var downPct = down\/price*100;\n  var cmhcMsg = '';\n  if(downPct < 20 && downPct >= 5){\n    var prem = downPct < 10 ? 3.10 : (downPct < 15 ? 2.80 : 2.40);\n    var cmhcAmt = principal * prem\/100;\n    cmhcMsg = 'Assurance CMHC requise (mise de fonds < 20%) : environ ' + fmt(cmhcAmt) + ' (' + prem + '% du pr\u00eat)';\n  } else if(downPct < 5){\n    cmhcMsg = 'Une mise de fonds minimale de 5% est requise par la loi canadienne.';\n  }\n  document.getElementById('ch_cmhc').textContent = cmhcMsg;\n  document.getElementById('ch_results').classList.add('show');\n}\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2917","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/pages\/2917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/comments?post=2917"}],"version-history":[{"count":1,"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/pages\/2917\/revisions"}],"predecessor-version":[{"id":2929,"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/pages\/2917\/revisions\/2929"}],"wp:attachment":[{"href":"https:\/\/demandehypotheque.com\/en\/wp-json\/wp\/v2\/media?parent=2917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}