Billing Test Scenarios
The billing test scenarios are covering two negative cases and three positive cases. The most comprehensive is the scenario 4.
This Excel spreadsheet was used to calculate the expected values for TOTAL and timeslice calculations:
Billing test data preparation and calculation.xlsx
Scenario 1 - Missing Data
This scenario covers the situation where there is no data to base the billing determinant on. In such cases, the flow should fail.
Pre-requisites
- A METERING_POINT datasource exists with channel
- ACTIVE_DELIVERY_INT15T_VEE
- The channel ACTIVE_DELIVERY_INT15T_VEE contains data from 2025-02-13 until 2025-02-14, status should be OK (measured or estimated on the VEE channel)
- Billing message
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe11",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "301009519",
"UsagePoint": {
"mRID": "YOUR_METERING_POINT_DATASOURCE_ID"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-02-15T23:00:00.000Z",
"end": "2025-03-15T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "0.0.2.4.1.1.12.0.0.0.0.0.0.0.0.0.72.0"
}
]
}
]
}
}
Steps
- Set up pre requisites
- ingest billing request
Expected Results
- Data is attempted to be loaded, rule succeeds (no fail)
- standard_billing_validation rule should fail the flow (no data for the entire billing period for this channel - error message should specify reason for failure)
Scenario 2 - Bad Status
This scenario covers the situation where one or more datapoint has a status that is not accepted for the billing calculation: it only accepts “measured” and “estimated”.
Prerequisites
- A METERING_POINT datasource exists with channel
- ACTIVE_DELIVERY_INT15T_VEE
- Let there be data for the period [2025-01-01, 2025-03-15), with at least one datapoint that has status “disturbed” or “missing”
- Billing message
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe12",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "301009519",
"UsagePoint": {
"mRID": "ANOTHER_METERING_POINT_DATASOURCE_ID"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-02-15T23:00:00.000Z",
"end": "2025-03-15T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "0.0.2.4.1.1.12.0.0.0.0.0.0.0.0.0.72.0"
},
]
}
]
}
}
Steps
- Set up prerequisites
- ingest billing request
Expected Results
- data is loaded correctly
- standard_billing_validation rule should fail the flow because there is a bad status (error message should specify reason for failure)
Scenario 3 - One Datasource, one period, total
This scenario covers the situation where billing request message has one datasource .
Prerequisites
- One (1) METERING_POINT datasource exists with channelACTIVE_DELIVERY_INT15T_VEE and
- tag
holiday_calendar.name= Europe/Amsterdam - Data is available for the channelACTIVE_DELIVERY_INT15T_VEE for datasources:
- BILLING_SCN3_DATASOURCE_1 for the period 2024-07-31 23:00:00 UTC+02 till 2024-09-01 01:00:00 UTC+02, with all datapoints having status:
- measured
- Data: BILLING testing data Scenario 3 2024.07.31 23 - 2024.09.01 01.csv
- Channel classifierACTIVE_DELIVERY_TOTAL_BILLING exists
- type: gauge
- channel family: “bl”
- enum dpaquality_status:
- measured
- estimated
- missing:
- The Pub/Sub topic described in the Namespace property
pubsub_topic_nameexists in the GCP. - BILLING datasource exists
Steps
- Set up pre requisites
- Ingest the billing request message:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe13",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN3_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-07-31T22:00:00.000Z",
"end": "2024-08-31T22:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
}
]
}
]
}
}
Expected Results
- Billing determinants are stored for that datasource to channel ACTIVE_DELIVERY_TOTAL_BILLING:
- Timestamp: 2024-09-01 00:00:00 UTC+02
- Value: 63999.624
- dpa “quality_status”: measured
- Output file (below) is saved in the File Manager
- Output file (below) is sent to pubsub topic defined in namespace properties:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe13",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
"timeStamp": "2024-09-01T00:00:00+02:00",
"value": "63999.624"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN3_DATASOURCE_1"
},
"valuesInterval": {
"start": "2024-08-01T00:00:00+02:00",
"end": "2024-09-01T00:00:00+02:00"
}
}
]
}
}
Scenario 4 - Multiple Datasources, different periods, timeslices, register, Pmax
This scenario covers the situation where billing request message has multiple datasources. Data provided has one extra datapoint at the start and end of the billing period to ensure that the billing process correctly loads the data (ignoring any data around a period).
Prerequisites
- Three (3) METERING_POINT datasource exists with channeland
- tag
holiday_calendar.name=Europe/Amsterdam - tag
customer_agreement.tariff_name=Test-complex - Data is available for:
- BILLING_SCN4_DATASOURCE_1
- channel ACTIVE_DELIVERY_INT15T_VEE
- for the period 2024-09-30 23:00:00 UTC+02 till 2025-01-01 01:00:00 UTC+01, with one datapoint having status “estimated”
- data:
- BILLING_SCN4_DATASOURCE_2
- channel ACTIVE_DELIVERY_READ24H_VEE
- for the period 2024-11-30 00:00:00 UTC+01 till 2025-01-02 00:00:00 UTC+01, with one datapoint in period having status “estimated” and the last datapoint having status “measured”
- BILLING_SCN4_DATASOURCE_3
- channel ACTIVE_DELIVERY_PMAX1M_VEE
- for the period 2025-01-31 00:00:00 UTC+01 till 2025-03-02 00:00:00 UTC+01, with all datapoints having status “measured”
- Data: BILLING testing data Scenario 4 2024.09.30 23 - 2025.03.01 01.csv
- Channelclassifiers exist:
- ACTIVE_DELIVERY_DAY_BILLING
- ACTIVE_DELIVERY_NIGHT_BILLING
- ACTIVE_DELIVERY_PEAK_BILLING
- ACTIVE_DELIVERY_OFFPEAK_BILLING
- ACTIVE_DELIVERY_READ_BILLING
- ACTIVE_DELIVERY_PMAX_BILLING
- type: gauge
- channel family: “bl”
- enum dpaquality_status:
- measured
- estimated
- missing
- BILLING datasource exists
- The Pub/Sub topic described in the Namespace property
pubsub_topic_nameexists in the GCP. - Timeslice group “Test-complex” is configured as following:

