Methodology and data sources

Everything on Bywatts comes from a named source. This page says where each dataset comes from, how often it refreshes, and exactly what our labels mean.

Where the data comes from

DatasetSourceRefresh
Power plantsHIFLD (US government, public domain)On demand, re-run against the source
SubstationsHIFLD (US government, public domain)On demand, re-run against the source
Transmission linesHIFLD (US government, public domain)On demand, re-run against the source
Electricity statisticsEIA (US Energy Information Administration)On demand, re-run against the source
Data centersPeeringDBOn demand, re-run against the source
Solar companiesDirect Energy Partners industry directoryOn demand, re-run against the source
Solar installersNational installer mastersheet, geocoded and deduplicatedOn demand, re-run against the source

What our labels mean

Verified

The listing's owner proved they control the company's own web domain by signing in with an email at that domain. Verification is free, it is earned, and it cannot be bought. A paid plan never grants it.

Owner-provided

Information a verified owner supplied about their own listing, such as a description, phone number, or service areas. We do not independently check it. Owner edits never overwrite the underlying source record, so the original data stays intact.

Sponsored and Featured

A paid placement on a directory page. It is advertising. It is not an endorsement, it is not a quality ranking, and it says nothing about whether the listing is verified.

What we do not do

Tax-credit eligibility layers

The map's tax-credit layers show where federal eligibility categories for clean-energy tax credits under the Inflation Reduction Act apply: two "energy community" categories, brownfield sites, low-income communities, tribal land, and tracts eligible for the section 30C credit. Each layer comes from a named federal source and is rebuilt by re-running our pipeline against that source, never estimated or inferred by us.

This is informational only, not legal or tax advice. Use it as a starting point for research, not as a determination of eligibility for any credit.

LayerQualifying ruleSource
Energy community, fossil fuel employmentA metropolitan or non-metropolitan statistical area, or a non-MSA county, that meets the fossil-fuel employment threshold and has an unemployment rate at or above the national average.IRS notice appendices; DOE National Energy Technology Laboratory (NETL)
Energy community, coal closureA census tract with a coal mine closed after 1999 or a coal-fired generating unit retired after 2009, or a tract directly adjoining one.IRS notice appendices; U.S. Department of the Treasury
Brownfield siteWithin 250 meters of a site designated as a brownfield under CERCLA section 101(39). See "Brownfield results are proximity, not containment" below.U.S. EPA Assessment, Cleanup and Redevelopment Exchange System (ACRES)
Low-income communityA census tract qualified under the New Markets Tax Credit program, eligible for the section 48(e)/48E(h) Category 1 bonus from September 2024 through 2028.U.S. Department of Energy; CDFI Fund
Tribal landA federally recognized reservation, off-reservation trust land, Hawaiian home land, or Alaska Native village statistical area, eligible for the Category 2 bonus.U.S. Census Bureau TIGER/Line
30C eligible tractA census tract eligible for the section 30C alternative fuel refueling property credit as a low-income tract (through 2029), a non-urban tract (through 2030), or both.Argonne National Laboratory (Alternative Fuels Data Center); U.S. Department of Energy

Notice periods

The IRS updates the energy-community appendices roughly once a year. The map and the API let you choose which year's notice to view: Notice 2024-30, Notice 2025-31, or Notice 2026-39 (the current default). Only the two energy-community layers, fossil fuel employment and coal closure, change between notice periods. Brownfield sites, low-income communities, tribal land, and 30C eligible tracts are single current datasets and do not vary by period.

Data attribution

Most sources above are U.S. government public-domain data with no attribution requirement. The energy-community layers are the exception: DOE NETL's underlying data is published under a Creative Commons Attribution license. Required credit: "U.S. Department of Energy, National Energy Technology Laboratory, Interagency Working Group on Coal and Power Plant Communities and Economic Revitalization, and the U.S. Department of the Treasury."

Boundaries are cartographic, not survey-grade

