Files
Climate-Mood-Analysis/docs/reviews/04-extreme-temperature-days.md
T
KnouandClaude Opus 5 e855d583e3 Document restructuring and the beginnings of Filter 2 changes
Split the pipeline documentation by purpose so each fact has one home:
- docs/pipeline-plan.md keeps the plan, checklist, tracker, and guardrails
- docs/decisions.md holds open decisions and the dated decision log
- docs/reviews/ holds findings and tasks: one file per filter, plus
  00-cross-filter.md for findings that span filters
- scripts/common/README.md holds the shared-helper rules (formerly Phase 2)
- filter-calculations.md now describes calculations only

Filed findings 12-22 from a consistency audit of the app, docs, and scripts.

Filter 1 (Köppen-Geiger): use "Köppen" with the umlaut in all prose, labels,
docstrings, help text, and checker messages (finding 21), and correct the
base build's "majority" docstring (finding 22).

Filter 2 (annual avg temperature): record the adopted definition in
filter-calculations.md §2: equally weighted 1991-2020 monthly normals, per
WMO-No. 1203 and NOAA's 2020 methodology; area-weighted county means; blank
unless all 12 months exist. Code changes for this filter are still pending.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 16:13:11 -04:00

1.5 KiB

Filter 4: Extreme temperature days

Status: Not started.

Data key: absoluteExtremeDays. Calculation: filter-calculations.md §4.

Findings

5. Extreme-day counts are not completeness-normalized. A partially observed year contributes a raw count and receives the same weight as a complete year. Consider requiring a minimum number of valid days or annualizing partial counts explicitly.

6. The absolute-extreme metric depends on unrelated percentile thresholds. build_annual_counts skips a county when its retired local p95/p05 thresholds are missing, even though the active 95 °F / 0 °F calculation does not require those percentiles. The absolute calculation should be separated from that prerequisite.

18. The data-sources doc describes the retired locally extreme metric. Source 5 in scripts/county_data_sources.md is headed locallyExtremeDays and says apply_locally_extreme_metric_to_climate_data.py writes the locally extreme average into extremeDays, keeps oldExtremeDays, and adds eight detail and audit columns. None of those columns is in data/climate-data.csv, and the script's docstring says locally percentile-based metrics are not included in the app CSV.

Cross-filter findings that affect this filter, in 00-cross-filter.md: 12 (Alaska and Hawaii not covered), 13 (Lexington, VA blank), and 17 (missing from the data-sources metric list).

Decisions

None yet.

Tasks

Not started; follow the per-filter review checklist in pipeline-plan.md §5.