Sub-issue of #76 (depends on interval ingest). Recommended first-wave — highest "real dollars" payoff. Related: #48 (supply/ESCO what-if).
What
Compute what the bill would have been under National Grid's optional time-of-use (TOU) rate plans vs. the current flat rate, using actual hourly usage.
- Define the available TOU rate schedules (peak / off-peak / super-off-peak windows + per-window $/kWh) as data.
- Replay stored interval usage against each schedule → hypothetical monthly/annual cost.
- Output a defensible "switch to plan X and save ~$Y/yr" (or "stay put") number, with the comparison charted.
- Load-shift advice: estimate savings from moving discretionary loads (EV charging, dishwasher, laundry) into off-peak windows.
Why interval data
A TOU bill depends entirely on when energy is used. Monthly totals physically cannot produce this — this feature is impossible without interval data.
Implementation notes
- TOU schedules as structured config (windows + rates + effective dates), not hardcoded in logic — NY TOU windows change.
- Replay/costing engine in
app/src/lib/series.ts (or a sibling), pure + tested against a hand-worked example day.
- Keep this clearly separate from billed-cost logic — it's a hypothetical; do not wire it into
/api/verify or the real bill numbers (AGENTS.md rule 1).
- Charts via
chartSpec.ts.
Open question
- Which TOU plans does NG Upstate-NY actually offer residential, and their current windows/rates? (research task within this issue)
Acceptance criteria
Sub-issue of #76 (depends on interval ingest). Recommended first-wave — highest "real dollars" payoff. Related: #48 (supply/ESCO what-if).
What
Compute what the bill would have been under National Grid's optional time-of-use (TOU) rate plans vs. the current flat rate, using actual hourly usage.
Why interval data
A TOU bill depends entirely on when energy is used. Monthly totals physically cannot produce this — this feature is impossible without interval data.
Implementation notes
app/src/lib/series.ts(or a sibling), pure + tested against a hand-worked example day./api/verifyor the real bill numbers (AGENTS.mdrule 1).chartSpec.ts.Open question
Acceptance criteria
/api/verify.