← gpu-pilot · json · source: energy/SITE-SPEC.md

EnergySavings.certihomes.com — Site Spec

Programmatic SEO/GEO architecture for the utility-rate layer (spec only — domain/DNS is Krishna's call); NJ prototype at energy/site/index.html. · updated 2026-06-12 00:31

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}

  1. Answer block (first 120 words, plain <p> + small <table>): current avg residential ¢/kWh (EIA monthly, with month), state rank, retail choice status (electric/gas, from state_energy_choice), cheapest/most expensive major utility.
  2. Utility table: every serving utility ≥5k customers — ¢/kWh, customers, ownership, $/yr at 10,800 kWh vs state avg (from utility_savings_county aggregated).
  3. Fuel comparison table: $/MMBTU electricity vs gas vs oil vs propane (energy_cost_per_mmbtu) + one-line efficiency caveat (site energy; AFUE/COP).
  4. Choice explainer: what choice means here, PUC shopping site link (source_url).
  5. County list with per-county cheapest utility (links to county pages, phase 2).
  6. 10-year price trend sparkline (energy_prices monthly history).

/utility/{slug}

  1. 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."
  2. Rates vs neighbors table: utilities sharing ≥1 county (utility_service_territory self-join) — the "$X/yr savings table" from utility_savings_county.
  3. 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).
  4. Two-vintage trend (2023 → 2024) + customers served, counties served.
  5. Supply vs delivery note for choice states (e.g. NJ: BGS price-to-compare).

/compare/{a}-vs-{b}

  1. Answer block: head-to-head ¢/kWh, winner, $/yr delta at 10,800 kWh.
  2. Side-by-side: price, fixed charge, customers, ownership, counties overlapping.
  3. "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/Dataset JSON-LD on every page (name, temporalCoverage, license, isBasedOn EIA-861/URDB URLs) + FAQPage for 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.

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_zipcodes URLs 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)

Comments