Steps
- Ingest the billing request message:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe14",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-09-30T22:00:00.000Z",
"end": "2024-12-31T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
]
},
{
"mRID": "METER_2",
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_2"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-11-30T23:00:00.000Z",
"end": "2024-12-31T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
]
},
{
"mRID": "METER_3",
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_3"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-01-31T23:00:00.000Z",
"end": "2025-02-28T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.8.0.0.1.1.37.0.0.0.0.0.0.0.0.3.38.0"
},
]
}
]
}
}
Expected Results
- Billing determinants are stored for each datasource to its (gauge type of) channel belonging to a channel family “bl”.
- BILLING_SCN4_DATASOURCE_1
- ACTIVE_DELIVERY_DAY_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 194997.127
- quality_status: “measured”
- ACTIVE_DELIVERY_NIGHT_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value:
222205.56222321.998 - quality_status: “estimated”
- ACTIVE_DELIVERY_PEAK_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 29767.394
- quality_status: “measured”
- ACTIVE_DELIVERY_OFFPEAK_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 12224.745
- quality_status: “measured”
- BILLING_SCN4_DATASOURCE_2
- ACTIVE_DELIVERY_READ24H_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 459214.722
- quality_status: “measured”
- BILLING_SCN4_DATASOURCE_3
- ACTIVE_DELIVERY_PMAX1M_BILLING
- timestamp: timestamp: 2025-03-01T00:00:00+01:00
- value: 9002.704
- quality_status: “measured”
- Timestamp on the annotation: 2025-02-22 00:00:00
- Output file (below) is saved in the File Manager
- Output file (below) is sent to pubsub topic defined in namespace properties:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe14",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "194997.127"
},
{
"ReadingQuality": "estimated",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "222321.998"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "29767.394"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "12224.745"
},
],
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_1"
},
"valuesInterval": {
"start": "2025-02-16T00:00:00+01:00",
"end": "2025-03-16T00:00:00+01:00"
}
},
{
"isComplete": true,
"mRID": "METER_2",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "459214.722"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_2"
},
"valuesInterval": {
"start": "2024-12-01T00:00:00+01:00",
"end": "2025-01-01T00:00:00+01:00"
}
},
{
"isComplete": true,
"mRID": "METER_3",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.8.0.0.1.1.37.0.0.0.0.0.0.0.0.3.38.0"
},
"timeStamp": "2025-03-01T00:00:00+01:00",
"value": "9002.704"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_3"
},
"valuesInterval": {
"start": "2025-02-01T00:00:00+01:00",
"end": "2025-03-01T00:00:00+01:00"
}
}
]
}
}
Scenario 5 - One Datasource, one period, timeslices, split by month
This scenario covers the situation where billing request message has one datasource and the billing period spans over multiple months but the results are reported monthly
Prerequisites
- One (1) METERING_POINT datasource exists with channelACTIVE_DELIVERY_INT15T_VEE
- tag
holiday_calendar.name=Europe/Amsterdam - tag
customer_agreement.tariff_name=Test-complex - Data is available for the channelACTIVE_DELIVERY_INT15T_VEE for datasources:
- BILLING_SCN5_DATASOURCE_1 for the period 2024-10-01 00:00:00 UTC+02 till 2025-01-01 02:00:00 UTC+01, with all datapoints having quality_status:
- measured OR
- estimated
- Data: BILLING testing data Scenario 5 2024.09.30 23 - 2025.01.01 01.csv
- Channelclassifiers exist:
- ACTIVE_DELIVERY_DAY_BILLING
- ACTIVE_DELIVERY_NIGHT_BILLING
- ACTIVE_DELIVERY_PEAK_BILLING
- ACTIVE_DELIVERY_OFFPEAK_BILLING
- type: gauge
- channel family: “bl”
- dpaquality_status:
- measured
- estimated
- missing
- The Pub/Sub topic described in the Namespace property
pubsub_topic_nameexists in the GCP. - Billing rule has parameter
**split_by_month = True** - BILLING datasource exists
- Timeslice group “Test-complex” is configured as following:

