feat: add daily gas prices (AAA), electricity rates, natgas + dashboard deltas

- Replace EIA weekly gasoline with AAA daily scraper (gasprices.aaa.com)
  - urllib-based fetch (Cloudflare blocks httpx), cached 30min
  - 5 grades: regular, mid-grade, premium, diesel, E85
  - Day-over-day, week, month, year-over-year deltas
  - 51 state-level regular prices
- Add EIA electricity retail rates (residential/commercial/industrial)
- Add EIA residential natural gas prices (monthly)
- Dashboard: all energy sections show change indicators (DoD/WoW/MoM)
- Dashboard: vector panel moved to right:360px (was covering zoom controls)
- Dashboard: fix pre-existing num() → fmtNum() bug in BTC technicals
- 3 new tools: intel_gas_prices, intel_residential_natgas, intel_electricity_rates
- CLI: gas-prices, natgas, electricity commands
- Collector: 3 new source entries
- Tests: 8 new tests (AAA parse, electricity, natgas, edge cases)
This commit is contained in:
Marc Shade
2026-03-08 21:05:24 -04:00
parent 4b08dda62a
commit 26571cfac2
7 changed files with 1017 additions and 181 deletions
+11 -2
View File
@@ -46,8 +46,11 @@ SOURCES = [
("etf_flows", "sources.markets", "fetch_etf_flows", {}),
("commodity_quotes", "sources.markets", "fetch_commodity_quotes", {}),
("btc_technicals", "sources.markets", "fetch_btc_technicals", {}),
# Economic (3)
# Economic (6)
("energy_prices", "sources.economic", "fetch_energy_prices", {}),
("gas_prices", "sources.economic", "fetch_gas_prices", {}),
("residential_natgas", "sources.economic", "fetch_residential_natgas_prices", {}),
("electricity_rates", "sources.economic", "fetch_electricity_rates", {}),
("central_bank_rates", "sources.central_banks", "fetch_central_bank_rates", {}),
# Natural Disasters (2)
("earthquakes", "sources.seismology", "fetch_earthquakes", {}),
@@ -115,7 +118,13 @@ DOMAIN_GROUPS = {
"commodity_quotes",
"btc_technicals",
],
"economic": ["energy_prices", "central_bank_rates"],
"economic": [
"energy_prices",
"gas_prices",
"residential_natgas",
"electricity_rates",
"central_bank_rates",
],
"natural": ["earthquakes", "wildfires"],
"conflict": ["acled_events", "ucdp_events", "displacement"],
"military": ["military_flights"],