# Filter 11: Solar GHI **Status:** Not started. **Data key:** `meanDailyGlobalHorizontalRadiationKwhM2Day`. Calculation: [filter-calculations.md](../filter-calculations.md) §11. ## Findings **9. The GHI formula assumes hourly, 365-day input.** It is correct for the current 60-minute, `leap_day=false` requests. If the request interval changes, the energy sum needs an interval-hours multiplier; leap-day handling would also need to change the divisor. **19. The data-sources doc recommends a GHI raster the pipeline does not use.** Source 4 in `scripts/county_data_sources.md` says county means should come from a gridded annual GHI raster passed with `--solar-ghi-raster`. The app values come from NSRDB polygon archive summaries, with representative points as fallback, applied by `apply_locally_extreme_metric_to_climate_data.py`. **20. The base build labels any solar CSV as representative-point.** In `build_county_climate_data.py`, the `--solar-ghi-csv` help text calls it a representative-point fallback, and the per-row `source` tag is always `solar-ghi-representative-point`, but the documented build command passes `data/nrel/county_polygon_ghi_summary.csv`. The apply step later replaces both the value and the tag, so only the base build's output is mislabeled. Cross-filter findings that affect this filter, in [00-cross-filter.md](00-cross-filter.md): 11 (inconsistent aggregation), 16 (the app's NSRDB source link no longer resolves), and 26 (finalized by the extreme-temperature apply step). ## Decisions None yet. ## Tasks Not started; follow the per-filter review checklist in [pipeline-plan.md](../pipeline-plan.md) §5.