{"id":50967,"date":"2025-11-18T22:08:14","date_gmt":"2025-11-18T21:08:14","guid":{"rendered":"https:\/\/syklo.fr\/why-does-your-electric-bike-need-more-than-750w\/"},"modified":"2025-11-19T09:11:18","modified_gmt":"2025-11-19T08:11:18","slug":"why-does-your-electric-bike-need-more-than-750w","status":"publish","type":"post","link":"https:\/\/syklo.fr\/en\/why-does-your-electric-bike-need-more-than-750w\/","title":{"rendered":"What power for your electric bike? Calculator and EN15194 standard"},"content":{"rendered":"<article>\n<h2>EN 15194: a framework for innovation<\/h2>\n<p>European regulation EN 15194 defines exactly what an electrically-assisted bicycle is: the maximum continuous power rating must not <strong>exceed 0.25 kW<\/strong>, and the power supply stops when the bicycle reaches <strong>25 km\/h<\/strong>. This standard guarantees legal use on public roads. <\/p>\n<p>Contrary to popular belief, these regulations do not prohibit <strong>power peaks<\/strong> in excess of 250W. A motor is perfectly capable of withstanding a rise in temperature and absorbing power <g id=\"gid_1\">up to 2.5 or even 3 times its rated power<\/g>. It&#8217;s this technical distinction that enables some motors to deliver<strong> peak power ratings of 1000W<\/strong>, while complying fully with the law.  <\/p>\n<h2>Concrete use cases that justify power<\/h2>\n<h3>Sarah, home care nurse in a hilly area<\/h3>\n<p>Sarah carries 15 kg of medical equipment in her panniers every day and has to climb the hills in her community. With a limited-power motor, her bike struggles and wears out prematurely. A power reserve enables her to maintain a stable speed even when climbing, without putting excessive strain on the motor.  <\/p>\n<h3>Michel, disabled user<\/h3>\n<p>For Michel, who has regained his freedom of movement thanks to an electric bike, the 15% climbs near his home are only possible with a sufficient reserve of power. European legislation recognizes these specific needs, and the LEVA-EU association regularly points out that power limits exclude certain categories of users. <\/p>\n<h3>Daily use in rural areas<\/h3>\n<p>In the foothills of the Vercors, a short 15% climb with a loaded cargo bike represents a real technical challenge. Without sufficient torque, it&#8217;s a guaranteed walking aid and the risk of pushing 80 kg in sweat. This real-life situation illustrates why a power reserve is not a luxury but <strong>a practical necessity<\/strong>.  <\/p>\n<p>Each concrete situation can be verified mathematically. <strong>A power calculator<\/strong> makes it possible to precisely estimate requirements for different usage scenarios. Below you can estimate the power required for your journey: <!-- notionvc: 4ce9eff7-c3fc-4dfe-8ab2-cb345d8c3c94 --><\/p>\n<p><!-- notionvc: f1626d4e-3ae6-406e-8653-bfd4dab65aa3 --><\/p>\n<p><!-- notionvc: 23f97f66-1fb0-4806-9e51-9ae36e29f809 --><\/p>\n<\/article>\n\n<style>:root {\n    --syklo-green: #36896E;\n    --syklo-lime: #BED62F;\n    --syklo-dark-text: #2c3e50;\n    --syklo-light-text: #555;\n    --syklo-background: #f9f9f9;\n    --syklo-container-bg: #ffffff;\n    --syklo-border-color: #eef0f2;\n  }\n\n  .syklo-calc-wrapper {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n    background-color: var(--syklo-background);\n    color: var(--syklo-dark-text);\n    line-height: 1.6;\n    padding: 20px;\n    max-width: 700px;\n    margin: 30px auto;\n  }\n\n  .calculator-container {\n    background-color: var(--syklo-container-bg);\n    padding: 30px;\n    border-radius: 12px;\n    border: 1px solid var(--syklo-border-color);\n    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.07);\n  }\n\n  .calculator-container h2 {\n    text-align: center;\n    color: var(--syklo-dark-text);\n    margin-bottom: 30px;\n    font-weight: 700;\n  }\n\n  .input-group {\n    margin-bottom: 25px;\n  }\n\n  .input-group label {\n    display: block;\n    margin-bottom: 8px;\n    font-weight: 600;\n    color: var(--syklo-light-text);\n  }\n\n  .input-group select,\n  .input-group input[type=\"range\"] {\n    width: 100%;\n    padding: 12px;\n    border-radius: 8px;\n    border: 1px solid #ddd;\n    box-sizing: border-box;\n    font-size: 16px;\n    background-color: #fdfdfd;\n  }\n\n  .input-group input[type=\"range\"] {\n    padding: 0;\n    margin-top: 5px;\n    accent-color: var(--syklo-green);\n  }\n\n  .range-value {\n    display: inline-block;\n    margin-left: 10px;\n    font-weight: bold;\n    color: var(--syklo-green);\n  }\n\n  .loads-container {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n    gap: 20px;\n    margin-top: 15px;\n    text-align: center;\n  }\n\n  .load-item-wrapper {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    padding: 10px;\n    border-radius: 10px;\n    background-color: #f8f9fa;\n    border: 1px solid var(--syklo-border-color);\n  }\n\n  .load-label {\n    font-size: 14px;\n    font-weight: 600;\n    margin-bottom: 5px;\n  }\n\n  .load-emoji {\n    font-size: 36px;\n    line-height: 1;\n  }\n\n  .load-weight {\n    font-size: 12px;\n    color: #777;\n    margin: 5px 0;\n  }\n\n  .load-controls {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin-top: 5px;\n    gap: 8px;\n  }\n\n  .control-btn {\n    background-color: #eef0f2;\n    border: none;\n    color: #333;\n    width: 28px;\n    height: 28px;\n    border-radius: 50%;\n    font-size: 20px;\n    font-weight: bold;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    line-height: 1;\n    transition: background-color 0.2s;\n  }\n\n  .control-btn:hover {\n    background-color: #dfe3e6;\n  }\n\n  .load-quantity {\n    font-size: 18px;\n    font-weight: 700;\n    color: var(--syklo-green);\n    min-width: 30px;\n    text-align: center;\n  }\n\n  .result-container {\n    margin-top: 30px;\n    padding: 20px;\n    background-color: rgba(54, 137, 110, 0.05);\n    border-left: 5px solid var(--syklo-green);\n    text-align: center;\n  }\n\n  .result-container p {\n    margin: 0;\n    font-size: 18px;\n  }\n\n  .result-container .power-value {\n    font-size: 42px;\n    font-weight: bold;\n    color: var(--syklo-lime);\n    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);\n    margin: 5px 0;\n  }\n\n  .result-container .details {\n    font-size: 14px;\n    color: var(--syklo-light-text);\n    margin-top: 15px;\n  }\n\n  .conseil-box {\n    margin-top: 20px;\n    padding: 15px;\n    background-color: #f8f9fa;\n    border: 1px dashed var(--syklo-green);\n    border-radius: 8px;\n    font-size: 14px;\n    color: var(--syklo-light-text);\n    text-align: left;\n    line-height: 1.5;\n  }\n\n  .conseil-box strong {\n    color: var(--syklo-dark-text);\n  }\n<\/style><div class=\"syklo-calc-wrapper\"><div class=\"calculator-container\"><h2>Estimez la puissance n\u00e9cessaire pour votre trajet<\/h2><div class=\"input-group\"><label for=\"bikeType\">\u2460 Choisissez votre type de v\u00e9lo :<\/label><select id=\"bikeType\"><option value=\"cargo\">\ud83d\udeb2 Cargo<\/option><option value=\"vtt\">\ud83d\udeb5 VTT<\/option><option value=\"route\" selected=\"selected\">\ud83d\udeb4 V\u00e9lo de route<\/option><option value=\"gravel\">\ud83c\udfdc\ufe0f Gravel<\/option><option value=\"vtc\">\ud83c\udfd9\ufe0f VTC (V\u00e9lo Tout Chemin)<\/option><\/select><\/div><div class=\"input-group\"><label for=\"cyclistWeight\">\u2461 Votre poids (kg) :<\/label><input type=\"range\" id=\"cyclistWeight\" min=\"40\" max=\"140\" value=\"75\"\/><span id=\"cyclistWeightValue\" class=\"range-value\">75 kg<\/span><\/div><div class=\"input-group\"><label>\u2462 Ajoutez des charges :<\/label><div class=\"loads-container\"><div class=\"load-item-wrapper\" data-weight=\"15\"><div class=\"load-label\">Enfant<\/div><div class=\"load-emoji\">\ud83d\udc76<\/div><div class=\"load-weight\">+15 kg<\/div><div class=\"load-controls\"><button class=\"control-btn\" data-action=\"decrease\">&#8211;<\/button><span class=\"load-quantity\">0<\/span><button class=\"control-btn\" data-action=\"increase\">+<\/button><\/div><\/div><div class=\"load-item-wrapper\" data-weight=\"15\"><div class=\"load-label\">Courses<\/div><div class=\"load-emoji\">\ud83d\uded2<\/div><div class=\"load-weight\">+15 kg<\/div><div class=\"load-controls\"><button class=\"control-btn\" data-action=\"decrease\">&#8211;<\/button><span class=\"load-quantity\">0<\/span><button class=\"control-btn\" data-action=\"increase\">+<\/button><\/div><\/div><div class=\"load-item-wrapper\" data-weight=\"10\"><div class=\"load-label\">Bagages<\/div><div class=\"load-emoji\">\ud83c\udf92<\/div><div class=\"load-weight\">+10 kg<\/div><div class=\"load-controls\"><button class=\"control-btn\" data-action=\"decrease\">&#8211;<\/button><span class=\"load-quantity\">0<\/span><button class=\"control-btn\" data-action=\"increase\">+<\/button><\/div><\/div><div class=\"load-item-wrapper\" data-weight=\"8\"><div class=\"load-label\">Animal<\/div><div class=\"load-emoji\">\ud83d\udc15<\/div><div class=\"load-weight\">+8 kg<\/div><div class=\"load-controls\"><button class=\"control-btn\" data-action=\"decrease\">&#8211;<\/button><span class=\"load-quantity\">0<\/span><button class=\"control-btn\" data-action=\"increase\">+<\/button><\/div><\/div><div class=\"load-item-wrapper\" data-weight=\"12\"><div class=\"load-label\">Remorque<\/div><div class=\"load-emoji\">\ud83d\ude82<\/div><div class=\"load-weight\">+12 kg<\/div><div class=\"load-controls\"><button class=\"control-btn\" data-action=\"decrease\">&#8211;<\/button><span class=\"load-quantity\">0<\/span><button class=\"control-btn\" data-action=\"increase\">+<\/button><\/div><\/div><\/div><\/div><div class=\"input-group\"><label for=\"speed\">\u2463 Vitesse moyenne souhait\u00e9e (km\/h) :<\/label><input type=\"range\" id=\"speed\" min=\"5\" max=\"45\" value=\"20\"\/><span id=\"speedValue\" class=\"range-value\">20 km\/h<\/span><\/div><div class=\"input-group\"><label for=\"slope\">\u2464 Pente maximale du trajet (%) :<\/label><input type=\"range\" id=\"slope\" min=\"0\" max=\"20\" value=\"5\" step=\"0.5\"\/><span id=\"slopeValue\" class=\"range-value\">5 %<\/span><\/div><div class=\"result-container\"><p>Puissance maximale estim\u00e9e n\u00e9cessaire :<\/p><p id=\"totalPower\" class=\"power-value\">&#8212; Watts<\/p><p id=\"totalWeight\" class=\"details\">Poids total : &#8212; kg<\/p><div class=\"conseil-box\"><strong>\ud83d\udca1 Conseil Syklo :<\/strong>Pour pr\u00e9server la dur\u00e9e de vie du moteur et ne jamais manquer de ressource, nous vous recommandons de choisir une puissance maximale d&#8217;environ <strong><span id=\"recommendedPower\">&#8212;<\/span> Watts<\/strong>.\n      <\/div><\/div><\/div><\/div><script>(function() {\n  const bikeData = {\n    cargo: { weight: 40, crr: 0.012, scx: 0.70 },\n    vtt: { weight: 14, crr: 0.015, scx: 0.65 },\n    route: { weight: 9, crr: 0.005, scx: 0.35 },\n    gravel: { weight: 11, crr: 0.008, scx: 0.45 },\n    vtc: { weight: 16, crr: 0.010, scx: 0.60 }\n  };\n\n  const g = 9.81;\n  const rho = 1.225;\n\n  const bikeTypeSelect = document.getElementById('bikeType');\n  const cyclistWeightSlider = document.getElementById('cyclistWeight');\n  const speedSlider = document.getElementById('speed');\n  const slopeSlider = document.getElementById('slope');\n  const loadsContainer = document.querySelector('.loads-container');\n  const cyclistWeightValue = document.getElementById('cyclistWeightValue');\n  const speedValue = document.getElementById('speedValue');\n  const slopeValue = document.getElementById('slopeValue');\n  const totalPowerDisplay = document.getElementById('totalPower');\n  const totalWeightDisplay = document.getElementById('totalWeight');\n  const recommendedPowerDisplay = document.getElementById('recommendedPower');\n\n  function calculatePower() {\n    const bikeType = bikeTypeSelect.value;\n    const cyclistWeight = parseFloat(cyclistWeightSlider.value);\n    const speedKmh = parseFloat(speedSlider.value);\n    const slopePercent = parseFloat(slopeSlider.value);\n\n    let additionalLoadWeight = 0;\n    document.querySelectorAll('.load-item-wrapper').forEach(wrapper => {\n      const weight = parseFloat(wrapper.getAttribute('data-weight'));\n      const quantity = parseInt(wrapper.querySelector('.load-quantity').textContent);\n      additionalLoadWeight += weight * quantity;\n    });\n\n    const currentBike = bikeData[bikeType];\n    const totalWeight = currentBike.weight + cyclistWeight + additionalLoadWeight;\n    const speedMs = speedKmh \/ 3.6;\n    const slopeRatio = slopePercent \/ 100;\n\n    const powerGravity = totalWeight * g * slopeRatio * speedMs;\n    const powerRolling = totalWeight * g * currentBike.crr * speedMs;\n    const powerAir = 0.5 * rho * currentBike.scx * Math.pow(speedMs, 3);\n    const totalPower = powerGravity + powerRolling + powerAir;\n    const recommendedPower = Math.round(totalPower * 1.10);\n\n    totalPowerDisplay.textContent = `${Math.round(totalPower)} Watts`;\n    recommendedPowerDisplay.textContent = recommendedPower;\n    totalWeightDisplay.textContent = `Poids total : ${totalWeight.toFixed(1)} kg`;\n    cyclistWeightValue.textContent = `${cyclistWeight} kg`;\n    speedValue.textContent = `${speedKmh} km\/h`;\n    slopeValue.textContent = `${slopePercent} %`;\n  }\n\n  bikeTypeSelect.addEventListener('input', calculatePower);\n  cyclistWeightSlider.addEventListener('input', calculatePower);\n  speedSlider.addEventListener('input', calculatePower);\n  slopeSlider.addEventListener('input', calculatePower);\n\n  loadsContainer.addEventListener('click', (event) => {\n    const target = event.target;\n    if (target.matches('.control-btn')) {\n      const wrapper = target.closest('.load-item-wrapper');\n      const quantitySpan = wrapper.querySelector('.load-quantity');\n      let currentQuantity = parseInt(quantitySpan.textContent);\n\n      if (target.dataset.action === 'increase') {\n        currentQuantity++;\n      } else if (target.dataset.action === 'decrease' && currentQuantity > 0) {\n        currentQuantity--;\n      }\n\n      quantitySpan.textContent = currentQuantity;\n      calculatePower();\n    }\n  });\n\n  window.addEventListener('load', calculatePower);\n})();\n<\/script>\n<article><\/article>\n<article>\n<h2>The principle of motor sizing<\/h2>\n<p>The mechanics are simple to understand: an undersized motor, running at 90% all the time, breaks down quickly. An <g id=\"gid_0\">oversized motor,<\/g> operating at <g id=\"gid_1\">60%<\/g>, lasts for years without a problem. This is exactly the principle applied by the automotive industry.  <\/p>\n<p>This logic applies to electric bikes with motors capable of high peaks for a few minutes, followed by more moderate continuous power. This architecture enables the motor to deliver the necessary effort in difficult passages without compromising its long-term durability. <\/p>\n<h2>Impact on actual performance<\/h2>\n<p>The practical consequences can be measured in concrete terms:<\/p>\n<ul>\n<li>With <strong>1000W peak<\/strong>: <strong>average<\/strong> speed <strong>of 23-25 km\/h maintained<\/strong>, driving pleasure preserved<\/li>\n<li>With 750W capped: average speed of 18 km\/h, frustration and risk of returning to the car<\/li>\n<\/ul>\n<p>This difference of 5 to 7 km\/h on average completely changes the user experience and the adoption of the electric bike as a <strong>credible alternative to the car<\/strong>.<\/p>\n<h2>LEVA-EU&#8217;s position on power limitation<\/h2>\n<p>The European association <strong>LEVA-EU<\/strong>, which represents the light electric vehicle industry, is firmly opposed to proposals for strict power limits. In its official communications, it points out that arbitrary power limits <strong>exclude<\/strong> entire <strong>categories of<\/strong> users: cargo bikes, disabled people, users on hilly terrain. <\/p>\n<p>For LEVA-EU, these limitations risk &#8220;turning Europe into an innovation wasteland&#8221; and jeopardizing the transition to <strong>more sustainable mobility<\/strong>. The organization advocates an approach based on actual use rather than arbitrary technical constraints. <\/p>\n<h2>The evolving European regulatory context<\/h2>\n<p>The European Commission is currently examining a <strong>revision of the regulations governing light electric vehicles<\/strong> (Regulation 168\/2013). This revision, requested in particular by LEVA-EU, could clarify the status of more powerful electric bicycles, while preserving their <strong>classification as &#8220;bicycles&#8221;<\/strong> rather than &#8220;mopeds&#8221;. <\/p>\n<p>The UK&#8217;s Transport Research Laboratory, commissioned by the Commission, is studying precisely which vehicles merit a regulatory overhaul. Cargo bikes and bikes for people with reduced mobility are among the categories under scrutiny. <\/p>\n<h2>Technological innovation and the circular economy<\/h2>\n<p>In the face of the motors that equip new top-of-the-range electric bicycles and force people to buy a new bike, electrifying existing bikes represents an<strong> interesting alternative<\/strong>. This approach respects the<strong>circular economy<\/strong>, while offering access to the benefits of high technology. <\/p>\n<p>Modern electrification kits demonstrate that it is possible to <strong>reconcile performance, legality and sustainability<\/strong>. Some of them offer long range even in hilly terrain, while maintaining the statutory 25 km\/h regardless of the terrain. <\/p>\n<h2>Towards the democratization of electric mobility<\/h2>\n<p>The aim is not to go faster than<strong> 25 km\/h<\/strong>, but to <strong>maintain this speed in all conditions<\/strong>. This fundamental distinction explains why peak power does not compromise safety or cohabitation with other road users. <\/p>\n<p>On the contrary, an electric bike that maintains its regulation speed even when climbing is better integrated into urban traffic than one that slows down and creates dangerous speed differentials.<\/p>\n<h2>Conclusion: balancing performance and regulation<\/h2>\n<p>The question of high power peaks goes beyond the mere technical aspect. It raises questions about the evolution of electric mobility: how can we reconcile user needs, regulatory constraints and ecological transition objectives? <\/p>\n<p>Current debates at European level show that this question is far from settled. Positions diverge between those in favor of strict limits to preserve &#8220;bicycle&#8221; status and those who advocate greater flexibility to include all users. <\/p>\n<p>What seems certain is that the future of electric mobility will require innovative technical solutions, within existing regulatory frameworks, to meet the diverse needs of European users.<!-- notionvc: ad67d119-b5c7-4c73-98b5-db5b4a619bf9 --><\/p>\n<p><!-- notionvc: d28b73d4-38be-4aec-9438-f740ad275827 --><\/p>\n<p><!-- notionvc: ef5b7bad-ec5d-4c2a-8f9d-2129b0cc91e6 --><\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>Why do so many e-bikes blithely exceed 750W peak power, even though the law limits the power rating to 250W? Behind this apparent paradox lies an essential principle: to maintain the regulatory 25 km\/h on hills, with weight or intensive use, you need a reserve of power. From nurses in hilly areas to disabled users and fully loaded cargo bikes, many cyclists simply can&#8217;t do without them. Far from being illegal, these high power ratings are perfectly within the scope of the EN 15194 standard and supported by LEVA-EU, which warns that millions of users could be excluded if Europe arbitrarily limits power. This article deciphers the real uses, technical needs and regulatory issues that explain why an electric bike often needs&#8230; much more than 750W.    <\/p>\n","protected":false},"author":297,"featured_media":50968,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","iawp_total_views":4,"footnotes":""},"categories":[53,56,55],"tags":[],"class_list":["post-50967","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-advice","category-comparison","category-forward"],"_links":{"self":[{"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/posts\/50967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/users\/297"}],"replies":[{"embeddable":true,"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/comments?post=50967"}],"version-history":[{"count":0,"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/posts\/50967\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/media\/50968"}],"wp:attachment":[{"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/media?parent=50967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/categories?post=50967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/syklo.fr\/en\/wp-json\/wp\/v2\/tags?post=50967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}