OLDGABE-only (US wildfire detection). A public record of measured results with honest bounds and full reproducibility. Nothing on this page changes a shipped OLDGABE number.
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
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)
AUC
PR-AUC
recall@90%p
recall@80%p
recovery model (detection features)
0.936
0.735
0.379
0.605
production tier_and_conf
0.951
0.544
0.065
0.095
production indep-families
0.500
—
0.000
0.000
production max-FRP
0.787
0.161
0.006
0.019
Truth2 (neutral polar, HMS-independent)
AUC
PR-AUC
recall@90%p
recall@80%p
recovery model (detection features)
0.845
0.511
0.064
0.272
production tier_and_conf
0.786
0.273
0.000
0.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:
truth
month-only
geo-only
detection-only
all
summer-share gap
Truth1
0.577
0.903
0.936
0.973
0.00
Truth2
0.567
0.877
0.845
0.932
0.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.
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
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)
AUC
PR-AUC
recall@80%p
detection-only recovery (deployed)
0.938
0.736
0.583
recovery + geo
0.973
0.797
0.719
all (+month)
0.974
0.803
0.722
geo-only
0.901
—
—
production tier_and_conf
0.950
0.539
0.092
Truth2 (neutral polar)
AUC
PR-AUC
recall@80%p
detection-only recovery (deployed)
0.860
0.573
0.368
recovery + geo
0.941
0.688
0.531
all (+month)
0.940
0.686
0.526
geo-only
0.886
—
—
production tier_and_conf
0.807
0.325
0.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 → test
truth
detection-only
recovery+geo
production
Jul → Jun
Truth1
0.961
0.985
0.963
Jul → Jun
Truth2
0.876
0.955
0.834
Jun → Jul
Truth1
0.888
0.934
0.941
Jun → Jul
Truth2
0.840
0.913
0.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.
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 tier
n
avg conf
avg GOES frames
IRWIN/perim match
confirmed (≥2 CORE agree)
620
0.884
14.4
37.7% (234)
probable
3,340
0.528
1.6
13.2% (442)
early (GOES-only)
6,982
0.05
1.3
5.5% (383)
weak (small n)
139
0.02
0.0
25.9% (36)
fp (flare/persistent)
360
0.00
1.9
10.6% (38)
raw single-detection baseline
4,000 sampled
—
—
8.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.
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 kept
precision (IRWIN match)
recall of Dozier positives
0.000 (ungated)
60,000
2.8%
100%
0.001
19,599
4.9%
57.6%
0.005
1,703
18.5%
18.7%
0.010
619
27.0%
9.9%
0.050
4
100% (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.
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…
recall
interpretation
polar (VIIRS/MODIS) near-match
27.2%
genuine polar detections
any-GOES near-match
92.4%
coverage floor (not skill)
GOES-persistent (≥3 h) near-match
66.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.
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.
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.
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):
source
precision
recall
tp
evidence n
OLDGABE-EVENTS (fused output)
18.2%
72.4%
3,355
18,394
HMS (smoke analysis)
16.0%
69.2%
6,906
43,214
VIIRS-N20
32.0%
58.7%
3,655
11,431
VIIRS-NPP
20.8%
31.3%
1,276
6,144
VIIRS-N21
19.7%
26.6%
1,012
5,150
MODIS
27.9%
22.2%
901
3,224
ABI-ADP-Smoke-G19
8.8%
24.1%
721
8,174
ABI-ADP-Smoke-G18
26.0%
24.2%
858
3,298
GOES19-ABI
15.8%
14.7%
521
3,304
GOES18-ABI
39.8%
14.6%
528
1,328
ABI-Dozier-Subpixel-G18
48.3%
1.3%
42
87
ABI-Dozier-Subpixel-G19
26.3%
1.3%
42
160
CAM-SMOKE
66.7%
1.2%
38
57
S1-SAR-BurnScar / S2-SWIR-Hotspot
—
0.0%
0
0
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.
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.
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.
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.
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):
metric
value
Dozier earlier than polar
53.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 point
single p_subpixel precision
multi-feature precision
recall 0.05
9.5%
39.9%
recall 0.10
8.0%
39.4%
recall 0.20
5.3%
32.6%
recall 0.30
4.8%
19.6%
PR-AUC
0.044
0.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.
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.
metric
value (95% CI)
IRWIN fires in S2 window
1,764
missed by all current sensors
191 (10.8%)
existing ingested-S2 unique marginal
0 / 191 = 0% (0–2%)
S2 scene availability over missed (sample 50)
100% (92.9–100%)
actual S2 SWIR active-fire hit
2 / 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.
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 point
single p_subpixel
multi-feature gate
precision @ recall 0.05
13.3%
41.7%
precision @ recall 0.10 (current gate)
11.6%
49.3%
precision @ recall 0.20
6.5%
50.8%
precision @ recall 0.30
4.8%
45.8%
recall to hold 49.3% precision
0.2%
10.0% (~50×)
PR-AUC
0.051
0.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.
metric
value
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 detection
4.3 h (IQR 2.0–7.4 h)
share with ≥1 h lead / ≥6 h lead
84.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.
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 split
single p_subpixel
multi-feature gate
holdout ROC-AUC (gate)
τ=0.965 recall
A — earliest 60% train / latest 30% test
39.8%
13.8%
0.60
0.0
B — split at median fire time (balanced positives)
31.0%
19.1%
0.64
0.0
Precision across the recall curve (single vs multi-feature, holdout). Single wins at every point:
recall
A single
A multi
B single
B multi
0.05
0.366
0.193
0.583
0.200
0.10
0.398
0.138
0.310
0.191
0.20
0.430
0.138
0.302
0.250
0.30
0.313
0.121
0.322
0.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.
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.
cohort
window (UTC)
Dozier n
early-cue n
tier precision
baseline
enrichment
median lead
A — matured, settled truth (05-30/31 backfill)
05-31→06-01
174,435
600
2.5%
1.0%
2.5×
24.6 h
B — recent, UNSETTLED truth (live 07-02+)
07-02→07-09
25,565
2,037
39.5%*
6.3%
6.3×
3.7 h
all blended (reproduces entry 0011)
05-31→07-09
200,000
2,637
31.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).
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).
driver
bin
fires
recall-in-coverage
range to nearest online camera
<15 km
725
47.4%
15–30 km
256
20.3%
30–40 km
102
3.9%
solar elevation (day/night)
day (≥0°)
538
30.5%
twilight (−6..0°)
51
27.5%
night (<−6°)
494
44.9%
fire size (IRWIN acres)
<10 ac
1,001
37.2%
10–100 ac
24
16.7%
>100 ac
13
15.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 trigger
recall-in-coverage
precision
camera events
0.50 (current)
36.9%
58.1%
1,037
0.45
39.9%
58.1%
1,371
0.40
44.7%
57.4%
1,771
0.35
46.5%
57.5%
2,229
0.30
49.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
candidate — not 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.
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).
window
trigger
recall-in-coverage
precision
train
0.50
36.2%
58.1%
0.30
50.5%
59.3%
test (later)
0.50
34.8%
56.1%
0.30
43.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).
network
in-coverage
recall 0.50→0.30
precision 0.50→0.30
HPWREN (fire cams)
254
45.3% → 90.6%
78.1% → 78.6%
AlertCalifornia (fire cams)
260
73.8% → 90.0%
78.9% → 81.3%
Caltrans (traffic)
661
25.9% → 39.6%
55.7% → 54.1%
Windy (webcams)
823
32.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.
Schroeder, W. et al. (2014). The New VIIRS 375 m active fire detection data product. Remote Sensing of Environment 143, 85–96.
Giglio, L. et al. (2016). The Collection 6 MODIS active fire detection algorithm and fire products. Remote Sensing of Environment 178, 31–41.
Schroeder, W. et al. (2008). Validation of GOES and MODIS active fire detection products. Remote Sensing of Environment 112, 2711–2726.
Jain, P. et al. (2020). A review of machine learning applications in wildfire science and management. Environmental Reviews 28(4), 478–505.
Rodrigues, M. & de la Riva, J. (2014). An insight into machine-learning algorithms to model fire susceptibility. Environmental Modelling & Software 57, 192–201.
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.
Dozier, J. (1981). A method for satellite identification of surface temperature fields of subpixel resolution. Remote Sensing of Environment 11, 221–229.
Schmidt, C. C. et al. (2012). The GOES-R Advanced Baseline Imager Fire/Hot Spot Characterization (FDC) algorithm. NOAA/NESDIS ATBD.
Govil, K. et al. (2020). Preliminary results from a wildfire detection system using deep learning on remote camera networks. Remote Sensing 12(1), 166.
Xu, W. & Wooster, M. J. et al. (2020). First study of Sentinel-2 for detecting and characterising active fires. Remote Sensing 12(19), 3181.