OLDGABE — research log

What this log is. The research record for OLDGABE, a US-based wildfire detection product. Each entry carries a plain-language framing, a BLUF, the exact method and populations, a results table, a claim-status tag, a literature-alignment box, and load-bearing honest bounds — so a reader with access to the same public feeds (NASA FIRMS VIIRS/MODIS, NOAA GOES-ABI, NIFC IRWIN/perimeters) and the stated recipe can recreate the numbers. Measured, skeptical-first, negatives kept. Rigor pass: 2026-07-08. Comment on any entry below — challenge a number, add evidence, or suggest a check.

Does the CAUTION-recovery re-ranker actually beat the production tier scorer? — head-to-head + de-confounding

Date: 2026-07-08   Status: defensible (measured; 5-fold spatial CV; two independent truths)

The framing. OLDGABE's fusion stage sorts every candidate fire into tiers; the great majority land in a low-confidence CAUTION tier and are never surfaced. The question that had never been measured: among those CAUTION events, can a learned recovery model rank the genuine hidden fires better than the production tier/confidence scorer does?

BLUF. On the operationally meaningful metrics the recovery model decisively beats production. At an 80%-precision operating point it recovers 60.5% of confirmed real fires vs production's 9.5% (Truth1), and 27.2% vs 0% under a second, HMS-independent truth (Truth2). Production holds a small global-AUC edge on Truth1 (0.951 vs 0.936) — but that edge is a confound: production uses the NOAA HMS smoke channel, and Truth1 is 91.5% HMS-confirmed, so it is partly scoring HMS against HMS. When the truth is switched to an independent polar-satellite corroboration, production's AUC edge reverses (recovery 0.845 vs production 0.786).

Populations & truths (reproducible). Candidate set = every canonical event with event_corroboration_tier.tier='CAUTION' that has an event_ground_truth row (n = 197,325). Truth1 (multi-source) = event_ground_truth.confirmed (6,867 positive, 3.48%; for CAUTION this channel is 91.5% NOAA-HMS-confirmed). Truth2 (neutral polar) = a VIIRS/MODIS active-fire detection from a different canonical event within 5 km and −1..+14 days of the event's first detection (7,791 positive, 3.95%). The two truths overlap only partially (both-positive 1,753; Truth1-only 5,114; Truth2-only 6,038), so Truth2 is a genuine cross-check, not a relabelling.

Features (non-leaky, detection-time only). Evidence is joined excluding the confirmation channels IRWIN, HMS, SAR and S2. Per event: n_det, n_fam, max/mean_frp, max/mean_conf, span_h, n_days, max_ti4, ti4−ti5 contrast, frac_night, mean_pixel_area, max_ti5, abi_temp_k, abi_area, modis_brightness, mean_hour, fp_dist_km, frp_per_pixel. Model: gradient-boosted trees (HistGradientBoostingClassifier, class-weight balanced), scored out-of-fold under 5-fold GroupKFold grouped on 0.2° spatial cells (a held-out cell is never in training). The production scorer is the fixed tier_and_conf() confidence; its value is pinned at 0.02 for ~94% of CAUTION events (the GOES/ABI-only majority), which is why it cannot rank within the tier.

Result.

Truth1 (multi-source, HMS-heavy)AUCPR-AUCrecall@90%precall@80%p
recovery model (detection features)0.9360.7350.3790.605
production tier_and_conf0.9510.5440.0650.095
production indep-families0.5000.0000.000
production max-FRP0.7870.1610.0060.019
Truth2 (neutral polar, HMS-independent)AUCPR-AUCrecall@90%precall@80%p
recovery model (detection features)0.8450.5110.0640.272
production tier_and_conf0.7860.2730.0000.000

De-confounding (does the win survive removing the reporting channel?). Feature-group AUCs, per truth — month-only / geography-only (lat,lon) / detection-only / all:

truthmonth-onlygeo-onlydetection-onlyallsummer-share gap
Truth10.5770.9030.9360.9730.00
Truth20.5670.8770.8450.9320.00

Reads: (1) Season is not a confound — the candidate window is summer-only, so the summer-share of positives and of negatives is identical (gap = 0) and month-only ranking is near-chance (~0.57). (2) Geography is a large prior under both truths (0.903 vs 0.877), which already argues it is real fire geography rather than pure reporting bias — a reporting-only signal would predict the HMS truth far better than the polar truth. (3) Production's Truth1 AUC lead does not survive the neutral truth. The honest operating-point story is unchanged: production cannot deliver a high-precision set within CAUTION; the recovery model can.

Claim status: DEFENSIBLE (measured, out-of-fold, two independent truths).

Literature alignment. Verdict: AGREEMENT. Two well-established remote-sensing results are reproduced here on OLDGABE's own data: (a) a single geostationary quality/confidence flag is a weak within-tier ranker [1][2], and (b) independent multi-sensor corroboration is the strongest precision lever for active-fire detection [3]. A learned re-ranker that fuses detection-time features outperforms a hand-tuned tier threshold, consistent with the broader move from fixed thresholds to learned confidence in EO detection.

Where we are careful / diverge: AUC and PR-AUC disagree here because production's confidence is near-constant within CAUTION; we report the operating-point metric (recall at fixed precision) as primary because the use-case is surfacing a high-precision hidden set, not global ranking. We treat the HMS-heavy Truth1 as reporting-biased and lead with the polar Truth2.

What this does not claim: neither truth is a fire perimeter; Truth1 (HMS smoke) is spatially broad, Truth2 (polar overpass) is recall-limited. These are corroboration proxies.

Next research test: add geographic priors and re-validate on the neutral truth (see entry 0002); extend beyond the summer window before any surfacing.

References: [1] · [2] · [3]

Public data sources: NASA FIRMS (VIIRS/MODIS active fire) · NOAA GOES-R ABI · NIFC / IRWIN & perimeters (US ground truth). Every figure is reproducible from these public feeds plus the recipe above; no OLDGABE-internal state is required to recompute the model, only OLDGABE's aggregation of these feeds into per-event evidence.

Statistical reporting: ranking metrics are out-of-fold (5-fold GroupKFold, 0.2° cells) to remove in-sample optimism; base rates are stated with counts; both a reporting-biased and a reporting-independent truth are reported side by side rather than a single headline.

entry 0001

Adding geography to the recovery re-ranker — a defensible lift that grows under the neutral truth

Date: 2026-07-08   Status: defensible (measured; gated hidden shadow — NOT surfaced)

The framing. Entry 0001 showed geography alone ranks CAUTION fires surprisingly well. Wildfires cluster by fuel, terrain and climate, so a location prior should carry real signal — but a location prior can also just memorise where fires get reported. This entry adds geography to the recovery model and tests, honestly, whether the lift is real fire behaviour or a reporting/coverage artifact.

BLUF. Adding raw lat/lon to the detection feature set (recovery+geo) is a defensible improvement over both the detection-only recovery model and production, on both truths and every metric. The decisive de-confounding result: the geo lift is larger under the HMS-independent polar truth (+0.081 AUC) than under the reporting-heavy truth (+0.036 AUC). If geography were merely encoding reporting bias, its benefit would shrink when the truth stops depending on reporting — instead it grows. So the geographic signal is real fire geography.

What "geo" is (hard data bound). OLDGABE currently has no populated land-cover / fuel / terrain / climatology layer — the fire-weather cell table is empty, weather stations are a current snapshot (temporally invalid for historical events), and the raw detection JSON carries no geographic fields. So the only non-leaky geographic priors available are raw lat/lon + distance-to-known-false-source. A Truth1-only supplementary that adds an out-of-neighbourhood polar-thermal climatology density (a fuel/fire-proneness proxy; circular against Truth2, hence Truth1-only) lifts a little further (AUC 0.978, recall@80% 0.771), indicating headroom if a real independent fuel/climatology layer were ingested.

Method delta from entry 0001. Same populations (n = 202,005; the DB ingested more June/July events between runs), same non-leaky features, same 5-fold GroupKFold on 0.2° cells, same two truths. New models: recovery+geo = detection features + lat + lon; geo-only = lat,lon; all = detection + lat + lon + month. A June↔July temporal-transport split is added as the only distribution shift the data permits.

