Skip to content

Fix RI heating gas tariff: remove double-counted seasonal distribution charge #44

@alxsmith

Description

@alxsmith

What

The rie_heating.json URDB-format gas tariff for Rhode Island Energy's Residential Heating rate (Rate 12) contains volumetric rates that are ~28–32% too high. The tariff fetch pipeline summed both the heating-season distribution charge ($0.5933/therm, Nov–Apr) and the non-heating-season distribution charge ($0.5317/therm, May–Oct) into every rate period, when in reality only one applies in any given month.

The rie_nonheating.json (Rate 10) is unaffected — its CSV has only a single (non-seasonal) distribution charge row.

Why

This caused all modeled gas bills for heating-rate buildings to be inflated by roughly $0.53–$0.59/therm — approximately $480–$530/year for a gas-heated home consuming ~900 therms/year. The error was discovered during RI rate design analysis (batch ri_20250318c_r1-16). A manual one-time fix was applied to rate_design/hp_rates/ri/config/tariffs/gas/rie_heating.json in the rate-design-platform repo, but the root cause lives in the tariff fetch pipeline: the script that converts Rate Acuity CSVs into URDB JSON apparently sums all rows labelled distribution charge without respecting the season column qualifier.

How

  1. In fetch_gas_tariffs_rateacuity.py (or whatever helper builds the URDB period rates from the CSV rows), identify where distribution charge rows are aggregated into volumetric rate periods.
  2. Add logic to detect rows with a non-empty season column (e.g. 11/01 - 04/30 vs 05/01 - 10/31) and map them to separate URDB rate periods rather than summing across both seasonal variants.
  3. The corrected rie_heating.json should have 4 periods matching these month groupings and rates (derived from the rie_heating.csv source):
Period Months Correct rate
0 Jan–Mar (heating, summer adj) $0.063686/kWh
1 Apr (heating, spring adj) $0.065945/kWh
2 May–Oct (non-heating) $0.063843/kWh
3 Nov–Dec (heating, winter gcr/adj) $0.058560/kWh
  1. Verify the regenerated JSON matches the manually corrected file in rate-design-platform.
  2. Add a regression check: after fetching, assert that no URDB rate period incorporates more than one seasonal distribution charge row.

Deliverables

  • PR to tariff_fetch fixing the CSV → URDB JSON aggregation to respect seasonal distribution charge row qualifiers
  • Regenerated rie_heating.json that matches the manually corrected version
  • Test or assertion guarding against this class of double-counting in future fetches

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions