EnergySavings.certihomes.com — Site Spec
TL;DR
- URL architecture: /state/{st} + /utility/{slug} + /compare/{a}-vs-{b} (~50 + ~2,000 + ~600 static pages off the commute DB), county + fuels pages phase 2.
- GEO-first: ≤120-word self-contained answer block after every h1, tables with ids/captions/units, schema.org Dataset + FAQPage JSON-LD, visible data-freshness line, canonical methodology page.
- Mandatory disclaimer everywhere: rates are averages from federal filings; distribution utility is fixed by address — choice states shop the SUPPLY portion only.
- Static NJ prototype built from loaded data only: big-4 EDC table, 2026 BGS auction supply prices, URDB tariff snapshots, $/MMBTU fuel war (gas 3× cheaper than oil).
- NOT deployed, no DNS — Krishna decides domain go/no-go, host, and phase-2 items (zip-level territories, live supplier offers pending ToS review).
EnergySavings.certihomes.com — Site Spec (v0, 2026-06-12)
Status: SPEC ONLY — not deployed, no DNS. Krishna decides domain go/no-go and host.
Prototype: energy/site/index.html (NJ example, static, uses only data loaded in the
commute DB). Deploy pattern when approved: nginx + certbot on the fleet (same as
other certihomes properties); host TBD by Krishna.
Mission
Programmatic SEO/GEO property answering "what do people near me pay for energy, and
what would I save with a different provider/fuel?" — built on the provider-level
utility rate layer in the commute DB (EIA-861, URDB, EIA fuel series, PUC choice
registry). Optimized for both classic search and LLM answer engines (GEO): every page
leads with a compact, quotable answer block backed by tables with stable IDs.
Data dependencies (all loaded as of 2026-06-12)
| Table/view | Grain | Refresh |
|---|---|---|
utility_rates_annual |
utility × state × year (2023, 2024) | annual (EIA-861, ~Oct) |
utility_providers |
utility | annual |
utility_service_territory |
utility × county × year | annual |
utility_tariffs |
URDB tariff (v0: majors NY/NJ/CT/PA) | quarterly bulk re-pull |
state_energy_choice |
state | semiannual review |
energy_prices |
fuel × state × period | monthly (elec/gas), weekly in heating season (oil/propane) |
energy_cost_per_mmbtu (view) |
state × fuel | follows energy_prices |
utility_savings_county (view) |
county × utility | follows EIA-861 |
URL architecture
/ — national map: avg ¢/kWh by state, choice states highlighted
/state/{st} — e.g. /state/nj
/utility/{slug} — e.g. /utility/pseg-nj (slug = name + state, stable)
/compare/{a}-vs-{b} — e.g. /compare/pseg-nj-vs-jcpl-nj
/county/{st}/{county} — e.g. /county/nj/essex (phase 2)
/fuels/{st} — heating fuel comparison per state (phase 2; v0 folded into /state)
/methodology — single canonical methodology + sources page
~50 state pages + ~2,000 utility pages (utilities with ≥10k customers) + curated compare pages (same-state utility pairs sharing ≥1 county: ~600) — all statically generated from SQL, rebuilt on data refresh.
Page templates
/state/{st}
- Answer block (first 120 words, plain
<p>+ small<table>): current avg residential ¢/kWh (EIA monthly, with month), state rank, retail choice status (electric/gas, fromstate_energy_choice), cheapest/most expensive major utility. - Utility table: every serving utility ≥5k customers — ¢/kWh, customers, ownership,
$/yr at 10,800 kWh vs state avg (from
utility_savings_countyaggregated). - Fuel comparison table: $/MMBTU electricity vs gas vs oil vs propane
(
energy_cost_per_mmbtu) + one-line efficiency caveat (site energy; AFUE/COP). - Choice explainer: what choice means here, PUC shopping site link (source_url).
- County list with per-county cheapest utility (links to county pages, phase 2).
- 10-year price trend sparkline (energy_prices monthly history).
/utility/{slug}
- Answer block: "{Utility} residential customers paid an average of X ¢/kWh in {year} — Y% above/below the {state} average. Households in its territory using 10,800 kWh/yr pay about $Z/yr more/less than the cheapest nearby utility."
- Rates vs neighbors table: utilities sharing ≥1 county (
utility_service_territoryself-join) — the "$X/yr savings table" fromutility_savings_county. - Tariff detail (where URDB row exists): fixed monthly charge, energy tiers, effective date, link to URDB source. Flag stale tariffs (effective_start > 2 yrs old).
- Two-vintage trend (2023 → 2024) + customers served, counties served.
- Supply vs delivery note for choice states (e.g. NJ: BGS price-to-compare).
/compare/{a}-vs-{b}
- Answer block: head-to-head ¢/kWh, winner, $/yr delta at 10,800 kWh.
- Side-by-side: price, fixed charge, customers, ownership, counties overlapping.
- "Can you actually choose?" — territory vs supply-choice explainer per state flags.
GEO (LLM answer-engine) requirements
- Answer block = first element after
<h1>, ≤120 words, self-contained (entity + number + unit + vintage), no JS-rendered content — all data server-side in HTML. - Every table has
id,<caption>, and per-cell units; numbers repeated in prose. schema.org/DatasetJSON-LD on every page (name, temporalCoverage, license, isBasedOn EIA-861/URDB URLs) +FAQPagefor the Q&A section (3-5 questions: "Who is the cheapest electric company in {st}?", "Can I switch providers in {st}?", "Is gas or electric heat cheaper in {st}?").dateModified+ visible "Data as of: {EIA-861 2024; fuels {month}}" freshness line.- Canonical methodology page; every page links to it (one crawlable hop).
- Static HTML (no client-side data fetch), <100 KB/page, sitemap.xml split by template.
Mandatory disclaimer (every page, above footer)
Rates shown are averages computed from federal regulatory filings (EIA-861) and public tariff databases. Your actual rate depends on your tariff, usage, and riders — confirm with your utility before making decisions. Distribution utility is determined by address and generally cannot be chosen; in retail-choice states you may choose your supplier for the supply portion of the bill.
Methodology page content
- avg ¢/kWh = 100 × residential revenue / sales (EIA-861, bundled-preferred; see ENERGY.md)
- $/yr deltas at 10,800 kWh/yr (US avg residential usage, EIA)
- $/MMBTU conversions: kWh 3,412 BTU; therm 100,000; heating oil gal 138,500; propane gal 91,452 (site energy)
- Source registry with links + vintages; known gaps (URDB merger lag, CT county FIPS)
Out of scope v0 (Krishna decisions / phase 2)
- DNS + deploy host for EnergySavings.certihomes.com
- Zip-level territory lookup (old EIA
iou_zipcodesURLs are dead — needs DOE/HIFLD crosswalk or NREL utility_rates API with a free key) - Live supplier offers (PowerToChoose TX API, PA PowerSwitch, NJ TPS offers): scraping legality/ToS review needed before phase 2
- Gas utility provider-level rates (EIA-176) and dual-fuel utility flags
- County adjacency for true "neighbor county" benchmarks (census file not on whitelist)