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 residences. The gas equivalent is the Meter Point Reference Number. The system was introduced in 1998 in order to provide a competitive environment for the electricity companies, and allows consumers to switch their supplier easily 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 indeed none where it is an unmetered supply. A supply receiving power from the network operator has an Import MPAN, while generation and microgeneration projects feeding back into the DNO network are given Export MPANs.

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.
The core data is on the second line, the supplementary data on the first.

Profile Class (PC)

The first two digits of a full MPAN reflect its profile class.
00Half-hourly supply
01Domestic unrestricted
02Domestic Economy meter of two or more rates
03Non-domestic unrestricted
04Non-domestic Economy 7
05Non-domestic, with maximum demand recording capability and with load factor less than or equal to 20%
06Non-domestic, with MD recording capability and with LF less than or equal to 30% and greater than 20%
07Non-domestic, with MD recording capability and with LF less than or equal to 40% and greater than 30%
08Non-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:
HH 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.

Meter Time Switch Code (MTC)

The MTC is a 3 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–399DNO specific
400–499Reserved
500–509Codes for related Metering Systems – common across the Industry
510–799Codes for related Metering Systems – DNO specific
800–999Codes common across the Industry

Line Loss Factor Class (LLFC)

The Line Loss Factor Class or LLFC is 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 by two digits and a single check digit.

Distributor ID

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.
IDNameOperatorPhone NumberMarket Participant IDGSP Group ID
10Eastern EnglandUK Power Networks0800 029 4285EELC_A
11East MidlandsWestern Power Distribution0800 096 3080EMEB_B
12LondonUK Power Networks0800 029 4285LOND_C
13Merseyside and Northern WalesSP Energy Networks0330 10 10 444MANW_D
14West MidlandsWestern Power Distribution0800 096 3080MIDE_E
15North Eastern EnglandNorthern Powergrid0800 011 3332NEEB_F
16North Western EnglandElectricity North West0800 048 1820NORW_G
17Northern ScotlandScottish & Southern Electricity Networks0800 048 3516HYDE_P
18Southern ScotlandSP Energy Networks0330 10 10 444SPOW_N
19South Eastern EnglandUK Power Networks0800 029 4285SEEB_J
20Southern EnglandScottish & Southern Electricity Networks0800 048 3516SOUT_H
21Southern WalesWestern Power Distribution0800 096 3080SWAE_K
22South Western EnglandWestern Power Distribution0800 096 3080SWEB_L
23YorkshireNorthern Powergrid0800 011 3332YELG_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.
IDNameLicenseeMarket Participant Id
24GTCIndependent Power NetworksIPNL
25ESP ElectricityESP ElectricityLENG
26EnergeticsGlobal Utilities Connections LtdGUCL
27GTCThe Electricity Network Company LtdETCL
28EDF IDNOUK Power Networks LtdEDFI
29Harlaxton Energy Networks LtdHARL
30Peel Electricity Networks LtdPENL
31UK Power Distributions LtdUKPD
32EANEnergy Assets Networks LtdUDNL
35FEALFulcrum Electricity Assets LtdFEAL
36Vattenfall Network LimitedVATT

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:
  1. Multiply the first digit by 3
  2. Multiply the second digit by the next prime number
  3. Repeat this for each digit
  4. Add up all these products
  5. 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:

  1. where mpan is a string
def check_digit
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 :


Validates an MPAN number

At least the last 13 digits from the MPAN number, including the check digit,
expressed as a string
True for valid, otherwise false
''' Written by Martin Milan, May 2012, avoiding use of VB6 compatibility library, for.Net 4.0 Client Profile
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.
/// True for valid, otherwise false.
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

[|MPAN state]

The supply identified by the MPAN can be in one of four states: disconnected, de-energised, live, and new.
These terms are by no means standardised. For example, a disconnected supply might be referred to as a 'dead' supply.

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 is 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 export back into the distribution network. The 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. Export capacity over 30 kW is required to be half-hourly metered.

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.

Metering Code of PracticeSee

Unmetered supplies

It is possible for small predictable supplies to be unmetered. Examples are street lights, traffic signals, signs, bollards, telephone kiosks, CCTV and advertising displays.
For a piece of equipment to be connected to the distribution network via an unmetered connection, its consumption should not exceed 500 watts and it should operate in a predictable manner, with no provision for it to be manually turned on 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 street lights.
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.
Larger local authorities tend 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 street lights or traffic signals. By trading energy as unmetered half-hourly the authority will accurately pay 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 to represent the changes in season and daily lighting levels.
If, however, the unmetered supplies are being traded as non half-hourly the UMSO undertakes the responsibility to calculate an EAC. This is done using a simple formula which takes into account the circuit watts of the equipment and the annual hours of operation. For example, a piece of equipment that is in use 24 hours per day will have annual hours of 8766. For, say, a CCTV camera rated at 24 circuit watts the EAC would be 210.384kWh, calculated as circuit watts × annual hours divided by 1000.
If the equipment is street lighting the same process is used; however, 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 have been set by Elexon and are not locally agreed with the UMSO by the customer.
Once an EAC calculation has taken place, an EAC Certificate is provided to the customer's appointed electricity supplier for billing, with an electronic copy of the EAC being sent to the appointed data collector. 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. So 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:
MPRS is the name of the software package that implements the MPAS system for all DNOs. Since MPRS is used by most DNOs it is often used interchangeably with the term MPAS.

ECOES

ECOES 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 user can determine a wide range of data 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 regarding the metering system.
Only non-domestic users can register to access this service.