Result — head-to-head.

Truth1 (multi-source)AUCPR-AUCrecall@80%p
detection-only recovery (deployed)0.9380.7360.583
recovery + geo0.9730.7970.719
all (+month)0.9740.8030.722
geo-only0.901
production tier_and_conf0.9500.5390.092
Truth2 (neutral polar)AUCPR-AUCrecall@80%p
detection-only recovery (deployed)0.8600.5730.368
recovery + geo0.9410.6880.531
all (+month)0.9400.6860.526
geo-only0.886
production tier_and_conf0.8070.3250.000

The geo lift over detection-only is +0.036 AUC on Truth1 and +0.081 AUC on Truth2 — it grows under the neutral truth. recovery+geo also closes and reverses the one metric where production had led (Truth1 AUC, now 0.973 vs 0.950). Detection and geography are complementary: recovery+geo (0.941) beats both detection-only (0.860) and geo-only (0.886), so neither is redundant. Month adds nothing (all ≈ recovery+geo).

Result — temporal transport (train one month, test the other).

train → testtruthdetection-onlyrecovery+geoproduction
Jul → JunTruth10.9610.9850.963
Jul → JunTruth20.8760.9550.834
Jun → JulTruth10.8880.9340.941
Jun → JulTruth20.8400.9130.794

recovery+geo beats detection-only in all four cells and production in three of four (it loses only Jun→Jul on the HMS-confounded Truth1, by 0.007). Under the neutral truth it wins both directions by wide margins, and it stabilises the hard direction (Jun→Jul detection-only falls to 0.888; recovery+geo holds 0.934). Within the available window, the geographic prior transports across time and does not hurt.

Deployment status: GATED HIDDEN SHADOW — nothing surfaced. The recovery+geo scores are written to a hidden additive table event_caution_recovered_geo; a companion canary_meta row carries surface_allowed=0 and a DO_NOT_SURFACE_* marker file states the block. No OLDGABE map, API, tile, or user-facing output reads this table, and the daemon does not modify any production tier/score/confidence.

Surfacing is blocked until BOTH: (1) an off-season validation window passes, and (2) a held-out region validation passes. The geographic prior is precisely the component most exposed to seasonal and regional shift, and the entire evaluation to date is a two-month summer window (June+July 2026) with spatial overlap. It must be re-measured on the neutral polar truth in those regimes before any surfacing is considered.

Claim status: DEFENSIBLE (measured, out-of-fold, survives the neutral truth), with an explicit generalisation bound.

Literature alignment. Verdict: AGREEMENT. Wildfire occurrence is strongly conditioned by static geography — fuel, topography and climate — which is the basis of published fire-susceptibility / fire-danger mapping [4][5]; a learned location prior recovering much of that structure is expected. Our de-confounding design (measure the geographic lift against a truth that does not depend on the reporting channel) follows the standard caution that fire records carry reporting/observation bias [6].

Where we are careful / diverge: we deliberately do not ship the geo model, because a lat/lon prior fit on a single summer season can encode that season's/region's coverage and will not transport unexamined. We hold it as a hidden shadow behind an explicit off-season + held-out-region gate.

What this does not claim: that the geographic prior generalises across seasons or regions (untested — no off-season or out-of-region data exists yet); that raw lat/lon is a substitute for a real fuel/terrain layer (the climatology supplement shows further headroom if one is ingested).

Next research test: extend the window to an off-season month and a held-out region; re-grade recovery+geo on the neutral polar truth in each; ingest an independent fuel/land-cover/terrain layer (e.g. public land-cover / elevation) and measure marginal lift over raw lat/lon.

References: [3] · [4] · [5] · [6]

Public data sources: as entry 0001 (NASA FIRMS, NOAA GOES-ABI, NIFC/IRWIN & perimeters). Reproducible from the public feeds plus the stated features, label rules, model spec and CV protocol.

Statistical reporting: all model numbers are out-of-fold (5-fold GroupKFold, 0.2° cells); the geographic lift is reported against both a reporting-biased and a reporting-independent truth; the temporal-transport split is shown in both directions; the summer-only generalisation bound is stated as load-bearing, not a footnote.

entry 0002

The cross-sensor fusion safety-net: two independent satellites agreeing is 4.5× better than one

Date: 2026-07-08   Status: defensible (measured against NIFC IRWIN + perimeters)

The framing. Each satellite makes its own noisy fire hunches. OLDGABE's fusion daemon is the “two-witnesses” rule: it links detections of the same fire across sensors and only trusts a candidate strongly when independent instruments agree. This entry measures how much that agreement is worth.

BLUF. OLDGABE ingests ~1.80 million raw per-sensor fire detections. The fusion daemon cross-links them into 11,441 multi-sensor clusters and grades them. Requiring ≥2 independent CORE thermal sensors to agree (the “confirmed” tier, n=620) raises the IRWIN/perimeter match rate to 37.7%, versus 8.4% for a random raw single detection — a 4.5× precision lift — while GOES-only single-frame candidates (the “early” tier) match just 5.5%. Separately, the false-positive catalog + status logic demote 620,160 raw candidates (34.4%) to masked-fp so they never reach the map.

Result.

fused tiernavg confavg GOES framesIRWIN/perim match
confirmed (≥2 CORE agree)6200.88414.437.7% (234)
probable3,3400.5281.613.2% (442)
early (GOES-only)6,9820.051.35.5% (383)
weak (small n)1390.020.025.9% (36)
fp (flare/persistent)3600.001.910.6% (38)
raw single-detection baseline4,000 sampled8.4% (336)

Reproducibility detail. Feeds: NASA FIRMS VIIRS (N20/N21/SNPP) & MODIS, NOAA GOES-16/17/18/19 ABI (raw hotspots + Dozier subpixel + ADP smoke). Raw stream: fire_events = 1,802,709 rows (candidate 488,981; confirmed 401,917; confirmed_growth 75,886; pre-ignition 146,843; awaiting-confirmation 59,863; rx-burn 9,059; masked-fp 620,160). Fusion rule: time-ordered single-link clustering, same fire if ≤2 km & ≤48 h; CORE = {VIIRS, MODIS, S2, GOES}; confirmed = ≥2 CORE agree. Truth: NIFC IRWIN discovery points (823,535) + NIFC perimeters (115), match ≤10 km / ±14 days; raw baseline = uniform random sample of 4,000 fire_events centroids scored identically.

Claim status: DEFENSIBLE (measured; relative lift is the load-bearing claim).

Literature alignment. Verdict: AGREEMENT. Independent multi-sensor agreement is the canonical precision lever in active-fire remote sensing [3], and geostationary single-frame hotspots are abundant but low-precision [1] — matching the “early” tier's 5.5%. Persistent industrial/flare false sources are handled by a known-source catalog rather than single-frame radiometry [2].

What this does not claim: that 37.7% is the confirmed tier's absolute precision. IRWIN records only reported incidents, so an unmatched cluster is not necessarily false; the defensible statement is the relative lift (confirmed 37.7% vs single 8.4%). The daily-scorer (entry 0007) corroborates on a separate 24 h window.

Next research test: tighten the confirmed tier with a learned per-cluster confidence (entries 0001–0002) and measure precision at fixed recall.

References: [1] · [2] · [3]

Public data sources: NASA FIRMS · NOAA GOES-R ABI · NIFC IRWIN & perimeters.

entry 0003

Dozier subpixel strict-gate: a clean precision-for-recall trade, and why we keep it out of fusion

Date: 2026-07-08   Status: defensible (measured trade-off; not fused, by design)

The framing. The Dozier subpixel method estimates what fraction of a coarse GOES pixel is actually burning (p_subpixel). Tightening a threshold on that fraction is a dial between “catch everything, mostly noise” and “only the unambiguous, but almost nothing.”

