{"id":6459,"date":"2025-12-05T05:10:16","date_gmt":"2025-12-05T03:10:16","guid":{"rendered":"https:\/\/energypromag.com\/?page_id=6459"},"modified":"2025-12-05T05:15:09","modified_gmt":"2025-12-05T03:15:09","slug":"simulador-de-ingresos-para-corredores-independientes","status":"publish","type":"page","link":"https:\/\/energypromag.com\/es\/simulador-de-ingresos-para-corredores-independientes\/","title":{"rendered":"Simulador de ingresos para corredores independientes"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6459\" class=\"elementor elementor-6459\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b592a8 e-flex e-con-boxed e-con e-parent\" data-id=\"0b592a8\" 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<div class=\"elementor-element elementor-element-69737af e-con-full e-flex e-con e-child\" data-id=\"69737af\" data-element_type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-863b73c elementor-widget elementor-widget-heading\" data-id=\"863b73c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Simulador de ingresos para corredores independientes<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a44292 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"7a44292\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Este simulador interactivo le permite estimar sus ingresos mensuales y anuales como agente energ\u00e9tico independiente.<\/p><p>Con solo indicar el n\u00famero de clientes, su tasa de comisi\u00f3n, el consumo medio de sus clientes potenciales y la duraci\u00f3n de los contratos, obtendr\u00e1 una estimaci\u00f3n precisa de sus ganancias potenciales en funci\u00f3n de su ritmo de actividad.<\/p><p>Esta herramienta es especialmente \u00fatil para:<\/p><ul><li>Los nuevos corredores que deseen evaluar su potencial de ingresos antes de comenzar;<\/li><li>Corredores independientes que comparan diferentes modelos de remuneraci\u00f3n o proveedores asociados;<\/li><li>Los gestores de redes que desean ilustrar la rentabilidad del negocio a sus nuevos empleados.<\/li><\/ul><p>El simulador te ofrece una visi\u00f3n clara, transparente y motivadora de lo que puede aportar la profesi\u00f3n de agente energ\u00e9tico, en funci\u00f3n de tus esfuerzos, tu rendimiento en ventas y tu capacidad para fidelizar a tus clientes.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd35d40 elementor-widget elementor-widget-html\" data-id=\"fd35d40\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ENERGY BROKER REVENUE SIMULATOR - WORDPRESS VERSION -->\r\n<div class=\"ec-simulator-wrapper\">\r\n  <style>\r\n    \/* Reset and isolation for WordPress *\/\r\n    .ec-simulator-wrapper * {\r\n      box-sizing: border-box;\r\n      margin: 0;\r\n      padding: 0;\r\n    }\r\n    \r\n    .ec-simulator-wrapper {\r\n      --ec-accent: #007b83;\r\n      --ec-accent-2: #00a8a8;\r\n      --ec-ok: #1b9e3f;\r\n      --ec-warn: #e6a700;\r\n      --ec-bad: #c62828;\r\n      --ec-bg: #f7fbfc;\r\n      --ec-text: #1f2d3d;\r\n      --ec-border: #e6eef1;\r\n      --ec-shadow: rgba(2,24,34,0.06);\r\n      \r\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\r\n      color: var(--ec-text);\r\n      line-height: 1.6;\r\n      margin: 2em auto;\r\n      max-width: 100%;\r\n    }\r\n    \r\n    .ec-simulator-wrapper p {\r\n      margin: 0.5em 0;\r\n    }\r\n    \r\n    .ec-card {\r\n      max-width: 1200px;\r\n      margin: 0 auto;\r\n      background: #ffffff;\r\n      border: 1px solid var(--ec-border);\r\n      border-radius: 14px;\r\n      box-shadow: 0 6px 24px var(--ec-shadow);\r\n      overflow: hidden;\r\n    }\r\n    \r\n    .ec-header {\r\n      padding: 24px;\r\n      background: linear-gradient(135deg, var(--ec-accent), var(--ec-accent-2));\r\n      color: #ffffff;\r\n    }\r\n    \r\n    .ec-header h2 {\r\n      font-size: 1.5rem;\r\n      margin: 0 0 0.5rem 0;\r\n      font-weight: 700;\r\n      color: #ffffff;\r\n    }\r\n    \r\n    .ec-header p {\r\n      margin: 0;\r\n      opacity: 0.95;\r\n      color: #ffffff;\r\n    }\r\n    \r\n    .ec-content {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 20px;\r\n      padding: 24px;\r\n    }\r\n    \r\n    .ec-panel {\r\n      flex: 1 1 400px;\r\n      background: var(--ec-bg);\r\n      border: 1px solid var(--ec-border);\r\n      border-radius: 12px;\r\n      padding: 20px;\r\n    }\r\n    \r\n    .ec-panel h3 {\r\n      margin: 0 0 1rem 0;\r\n      font-size: 1.1rem;\r\n      color: #0b3a40;\r\n      font-weight: 600;\r\n    }\r\n    \r\n    .ec-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\r\n      gap: 12px;\r\n      margin: 1rem 0;\r\n    }\r\n    \r\n    .ec-field {\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 6px;\r\n    }\r\n    \r\n    .ec-field label {\r\n      font-size: 0.9rem;\r\n      font-weight: 500;\r\n      color: var(--ec-text);\r\n    }\r\n    \r\n    .ec-field input {\r\n      width: 100%;\r\n      padding: 10px 12px;\r\n      border: 1px solid #cfe3e7;\r\n      border-radius: 8px;\r\n      background: #ffffff;\r\n      font-size: 0.95rem;\r\n      transition: border-color 0.2s;\r\n    }\r\n    \r\n    .ec-field input:focus {\r\n      outline: none;\r\n      border-color: var(--ec-accent);\r\n      box-shadow: 0 0 0 3px rgba(0,123,131,0.1);\r\n    }\r\n    \r\n    .ec-hint {\r\n      font-size: 0.8rem;\r\n      opacity: 0.7;\r\n      line-height: 1.3;\r\n    }\r\n    \r\n    .ec-chips {\r\n      display: flex;\r\n      gap: 10px;\r\n      flex-wrap: wrap;\r\n      margin: 0.5rem 0 1rem;\r\n    }\r\n    \r\n    .ec-chip {\r\n      border: 2px solid var(--ec-border);\r\n      background: #ffffff;\r\n      border-radius: 999px;\r\n      padding: 8px 16px;\r\n      cursor: pointer;\r\n      font-size: 0.9rem;\r\n      font-weight: 500;\r\n      transition: all 0.2s;\r\n    }\r\n    \r\n    .ec-chip:hover {\r\n      border-color: var(--ec-accent);\r\n      background: var(--ec-accent);\r\n      color: #ffffff;\r\n      transform: translateY(-1px);\r\n    }\r\n    \r\n    .ec-actions {\r\n      display: flex;\r\n      gap: 12px;\r\n      flex-wrap: wrap;\r\n      margin-top: 1.5rem;\r\n    }\r\n    \r\n    .ec-btn {\r\n      border: none;\r\n      border-radius: 8px;\r\n      padding: 12px 24px;\r\n      font-weight: 600;\r\n      font-size: 0.95rem;\r\n      cursor: pointer;\r\n      transition: all 0.2s;\r\n    }\r\n    \r\n    .ec-btn-primary {\r\n      background: var(--ec-accent);\r\n      color: #ffffff;\r\n    }\r\n    \r\n    .ec-btn-primary:hover {\r\n      background: var(--ec-accent-2);\r\n      transform: translateY(-1px);\r\n      box-shadow: 0 4px 12px rgba(0,123,131,0.3);\r\n    }\r\n    \r\n    .ec-btn-ghost {\r\n      background: #eef6f8;\r\n      color: #0b3a40;\r\n    }\r\n    \r\n    .ec-btn-ghost:hover {\r\n      background: #d8ecf0;\r\n    }\r\n    \r\n    .ec-table-wrapper {\r\n      overflow-x: auto;\r\n      margin: 1rem 0;\r\n      border-radius: 10px;\r\n      border: 1px solid var(--ec-border);\r\n    }\r\n    \r\n    .ec-table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      background: #ffffff;\r\n      font-size: 0.9rem;\r\n    }\r\n    \r\n    .ec-table th,\r\n    .ec-table td {\r\n      padding: 12px;\r\n      text-align: right;\r\n      border-bottom: 1px solid #eef2f5;\r\n    }\r\n    \r\n    .ec-table th:first-child,\r\n    .ec-table td:first-child {\r\n      text-align: left;\r\n      font-weight: 500;\r\n    }\r\n    \r\n    .ec-table th {\r\n      background: #fafcfd;\r\n      font-weight: 600;\r\n      color: #0b3a40;\r\n    }\r\n    \r\n    .ec-table tbody tr:hover {\r\n      background: #f8fafb;\r\n    }\r\n    \r\n    .ec-table tfoot td {\r\n      font-weight: 700;\r\n      background: #f0f7f9;\r\n      border-top: 2px solid var(--ec-border);\r\n    }\r\n    \r\n    .ec-badge {\r\n      display: inline-block;\r\n      padding: 8px 16px;\r\n      border-radius: 999px;\r\n      font-weight: 600;\r\n      font-size: 0.9rem;\r\n      margin: 0.5rem 0;\r\n    }\r\n    \r\n    .ec-badge-ok {\r\n      background: rgba(27,158,63,0.1);\r\n      color: var(--ec-ok);\r\n      border: 1px solid rgba(27,158,63,0.2);\r\n    }\r\n    \r\n    .ec-badge-warn {\r\n      background: rgba(230,167,0,0.1);\r\n      color: var(--ec-warn);\r\n      border: 1px solid rgba(230,167,0,0.2);\r\n    }\r\n    \r\n    .ec-badge-bad {\r\n      background: rgba(198,40,40,0.1);\r\n      color: var(--ec-bad);\r\n      border: 1px solid rgba(198,40,40,0.2);\r\n    }\r\n    \r\n    .ec-divider {\r\n      height: 1px;\r\n      background: #e9f0f3;\r\n      margin: 1.5rem 0;\r\n    }\r\n    \r\n    .ec-note {\r\n      font-size: 0.9rem;\r\n      line-height: 1.5;\r\n      opacity: 0.85;\r\n      margin: 1rem 0;\r\n    }\r\n    \r\n    .ec-details {\r\n      background: #ffffff;\r\n      border: 1px solid var(--ec-border);\r\n      border-radius: 10px;\r\n      padding: 12px;\r\n      margin: 1rem 0;\r\n    }\r\n    \r\n    .ec-details summary {\r\n      cursor: pointer;\r\n      font-weight: 600;\r\n      padding: 4px 0;\r\n      list-style: none;\r\n    }\r\n    \r\n    .ec-details summary::-webkit-details-marker {\r\n      display: none;\r\n    }\r\n    \r\n    .ec-details summary::before {\r\n      content: '\u25b6';\r\n      display: inline-block;\r\n      margin-right: 8px;\r\n      transition: transform 0.2s;\r\n    }\r\n    \r\n    .ec-details[open] summary::before {\r\n      transform: rotate(90deg);\r\n    }\r\n    \r\n    .ec-insights {\r\n      background: #ffffff;\r\n      border-radius: 8px;\r\n      padding: 16px;\r\n      margin: 1rem 0;\r\n    }\r\n    \r\n    .ec-insights ul {\r\n      list-style: none;\r\n      padding: 0;\r\n      margin: 0;\r\n    }\r\n    \r\n    .ec-insights li {\r\n      padding: 8px 0;\r\n      padding-left: 28px;\r\n      position: relative;\r\n      line-height: 1.5;\r\n    }\r\n    \r\n    .ec-insights li::before {\r\n      position: absolute;\r\n      left: 0;\r\n      top: 8px;\r\n    }\r\n    \r\n    .ec-insights li:nth-child(1)::before { content: '\ud83d\udcc8'; }\r\n    .ec-insights li:nth-child(2)::before { content: '\ud83d\udc65'; }\r\n    .ec-insights li:nth-child(3)::before { content: '\u26a1'; }\r\n    .ec-insights li:nth-child(4)::before { content: '\ud83d\udcb6'; }\r\n    \r\n    @media (max-width: 768px) {\r\n      .ec-content {\r\n        padding: 16px;\r\n      }\r\n      \r\n      .ec-panel {\r\n        flex: 1 1 100%;\r\n      }\r\n      \r\n      .ec-grid {\r\n        grid-template-columns: 1fr;\r\n      }\r\n      \r\n      .ec-table {\r\n        font-size: 0.8rem;\r\n      }\r\n      \r\n      .ec-table th,\r\n      .ec-table td {\r\n        padding: 8px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n    <div class=\"ec-card\">\r\n    <div class=\"ec-header\">\r\n      <h2>\ud83e\uddee Simulador de Ingresos \u2014 Broker de Energ\u00eda Independiente<\/h2>\r\n      <p>Ajuste los par\u00e1metros y calcule su proyecci\u00f3n a 5 a\u00f1os con comisiones recurrentes y bonificaciones<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"ec-content\">\r\n      <!-- Parameters -->\r\n      <div class=\"ec-panel\">\r\n        <h3>\u2699\ufe0f Par\u00e1metros de Simulaci\u00f3n<\/h3>\r\n\r\n        <div class=\"ec-chips\">\r\n          <span class=\"ec-chip\" data-ec-preset=\"debutant\">\ud83d\udc76 Inicial Conservador<\/span>\r\n          <span class=\"ec-chip\" data-ec-preset=\"intermediaire\">\ud83d\udcbc Intermedio<\/span>\r\n          <span class=\"ec-chip\" data-ec-preset=\"ambitieux\">\ud83d\ude80 Ambicioso<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"ec-grid\">\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-clients\">Nuevos clientes \/ a\u00f1o<\/label>\r\n            <input type=\"number\" id=\"ec-clients\" value=\"50\" min=\"0\" step=\"1\">\r\n          <\/div>\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-conso\">Consumo promedio (MWh\/a\u00f1o)<\/label>\r\n            <input type=\"number\" id=\"ec-conso\" value=\"300\" min=\"0\" step=\"10\">\r\n          <\/div>\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-commission\">Comisi\u00f3n (\u20ac\/MWh)<\/label>\r\n            <input type=\"number\" id=\"ec-commission\" value=\"1.2\" min=\"0\" step=\"0.1\">\r\n          <\/div>\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-retention\">Tasa de retenci\u00f3n (%)<\/label>\r\n            <input type=\"number\" id=\"ec-retention\" value=\"85\" min=\"0\" max=\"100\" step=\"1\">\r\n          <\/div>\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-bonus\">Bonificaci\u00f3n por firma (\u20ac)<\/label>\r\n            <input type=\"number\" id=\"ec-bonus\" value=\"200\" min=\"0\" step=\"10\">\r\n            <span class=\"ec-hint\">Pago \u00fanico al firmar<\/span>\r\n          <\/div>\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-charges\">Gastos anuales (\u20ac)<\/label>\r\n            <input type=\"number\" id=\"ec-charges\" value=\"18000\" min=\"0\" step=\"500\">\r\n            <span class=\"ec-hint\">Seguro, herramientas, viajes...<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"ec-divider\"><\/div>\r\n\r\n        <div class=\"ec-grid\">\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-charges-growth\">Crecimiento gastos\/a\u00f1o (\u20ac)<\/label>\r\n            <input type=\"number\" id=\"ec-charges-growth\" value=\"2000\" min=\"0\" step=\"500\">\r\n          <\/div>\r\n          <div class=\"ec-field\">\r\n            <label for=\"ec-years\">Duraci\u00f3n proyecci\u00f3n (a\u00f1os)<\/label>\r\n            <input type=\"number\" id=\"ec-years\" value=\"5\" min=\"1\" max=\"10\" step=\"1\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"ec-actions\">\r\n          <button class=\"ec-btn ec-btn-primary\" id=\"ec-calc\">Calcular Proyecci\u00f3n<\/button>\r\n          <button class=\"ec-btn ec-btn-ghost\" id=\"ec-reset\">Restablecer<\/button>\r\n        <\/div>\r\n\r\n        <p class=\"ec-note\">\r\n          <strong>\ud83d\udca1 F\u00f3rmula:<\/strong> Comisi\u00f3n recurrente = Clientes activos \u00d7 Consumo \u00d7 \u20ac\/MWh<br>\r\n          Clientes activos a\u00f1o N = (Clientes a\u00f1o N-1 \u00d7 retenci\u00f3n) + Nuevos clientes\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <!-- Results -->\r\n      <div class=\"ec-panel\">\r\n        <h3>\ud83d\udcca Proyecci\u00f3n <span id=\"ec-years-label\">(5 a\u00f1os)<\/span><\/h3>\r\n        <div class=\"ec-badge ec-badge-ok\" id=\"ec-badge\">Listo para calcular<\/div>\r\n        \r\n        <div class=\"ec-divider\"><\/div>\r\n        \r\n        <div class=\"ec-table-wrapper\">\r\n          <table class=\"ec-table\">\r\n            <thead>\r\n              <tr>\r\n                <th>A\u00f1o<\/th>\r\n                <th>Nuevos<\/th>\r\n                <th>Activos<\/th>\r\n                <th>Ing. recurrente<\/th>\r\n                <th>Bonif.<\/th>\r\n                <th>Ing. total<\/th>\r\n                <th>Gastos<\/th>\r\n                <th>Neto<\/th>\r\n              <\/tr>\r\n            <\/thead>\r\n            <tbody id=\"ec-tbody\"><\/tbody>\r\n            <tfoot>\r\n              <tr>\r\n                <td>Total<\/td>\r\n                <td id=\"ec-t-new\">-<\/td>\r\n                <td id=\"ec-t-actifs\">-<\/td>\r\n                <td id=\"ec-t-rec\">-<\/td>\r\n                <td id=\"ec-t-bonus\">-<\/td>\r\n                <td id=\"ec-t-ca\">-<\/td>\r\n                <td id=\"ec-t-charges\">-<\/td>\r\n                <td id=\"ec-t-net\">-<\/td>\r\n              <\/tr>\r\n            <\/tfoot>\r\n          <\/table>\r\n        <\/div>\r\n        \r\n        <p class=\"ec-note\" id=\"ec-recap\"><\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ec-content\">\r\n      <div class=\"ec-panel\">\r\n        <h3>\ud83d\udcc8 An\u00e1lisis e Informaci\u00f3n Detallada<\/h3>\r\n        <div class=\"ec-insights\" id=\"ec-insights\">\r\n          <p>Ejecute un c\u00e1lculo para ver el an\u00e1lisis detallado de su proyecci\u00f3n.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ec-panel\">\r\n        <h3>\ud83c\udfe2 Proyecci\u00f3n de Agencia (Indicativa)<\/h3>\r\n        <details class=\"ec-details\">\r\n          <summary>Ver proyecci\u00f3n para una agencia estructurada<\/summary>\r\n          <div class=\"ec-table-wrapper\" style=\"margin-top: 16px;\">\r\n            <table class=\"ec-table\">\r\n              <thead>\r\n                <tr>\r\n                  <th>A\u00f1o<\/th>\r\n                  <th>Equipo<\/th>\r\n                  <th>Ing. bruto<\/th>\r\n                  <th>Gastos<\/th>\r\n                  <th>Resultado neto<\/th>\r\n                <\/tr>\r\n              <\/thead>\r\n              <tbody>\r\n                <tr>\r\n                  <td>A\u00f1o 1<\/td>\r\n                  <td>1-2 personas<\/td>\r\n                  <td>\u20ac80.000<\/td>\r\n                  <td>\u20ac75.000<\/td>\r\n                  <td>\u20ac5.000<\/td>\r\n                <\/tr>\r\n                <tr>\r\n                  <td>A\u00f1o 2<\/td>\r\n                  <td>2-3 personas<\/td>\r\n                  <td>\u20ac180.000<\/td>\r\n                  <td>\u20ac145.000<\/td>\r\n                  <td>\u20ac35.000<\/td>\r\n                <\/tr>\r\n                <tr>\r\n                  <td>A\u00f1o 3<\/td>\r\n                  <td>3-5 personas<\/td>\r\n                  <td>\u20ac350.000<\/td>\r\n                  <td>\u20ac260.000<\/td>\r\n                  <td>\u20ac90.000<\/td>\r\n                <\/tr>\r\n                <tr>\r\n                  <td>A\u00f1o 4<\/td>\r\n                  <td>5-8 personas<\/td>\r\n                  <td>\u20ac550.000<\/td>\r\n                  <td>\u20ac380.000<\/td>\r\n                  <td>\u20ac170.000<\/td>\r\n                <\/tr>\r\n                <tr>\r\n                  <td>A\u00f1o 5<\/td>\r\n                  <td>8-12 personas<\/td>\r\n                  <td>\u20ac800.000<\/td>\r\n                  <td>\u20ac520.000<\/td>\r\n                  <td>\u20ac280.000<\/td>\r\n                <\/tr>\r\n              <\/tbody>\r\n            <\/table>\r\n          <\/div>\r\n          <p class=\"ec-note\">\r\n            \u26a0\ufe0f <strong>Importante:<\/strong> Inversi\u00f3n inicial \u20ac30-100k, acceso complejo a proveedores, \r\n            alta carga de trabajo, mayor responsabilidad legal.\r\n          <\/p>\r\n        <\/details>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n  \r\n  \/\/ Check if DOM is ready\r\n  function ready(fn) {\r\n    if (document.readyState !== 'loading') {\r\n      fn();\r\n    } else {\r\n      document.addEventListener('DOMContentLoaded', fn);\r\n    }\r\n  }\r\n  \r\n  ready(function() {\r\n    \/\/ Utility functions\r\n    const formatNumber = function(n) {\r\n      return Math.round(n).toLocaleString('en-US');\r\n    };\r\n    \r\n    const formatEuro = function(n) {\r\n      const prefix = n < 0 ? '- ' : '';\r\n      return '\u20ac' + prefix + Math.abs(Math.round(n)).toLocaleString('en-US');\r\n    };\r\n    \r\n    \/\/ Get elements with unique prefix\r\n    const getEl = function(id) {\r\n      return document.getElementById(id);\r\n    };\r\n    \r\n    const inputs = {\r\n      clients: getEl('ec-clients'),\r\n      conso: getEl('ec-conso'),\r\n      commission: getEl('ec-commission'),\r\n      retention: getEl('ec-retention'),\r\n      bonus: getEl('ec-bonus'),\r\n      charges: getEl('ec-charges'),\r\n      chargesGrowth: getEl('ec-charges-growth'),\r\n      years: getEl('ec-years')\r\n    };\r\n    \r\n    const elements = {\r\n      btnCalc: getEl('ec-calc'),\r\n      btnReset: getEl('ec-reset'),\r\n      tbody: getEl('ec-tbody'),\r\n      tNew: getEl('ec-t-new'),\r\n      tActifs: getEl('ec-t-actifs'),\r\n      tRec: getEl('ec-t-rec'),\r\n      tBonus: getEl('ec-t-bonus'),\r\n      tCA: getEl('ec-t-ca'),\r\n      tCharges: getEl('ec-t-charges'),\r\n      tNet: getEl('ec-t-net'),\r\n      recap: getEl('ec-recap'),\r\n      badge: getEl('ec-badge'),\r\n      yearsLabel: getEl('ec-years-label'),\r\n      insights: getEl('ec-insights')\r\n    };\r\n    \r\n    \/\/ Preset management\r\n    const presets = {\r\n      debutant: {\r\n        clients: 30,\r\n        conso: 200,\r\n        commission: 1.1,\r\n        retention: 80,\r\n        bonus: 150,\r\n        charges: 12000,\r\n        chargesGrowth: 1500\r\n      },\r\n      intermediaire: {\r\n        clients: 50,\r\n        conso: 300,\r\n        commission: 1.2,\r\n        retention: 85,\r\n        bonus: 200,\r\n        charges: 18000,\r\n        chargesGrowth: 2000\r\n      },\r\n      ambitieux: {\r\n        clients: 70,\r\n        conso: 400,\r\n        commission: 1.4,\r\n        retention: 88,\r\n        bonus: 250,\r\n        charges: 22000,\r\n        chargesGrowth: 2500\r\n      }\r\n    };\r\n    \r\n    \/\/ Event listeners for chips\r\n    document.querySelectorAll('.ec-chip').forEach(function(chip) {\r\n      chip.addEventListener('click', function() {\r\n        const presetName = chip.getAttribute('data-ec-preset');\r\n        const preset = presets[presetName];\r\n        if (preset) {\r\n          inputs.clients.value = preset.clients;\r\n          inputs.conso.value = preset.conso;\r\n          inputs.commission.value = preset.commission;\r\n          inputs.retention.value = preset.retention;\r\n          inputs.bonus.value = preset.bonus;\r\n          inputs.charges.value = preset.charges;\r\n          inputs.chargesGrowth.value = preset.chargesGrowth;\r\n        }\r\n      });\r\n    });\r\n    \r\n    \/\/ Main calculation function\r\n    function calculate() {\r\n      \/\/ Get and validate values\r\n      const clientsPerYear = Math.max(0, parseInt(inputs.clients.value) || 0);\r\n      const conso = Math.max(0, parseFloat(inputs.conso.value) || 0);\r\n      const commission = Math.max(0, parseFloat(inputs.commission.value) || 0);\r\n      const retention = Math.min(100, Math.max(0, parseFloat(inputs.retention.value) || 0)) \/ 100;\r\n      const bonus = Math.max(0, parseFloat(inputs.bonus.value) || 0);\r\n      const chargesBase = Math.max(0, parseFloat(inputs.charges.value) || 0);\r\n      const chargesGrowth = Math.max(0, parseFloat(inputs.chargesGrowth.value) || 0);\r\n      const years = Math.min(10, Math.max(1, parseInt(inputs.years.value) || 5));\r\n      \r\n      \/\/ Update years label\r\n      elements.yearsLabel.textContent = '(' + years + ' year' + (years > 1 ? 's' : '') + ')';\r\n      \r\n      \/\/ Reset table\r\n      elements.tbody.innerHTML = '';\r\n      \r\n      let activeClients = 0;\r\n      let totals = {\r\n        new: 0,\r\n        actifs: 0,\r\n        rec: 0,\r\n        bonus: 0,\r\n        ca: 0,\r\n        charges: 0,\r\n        net: 0\r\n      };\r\n      \r\n      \/\/ Calculate for each year\r\n      for (let year = 1; year <= years; year++) {\r\n        activeClients = Math.round(activeClients * retention + clientsPerYear);\r\n        \r\n        const recurrent = Math.round(activeClients * conso * commission);\r\n        const bonusTotal = Math.round(clientsPerYear * bonus);\r\n        const caTotal = recurrent + bonusTotal;\r\n        const charges = Math.round(chargesBase + (year - 1) * chargesGrowth);\r\n        const net = caTotal - charges;\r\n        \r\n        \/\/ Add row to table\r\n        const row = document.createElement('tr');\r\n        row.innerHTML = \r\n          '<td>A\u00f1o ' + year + '<\/td>' +\r\n          '<td>' + formatNumber(clientsPerYear) + '<\/td>' +\r\n          '<td>' + formatNumber(activeClients) + '<\/td>' +\r\n          '<td>' + formatEuro(recurrent) + '<\/td>' +\r\n          '<td>' + formatEuro(bonusTotal) + '<\/td>' +\r\n          '<td>' + formatEuro(caTotal) + '<\/td>' +\r\n          '<td>' + formatEuro(charges) + '<\/td>' +\r\n          '<td style=\"font-weight:700;' + (net < 0 ? 'color:#c62828;' : '') + '\">' + \r\n            formatEuro(net) + '<\/td>';\r\n        elements.tbody.appendChild(row);\r\n        \r\n        \/\/ Accumulate totals\r\n        totals.new += clientsPerYear;\r\n        totals.actifs = activeClients;\r\n        totals.rec += recurrent;\r\n        totals.bonus += bonusTotal;\r\n        totals.ca += caTotal;\r\n        totals.charges += charges;\r\n        totals.net += net;\r\n      }\r\n      \r\n      \/\/ Update totals\r\n      elements.tNew.textContent = formatNumber(totals.new);\r\n      elements.tActifs.textContent = formatNumber(totals.actifs);\r\n      elements.tRec.textContent = formatEuro(totals.rec);\r\n      elements.tBonus.textContent = formatEuro(totals.bonus);\r\n      elements.tCA.textContent = formatEuro(totals.ca);\r\n      elements.tCharges.textContent = formatEuro(totals.charges);\r\n      elements.tNet.textContent = formatEuro(totals.net);\r\n      \r\n      \/\/ Badge and summary\r\n      const avgNet = Math.round(totals.net \/ years);\r\n      elements.badge.textContent = 'Prom. neto: ' + formatEuro(avgNet) + '\/a\u00f1o';\r\n      elements.badge.className = 'ec-badge ' + \r\n        (avgNet >= 50000 ? 'ec-badge-ok' : avgNet >= 20000 ? 'ec-badge-warn' : 'ec-badge-bad');\r\n      \r\n      elements.recap.innerHTML = \r\n        'Con <strong>' + formatNumber(clientsPerYear) + '<\/strong> nuevos clientes\/a\u00f1o, ' +\r\n        'un consumo promedio de <strong>' + formatNumber(conso) + ' MWh<\/strong>, ' +\r\n        'una comisi\u00f3n de <strong>\u20ac' + commission.toFixed(2) + '\/MWh<\/strong> y ' +\r\n        'una tasa de retenci\u00f3n de <strong>' + Math.round(retention * 100) + '%<\/strong>, ' +\r\n        'sus comisiones recurrentes alcanzan <strong>' + formatEuro(totals.rec) + '<\/strong> ' +\r\n        'durante ' + years + (years > 1 ? ' a\u00f1os' : ' a\u00f1o') + '.';\r\n      \r\n      \/\/ Calculate insights\r\n      const recPerClientYear = conso * commission;\r\n      const retentionSum = (1 - Math.pow(retention, years)) \/ (1 - retention);\r\n      \r\n      const delta10Clients = Math.round(10 * years * (bonus + recPerClientYear * retentionSum));\r\n      const delta10MWh = Math.round(clientsPerYear * years * 10 * commission * retentionSum);\r\n      const delta01Euro = Math.round(clientsPerYear * years * conso * 0.1 * retentionSum);\r\n      \r\n      const retention2 = Math.min(0.99, retention + 0.05);\r\n      const retentionSum2 = (1 - Math.pow(retention2, years)) \/ (1 - retention2);\r\n      const delta5Retention = Math.round(clientsPerYear * recPerClientYear * (retentionSum2 - retentionSum));\r\n      \r\n      elements.insights.innerHTML = \r\n        '<ul>' +\r\n        '<li><strong>Palanca #1: Retenci\u00f3n<\/strong> - Aumentar 5 puntos = <strong>' + \r\n          formatEuro(delta5Retention) + '<\/strong> durante ' + years + ' a\u00f1os<\/li>' +\r\n        '<li><strong>Volumen de clientes<\/strong> - +10 clientes\/a\u00f1o = <strong>' + \r\n          formatEuro(delta10Clients) + '<\/strong> durante ' + years + ' a\u00f1os<\/li>' +\r\n        '<li><strong>Consumo<\/strong> - +10 MWh\/cliente = <strong>' + \r\n          formatEuro(delta10MWh) + '<\/strong> durante ' + years + ' a\u00f1os<\/li>' +\r\n        '<li><strong>Comisi\u00f3n<\/strong> - +\u20ac0.10\/MWh = <strong>' + \r\n          formatEuro(delta01Euro) + '<\/strong> durante ' + years + ' a\u00f1os<\/li>' +\r\n        '<\/ul>' +\r\n        '<p style=\"margin-top:1rem;opacity:0.8;font-size:0.9rem;\">' +\r\n        '\ud83d\udca1 Combine m\u00faltiples palancas para un efecto multiplicador en sus ingresos.<\/p>';\r\n    }\r\n    \r\n    \/\/ Reset function\r\n    function reset() {\r\n      inputs.clients.value = 50;\r\n      inputs.conso.value = 300;\r\n      inputs.commission.value = 1.2;\r\n      inputs.retention.value = 85;\r\n      inputs.bonus.value = 200;\r\n      inputs.charges.value = 18000;\r\n      inputs.chargesGrowth.value = 2000;\r\n      inputs.years.value = 5;\r\n      \r\n      elements.tbody.innerHTML = '';\r\n      elements.tNew.textContent = '-';\r\n      elements.tActifs.textContent = '-';\r\n      elements.tRec.textContent = '-';\r\n      elements.tBonus.textContent = '-';\r\n      elements.tCA.textContent = '-';\r\n      elements.tCharges.textContent = '-';\r\n      elements.tNet.textContent = '-';\r\n      \r\n      elements.badge.textContent = 'Ready to calculate';\r\n      elements.badge.className = 'ec-badge ec-badge-ok';\r\n      elements.recap.textContent = '';\r\n      elements.yearsLabel.textContent = '(5 years)';\r\n      elements.insights.innerHTML = '<p>Run a calculation to see detailed analysis of your projection.<\/p>';\r\n    }\r\n    \r\n    \/\/ Add event listeners\r\n    if (elements.btnCalc) {\r\n      elements.btnCalc.addEventListener('click', calculate);\r\n    }\r\n    \r\n    if (elements.btnReset) {\r\n      elements.btnReset.addEventListener('click', reset);\r\n    }\r\n    \r\n    \/\/ Auto-calculate when inputs change\r\n    Object.values(inputs).forEach(function(input) {\r\n      if (input) {\r\n        input.addEventListener('change', calculate);\r\n      }\r\n    });\r\n    \r\n    \/\/ Initialize\r\n    reset();\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\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>Simulador de ingresos para corredores independientes Este simulador interactivo le permite estimar sus ingresos mensuales y anuales como agente energ\u00e9tico independiente. Con solo indicar el n\u00famero de clientes, su tasa de comisi\u00f3n, el consumo medio de sus clientes potenciales y la duraci\u00f3n de los contratos, obtendr\u00e1 una estimaci\u00f3n precisa de sus ganancias potenciales en funci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":"","rank_math_description":"","footnotes":""},"class_list":["post-6459","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/pages\/6459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/comments?post=6459"}],"version-history":[{"count":4,"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/pages\/6459\/revisions"}],"predecessor-version":[{"id":6466,"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/pages\/6459\/revisions\/6466"}],"wp:attachment":[{"href":"https:\/\/energypromag.com\/es\/wp-json\/wp\/v2\/media?parent=6459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}