Petroleum Production Reporting System 2000

Petroleum Production Reporting System 2000

PPRS IT Requirements

Petroleum Production Reporting System 2000

September 2016

P. Harrison | First published Aug 2000 | Last updated Sep 2016 1

© Crown copyright 2016

You may re-use this information (not including logos) free of charge in any format or medium, under theterms of the Open Government Licence.

To view this licence, visit
or write to the Information Policy Team,The National Archives, Kew, London TW9 4DU,
or email: .

Any enquiries regarding this publication should be sent to phil.harrison@

P. Harrison | First published Aug 2000 | Last updated Sep 2016 1

Contents

Data Submission

1Background

1.1Tables 1 – 6

1.2Data File Formats

1.3Combined Units

1.4Validation Rules

1.5DTD Files

2Guide to DTD and XML Definitions

3Completeness of Data and Timing of Submission to the OGA

3.1Timing

3.2XML reporting

3.3Submission Methods

Table A - Field Returns – Data Specification

Table B - Terminal Returns – Data Specification

Table C - Validation Rules

P. Harrison | First published Aug 2000 | Last updated Sep 2016 1

Data Submission

1Background

1.1Tables 1 – 6

These tables provide the Company Production Engineer with an overview of the physical data required by the OGA each month. However, these are not sufficient to define exchange file structures and data types or the Validation Rules with which data must comply.

1.2Data File Formats

The format of data files to be sent to the OGA is based on an Internet compliant standard called XML, (Extensible Mark up Language), which defines a method of exchanging structured data. The structure of an XML file is defined by another file called a Document Type Definition or DTD for short. The XML file includes actual data reported and the DTD defines the structure of the data expected. Each monthly PPRS return for a Reporting Unit must be sent to the OGA as a single XML text file and this must comply with a DTD given in this document.

1.3Combined Units

For IT purposes, Tables 1-3 for Field Reporting Units have therefore been combined into one table in this Annex (Table “A” Field Returns – Data Specifications) which shows the additional information defining data types and Validation Rules. Tables 4-6 for Terminal Reporting Units have been combined into a similar table (Table “B” – Terminal Returns – Data Specifications) which shows the additional information defining data types and Validation Rules.

1.4Validation Rules

Validation Rules are listed in Table C and must be complied with when submitting data. The structure expected for a field return is defined in the DTDs and these can be found on the OGA website.

1.5DTD Files

