{
  "project": "gpu-pilot",
  "doc": "energy/api/README.md",
  "title": "Utilities Estimator \u2014 API",
  "oneline": "FastAPI service: address in \u2192 monthly electric/gas/oil/propane out, with per-input provenance and provider alternatives.",
  "tldr": [
    "POST /v1/utilities/estimate \u2014 address | lat/lon | zip | attribute overrides \u2192 {inputs_used, per-input sources, usage breakdown, monthly/annual by fuel, provider (+PTC), alternatives, confidence, disclaimers}. GET /v1/utilities/providers?county_fips|zip. GET /healthz.",
    "Resolution ladder: exact normalized address \u2192 zip+street \u2192 fuzzy prefix \u2192 nearest parcel \u2264150 m \u2192 attribute/zip fallback \u2192 state averages; user overrides always win and are labeled user_override.",
    "Demo transcript (port 8096, then stopped): Lyndhurst merged home $274.54/mo high-confidence; Montclair 1907 oil $490.07; MOD-IV-only Manalapan $278.94 medium; propane override $393.13. Not deployed \u2014 intended target api.commutingcost.com (Krishna's call).",
    "25 pytest tests green against PostgreSQL (never SQLite), ruff clean; pure-python model (stdlib math only) + asyncpg; config via COMMUTE_DSN env.",
    "Open for Krishna: deploy host/port, CJMLS RESO Heating field in reso_etl, GSMLS/NJMLS for full-Jersey coverage, usaddress upgrade if fuzzy match must beat 68.5%, Census key for ACS county fuel priors."
  ],
  "updated": "2026-06-12 04:34",
  "sections": [
    {
      "level": 1,
      "title": "Home Utilities Cost Estimator API"
    },
    {
      "level": 2,
      "title": "Run (demo)"
    },
    {
      "level": 1,
      "title": "config: COMMUTE_DSN (default postgresql://krish@172.26.1.152:5433/commute)"
    },
    {
      "level": 2,
      "title": "Endpoints"
    },
    {
      "level": 3,
      "title": "POST /v1/utilities/estimate"
    },
    {
      "level": 3,
      "title": "GET /v1/utilities/providers?county_fips=34013 | ?zip=07042"
    },
    {
      "level": 3,
      "title": "GET /healthz"
    },
    {
      "level": 2,
      "title": "Demo transcript (2026-06-12, port 8096)"
    },
    {
      "level": 2,
      "title": "Rebuild / refresh"
    },
    {
      "level": 2,
      "title": "Open items (Krishna)"
    }
  ],
  "stats": {
    "lines": 123,
    "words": 734
  },
  "html": "https://board.certihomes.com/project-docs/gpu-pilot/energy-api-README.html",
  "out_name": "energy-api-README.md",
  "comments_api": "https://board.certihomes.com/api/doc-comments?project=gpu-pilot&doc=energy/api/README.md"
}