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>
41 lines
1.5 KiB
Markdown
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.
|