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

41 lines
1.5 KiB
Markdown

# Filter 4: Extreme temperature days
**Status:** Not started.
**Data key:** `absoluteExtremeDays`. Calculation:
[filter-calculations.md](../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](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](../pipeline-plan.md) §5.