Skip to main content
This page documents the semantic rate ID schema used in WattShift’s normalized rate data. If you are onboarding a home through the public API, the usual flow is still simple: choose a plan from /v1/utility/get and pass that returned ratePlans[].id as ratePlanId. This page is the deeper reference for understanding the semantic structure behind a normalized rate ID. In /v1/utility/get:
  • Use ratePlans[].id as ratePlanId in other API requests.
  • Use ratePlans[].rateID when you want the semantic normalized tariff identifier described on this page.

Rate ID Schema by Sector

Residential plans use this 13-segment format:
Commercial (C), industrial (I), and agricultural (A) plans use this extended format:
Example:

Residential Segment Breakdown

STRUCTURE_FLAGS Character Map

The STRUCTURE_FLAGS segment is six characters long:

EQUIPMENT_FLAGS Character Map

For residential plans, the EQUIPMENT_FLAGS segment is a six-character applicability block:

Example Breakdown

For this example:
  • USA-CA-14328-14328-R: U.S. residential plan for utility 14328
  • TNNNNN: tiered/TOU-style structure, no demand charge, no export program, no medical baseline, no low-income flag, no demand-response flag
  • N????E: no rooftop-solar/export requirement, unknown equipment flags, dwelling type E
  • B4: climate or baseline region code
  • 01012025: effective start date of January 1, 2025
  • ????: unknown vintage year
  • ????????: unknown enrollment close date
  • ????????: unknown effective end date
  • BES: sanitized name code

Notes

  • Date segments use UTC formatting in MMDDYYYY.
  • Unknown date segments are intentionally serialized as ????????.
  • Related vintages of the same tariff often differ only in the date segments.

Non-Residential Segment Breakdown

For commercial (C), industrial (I), and agricultural (A) plans, the residential EQUIPMENT_FLAGS block is replaced by dedicated eligibility segments that capture the main splitters used in non-residential tariffs. In the non-residential shape:
  • R keeps the residential format shown above.
  • C, I, and A use the extended non-residential format.
  • NAME_CODE remains tariff-family oriented and should not carry phase, voltage, demand, metering, or usage variants that already have dedicated segments.

Non-Residential Enums

PHASE

VOLTAGE_CLASS

The RateID uses normalized voltage classes for stability. Exact legal voltage thresholds should remain available in the underlying tariff object.

DEMAND_UNIT

METERING

The METERING field is meant to capture eligibility conditions such as demand-metered service, energy-only or non-demand service, single-meter service, or interval or IDR requirements.

Threshold Encoding

DEMAND_MIN, DEMAND_MAX, and USAGE_MAX use this five-character format:
USAGE_MIN uses this six-character format so the usage pair shares one basis code:

Threshold Fields

  • exp: power-of-10 exponent
  • strictness: I for inclusive and S for strict
  • ddd: three-digit mantissa

Threshold Interpretation

  • In a MIN field:
    • I means >=
    • S means >
  • In a MAX field:
    • I means <=
    • S means <
Examples:
  • 0S020 in DEMAND_MIN means > 20
  • 1I100 in DEMAND_MIN means >= 1,000
  • 2I250 in DEMAND_MAX means <= 25,000
Use the largest power of 10 that preserves an integer three-digit mantissa. The middle character is I or S depending on whether the tariff rule is inclusive or strict:
  • 20 -> 0I020 or 0S020
  • 1,000 -> 1I100 or 1S100
  • 12,500 -> 2I125 or 2S125
  • 250,000 -> 3I250 or 3S250
Unknown threshold fields use fixed-width unknown values:
  • DEMAND_MIN, DEMAND_MAX, USAGE_MAX -> ?????
  • USAGE_MIN -> ??????

Usage Basis Codes

Examples:
  • M2S125 in USAGE_MIN means monthly > 12,500 kWh
  • R2I150 in USAGE_MIN means rolling-12-month >= 15,000 kWh
The RateID should preserve the normalized usage basis, while the exact legal timing rule remains in the tariff object.

Non-Residential Examples

Example 1:
Meaning:
  • commercial tariff
  • single-phase service
  • primary voltage class
  • demand eligibility from >= 20 kW to < 1,000 kW
  • demand-metered service
  • monthly usage from > 12,500 kWh to <= 25,000 kWh
Example 2:
Meaning:
  • industrial tariff
  • single-phase or three-phase service
  • secondary voltage class
  • demand eligibility of >= 250,000 kVA
  • no encoded maximum demand threshold
  • energy-only or non-demand metering requirement
  • rolling-12-month usage threshold of > 15,000 kWh
This non-residential structure is part of the documented semantic RateID schema for non-residential sectors. Residential plans continue to use the residential format documented earlier on this page.