These layers are drawn from the Census Bureau's 1:500,000 generalized boundary files, the same simplified geometry used everywhere else on this map. That is precise enough to show which tract, county, or metro area a point falls in, but it is not survey-grade and it is not a substitute for the IRS's and DOE's own eligibility-mapping tools. DOE's own tool for these same energy-community categories carries the same caveat: its data "should not be relied upon by taxpayers to determine eligibility." Treat a result here as a starting point, and verify anything near a boundary against the IRS and DOE mapping tools before relying on it.

Brownfield results are proximity, not containment

EPA ACRES publishes brownfield sites as a single center point per site, not a parcel boundary. A brownfield match means the location you checked is within 250 meters of a designated site's center point. It does not mean the specific parcel you clicked is itself the designated brownfield.

Connecticut coverage

Connecticut replaced its counties with planning regions in the 2022 Census vintage and renumbered its census tracts, but the IRS and Treasury still publish these eligibility lists using the older, county-based tract codes. We resolve those legacy codes against 2020 census tract boundaries so Connecticut stays covered by these layers instead of silently dropping out.

Tax-credit eligibility API

Every tax-credit layer above is also available as a public API. GET /api/check answers whether one point is eligible under each of the six categories for a given notice period. No account or API key is required.

ParameterRequiredValue
latRequiredLatitude in decimal degrees
lngRequiredLongitude in decimal degrees
periodOptional2024, 2025, or 2026 (default 2026). Only changes the two energy-community categories.

Category ids

Category idLabel
ec_ffeEnergy community - fossil fuel employment
ec_coalEnergy community - coal closure
brownfieldsEnergy community - brownfield site
low_incomeLow-income community (48(e)/48E(h) Category 1)
tribal_landsTribal land (48(e)/48E(h) Category 2)
tracts_30c30C eligible tract

Example

Request:

GET /api/check?lat=36.72893&lng=-93.85476&period=2026

Response:

{
  "lat": 36.72893,
  "lng": -93.85476,
  "period": "2026",
  "eligible": true,
  "categories": [
    { "id": "ec_ffe", "label": "Energy community - fossil fuel employment", "eligible": true,
      "detail": { "geoid": "29009", "state": "Missouri", "county": "Barry County" } },
    { "id": "ec_coal", "label": "Energy community - coal closure", "eligible": false },
    { "id": "brownfields", "label": "Energy community - brownfield site", "eligible": false },
    { "id": "low_income", "label": "Low-income community (48(e)/48E(h) Category 1)", "eligible": true,
      "detail": { "geoid": "29009960500", "state": "Missouri", "county": "Barry County" } },
    { "id": "tribal_lands", "label": "Tribal land (48(e)/48E(h) Category 2)", "eligible": false },
    { "id": "tracts_30c", "label": "30C eligible tract", "eligible": true,
      "detail": { "geoid": "29009960500", "state": "Missouri", "county": "Barry County" } }
  ],
  "disclaimer": "Informational only, not legal or tax advice. Boundaries are cartographic; verify parcel-edge cases against the IRS and DOE mapping tools."
}

This example tract, 29009960500 in Barry County, Missouri, is eligible as a 30C tract and a low-income community; Barry County also qualifies as a fossil-fuel-employment energy community for notice period 2026.

Limits and access

60 requests per minute and 1,000 per day, tracked per IP address; a request over either limit gets a 429 response. No API key is required, and GET requests are open to cross-origin access (CORS).

This endpoint is exempt from the bot protection that guards the rest of the site, so ordinary command-line and server-to-server clients work without a browser. The per-IP limits above are what keeps it fair, and they are enforced, so a client that ignores them starts receiving 429 rather than being quietly throttled.

Disclaimer

Every response carries the same disclaimer shown above: informational only, not legal or tax advice, with cartographic boundaries that are not a substitute for the IRS and DOE mapping tools. Verify parcel-edge cases directly before relying on a result.

Corrections

If something here is wrong, tell us and we will fix it. Owners can claim their listing to correct it directly, or anyone can use support.