> For the complete documentation index, see [llms.txt](https://india-energy-stack.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://india-energy-stack.gitbook.io/docs/schemas/meterdata.md).

# MeterData

*A lightweight, high-throughput telemetry payload for exchanging smart-meter readings, events and alarms — cheap to parse and store at Head-End-System scale, without cryptographic wrapping.*

|                    |                                                                                                                                                                                         |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Canonical base** | `https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData`                                                                                                                |
| **Latest version** | **v0.6**                                                                                                                                                                                |
| **Status**         | Stable — In Pilot (current: **v0.6**) · **Issued by** AMISPs, HES/MDM systems, DISCOMs · **Consumed by** DISCOMs, regulators, TSPs and consented third parties                          |
| **Category**       | Data Exchange payloads                                                                                                                                                                  |
| **Used in**        | [Smart Meter Data Exchange](/docs/use-case-implementation-guides/smart-meter-data-exchange.md) · [Consumer Meter Digest](/docs/use-case-implementation-guides/consumer-meter-digest.md) |

What this schema is for, in plain language — standards basis, design rationale, open points: [MeterData (Schemas Overview)](/docs/schemas-overview/schemas-overview/meter-data.md).

## Developer resources — v0.6 (current)

| Resource                 | URL                                                                                                                                                                                                          | Notes                                                        |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------ |
| Field reference (README) | <https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/README.md>                                                                                                                      | human-readable field reference for this version              |
| `attributes.yaml`        | <https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/attributes.yaml>                                                                                                                | OpenAPI 3.1 source of truth                                  |
| `schema.json`            | <https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/schema.json>                                                                                                                    | compiled JSON Schema (Draft 2020-12) — validate against this |
| `context.jsonld`         | <https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/context.jsonld>                                                                                                                 | JSON-LD context for semantic resolution                      |
| `vocab.jsonld`           | <https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/vocab.jsonld>                                                                                                                   | RDF vocabulary with standards alignments                     |
| `examples/`              | [https://github.com/India-Energy-Stack/ies-accelerator/tree/main/schemas/MeterData/v0.6/examples](https://github.com/India-Energy-Stack/ies-accelerator/tree/main/schemas/MeterData/v0.6/examples/README.md) | worked payloads                                              |

## Field reference — v0.6 (current)

*A field name in **bold** with a trailing **\*** is required; all others are optional. **Type** shows units for QuantitativeValue models. Descriptions are simplified to the plain meaning of each field — the per-version pages (see **Versions** below) carry the full text, standards basis and notes.*

**CustomerProfile**

| Field                          | Type                         | Description                        |
| ------------------------------ | ---------------------------- | ---------------------------------- |
| **`profileType`** \*           | text                         | —                                  |
| `customerRefs`                 | IdentifierList               | —                                  |
| `timeZone`                     | text                         | IANA time-zone, e.g. Asia/Kolkata. |
| `customerDetails`              | CustomerDetails              | —                                  |
| **`customer`** \*              | Customer                     | —                                  |
| **`serviceDeliveryPoints`** \* | list of ServiceDeliveryPoint | —                                  |
| **`meters`** \*                | list of Meter                | —                                  |
| **`associations`** \*          | list of Association          | —                                  |

**BaseProfile**

| Field                      | Type           | Description                                                                                   |
| -------------------------- | -------------- | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text           | —                                                                                             |
| `customerRefs`             | IdentifierList | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList | —                                                                                             |
| `payloadDescriptorSetRef`  | text           | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |

**IntervalProfile**

| Field                      | Type             | Description                                                                                   |
| -------------------------- | ---------------- | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text             | —                                                                                             |
| `customerRefs`             | IdentifierList   | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList   | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList   | —                                                                                             |
| `payloadDescriptorSetRef`  | text             | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| `compactSequenceRef`       | text             | Name of the compact sequence to use from the payloadDescriptorSets.                           |
| **`intervalPeriod`** \*    | IntervalPeriod   | —                                                                                             |
| `intervals`                | list of Interval | —                                                                                             |
| `readings`                 | list of Reading  | —                                                                                             |

**DailyProfile**

| Field                      | Type             | Description                                                                                   |
| -------------------------- | ---------------- | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text             | —                                                                                             |
| `customerRefs`             | IdentifierList   | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList   | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList   | —                                                                                             |
| `payloadDescriptorSetRef`  | text             | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| `compactSequenceRef`       | text             | Name of the compact sequence to use from the payloadDescriptorSets.                           |
| **`intervalPeriod`** \*    | IntervalPeriod   | —                                                                                             |
| `intervals`                | list of Interval | —                                                                                             |
| `readings`                 | list of Reading  | —                                                                                             |

**MonthlyProfile**

| Field                      | Type              | Description                                                                                   |
| -------------------------- | ----------------- | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text              | —                                                                                             |
| `customerRefs`             | IdentifierList    | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList    | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList    | —                                                                                             |
| `payloadDescriptorSetRef`  | text              | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| **`timePeriod`** \*        | TimePeriod        | —                                                                                             |
| **`readings`** \*          | list of Reading   | —                                                                                             |
| `touBuckets`               | list of TouBucket | —                                                                                             |

**BillDetails**

| Field                      | Type              | Description                                                                                   |
| -------------------------- | ----------------- | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text              | —                                                                                             |
| `customerRefs`             | IdentifierList    | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList    | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList    | —                                                                                             |
| `payloadDescriptorSetRef`  | text              | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| **`timePeriod`** \*        | TimePeriod        | —                                                                                             |
| `readings`                 | list of Reading   | —                                                                                             |
| `touBuckets`               | list of TouBucket | —                                                                                             |
| `billNumber`               | text              | —                                                                                             |
| `billDate`                 | date              | —                                                                                             |
| `dueDate`                  | date              | —                                                                                             |
| `currency`                 | text              | ISO 4217 (INR, USD, ...).                                                                     |
| **`amountDue`** \*         | number            | —                                                                                             |
| `energyCharges`            | number            | Charges for active/reactive energy consumption.                                               |
| `fixedCharges`             | number            | Fixed charges/demand charges.                                                                 |
| `otherCharges`             | number            | Other taxes, duties, surcharges, or adjustments.                                              |
| `prepaidBalance`           | number            | Prepaid remaining balance/credit amount on the account/meter, if applicable.                  |
| `paymentStatus`            | text              | Status of the payment, e.g. PAID, UNPAID, PARTIAL.                                            |

**InstantaneousProfile**

| Field                      | Type            | Description                                                                                   |
| -------------------------- | --------------- | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text            | —                                                                                             |
| `customerRefs`             | IdentifierList  | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList  | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList  | —                                                                                             |
| `payloadDescriptorSetRef`  | text            | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| **`timestamp`** \*         | date-time       | —                                                                                             |
| **`readings`** \*          | list of Reading | —                                                                                             |

**AlarmProfile**

| Field                      | Type               | Description                                                                                   |
| -------------------------- | ------------------ | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text               | —                                                                                             |
| `customerRefs`             | IdentifierList     | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList     | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList     | —                                                                                             |
| `payloadDescriptorSetRef`  | text               | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| **`timestamp`** \*         | date-time          | —                                                                                             |
| **`alarms`** \*            | list of MeterAlarm | —                                                                                             |

**EventProfile**

| Field                      | Type               | Description                                                                                   |
| -------------------------- | ------------------ | --------------------------------------------------------------------------------------------- |
| **`profileType`** \*       | text               | —                                                                                             |
| `customerRefs`             | IdentifierList     | —                                                                                             |
| **`meterRefs`** \*         | IdentifierList     | —                                                                                             |
| `serviceDeliveryPointRefs` | IdentifierList     | —                                                                                             |
| `payloadDescriptorSetRef`  | text               | Reference ID matching a previously exchanged PayloadDescriptorProfile's payloadDescriptorSet. |
| **`timePeriod`** \*        | TimePeriod         | —                                                                                             |
| **`events`** \*            | list of MeterEvent | —                                                                                             |

**Identifier**

| Field           | Type                                                                                                                                     | Description |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| **`scheme`** \* | `METER_SERIAL` / `METER_BADGE` / `MRID` / `OBIS` / `SHORT_CODE` / `CONSUMER_NUMBER` / `SERVICE_DELIVERY_POINT` / `DID` / `ORG` / `OTHER` | —           |
| **`value`** \*  | text                                                                                                                                     | —           |
| `namespace`     | text                                                                                                                                     | —           |

**TimePeriod**

| Field             | Type      | Description |
| ----------------- | --------- | ----------- |
| **`start`** \*    | date-time | —           |
| **`duration`** \* | duration  | —           |

**ReadingDefinition**

| Field                   | Type                                                                                                | Description |
| ----------------------- | --------------------------------------------------------------------------------------------------- | ----------- |
| **`readingType`** \*    | text                                                                                                | —           |
| **`supportedModes`** \* | list of `READING` / `USAGE`                                                                         | —           |
| **`defaultMode`** \*    | `READING` / `USAGE`                                                                                 | —           |
| `name`                  | text                                                                                                | —           |
| `shortLabel`            | text                                                                                                | —           |
| `unit`                  | `kWh` / `kVAh` / `kvarh` / `kW` / `kvar` / `kVA` / `V` / `A` / `Hz` / `PF` / `NONE` / `INR` / `USD` | —           |
| `phase`                 | `NONE` / `R` / `Y` / `B` / `ABC`                                                                    | —           |
| `flowDirection`         | `IMPORT` / `EXPORT` / `NONE`                                                                        | —           |
| `accumulationBehaviour` | `CUMULATIVE` / `DELTA` / `INSTANTANEOUS` / `SUMMATION` / `INDICATING`                               | —           |
| `touZone`               | integer                                                                                             | —           |

**PayloadDescriptorSet**

| Field                       | Type                      | Description |
| --------------------------- | ------------------------- | ----------- |
| **`name`** \*               | text                      | —           |
| **`payloadDescriptors`** \* | list of PayloadDescriptor | —           |
| `compactSequences`          | list of CompactSequence   | —           |

**CompactSequence**

| Field                  | Type                 | Description |
| ---------------------- | -------------------- | ----------- |
| **`name`** \*          | text                 | —           |
| **`sequenceItems`** \* | list of SequenceItem | —           |

**SequenceItem**

| Field                | Type                                                                          | Description |
| -------------------- | ----------------------------------------------------------------------------- | ----------- |
| **`readingType`** \* | text                                                                          | —           |
| `attribute`          | `value` / `occurredAt` / `openingValue` / `closingValue` / `validationStatus` | —           |

**PayloadDescriptor**

| Field                | Type                                                                                                | Description                                                      |
| -------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| **`readingType`** \* | text                                                                                                | —                                                                |
| `obis`               | text                                                                                                | Optional canonical OBIS code when readingType uses a short code. |
| `name`               | text                                                                                                | —                                                                |
| `unit`               | `kWh` / `kVAh` / `kvarh` / `kW` / `kvar` / `kVA` / `V` / `A` / `Hz` / `PF` / `NONE` / `INR` / `USD` | —                                                                |
| `flowDirection`      | `IMPORT` / `EXPORT` / `NONE`                                                                        | —                                                                |
| `category`           | text                                                                                                | —                                                                |
| `reportedMode`       | `READING` / `USAGE`                                                                                 | —                                                                |
| `touZone`            | integer                                                                                             | —                                                                |
| `multiplier`         | number                                                                                              | Decimal scaling factor (e.g. 0.001 for milli, 1000 for kilo).    |
| `accuracy`           | number                                                                                              | Accuracy class or precision value, applied after the multiplier. |

**IntervalPeriod**

| Field             | Type      | Description |
| ----------------- | --------- | ----------- |
| **`start`** \*    | date-time | —           |
| **`duration`** \* | duration  | —           |

**Interval**

| Field            | Type                              | Description |
| ---------------- | --------------------------------- | ----------- |
| **`id`** \*      | integer                           | —           |
| `intervalPeriod` | IntervalPeriod                    | —           |
| `payloads`       | list of number / string / boolean | —           |
| `readings`       | list of Reading                   | —           |
| `overrides`      | list of Override                  | —           |

**Override**

| Field                    | Type                                                                                  | Description |
| ------------------------ | ------------------------------------------------------------------------------------- | ----------- |
| **`descriptorIndex`** \* | integer                                                                               | —           |
| `occurredAt`             | date-time                                                                             | —           |
| `zone`                   | integer                                                                               | —           |
| `validationStatus`       | `VALID` / `ESTIMATED` / `MANUAL` / `SUSPECT` / `REJECTED`                             | —           |
| `source`                 | `METER` / `HES` / `ESTIMATED` / `MANUAL` / `IMPORT` / `MDM_COMPUTED` / `CIS_COMPUTED` | —           |
| `changeMethod`           | text                                                                                  | —           |
| `failCode`               | text                                                                                  | —           |

**Reading**

| Field                | Type                                                                                  | Description                                                                                |
| -------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **`readingType`** \* | text                                                                                  | —                                                                                          |
| **`value`** \*       | number                                                                                | —                                                                                          |
| `openingValue`       | number                                                                                | MUST ONLY be provided when the associated payload descriptor specifies reportedMode=USAGE. |
| `closingValue`       | number                                                                                | MUST ONLY be provided when the associated payload descriptor specifies reportedMode=USAGE. |
| `integrationPeriod`  | duration                                                                              | Demand integration period, e.g. PT30M or PT15M.                                            |
| `timePeriod`         | TimePeriod                                                                            | —                                                                                          |
| `occurredAt`         | date-time                                                                             | —                                                                                          |
| `validationStatus`   | `VALID` / `ESTIMATED` / `MANUAL` / `SUSPECT` / `REJECTED`                             | —                                                                                          |
| `source`             | `METER` / `HES` / `ESTIMATED` / `MANUAL` / `IMPORT` / `MDM_COMPUTED` / `CIS_COMPUTED` | —                                                                                          |
| `changeMethod`       | text                                                                                  | —                                                                                          |
| `failCode`           | text                                                                                  | —                                                                                          |

**TouBucket**

| Field             | Type            | Description |
| ----------------- | --------------- | ----------- |
| **`zone`** \*     | integer         | —           |
| **`readings`** \* | list of Reading | —           |

**Customer**

| Field                    | Type                           | Description                                                            |
| ------------------------ | ------------------------------ | ---------------------------------------------------------------------- |
| **`id`** \*              | Identifier                     | —                                                                      |
| `name`                   | text                           | —                                                                      |
| `consumerCategory`       | text                           | Utility tariff category (e.g., LT2A, NDS, HT).                         |
| `sanctionedLoadKw`       | number                         | —                                                                      |
| `billingCycleDay`        | integer                        | —                                                                      |
| `paymentMode`            | `PREPAID` / `POSTPAID`         | Indicates if the connection is prepaid or postpaid.                    |
| `connectionType`         | `Single-phase` / `Three-phase` | Type of connection (Single-phase or Three-phase).                      |
| `contractMaxDemandKw`    | number                         | Maximum demand contracted with the utility for this connection, in kW. |
| `tariffCategoryCode`     | text                           | Billing/tariff category code assigned by the utility.                  |
| `sanctionedExportLoadKw` | number                         | Sanctioned/approved grid export limit in kW.                           |

**ServiceDeliveryPoint**

| Field       | Type            | Description |
| ----------- | --------------- | ----------- |
| **`id`** \* | Identifier      | —           |
| `address`   | Address         | —           |
| `geo`       | GeoJSONGeometry | —           |

**Meter**

| Field           | Type                                                                                                             | Description         |
| --------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------- |
| **`id`** \*     | Identifier                                                                                                       | —                   |
| `make`          | text                                                                                                             | Make of the meter.  |
| `model`         | text                                                                                                             | Model of the meter. |
| `meterType`     | `AMR` / `AMI` / `Electromechanical` / `Forward` / `Reverse` / `Bidirectional` / `Prepaid` / `NetMeter` / `Other` | —                   |
| `meterCategory` | `A` / `B` / `C` / `D1` / `D2` / `D3` / `D4`                                                                      | —                   |
| `serviceKind`   | `ELECTRICITY` / `GAS` / `WATER` / `HEAT`                                                                         | —                   |

**Association**

| Field                             | Type               | Description                                                                                          |
| --------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------- |
| **`serviceDeliveryPointRefs`** \* | IdentifierList     | —                                                                                                    |
| **`meterRefs`** \*                | IdentifierList     | —                                                                                                    |
| `parentResources`                 | list of Identifier | List of parent resources (such as feeders or DTs) for this association, replacing feederId and dtId. |
| `telemetryProvider`               | text               | Telemetry provider for this meter-service association.                                               |
| `commissioningDate`               | date-time          | Commissioning date of the meter association.                                                         |
| `generationCapacityKw`            | number             | Rated power generation capacity (e.g. solar PV inverter capacity) in kW.                             |
| `storageCapacityKw`               | number             | Rated energy storage capacity in kWh.                                                                |

**MeterEvent**

| Field              | Type                             | Description |
| ------------------ | -------------------------------- | ----------- |
| **`timestamp`** \* | date-time                        | —           |
| **`eventId`** \*   | integer                          | —           |
| `eventName`        | text                             | —           |
| `phase`            | `NONE` / `R` / `Y` / `B` / `ABC` | —           |
| `sequence`         | integer                          | —           |
| `magnitude`        | number                           | —           |
| `duration`         | duration                         | —           |

**MeterAlarm**

| Field              | Type                            | Description |
| ------------------ | ------------------------------- | ----------- |
| **`timestamp`** \* | date-time                       | —           |
| **`alarmId`** \*   | integer                         | —           |
| `alarmName`        | text                            | —           |
| **`status`** \*    | `ACTIVE` / `CLEARED`            | —           |
| `severity`         | `CRITICAL` / `WARNING` / `INFO` | —           |

**PayloadDescriptorProfile**

| Field                          | Type                         | Description                                              |
| ------------------------------ | ---------------------------- | -------------------------------------------------------- |
| **`profileType`** \*           | text                         | —                                                        |
| **`id`** \*                    | text                         | Unique identifier for this specific configuration state. |
| **`payloadDescriptorSets`** \* | list of PayloadDescriptorSet | —                                                        |

**CustomerDetails**

| Field  | Type | Description                                |
| ------ | ---- | ------------------------------------------ |
| `name` | text | Full name of the customer as per ID proof. |

## Versions

Every published version stays reachable at its canonical URL — clients pin a version explicitly. Click a version for its full field reference.

| Version                                 | Status      | Notes                                                                  | Files                                                                                                                                                                                                                                                                                                                                           |
| --------------------------------------- | ----------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [v0.6](/docs/schemas/meterdata/v0.6.md) | **Current** | Adds ALARM profile, anonymised topology, reading mode, split billing   | [schema.json](https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/schema.json) · [attributes.yaml](https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.6/attributes.yaml) · [examples](https://github.com/India-Energy-Stack/ies-accelerator/tree/main/schemas/MeterData/v0.6/examples/README.md) |
| [v0.5](/docs/schemas/meterdata/v0.5.md) | Previous    | Six profiles: CUSTOMER, INTERVAL, DAILY, BILLING, INSTANTANEOUS, EVENT | [schema.json](https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.5/schema.json) · [attributes.yaml](https://india-energy-stack.github.io/ies-accelerator/schemas/MeterData/v0.5/attributes.yaml) · [examples](https://github.com/India-Energy-Stack/ies-accelerator/tree/main/schemas/MeterData/v0.5/examples/README.md) |
