# Battery siting: observed-location validation

Generated 2026-10-01T15:17:36.831Z; method `2026-10-battery-public-v16`; environmental snapshot `2827bcdb6114`.

This is a descriptive diagnostic of the current screening model, not an independently trained predictor, causal test, project valuation or historical backtest. No weights were fitted to this dataset. Existing and proposed sites never receive points merely for appearing in EIA.

## Reproduce

`node siting/scripts/validate-battery-siting.mjs`

The script only reads local project files. It loads the production evaluator, the same environmental/resource bundles as the app, and historical hourly prices as needed. No public API requests are allowed. Optional `--baseline=path/to/model.js` compares an archived evaluator on identical inputs. This run does not include an archived evaluator. Raw rows, matching diagnostics and all consumed file hashes are in [battery-validation.json](../data/validation/battery-current-validation.json).

## Fixed scenario and cohorts

Every location is evaluated as a hypothetical **100 MW, four-hour standalone battery, target 2031, minimum 115 kV, 25 km study radius**, using the app's default battery economics. This controls the scenario; it does not reproduce each actual installation's capacity, contracts, hybrid configuration or operating date. EIA source vintage: **2026-07**. Queue report: **2026-09-30**.

EIA generator records are aggregated to plants upstream. Plants and queue-only locations are then grouped by the nearest qualifying substation within 5 km, otherwise a 0.05-degree cell. A group contributes one deterministic anchor: most mature status, then largest reported MW, then ID. Mixed-status membership is retained in JSON. This is approximate spatial deduplication, not verified electrical topology. Queue coordinates often identify the POI rather than the actual parcel.

The observed site's own conservatively matched queue record is excluded from both evaluators. EIA links require a unique name-token agreement of at least 0.8 and separation no greater than 10 km. Unmatched and ambiguous links remain explicit; they can leave residual self-influence. Queue-only anchors exclude their own record. Other developers at the same POI remain competitors.

## Primary cohort scope

A location needs at least 20 MW of battery capacity in its relevant EIA maturity subtotal. For example, a 1 MW operating unit plus a 200 MW planned expansion enters the planned cohort. Entirely out-of-service plants are excluded. Queue-only observations require standalone battery technology and at least 20 MW: hybrids have unknown battery-component MW and are excluded from that primary cohort. All mapped EIA batteries and active battery/hybrid queue locations, including smaller and out-of-service sites, still exclude nearby controls. 148 active/planned EIA sites are below the size threshold; 6 are entirely out of service.

If more than 600 controls qualify, the script takes a deterministic systematic sample from latitude/longitude order before evaluating scores.

## Prespecified matching

Alternative locations are mapped California substations at 115 kV or above, with no mapped EIA battery or active battery/hybrid queue location within 5 km. Absence in these datasets does not establish an undeveloped or available parcel. Controls are deduplicated spatially. The comparison requires the same voltage band (115-199, 200-344, or 345+ kV), geographic separation at most 200 km, nearest-substation distance difference at most 2 km, nearest-line distance difference at most 3 km, non-queue evidence-coverage difference at most five percentage points (normalized to 100%, so matching does not select on whether a POI queue association is known), and grid-score difference at most eight points.

Matching uses these characteristics, never overall, market or queue score. One control is assigned per observed group without replacement, with the most constrained groups matched first. Unmatched groups are retained in the output rather than relaxing thresholds to improve apparent performance. No statistical confidence intervals or independent hold-out claims are made: there is no fitted model, substations may share constraints, and broader spatial correlation remains.

## Results

The pooled median observed-minus-alternative difference is **-0.6 points**, and top-quintile enrichment is **0.43**. These results do not demonstrate predictive separation of observed development locations from matched alternatives.

| Cohort | Observed groups | Matched pairs | Observed median | Alternative median | Median paired difference | Top-quintile enrichment |
|---|---:|---:|---:|---:|---:|---:|
| operating | 99 | 27 | 60.8 | 61.6 | -0.7 | 0.67 |
| construction | 20 | 7 | 62.2 | 64.1 | -1.9 | 0 |
| planned | 23 | 9 | 61.8 | 61.9 | -0.5 | 0.5 |
| queue-only | 31 | 20 | 62.85 | 62.8 | -0.5 | 0.5 |

Top-quintile enrichment is the fraction of observed groups at or above their matched controls' 80th-percentile threshold divided by the corresponding control fraction; ties are retained. It is a descriptive concentration ratio, not prediction accuracy. Small cohorts should not be interpreted as reliable estimates.

Detailed component differences, county diagnostics, exclusions and every group's score are retained in JSON.

## Limits and next validation

- Historical hourly prices are from 2025; inventory and queue evidence are from 2026. This cannot establish that pre-2025 siting decisions were predicted using information available beforehand.
- Operating batteries show historical development feasibility; they do not establish today's best remaining opportunity. Proposed projects are expressions of interest, not successful outcomes.
- Solar-colocated and other hybrid observations are flagged, but this benchmark still evaluates a standalone battery. Shared infrastructure, export limits and contracted operation remain unmodeled.
- Candidates at substations and projects that cannot satisfy matching calipers form a selected subset. The unmatched group count and all unpaired distributions must be reviewed alongside the matched results.
- The inventory is observational, with no reliable label for sites that developers investigated and rejected. Controls are alternatives, not known failures.
- A future predictive validation should freeze dated inputs, select outcomes occurring afterward, and reserve whole POIs or regions before tuning any weights. This first package provides an auditable baseline for that work.
