Meter Point Administration Number
A Meter Point Administration Number, also known as MPAN, Supply Number or S-Number, is a 21-digit reference used in Great Britain to uniquely identify electricity supply points such as individual domestic properties. The system was introduced in 1998 to aid creation of a competitive environment for electricity supply companies, and assists consumers to switch their supplier as well as simplifying administration. Although the name suggests that an MPAN refers to a particular meter, an MPAN can have several meters associated with it, or none where it is an unmetered supply. A supply receiving power from the distribution network operator has an import MPAN, while generation and microgeneration projects feeding back into the DNO network are given export MPANs.
The equivalent for gas supplies is the Meter Point Reference Number and the water/wastewater equivalent for non-household customers is the Supply Point ID.
Structure
An MPAN is commonly separated into two sections: the core and the top line data. The core is the final 13 digits and is the unique identifier. The top line data gives information about the characteristics of the supply and is the responsibility of the supplier.The full MPAN is required to be depicted on electricity bills.
centre
The core data is on the second line, with supplementary data on the first line. Only the last digit on the bottom row is the check digit.
Profile Class (PC)
The first two digits of a full MPAN reflect its profile class.| 00 | Half-hourly supply |
| 01 | Domestic unrestricted |
| 02 | Domestic Economy meter of two or more rates |
| 03 | Non-domestic unrestricted |
| 04 | Non-domestic Economy 7 |
| 05 | Non-domestic, with maximum demand recording capability and with load factor less than or equal to 20% |
| 06 | Non-domestic, with MD recording capability and with LF less than or equal to 30% and greater than 20% |
| 07 | Non-domestic, with MD recording capability and with LF less than or equal to 40% and greater than 30% |
| 08 | Non-domestic, with MD recording capability and with LF greater than 40% |
Profile class 00 supplies are half-hourly metered, i.e. they record electricity consumption for every half hour of every day, and supplies of the other profile classes are [|non-half-hourly] metered. A NHH supply must be upgraded to HH where:
Half-hourly data is recorded by the meter and collected by an onsite download, or by remote communication methods such as GSM, SMS, GPRS or telephone line.
Domestic NHH import MPANs always have a profile class of 01 or 02. Domestic NHH export MPANs are allocated a profile class of 08.
When the Metering System is migrated into the Marketwide Half-Hourly Settlement arrangements, the following applies: Continue as currently for MPANs with a Profile Class of ‘02’ or ‘04’ or populate with ‘00’ for any MPANs that do not have a Profile Class
Meter Time Switch Code (MTC)
The MTC is a three-digit code that reflects the various registers a meter may have, such as a single rate, day/night split, or a seasonal time of day.| 001–399 | DNO specific |
| 400–499 | Reserved |
| 500–509 | Codes for related Metering Systems – common across the Industry |
| 510–799 | Codes for related Metering Systems – DNO specific |
| 800–999 | Codes common across the Industry |
When the Metering System is migrated into the Marketwide Half-Hourly Settlement arrangements, the following applies: Populate from the SSC Id valid set for Traditional Meters or Populate with ‘0000’ for any MPANs for which the SSC Id is not applicable
Line Loss Factor Class (LLFC)
The Line Loss Factor Class or LLFC is an alphanumeric code used to identify the related Distribution Use of System charges for the MPAN. The figure reflects both the amount of distribution infrastructure used to supply the exit point and the amount of energy lost through heating of cables, transformers, etc.Core
The MPAN core is the final 13 digits of the MPAN, and uniquely identifies an exit point. It consists of a two-digit Distributor ID, followed by an eight-digit unique identifier, then two digits and a single check digit.Distributor ID
[Image:Distribution Network Operators.PNG|300px|thumb|Map of DNO licence areas]Great Britain is divided into fourteen distribution areas. For each area a single company, the distribution network operator, has a licence to distribute electricity. They effectively carry electricity from the National Grid to the exit points where the customers are. The owner of the distribution network charges electricity suppliers for carrying the electricity in their network. Their DNO licensed regions are the same geographic areas as the former nationalised electricity boards.
| ID | Name | Operator | Phone Number | Market Participant ID | GSP Group ID |
| 10 | Eastern England | UK Power Networks | 0800 029 4285 | EELC | _A |
| 11 | East Midlands | National Grid | 0800 096 3080 | EMEB | _B |
| 12 | London | UK Power Networks | 0800 029 4285 | LOND | _C |
| 13 | Merseyside and Northern Wales | SP Energy Networks | 0330 10 10 444 | MANW | _D |
| 14 | West Midlands | National Grid | 0800 096 3080 | MIDE | _E |
| 15 | North Eastern England | Northern Powergrid | 0800 011 3332 | NEEB | _F |
| 16 | North Western England | Electricity North West | 0800 048 1820 | NORW | _G |
| 17 | Northern Scotland | Scottish & Southern Electricity Networks | 0800 048 3516 | HYDE | _P |
| 18 | Southern Scotland | SP Energy Networks | 0330 10 10 444 | SPOW | _N |
| 19 | South Eastern England | UK Power Networks | 0800 029 4285 | SEEB | _J |
| 20 | Southern England | Scottish & Southern Electricity Networks | 0800 048 3516 | SOUT | _H |
| 21 | Southern Wales | National Grid | 0800 096 3080 | SWAE | _K |
| 22 | South Western England | National Grid | 0800 096 3080 | SWEB | _L |
| 23 | Yorkshire | Northern Powergrid | 0800 011 3332 | YELG | _M |
In addition to the distribution network operators noted above who are licensed for a specific geographic area, there are also independent distribution network operators. These own and operate electricity distribution networks which are mostly network extensions connected to the existing distribution network, e.g. to serve new housing developments.
Scottish Hydro Electric Power Distribution also provide distribution services in South Scotland as an IDNO and Southern Electric Power Distribution provide IDNO services in all other England and Wales areas. Other IDNOs have no "base" area.
| ID | Name | Licensee | Market Participant Id |
| 24 | GTC | Independent Power Networks Limited | IPNL |
| 25 | ESP Energy | ESP Energy | LENG |
| 26 | Energetics / Last Mile | Last Mile Electricity Limited | GUCL |
| 27 | GTC | The Electricity Network Company Ltd | ETCL |
| 28 | EDF IDNO | UK Power Networks Ltd | EDFI |
| 29 | Harlaxton Energy Networks Ltd | HARL | |
| 30 | Leep Electricity Networks Ltd | PENL | |
| 31 | UK Power Distributions Ltd | UKPD | |
| 32 | Energy Assets Networks | Energy Assets Networks Ltd | UDNL |
| 33 | EPN | Eclipse Power Networks Ltd | GGEN |
| 34 | Murphy Power Distribution Limited | MPDL | |
| 35 | Fulcrum Electricity Assets | Fulcrum Electricity Assets Ltd | FEAL |
| 36 | Vattenfall Networks | Vattenfall Network Limited | VATT |
| 37 | Forbury Assets Limited | Forbury Assets Limited | FORB |
| 38 | Indigo Power Limited | Indigo Power Limited | INDI |
| 39 | Squire Energy Metering Ltd | Squire Energy Metering Ltd | STRK |
| 40 | Utility Assets Limited | Utility Assets Limited | UTAL |
| 42 | Advanced Electricity Networks | Advanced Electricity Networks | AENL |
| 43 | IDCS Ltd | IDCS Ltd | IDCS |
| 45 | Aurora Utilities Limited | Aurora Utilities Limited | AURO |
| 46 | Aidien Limited | Aidien Limited | AIDI |
| 47 | Vital Energi Power Networks | Vital Energi Power Networks | VEPN |
| 48 | E.ON UK Network Assets Limited | E.ON UK Network Assets Limited | EONN |
| 51 | AGR Networks Ltd | AGR Networks Ltd | AGRN |
MPAN state
The supply identified by the MPAN can be in one of four states: disconnected, de-energised, live, and new.- Disconnected: The service cable has been removed and the MPAN will not be reused.
- De-energised: The service cable is in place, but the fuse has been removed. The meter remains connected to the distribution network, but no electricity can be used.
- Live: Both the service cable and the fuse are in place. The supply is fully operational.
- New: A new MPAN has been generated, however, the top line is not yet complete. The service cable may or may not be installed.
Export MPANs
The vast majority of MPANs are import MPANs, where energy is being consumed. However, if a supply exports to the distribution network, then an export MPAN can be issued. If a supply both imports and exports, then both an import MPAN and export MPAN are issued.Microgeneration
Formerly, export MPANs required a half-hourly compliant meter to be installed. Since 2003, it has been possible for microgeneration projects with a capacity of 30 kW or below to have a non-half-hourly meter to measure export back into the distribution network. Uptake was slow, with the first microgeneration export MPAN being issued in June 2005. Some suppliers may not bother to register the export MPAN in MPAS as the revenue is so small.Following the closure of the feed-in tariffs, in January 2020 Ofgem introduced the Smart Export Guarantee arrangements, where an export MPAN is allocated to allow a supplier to pay a customer for export of low-carbon energy.
Export capacity over 30 kW is required to be half-hourly metered. As part of the Marketwide Half Hourly Arrangements, all export consumption will be required to be registered and settled on a half-hourly basis.
Metered Supply Point
The Metered Supply Point is the point at which the meter measuring a customer's consumption is located. It is thus also the point at which either the distribution network operator's supply, or the building network operator's lateral cable, terminates and the customer's equipment begins. In order to firmly establish a supply's MSP, the MPAN needs to be associated with a meter serial number.Although it is common for an MPAN to be associated with one meter serial number, in some cases there is a many-to-many relationship. For example, one meter could be associated with both an import and an export MPAN, or one MPAN could be measured by three separate meters.
Unmetered supplies
It is possible for small predictable supplies to be unmetered. Examples are streetlights, traffic signals, signs, bollards, telephone kiosks, CCTV and advertising displays.For an item of equipment to be connected to the distribution network via an unmetered connection, its consumption should typically not exceed 500 watts and it should operate in a predictable manner, with no provision for it to be manually turned on/off at the end user's request. Generally the equipment would either be in operation and taking a supply of electricity 24 hours a day, or be controlled by a photocell, as is often the case for streetlights.
It is the customer's responsibility to maintain an accurate and up-to-date inventory of unmetered supplies, and to inform the UMSO of all changes to the connected equipment within one month of the change.
Larger local authorities generally have unmetered supplies with total demand over 100kW and are required to trade their unmetered energy on a half-hourly basis. To do so, they employ a meter administrator who will use daily data from a photo-electric control unit array which is then used to calculate the energy consumption. A PECU array is a device that holds a representative number of the photocells that authority uses on their streetlights or traffic signals. By trading energy as unmetered half-hourly, the authority accurately pays for the energy consumed by their declared unmetered equipment, and because the data is downloaded daily the authority will see their energy invoices change throughout the year in response to the seasonal changes in light levels.
As a result of Ofgem's decision to progress with Marketwide Half Hourly Settlement, under modification P434 it was agreed that all new unmetered supplies from April 2024 would be half-hourly and existing non half-hourly unmetered supplies would move to half-hourly trading during 2024/25. By October 2025 all non half-hourly MPANs had been transferred to half-hourly. In December 2025, Power Data Associates – acting in the MHHS role of Unmetered Data Service – registered the first MPAN in the new MHHS arrangements.
If the equipment is street lighting, the annual hours will change as each photocell is assigned a set number of annual hours which indicate how and when the lights turn on and off. These annual hours are set by Elexon and are not locally agreed with the UMSO by the customer.
The DNO make a Distribution Use of System charge on the electricity supplier for the delivery of the electricity to the customer's unmetered equipment.
Standard Settlement Configuration (SSC)
Each non-half-hourly supply has a four-digit code called the Standard Settlement Configuration, which specifies the number of registers a meter has, and the times that each register is recording electricity usage. The times that a register is recording is specified with a five digit code Time Pattern Regime. For example, a supply with SSC 0943 has two registers with TPRs 00404 and 00405. The 00404 TPR register records from 01:00 to 02:30 and 08:00 to 23:30, and the 00405 register records for the rest of the time.Meter Point Administration System
Each DNO operates a Meter Point Administration System which holds the following information for each MPAN:- Supplier
- Data Collector
- Data Aggregator
- Meter Operator or Meter Administrator for HH unmetered
- Customer
- Address of the exit point
- Associated MPANs
- MPAN state
- Profile Class (PC)
- Line Loss Factor Class (LLFC)
- Meter Time Switch Class (MTC)
- GSP Group
ECOES
ECOES and now the Electricity Enquiry Service is a website that allows users and authorised industry parties to search for supply details using such things as the 13-digit MPAN bottom line number, the meter serial number or the postcode. The database has details relating to the supply including the full address, meter details, the current energisation status and also the appointed parties. The site is populated from information sent from the Supplier Meter Registration Service regarding the metering system.Only non-domestic users can register to access this service.
Check digit modulus
Check digit
The final digit in the MPAN is the check digit, and validates the previous 12 using a modulus 11 test. The check digit is calculated thus:- Multiply the first digit by 3
- Multiply the second digit by the next prime number
- Repeat this for each digit
- Add up all these products
- The check digit is the sum modulo 11 modulo 10.
| MPAN verification examples |
| The algorithm in Java is: int checkDigit In Matlab: function check = checkdigits % MPANCore is a cell array of 13 digit strings. % Check is a boolean vector the same size as MPANCore. % core = double-48; c = core; p = ' * ones; m = mod; k = core; check = m k; In Pascal / Delphi: function CheckDigit: Integer; const Primes : array of Byte = ; var i : integer; begin Result := 0; for i := 0 to 11 do Result := Result + ; Result := Result mod 11 mod 10; end; In Ruby:
primes = .inject % 11 % 10 end In Visual Basic: Public Function mpancheck As Boolean ' Michael Diarmid ' Updated 04/08/2010 MD ' Returns True / False if MPAN is valid On Error GoTo inval Dim c As Variant, sum As Integer, i as Byte c = Array For i = 1 To 12 sum = sum + * c) Next i If Right = Then mpancheck = True Else inval: mpancheck = False End If End Function In VisualBasic.Net 2010: Public Function mpancheck As Boolean ' Michael Diarmid ' Updated 04/08/2010 MD ' Returns True / False if MPAN is valid ' Revised by Tym Huckin for VB 2010 On Error GoTo inval Dim c As Object, sum As Integer c = New List From For i = 1 To 12 sum = sum + * c) Next i If sRight = Then Return True Else inval: Return False End If End Function Public Function sRight As String Dim sRET As String = "" Try If iLEN >= Len Then sRET = sSTRING End If sRET = Mid - Catch ex As Exception sRET = "" End Try Return sRET End Function Or VB.Net 2010, avoiding the use of VB6 Compatibility Library : At least the last 13 digits from the MPAN number, including the check digit, expressed as a string ''' Public Function MPANIsValid As Boolean ' Set initial conditions. Dim validationResult As Boolean = False If mpan.Length > 12 Then 'Read the check digit into an Integer variable. Dim intCheckDigit As Integer If Integer.TryParse Then Dim strTest As String = mpan.Substring Dim intPrimes As Integer = Dim productTotal As Integer = 0 Dim blnError As Boolean = False For i As Integer = 0 To 11 Step 1 Dim intTestDigit As Integer If Integer.TryParse Then productTotal += Else blnError = True Exit For End If Next If Not blnError Then validationResult = Else validationResult = False ' Due to a parsing error. End If End If End If Return validationResult End Function In C#: /// /// Validates an MPAN number. /// /// At least the last 13 digits from the MPAN number, including the check digit, /// expressed as a string. /// public static bool MpanIsValid As a formula in Excel 365: 'MPAN in Cell A1 =IF)=RIGHT In Python: def check_digit: """Check MPAN digit. Args: mpan -- The first 12 digits of the MPAN number, excluding the check digit. """ return sum for prime, digit in \ zip) % 11 % 10 In PL/SQL: create or replace function mpan_check return boolean is --CDP ATKINSON res integer := 0; TYPE prime_tab IS VARRAY OF integer; primes prime_tab := prime_tab ; begin for i in 1..12 loop res := res + to_number * primes ; end loop; return to_char = substr; end mpan_check; In JavaScript: function checkMPAN In PHP: function checkMPAN In SQL Server: CREATE FUNCTION is_valid_mpan RETURNS INT AS BEGIN --Tim Foster DECLARE @is_mpan INT ,@x INT = 1 ,@sum INT = 0 DECLARE @arr TABLE INSERT INTO @arr VALUES,,,,,,,,,,, WHILE @x <= 12 BEGIN SELECT @sum = @sum + FROM @arr WHERE id = @x SELECT @x = @x + 1 END IF RIGHT = BEGIN SELECT @is_mpan = 1 END ELSE BEGIN SELECT @is_mpan = 0 END RETURN @is_mpan END In MySQL: CREATE DEFINER=`root`@`%` FUNCTION `is_valid_mpan` RETURNS int begin DECLARE is_mpan INT; DECLARE x INT; DECLARE sum INT; declare ret int; set x = 1; set sum = 0; CREATE TEMPORARY TABLE IF NOT EXISTS arr SELECT 1 `id`, 3 `val` union all SELECT 2 `id`, 5 `val` union all SELECT 3 `id`, 7 `val` union all SELECT 4 `id`, 13 `val` union all SELECT 5 `id`, 17 `val` union all SELECT 6 `id`, 19 `val` union all SELECT 7 `id`, 23 `val` union all SELECT 8 `id`, 29 `val` union all SELECT 9 `id`, 31 `val` union all SELECT 10 `id`, 37 `val` union all SELECT 11 `id`, 41 `val` union all SELECT 12 `id`, 43 `val`; WHILE x <= 12 DO SELECT into ret FROM arr WHERE id = x; set sum = sum + ret; set x = x + 1; END while; IF RIGHT = then set is_mpan = 1; ELSE set is_mpan = 0; end if; drop TEMPORARY table arr; RETURN is_mpan; end; In Swift 3 is: func isValid -> Bool In Apex : /** * @description Validates an MPAN. Written by Adam Dry June 2018. Apex version 43 * @param mpan the 13 digit MPAN including the check digit on the end */ public Boolean mpanIsValid |