The DTDs and a comprehensive selection of sample XML files are available for downloading from the Web site. Further information on XML is available on ( The Web site covers issues such as,

  • How to report repeating groups with no data
  • How to report PARTIAL returns
  • How to report FULL returns
  • How to report a zero return

2Guide to DTD and XML Definitions

Entries in Tables “A” and “B” have been used to name the data tags within the DTD files and the XML files. Data nametags used in the DTD can be classified into the following types:

  • Overall Return Tag has value ‘PPRS_RETURN’ used to tag the return as a whole
  • Data Group Name tags used to tag a list of other Data Groups or Individual Data Items
  • Data Group Name tags used to tag a Repeating Data Group
  • Note. All data tags and any other character data within are in UPPER CASE.
  • Individual Data Item tags – used to tag actual data to be reported

The tag names used in the DTD files are based on the Data/Stream Descriptions and Data Items given in Tables A and B as follows:

  • if the Data/Stream Description is not a repeating group but has more than one Data Item associated with it, the Data Group Name tag used in the DTD is the same as the Data/ Stream Description. However, the spaces are replaced by underscores (e.g., Oil Production becomes tag OIL_PRODUCTION). Individual Data Item tags referenced by this group are the same as the corresponding Data Item names in Tables A and B, but again with spaces replaced by underscores. So for Oil Production the DTD syntax is:

<!ELEMENT OIL_PRODUCTION (OIL_PRODUCTION_VOLUME, OIL_PRODUCTION_DENSITY)>

<!ELEMENT OIL_PRODUCTION_VOLUME (#PCDATA)>

<!ELEMENT OIL_PRODUCTION_DENSITY (#PCDATA)>

  • if the Data/Stream Description is a repeating group then the Repeating Data Group tag is the Data/Stream Description, with spaces replaced by underscores, followed by the text ‘_REPEATING_GROUP’. (E.g. Inter Field Transfer of Oil becomes INTER_FIELD_TRANSFER_OF_OIL_REPEATING_GROUP). This is then followed in brackets by the Data/ Stream Name, again with spaces replaced by underscores, and an asterisk to indicate repetition. Thus for Inter Field Transfer of Oil the entry in the DTD is,
    <!ELEMENT INTERFIELD_TRANSFER_OF_OIL_REPEATING_GROUP (INTER_FIELD_TRANSFER_OF_OIL*)> followed by the DTD definition of the group INTER_FIELD_TRANSFER_OF_OIL
  • if the Data/Stream Description refers to only one Data Item (e.g. Produced Water refers to Produced Water Volume), then the tag used in the DTD is the Data Item name with spaces replaced by underscores (e.g. PRODUCED_WATER_VOLUME)

3Completeness of Data and Timing of Submission to the OGA

3.1Timing

All PPRS returns for a given month’s production must arrive at the OGA by the 30th day of the following month. Some return types are expected to report some data earlier by the 16th of the month. Data required by the 16th of the month and that required on the 30th are identified in Tables 1 - 6. These early returns by the 16th are known as “PARTIAL” returns and can report only selected data items leaving the rest blank. The returns by the 30th are known as “FULL” and must report the data expected including that sent earlier.
Any additional data sent in a PARTIAL return but not required as early data may be ignored by the OGA because it is still expected in a FULL return. The FULL return received by the OGA will overwrite the PARTIAL data. A Company may send a FULL return at any time before the 30th of the month, there is no requirement to wait. The DTD defines a “RETURN_COMPLETENESS” tag that may have values ‘FULL’ or ‘PARTIAL’. The XML file to be sent must include this and identifies whether it is a FULL or PARTIAL return.

3.2XML reporting

The appropriate monthly XML file should be created separately for each individual Reporting Unit and contain the relevant monthly data. The XML file should be e-mailed as a text attachment to the following e-mail address:

3.3Submission Methods

Current Method.

Via email as a plain text attachment. It is envisaged that many of the larger companies with automated production allocation systems will prefer this method as it can be made fully automated. On receipt at the OGA, the attachment will be removed and processed – with success or failure resulting in an email acknowledgement being returned to a nominated list of company email addressees. If errors are encountered, the file will be returned via e-mail to correct and re-submit as a new XML file. The emphasis is on the Operators’ internal QC procedures to get the files in a format to load directly onto the OGA computers.

Future plans.

“Upload File” via the Energy Portal Website. This will provide an instantaneous Validation and loading. Any errors will be reported at the time of the operation.


Table A - Field Returns –Data Specification

Reporting Unit Types Data Types

P – Oil Field Exporting to PipelineCharacter (x) = UPPER CASE ALPHANUMERIC not longer than (x) characters

T – Onshore Oil Field or Offshore Tanker LoaderNumber (x) = Number with no more than (x) decimal places

G - Dry Gas FieldInteger = whole number, no decimal point

Reporting Unit Type / Data/Stream Description / Data Item / Units / Data Type / Valid
ation
Rules
P,T,G / Return Date / RETURN_DATE_MONTH / Integer / 14
RETURN_DATE_YEAR / Integer
P,T,G / Reporting Unit / REPORTING_UNIT_NAME / Character(30) / 15
REPORTING_UNIT_IDENTIFIER / Integer / 15
REPORTING_UNIT_TYPE / Character(1) / 16
REPORTING_UNIT_OPERATOR / Character(60) / 17
P,T,G / Return Completeness / RETURN_COMPLETENESS / Character(7) / 8
P,T,G / Return UK Share / RETURN_UK_SHARE_OIL / Number(5) / 18
RETURN_UK_SHARE_GAS / Number(5) / 18
P,T / Oil Production / OIL_PRODUCTION_VOLUME / m3 / Integer / 1
OIL_PRODUCTION_DENSITY / Kg/m3 / Number(1)
P,T / Inter Field Transfer of Oil
(* Repeating Group) / INTER_FIELD_TRANSFER_OF_OIL_VOLUME / m3 / Integer / 2
INTER_FIELD_TRANSFER_OF_OIL_DENSITY / Kg/m3 / Number(1) / 30
INTER_FIELD_TRANSFER_OF_OIL_ORIGIN / Field Name / Character(30)
INTER_FIELD_TRANSFER_OF_OIL_DESTINATION / Field Name / Character(30)
P / Oil Production to Pipeline / OIL_PRODUCTION_TO_PIPELINE_VOLUME / m3 / Integer / 1
OIL_PRODUCTION_TO_PIPELINE_DENSITY / Kg/m3 / Number(1)
P,T / Associated Gas Production / ASSOCIATED_GAS_PRODUCTION_VOLUME / Ksm3 / Integer / 3
ASSOCIATED_GAS_PRODUCTION_DENSITY / Kg/sm3 / Number(3)
P,T / Inter Field Transfer of Associated Gas
(* Repeating Group) / INTER_FIELD_TRANSFER_OF_ASSOCIATED_GAS_VOLUME / Ksm3 / Integer / 4
INTER_FIELD_TRANSFER_OF_ASSOCIATED_GAS_DENSITY / Kg/sm3 / Number(3) / 30
INTER_FIELD_TRANSFER_OF_ASSOCIATED_GAS_ORIGIN / Field Name / Character(30)
INTER_FIELD_TRANSFER_OF_ASSOCIATED_GAS_DESTINATION / Field Name / Character(30)
P,T / Associated Gas to Pipeline / ASSOCIATED_GAS_TO_PIPELINE_VOLUME / Ksm3 / Integer / 5
ASSOCIATED_GAS_TO_PIPELINE_DENSITY / Kg/sm3 / Number(3)
ASSOCIATED_GAS_TO_PIPELINE_CV / Mj/sm3 / Number(2)
G / Dry Gas Field Production / DRY_GAS_FIELD_PRODUCTION_VOLUME / Ksm3 / Integer / 3
DRY_GAS_FIELD_PRODUCTION_DENSITY / Kg/sm3 / Number(3)
G / Inter Field Transfer of Dry Gas
(* Repeating Group) / INTER_FIELD_TRANSFER_OF_DRY_GAS_VOLUME / Ksm3 / Integer / 4
INTER_FIELD_TRANSFER_OF_DRY_GAS_DENSITY / Kg/sm3 / Number(3) / 30
INTER_FIELD_TRANSFER_OF_DRY_GAS_ORIGIN / Field Name / Character(30)
INTER_FIELD_TRANSFER_OF_DRY_GAS_DESTINATION / Field Name / Character(30)
G / Dry Gas to Pipeline / DRY_GAS_TO_PIPELINE_VOLUME / Ksm3 / Integer / 6
DRY_GAS_TO_PIPELINE_CV / Mj/sm3 / Number(2)
G / Dry Gas Field Condensate Production / DRY_GAS_FIELD_CONDENSATE_PRODUCTION_VOLUME / m3 / Integer / 19
DRY_GAS_FIELD_CONDENSATE_PRODUCTION_DENSITY / Kg/m3 / Number(3)
G / Inter Field Transfer of Condensate
(* Repeating Group) / INTER_FIELD_TRANSFER_OF_CONDENSATE_VOLUME / m3 / Integer / 20
INTER_FIELD_TRANSFER_OF_CONDENSATE_DENSITY / Kg/m3 / Number(1) / 30
INTER_FIELD_TRANSFER_OF_CONDENSATE_ORIGIN / Field Name / Character(30)
INTER_FIELD_TRANSFER_OF_CONDENSATE_DESTINATION / Field Name / Character(30)
P,T,G / Gas Flared at Field / GAS_FLARED_AT_FIELD_VOLUME / Ksm3 / Integer / 3
GAS_FLARED_AT_FIELD_DENSITY / Kg/sm3 / Number(3)
P,T,G / Gas Vented at Field / GAS_VENTED_AT_FIELD_VOLUME / Ksm3 / Integer / 3
GAS_VENTED_AT_FIELD_DENSITY / Kg/sm3 / Number(3)
P,T,G / Gas Utilised in Field / GAS_UTILISED_IN_FIELD_VOLUME / Ksm3 / Integer / 3
GAS_UTILISED_IN_FIELD_DENSITY / Kg/sm3 / Number(3)
P,T,G / Gas Injected / GAS_INJECTED_VOLUME / Ksm3 / Integer / 32
GAS_INJECTED_CV / Mj/sm3 / Number(2)
G / Gas Utilised from Inter Field Transfer / GAS_UTILISED_FROM_INTER_FIELD_TRANSFER_VOLUME / Ksm3 / Integer / 3
GAS_UTILISED_FROM_INTER_FIELD_TRANSFER_DENSITY / Kg/sm3 / Number(3)
P,T,G / Produced Water / PRODUCED_WATER_VOLUME / m3 / Integer / 7
P,T,G / Produced Water to Sea / PRODUCED_WATER_TO_SEA_VOLUME / m3 / Integer / 7
P,T / Injected Water / INJECTED_WATER_VOLUME / m3 / Integer / 7
P,T / Re Injected Produced Water / RE_INJECTED_PRODUCED_WATER_VOLUME / m3 / Integer / 7
P / Stock of Oil in Field / STOCK_OF_OIL_IN_FIELD_VOLUME / m3 / Integer / 1
STOCK_OF_OIL_IN_FIELD_DENSITY / Kg/m3 / Number(1)
T / Stock of Oil in Tanker / STOCK_OF_OIL_IN_TANKER_VOLUME / m3 / Integer / 1
STOCK_OF_OIL_IN_TANKER_DENSITY / Kg/m3 / Number(1)
T / Stock of Oil in Pipeline / STOCK_OF_OIL_IN_PIPELINE_VOLUME / m3 / Integer / 1
STOCK_OF_OIL_IN_PIPELINE_DENSITY / Kg/m3 / Number(1)
T / Total Oil Tanker Disposals / TOTAL_OIL_TANKER_DISPOSALS_VOLUME / m3 / Integer / 1, 26
TOTAL_OIL_TANKER_DISPOSALS_DENSITY / Kg/m3 / Number(1)
T / Individual Oil Tanker Disposal
(* Repeating Group) / INDIVIDUAL_OIL_TANKER_DISPOSAL_VOLUME / m3 / Integer / 21
INDIVIDUAL_OIL_TANKER_DISPOSAL_DENSITY / Kg/m3 / Number(1) / 31
INDIVIDUAL_OIL_TANKER_DISPOSAL_DESTINATION / Code / Character(3) / 30
INDIVIDUAL_OIL_TANKER_DISPOSAL_VESSEL / Name / Character(30)
G / Sales Gas to NTS / SALES_GAS_TO_NTS_MASS / Tonnes / Integer / 13
SALES_GAS_TO_NTS_DENSITY / Kg/sm3 / Number(3)
SALES_GAS_TO_NTS_CV / Mj/sm3 / Number(2)
G / Individual Sales Gas Non NTS
(* Repeating Group) / INDIVIDUAL_SALES_GAS_NON_NTS_MASS / Tonnes / Integer / 9
INDIVIDUAL_SALES_GAS_NON_NTS_DENSITY / Kg/sm3 / Number(3) / 30
INDIVIDUAL_SALES_GAS_NON_NTS_CV / Mj/sm3 / Number(2)
INDIVIDUAL_SALES_GAS_NON_NTS_DESTINATION / Code / Character(3)

Table B -Terminal Returns – Data Specification

Reporting Unit Types Data Types

P – Oil Field Exporting to PipelineCharacter (x) = UPPER CASE ALPHANUMERIC not longer than (x) characters

T – Onshore Oil Field or Offshore Tanker LoaderNumber (x) = Number with no more than (x) decimal places

G - Dry Gas FieldInteger = whole number, no decimal point

Reporting Unit Type / Data/Stream Description / Data Item / Units / Data Type / Validation Rules
O,A,D / Return Date / RETURN_DATE_MONTH / Integer / 14
RETURN_DATE_YEAR / Integer
O,A,D / Reporting Unit / REPORTING_UNIT_NAME / Character(30) / 15
REPORTING_UNIT_IDENTIFIER / Integer / 15
REPORTING_UNIT_TYPE / Character(1) / 16
REPORTING_UNIT_OPERATOR / Character(60) / 17
O,A,D / Return Completeness / RETURN_COMPLETENESS / Character(7) / 8
O,A,D / Return UK Share / RETURN_UK_SHARE_OIL / Number(5) / 18
RETURN_UK_SHARE_GAS / Number(5) / 18
O / Pipeline Oil Entering Terminal / PIPELINE_OIL_ENTERING_TERMINAL_MASS / Tonnes / Integer / 7
O,A / NGLs Condensate Entering Terminal / NGLS_CONDENSATE_ENTERING_TERMINAL_MASS / Tonnes / Integer / 22
NGLS_CONDENSATE_ENTERING_TERMINAL_DENSITY / Kg/m3 / Number(1)
O / SCO Receipts / SCO_RECEIPTS_MASS / Tonnes / Integer / 10
SCO_RECEIPTS_DENSITY / Kg/m3 / Number(1)
O / NGL Receipts / NGL_RECEIPTS_MASS / Tonnes / Integer / 7
A / Associated Gas Entering Terminal / ASSOCIATED_GAS_ENTERING_TERMINAL_MASS / Tonnes / Integer / 11
ASSOCIATED_GAS_ENTERING_TERMINAL_DENSITY / Kg/sm3 / Number(3)
D / Pipeline Dry Gas Entering Terminal / PIPELINE_DRY_GAS_ENTERING_TERMINAL_MASS / Tonnes / Integer / 11
PIPELINE_DRY_GAS_ENTERING_TERMINAL_DENSITY / Kg/sm3 / Number(3)
D / Dry Gas Condensate Entering Terminal / DRY_GAS_CONDENSATE_ENTERING_TERMINAL_MASS / Tonnes / Integer / 22
DRY_GAS_CONDENSATE_ENTERING_TERMINAL_DENSITY / Kg/m3 / Number(3)
O / SCO Losses / SCO_LOSSES_MASS / Tonnes / Integer / 23
O,A / Condensate and NGL Losses / CONDENSATE_AND_NGL_LOSSES_MASS / Tonnes / Integer / 23
A,D / Gas Losses / GAS_LOSSES_MASS / Tonnes / Integer / 24
GAS_LOSSES_DENSITY / Kg/sm3 / Number(3)
D / Dry Gas Condensate Losses / DRY_GAS_CONDENSATE_LOSSES_MASS / Tonnes / Integer / 25
DRY_GAS_CONDENSATE_LOSSES_DENSITY / Kg/sm3 / Number(3)
O,A,D / Gas Flared at Terminal / GAS_FLARED_AT_TERMINAL_MASS / Tonnes / Integer / 11
GAS_FLARED_AT_TERMINAL_DENSITY / Kg/sm3 / Number(3)
O,A,D / Gas Vented at Terminal / GAS_VENTED_AT_TERMINAL_MASS / Tonnes / Integer / 11
GAS_VENTED_AT_TERMINAL_DENSITY / Kg/sm3 / Number(3)
O,A,D / Gas Utilised in Terminal / GAS_UTILISED_IN_TERMINAL_MASS / Tonnes / Integer / 11
GAS_UTILISED_IN_TERMINAL_DENSITY / Kg/sm3 / Number(3)
O / SCO Stock / SCO_STOCK_MASS / Tonnes / Integer / 10
SCO STOCK_DENSITY / Kg/m3 / Number(1)
O,A / NGL Production / NGL_PRODUCTION_MASS / Tonnes / Integer / 7
O,A / Ethane Stock / ETHANE_STOCK_MASS / Tonnes / Integer / 7
O,A / Propane Stock / PROPANE_STOCK_MASS / Tonnes / Integer / 7
O,A / Butane Stock / BUTANE_STOCK_MASS / Tonnes / Integer / 7
O,A / C5 Condensate Stock / C5_CONDENSATE_STOCK_MASS / Tonnes / Integer / 7
D / Dry Gas Condensate Stock / DRY_GAS_CONDENSATE_STOCK_MASS / Tonnes / Integer / 22
DRY_GAS_CONDENSATE_STOCK_DENSITY / Kg/m3 / Number(1)
O / Total SCO Disposal / TOTAL_SCO_DISPOSAL_MASS / Tonnes / Integer / 10
TOTAL_SCO_DISPOSAL_DENSITY / Kg/m3 / Number(1)
O / Individual SCO Disposal
* Repeating Group) / INDIVIDUAL_SCO_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_SCO_DISPOSAL_DELIVERY / Method / Character(1)
INDIVIDUAL_SCO_DISPOSAL_DESTINATION / Code / Character(3) / 30, 33
O,A / Total Ethane Disposal / TOTAL_ETHANE_DISPOSAL_MASS / Tonnes / Integer / 22
TOTAL_ETHANE_DISPOSAL_DENSITY / Kg/m3 / Number(3)
O,A / Total Propane Disposal / TOTAL_PROPANE_DISPOSAL_MASS / Tonnes / Integer / 22
TOTAL_PROPANE_DISPOSAL_DENSITY / Kg/m3 / Number(3)
O,A / Total Butane Disposal / TOTAL_BUTANE_DISPOSAL_MASS / Tonnes / Integer / 22
TOTAL_BUTANE_DISPOSAL_DENSITY / Kg/m3 / Number(3)
O,A / Total C5 Condensate Disposal / TOTAL_C5_CONDENSATE_DISPOSAL_MASS / Tonnes / Integer / 22
TOTAL_C5_CONDENSATE_DISPOSAL_DENSITY / Kg/m3 / Number(3)
O,A / Individual Ethane Disposal
(* Repeating Group) / INDIVIDUAL_ETHANE_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_ETHANE_DISPOSAL_DELIVERY / Method / Character(1) / 31
INDIVIDUAL_ETHANE_DISPOSAL_DESTINATION / Code / Character(3) / 30,33
O,A / Individual Propane Disposal
(* Repeating Group) / INDIVIDUAL_PROPANE_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_PROPANE_DISPOSAL_DELIVERY / Method / Character(1) / 31
INDIVIDUAL_PROPANE_DISPOSAL_DESTINATION / Code / Character(3) / 30, 33
O,A / Individual Butane Disposal
(* Repeating Group) / INDIVIDUAL_BUTANE_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_BUTANE_DISPOSAL_DELIVERY / Method / Character(1) / 31
INDIVIDUAL_BUTANE_DISPOSAL_DESTINATION / Code / Character(3) / 30, 33
O,A / Individual C5 Condensate Disposal
(* Repeating Group) / INDIVIDUAL_C5_CONDENSATE_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_C5_CONDENSATE_DISPOSAL_DELIVERY / Method / Character(1) / 31
INDIVIDUAL_C5_CONDENSATE_DISPOSAL_DESTINATION / Code / Character(3) / 30, 33
A / Total Mixed Condensate Disposal / TOTAL_MIXED_CONDENSATE_DISPOSAL_MASS / Tonnes / Integer / 22
TOTAL_MIXED_CONDENSATE_DISPOSAL_DENSITY / Kg/sm3 / Number(1)
A / Individual Mixed Condensate Disposal
(* Repeating Group) / INDIVIDUAL_MIXED_CONDENSATE_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_MIXED_CONDENSATE_DISPOSAL_DELIVERY / Method / Character(1) / 31
INDIVIDUAL_MIXED_CONDENSATE_DISPOSAL_DESTINATION / Code / Character(3) / 30, 33
A,D / Sales Gas from UK Production / SALES_GAS_FROM_UK_PRODUCTION_MASS / Tonnes / Integer / 13
SALES_GAS_FROM_UK_PRODUCTION_DENSITY / Kg/sm3 / Number(3)
SALES_GAS_FROM_UK_PRODUCTION_CV / Mj/sm3 / Number(2)
A,D / Sales Gas from Non UK Production / SALES_GAS_FROM_NON_UK_PRODUCTION_MASS / Tonnes / Integer / 13
SALES_GAS_FROM_NON_UK_PRODUCTION_DENSITY / Kg/sm3 / Number(3)
SALES_GAS_FROM_NON_UK_PRODUCTION_CV / Mj/sm3 / Number(2)
A,D / Sales Gas to NTS / SALES_GAS_TO_NTS_MASS / Tonnes / Integer / 13
SALES_GAS_TO_NTS_DENSITY / Kg/sm3 / Number(3)
SALES_GAS_TO_NTS_CV / Mj/sm3 / Number(2)
A,D / Individual Sales Gas Non NTS
(* Repeating Group) / INDIVIDUAL_SALES_GAS_NON_NTS_MASS / Tonnes / Integer / 9
INDIVIDUAL_SALES_GAS_NON_NTS_DENSITY / Kg/sm3 / Number(3) / 30
INDIVIDUAL_SALES_GAS_NON_NTS_CV / Mj/sm3 / Number(2) / 31
INDIVIDUAL_SALES_GAS_NON_NTS_DESTINATION / Code / Character(3)
D / Dry Gas Condensate Disposal / DRY_GAS_CONDENSATE_DISPOSAL_MASS / Tonnes / Integer / 22
DRY_GAS_CONDENSATE_DISPOSAL_DENSITY / Kg/m3 / Number(3)
D / Individual Dry Gas Condensate Disposal
(* Repeating Group) / INDIVIDUAL_DRY_GAS_CONDENSATE_DISPOSAL_MASS / Tonnes / Integer / 12
INDIVIDUAL_DRY_GAS_CONDENSATE_DISPOSAL_DELIVERY / Method / Character(1) / 31
INDIVIDUAL_DRY_GAS_CONDENSATE_DISPOSAL_DESTINATION / Code / Character(3) / 30, 33

Table C - Validation Rules

When constructing a PPRS XML file, all tags defined in the relevant DTD must be included. This is even if reported data within the tags is blank or zero, with the exception of repeating data groups that are explained below in Rule 30. This applies to both ‘FULL’ returns and ‘PARTIAL’ returns. Tables A and B indicate which data items must be reported and which rules apply. If a data item is not required, report a blank or zero value within the XML tags.

Validation Rule / Rule Definition / Rule Scope
Rule 1 – Oil volume reporting / (volume > 0 and < 9999999 and density >500 and < 1050) OR
(volume = 0 and density = 0) / Within Data/Stream Description
Rule 2 – Oil volume transfers / ( (volume > 0 and < 9999999) or (volume <0 and > -9999999) )
and density > 500 and < 1050 and
origin is not blank and destination is not blank)
The convention is that transfers from the reporting unit are positive, and transfers in are negative / Within Data/Stream Description
Rule 3 – Gas volume reporting / (volume >0 and < 999999999 and density > 0.5 and < 5) OR
(volume = 0 and density = 0 ) / Within Data/Stream Description
Rule 4 – Gas volume transfers / ( (volume > 0 and < 999999999) or (volume < 0 and > -999999999) )
density > 0.5 and < 5 and origin is not blank and destination is not blank)
The convention is that transfers from the reporting unit are positive, and transfers in are negative / Within Data/Stream Description
Rule 5 – Gas volume reporting with CV / (volume > 0 and < 999999999 and density > 0.5 and < 5 and calorific value (CV) > 0 and < 50) OR
(volume = 0 and density = 0 and CV = 0 ) / Within Data/Stream Description
Rule 6 – Gas volume reporting with CV only / (volume >0 and < 999999999 and CV > 0 and < 50)
OR (volume = 0 and CV = 0 ) / Within Data/Stream Description
Rule 7 – volume/ mass reporting only / (value >= 0 and < 999999999) / Within Data/Stream Description
Rule 8 – Return Completeness / Return Completeness Type = ‘FULL’ or ‘PARTIAL’ / Within Data/Stream Description
Rule 9 – Individual Gas mass disposals / (mass > 0 and < 9999999 and density > 0.5 and < 5 and
CV > 0 and < 50 and Destination is not blank) / Within Data/Stream Description
Rule 10 – Oil mass reporting / (mass > 0 and < 9999999 and density > 500 and < 1050)
OR (mass = 0 and density = 0 ) / Within Data/Stream Description
Rule 11 – Gas mass reporting / (mass > 0 and < 9999999 and density > 0.5 and < 5)
OR (mass = 0 and density = 0) / Within Data/Stream Description
Rule 12 – Mass disposal / (mass > 0 and < 9999999 and delivery not blank and destination is in Rule 31) / Within Data/Stream Description
Rule 13 – Gas mass reporting with CV / (mass > 0 and < 9999999 and density > 0.5 and < 5 and CV > 0 and < 50)
OR (mass = 0 and density = 0 and CV = 0) / Within Data/Stream Description
Rule 14 – Reporting month/ year / month >= 1 and <= 12 and year >= 1975 / Within Data/Stream Description
Rule 15 – Reporting Unit Details / Assigned by the OGA at start of reporting – must be upper case if alphabetic. / Individual Data Item
Rule 16 – Reporting Unit Type / Reporting_Unit_Type = P or T or G or O or A or D and agreed with OGA at start of reporting / Individual Data Item
Rule 17 – Operating Company / Agreed with the OGA at start of reporting and for subsequent changes – upper case / Individual Data Item
Rule 18 – UK Share / This represents the share of production attributable to UK, which may differ from the UK equity due to an underlift/ overlift situation. Values for Median line fields may result in negative values or values > 100. There is therefore limited validation: Value > -100 and < 200 / Individual Data Item
Rule 19 – NGL/ Condensate volume reporting / ( volume > 0 and < 9999999 and density > 300 and < 800 )
OR ( volume = 0 and density = 0 ) / Within Data/Stream Description
Rule 20 – NGL/ Condensate volume transfers / ( ( volume > 0 and < 9999999) or ( volume < 0 and > -9999999 ) ) and
density > 300 and < 800 and origin is not blank and destination is not blank
The convention is that transfers from the reporting unit are positive, and transfers in are negative / Within Data/Stream Description
Rule 21 – Individual oil volume disposal / Volume > 0 and < 9999999 and density > 500 and < 1050
and destination in Rule 31 and vessel is not blank / Within Data/Stream Description
Rule 22 – NGL and Condensate mass reporting / ( mass > 0 and < 9999999 and density > 300 and < 800 )
OR ( mass = 0 and density = 0 ) / Within Data/Stream Description
Rule 23 – Mass losses / ( mass > -9999999 and < 9999999 ) / Within Data/Stream Description
Rule 24 – Gas mass losses / ( ( ( mass > 0 and < 9999999 ) or ( mass > -9999999 and < 0 ) ) and density > 0.5 and < 5 )
OR ( mass = 0 and density = 0 ) / Within Data/Stream Description
Rule 25 – Condensate mass losses / ( ( ( mass > 0 and < 9999999 ) or ( mass > -9999999 and < 0 ) ) and density > 300 and < 800 )
OR ( mass = 0 and density = 0 ) / Within Data/Stream Description
Rule 26 – Total disposals and individual values / For each terminal product type: SCO, Ethane, Propane, Butane, C5 Condensate, Mixed Condensate, Dry Gas Condensate, the sum of individual disposals must equal total disposal within plus or minus 0.5%. Similarly for field Oil Tanker Disposals.
If the total value for a product type is zero, then no entries in the corresponding repeating group for the individual disposals should be included in the return. Only the tag for the repeating group should appear. / Consistency of total values and corresponding individual values
Rule 27 - Which reporting units may have partial returns / ( Reporting_Unit_Type = ‘T’ or ‘G’ or ‘O’ or ‘A’ or ‘D’ and
Return_Completeness = ‘PARTIAL’ or ‘FULL’ ) OR
( Reporting_Unit_Type = ‘P’ and Return_Completeness = ‘FULL’ ) / Consistency of reporting unit types and allowed completeness of data
Rule 28 - Which data should be reported for PARTIAL returns / If Reporting_Unit_Type = ‘T’ and Return_Completeness = ‘PARTIAL’, then the only Data/ Streams to be reported are:
Return Date, Reporting Unit, Return Completeness, Return UK Share Oil, Return UK Share Gas, Oil Production, and all other data values within XML tags should be blank
If Reporting_Unit_Type = ‘G and Return_Completeness = ‘PARTIAL’
Then the only data streams to be reported are
Return Date, Reporting Unit, Return Completeness, Return UK Share,
Dry Gas Field Production, Dry Gas Field Condensate Production,
Sales Gas to NTS and Individual Sales Gas Non NTS
All other data values within XML tags must be blank. Sales Gas is for landward fields. For offshore fields return values 0 for Sales Gas to NTS and no repeating groups of Individual Sales Gas Non NTS.
If Reporting_Unit_Type = ‘O’ and Return_Completeness = ‘PARTIAL’
Then the only data streams to be reported are:
Return Date, Reporting Unit, Return Completeness, Return UK Share, SCO Receipts and
NGL Receipts,
All other data values within XML tags must be blank
If Reporting_Unit_Type = ‘A’ and Return_Completeness = ‘PARTIAL’
Then the only data streams to be reported are:
Return Date, Reporting Unit, Return Completeness, Return UK Share,
Total Mixed Condensate Disposal, Sales Gas from UK Production and Sales Gas from Non UK Production
All other data values within XML tags must be blank / Consistency of expected data in PARTIAL returns
Rule 28 (continued)
Which data should be reported for PARTIAL returns / If Reporting_Unit_Type = ‘D’ and Return_Completeness = ‘PARTIAL’
Then the only data streams to be reported are:
Return Date, Reporting Unit, Return Completeness, Return UK Share,
Dry Gas Condensate Stock, Sales Gas from UK Production
and Sales Gas from Non UK Production
All other data items in the XML file must be blank / Consistency of expected data in PARTIAL returns
Rule 29 – Which data should be reported for FULL returns / Reporting Unit Type = P and Return_Completeness = ‘FULL’
See Table A – ‘Data Items’ for each ‘Data/Stream Description’ with a ‘P’ in the column headed ‘Reporting Unit Type’ must be reported and satisfy the ‘Validation /Rules’ quoted.
Reporting Unit Type = T and Return_Completeness = ‘FULL’
See Table A – ‘Data Items’ for each ‘Data/Stream Description’ with a ‘T’ in the column headed ‘Reporting Unit Type’ must be reported and satisfy the ‘Validation /Rules’ quoted.
Reporting Unit Type = G and Return_Completeness = ‘FULL’
See Table A – ‘Data Items’ for each ‘Data/Stream Description’ with a ‘G’ in the column headed ‘Reporting Unit Type’ must be reported and satisfy the ‘Validation /Rules’ quoted.
Reporting Unit Type = O and Return_Completeness = ‘FULL’
See Table B – ‘Data Items’ for each ‘Data/Stream Description’ with an ‘O’ in the column headed ‘Reporting Unit Type’ must be reported and satisfy the ‘Validation /Rules’ quoted.
Reporting Unit Type = A and Return_Completeness = ‘FULL’
See Table B – ‘Data Items’ for each ‘Data/Stream Description’ with ‘A’ in column headed ‘Reporting Unit Type’ must be reported and satisfy the ‘Validation /Rules’ quoted.
Reporting Unit Type = D and Return_Completeness = ‘FULL’
See Table B – ‘Data Items’ for each ‘Data/Stream Description’ with ‘D’ in column headed ‘Reporting Unit Type’ must be reported and satisfy the ‘Validation /Rules’ quoted. / Consistency of expected data within FULL returns.
Rule 30 – How to report empty Repeating Groups / If a repeating group does not have values to be reported (e.g. a field has no Inter Field Transfer of Oil) then the XML data tags within the repeating group should be omitted. Only the tags identifying the repeating group should be included in the XML file.
E.g. if there is no Inter Field Transfer of Oil then the XML entry will read:
Inter_Field_Transfer_of_Oil_Repeating_Group
</Inter_Field_Transfer_of_Oil_Repeating_Group
Similarly if there were no Individual Ethane Disposals then the entry in the XML file would read:
Individual_Ethane_Disposal_Repeating_Group
</Individual_Ethane_Disposal_Repeating_Group / Repeating Data Groups
Rule 31 – Valid codes for Destinations / These are in a separate part of the Manual because they may change from time to time.
Rule 32 – Gas Injection – only report CV for fields with sales gas injection A / ( Reporting_Unit_Type = P or T and Volume >=0 and < 999999999 and CV is blank )
OR
( Reporting_Unit_Type = G and Reporting Unit injects sales gas for storage and
( ( Volume >0 and < 999999999 and CV > 0 and < 50 ) or ( Volume = 0 and CV = 0) )
OR
( Reporting_Unit_Type = G and Reporting Unit does not inject sales gas for storage and
(Volume >= 0 and < 999999999 and CV is blank) ) / Within Data/Stream Description
Rule 33 – Disposal Delivery Method / Value should be,
R= Rail or Road
P= Pipeline
T= Tanker

© Crown copyright 2016