BLUF. Gating on p_subpixel trades recall for precision cleanly: the IRWIN match rate rises from 2.8% (ungated) to ~18–27% at p_subpixel ≥ 0.005–0.01, but keeps only ~10–19% of Dozier's own positives. Because the high-precision operating point yields so few detections — and essentially none the polar sensors don't already provide — OLDGABE's fusion daemon deliberately excludes Dozier. A measured “keep it, but don't fuse it” decision, not an oversight.

Result (60,000 sampled Dozier detections; 1,681 IRWIN-positive = 2.8% base):

p_subpixel ≥detections keptprecision (IRWIN match)recall of Dozier positives
0.000 (ungated)60,0002.8%100%
0.00119,5994.9%57.6%
0.0051,70318.5%18.7%
0.01061927.0%9.9%
0.0504100% (n=4)0.2%

The deployed strict gate independently scores 26.3% precision (G19) / 48.3% (G18) at ~1.3% whole-fire recall in the daily-scorer (entry 0007) — consistent with this sweep.

Reproducibility detail. Feed: NOAA GOES-ABI Dozier subpixel retrieval (ABI-Dozier-Subpixel-G18/G19). Sample: 60,000 random Dozier evidence rows with a valid p_subpixel. Label: IRWIN/perimeter match ≤10 km / ±14 days. Precision = matched/kept per threshold; recall = matched-kept / matched-ungated (of Dozier's own positives, not of all fires). Truth: NIFC IRWIN + perimeters.

Claim status: DEFENSIBLE (measured trade-off).

Literature alignment. Verdict: AGREEMENT. Dozier-style subpixel retrieval recovers sub-pixel fires a raw threshold misses, at the cost of many marginal detections [7]; a strict confidence gate is the standard conversion to usable precision. Our fusion-exclusion reflects the same marginal-value logic — a source that adds precision but ~0 independent recall does not improve a multi-sensor confirmed tier.

What this does not claim: the recall column is of Dozier's own sampled positives, not all fires; whole-fire recall at the deployed gate is ~1.3% (entry 0007). Precision at 0.05 (n=4) is noise.

Next research test: revisit fusing gated Dozier as a third corroborator only where it uniquely covers a polar-overpass gap.

References: [7] · [3]

entry 0004

Negative result: GOES temporal persistence does not add defensible recall beyond polar

Date: 2026-07-08   Status: measured NEGATIVE / null (published for rigor)

The framing. A geostationary satellite stares at the same spot every few minutes, so a tempting idea is: “if GOES keeps seeing a hotspot in one place for hours, that persistence is extra evidence of a real fire the polar satellites missed between overpasses.” We tested it. It does not hold up.

BLUF. GOES near-match “recall” is saturated by coverage: 92.4% of IRWIN fire cells have some GOES detection within ~5 km, simply because GOES-ABI emits candidate hotspots almost everywhere over CONUS (its measured precision is only ~15% — 85% are not fire). Requiring temporal persistence (a cell seen in ≥3 distinct hours) only drops this coverage-inflated number (92.4% → 66.1%); it never adds genuine recall. The apparent 43.8% “marginal over polar” is the same coverage/false-positive floor, not independent detections. Conclusion: GOES temporal persistence is not a validated recall lever — OLDGABE's defensible cross-sensor recall comes from polar corroboration and fusion (entry 0003).

Result (45-day window; 2,592 IRWIN truth cells at 0.05°):

recall of IRWIN cells by…recallinterpretation
polar (VIIRS/MODIS) near-match27.2%genuine polar detections
any-GOES near-match92.4%coverage floor (not skill)
GOES-persistent (≥3 h) near-match66.1%persistence only subtracts coverage noise
GOES-persist caught, polar missed (marginal)43.8%confounded by the same coverage floor

Reproducibility detail. Feeds: NOAA GOES-ABI vs NASA FIRMS VIIRS/MODIS. Window: trailing 45 days. Grid: 0.05° cells. Persistence = a cell with GOES/ABI detections in ≥3 distinct hour-buckets. Recall = fraction of in-window IRWIN truth cells with a qualifying detection in the 3×3 neighbourhood. Marginal = IRWIN cells covered by GOES-persistent but not polar. Truth: NIFC IRWIN. The confound is explicit: at GOES's ~15% precision, near-match recall measures coverage density, not detection.

Claim status: NEGATIVE / NULL (honest; not adopted).

Literature alignment. Verdict: AGREEMENT. Geostationary active-fire products are high-volume and low-precision [1][8]; near-match recall over a dense candidate stream measures coverage, not skill (the “information floor”). Persistence has value for precision (rejecting transient glints), but our test shows it does not manufacture recall beyond polar.

What this does not claim: that GOES persistence is useless — it is a precision/timeliness signal elsewhere. This entry only refutes the specific claim that persistence adds independent recall. A stricter per-detection truth (not cell coverage) would be needed for a fully fair recall test.

Next research test: score GOES persistence as a precision gate on the “early” fused tier rather than a recall source.

References: [1] · [8] · [3]

entry 0005

Wildfire-camera smoke detection: highest precision of any source, but coverage/visibility-bound

Date: 2026-07-08   Status: measured; bound-limited (no proven standalone field value yet)

The framing. OLDGABE runs a smoke/flame classifier on public wildfire-camera frames and, when two cameras see the same plume, triangulates the bearings into a map location. Cameras see smoke a satellite can't — but only where a camera is pointed, in daylight, through clear air, within range.

BLUF. When a camera fires on a fire IRWIN also records, it is usually right — daily-scorer precision 66.7%, the highest of any single OLDGABE source. But it matches only 1.2% of IRWIN fires: coverage and visibility (line-of-sight, daylight, haze, range) are the binding constraint, not the classifier. Honest status: a high-precision corroborator where cameras can see, with no proven standalone field value yet at network scale.

Result (daily-scorer, vs IRWIN 10 nm / 24 h):

metricvalue
CAM-SMOKE precision66.7% (38 / 57 matched)
CAM-SMOKE recall of IRWIN fires1.2%
smoke-evidence rows on file480,026
two-camera triangulated fires31

Reproducibility detail. Feed: public wildfire-camera networks (frame grabs). Pipeline: per-frame smoke/flame classifier → cam_smoke_evidence (480,026 rows: mostly baseline sweeps + fire-triggered checks) → two-camera bearing intersection → cam_triangulated_fires (31). Scoring: OLDGABE daily-scorer matches CAM-SMOKE detections to NIFC IRWIN at 10 nm / 24 h (run 18, 2026-07-08). Precision = tp/(tp+fp); recall = tp/(IRWIN incidents in window).

Claim status: MEASURED, bound-limited.

Literature alignment. Verdict: AGREEMENT. Ground/tower camera smoke detection is high-precision within line-of-sight but coverage- and visibility-limited, and multi-camera triangulation is the standard geolocation method [9]. Our numbers reproduce that profile: excellent precision, small recall.

What this does not claim: any standalone field value — recall is coverage/visibility-limited, only 57 camera detections matched an IRWIN incident in the scored window, and n=31 triangulations is too few to quote a geolocation accuracy. The defensible role today is corroboration, not primary detection.

Next research test: measure triangulation geolocation error against matched IRWIN coordinates once n is larger; quantify recall vs camera viewshed coverage explicitly.

References: [9]

entry 0006

Per-sensor scorecard vs NIFC IRWIN — what each US datalink actually contributes

Date: 2026-07-08   Status: defensible (OLDGABE's own daily replay scorer)

The framing. Rather than argue which feed matters, OLDGABE runs a daily replay scorer that matches every sensor's detections to NIFC IRWIN ground truth and records precision, recall and count per source. This entry is that scorecard, unedited.

BLUF. Polar VIIRS is the best single recall+precision workhorse; the fused OLDGABE output leads recall (72.4%); cameras lead precision (66.7%); GOES-ABI is high-volume/low-precision; SAR and Sentinel-2 SWIR contributed nothing in this window. This is the empirical basis for weighting the fusion daemon (entry 0003) toward polar + agreement.

Result (daily-scorer run 18, 24 h window ending 2026-07-08, match 10 nm / 24 h vs IRWIN):

sourceprecisionrecalltpevidence n
OLDGABE-EVENTS (fused output)18.2%72.4%3,35518,394
HMS (smoke analysis)16.0%69.2%6,90643,214
VIIRS-N2032.0%58.7%3,65511,431
VIIRS-NPP20.8%31.3%1,2766,144
VIIRS-N2119.7%26.6%1,0125,150
MODIS27.9%22.2%9013,224
ABI-ADP-Smoke-G198.8%24.1%7218,174
ABI-ADP-Smoke-G1826.0%24.2%8583,298
GOES19-ABI15.8%14.7%5213,304
GOES18-ABI39.8%14.6%5281,328
ABI-Dozier-Subpixel-G1848.3%1.3%4287
ABI-Dozier-Subpixel-G1926.3%1.3%42160
CAM-SMOKE66.7%1.2%3857
S1-SAR-BurnScar / S2-SWIR-Hotspot0.0%00

Reproducibility detail. Artifact: OLDGABE te_runs/te_metrics_by_source, run_id 18, run_kind daily-scorer, config {match_radius_nm: 10, match_window_h: 24}, window 2026-07-07→2026-07-08. Per source: tp = detections matched to an IRWIN incident within 10 nm / 24 h; fp = unmatched; fn = IRWIN incidents with no matching detection from that source; precision = tp/(tp+fp); recall = tp/(tp+fn). Feeds: NASA FIRMS VIIRS/MODIS, NOAA GOES-ABI (raw + Dozier + ADP smoke), NOAA HMS, public cameras, Sentinel-1/2. Truth: NIFC IRWIN.

Claim status: DEFENSIBLE (own measured artifact, dated).

Literature alignment. Verdict: AGREEMENT. The ranking — polar VIIRS/MODIS as accurate workhorses, geostationary as timely-but-noisy, fusion maximising recall — matches the established complementarity of polar and geostationary fire products [1][3][8].

What this does not claim: IRWIN at 10 nm / 24 h is a strict, sparse truth (reported incidents only), so absolute precision is a lower bound — many unmatched detections are real fires IRWIN never logged. Single 24 h window; lead-time medians omitted here as noisy. SAR/S2 zeros reflect this window's cadence, not a permanent verdict.

Next research test: aggregate the scorecard across many daily runs with confidence intervals; add a precision-at-fixed-recall column per source.

References: [1] · [3] · [8]

entry 0007

Reframing the camera 1.2%: coverage-conditional recall — cameras detect up to ~25% of fires they can actually see

Date: 2026-07-08   Status: defensible (measured, coverage-conditional)

The framing. Entry 0006's 1.2% camera recall was measured against every US fire — but a camera can only see fires inside its viewshed. The fair question is: where a camera can physically see, how often does it catch the fire? And is the gap infrastructure (coverage) or algorithm (detection)?

BLUF. Conditioning on coverage reframes the number by 4–20×: within 60 km of an online camera, cameras detect 24.7% of IRWIN fires; within 20–40 km, 8.8–19.0%. But two gaps remain and split cleanly: coverage — only 28–59% of fires are within R km of an online camera — and detection-in-coverage — even where a camera can see, only ~5–25% of fires are caught (night, haze, range, azimuth). Precision rises with R to 72% (matching entry 0006/0007). Cameras remain a high-precision corroborator; the primary lever is detection-in-coverage, but it is capped by coverage.

Result (3,903 deduped IRWIN incidents; 10,227 online cameras; 1,016 smoke≥0.5 hits):

radius Rcoverage (% fires near a camera)recall | in-coverageprecision | in-coverage
10 km28.0%4.8%11.9%
20 km41.3%8.8%29.5%
40 km53.1%19.0%58.6%
60 km59.0%24.7%72.4%

Reproducibility detail. Feeds: public wildfire cameras (public_cameras, 10,247 with lat/lon; azimuth/FOV present but unused), cam_smoke_evidence (smoke/flame classifier output). IRWIN incidents deduped to distinct fire-days (0.02° + day) = 3,903. Online = a camera that produced any evidence in the window (10,227 distinct). Coverage = incident within R km of an online camera. recall|cov = fraction of in-coverage incidents with a smoke≥0.5 hit from such a camera within R km & ±24 h. precision|cov = fraction of smoke hits matching an IRWIN incident within R km / ±24 h. Truth: NIFC IRWIN. Assumptions: radius is a coarse viewshed proxy (terrain occlusion, azimuth, FOV, range, daylight, haze ignored); all-hours.

Claim status: DEFENSIBLE (measured, conditional). Verdict on the lever: partial — detection-in-coverage is the primary algorithm lever, but total camera reach is capped by coverage.

Literature alignment. Verdict: AGREEMENT. Camera smoke detection is high-precision within line-of-sight and coverage/visibility-limited [9]; conditioning recall on viewshed is the correct evaluation and lifts the apparent rate substantially, as here.

What this does not claim: that R km equals a true viewshed — terrain/azimuth/FOV/daylight/haze are not modelled, so recall|cov is an upper-bounded reach estimate; precision rising with R is partly because more IRWIN incidents exist to match against at larger radius.

Next research test: replace the radius proxy with a real per-camera viewshed (DEM + azimuth + FOV + range) and split night vs day recall to isolate the algorithm lever.

References: [9]

entry 0008

Repositioning Dozier: a median 6-hour early cue, and a multi-feature gate that dominates the single threshold

Date: 2026-07-08   Status: defensible (measured; two positive levers)

The framing. Entry 0004 showed the single-p_subpixel Dozier gate is high-precision but low-yield, and excluded from fusion. Two follow-ups ask whether Dozier is worth more than that: is it early, and can a smarter gate move the curve out rather than just slide along it?

BLUF. Both hold. (1) Lead-time: for fires seen by both Dozier and a polar sensor (n=472), Dozier is earlier 53% of the time, median ~6 hours earlier — an early-cue / lead-time tier, not a recall source. (2) Multi-feature gate: replacing the single threshold with a 13-feature classifier lifts PR-AUC from 0.044 to 0.179 (4×) and precision-at-recall from 8.0% to 39.4% (at 10% recall). The multi-feature curve dominates the single threshold at every operating point.

Result A — lead-time (472 fires seen by both Dozier and polar):

metricvalue
Dozier earlier than polar53.0% of shared fires
median Δ (Dozier − polar first-detect)−5.9 h (Dozier earlier)

Result B — multi-feature gate vs single p_subpixel (out-of-fold):

operating pointsingle p_subpixel precisionmulti-feature precision
recall 0.059.5%39.9%
recall 0.108.0%39.4%
recall 0.205.3%32.6%
recall 0.304.8%19.6%
PR-AUC0.0440.179

Reproducibility detail. Feed: NOAA GOES-ABI Dozier subpixel. (A) 472 IRWIN incidents with both a Dozier and a VIIRS/MODIS detection within 10 km / ±14 d; Δ = earliest Dozier − earliest polar. (B) 80,000 random Dozier detections, 1,688 IRWIN-positive (2.11%). 13 non-leaky Dozier-context features: p_subpixel, T_MIR_K, T_LWIR_K, MIR−bgMIR, LWIR−bgLWIR, MIR−LWIR, T_f_K, A_pixel_m2, cos_view, cos_sun, is_night, fp_dist_km, cell_persistence. Model: HistGradientBoosting, 5-fold GroupKFold (0.2°) OOF; compared to raw p_subpixel. Truth: NIFC IRWIN + perimeters, 10 km / ±14 d.

Claim status: DEFENSIBLE. Verdict on the lever: build both — a Dozier early-cue tier and a multi-feature Dozier gate.

Literature alignment. Verdict: AGREEMENT. Geostationary sensors provide high temporal cadence and therefore earlier first-detection than polar overpasses for a fraction of fires [3][8]; a learned multi-feature discriminator outperforming a single radiometric threshold is expected and here quantified.

What this does not claim: the lead-time distribution is wide (p25 −88 h, p75 +55 h) because IRWIN matching uses a ±14 d window — the median (−6 h) and the 53% share are the defensible statistics, not the tails; tighter same-fire (fused-cluster) matching is future work. The gate is out-of-fold but on a single-window sample; absolute precision is IRWIN-lower-bounded.

Next research test: deploy a shadow early-cue tier keyed on Dozier-before-polar; ship the multi-feature gate as the Dozier confidence and re-measure precision at fixed recall live.

References: [3] · [7] · [8]

entry 0009

Is re-enabling Sentinel-2 SWIR worth it? Excellent coverage, ~4% active-fire marginal recall — a measured no

Date: 2026-07-08   Status: measured NEGATIVE for alerting (bounded sample + extrapolation)

The framing. Sentinel-2 SWIR sits at zero in the scorecard (entry 0007). SWIR can see active flame at 20 m — so would re-enabling full CONUS S2 processing recover fires the current sensors miss, and is it worth the cost?

BLUF. Of 1,764 IRWIN fires in the S2 window, only 191 (10.8%) were missed by every current sensor. Over those missed fires, S2 scene availability is 100% — but an actual SWIR active-fire signal appears at only 4% of them (2/50, CI 1–14%), and already-ingested S2 added 0 unique fires. Extrapolated unique marginal recall ≈ 4% of the missed set — small — at a compute cost of ~1–2 TB/week and up to 5-day latency. Verdict: not worth full re-enablement for timely alerting.

Result.

metricvalue (95% CI)
IRWIN fires in S2 window1,764
missed by all current sensors191 (10.8%)
existing ingested-S2 unique marginal0 / 191 = 0% (0–2%)
S2 scene availability over missed (sample 50)100% (92.9–100%)
actual S2 SWIR active-fire hit2 / 50 = 4.0% (1.1–13.5%)
extrapolated unique marginal recall~4%

Reproducibility detail. Missed = IRWIN incident (S2 window 2026-05-31..07-01) at a 0.05° cell (+8 neighbours) with no VIIRS/MODIS/GOES/ABI/HMS/CAM detection in the window. Availability = Element84 STAC query sentinel-2-l2a, bbox ±0.02°, −2..+5 d, cloud<70%. SWIR test = windowed COG read of B12 (SWIR2) & B11 (SWIR1) in a ~660 m box; fire pixel if B12/B11 ≥ 1.6 and B12 ≥ 0.15 reflectance (conservative). Sample n=50, Wilson CIs. Compute cost: S2 A/B revisit ~5 d, CONUS ~900 MGRS tiles × ~2 acquisitions/5 d; B11/B12/B8A ~60–120 MB/tile → ~1–2 TB/week download + per-scene cloud-mask + active-fire compute — why it was deferred vs polar, which already delivers near-real-time recall at a fraction of the volume.

Claim status: NEGATIVE for alerting (measured, bounded). Verdict on the lever: do not re-enable S2 SWIR for active-fire detection.

Literature alignment. Verdict: AGREEMENT. Sentinel-2 can detect active fire in SWIR but its ~5-day revisit makes it a poor timely detector; its established value is burn-scar/burned-area and post-event mapping, not real-time alerting [10]. Our numbers reproduce that: coverage is excellent, active-fire marginal recall is small.

What this does not claim: that S2 has no value — its role is post-hoc burn-scar/area, not active detection. The SWIR test is conservative (may miss faint/cool fires or admit bright bare-soil false positives); n=50 (CIs quoted); “missed” is a strict spatial-cell definition; S2's 5-day revisit means many short missed fires were simply not burning at overpass.

Next research test: if pursued, use S2 only for burned-area confirmation of already-detected fires, not as a detection feed.

References: [10] · [1]

entry 0010

Making standalone Dozier usable: a multi-feature gate (49% vs 12% precision) and an early-cue tier (median 4.3 h before polar) — shadow-only

Date: 2026-07-08   Status: POSITIVE, measured (shadow canary; nothing surfaced — pending fresh-window confirmation + go)

The framing. The production pipeline hides standalone GOES ABI Dozier subpixel detections entirely — on their own they are ~0.05% wildfire precision (entry 0004/0007), so Dozier only counts as corroboration for a fire another sensor already carries. Two levers could change that without touching the live gate: (1) replace the single p_subpixel threshold with a multi-feature gate, and (2) surface a Dozier early-cue tier for detections that fire before polar confirmation. This entry measures both, shadow-only.

BLUF. On 100,000 random Dozier candidates (IRWIN/perimeter truth, 2.04% base, 5-fold spatial CV), a 13-feature classifier reaches 49.3% precision at the ~10% operating recall where the single p_subpixel threshold sits at only 11.6% — a +37.7 pp gain (PR-AUC 0.234 vs 0.051). It survives dropping the detection-density feature (39.6% precision, PR-AUC unchanged), so it is not a spatial-clustering artifact. Separately, Dozier detections that precede a polar detection are 38.4% IRWIN-confirmed~19× the 2.0% Dozier baseline — at a median 4.3 h lead. Both are GO candidates. Nothing is surfaced.

Piece 1 — multi-feature gate vs the single threshold.

operating pointsingle p_subpixelmulti-feature gate
precision @ recall 0.0513.3%41.7%
precision @ recall 0.10 (current gate)11.6%49.3%
precision @ recall 0.206.5%50.8%
precision @ recall 0.304.8%45.8%
recall to hold 49.3% precision0.2%10.0% (~50×)
PR-AUC0.0510.234
precision @ recall 0.10, feature ablation (no detection-density)39.6%

Flip operating point (go/no-go). Cut over to shadow-score τ = 0.965 → 49.3% precision at 10% recall (the recall the current gate already runs at, so no recall is lost while precision ×4.3). For a stricter 40% surfacing bar the gate still returns 32.8% recall. At matched precision the single threshold collapses to 0.2% recall — the gate holds ~50× more. OOF ROC-AUC 0.869.

Piece 2 — Dozier early-cue tier.

metricvalue
Dozier detections preceding polar (5 km, +0..48 h)1,868
tier precision (IRWIN/perimeter-confirmed)38.4% vs 2.0% Dozier baseline (~19×)
median lead over first polar detection4.3 h (IQR 2.0–7.4 h)
share with ≥1 h lead / ≥6 h lead84.9% / 33.7%

Reproducibility detail. Candidates: 100,000 random ABI-Dozier-Subpixel-* evidence rows with a non-null p_subpixel. Features (13, detection-time only, no confirmation channels): p_subpixel, T_MIR, T_LWIR, MIR−bgMIR, LWIR−bgLWIR, MIR−LWIR, T_f, pixel area, cos(view), cos(sun), is_night, distance-to-FP-catalogue, and local detection-density. Truth: label = 1 if a NIFC IRWIN incident (deduped to fire-days) is within 10 km & ±14 d, or a fire-perimeter centroid within 5 km & ±14 d. Model: HistGradientBoosting (uncalibrated, balanced), scored out-of-fold under 5-fold GroupKFold on 0.2° spatial cells (no same-cell leakage). Operating points from a rank-based PR sweep. Ablation: the whole pipeline re-run with local detection-density removed. Early-cue: for each Dozier detection, the earliest polar (VIIRS/MODIS) detection within 5 km in (t, t+48 h]; lead = polar − Dozier; tier precision = IRWIN/perimeter-confirmed fraction of that set. Shadow store: hidden tables dozier_gate_shadow (would-surface set at τ) and dozier_earlycue_shadow, both flagged surface_allowed=0 with DO_NOT_SURFACE markers; the production DB is read-only and the live Dozier gate / fusion tiers are unchanged. All compute load-guarded off-peak.

Claim status: POSITIVE (measured, shadow). Piece 1 = GO candidate for the standalone-Dozier gate; Piece 2 = a usable but advisory-grade early-cue tier. Neither is surfaced; a flip requires re-proving on a fresh out-of-window sample plus explicit go.

Literature alignment. Verdict: AGREEMENT. Dozier’s two-channel subpixel method estimates subpixel fire temperature/area but a single-band or single-statistic threshold is known to be false-alarm-prone; multi-channel contextual features are the established route to separating true subpixel fire from warm background and sun-glint, as in the GOES-R ABI fire algorithm [7][8]. Our 4.6× PR-AUC lift over the raw p_subpixel threshold reproduces that expectation, and ML-for-fire reviews report the same pattern of engineered multi-feature gates beating single thresholds [4].

What this does not claim: that standalone Dozier is now confirmation-grade — 49% precision is a gate, not a confirmation, and the early-cue tier at 38% is explicitly advisory. IRWIN truth is a lower bound with reporting gaps [6], so absolute precision is bounded, not exact. The comparison is on one random historical sample (base 2.04%); the single-threshold precision here (IRWIN-only truth) is not the same quantity as the deployed Dozier scorecard number (multi-sensor fused truth). The early-cue population is conditioned on eventually being seen by polar, so its precision does not transfer to Dozier detections polar never confirms.

Next research test: re-run the gate on a fresh, strictly out-of-window month and confirm the τ=0.965 operating point holds before any cutover; then A/B the early-cue tier as an additive advisory layer, measuring realized operational lead and false-alarm load.

References: [7] · [8] · [4] · [6] · [1]

entry 0011

Pre-flip check kills the flip: the multi-feature Dozier gate collapses out-of-time — we are NOT promoting it

Date: 2026-07-08   Status: measured NEGATIVE (temporal transport) — revises entry 0011; production gate UNCHANGED

The framing. Entry 0011 reported the 13-feature Dozier gate reaching ~49% precision vs 12% for the single p_subpixel threshold under 5-fold spatial cross-validation, and flagged it a GO candidate pending a fresh out-of-window confirmation. This entry is that confirmation. Before wiring anything into the live gate we ran the strongest temporal test the data allows — train on an earlier window, test on a strictly-later held-out window — with a hard decision rule: promote only if the multi-feature gate still clearly dominates out-of-time; otherwise stop.

BLUF. It does not dominate — it collapses. Trained on the earlier window and tested on strictly-later data, the multi-feature gate falls to near-chance ranking (holdout ROC-AUC 0.60–0.64) and is beaten by the trivial single p_subpixel threshold at every operating point, in both a count-based split and a positives-balanced split. The exact flip point τ=0.965 transfers to zero holdout recall. Decision: HOLD — do not flip. The 49% spatial-CV figure was time-correlated leakage. The production Dozier gate stays exactly as-is (standalone Dozier still hidden), and the shadow canary stays gated.

Result — holdout precision at the current gate's operating recall (~10%).

temporal splitsingle p_subpixelmulti-feature gateholdout ROC-AUC (gate)τ=0.965 recall
A — earliest 60% train / latest 30% test39.8%13.8%0.600.0
B — split at median fire time (balanced positives)31.0%19.1%0.640.0

Precision across the recall curve (single vs multi-feature, holdout). Single wins at every point:

recallA singleA multiB singleB multi
0.050.3660.1930.5830.200
0.100.3980.1380.3100.191
0.200.4300.1380.3020.250
0.300.3130.1210.3220.283

Reproducibility detail. Same 120k random Dozier candidate sample, same 13 detection-time features, same IRWIN/perimeter truth (10 km/±14 d incident, 5 km perimeter centroid) as entry 0011 — only the train/test partition changed from spatial to temporal. Split A: earliest 60% of candidates by detection time = train (through 2026-05-31, n=72,259, 363 positives); latest 30% = test (from 2026-06-03, n=13,410, 1,329 positives, 9.9% base), with a 3-day gap discarded between train and test so no fire straddles the boundary. Split B (guards against Split A's low training-positive count): partition at the median detection time of the positives so each side carries ~half the fires — train through 2026-07-02 (n=107,980, 1,240 positives), test from 2026-07-05 (n=520, 127 positives, 24.4% base), same 3-day gap. Model = HistGradientBoosting (identical hyper-parameters to 0011), fit on train, scored on the strictly-later test. Precision-at-matched-recall from a rank-based PR sweep. Decision rule (pre-registered in the run): promote only if holdout multi-feature precision at the operating recall is ≥2× single AND ≥+0.10 absolute, on both splits; neither split met it (both are negative). Read-only production DB; no production code changed; the run is load-guarded and health-gated on the host. Result JSON persisted alongside the model with flip_decision = HOLD_DO_NOT_FLIP.

Claim status: NEGATIVE for promotion (measured, temporal transport). The multi-feature Dozier gate is not promoted; the live gate is unchanged. This supersedes entry 0011's tentative GO.

Summer-only bound (stated explicitly). The data is a single summer window (~2026-05-31–07-01). This is a temporal-transport test within summer (earlier → later), not an off-season test; a true winter/shoulder-season validation is impossible with the data on hand. The verdict — that the gate does not transfer even a few weeks forward — is if anything a lower bar than off-season would be, which makes the HOLD conservative and safe.

Literature alignment. Verdict: AGREEMENT. Spatial cross-validation systematically over-estimates skill when samples are space- and time-autocorrelated; temporal/blocked validation is the accepted guard, and models that look strong under random or spatial CV routinely collapse under forward-in-time evaluation [4][5]. A single physically grounded quantity — Dozier's subpixel fire fraction [7] — transported better here precisely because it is not fit to the training period's incidental structure.

What this does not claim: that engineered features are worthless for Dozier, or that the single p_subpixel threshold is itself good enough to surface standalone Dozier (its ~30–40% in-season precision here is measured against a higher-base-rate holdout, not the 2% random-sample base of entry 0011, and standalone Dozier remains corroboration-only in production). It claims only that this multi-feature gate, trained this way, does not earn a production flip. A trustworthy gate would need multi-season training data, explicitly time-invariant features, and/or continual retraining with forward validation baked in.

Next research test: if the lever is pursued, retrain on multiple fire seasons and evaluate with rolling forward-in-time validation; separately, test whether the single p_subpixel threshold plus a hard FP-catalogue/persistence guard is a simpler, more transportable route to surfacing a high-precision Dozier subset.

References: [7] · [4] · [5] · [6]

entry 0012

Does the Dozier early-cue tier survive out-of-time? Not validated — its 38% lives entirely in a not-yet-truth-matured window

Date: 2026-07-08   Status: INCONCLUSIVE / not validated (data-limited) — tier stays gated; honest negative-leaning

The framing. The gate lever failed out-of-time (entry 0012). The other Dozier lever from entry 0011 is the early-cue tier: a Dozier detection that precedes a polar (VIIRS/MODIS) detection of the same fire within 5 km/+48 h, reported there at 38.4% IRWIN-confirmed precision (~19× the ~2% Dozier baseline) with a median 4.3 h lead. It is a deterministic rule, not a fitted model, so it cannot “overfit” in the ML sense — the honest test is temporal stability: measure precision + lead on an earlier vs a strictly-later, truth-matured window.

BLUF. A clean matured earlier-vs-later split turned out to be impossible, and that fact is the finding. Dozier detected_at is bimodal: ~82% is a 2-day historical backfill (2026-05-30/31), June 01–25 has zero Dozier rows, and live ingestion only resumed ~07-01. So the only fully ±14 d truth-settled data is the backfill; the recent live window is days old and its IRWIN truth is right-censored. On the settled-truth backfill the tier scores just 2.5% precision; the headline 38% survives only in the recent window — 77% of all early-cue detections come from that not-yet-matured window — where truth cannot yet be confirmed. Verdict: NOT validated out-of-time. The tier stays gated; re-test after ~2026-07-23, when the live window's ±14 d truth settles.

Result — the same tier, measured on each cohort.

cohortwindow (UTC)Dozier nearly-cue ntier precisionbaselineenrichmentmedian lead
A — matured, settled truth (05-30/31 backfill)05-31→06-01174,4356002.5%1.0%2.5×24.6 h
B — recent, UNSETTLED truth (live 07-02+)07-02→07-0925,5652,03739.5%*6.3%6.3×3.7 h
all blended (reproduces entry 0011)05-31→07-09200,0002,63731.1%1.7%18.3×4.8 h

*Cohort B truth is right-censored (detections 0–7 days old vs the ±14 d IRWIN matching window), so 39.5% is a lower bound that is not yet confirmable, not a validated number.

What this shows. Entry 0011's 38.4%/19×/4.3 h is faithfully reproduced as the blended figure (31.1%/18.3×/4.8 h) — but it is supplied almost entirely by cohort B: 2,037 of 2,637 early-cue detections (77%) are in the recent, unsettled-truth window. On the only settled-truth data (cohort A) the tier is near baseline (2.5% vs 1.0%), and its 24.6 h median “lead” is far longer than a polar revisit — consistent with coincidental later polar hits, not genuine early warning. Cohort B's tight 3.7 h leads look like a real early-warning signal, but its truth is not settled. Polar availability is comparable across the two windows (11,268 vs 10,594 dedup polar cells), so cohort A's low precision is not a missing-polar artifact.

Reproducibility detail. 200,000 random ABI-Dozier-Subpixel-* rows. Early-cue = a later polar (VIIRS% or MODIS, CONUS, deduped to 0.05°×6 h earliest) within 5 km in (t, t+48 h]; lead = polar − Dozier. Truth = NIFC IRWIN incident (deduped to fire-days) within 10 km/±14 d or a fire-perimeter centroid within 5 km/±14 d — identical to entries 0011/0012. Cohort A (settled) = detected_at ≤ data_max − 14 d (= 2026-06-25), which with the June data gap is exactly the 05-30/31 backfill; cohort B (unsettled) = last 8 days (07-01+). Tier precision = IRWIN-confirmed fraction of the early-cue set; baseline = confirmed fraction of all Dozier in the cohort; enrichment = ratio; lead distribution via percentiles. Data span 2026-05-30→07-09; the 06-01–06-25 Dozier gap is why no third, matured-and-recent window exists. Read-only production DB; no writes; load-guarded and health-gated on the host. Result JSON persisted.

Claim status: NOT VALIDATED out-of-time (data-limited). The early-cue tier is not promoted and stays gated. This does not refute the tier — it shows its headline number was never measured on settled truth.

Honest reading — neither a clean hold nor a clean collapse. On settled truth the tier is near baseline (2.5%), which argues collapse; but that settled data is a low-fire backfill blob whose long 24.6 h leads look coincidental, so it is a weak positive test. The recent window looks genuinely strong (39.5% precision, tight 3.7 h leads consistent with sub-polar-revisit early detection) but its truth is not yet settled. The scientifically correct call is to withhold judgement and re-test cohort B after its ±14 d truth matures (~2026-07-23), not to bank the 38%.

Literature alignment. Verdict: AGREEMENT (methodological). Geostationary ABI can flag a hotspot minutes-to-hours before a polar overpass, so a real early-cue lead is physically plausible [8][3]; but IRWIN/FOD reporting settles over days-to-weeks [6], so precision measured on fresh detections is a censored lower bound — exactly the trap here. Validating detection skill only on truth-matured data is the accepted discipline [4].

What this does not claim: that the early-cue tier is worthless. Its recent-window behaviour (tight hours-scale leads, 6× enrichment) is the most encouraging Dozier result in this series; it simply is not yet confirmable. Nor does it claim the backfill 2.5% is the tier's true precision in active fire season — the backfill is largely non-fire detections (1.0% base). Next research test: re-run this exact cohort-B measurement after 2026-07-23; if precision holds near 38% on settled truth with hours-scale leads, promote it to a defensible advisory lead-time tier (still gated until surfacing is decided).

References: [8] · [3] · [6] · [4] · [7]

entry 0013

Why cameras miss fires they can see — and a lever that lifts detection-in-coverage 37→49% at flat precision

Date: 2026-07-08   Status: POSITIVE lever (measured, spatial-CV) — shadow-first build candidate, gated pending temporal transport

The framing. Entry 0008 split the camera gap in two: coverage (infrastructure — is a fire near an online camera at all) and detection-in-coverage (algorithm — where a camera can see, how often it catches the fire), the latter only ~5–25%. Coverage is a build-out problem; detection-in-coverage is the algorithm lever. This entry asks why the in-coverage misses happen and tests the best fix.

BLUF. The dominant miss driver is range, not darkness: within 15 km cameras catch 47% of in-coverage fires, falling to 20% at 15–30 km and 4% at 30–40 km (undetectable at sensor resolution). The assumed night floor does not exist — night recall (45%) actually beats day (31%), almost certainly flame glow. The best lever is the simplest: lower the single-frame smoke trigger 0.50→0.30, which lifts detection-in-coverage 36.9%→49.4% (+12.5 pts, +34% relative) at essentially flat precision (58.1%→57.2%), monotonic across the sweep and stable in 5-fold spatial CV (0.50±0.11 vs 0.37±0.11); at a tighter 20 km viewshed it nearly doubles recall (17.1%→34.2%). Adding temporal persistence was a mistake — it hurt recall (to 24.7%). We flag the threshold lever as a shadow-first build candidate, gated until it passes the temporal-transport test that killed the Dozier gate (entry 0012).

Why the misses happen (in-coverage, R=40 km, 1,083 fires, current 0.5 trigger).

driverbinfiresrecall-in-coverage
range to nearest online camera<15 km72547.4%
15–30 km25620.3%
30–40 km1023.9%
solar elevation (day/night)day (≥0°)53830.5%
twilight (−6..0°)5127.5%
night (<−6°)49444.9%
fire size (IRWIN acres)<10 ac1,00137.2%
10–100 ac2416.7%
>100 ac1315.4%

Range dominates (a clean 12× swing, 47%→4%); day/night runs the “wrong” way (glow); size is noisy at tiny n and not a usable driver. Where cameras do catch a fire, they flag smoke a median 14.7 h before the IRWIN discovery timestamp (within the ±24 h match window) — cameras are an early corroborator when they fire.

The lever — single-frame threshold sweep.

smoke triggerrecall-in-coverageprecisioncamera events
0.50 (current)36.9%58.1%1,037
0.4539.9%58.1%1,371
0.4044.7%57.4%1,771
0.3546.5%57.5%2,229
0.3049.4%57.2%2,924
0.30 + persistence (≥2 in 6 h)24.7% (worse)56.2%

The physical floor (achievable headroom). Two hard limits, neither fixable by thresholding: (1) range — 30–40 km fires are ~undetectable (3.9%); (2) among near (<15 km) misses, 39% have a best smoke-probability of ~0 (the model never fired at all — out-of-field-of-view / occlusion / too faint; camera azimuth+FOV are recorded but unused, so a fire behind a fixed camera is invisible regardless of threshold). Only ~26% of near misses sit in the 0.30–0.50 band the lever actually recovers. So the lever captures the genuinely-recoverable slice; it does not (and cannot) fix the geometry floor.

Reproducibility detail. Reuses entry 0008's coverage definition: 3,947 IRWIN incidents deduped to 0.02°+day; a camera is online at fire time if it produced any cam_smoke_evidence frame in [disc−24 h, disc+24 h]; a fire is in-coverage if within R of an online camera; detected if a covering camera has a qualifying smoke_prob hit in that window. Working R = 40 km (checked at 20 km). Day/night = solar elevation (NOAA formula) at the fire's lat/lon/time; night = sun below civil twilight (−6°). Size = IRWIN IncidentSize acres. Precision = fraction of camera detection-events matching an IRWIN incident within R & ±24 h. Lever = lower the single-frame threshold; persistence variant = ≥2 frames ≥0.30 within 6 h from one camera. Spatial CV = 5 folds on 0.2° cells (recall mean±std). Truth: NIFC IRWIN. Read-only production DB; no writes; load-guarded and health-gated on the host. Azimuth/FOV unused (omnidirectional range proxy) — a documented over-count of true viewshed and part of the geometry floor above.

Claim status: POSITIVE lever (measured, spatial-CV stable). Recommended as a shadow-first, gated build candidatenot wired to production. Per our own discipline (entry 0012), it must first pass temporal-transport validation (train/measure earlier, test strictly-later) before any cutover; a single physically-motivated monotonic threshold is far less overfit-prone than the 13-feature Dozier gate that died out-of-time, but the gate still applies.

Literature alignment. Verdict: AGREEMENT. Camera smoke detection is high-precision within line-of-sight and is range/visibility-limited; recall degrades with distance as the plume subtends fewer pixels [9]. Our monotonic range collapse (47%→4%) and the “model never fired” near-miss floor reproduce that. The night≥day result is the expected flame-radiance effect at night [3].

What this does not claim: that 0.30 is the final operating point (it is the swept optimum on this window, and the lever needs temporal-transport confirmation and a per-network re-tune before production — production currently uses per-network thresholds 0.55–0.85, stricter than the 0.5 reference here, so the live recall gain may differ); that precision is unaffected everywhere (it dips ~1 pt and could differ by network); or that lowering the threshold addresses the ~40% no-signal near-misses or the range floor — those need PTZ/az-aware framing or denser/closer cameras, i.e. coverage build-out, not a threshold.

Next research test: temporal-transport the 0.30 lever (earlier→later), re-tune per network, and shadow-log the recovered detections for a precision audit before proposing a cutover.

References: [9] · [3] · [6]

entry 0014

The camera-threshold lever survives out-of-time (where the Dozier gate died) — validated, and built shadow-first

Date: 2026-07-09   Status: POSITIVE, temporally validated + per-network robust — built as a gated shadow canary (not surfaced)

The framing. Entry 0014 found that lowering the single-frame smoke trigger 0.50→0.30 lifts detection-in-coverage 36.9%→49.4% at flat precision. Before building, we applied the exact discipline that killed the Dozier gate (entry 0012): does it hold out-of-time, and does it generalize across camera networks?

BLUF. It holds. Trained on 2026-07-01–04 and tested on the strictly-later 07-06–08, the 0.30 trigger still gains +8.3 pts of detection-in-coverage (34.8%→43.1%) at ~flat precision (56.1%→54.0%). It generalizes across every network — recall rises on all four vendors with precision essentially unchanged; on the purpose-built fire networks it is dramatic (HPWREN 45%→91% recall at 79% precision). This is the opposite of the Dozier gate, which inverted out-of-time. We therefore built it — shadow-first and gated: a hidden canary logs the would-surface detections; production is untouched until an explicit flip.

Temporal transport (train 07-01–04 → test 07-06–08, gap 07-05).

windowtriggerrecall-in-coverageprecision
train0.5036.2%58.1%
0.3050.5%59.3%
test (later)0.5034.8%56.1%
0.3043.1%54.0%

Out-of-time gain +8.3 pts recall, precision −2.1 pts (within the flat band). Verdict: HOLDS.

Per-network generalization (full window).

networkin-coveragerecall 0.50→0.30precision 0.50→0.30
HPWREN (fire cams)25445.3% → 90.6%78.1% → 78.6%
AlertCalifornia (fire cams)26073.8% → 90.0%78.9% → 81.3%
Caltrans (traffic)66125.9% → 39.6%55.7% → 54.1%
Windy (webcams)82332.6% → 49.9%40.3% → 39.3%

The 0.30 trigger lifts recall on every vendor with precision flat. Precision is network-driven (purpose-built fire cams 78–81% vs webcams 40–56%), not threshold-driven — so 0.30 generalizes as a global trigger, though surfacing tiers should still be per-network.

The operating point we would flip to, and its gate. A global single-frame trigger of 0.30 (replacing the per-network 0.55–0.85). Not flipped: it is built as a hidden shadow canary (cam_smoke_lowthresh_shadow) that logs every ≥0.30 detection, flags which are newly recovered vs the current per-network production thresholds, and records IRWIN proximity for a precision audit. On this run: 2,926 detections ≥0.30, of which 2,506 are newly recovered vs production, and 1,394 of those sit near a real IRWIN fire. The table is surface_allowed=0 with a DO_NOT_SURFACE marker and no serving-app read path; the production cam_smoke_daemon.py is byte-for-byte unchanged. Flip requires Mark's go plus a live precision audit of the newly-recovered set.

Reproducibility detail. Same coverage definition as entries 0008/0014 (IRWIN deduped 0.02°+day; online cam = produced a frame in ±24 h; in-coverage = within R=40 km of an online cam; detected = a covering cam has a smoke_prob≥trigger in ±24 h; precision = camera detection-events matching an IRWIN incident within R & ±24 h). Temporal split: train 2026-07-01..07-04, test 07-06..07-08, gap 07-05; incidents and events are attributed to a window by their own timestamp. Per-network: restrict cameras to the vendor; networks with <15 in-coverage fires are dropped. Truth: NIFC IRWIN. Read-only production DB. Honest caveat on the split: the camera detector only began dense continuous operation on 2026-07-01, so the strongest temporal separation the history supports is days-apart within one fire-weather regime — a weaker bar than a seasonal split. The per-network generalization is independent corroborating evidence, and the “near-IRWIN” shadow count is a 40 km/±24 h proximity proxy (an audit hook), not a confirmed precision. Shadow build: a load-guarded, health-gated oneshot on a 6 h idle-gap timer (SuccessExitStatus=75 143, resume-safe atomic write) writing only its own hidden table + canary_meta; grep confirms only the shadow daemon reads it and the serving app does not.

Claim status: POSITIVE, validated (out-of-time + per-network). Built as a gated shadow canary; not surfaced. This is the first lever in the series to pass the temporal-transport gate that entry 0012's Dozier gate failed — evidence the discipline distinguishes real levers from cross-validation artifacts, rather than only saying no.

Literature alignment. Verdict: AGREEMENT. Camera smoke detectors trade recall for precision monotonically with the confidence threshold; where the classifier is well-calibrated and the scene is line-of-sight, moving the operating point down recovers faint/early smoke at modest precision cost [9]. That the purpose-built fire networks gain most (and keep ~80% precision) matches their cleaner backgrounds vs general webcams.

What this does not claim: that 0.30 is production-ready as-is — the temporal split is days-apart (not seasonal), the shadow's near-IRWIN figure is a proximity proxy pending a real precision audit, and Windy's ~40% precision means a global surface would need per-network tiers or a higher Windy floor. It does not touch the range/geometry floor from entry 0014 (far fires and out-of-FOV misses are unaffected by any threshold). Next research test: run the shadow canary forward, audit the newly-recovered set's true precision against settled IRWIN over a longer, more separated window, then propose per-network surface tiers for Mark's flip decision.

References: [9] · [3] · [6]

entry 0015

References

  1. Schroeder, W. et al. (2014). The New VIIRS 375 m active fire detection data product. Remote Sensing of Environment 143, 85–96.
  2. Giglio, L. et al. (2016). The Collection 6 MODIS active fire detection algorithm and fire products. Remote Sensing of Environment 178, 31–41.
  3. Schroeder, W. et al. (2008). Validation of GOES and MODIS active fire detection products. Remote Sensing of Environment 112, 2711–2726.
  4. Jain, P. et al. (2020). A review of machine learning applications in wildfire science and management. Environmental Reviews 28(4), 478–505.
  5. Rodrigues, M. & de la Riva, J. (2014). An insight into machine-learning algorithms to model fire susceptibility. Environmental Modelling & Software 57, 192–201.
  6. Short, K. C. (2014). A spatial database of wildfires in the United States (FPA-FOD): reporting completeness and bias considerations. Earth System Science Data 6, 1–27.
  7. Dozier, J. (1981). A method for satellite identification of surface temperature fields of subpixel resolution. Remote Sensing of Environment 11, 221–229.
  8. Schmidt, C. C. et al. (2012). The GOES-R Advanced Baseline Imager Fire/Hot Spot Characterization (FDC) algorithm. NOAA/NESDIS ATBD.
  9. Govil, K. et al. (2020). Preliminary results from a wildfire detection system using deep learning on remote camera networks. Remote Sensing 12(1), 166.
  10. Xu, W. & Wooster, M. J. et al. (2020). First study of Sentinel-2 for detecting and characterising active fires. Remote Sensing 12(19), 3181.