Steps
- Set up pre requisites
- Ingest the billing request message:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN5_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-09-30T22:00:00.000Z",
"end": "2024-12-31T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
}
]
}
]
}
}
Expected Results
- Billing determinants are stored for that datasource to channel ACTIVE_DELIVERY_BILLING
- ACTIVE_DELIVERY_DAY_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 97686.3
- quality_status: “measured”
- timestamp: 2024-12-01T00:00:00+01:00
- value: 66107.865
- quality_status: “measured”
- timestamp: 2024-11-01T00:00:00+01:00
- value: 31202.962
- quality_status: “measured”
- ACTIVE_DELIVERY_NIGHT_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 122017.228
- quality_status: “measured”
- timestamp: 2024-12-01T00:00:00+01:00
- value: 72920.121
- quality_status: “measured”
- timestamp: 2024-11-01T00:00:00+01:00
- value:
27268.21127384.649 - quality_status: “estimated ”
- ACTIVE_DELIVERY_PEAK_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 17826.134
- quality_status: “measured”
- timestamp: 2024-12-01T00:00:00+01:00
- value: 11227.134
- quality_status: “measured”
- timestamp: 2024-11-01T00:00:00+01:00
- value: 714.126
- quality_status: “measured”
- ACTIVE_DELIVERY_OFFPEAK_BILLING
- timestamp: 2025-01-01T00:00:00+01:00
- value: 7410.42
- quality_status: “measured”
- timestamp: 2024-12-01T00:00:00+01:00
- value: 0
- quality_status: “measured”
- timestamp: 2024-11-01T00:00:00+01:00
- value: 4814.325
- quality_status: “measured”
- Output file (below) is saved in the File Manager
- Output file (below) is sent to pubsub topic defined in namespace properties:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "31202.962"
},
{
"ReadingQuality": "estimated",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "27384.649"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "4814.325"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "0"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "66107.865"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "72920.121"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "11227.134"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "0"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "97686.3"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "122017.228"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "29767.394"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "12224.745"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN5_DATASOURCE_1"
},
"valuesInterval": {
"start": "2025-10-01T00:00:00+02:00",
"end": "2025-01-01T00:00:00+01:00"
}
}
]
}
}
Scenario 6 - One Datasource, moving to DST, timeslices + register
This scenario covers the situation where billing request message has one datasource and the billing period is for single month in March where DST starts and calculation is done for intervals and registers
Prerequisites
- One (1) METERING_POINT datasource exists with channelACTIVE_DELIVERY_INT15T_VEE
- tag
holiday_calendar.name=Europe/Amsterdam - tag
customer_agreement.tariff_name=Test-complex - Data is available for datasources:
- BILLING_SCN5_DATASOURCE_1 for channels ACTIVE_DELIVERY_INT15T_VEE AND ACTIVE_DELIVERY_READ24H_VEE**** for the period 2025-03-01 00:00:00 UTC+01 till 2025-04-01 02:00:00 UTC+02, with all datapoints having quality_status:
- measured
- Data:BILLING_SCN6_DATASOURCE_1 Scenario 6 2025.02.28 22 - 2025.04.01 02.csv
- Channelclassifiers exist:
- ACTIVE_DELIVERY_DAY_BILLING
- ACTIVE_DELIVERY_NIGHT_BILLING
- ACTIVE_DELIVERY_PEAK_BILLING
- ACTIVE_DELIVERY_OFFPEAK_BILLING
- ACTIVE_DELIVERY_READ_BILLING
- type: gauge
- channel family: “bl”
- dpaquality_status:
- measured
- estimated
- missing
- The Pub/Sub topic described in the Namespace property
pubsub_topic_nameexists in the GCP. - Billing rule has parameter
**split_by_month = True** - BILLING datasource exists
- Timeslice group “Test-complex” is configured as following:

