{"id":948,"date":"2025-10-16T12:01:28","date_gmt":"2025-10-16T10:01:28","guid":{"rendered":"https:\/\/energypromag.com\/?page_id=948"},"modified":"2025-10-16T12:12:03","modified_gmt":"2025-10-16T10:12:03","slug":"simulateur-de-revenus-courtier-en-energie-independant","status":"publish","type":"page","link":"https:\/\/energypromag.com\/fr\/simulateur-de-revenus-courtier-en-energie-independant\/","title":{"rendered":"Simulateur de revenus \u2014 Courtier en \u00e9nergie (ind\u00e9pendant)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"948\" class=\"elementor elementor-948\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35b2565 e-flex e-con-boxed e-con e-parent\" data-id=\"35b2565\" data-element_type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e92d6c elementor-widget elementor-widget-heading\" data-id=\"2e92d6c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Simulateur de revenus - Courtier en \u00e9nergie ind\u00e9pendant<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e50d42d elementor-widget elementor-widget-text-editor\" data-id=\"e50d42d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ce simulateur interactif vous permet d\u2019estimer vos <span class=\"s1\"><b>revenus mensuels et annuels<\/b><\/span> en tant que <span class=\"s1\"><b>courtier en \u00e9nergie ind\u00e9pendant<\/b><\/span>.<\/p><p>En indiquant simplement votre nombre de clients, votre taux de commission, la consommation moyenne de vos prospects et la dur\u00e9e des contrats, vous obtiendrez une estimation pr\u00e9cise de vos <span class=\"s1\"><b>gains potentiels<\/b><\/span> selon votre rythme d\u2019activit\u00e9.<\/p><p>Cet outil est particuli\u00e8rement utile pour :<\/p><ul><li><blockquote><p>Les <span class=\"s1\"><b>nouveaux courtiers<\/b><\/span> qui souhaitent \u00e9valuer leur potentiel de revenus avant de se lancer ;<\/p><\/blockquote><\/li><li><blockquote><p>Les <span class=\"s1\"><b>ind\u00e9pendants<\/b><\/span> qui comparent diff\u00e9rents mod\u00e8les de r\u00e9mun\u00e9ration ou de fournisseurs partenaires ;<\/p><\/blockquote><\/li><li><blockquote><p>Les <span class=\"s1\"><b>managers de r\u00e9seau<\/b><\/span> qui veulent illustrer la rentabilit\u00e9 de l\u2019activit\u00e9 aupr\u00e8s de leurs recrues.<\/p><\/blockquote><\/li><\/ul><blockquote><p>Le simulateur vous offre une vision claire, transparente et motivante de ce que peut rapporter le m\u00e9tier de courtier en \u00e9nergie \u2014 selon vos efforts, vos performances commerciales et votre capacit\u00e9 \u00e0 fid\u00e9liser vos clients.<\/p><\/blockquote>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0bc2f11 e-flex e-con-boxed e-con e-parent\" data-id=\"0bc2f11\" data-element_type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11d9bcf elementor-widget elementor-widget-html\" data-id=\"11d9bcf\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- SIMULATEUR REVENUS COURTIER EN \u00c9NERGIE - VERSION WORDPRESS -->\n<div class=\"ec-simulator-wrapper\">\n  <style>\n    \/* Reset et isolation pour WordPress *\/\n    .ec-simulator-wrapper * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0;\n    }\n    \n    .ec-simulator-wrapper {\n      --ec-accent: #007b83;\n      --ec-accent-2: #00a8a8;\n      --ec-ok: #1b9e3f;\n      --ec-warn: #e6a700;\n      --ec-bad: #c62828;\n      --ec-bg: #f7fbfc;\n      --ec-text: #1f2d3d;\n      --ec-border: #e6eef1;\n      --ec-shadow: rgba(2,24,34,0.06);\n      \n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n      color: var(--ec-text);\n      line-height: 1.6;\n      margin: 2em auto;\n      max-width: 100%;\n    }\n    \n    .ec-simulator-wrapper p {\n      margin: 0.5em 0;\n    }\n    \n    .ec-card {\n      max-width: 1200px;\n      margin: 0 auto;\n      background: #ffffff;\n      border: 1px solid var(--ec-border);\n      border-radius: 14px;\n      box-shadow: 0 6px 24px var(--ec-shadow);\n      overflow: hidden;\n    }\n    \n    .ec-header {\n      padding: 24px;\n      background: linear-gradient(135deg, var(--ec-accent), var(--ec-accent-2));\n      color: #ffffff;\n    }\n    \n    .ec-header h2 {\n      font-size: 1.5rem;\n      margin: 0 0 0.5rem 0;\n      font-weight: 700;\n      color: #ffffff;\n    }\n    \n    .ec-header p {\n      margin: 0;\n      opacity: 0.95;\n      color: #ffffff;\n    }\n    \n    .ec-content {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 20px;\n      padding: 24px;\n    }\n    \n    .ec-panel {\n      flex: 1 1 400px;\n      background: var(--ec-bg);\n      border: 1px solid var(--ec-border);\n      border-radius: 12px;\n      padding: 20px;\n    }\n    \n    .ec-panel h3 {\n      margin: 0 0 1rem 0;\n      font-size: 1.1rem;\n      color: #0b3a40;\n      font-weight: 600;\n    }\n    \n    .ec-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n      gap: 12px;\n      margin: 1rem 0;\n    }\n    \n    .ec-field {\n      display: flex;\n      flex-direction: column;\n      gap: 6px;\n    }\n    \n    .ec-field label {\n      font-size: 0.9rem;\n      font-weight: 500;\n      color: var(--ec-text);\n    }\n    \n    .ec-field input {\n      width: 100%;\n      padding: 10px 12px;\n      border: 1px solid #cfe3e7;\n      border-radius: 8px;\n      background: #ffffff;\n      font-size: 0.95rem;\n      transition: border-color 0.2s;\n    }\n    \n    .ec-field input:focus {\n      outline: none;\n      border-color: var(--ec-accent);\n      box-shadow: 0 0 0 3px rgba(0,123,131,0.1);\n    }\n    \n    .ec-hint {\n      font-size: 0.8rem;\n      opacity: 0.7;\n      line-height: 1.3;\n    }\n    \n    .ec-chips {\n      display: flex;\n      gap: 10px;\n      flex-wrap: wrap;\n      margin: 0.5rem 0 1rem;\n    }\n    \n    .ec-chip {\n      border: 2px solid var(--ec-border);\n      background: #ffffff;\n      border-radius: 999px;\n      padding: 8px 16px;\n      cursor: pointer;\n      font-size: 0.9rem;\n      font-weight: 500;\n      transition: all 0.2s;\n    }\n    \n    .ec-chip:hover {\n      border-color: var(--ec-accent);\n      background: var(--ec-accent);\n      color: #ffffff;\n      transform: translateY(-1px);\n    }\n    \n    .ec-actions {\n      display: flex;\n      gap: 12px;\n      flex-wrap: wrap;\n      margin-top: 1.5rem;\n    }\n    \n    .ec-btn {\n      border: none;\n      border-radius: 8px;\n      padding: 12px 24px;\n      font-weight: 600;\n      font-size: 0.95rem;\n      cursor: pointer;\n      transition: all 0.2s;\n    }\n    \n    .ec-btn-primary {\n      background: var(--ec-accent);\n      color: #ffffff;\n    }\n    \n    .ec-btn-primary:hover {\n      background: var(--ec-accent-2);\n      transform: translateY(-1px);\n      box-shadow: 0 4px 12px rgba(0,123,131,0.3);\n    }\n    \n    .ec-btn-ghost {\n      background: #eef6f8;\n      color: #0b3a40;\n    }\n    \n    .ec-btn-ghost:hover {\n      background: #d8ecf0;\n    }\n    \n    .ec-table-wrapper {\n      overflow-x: auto;\n      margin: 1rem 0;\n      border-radius: 10px;\n      border: 1px solid var(--ec-border);\n    }\n    \n    .ec-table {\n      width: 100%;\n      border-collapse: collapse;\n      background: #ffffff;\n      font-size: 0.9rem;\n    }\n    \n    .ec-table th,\n    .ec-table td {\n      padding: 12px;\n      text-align: right;\n      border-bottom: 1px solid #eef2f5;\n    }\n    \n    .ec-table th:first-child,\n    .ec-table td:first-child {\n      text-align: left;\n      font-weight: 500;\n    }\n    \n    .ec-table th {\n      background: #fafcfd;\n      font-weight: 600;\n      color: #0b3a40;\n    }\n    \n    .ec-table tbody tr:hover {\n      background: #f8fafb;\n    }\n    \n    .ec-table tfoot td {\n      font-weight: 700;\n      background: #f0f7f9;\n      border-top: 2px solid var(--ec-border);\n    }\n    \n    .ec-badge {\n      display: inline-block;\n      padding: 8px 16px;\n      border-radius: 999px;\n      font-weight: 600;\n      font-size: 0.9rem;\n      margin: 0.5rem 0;\n    }\n    \n    .ec-badge-ok {\n      background: rgba(27,158,63,0.1);\n      color: var(--ec-ok);\n      border: 1px solid rgba(27,158,63,0.2);\n    }\n    \n    .ec-badge-warn {\n      background: rgba(230,167,0,0.1);\n      color: var(--ec-warn);\n      border: 1px solid rgba(230,167,0,0.2);\n    }\n    \n    .ec-badge-bad {\n      background: rgba(198,40,40,0.1);\n      color: var(--ec-bad);\n      border: 1px solid rgba(198,40,40,0.2);\n    }\n    \n    .ec-divider {\n      height: 1px;\n      background: #e9f0f3;\n      margin: 1.5rem 0;\n    }\n    \n    .ec-note {\n      font-size: 0.9rem;\n      line-height: 1.5;\n      opacity: 0.85;\n      margin: 1rem 0;\n    }\n    \n    .ec-details {\n      background: #ffffff;\n      border: 1px solid var(--ec-border);\n      border-radius: 10px;\n      padding: 12px;\n      margin: 1rem 0;\n    }\n    \n    .ec-details summary {\n      cursor: pointer;\n      font-weight: 600;\n      padding: 4px 0;\n      list-style: none;\n    }\n    \n    .ec-details summary::-webkit-details-marker {\n      display: none;\n    }\n    \n    .ec-details summary::before {\n      content: '\u25b6';\n      display: inline-block;\n      margin-right: 8px;\n      transition: transform 0.2s;\n    }\n    \n    .ec-details[open] summary::before {\n      transform: rotate(90deg);\n    }\n    \n    .ec-insights {\n      background: #ffffff;\n      border-radius: 8px;\n      padding: 16px;\n      margin: 1rem 0;\n    }\n    \n    .ec-insights ul {\n      list-style: none;\n      padding: 0;\n      margin: 0;\n    }\n    \n    .ec-insights li {\n      padding: 8px 0;\n      padding-left: 28px;\n      position: relative;\n      line-height: 1.5;\n    }\n    \n    .ec-insights li::before {\n      position: absolute;\n      left: 0;\n      top: 8px;\n    }\n    \n    .ec-insights li:nth-child(1)::before { content: '\ud83d\udcc8'; }\n    .ec-insights li:nth-child(2)::before { content: '\ud83d\udc65'; }\n    .ec-insights li:nth-child(3)::before { content: '\u26a1'; }\n    .ec-insights li:nth-child(4)::before { content: '\ud83d\udcb6'; }\n    \n    @media (max-width: 768px) {\n      .ec-content {\n        padding: 16px;\n      }\n      \n      .ec-panel {\n        flex: 1 1 100%;\n      }\n      \n      .ec-grid {\n        grid-template-columns: 1fr;\n      }\n      \n      .ec-table {\n        font-size: 0.8rem;\n      }\n      \n      .ec-table th,\n      .ec-table td {\n        padding: 8px;\n      }\n    }\n  <\/style>\n\n  <div class=\"ec-card\">\n    <div class=\"ec-header\">\n      <h2>\ud83e\uddee Simulateur de revenus \u2014 Courtier en \u00e9nergie ind\u00e9pendant<\/h2>\n      <p>Modifiez les param\u00e8tres et calculez votre projection sur 5 ans avec commissions r\u00e9currentes et bonus<\/p>\n    <\/div>\n\n    <div class=\"ec-content\">\n      <!-- Param\u00e8tres -->\n      <div class=\"ec-panel\">\n        <h3>\u2699\ufe0f Param\u00e8tres de simulation<\/h3>\n\n        <div class=\"ec-chips\">\n          <span class=\"ec-chip\" data-ec-preset=\"debutant\">\ud83d\udc76 D\u00e9butant prudent<\/span>\n          <span class=\"ec-chip\" data-ec-preset=\"intermediaire\">\ud83d\udcbc Interm\u00e9diaire<\/span>\n          <span class=\"ec-chip\" data-ec-preset=\"ambitieux\">\ud83d\ude80 Ambitieux<\/span>\n        <\/div>\n\n        <div class=\"ec-grid\">\n          <div class=\"ec-field\">\n            <label for=\"ec-clients\">Nouveaux clients \/ an<\/label>\n            <input type=\"number\" id=\"ec-clients\" value=\"50\" min=\"0\" step=\"1\">\n          <\/div>\n          <div class=\"ec-field\">\n            <label for=\"ec-conso\">Conso moyenne (MWh\/an)<\/label>\n            <input type=\"number\" id=\"ec-conso\" value=\"300\" min=\"0\" step=\"10\">\n          <\/div>\n          <div class=\"ec-field\">\n            <label for=\"ec-commission\">Commission (\u20ac\/MWh)<\/label>\n            <input type=\"number\" id=\"ec-commission\" value=\"1.2\" min=\"0\" step=\"0.1\">\n          <\/div>\n          <div class=\"ec-field\">\n            <label for=\"ec-retention\">Taux de r\u00e9tention (%)<\/label>\n            <input type=\"number\" id=\"ec-retention\" value=\"85\" min=\"0\" max=\"100\" step=\"1\">\n          <\/div>\n          <div class=\"ec-field\">\n            <label for=\"ec-bonus\">Bonus signature (\u20ac)<\/label>\n            <input type=\"number\" id=\"ec-bonus\" value=\"200\" min=\"0\" step=\"10\">\n            <span class=\"ec-hint\">Vers\u00e9 une fois \u00e0 la signature<\/span>\n          <\/div>\n          <div class=\"ec-field\">\n            <label for=\"ec-charges\">Charges annuelles (\u20ac)<\/label>\n            <input type=\"number\" id=\"ec-charges\" value=\"18000\" min=\"0\" step=\"500\">\n            <span class=\"ec-hint\">Assurance, outils, d\u00e9placements...<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"ec-divider\"><\/div>\n\n        <div class=\"ec-grid\">\n          <div class=\"ec-field\">\n            <label for=\"ec-charges-growth\">\u00c9volution charges\/an (\u20ac)<\/label>\n            <input type=\"number\" id=\"ec-charges-growth\" value=\"2000\" min=\"0\" step=\"500\">\n          <\/div>\n          <div class=\"ec-field\">\n            <label for=\"ec-years\">Dur\u00e9e projection (ann\u00e9es)<\/label>\n            <input type=\"number\" id=\"ec-years\" value=\"5\" min=\"1\" max=\"10\" step=\"1\">\n          <\/div>\n        <\/div>\n\n        <div class=\"ec-actions\">\n          <button class=\"ec-btn ec-btn-primary\" id=\"ec-calc\">Calculer la projection<\/button>\n          <button class=\"ec-btn ec-btn-ghost\" id=\"ec-reset\">R\u00e9initialiser<\/button>\n        <\/div>\n\n        <p class=\"ec-note\">\n          <strong>\ud83d\udca1 Formule :<\/strong> Commission r\u00e9currente = Clients actifs \u00d7 Consommation \u00d7 \u20ac\/MWh<br>\n          Clients actifs ann\u00e9e N = (Clients N-1 \u00d7 r\u00e9tention) + Nouveaux clients\n        <\/p>\n      <\/div>\n\n      <!-- R\u00e9sultats -->\n      <div class=\"ec-panel\">\n        <h3>\ud83d\udcca Projection <span id=\"ec-years-label\">(5 ans)<\/span><\/h3>\n        <div class=\"ec-badge ec-badge-ok\" id=\"ec-badge\">Pr\u00eat \u00e0 calculer<\/div>\n        \n        <div class=\"ec-divider\"><\/div>\n        \n        <div class=\"ec-table-wrapper\">\n          <table class=\"ec-table\">\n            <thead>\n              <tr>\n                <th>Ann\u00e9e<\/th>\n                <th>Nouveaux<\/th>\n                <th>Actifs<\/th>\n                <th>CA r\u00e9current<\/th>\n                <th>Bonus<\/th>\n                <th>CA total<\/th>\n                <th>Charges<\/th>\n                <th>Net<\/th>\n              <\/tr>\n            <\/thead>\n            <tbody id=\"ec-tbody\"><\/tbody>\n            <tfoot>\n              <tr>\n                <td>Total<\/td>\n                <td id=\"ec-t-new\">-<\/td>\n                <td id=\"ec-t-actifs\">-<\/td>\n                <td id=\"ec-t-rec\">-<\/td>\n                <td id=\"ec-t-bonus\">-<\/td>\n                <td id=\"ec-t-ca\">-<\/td>\n                <td id=\"ec-t-charges\">-<\/td>\n                <td id=\"ec-t-net\">-<\/td>\n              <\/tr>\n            <\/tfoot>\n          <\/table>\n        <\/div>\n        \n        <p class=\"ec-note\" id=\"ec-recap\"><\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"ec-content\">\n      <div class=\"ec-panel\">\n        <h3>\ud83d\udcc8 Analyse et insights<\/h3>\n        <div class=\"ec-insights\" id=\"ec-insights\">\n          <p>Lancez un calcul pour voir l'analyse d\u00e9taill\u00e9e de votre projection.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"ec-panel\">\n        <h3>\ud83c\udfe2 Projection Cabinet (indicatif)<\/h3>\n        <details class=\"ec-details\">\n          <summary>Voir la projection pour un cabinet structur\u00e9<\/summary>\n          <div class=\"ec-table-wrapper\" style=\"margin-top: 16px;\">\n            <table class=\"ec-table\">\n              <thead>\n                <tr>\n                  <th>Ann\u00e9e<\/th>\n                  <th>\u00c9quipe<\/th>\n                  <th>CA brut<\/th>\n                  <th>Charges<\/th>\n                  <th>R\u00e9sultat net<\/th>\n                <\/tr>\n              <\/thead>\n              <tbody>\n                <tr>\n                  <td>Ann\u00e9e 1<\/td>\n                  <td>1-2 pers.<\/td>\n                  <td>80 000\u20ac<\/td>\n                  <td>75 000\u20ac<\/td>\n                  <td>5 000\u20ac<\/td>\n                <\/tr>\n                <tr>\n                  <td>Ann\u00e9e 2<\/td>\n                  <td>2-3 pers.<\/td>\n                  <td>180 000\u20ac<\/td>\n                  <td>145 000\u20ac<\/td>\n                  <td>35 000\u20ac<\/td>\n                <\/tr>\n                <tr>\n                  <td>Ann\u00e9e 3<\/td>\n                  <td>3-5 pers.<\/td>\n                  <td>350 000\u20ac<\/td>\n                  <td>260 000\u20ac<\/td>\n                  <td>90 000\u20ac<\/td>\n                <\/tr>\n                <tr>\n                  <td>Ann\u00e9e 4<\/td>\n                  <td>5-8 pers.<\/td>\n                  <td>550 000\u20ac<\/td>\n                  <td>380 000\u20ac<\/td>\n                  <td>170 000\u20ac<\/td>\n                <\/tr>\n                <tr>\n                  <td>Ann\u00e9e 5<\/td>\n                  <td>8-12 pers.<\/td>\n                  <td>800 000\u20ac<\/td>\n                  <td>520 000\u20ac<\/td>\n                  <td>280 000\u20ac<\/td>\n                <\/tr>\n              <\/tbody>\n            <\/table>\n          <\/div>\n          <p class=\"ec-note\">\n            \u26a0\ufe0f <strong>Important :<\/strong> Investissement initial 30-100k\u20ac, acc\u00e8s fournisseurs complexe, \n            charge de travail \u00e9lev\u00e9e, responsabilit\u00e9 juridique accrue.\n          <\/p>\n        <\/details>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  'use strict';\n  \n  \/\/ V\u00e9rification que le DOM est pr\u00eat\n  function ready(fn) {\n    if (document.readyState !== 'loading') {\n      fn();\n    } else {\n      document.addEventListener('DOMContentLoaded', fn);\n    }\n  }\n  \n  ready(function() {\n    \/\/ Fonctions utilitaires\n    const formatNumber = function(n) {\n      return Math.round(n).toLocaleString('fr-FR');\n    };\n    \n    const formatEuro = function(n) {\n      const prefix = n < 0 ? '- ' : '';\n      return prefix + Math.abs(Math.round(n)).toLocaleString('fr-FR') + ' \u20ac';\n    };\n    \n    \/\/ R\u00e9cup\u00e9ration des \u00e9l\u00e9ments avec pr\u00e9fixe unique\n    const getEl = function(id) {\n      return document.getElementById(id);\n    };\n    \n    const inputs = {\n      clients: getEl('ec-clients'),\n      conso: getEl('ec-conso'),\n      commission: getEl('ec-commission'),\n      retention: getEl('ec-retention'),\n      bonus: getEl('ec-bonus'),\n      charges: getEl('ec-charges'),\n      chargesGrowth: getEl('ec-charges-growth'),\n      years: getEl('ec-years')\n    };\n    \n    const elements = {\n      btnCalc: getEl('ec-calc'),\n      btnReset: getEl('ec-reset'),\n      tbody: getEl('ec-tbody'),\n      tNew: getEl('ec-t-new'),\n      tActifs: getEl('ec-t-actifs'),\n      tRec: getEl('ec-t-rec'),\n      tBonus: getEl('ec-t-bonus'),\n      tCA: getEl('ec-t-ca'),\n      tCharges: getEl('ec-t-charges'),\n      tNet: getEl('ec-t-net'),\n      recap: getEl('ec-recap'),\n      badge: getEl('ec-badge'),\n      yearsLabel: getEl('ec-years-label'),\n      insights: getEl('ec-insights')\n    };\n    \n    \/\/ Gestion des presets\n    const presets = {\n      debutant: {\n        clients: 30,\n        conso: 200,\n        commission: 1.1,\n        retention: 80,\n        bonus: 150,\n        charges: 12000,\n        chargesGrowth: 1500\n      },\n      intermediaire: {\n        clients: 50,\n        conso: 300,\n        commission: 1.2,\n        retention: 85,\n        bonus: 200,\n        charges: 18000,\n        chargesGrowth: 2000\n      },\n      ambitieux: {\n        clients: 70,\n        conso: 400,\n        commission: 1.4,\n        retention: 88,\n        bonus: 250,\n        charges: 22000,\n        chargesGrowth: 2500\n      }\n    };\n    \n    \/\/ Event listeners pour les chips\n    document.querySelectorAll('.ec-chip').forEach(function(chip) {\n      chip.addEventListener('click', function() {\n        const presetName = chip.getAttribute('data-ec-preset');\n        const preset = presets[presetName];\n        if (preset) {\n          inputs.clients.value = preset.clients;\n          inputs.conso.value = preset.conso;\n          inputs.commission.value = preset.commission;\n          inputs.retention.value = preset.retention;\n          inputs.bonus.value = preset.bonus;\n          inputs.charges.value = preset.charges;\n          inputs.chargesGrowth.value = preset.chargesGrowth;\n        }\n      });\n    });\n    \n    \/\/ Fonction de calcul principale\n    function calculate() {\n      \/\/ R\u00e9cup\u00e9ration et validation des valeurs\n      const clientsPerYear = Math.max(0, parseInt(inputs.clients.value) || 0);\n      const conso = Math.max(0, parseFloat(inputs.conso.value) || 0);\n      const commission = Math.max(0, parseFloat(inputs.commission.value) || 0);\n      const retention = Math.min(100, Math.max(0, parseFloat(inputs.retention.value) || 0)) \/ 100;\n      const bonus = Math.max(0, parseFloat(inputs.bonus.value) || 0);\n      const chargesBase = Math.max(0, parseFloat(inputs.charges.value) || 0);\n      const chargesGrowth = Math.max(0, parseFloat(inputs.chargesGrowth.value) || 0);\n      const years = Math.min(10, Math.max(1, parseInt(inputs.years.value) || 5));\n      \n      \/\/ Mise \u00e0 jour du label ann\u00e9es\n      elements.yearsLabel.textContent = '(' + years + ' an' + (years > 1 ? 's' : '') + ')';\n      \n      \/\/ R\u00e9initialisation du tableau\n      elements.tbody.innerHTML = '';\n      \n      let activeClients = 0;\n      let totals = {\n        new: 0,\n        actifs: 0,\n        rec: 0,\n        bonus: 0,\n        ca: 0,\n        charges: 0,\n        net: 0\n      };\n      \n      \/\/ Calcul pour chaque ann\u00e9e\n      for (let year = 1; year <= years; year++) {\n        activeClients = Math.round(activeClients * retention + clientsPerYear);\n        \n        const recurrent = Math.round(activeClients * conso * commission);\n        const bonusTotal = Math.round(clientsPerYear * bonus);\n        const caTotal = recurrent + bonusTotal;\n        const charges = Math.round(chargesBase + (year - 1) * chargesGrowth);\n        const net = caTotal - charges;\n        \n        \/\/ Ajout de la ligne au tableau\n        const row = document.createElement('tr');\n        row.innerHTML = \n          '<td>Ann\u00e9e ' + year + '<\/td>' +\n          '<td>' + formatNumber(clientsPerYear) + '<\/td>' +\n          '<td>' + formatNumber(activeClients) + '<\/td>' +\n          '<td>' + formatEuro(recurrent) + '<\/td>' +\n          '<td>' + formatEuro(bonusTotal) + '<\/td>' +\n          '<td>' + formatEuro(caTotal) + '<\/td>' +\n          '<td>' + formatEuro(charges) + '<\/td>' +\n          '<td style=\"font-weight:700;' + (net < 0 ? 'color:#c62828;' : '') + '\">' + \n            formatEuro(net) + '<\/td>';\n        elements.tbody.appendChild(row);\n        \n        \/\/ Accumulation des totaux\n        totals.new += clientsPerYear;\n        totals.actifs = activeClients;\n        totals.rec += recurrent;\n        totals.bonus += bonusTotal;\n        totals.ca += caTotal;\n        totals.charges += charges;\n        totals.net += net;\n      }\n      \n      \/\/ Mise \u00e0 jour des totaux\n      elements.tNew.textContent = formatNumber(totals.new);\n      elements.tActifs.textContent = formatNumber(totals.actifs);\n      elements.tRec.textContent = formatEuro(totals.rec);\n      elements.tBonus.textContent = formatEuro(totals.bonus);\n      elements.tCA.textContent = formatEuro(totals.ca);\n      elements.tCharges.textContent = formatEuro(totals.charges);\n      elements.tNet.textContent = formatEuro(totals.net);\n      \n      \/\/ Badge et r\u00e9capitulatif\n      const avgNet = Math.round(totals.net \/ years);\n      elements.badge.textContent = 'Net moyen : ' + formatEuro(avgNet) + '\/an';\n      elements.badge.className = 'ec-badge ' + \n        (avgNet >= 50000 ? 'ec-badge-ok' : avgNet >= 20000 ? 'ec-badge-warn' : 'ec-badge-bad');\n      \n      elements.recap.innerHTML = \n        'Avec <strong>' + formatNumber(clientsPerYear) + '<\/strong> nouveaux clients\/an, ' +\n        'une consommation moyenne de <strong>' + formatNumber(conso) + ' MWh<\/strong>, ' +\n        'une commission de <strong>' + commission.toFixed(2) + ' \u20ac\/MWh<\/strong> et ' +\n        'une r\u00e9tention de <strong>' + Math.round(retention * 100) + '%<\/strong>, ' +\n        'vos commissions r\u00e9currentes atteignent <strong>' + formatEuro(totals.rec) + '<\/strong> ' +\n        'sur ' + years + ' an' + (years > 1 ? 's' : '') + '.';\n      \n      \/\/ Calcul des insights\n      const recPerClientYear = conso * commission;\n      const retentionSum = (1 - Math.pow(retention, years)) \/ (1 - retention);\n      \n      const delta10Clients = Math.round(10 * years * (bonus + recPerClientYear * retentionSum));\n      const delta10MWh = Math.round(clientsPerYear * years * 10 * commission * retentionSum);\n      const delta01Euro = Math.round(clientsPerYear * years * conso * 0.1 * retentionSum);\n      \n      const retention2 = Math.min(0.99, retention + 0.05);\n      const retentionSum2 = (1 - Math.pow(retention2, years)) \/ (1 - retention2);\n      const delta5Retention = Math.round(clientsPerYear * recPerClientYear * (retentionSum2 - retentionSum));\n      \n      elements.insights.innerHTML = \n        '<ul>' +\n        '<li><strong>Levier #1 : R\u00e9tention<\/strong> - Augmenter de 5 points = <strong>' + \n          formatEuro(delta5Retention) + '<\/strong> sur ' + years + ' ans<\/li>' +\n        '<li><strong>Volume clients<\/strong> - +10 clients\/an = <strong>' + \n          formatEuro(delta10Clients) + '<\/strong> sur ' + years + ' ans<\/li>' +\n        '<li><strong>Consommation<\/strong> - +10 MWh\/client = <strong>' + \n          formatEuro(delta10MWh) + '<\/strong> sur ' + years + ' ans<\/li>' +\n        '<li><strong>Commission<\/strong> - +0,10 \u20ac\/MWh = <strong>' + \n          formatEuro(delta01Euro) + '<\/strong> sur ' + years + ' ans<\/li>' +\n        '<\/ul>' +\n        '<p style=\"margin-top:1rem;opacity:0.8;font-size:0.9rem;\">' +\n        '\ud83d\udca1 Combinez plusieurs leviers pour un effet multiplicateur sur vos revenus.<\/p>';\n    }\n    \n    \/\/ Fonction de r\u00e9initialisation\n    function reset() {\n      inputs.clients.value = 50;\n      inputs.conso.value = 300;\n      inputs.commission.value = 1.2;\n      inputs.retention.value = 85;\n      inputs.bonus.value = 200;\n      inputs.charges.value = 18000;\n      inputs.chargesGrowth.value = 2000;\n      inputs.years.value = 5;\n      \n      elements.tbody.innerHTML = '';\n      elements.tNew.textContent = '-';\n      elements.tActifs.textContent = '-';\n      elements.tRec.textContent = '-';\n      elements.tBonus.textContent = '-';\n      elements.tCA.textContent = '-';\n      elements.tCharges.textContent = '-';\n      elements.tNet.textContent = '-';\n      \n      elements.badge.textContent = 'Pr\u00eat \u00e0 calculer';\n      elements.badge.className = 'ec-badge ec-badge-ok';\n      elements.recap.textContent = '';\n      elements.yearsLabel.textContent = '(5 ans)';\n      elements.insights.innerHTML = '<p>Lancez un calcul pour voir l\\'analyse d\u00e9taill\u00e9e de votre projection.<\/p>';\n    }\n    \n    \/\/ Ajout des event listeners\n    if (elements.btnCalc) {\n      elements.btnCalc.addEventListener('click', calculate);\n    }\n    \n    if (elements.btnReset) {\n      elements.btnReset.addEventListener('click', reset);\n    }\n    \n    \/\/ Calcul automatique lors de la modification des inputs\n    Object.values(inputs).forEach(function(input) {\n      if (input) {\n        input.addEventListener('change', calculate);\n      }\n    });\n    \n    \/\/ Initialisation\n    reset();\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Simulateur de revenus &#8211; Courtier en \u00e9nergie ind\u00e9pendant Ce simulateur interactif vous permet d\u2019estimer vos revenus mensuels et annuels en tant que courtier en \u00e9nergie ind\u00e9pendant. En indiquant simplement votre nombre de clients, votre taux de commission, la consommation moyenne de vos prospects et la dur\u00e9e des contrats, vous obtiendrez une estimation pr\u00e9cise de vos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_jf_save_progress":"","_jf_schedule_form":"","_jet_sm_ready_style":"","_jet_sm_style":"","_jet_sm_controls_values":"","_jet_sm_fonts_collection":"","_jet_sm_fonts_links":"","_yoast_wpseo_focuskw":"","_yoast_wpseo_metadesc":"","rank_math_focus_keyword":"courtier en \u00e9nergie","rank_math_description":"","footnotes":""},"class_list":["post-948","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/pages\/948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/comments?post=948"}],"version-history":[{"count":8,"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/pages\/948\/revisions"}],"predecessor-version":[{"id":4945,"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/pages\/948\/revisions\/4945"}],"wp:attachment":[{"href":"https:\/\/energypromag.com\/fr\/wp-json\/wp\/v2\/media?parent=948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}