I wanted to open a discussion space on GitHub - GladysAssistant/energy-contracts: Gladys Assistant Energy Contracts as JSON · GitHub, but I can only open issues.
Context
I would like to add Hydro-Québec’s residential rates (Québec’s public electricity provider, Canada) to this repo, but the pricing structure does not fit the current model.
How the Current Model Works
Looking at EDF (contracts/edf/base) and other French providers in the repo, the price is always organized around a subscribed power (kVA):
- a key per power tier (3, 6, 9, 12, 15 kVA…)
- for each tier: a fixed subscription (annualized to monthly) + a constant variable price per kWh
- existing variants:
base,peak-off-peak(peak/off-peak hours),tempo(blue/white/red day)
Why Hydro-Québec’s Tariff D Does Not Fit This Model
Tariff D (basic residential) has no notion of subscribed power. Its structure is:
- a fixed daily network access fee, independent of power
- a progressive price per kWh based on actual daily consumption (not a choice of tier in advance):
- up to 40 kWh/day: a first price
- beyond 40 kWh/day: a second, higher price
Rate grid in effect since April 1, 2026 (official source: grille-tarifaire.pdf):
| Component | Value |
|---|---|
| Network Access Fee | 0.46154 $ CAD / day |
| Energy, ≤ 40 kWh/day | 0.07065 $ CAD / kWh |
| Energy, > 40 kWh/day | 0.11142 $ CAD / kWh |
There is also a dynamic pricing option, Flex D, with a reduced off-peak price in winter and a surcharged price during critical peak events announced 24 hours in advance (figures to be precisely verified on the official grid before implementation):
| Component | Value (to confirm) |
|---|---|
| Network Access Fee | same as Tariff D |
| Off-peak, winter period (Dec 1–March 31) | ≈ 0.04886 $ CAD / kWh |
| Critical Peak (occasional events) | ≈ 0.50 $ CAD / kWh |
| Rest of the year | Standard Tariff D |
Other structural differences:
- currency CAD, not yet used in the repo (only
eurseems to be used in practice) - no notion of subscribed power to be chosen by the customer
What I Propose to Discuss
- How to encode a tariff without subscribed power? A neutral key (
"none"/"standard") instead of the kVA tier, or an evolution of the schema to make this dimension optional? - How to encode a tiered kWh rate (price that changes based on the volume consumed in the period, not based on the time or day)? Nothing in the current repo seems to cover this case — the existing variants (
base,peak-off-peak,tempo) are all independent of volume. - Would a new type of folder be relevant, for example,
tiered-consumption, in addition tobase/peak-off-peak/tempo? - Confirmation that the
cadcurrency is supported/accepted by theprocess.jspipeline / the Gladys frontend that consumes this JSON.
I would appreciate feedback before investing time (well, tokens
) in the CSV + convert.js. Once the format is validated, I can propose a PR with:
contracts/hydro-quebec/base(Tariff D)contracts/hydro-quebec/flex(Flex D)