Steps
- Set up pre requisites
- Ingest the billing request message:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-05-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN6_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-03-30T23:00:00.000Z",
"end": "2025-03-31T22:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0",
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
}
]
}
]
}
}
Expected Results
- Billing determinants are stored for that datasource to channel ACTIVE_DELIVERY_BILLING
- ACTIVE_DELIVERY_DAY_BILLING
- timestamp: 2025-04-01T00:00:00+02:00
- value: 215.139
- quality_status: “measured”
- ACTIVE_DELIVERY_NIGHT_BILLING
- timestamp: 2025-04-01T00:00:00+02:00
- value: 242.509
- quality_status: “measured”
- ACTIVE_DELIVERY_PEAK_BILLING
- timestamp: 2025-04-01T00:00:00+02:00
- value: 36.660
- quality_status: “measured”
- ACTIVE_DELIVERY_OFFPEAK_BILLING
- timestamp: 2025-04-01T00:00:00+02:00
- value: 15.596
- quality_status: “measured”
- ACTIVE_DELIVERY_READ_BILLING
- timestamp: 2025-04-01T00:00:00+02:00
- value: 1688.594656
- quality_status: “measured”
- Output file (below) is saved in the File Manager
- Output file (below) is sent to pubsub topic defined in namespace properties:
{
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "215.139"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "242.509"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "36.660"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "15.596"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "1688.594656"
},
],
"UsagePoint": {
"mRID": "BILLING_SCN6_DATASOURCE_1"
},
"valuesInterval": {
"start": "2025-03-01T00:00:00+01:00",
"end": "2025-04-01T00:00:00+02:00"
}
}
]
}
}