1<!DOCTYPE html><html prefix="og: http://ogp.me/ns#" lang="en-us"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="google-site-verification" content="E371j3w75EWRQ99dyy2OHEyN8ef3jlZmidDoHKm7N6A"><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- Font preloading for critical Lato font variants --><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/lato-regular-webfont.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/lato-light-webfont.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/lato-bold-webfont.woff2" crossorigin><!-- Font preloading for critical IBM Plex Sans variants --><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/IBMPlexSans-Light.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/IBMPlexSans-Regular.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/IBMPlexSans-Bold.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/IBMPlexSans-Medium.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/IBMPlexSans-SemiBold.woff2" crossorigin><!-- Font preloading for critical Roboto Slab variants --><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/robotoslab-400.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/assets/fonts/robotoslab-500.woff2" crossorigin><!-- Font preloading for critical IBM Plex Sans variants --><link rel="preload" as="style" href="/assets/styles/local-fonts.css" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="/assets/styles/local-fonts.css"></noscript><!-- Ensure font loading completes before main CSS -->
1<script>(function() { 2 // Mark as not loaded initially 3 document.documentElement.classList.remove('fonts-loaded'); 4 5 if ('fonts' in document) { 6 // Font loading with timeout 7 const fontPromises = [ 8 document.fonts.load('300 16px "Lato"'), 9 document.fonts.load('400 16px "Lato"'), 10 document.fonts.load('700 16px "Lato"'), 11 document.fonts.load('300 16px "IBM Plex Sans"'), 12 document.fonts.load('400 16px "IBM Plex Sans"'), 13 document.fonts.load('500 16px "IBM Plex Sans"'), 14 document.fonts.load('600 16px "IBM Plex Sans"'), 15 document.fonts.load('700 16px "IBM Plex Sans"'), 16 document.fonts.load('500 16px "Roboto Slab"'), 17 document.fonts.load('600 16px "Roboto Slab"') 18 ]; 19 20 // Add timeout to prevent indefinite waiting 21 const timeout = new Promise(resolve => setTimeout(resolve, 2500)); 22 23 Promise.race([Promise.all(fontPromises), timeout]).then(function() { 24 document.documentElement.classList.add('fonts-loaded'); 25 26 // Double-check font loading after a brief delay 27 setTimeout(function() { 28 document.documentElement.classList.add('fonts-loaded'); 29 // Force comprehensive repaint (only if body exists) 30 if (document.body) { 31 document.body.style.fontFamily = 'initial'; 32 document.body.offsetHeight; // Trigger reflow 33 document.body.style.fontFamily = ''; 34 } 35 }, 100); 36 }); 37 } else { 38 // Fallback for browsers without Font Loading API 39 setTimeout(function() { 40 document.documentElement.classList.add('fonts-loaded'); 41 }, 100); 42 } 43 })();</script>
43<title>Network Codes Home</title><meta property="og:title" content="Network Codes Home"><meta property="og:image" content="https://www.entsoe.eu/Style%20Library/EntsoePublishingBranding/Images/entsoe-logo1.png"><link rel="icon" type="image/svg+xml" href="/assets/graphics/meta/favicon-white.svg"><!-- build:css /assets/styles/main.css --><link rel="stylesheet" href="/assets/styles/main.css"><!-- endbuild --><!-- Matomo -->
43<script>var _paq = window._paq = window._paq || []; 44 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 45 _paq.push(["setDoNotTrack", true]); 46 _paq.push(["disableCookies"]); 47 _paq.push(['trackPageView']); 48 _paq.push(['enableLinkTracking']); 49 (function() { 50 // Use proxy URL to avoid browser tracking prevention 51 _paq.push(['setTrackerUrl', '/matomo/matomo.php']); 52 _paq.push(['setSiteId', '1']); 53 var d = document, 54 g = d.createElement('script'), 55 s = d.getElementsByTagName('script')[0]; 56 g.async = true; 57 // Use proxy for JavaScript file as well 58 g.src = '/matomo/matomo.js'; 59 s.parentNode.insertBefore(g, s); 60 })();</script>
60<!-- End Matomo Code --><noscript><!-- build:css /assets/styles/main.css --><link rel="stylesheet" href="/assets/styles/main.css"><!-- endbuild --></noscript><!-- RSS Feed Discovery Links --><link rel="alternate" type="application/rss+xml" title="ENTSO-E News & Updates" href="/rss.xml"><link rel="alternate" type="application/rss+xml" title="ENTSO-E News" href="/rss/news.xml"><link rel="alternate" type="application/rss+xml" title="ENTSO-E Events" href="/rss/events.xml"><link rel="alternate" type="application/rss+xml" title="ENTSO-E Position Papers" href="/rss/positions.xml"></head><body><header class="site-header btop"><div class="row-inner"><a href="/" title="ENTSO-E homepage"><img src="/assets/logo/tagline.svg" alt="ENTSO-E logo" class="mast-logo__image" height="66"></a><nav class="nav-global-secondary"><h2 class="toggle-menu"><a href="#global-menu" title="Show/hide menu" data-hook="global-menu:trigger"><span>Browse</span></a></h2><div class="menu-wrapper"><ul class="global-menu"><li><button href="/network_codes/" class="state-active" data-nav-trigger="network-codes">Network Codes & CEP</button></li><li><button href="/data/" data-nav-trigger="data">Data & Standardisation</button></li><li><button href="/research-and-innovation/" data-nav-trigger="research-and-innovation">Innovation</button></li><li><button href="/outlooks/" data-nav-trigger="outlooks">Outlooks</button></li><li><button href="/regions/" data-nav-trigger="regions">Regions</button></li><li><button href="/publications/" data-nav-trigger="publications">Publications</button></li><li><button href="/about/" data-nav-trigger="about">About</button></li><li class="visually-hidden"><a href="https://contacts.entsoe.eu/Pages/ExtranetPortalHome.aspx" class="button button--achromic login">Login</a></li><li style="display: flex; align-items: center;"><a href="https://www.linkedin.com/company/entso-e" style="display: flex; align-items: center;"><i class="ee-icon-linkedin" style="padding-top: 5px;"></i></a></li><li><div data-hook="react:modal"></div></li></ul></div><!-- MOBILE --><div class="mobile menu-wrapper" data-hook="global-menu:wrapper"><ul class="global-menu"><li><a href="/network_codes/" class="state-active">Network Codes & CEP</a></li><li><a href="/data/">Data & Standardisation</a></li><li><a href="/research-and-innovation/">Innovation</a></li><li><a href="/outlooks/">Outlooks</a></li><li><a href="/regions/">Regions</a></li><li><a href="/publications/">Publications</a></li><li><a href="/about/">About</a></li></ul><div class="mobile--menu-second"><ul class="mobile--menu"><li><a href="https://transparency.entsoe.eu/">Transparency Platform</a></li><li><a href="/data/cim/">Common Information Model</a></li><li><a href="/publications/electronic-data-interchange-edi-library/">Standardisation</a></li><li><a href="/data/map/">EU Grid Map</a></li></ul><ul class="mobile--menu"><li><a href="/news-events/news">News</a></li><li><a href="/news-events/events/">Events</a></li><li><a href="https://careers.entsoe.eu">Careers</a></li><li><a href="/about/inside-entsoe/secretariat/">Our Staff</a></li><li><a href="https://entsoe.sharepoint.com/">Extranet</a></li></ul><ul class="mobile--menu"></ul></div></div><!-- END MOBILE --><!-- NEW --><div id="network-codes-menu" class="network-codes s-menu-wrapper" data-nav-menu="network-codes"><div class="subsection--nav network-codes"><div class="menu"><div class="menu--header"><a href="/network_codes/">Go to Network Codes</a></div><ul class="nav-tier2 new-nav"><li><a href="/network_codes/news/">News</a></li><li><a href="/network_codes/esc/">Stakeholder Committees</a></li><li><a href="https://consultations.entsoe.eu/">Consultations</a></li><li><a href="/active-library/">Active Library</a></li><li><a href="/network_codes/monitoring/">Monitoring & Reports</a></li><li><a href="https://www.entsoe.eu/Network_Codes_Development_Process">Network Codes Development Process</a></li></ul></div><div class="families"><div class="family-col connection"><!-- <strong>Connection</strong> --><ul class=""><li><a href="/network_codes/dcc/" title="Demand Connection Code">DCC</a></li><li>
60<a href="/network_codes/hvdc/" title="High Voltage Direct Current Connections">HVDC</a></li><li><a href="/network_codes/rfg/" title="Requirements for Generators">RFG</a></li></ul></div><div class="family-col operations"><!-- <strong>Operations</strong> --><ul class=""><li><a href="/network_codes/er/" title="Emergency and Restoration">ER</a></li><li><a href="/network_codes/sys-ops/" title="System Operations">SOGL</a></li></ul></div><div class="family-col market"><!-- <strong>Market</strong> --><ul class=""><li><a href="/network_codes/cacm/" title="Capacity Allocation & Congestion Management">CACM</a></li><li><a href="/network_codes/eb/" title="Electricity Balancing">EB</a></li><li><a href="/network_codes/fca/" title="Forward Capacity Allocation">FCA</a></li></ul></div><div class="family-col cep"><!-- <strong>Cep</strong> --><ul class=""><li><a href="/cep/" title="Clean Energy Package">CEP</a></li></ul></div><div class="family-col nccs"><!-- <strong>Nccs</strong> --><ul class=""><li><a href="/network_codes/nccs/" title="Network Code on Cybersecurity">NCCS</a></li></ul></div></div></div></div><div id="data-menu" class="data s-menu-wrapper" data-nav-menu="data"><div class="subsection--nav data"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/data/">Go to Data & Standardisation</a></div><ul class="nav-tier2 new-nav"><li><a href="/data/map/">Grid Map</a></li><li><a href="/data/transparency-platform/">Transparency Platform</a></li><li><a href="/data/energy-identification-codes-eic/">EIC Codes</a></li><li><a href="/data/power-stats/">Power Statistics</a></li><li><a href="/ecco-sp/">ECCo SP</a></li><li><a href="/data/opcsta/">OPC / STA</a></li></ul></div></div></div><div id="research-and-innovation-menu" class="research-and-innovation s-menu-wrapper" data-nav-menu="research-and-innovation"><div class="subsection--nav research-and-innovation"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/research-and-innovation/">Go to Innovation</a></div><ul class="nav-tier2 new-nav"><li><a href="/research-and-innovation/#projects">Projects</a></li><li><a href="/Technopedia/">Technopedia</a></li><li><a href="/research-and-innovation/#innovation-hub">Innovation Hub</a></li><li><a href="/research-and-innovation/#reports">RDI Reports</a></li></ul></div></div></div><div id="outlooks-menu" class="outlooks s-menu-wrapper" data-nav-menu="outlooks"><div class="subsection--nav outlooks"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/outlooks/">Go to Outlooks</a></div><ul class="nav-tier2 new-nav"><li><a href="/outlooks/seasonal">Seasonal</a></li><li><a href="https://www.entsoe.eu/eraa/">ERAA</a></li><li><a href="http://tyndp.entsoe.eu/">Longterm - TYNDP</a></li><li><a href="/outlooks/offshore-hub/">Offshore Hub</a></li><li><a href="https://www.entsos-tyndp-scenarios.eu/">Scenarios</a></li><li><a href="https://tyndp.entsoe.eu/tyndp2018/power-system-2040/">Regional Investment Plans</a></li><li><a href="/outlooks/grid-planning-hub">Grid Planning Hub</a></li></ul></div></div></div><div id="regions-menu" class="regions s-menu-wrapper" data-nav-menu="regions"><div class="subsection--nav regions"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/regions/">Go to Regions</a></div><ul class="nav-tier2 new-nav"><li><a href="/major-projects/rscis/">FAQs on Regional Coordination</a></li><li><a href="/network_codes/ccr-regions/">CCR Regions</a></li><li><a href="/bites/ccr-map/">CCR Regions Map</a></li><li><a href="/bites/ccr-core/about/">CCR Core</a></li><li><a href="/bites/ccr-ce/about/">CCR CE</a></li><li><a href="/bites/ccr-in/about/">CCR IN</a></li></ul></div></div></div><div id="publications-menu" class="publications s-menu-wrapper" data-nav-menu="publications"><div class="subsection--nav publications"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/publications/">Go to Publications</a></div><ul class="nav-tier2 new-nav"><li><a href="/publications/position-papers/">Position Papers</a></li><li><a href="/outlooks/offshore-development/">Offshore Development</a></li><li><a href="https://vision.entsoe.eu/">Vision</a></li><li><a href="/publications/market-reports/">Market</a></li><li><a href="/publications/research-and-development/">Research & Innovation</a></li><li><a href="/publications/system-development-reports/">Development</a></li><li><a href="http://tyndp.entsoe.eu/">TYNDP</a></li><li><a href="/publications/system-operations-reports/">Operations</a></li><li><a href="/publications/tso-dso/">TSO/DSO</a></li><li><a href="/data/cim/">CIM</a></li></ul></div></div></div><div id="news-menu" class="news s-menu-wrapper" data-nav-menu="news"><div class="subsection--nav news"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/news-events/">Go to News</a></div><ul class="nav-tier2 new-nav"><li><a href="/news-events/news/">News</a></li><li><a href="/news-events/events/">Events</a></li><li><a href="/news-events/former-associations/">Former Associations</a></li></ul></div></div></div><div id="about-menu" class="about s-menu-wrapper" data-nav-menu="about"><div class="subsection--nav about"><div class="limiter" style="max-width: 1130px;"><div class="menu--header"><a href="/about/">Go to About</a></div><ul class="nav-tier2 new-nav"><li><a href="/about/market/">Market</a></li><li><a href="/about/research-and-innovation/">Research & Innovation</a></li><li><a href="/about/system-development/">System Development</a></li><li><a href="/about/system-operations/">Operations</a></li><li><a href="/about/information-and-communication-technologies/">Information and Communication Technologies</a></li><li><a href="/about/legal-and-regulatory/">Legal</a></li><li><a href="https://careers.entsoe.eu">Careers</a></li></ul></div></div></div><!-- END NEW --></nav></div></header><div class="subsection--nav"><div class="limiter"><ul class="nav-tier2 new-nav"><li><a href="/network_codes/news/">News</a></li><li><a href="/network_codes/esc/">Stakeholder Committees</a></li><li><a href="https://consultations.entsoe.eu/">Consultations</a></li><li><a href="/active-library/">Active Library</a></li><li><a href="/network_codes/monitoring/">Monitoring & Reports</a></li><li><a href="https://www.entsoe.eu/Network_Codes_Development_Process">Network Codes Development Process</a></li></ul></div></div><!-- CCRs --><!--/ CCRs --><main class="limiter"><div><!-- class="row" --><section class="layout-content clearfix"><nav class="nav-breadcrumbs"><ul class="breadcrumbs"><li><a href="/">Home</a></li><li><a href="/network_codes">Network Codes</a></li></ul></nav><article><div class="page-content prose prose--responsive"><header class="nc-main"><h2>What are Network Codes?</h2><section class="nc-main__intro"><div class="prose prose--responsive"><p>
60Network codes are a set of rules drafted by ENTSO-E, with guidance from the Agency for the Cooperation of Energy Regulators <a href="http://www.acer.europa.eu/" class="link-ext" target="_blank" rel="noopener">ACER</a>, to facilitate the harmonisation, integration and efficiency of the European electricity market. Each network code is an integral part of the drive towards completion of the <a href="https://www.europarl.europa.eu/factsheets/en/sheet/45/internal-energy-market" class="link-ext" target="_blank" rel="noopener">internal energy market</a>, and achieving the European Unionâs <a class="link-ext" target="_blank" rel="noopener" href="https://ec.europa.eu/info/strategy/priorities-2019-2024_en">energy objectives of</a>:</p><ul><li>At least 55% cut in greenhouse gas emissions compared to 1990 levels.</li><li>At least a 32% share of renewable energy consumption.</li><li>At least 32.5% energy savings compared with the business-as-usual scenario.</li></ul><p>ENTSO-E also cooperates with the new EU DSO Entity on the drafting of Network Codes and Guidelines notably on <a href="/network_codes/nccs/">cybersecurity</a> and demand side flexibility ( More information on the <a href="/publications/tso-dso/">Memorandum of Understanding between ENTSO-E and the EU DSO Entity</a>)</p><a href="https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=celex%3A32009R0714" class="button button--tertiary-bounded button-link-ext" target="_blank" rel="noopener">EU Regulation 714/2009</a></div></section></header><section class="prose prose--responsive" id="nc-code-families"><div id="nc-families"><h1 class="center">The code families</h1><div class="nc-card__list nc-card__list-grid"><div class="nc-card connection"><h3 class="card__title">Connection</h3><ul class="nc-ul"><li><a href="/network_codes/rfg/" class="link-nc-code">Requirements for Generators</a></li><li><a href="/network_codes/hvdc/" class="link-nc-code">High Voltage Direct Current Connections</a></li><li><a href="/network_codes/dcc/" class="link-nc-code">Demand Connection Code</a></li></ul></div><div class="nc-card operations"><h3 class="card__title">Operations</h3><ul class="nc-ul"><li><a href="/network_codes/sys-ops/" class="link-nc-code">System Operations</a></li><li><a href="/network_codes/er/" class="link-nc-code">Emergency and Restoration</a></li></ul></div><div class="nc-card market"><h3 class="card__title">Market</h3><ul class="nc-ul"><li><a href="/network_codes/fca/" class="link-nc-code">Forward Capacity Allocation</a></li><li><a href="/network_codes/cacm/" class="link-nc-code">Capacity Allocation & Congestion Management</a></li><li><a href="/network_codes/eb/" class="link-nc-code">Electricity Balancing</a></li></ul></div><div class="nc-card cybersecurity"><h3 class="card__title">Cybersecurity</h3><ul class="nc-ul"><li><a href="/network_codes/nccs/" class="link-nc-code">Network Code on Cybersecurity</a></li></ul></div></div></div></section><section class="prose prose--responsive" id="nc-updates"><h4>Latest Updates</h4><article class="nc-news-item"><div class="nc-post-meta"><span>Nov 4, 2025</span> <span class="nc-strong"></span> <span></span></div><a class="nc-nws-title" href="/events/2025/11/04/balancing-platforms-stakeholders-workshop/">Balancing platforms stakeholders' workshop</a></article><article class="nc-news-item"><div class="nc-post-meta"><span>May 19, 2025</span> <span class="nc-strong"></span> <span></span></div><a class="nc-nws-title" href="/events/2025/05/19/entso-e-s-2025-standard-vetting-interoperability-test-event/">ENTSO-Eâs 2025 Standard-Vetting Interoperability Test Event</a></article><article class="nc-news-item"><div class="nc-post-meta"><span>Aug 6, 2024</span> <span class="nc-strong">EB</span> <span>BZR</span></div><a class="nc-nws-title" href="/news/2024/08/06/bidding-zone-review-consultative-group-meeting/">Bidding Zone Review Consultative Group Meeting</a></article><article class="nc-news-item"><div class="nc-post-meta"><span>Jul 19, 2024</span> <span class="nc-strong"></span> <span>BZR</span></div><a class="nc-nws-title" href="/news/2024/07/19/launch-of-the-public-consultation-on-the-bidding-zone-review/">Launch of the Public Consultation on the Bidding Zone Review</a></article><article class="nc-news-item"><div class="nc-post-meta"><span>Jun 1, 2024</span> <span class="nc-strong"></span> <span>CGMES</span></div>
60<a class="nc-nws-title" href="/news/2024/06/01/network-code-profiles-extension-to-cgmes-for-regional-coordination-processes-release-2-3-are-now-published/">Network Code profiles extension to CGMES for Regional Coordination Processes release 2.3 are now published</a></article><a href="/network_codes/news/" class="rm">All news on network codes</a></section></div></article></section></div>
60<script>var e = document.querySelectorAll("img[src^='/PublishingImages/']") 61for (var e = document.querySelectorAll("img[src^='/PublishingImages/']"), t = 0; t < e.length; t++) 62 e[t].src = e[t].src.replace('http://localhost:3000', "https://www.entsoe.eu")</script>
62</main><section class="pad1 clearfix" id="Member-brief"><div class="limiter"><form id="mc-embedded-subscribe-form" action="https://entsoe.us10.list-manage.com/subscribe/post?u=498429987654de03679e453a1&id=da85e6735a" method="post" name="mc-embedded-subscribe-form" class="validate" target="_blank" rel="noopener" novalidate=""><div class="form-row"><div id="pointer" class="hide-mobile"><strong style="color: #333333">GET THE MOST POWERFUL NEWSLETTER IN BRUSSELS</strong></div><div class="form-cell"><div class="form__input-group"><input type="email" value="" name="EMAIL" class="email form__control form__control--medium" id="mce-EMAIL" placeholder="Your email" autocomplete="on"> <span class="form__input-group-button"><input type="button" value="Subscribe" name="subscribe-step1" id="mc-embedded-subscribe" class="button button--secondary"></span></div><div class="field-error" id="email-error">Please enter a valid email address.</div></div></div><div class="form-row"><div style="position: absolute; left: -5000px" aria-hidden="true"><input type="text" name="b_498429987654de03679e453a1_da85e6735a" tabindex="-1" value="" style="color: white"></div><div id="error-message" style="display: none">Please fill in your email address.</div></div><!-- Additional Fields (shown after email submission) --><div class="form-row hidden" id="additional-fields"><div><div class="form__input-group"><label for="mce-FNAME" style="color: white">First Name <span class="required-star">*</span></label> <input type="text" name="FNAME" id="mce-FNAME" class="form__control form__control--medium" placeholder="First Name"><div class="field-error" id="fname-error">Please enter your first name.</div></div><div class="form__input-group"><label for="mce-LNAME" style="color: white">Last Name <span class="required-star">*</span></label> <input type="text" name="LNAME" id="mce-LNAME" class="form__control form__control--medium" placeholder="Last Name"><div class="field-error" id="lname-error">Please enter your last name.</div></div><div class="form__input-group"><label for="mce-ORG" style="color: white">Organisation <span class="required-star">*</span></label> <input type="text" name="ORG" id="mce-ORG" class="form__control form__control--medium" placeholder="Organisation"><div class="field-error" id="org-error">Please enter your organisation.</div></div></div><div><div class="form__input-group form-option"><label for="CONSENT" style="color: white"><input type="hidden" name="CONSENT" value="No"> <input type="checkbox" name="CONSENT" id="CONSENT" value="Yes" style="color: white"> By subscribing, I consent to the processing of my personal data for the purpose of sending the newsletter. <span class="required-star">*</span></label><div class="field-error checkbox-error" id="consent-error">You must consent to data processing to subscribe.</div></div><div class="form__input-group form-option"><label for="DATAPOLICY" style="color: white"><input type="hidden" name="DATAPOLICY" value="No"> <input type="checkbox" name="DATAPOLICY" id="DATAPOLICY" value="Yes" style="color: white"> I read and accept the <a href="https://eepublicdownloads.azureedge.net/clean-documents/LRG/Privacy%20policy/210617_Newsletter%20services%20data%20protection%20policy%20(clean)%20.pdf" style="color: #ffd600" target="_blank" rel="noopener">Data Protection Policy</a> <span class="required-star">*</span></label><div class="field-error checkbox-error" id="datapolicy-error">You must accept the Data Protection Policy to subscribe.</div></div><!-- press releases notifications --><div class="form__input-group form-option" style="color: white"><label for="PRESS" style="color: white"><input type="hidden" name="PRESS" value="No"> <input type="checkbox" name="PRESS" id="PRESS" value="Yes" style="color: white"> Sign up for press updates</label></div><!--/ press releases notifications --><div class="form__input-group-button form-option"><input type="button" value="Complete Subscription" id="mc-complete-subscribe" class="button button--secondary" style="font-weight: 600; padding: 0.5rem 1rem 0.5rem 1rem"></div><div class="field-error" id="form-summary-error" style="display: none"></div></div></div></form></div></section><style>#Member-brief { 63 background-image: 64 url(https://www.entsoe.eu/assets/graphics/layout/grid_background.svg), 65 linear-gradient(to right, #009a93, #243986); 66 background-position: 67 top -100px right calc(50% - 50vw), 68 center center; 69 background-size: calc(120vh), cover; 70 background-repeat: no-repeat; 71 background-attachment: fixed; 72 } 73 74 #pointer { 75 height: 40px; 76 position: relative; 77 background-color: #ffd600; 78 display: grid; 79 place-items: center; 80 } 81 @media only screen and (max-width: 1025px) { 82 #pointer { 83 padding-top: 1%; 84 font-size: 0.8rem; 85 } 86 } 87 #pointer:before { 88 content: ''; 89 position: absolute; 90 right: -20px; 91 bottom: 0; 92 width: 0; 93 height: 0; 94 border-left: 20px solid #ffd600; 95 border-top: 20px solid transparent; 96 border-bottom: 20px solid transparent; 97 } 98 .sign-adapted { 99 margin-left: 4%; 100 margin-top: 0.3%; 101 } 102 .button-secondary { 103 font-weight: 400; 104 } 105 form input[type='text'], 106 form input[type='email'] { 107 color: #333; 108 } 109 110 /* ââ Validation styles ââ */ 111 .required-star { 112 color: #ffd600; 113 font-weight: bold; 114 } 115 116 .field-error { 117 display: none; 118 color: #ffd600; 119 font-size: 0.82rem; 120 font-weight: 500; 121 letter-spacing: 0.4px; 122 margin-top: 5px; 123 padding-left: 2px; 124 animation: fadeInError 0.2s ease; 125 } 126 127 .checkbox-error { 128 margin-left: 1.75rem; /* align under checkbox label text */ 129 } 130 131 .field-error.visible { 132 display: block; 133 } 134
135 /* Red border on invalid inputs */ 136 input.input-invalid { 137 border: 2px solid #ff6b6b !important; 138 background-color: #fff5f5 !important; 139 } 140 141 /* Red outline on invalid checkbox rows */ 142 .checkbox-invalid label { 143 outline: 2px solid #ff6b6b; 144 outline-offset: 4px; 145 border-radius: 2px; 146 } 147 148 @keyframes fadeInError { 149 from { 150 opacity: 0; 151 transform: translateY(-4px); 152 } 153 to { 154 opacity: 1; 155 transform: translateY(0); 156 } 157 } 158 159 /* ââ Layout ââ */ 160 .hi { 161 outline: 1px dashed tomato; 162 } 163 .form-row { 164 width: 100%; 165 height: 100%; 166 display: grid; 167 grid-template-columns: 55% 45%; 168 gap: 3rem; 169 position: relative; 170 } 171 .form-cell { 172 display: flex; 173 flex-direction: column; 174 justify-content: center; 175 } 176 div.hidden { 177 opacity: 0; 178 height: 0; 179 overflow: hidden; 180 transition: 181 opacity 0.5s ease, 182 height 0.5s ease; 183 } 184 div.shown { 185 display: grid; 186 opacity: 1; 187 height: auto; 188 } 189 #additional-fields > div { 190 display: flex; 191 flex-direction: column; 192 row-gap: 1rem; 193 padding: 1rem 0; 194 height: 100%; 195 } 196 #additional-fields > div > * { 197 margin-top: auto; 198 padding-left: 1rem; 199 } 200 #additional-fields > div label { 201 display: block; 202 padding-bottom: 6px; 203 } 204 #additional-fields > div .form-option label { 205 display: flex; 206 align-items: flex-start; 207 gap: 0.75rem; 208 } 209 #additional-fields > div .form-option label input { 210 margin-top: 6px; 211 } 212 #error-message { 213 color: #ffd600; 214 font-weight: 400; 215 letter-spacing: 1px; 216 grid-column: 2; 217 } 218 section#Member-brief { 219 transition: padding 1s ease-in-out; 220 } 221 section.newsletter-focussed { 222 padding: 3rem 0 2.5rem 0; 223 } 224 225 @media only screen and (max-width: 768px) { 226 .form-row { 227 grid-template-columns: 1fr; 228 padding-top: 1rem; 229 gap: 1rem; 230 } 231 #additional-fields > div > * { 232 padding-left: 0; 233 } 234 #additional-fields > div { 235 row-gap: 0; 236 padding: 0 0; 237 height: fit-content; 238 } 239 #pointer:before { 240 content: ''; 241 display: none; 242 } 243 .form__input-group { 244 padding-top: 1rem; 245 margin-bottom: 0; 246 } 247 .form__input-group-button.form-option { 248 padding-top: 1rem; 249 } 250 .checkbox-error { 251 margin-left: 0; 252 } 253 }</style>
253<script>;(function () { 254 // ââ Helpers ââââââââââââââââââââââââââââââââââââââââââââââââ 255 function showError(errorEl, inputEl) { 256 errorEl.classList.add('visible') 257 if (inputEl) inputEl.classList.add('input-invalid') 258 } 259 260 function clearError(errorEl, inputEl) { 261 errorEl.classList.remove('visible') 262 if (inputEl) inputEl.classList.remove('input-invalid') 263 } 264 265 function showCheckboxError(errorEl, wrapperEl) { 266 errorEl.classList.add('visible') 267 if (wrapperEl) wrapperEl.classList.add('checkbox-invalid') 268 } 269 270 function clearCheckboxError(errorEl, wrapperEl) { 271 errorEl.classList.remove('visible') 272 if (wrapperEl) wrapperEl.classList.remove('checkbox-invalid') 273 } 274 275 function isValidEmail(val) { 276 return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val.trim()) 277 } 278 279 // ââ Step 1: Email â reveal additional fields ââââââââââââââââ 280 document 281 .getElementById('mc-embedded-subscribe') 282 .addEventListener('click', function () { 283 const emailField = document.getElementById('mce-EMAIL') 284 const emailError = document.getElementById('email-error') 285 const additionalFields = document.getElementById('additional-fields') 286 const memberBrief = document.getElementById('Member-brief') 287 288 clearError(emailError, emailField) 289 290 if (!emailField.value.trim() || !isValidEmail(emailField.value)) { 291 showError(emailError, emailField) 292 emailField.focus() 293 return 294 } 295 296 // Email is valid â reveal step 2 297 additionalFields.classList.remove('hidden') 298 additionalFields.classList.add('shown') 299 this.style.display = 'none' 300 if (memberBrief) memberBrief.classList.add('newsletter-focussed') 301 302 // Scroll the new fields into view on mobile 303 setTimeout(function () { 304 additionalFields.scrollIntoView({ 305 behavior: 'smooth', 306 block: 'nearest', 307 }) 308 }, 100) 309 }) 310 311 // Clear email error on input 312 document.getElementById('mce-EMAIL').addEventListener('input', function () { 313 clearError(document.getElementById('email-error'), this) 314 }) 315 316 // ââ Step 2: Complete Subscription â full validation âââââââââ 317 document 318 .getElementById('mc-complete-subscribe') 319 .addEventListener('click', function () { 320 let isValid = true 321 322 // --- Text fields --- 323 const fields = [ 324 { id: 'mce-FNAME', errorId: 'fname-error' }, 325 { id: 'mce-LNAME', errorId: 'lname-error' }, 326 { id: 'mce-ORG', errorId: 'org-error' }, 327 ] 328 329 fields.forEach(function (f) { 330 const input = document.getElementById(f.id) 331 const error = document.getElementById(f.errorId) 332 if (!input.value.trim()) { 333 showError(error, input) 334 isValid = false 335 } else { 336 clearError(error, input) 337 } 338 }) 339 340 // --- Required checkboxes --- 341 const consentCb = document.getElementById('CONSENT') 342 const consentError = document.getElementById('consent-error') 343 const consentWrap = consentCb.closest('.form-option') 344 345 const dataCb = document.getElementById('DATAPOLICY') 346 const dataError = document.getElementById('datapolicy-error') 347 const dataWrap = dataCb.closest('.form-option') 348 349 if (!consentCb.checked) { 350 showCheckboxError(consentError, consentWrap) 351 isValid = false 352 } else { 353 clearCheckboxError(consentError, consentWrap) 354 } 355 356 if (!dataCb.checked) { 357 showCheckboxError(dataError, dataWrap) 358 isValid = false 359 } else { 360 clearCheckboxError(dataError, dataWrap) 361 } 362 363 // --- If all valid, submit the real form --- 364 if (isValid) { 365 document.getElementById('mc-embedded-subscribe-form').submit() 366 } else { 367 // Scroll to first visible error 368 const firstError = document.querySelector('.field-error.visible') 369 if (firstError) { 370 firstError.scrollIntoView({ 371 behavior: 'smooth', 372 block: 'center', 373 }) 374 } 375 } 376 }) 377 378 // ââ Live clearing of text-field errors on input âââââââââââââ 379 ;['mce-FNAME', 'mce-LNAME', 'mce-ORG'].forEach(function (id) { 380 const errorMap = { 381 'mce-FNAME': 'fname-error', 382 'mce-LNAME': 'lname-error', 383 'mce-ORG': 'org-error', 384 } 385 document.getElementById(id).addEventListener('input', function () { 386 if (this.value.trim()) 387 clearError(document.getElementById(errorMap[id]), this) 388 }) 389 }) 390 391 // ââ Live clearing of checkbox errors on change âââââââââââââââ 392 document.getElementById('CONSENT').addEventListener('change', function () { 393 if (this.checked) 394 clearCheckboxError( 395 document.getElementById('consent-error'), 396 this.closest('.form-option') 397 ) 398 }) 399 400 document 401 .getElementById('DATAPOLICY') 402 .addEventListener('change', function () { 403 if (this.checked) 404 clearCheckboxError( 405 document.getElementById('datapolicy-error'), 406 this.closest('.form-option') 407 ) 408 }) 409 })()</script>
409<a href="javascript:" id="return-to-top"><i class="gliph ee-icon-chevron-up"></i></a><footer class="pad2y fill-light clearfix footer-main"><div class="limiter"><div class="footer__advert hide-mobile"><img src="/assets/img/teamwork.jpg"></div><div class="footer__right"><ul class="footer-links"><li><h3 class="light">Our Work</h3></li><li><a href="/network_codes/">Network Codes</a></li><li><a href="/outlooks/">Outlooks</a></li><li><a href="https://transparency.entsoe.eu/">Transparency Platform</a></li><li><a href="/regions/">Power Regions</a></li><li><a href="/data/cim/">Common Information Model</a></li><li><a href="/publications/position-papers/">Position Papers</a></li><li><a href="/publications/electronic-data-interchange-edi-library/">Standardisation</a></li><li><a href="/data/map/">EU Grid Map</a></li></ul><ul class="footer-links"><li><h3 class="light">Association</h3></li><li><a href="/about/">About</a></li><li><a href=""></a></li><li><a href="/news-events/news">News</a></li><li><a href="/news-events/events/">Events</a></li><li><a href="/about/inside-entsoe/members/">Members</a></li><li><a href="https://careers.entsoe.eu">Careers</a></li><li><a href="/about/inside-entsoe/governance">Governance</a></li><li><a href="/about/inside-entsoe/secretariat/">Our Staff</a></li><li><a href="/contact">Contact</a></li><li><a href="https://entsoe.sharepoint.com/">Extranet</a></li></ul><ul class="footer-links"><li><h3 class="light">Stay updated</h3></li><li><a target="_blank" rel="noopener" href="https://www.linkedin.com/company/entso-e" class="linkedin-icon"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19,19H16V13.7A1.5,1.5 0 0,0 14.5,12.2A1.5,1.5 0 0,0 13,13.7V19H10V10H13V11.2C13.5,10.36 14.59,9.8 15.5,9.8A3.5,3.5 0 0,1 19,13.3M6.5,8.31C5.5,8.31 4.69,7.5 4.69,6.5A1.81,1.81 0 0,1 6.5,4.69C7.5,4.69 8.31,5.5 8.31,6.5A1.81,1.81 0 0,1 6.5,8.31M8,19H5V10H8M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z"/></svg> LinkedIn</a></li><li><a target="_blank" rel="noopener" href="https://www.youtube.com/user/ENTSOE" class="youtube-icon"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z"/></svg> YouTube</a></li></ul></div></div></footer><footer class="global-footer footer-bottom"><div class="footer-copy">© 2009-2026 ENTSO-E</div><div class="footer-text"><a href="/sitemap/">Sitemap</a> <a href="/suppliers/">Suppliers</a> <a href="/about/legal-and-regulatory/disclaimer">Disclaimer</a> <a href="/website/privacy-policy">Privacy Policy</a> <a href="/about/legal-and-regulatory/cookie">Cookie Policy</a> <a href="/about/whistleblowing-policy">Whistleblowing Policy</a> <span>Website feedback to <a href="mailto:[email protected]">[email protected]</a></span></div></footer>
409<script type="text/javascript"></script>
409<!-- build:js /assets/scripts/vendor.js -->
409<script src="/assets/scripts/vendor.js"></script>
409<!-- endbuild --><!-- build:js /assets/scripts/bundle.js -->
409<script src="/assets/scripts/bundle.js"></script>
409<!-- endbuild --></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.