Parallax Domain Qualification · Lab Book · 2026-10-15 · data: MRMS radar-only QPE, IMERG Late V07 (merged, IR, MW), GOES-16 ABI band 13, USCRN + ASOS gauges · July 2024 (replication: August 2024), CONUS · built 2026-10-15

Precipitation: does structural disagreement among independent observers carry information?

An investigation that started as a domain-qualification test and followed the evidence. Read each claim as confirmatory (pre-registered before measuring), exploratory (found after) or hypothesis (proposed, untested). Every claim carries result + sample + where-it-fails.
Status (2026-10-15, paused after T10). The original question is closed, negative. The thread it opened, structural collocation, has one robust empirical result: the observer ranking depends on which observers form the triplet, and replacing either satellite with gauges reverses it. It replicated on an unseen period (August 2024, frozen pipeline, all six pre-registered predictions met; T10, §12). Reading the four-observer pattern as an error shared by the two satellites is conditional on radar and gauge errors being independent, under assumed radar–gauge error correlations, satellite dependence detected up to 0.475–0.5 (July) and through the tested maximum of 0.5 (August); radar's ranking clear (interval excluding reversal) up to 0.275–0.4 (July), 0.375–0.4 (August) (T7-S); the actual value is not measured. After an external review, the synthetic control was rebuilt with a mass-conserving blur (T1-bis): structural collocation recovers centroid and dispersion with correct rankings, a planted shared satellite error reproduces the inversion, and five observers identify a shared pair in simulation (under its assumptions); the earlier "smoothing creates shared error" (F6) is withdrawn. Decision gate reached (GATE.md); T9 and the T10 replication run since; paused for discussion. Start with the summary; experiments follow in order.
Review corrections (2026-10-15). An external review (GPT, reading the lab book and preprint without the code), checked here against the code, found: (1) the T1 dispersion estimates rank the observers wrongly with nothing planted (radar-like 0.121 estimated vs 0.046 true; microwave-like 0.058 vs 0.137), so dispersion is demoted; (2) "all assumptions met" was wrong for T1's σ_sh = 0 case, since the extracted coordinates' errors were already correlated; (3) the simulated blur widened cells with fixed peaks, which does not conserve rain mass, added widths linearly, and was read inside clipping windows, so F6 and the baseline shared error may be rendering or windowing artefacts; (4) the three tetrads satisfy t2 − t1 = t3, so they are two independent constraints, and an interval containing zero shows compatibility, not "no other breach"; (5) "constant" coupling across anvil terciles should read "no detectable change"; (6) T5's smoothness match was approximate (radar 0.759 at the chosen step vs microwave 0.700) and its sample changed along the ladder; (7) the satellite attribution and the +0.35 to +0.51 correlations are conditional on radar–gauge error independence. The text below has been corrected; superseded claims are marked.
Contents · Summary · 1 Why precipitation · 2 Observers and data · 3 Experiment 1: radar error at gauges · 4 Literature step · 5 Experiment 2: structural collocation (Probe A) · 6 Experiment 3: raw GOES infrared (Probe A2) · 7 Experiment 4: T1 synthetic anchor · 8 Experiment 5: T5 smoothness vs physics · 9 Experiment 6: T6 core vs area · 10 Experiment 7: T7 gauges as fourth observer · 11 Experiment 8: T8 anvil fraction · 12 Corrected controls and replication: T1-bis, T7-S, T9, T10 · 13 What the evidence shows · 14 What it does not show · 15 Open threads · 16 Chronological trail · 17 Reproducibility

Summary of the collocation thread

What was asked. Can disagreement among physically independent observers of one rain field be turned into a measurement of each observer's error, with no ground truth? The mathematics exists for amounts (triple collocation: each observer's error variance from three observers' covariances). This thread applied it to structural coordinates (where the rain sits, how spread it is) and followed what came out.

What happened, in one line per step.

stepquestionresultwhat it changed
Probe Acollocate radar, IMERG infrared, microwavestable on structure; ranks microwave above radaran unexpected ranking
Probe A2replace IMERG infrared (microwave-calibrated) with raw GOESsame rankingcalibration link not supported as the cause
T1synthetic fields with known truthcentroid recovered; dispersion mis-ranked; a planted shared satellite error reproduces the ranking (superseded by T1-bis: blur not mass-conserving)the ranking reread as a possible shared-error signature; islands and wet fraction dropped
T5blur radar to microwave smoothnessranking persists under the tested smoothing (approximate match, sample changes)smoothing procedure not sufficient; GOES parallax detected, not shared
T6read cores only; split by intensity and radar beam qualitynot core keying; worst in light rain; not radar beam qualitywhere the error lives
T7gauges as a sharp, independent fourth observerwith gauges as a leg, the ranking reverses (radar least noisy); GOES–microwave error correlation +0.35 to +0.51 if radar and gauge errors are independentthe reversal established; the satellite attribution conditional
T7-Rrobustness: drop the other satellite; four-observer tetradsradar still least noisy; tetrads show two groups, {radar, gauges} vs {GOES, MW}, compatible with one split (two independent tetrad constraints)T7 robust to the choice of satellite
T8does the coupling grow with anvil (cloud beyond rain)?no detectable change in coupling (≈ 0.4); triplet bias grows where every observer is noisiera simple "anvil" cause not supported
T1-bisrebuild the synthetic control with a mass-conserving blur; measure coordinate-error independence directlyfull canvas: centroid errors uncorrelated, dispersion small residual (+0.021); windows add small shared error; all variables recovered with correct ranking; planted shared error inverts at σ_sh = 1.0; five observers identify the pair 10/10, no false alarmsF6 withdrawn; dispersion reinstated; synthetic support restored
T9real-data window grid; smoothness on a fixed sample with a close match (lag-1 within 0.013)shifted and larger windows: inversion and point reversal intact; close smoothness match (σ* 0.4): gap +0.218, unchangedrobust to the tested grids and the smoothness match; windowing in general not excluded
T10does it replicate on an unseen period? August 2024, frozen July codeall six predictions met: area inversion +0.259, point reversal -0.286, c(GOES, MW) +0.425; T7-S does not tip by 0.5effect not specific to July; identification limit unchanged
T7-Show much radar–gauge error dependence would undo the attribution?dependence detected to 0.475–0.5; ranking clear (by interval) to 0.275–0.4, point flip 0.425–0.5 (August: dependence through 0.5, ranking clear to 0.375–0.4, no point flip by 0.5)the conditional attribution has a quantified tolerance
thread
A: radar minus microwave noise fraction (centroid y) through the experiments. Whenever the two satellites are two of the three legs, collocation rates radar worse; swapping one satellite for gauges reverses it. B: on synthetic fields with known truth, a planted shared satellite error produces this reversal (original T1; confirmed at σ_sh = 1.0 by the corrected T1-bis).

Where knowledge stands.

Rules for structural collocation, learned here (for the tested variables, simulation and observing configuration):

  1. Prefer geometric coordinates; with a correct (mass-conserving) blur, centroid and dispersion were recovered and ranked correctly; threshold counts (islands, wet fraction) failed in the original simulation, were not re-tested, and are excluded from interpretation.
  2. A shared error among the legs is invisible to the estimator; it shows up only as a plausible-looking but wrong ranking.
  3. Check independence after feature extraction and windowing, not only from the hardware; simulation details (here, a blur that did not conserve mass) can create shared errors of their own, and windows add a small one.
  4. Independence is a property of what each observer responds to, not of the hardware (now in RUBRIC.md Gate 6).
  5. The bias from a shared error is largest where all observers are noisiest (light rain, anvil-heavy windows).
  6. Always anchor on synthetic fields with known truth before reading a real-data ranking (house rule I-20).

Terms. Observer: one independent measurement of the same rain field (radar, GOES infrared, microwave, gauges). Collocation: estimating each observer's error from the covariances of three or more observers, with no truth. Leg: one of the three observers in a triplet. Instrument: in the four-observer check, the two observers assumed independent that let one estimate the error correlation of the other two. Noise fraction: 1 − ρ², the share of an observer's variance not shared with the common signal (0 = perfect, 1 = pure noise). Inversion: collocation rating microwave less noisy than radar. Point support: every observer read at the same gauge locations.

1. Why precipitation

The domain-qualification rubric (v2, domain-qualification/RUBRIC.md) scored four desk candidates. Weather spatial verification, reframed as observation disagreement (radar vs satellite vs gauge), was the only one with public, use-unrestricted data large enough for a powered test (scorecard candidates/04_precipitation_spatial_verification.md). Its weaker gates were stated in advance: the label (a point error is not an arrangement, Gate 4 PARTIAL) and the incumbents (SAL, MODE, FSS, MRMS quality layers). The first test was built to fail fast on exactly those.

2. Observers and data

ObserverWhat it measures physicallySource (access)Used in
R · MRMS RadarOnly_QPE_01Hradar backscatter → rain rate, not gauge-adjusted; 0.01° → 0.1° block meanNOAA Open Data, AWS noaa-mrms-pds (open)all
RQI · RadarAccumulationQualityIndex_01HMRMS's own radar quality (beam height, blockage, freezing level)sameExp. 1 (incumbent)
M · IMERG Late mergedKalman-morphed blend of microwave and infrared estimatesNASA GES DISC (Earthdata token)all
IR · IMERG IRprecipitation (PDIR)geostationary IR → rain, calibrated to the microwave estimates (ATBD)same fileExp. 1, Probe A
MW · IMERG MWprecipitationpassive-microwave retrievals, quantile-matched to CORRA (spaceborne radar–radiometer)same fileProbes A, A2
GIR · GOES-16 ABI band 13raw 10.3 µm brightness temperature; cold-cloud field 235 − TbNOAA Open Data, AWS noaa-goes16 (open)Probe A2
G · gaugesUSCRN (130 CONUS, triple weighing gauges) and ASOS (2,175) hourly precipitationNCEI; Iowa Environmental MesonetExp. 1 (label only)
one hour through every observer
One wet hour seen by each observer, on the common 0.1° grid. Radar and microwave place the rain bands similarly; the infrared estimate and the raw cold-cloud field are broader and displaced (anvils, parallax). Bottom right: the 1.5° windows that entered Probe A2 this hour.
coverage
Where the evidence came from. Left: label gauges for Experiment 1. Right: Probe A2 windows over July 2024; the GOES CONUS sector thins west of ~120°W, which removes western windows.

3. Experiment 1: does structural disagreement predict radar error at gauges? confirmatory

Design (frozen in FEASIBILITY_PLAN.md, with two amendments written before any target or predictor value existed). Target: E = |radar-only at the gauge pixel − gauge|, hourly. 504 hours, 1–21 July 2024; discovery 1–10 July, validation 11–21 July, read once. Baseline: 1 − RQI, two plain radar–satellite difference maps, and the radar and satellite values at the gauge. Structural reads: 14, borrowed from the program's instruments (Saltimbanques islands / void / dispersion / edge dependency; Core42 multiscale; HTAN persistence; the variance-of-disagreement determination; an infrared third observer). Rule: go if Δρ ≥ 0.02 with a cluster-bootstrap 95% CI above 0 (clusters = UTC day × 5° tile). Seismology guardrails applied: near-zero Ω check, and a spatial-scramble null.

Sample: 288,690 gauge-hours (ASOS 271,511; USCRN 17,179); 423 discovery and 533 validation clusters. Near-zero om_loc share 0.0024%.

Modelρ validationΔρ vs baseline95% CIΔρ under scramble nullRule
frozen v0 (om_loc, om_pat)0.6855+0.0000[-0.000, 0.000]+0.0003 [-0.000, 0.001]not met
variance only (σ space, σ time)0.6868+0.0014[0.001, 0.002]+0.0031 [0.002, 0.004]not met
FULL A2 (14 reads), headline0.6869+0.0014[0.001, 0.002]+0.0031 [0.002, 0.004]not met
baseline0.6855
Result: stop rule met. No structural read adds held-out information about hourly radar error at gauges. The small positive Δρ is not spatial: the scramble null, which breaks the radar–satellite pairing, gives a larger increment (+0.0031), consistent with the lag and missingness terms. Sample: 155,935 validation gauge-hours. Where it fails: one summer regime; the label is a point.
feasibility
A: increment over baseline, real vs scramble null, with the +0.02 go bar. B: each read's partial Spearman with radar error after controlling for rain amount (discovery block): every structural read is within ±0.04, most against the predicted positive sign; MRMS's own quality index also adds nothing. C: resolution-floor sweep (0.3°–1.0°): no rung is correctly signed.

Anatomy of the label

label
A: hourly radar vs gauge at the gauge pixel. B: absolute error grows with rain amount. C: structural disagreement is largest in light, scattered rain, where absolute errors are small, so raw disagreement correlates negatively with error (om_iou raw ρ -0.37).
readraw ρpartial ρ (all)partial ρ (USCRN)n (discovery)
inc+0.003-0.019+0.030132,755
naive1+0.679-0.207-0.209132,755
naive2+0.498-0.033-0.043132,755
om_loc-0.164-0.013-0.005132,755
om_pat-0.121-0.015-0.002132,755
om_iou-0.371-0.001+0.010132,755
om_islands-0.076-0.009-0.029132,755
om_disp-0.253-0.005-0.004132,755
om_void+0.124-0.014-0.018132,755
om_scale-0.051-0.018-0.005132,755
om_scale_rec-0.104+0.012+0.014132,755
om_edge-0.268-0.041-0.027132,755
om_pat_persist-0.138-0.013-0.003132,755
om_loc_ir-0.181+0.003+0.018106,217
om_pat_ir-0.062+0.004+0.033106,217
om_sigma_space+0.146-0.004-0.020109,277
om_sigma_time-0.218+0.002+0.03296,009
om_loc_mw-0.124-0.009+0.01055,659
om_pat_mw-0.089-0.013+0.01555,659

Resolution sweep (partial ρ, n=98,751): om_pat -0.028 / -0.024 / -0.017 / -0.013; om_loc -0.027 / -0.018 / -0.013 / -0.009 at 0.3° / 0.5° / 0.7° / 1.0°. Gate 6 here: radar-error vs satellite-error at gauges r = 0.47 (PARTIAL; both are measured against the same gauge, which inflates r). Predictor audit I = 0.196, top pair om_pat~om_scale 0.95 (same correlation before and after 3 × 3 smoothing).

4. Literature step: why the null, and what maths exists

Nineteen papers were pulled (literature/INDEX.md). Two bodies of work mattered:

Mapping to program methods, and the four probes ranked from it, are in RESEARCH_SYNTHESIS.md. Probe A was run first because it needs no gauge label.

5. Experiment 2: structural collocation, (R, IMERG IR, MW) confirmatory

Design (PROBE_A_PLAN.md). Non-overlapping 15 × 15-cell (1.5°) windows, every hour; a window-hour enters when all four observers carry rain and microwave covers ≥ 80% of it. Per observer: wet fraction, intensity-weighted centroid (y, x), dispersion, island count, and log mean rain as the value control. Estimator: ETC noise fraction 1 − ρ² for the triplet (R, IR, MW); quadruple check of merged IMERG's error correlation with IR and MW using the other two as instruments; 500 cluster-bootstrap resamples. Predictions: (1) radar least noisy; (2) IR noisier than MW; (3) merged most error-correlated with MW. Stop if most structural variables are unstable.

Sample: 25,468 window-hours, 1199 clusters.

variableRIR (IMERG)MWboot. share negativestable
wet fraction0.349 [0.324, 0.375]0.611 [0.581, 0.640]0.007 [-0.027, 0.038]0.34no
centroid y0.254 [0.240, 0.269]0.538 [0.519, 0.557]0.070 [0.057, 0.084]0.00yes
centroid x0.290 [0.273, 0.305]0.567 [0.550, 0.583]0.122 [0.109, 0.136]0.00yes
dispersion0.570 [0.548, 0.594]0.778 [0.763, 0.795]0.278 [0.245, 0.308]0.00yes
islands0.677 [0.632, 0.715]0.932 [0.920, 0.945]0.628 [0.584, 0.671]0.00yes
log mean rain (value)0.408 [0.383, 0.435]0.609 [0.587, 0.631]-0.028 [-0.054, -0.006]1.00no
variablemerged–IR error corr.merged–MW error corr.
centroid y0.02 [-0.00, 0.05]0.26 [0.07, 0.39]
centroid x-0.02 [-0.05, 0.01]0.36 [0.28, 0.44]
dispersion-0.03 [-0.05, 0.00]0.31 [0.22, 0.39]
islands0.05 [0.03, 0.07]0.37 [0.32, 0.41]
Result: stop rule not triggered (4 of 5 structural variables stable; the value control unstable in 100% of resamples). Prediction 1 not met (0/5; microwave least noisy). Prediction 2 met (5/5). Prediction 3 met for merged–MW (0.26–0.37); merged–IR ≈ 0, not the smaller positive value predicted.

Post-hoc check exploratory

Hypothesis: radar and IR share an hour-integrated footprint the microwave snapshot lacks, biasing MW's error low. If so, MW covering both half-hours should raise its noise fraction.

posthoc
Observed the reverse (n both = 3,487, one = 21,981). The footprint explanation is not supported.

The IMERG V07 ATBD (in literature/) then confirmed that IMERG's infrared estimate is PDIR, calibrated to the passive-microwave estimates through a rotating 30-day accumulator, so (R, IR, MW) was not an independent triplet. That motivated Experiment 3.

6. Experiment 3: raw GOES infrared in place of IMERG IR confirmatory

Design (PROBE_A2_PLAN.md): identical, with GOES-16 band 13 brightness temperature (4 scans per hour, binned to 0.1°, cold-cloud field 235 − Tb) replacing IMERG IR. 502 of 504 hours (2 hours had < 3 scans and were dropped per plan). Test-hour alignment: radar vs cold cloud r = 0.39 at zero shift, best one cell displaced (geostationary parallax), not corrected.

Sample: 14,585 window-hours, 965 clusters.

variableRGIR (GOES)MWboot. share negativestable
wet fraction0.334 [0.304, 0.370]0.644 [0.609, 0.676]-0.007 [-0.047, 0.028]0.66no
centroid y0.257 [0.240, 0.275]0.505 [0.481, 0.530]0.036 [0.019, 0.050]0.00yes
centroid x0.282 [0.261, 0.303]0.524 [0.502, 0.546]0.089 [0.071, 0.105]0.00yes
dispersion0.534 [0.500, 0.566]0.841 [0.823, 0.858]0.244 [0.195, 0.287]0.00yes
islands0.659 [0.613, 0.707]0.924 [0.908, 0.938]0.585 [0.524, 0.637]0.00yes
log mean rain (value)0.408 [0.381, 0.437]0.682 [0.657, 0.712]-0.034 [-0.067, -0.004]0.98no
variablemerged–GOES IR error corr.merged–MW error corr.
centroid y0.01 [-0.03, 0.05]-0.34 [-1.69, 0.10]
centroid x-0.06 [-0.10, -0.01]0.20 [-0.05, 0.33]
dispersion-0.05 [-0.09, -0.02]0.27 [0.10, 0.38]
islands-0.01 [-0.03, 0.02]0.33 [0.25, 0.38]
collocation
Noise fraction per observer and variable, Probe A (left) and A2 (right), with 95% bootstrap intervals. Swapping in raw GOES infrared changed nothing about the ranking: microwave < radar < infrared on every structural variable.
arithmetic
A: raw correlations (A2). Radar and microwave agree most; the cold-cloud field agrees more with microwave than with radar, and that asymmetry drives the ranking: for centroid y, ρ²_MW = 0.85 × 0.69 / 0.61 ≈ 0.96 and ρ²_R = 0.85 × 0.61 / 0.69 ≈ 0.75. B: structural variables stable, value variables not, in both probes. C: estimated error correlations of merged IMERG with its inputs, recovered without truth.
Result: stop rule not triggered. Prediction 1 not met (0/5); prediction 2 met (5/5); prediction 3 partly (merged–MW clearly positive on dispersion and islands; merged–GOES IR ≈ 0). The IMERG-IR calibration route was not the cause of Probe A's ranking.

7. Experiment 4: T1 synthetic anchor confirmatory

Why: house rule I-20, never quote a read without a machine-perfect control. Probes A/A2 produced claims with no control. Design (T1_PLAN.md): 20,000 rain-like 15 × 15 windows with known truth (1 + Poisson(1.5) Gaussian cells, lognormal intensities). Simulated observers re-render the same cells: radar-like R (position sd 0.5, no blur), microwave-like S1 (sd 0.8, blur +1), infrared-like S2 (sd 1.5, blur +2), merged M = 0.6·S1 + 0.4·S2, and an independent fifth observer G (blur +1.5). A planted shared error d_sh, one displacement per window applied to both S1 and S2, swept over σ_sh = 0, 0.5, 1.0, 1.5 cells. Reads and estimators are the Probe A code, unchanged.

variable (σ_sh = 0)R estimate / truthS1 estimate / truthS2 estimate / truthboot. share negative
centroid y0.074 / 0.0450.085 / 0.1160.267 / 0.2950.00
centroid x0.076 / 0.0440.084 / 0.1180.260 / 0.2870.00
dispersion0.121 / 0.0460.058 / 0.1370.266 / 0.3320.00
islands0.925 / 0.3730.483 / 0.9530.943 / 0.9950.00
wet fraction0.189 / 0.030-0.011 / 0.1600.311 / 0.4281.00
log mean rain (value)0.121 / 0.0580.088 / 0.1490.253 / 0.3010.00
σ_shR (centroid y) est. / truthS1 est. / truthS2 est. / truthS1–S2 error corr. (instrument G) est. / truth
0.00.074 / 0.0450.085 / 0.1160.267 / 0.295-0.05 / 0.16
0.50.113 / 0.0450.082 / 0.1500.260 / 0.3180.14 / 0.29
1.00.212 / 0.0450.072 / 0.2370.241 / 0.3780.43 / 0.50
1.50.336 / 0.0450.060 / 0.3490.216 / 0.4590.63 / 0.66
T1
A: with no planted shared error (not "every assumption met": coordinate errors were already correlated), centroid and dispersion estimates sit near the identity line in size; islands and wet fraction do not. B: as the planted shared satellite error grows, the estimate underrates S1 and overrates R; the ranking flips from σ_sh = 0.5, reproducing the real-data pattern. C: the estimated S1–S2 error correlation tracks the planted one but reads low with a blurred instrument; a sharp instrument (exploratory) recovers it, including the 0.16 present with nothing planted.
Scored: P1 met for centroid (max error 0.034) and, in absolute terms only, dispersion (0.079; ranking wrong: radar-like 0.121 vs true 0.046, microwave-like 0.058 vs 0.137), not for islands or wet fraction. P2: value collocation stable (0% negative) but ~0.06 off. P3 met (flip from σ_sh = 0.5). P4 partly (within 0.10 at σ_sh ≥ 1.0; 0.15–0.21 low below). P5 not met (merged check degenerate: undefined or out of bounds on centroids). Unplanned result: with nothing planted, the two blurred observers' structural errors correlate (centroid 0.16); a sharp instrument recovers it (0.14 vs 0.16; 0.50 vs 0.50 at σ_sh = 1.0), a blurred one cannot. Superseded in part (review): the blur widened cells with fixed peaks (mass not conserved; widths added linearly) and fields were clipped by windows, so this correlation may be a rendering or windowing artefact rather than an effect of smoothing; all T1 results were provisional until T1-bis, which now supersedes them (§12).

8. Experiment 5: T5: shared smoothness or shared physics? confirmatory

Design (T5_PLAN.md): blur radar with a Gaussian (normalised convolution) before windowing, over a ladder σ = 0–3 cells, plus σ* chosen from field properties alone: the blur at which radar's median lag-1 autocorrelation matches the microwave field's. Collocation on the independent triplet (radar, GOES IR, microwave), centroid y, centroid x and dispersion only. A synthetic calibration arm (T1 fields, radar-like observer blurred) shows what each cause predicts. Prediction: if smoothness drives the real ranking, nf_radar − nf_microwave falls to ≤ 0 at σ*; if shared physics does, it stays above 0.

Smoothness match: microwave lag-1 0.700; radar 0.633 unblurred, 0.759 at 0.5 cell → σ* = 0.5 cell.

radar blur σnnf_R − nf_MW, centroid ycentroid xdispersion
0.014,751+0.224 [0.196, 0.251]+0.193 [0.164, 0.223]+0.288 [0.222, 0.357]
0.5 (σ*)14,819+0.214 [0.186, 0.240]+0.181 [0.151, 0.210]+0.304 [0.240, 0.374]
1.014,978+0.193 [0.165, 0.223]+0.161 [0.134, 0.191]+0.333 [0.259, 0.408]
1.515,129+0.181 [0.154, 0.212]+0.144 [0.116, 0.174]+0.373 [0.299, 0.445]
2.015,263+0.166 [0.141, 0.192]+0.128 [0.100, 0.154]+0.404 [0.335, 0.483]
3.015,467+0.155 [0.126, 0.186]+0.111 [0.084, 0.140]+0.463 [0.375, 0.539]
T5
A: on real data the radar-minus-microwave gap shrinks slowly with blur but never crosses zero, even at σ = 3 (far smoother than microwave). B: synthetic calibration: smoothness alone never creates the inversion; a shared displacement does, and blurring radar only shrinks it, the same shape as A. C (exploratory): GOES cold cloud sits increasingly north of radar rain with latitude (geostationary parallax, ~0.9 cell at 45–55°N); microwave does not follow, so parallax is not the shared error.
latitude bandnGOES IR − radar (centroid y, cells; − = north)MW − radar
(20, 30]2,315+0.46+0.41
(30, 35]3,978-0.04+0.08
(35, 40]2,588-0.16-0.05
(40, 45]1,987-0.47+0.01
(45, 55]3,717-0.90-0.12
Result: at σ* the gap stays above zero on both centroids (centroid y +0.214 [0.186, 0.240]). (Superseded by T9's fixed-sample close match, which gives the same answer.) The tested smoothing procedure is not sufficient to remove the inversion (match approximate: radar 0.759 at the chosen step vs microwave 0.700; sample changes along the ladder). This does not exclude resolution or representativeness effects in general. The real ladder has the shape of the synthetic shared-displacement case. Exploratory: the structural reads detect GOES parallax unprompted; it is GOES-specific, not shared with microwave.

9. Experiment 6: T6: do the satellites share an error by keying on convective cores? confirmatory

Design (T6_PLAN.md): H_core says both satellites are pulled toward convective cores while radar sees the full surface rain area. Tests on the (radar, GOES IR, microwave) triplet: P1 re-read every observer on its own core (cells ≥ its window's 80th percentile); P2 split windows by radar light-rain mass fraction (< 5 mm/h); P3 check whether the satellites sit nearer radar's core centroid than its full-area centroid.

prediction under H_coreresult
P1core reading shrinks nf_R − nf_MWnot met: core +0.207 [0.179, 0.235] vs full +0.224 (centroid y)
P2inversion grows with light-rain fractionmet in form: top − bottom tercile +0.146 [0.089, 0.211]; but two-thirds of windows are all light rain, so the split is "has a heavy core" vs "all light"
P3satellites nearer radar's corereversed: nearer the full area (median paired difference -0.96 cells GOES, -1.10 MW); caveat: core centroids are noisier

Exploratory follow-ups: where does the inversion live? By radar window peak intensity, and by MRMS radar quality index (beam overshoot is the obvious alternative: radar could be genuinely worse in light, shallow rain far from the radar).

radar peak (mm/h)nnf_R − nf_MW, centroid ynf_Rnf_MW
≤ 2.12,951+0.333 [0.257, 0.406]0.3940.062
≤ 5.22,950+0.224 [0.170, 0.283]0.2730.048
≤ 10.02,950+0.206 [0.149, 0.264]0.2380.031
≤ 17.72,950+0.180 [0.143, 0.222]0.1870.008
≤ 95.42,950+0.115 [0.086, 0.147]0.1340.019
window RQIweak rain (below median peak)strong rain
0.25+0.262 [0.206, 0.329]+0.165 [0.109, 0.222]
0.82+0.259 [0.181, 0.335]+0.143 [0.104, 0.180]
0.96+0.317 [0.225, 0.427]+0.169 [0.134, 0.204]
T6
A: reading cores leaves the inversion in place. B (exploratory): the inversion triples from the strongest to the weakest windows. C (exploratory): it does not fall with better radar beam quality; it is largest in the best-beam, weak-rain windows.
Result: mixed against H_core; core keying is not supported. The shared satellite error concentrates in light rain, and radar beam quality (RQI) does not explain it.

10. Experiment 7: T7: whose error is it? Gauges as a fourth observer confirmatory

Why: with three observers the inversion is algebraically r(GOES, MW) > r(radar, GOES); it cannot say whose error it is. T1 showed a sharp, independent fourth observer can. Rain gauges are that observer: point measurements of surface rain used by neither MRMS radar-only, IMERG Late nor GOES. Design (T7_PLAN.md): Probe A2 windows with ≥ 5 reporting gauges; every observer read at the gauge points (its value in each gauge's 0.1° cell); point centroids; split at the median radar peak. P0: the (radar, GOES, MW) triplet reproduces the inversion at point support. P1: replace GOES with gauges; a shared satellite error predicts the inversion vanishes, a radar light-rain error predicts it stays. P2: GOES–MW error correlation with radar and gauges as instruments; shared satellite error predicts > 0.

Sample: 2,402 window-hours (median 9 gauges per window); split at 15.8 mm/h. This sample is wetter than T6's (rain is required at the points).

variablestratumP0: (R, GOES, MW) nf_R − nf_MWP1: (R, MW, gauges) nf_R − nf_MWP2: GOES–MW error corr.
centroid yweak (n=1,201)+0.195 [0.116, 0.281]-0.196 [-0.260, -0.134]+0.350 [0.287, 0.418]
centroid ystrong (n=1,201)+0.185 [0.119, 0.255]-0.216 [-0.270, -0.167]+0.450 [0.386, 0.516]
centroid xweak (n=1,201)+0.203 [0.104, 0.312]-0.259 [-0.335, -0.202]+0.361 [0.284, 0.437]
centroid xstrong (n=1,201)+0.302 [0.227, 0.393]-0.365 [-0.444, -0.282]+0.508 [0.458, 0.557]
T7
A, B: noise fractions at point support. With the two satellites as the other legs, radar looks noisier than microwave; with gauges in place of GOES, radar is the least noisy observer and microwave the noisiest. C: the GOES–microwave error correlation, measured with radar and gauges as instruments.
Result: P0, P1 and P2 met, in both strata. Replacing a satellite with gauges reverses the ranking (weak, centroid y: radar 0.063, gauges 0.225, microwave 0.259). With radar and gauges as instruments, the GOES and microwave errors correlate at +0.35 to +0.51; this estimate, and reading the inversion in Probes A, A2, T5 and T6 as an artefact of a shared satellite error, are conditional on radar and gauge errors being independent. Not established: the cause.

Robustness check of T7 confirmatory (pre-registered, T7R_PLAN.md)

T7 replaced GOES with gauges. Two checks it left open: the mirror triplet (replace microwave instead), and four-observer consistency. With four observers and one common signal, independent errors make three products of correlations equal ("vanishing tetrads"). A single shared GOES–microwave error inflates only r(GOES, MW), so the tetrad that excludes that pair (t3) should stay ≈ 0 while the two that include it (t1, t2) turn positive. Same sample, bootstrap seed 11.

checkweak, yweak, xstrong, ystrong, xpredicted
R1: nf_R − nf_GOES in (R, GOES, gauges)-0.592 [-0.694, -0.494]-0.624 [-0.730, -0.520]-0.409 [-0.493, -0.330]-0.560 [-0.661, -0.464]< 0
R1: nf_R − nf_gauges in (R, GOES, gauges)-0.215 [-0.313, -0.125]-0.255 [-0.372, -0.158]-0.097 [-0.177, -0.026]-0.247 [-0.361, -0.136]< 0
R2: nf_R with GOES dropped − with MW dropped-0.029 [-0.072, 0.006]-0.027 [-0.086, 0.024]+0.036 [-0.002, 0.070]+0.034 [-0.024, 0.088]≈ 0
R3: tetrad t3 (excludes the GOES–MW pair)+0.014 [-0.003, 0.033]+0.012 [-0.010, 0.033]-0.021 [-0.041, 0.001]-0.014 [-0.037, 0.009]≈ 0
R3: tetrad t1+0.120 [0.089, 0.153]+0.137 [0.098, 0.177]+0.140 [0.113, 0.167]+0.203 [0.176, 0.234]> 0
R3: tetrad t2+0.134 [0.099, 0.173]+0.148 [0.107, 0.191]+0.120 [0.083, 0.156]+0.189 [0.154, 0.229]> 0
triplet (weak, centroid y)radarGOES IRmicrowavegauges
radar, GOES, MW0.2580.5120.063—
radar, GOES, gauges0.0330.625—0.248
radar, MW, gauges0.063—0.2590.225
GOES, MW, gauges—0.5270.0340.405
Result: R1, R2 and R3 met in both strata and on both axes. Radar is least noisy whichever satellite is dropped, and its noise fraction does not depend on the choice. Triplets holding both satellites deflate microwave and inflate the third leg; triplets holding one satellite agree with each other. The tetrads are compatible with a single two-group split, {radar, gauges} vs {GOES, microwave}; since t2 − t1 = t3 they are two independent constraints, and an interval containing zero does not rule out other dependence. Identification caveat (found afterwards by tetrad_audit): four observers cannot tell a shared GOES–microwave error (relative to surface rain) from a shared radar–gauge error (relative to a cloud-system signal). Reading it as a satellite error rests on taking surface rain as the target; a fifth observer, under explicit assumptions about its own signal and errors, could separate the two.

11. Experiment 8: T8: is the shared error driven by cloud and ice aloft beyond the rain? confirmatory

Design (T8_PLAN.md): anvil fraction = share of GOES cold-cloud cells with no radar surface rain. On the T7 gauge-instrumented sample, split into anvil terciles (means 0.12, 0.43, 0.75). P1: GOES–MW error correlation grows with anvil. P2: the (R, GOES, MW) inversion grows. P3: the (R, MW, gauges) ranking keeps radar least noisy throughout. Anvil fraction correlates -0.34 with radar peak.

anvil (mean)GOES–MW error corr.(R, GOES, MW) nf_R − nf_MW(R, MW, G) nf R / MW / Gshared cov. (cells²)error var. GOES / MW / gauges
0.12+0.375 [0.282, 0.462]+0.054 [-0.005, 0.114]0.028 / 0.217 / 0.1801.315.32 / 2.29 / 2.31
0.43+0.409 [0.300, 0.499]+0.178 [0.079, 0.268]0.049 / 0.217 / 0.2071.636.15 / 2.57 / 3.24
0.75+0.389 [0.321, 0.464]+0.362 [0.241, 0.512]0.081 / 0.325 / 0.2482.649.75 / 4.72 / 4.70
T8
A: no detectable change in the normalised coupling of the two satellites' errors with anvil extent. B: how badly the triplet is fooled grows threefold. C (exploratory): in absolute terms the shared covariance doubles, but every observer's error variance grows with it, gauges included.
Result: mixed. P1 not met (top − bottom +0.014 [-0.097, 0.111]); P2 met (+0.308 [0.194, 0.455]); P3 holds. No change in the satellites' error coupling was detected across terciles; anvil-heavy (lighter-rain) windows are noisier for every observer, so anvil fraction is confounded and not identified as a specific driver.

12. Corrected controls and replication: T1-bis, T7-S, T9, T10 confirmatory

Why: the external review (see the corrections box above) found that T1's blur did not conserve mass and that the satellite attribution assumed independent radar and gauge errors. Two pre-registered checks followed, with a decision gate after them.

T1-bis: synthetic assumption audit (T1BIS_PLAN.md)

Truth rendered on a 64 × 64 canvas; blur is a true, mass-conserving Gaussian convolution; reads on the full canvas and in 15 × 15 windows (central and shifted). Analytical reference passed: centroid shift ≈ 10⁻¹⁵ cell, squared dispersion grows by 2σ² within 0.04%.

regionS1–S2 error corr. (cy)(cx)(d)max |error|, ranking: cydd²
full canvas-0.001+0.009+0.0210.002 ✓0.005 ✓0.007 ✓
central window+0.009+0.018+0.0570.003 ✓0.011 ✓0.012 ✓
window shifted (+3,+3)+0.019+0.015+0.1230.006 ✓0.024 ✓0.024 ✓
window shifted (−3,+4)+0.023+0.020+0.1400.005 ✓0.031 ✓0.031 ✓

Planted shared S1–S2 displacement, centroid y, full canvas: at σ_sh = 0.5 estimates R 0.090 / S1 0.095 (truth 0.046 / 0.135), not inverted; at σ_sh = 1.0 R 0.199 / S1 0.084 (truth 0.046 / 0.230), inverted. Five-observer benchmark (tetrad audit, 10 blocks): planted S1–S2 found 10/10, planted R–Gs (mirror) found 10/10, no false alarms with nothing planted.

T7-S: radar–gauge sensitivity (T7S_PLAN.md)

One-signal model for radar, gauges, GOES and microwave with an assumed radar–gauge error correlation ρ_RG (swept 0–0.5) and a free GOES–microwave error correlation, fitted by maximum likelihood. The fit is identical at every ρ_RG (the data cannot fix it), so the sweep traces the equivalence class.

caseGOES–MW error corr. at ρ_RG = 0ρ*₁ (no longer detected)ρ*₂ (ranking flips)admissible
weak, centroid y+0.361 [0.294, 0.427]0.50.425≥ 0.5
weak, centroid x+0.368 [0.279, 0.447]0.50.475≥ 0.5
strong, centroid y+0.431 [0.361, 0.498]not reached (≤ 0.5)0.475≥ 0.5
strong, centroid x+0.500 [0.442, 0.555]not reached (≤ 0.5)0.5≥ 0.5
T1-bis and T7-S
A: with a mass-conserving blur, the satellite-like observers' centroid errors are uncorrelated on the full canvas (dispersion keeps +0.021); windows add a little (dashed: the T1 value from the non-conserving blur). B: a planted shared satellite error inverts the ranking at σ_sh = 1.0. C: the inferred GOES–microwave error correlation (solid) and radar minus microwave noise fraction (dotted) as the assumed radar–gauge error correlation grows.
Result: T1-bis met its predictions: centroid errors uncorrelated on the full canvas (dispersion +0.021, within the pre-registered |r| < 0.05 but not zero), all variables recovered with correct rankings, the planted-error inversion reproduced at σ_sh = 1.0, and the five-observer design identifies a shared pair in either direction. F6 is withdrawn. T7-S: the satellite dependence stays detected for assumed radar–gauge error correlations up to 0.475–0.5; radar's ranking as least noisy is clear by interval up to 0.275–0.4 and its point estimate flips at 0.425–0.5. (Corrected after the third review: the earlier "ranking survives up to about 0.4" was read from point estimates.) See GATE.md.

T9: real-data window grid and fixed-sample smoothness (T9_PLAN.md)

checknnf_R − nf_MW, centroid ycentroid x
baseline grid (15 × 15)14,751+0.224 [0.198, 0.255]+0.193
half-shifted grid14,691+0.199 [0.174, 0.227]+0.175
25 × 25 windows8,435+0.181 [0.146, 0.211]+0.191
point reversal (radar, gauges, MW), half-shifted grid3,061-0.231 [-0.269, -0.196]-0.297
point reversal, 25 × 25 windows3,084-0.210 [-0.253, -0.174]-0.248
fixed sample, radar blurred to matched smoothness σ* = 0.414,725+0.218 [0.192, 0.250]+0.188
fixed sample, σ = 314,725+0.145 [0.121, 0.176]+0.104
Result: predictions met. The window grid does not drive the inversion (shifted and larger windows within 20% of baseline; point reversal intact), and on a fixed sample with radar matched to microwave smoothness (lag-1 0.687 vs 0.700) the gap is unchanged. The inversion is robust to the tested grid shift and window size and to the smoothness match; windowing and representativeness effects in general are not excluded (the 25 × 25 gap is about a fifth smaller).

T10: replication on an unseen period (T10_PLAN.md)

The July pipeline, frozen with script hashes, run on 2024-08-01 01:00 to 08-22 00:00 UTC; August data were fetched only after the plan was frozen. Before any August analysis the period switch was added and July was rerun: every results file reproduced byte-for-byte. An independent re-implementation from the plan files alone (audit/AUDIT.md) also reproduced 101 July quantities to 4 × 10⁻⁹. Gates: 1,933 point-support window-hours, 14,738 area window-hours, largest negative-variance share 0.10; not inconclusive.

quantityJuly (in-sample)August (T10)met
H1area Δ cy+0.221 [0.194, 0.250]+0.259 [0.228, 0.289]yes
H1area Δ cx+0.193 [0.164, 0.224]+0.189 [0.161, 0.214]yes
H2point (R,GIR,MW) Δ weak cy+0.195 [0.116, 0.281]+0.244 [0.124, 0.366]yes
H2point (R,GIR,MW) Δ weak cx+0.203 [0.104, 0.312]+0.244 [0.140, 0.362]yes
H3point (R,MW,G) Δ weak cy-0.196 [-0.260, -0.134]-0.286 [-0.374, -0.181]yes
H3point (R,MW,G) Δ weak cx-0.259 [-0.335, -0.202]-0.329 [-0.419, -0.249]yes
H3point (R,MW,G) Δ strong cy-0.216 [-0.270, -0.167]-0.210 [-0.286, -0.138]yes
H3point (R,MW,G) Δ strong cx-0.365 [-0.444, -0.282]-0.279 [-0.355, -0.215]yes
H4mirror R1_R_minus_IR weak cy-0.592 [-0.694, -0.494]-0.572 [-0.675, -0.468]yes
H4mirror R1_R_minus_G weak cy-0.215 [-0.313, -0.125]-0.174 [-0.276, -0.061]yes
H4mirror R1_R_minus_IR weak cx-0.624 [-0.730, -0.520]-0.659 [-0.780, -0.541]yes
H4mirror R1_R_minus_G weak cx-0.255 [-0.372, -0.158]-0.299 [-0.449, -0.154]yes
H5c(GIR,MW) weak cy+0.350 [0.287, 0.418]+0.425 [0.317, 0.518]yes
H5c(GIR,MW) weak cx+0.361 [0.284, 0.437]+0.402 [0.322, 0.487]yes
H6tetrad t1 weak cy+0.120 [0.089, 0.153]+0.164 [0.108, 0.219]yes
H6tetrad t2 weak cy+0.134 [0.099, 0.173]+0.158 [0.101, 0.215]yes
H6tetrad t3 weak cy+0.014 [-0.003, 0.033]-0.006 [-0.025, 0.013]yes
Result: Replicated. H1 area inversion, H2 point-support inversion, H3 reversal with gauges (both strata), H4 mirror triplet, H5 GOES–microwave error correlation and H6 tetrad pattern all hold in August on both axes. Magnitudes are similar or somewhat larger (c(GOES, MW) weak stratum +0.425 / +0.402 vs July +0.350 / +0.361). Sensitivity: in August the satellite dependence stays detected through 0.5, the top of the tested range; the ranking's point estimate has not reversed by 0.5 (gap -0.017), but its interval includes reversal from 0.375–0.4. In July the point estimate flipped at 0.425–0.5. Replication across adjacent months with the same instruments, processing and season shows repeatability, not attribution. Deviations (all mechanical, listed in T10_RESULTS.md): the data root is chosen by working directory; a missing stations-table producer was added (byte-identical on July); the H1 interval uses the Probe A2 bootstrap draws with Δ added; IMERG was fetched with one download per file (arrays identical on a July test file). What T10 does not change: four observers still cannot separate the satellite reading from correlated radar–gauge errors, and both months are adjacent warm-season CONUS.

13. What the evidence shows

Finding IDs are stable identifiers (the trail refers to them); the list is ordered by weight, not by ID.

F1: the original question is answered, negative confirmatory. Hourly point error of radar QPE is carried by rain amount and point-vs-pixel noise; no structural read, and not MRMS's own quality index, separates beyond magnitude. Sample: 288,690 gauge-hours. Where it fails: one warm-season month; longer accumulations and areal labels untested.
F2 (revised after T1-bis): collocation on structural coordinates recovers centroid and dispersion with correct rankings on a corrected synthetic control confirmatory. With a mass-conserving blur, maximum error ≤ 0.006 (centroid) and ≤ 0.031 (dispersion) across full canvas and windows, rankings correct. The original T1 dispersion mis-ranking came from the non-conserving blur. Islands and wet fraction are unvalidated (they failed in the superseded simulation and were not re-tested) and excluded from interpretation. The real-data contrast (value collocation unstable: 100% and 98% impossible variances) is not a property of value collocation, which is stable on synthetic fields; it is a property of the real observers' amount relationships.
F3 (revised after review): the four-observer pattern is consistent with an error shared by the two satellites relative to surface rain confirmatory (the reversal) / conditional (the attribution). With gauges as a fourth observer the ranking reverses to radar < gauges < microwave (T7); if radar and gauge errors are independent, the GOES–microwave error correlation is +0.35 to +0.51, and the inference survives assumed radar–gauge error correlations, satellite dependence detected up to 0.475–0.5 (July) and through the tested maximum of 0.5 (August); radar's ranking clear (interval excluding reversal) up to 0.275–0.4 (July), 0.375–0.4 (August) (T7-S; the actual value is not measured). The reversal, the error correlation and the tetrad pattern replicated on August 2024 (T10). A planted shared error reproduces the original inversion on the corrected control (T1-bis, σ_sh = 1.0); the tested smoothing, parallax, convective-core keying and radar beam quality did not explain it (T5, T6; parallax and beam quality exploratory). The shared error looked concentrated in light rain in T6; T7's wetter sample shows it in both halves. T8: no change in its normalised strength (~0.4) was detected across anvil extent, so "aloft-only cloud" in that tested form is not supported. Cause open; a coupling without detectable change fits both satellites observing the cloud system rather than surface rain everywhere.
F8: collocation with a sharp independent observer recovers the physically expected ranking on real data confirmatory. Radar 0.06, gauges 0.22 (point-vs-pixel representativeness), microwave 0.26, from three observers and no truth, at point support; the same with GOES in place of microwave (radar 0.03), and the four-observer tetrads are compatible with a single two-group split (T7-R; two independent constraints; four observers cannot say which side is "the error" without fixing the target, and the scores are true error rankings only if radar and gauge errors are independent). The method works on real data once its independence premise is met, and it detects when that premise fails.
F6: WITHDRAWN (was: smoothing is a shared error mechanism). T1-bis showed that with a mass-conserving blur the centroid errors of blurred observers are uncorrelated on the full canvas (|r| ≤ 0.01; dispersion keeps a small +0.021); the T1 value (0.16) came from the blur not conserving mass. Windows add a small shared error (centroid ≤ 0.02, dispersion up to 0.14). What survives: check independence after feature extraction and windowing, and audit the simulation itself.
F10: five observers identify a shared pair confirmatory (in simulation). On the corrected control, the tetrad audit with five observers flagged a planted shared satellite pair and the mirror radar–gauge pair 10/10 each, with no false alarms when nothing was planted. This is the design that would remove the real-data ambiguity, given a fifth observer whose independence can be argued; the 10/10 holds under the simulation's assumptions.
F9: how badly a three-observer collocation is fooled depends on conditions even when the coupling does not confirmatory. The radar–GOES–MW inversion rises from +0.05 to +0.36 across anvil terciles while no change in the GOES–MW error correlation (near 0.4) is detected: larger absolute errors appear to amplify the coupling's effect. A practical rule for collocation users: the bias from a shared error is worst where all observers are noisy.
F7: the structural reads detect geostationary parallax unprompted exploratory. GOES cold-cloud centroids sit north of radar rain by an amount that grows with latitude, -0.90 cells at 45–55°N (~10 km), the known high-cloud parallax for a satellite over 75°W. A validation that the reads see real geometry.
F4: who agrees with whom exploratory. On centroid position, radar–microwave r ≈ 0.85; radar–GOES IR ≈ 0.61; GOES IR–microwave ≈ 0.69.
F5: a rubric lesson exploratory. Independence must be judged by the physical quantity each observer responds to, not by the instrument, and derived products can be linked by calibration chains. Added to RUBRIC.md Gate 6 (v2.1).

14. What this does not show

15. Open threads (investigator next steps)

T1: synthetic anchor: done (§7).
T5: shared smoothness vs shared physics: done (§8). The tested smoothing is not sufficient; a fixed-sample, close-match version was run in T9 (§12).
T1-bis, T7-S and T9: done (§12). Decision gate: GATE.md. On real data the inversion is robust to the tested window grids and the smoothness match. T10 (August replication): done, replicated (§12). Remaining, not started: a real fifth observer; lineage benchmark; a different season or region.
T6: core vs full area: done (§9). Core keying not supported; error lives in light rain.
T7: whose error is it: done (§10). A dependence pattern consistent with a shared satellite error, conditional on radar–gauge independence (§10, §12); replicated in T10. T3 (surface observer) is answered by T7.
T8: anvil fraction: done (§11). No detectable change in coupling; anvil confounded with light rain.
Cause of the shared error (candidates, not started). (a) Joint anvil × intensity stratification to separate the two; (b) cloud-system vs rain-field geometry: compare the satellites' centroids with the GOES cold-cloud centroid itself (if MW tracks the cloud system, its error should point toward the cold-cloud centroid); (c) a different microwave product (GPROF swath, not IMERG-gridded) to rule out IMERG gridding/processing as the shared step.
T2: blind lineage test. Products with a documented family tree: IMERG Early / Late / Final (shared inputs, different morphing and gauge calibration), MRMS radar-only vs multi-sensor, Stage IV. Does structural collocation recover the known tree without being told it?
T3: the ice-aloft hypothesis. Replace one satellite with a surface-rain observer that has no ice sensitivity and is sharp (T1: a blurred instrument cannot see shared error), e.g. a dense-mesonet areal gauge field. Prediction: radar's noise fraction falls below microwave's.
T4: longer accumulations. Re-run Experiment 1 at daily or event totals and areal labels, to map how the point-noise floor moves with accumulation.

16. Chronological trail

  1. Rubric v2 written; four candidates desk-scored; precipitation (observation disagreement) chosen for the only fully public, powered data.
  2. Step 0: confirmed open access to MRMS, IMERG (Earthdata token), USCRN, ASOS. Re-stated the target to radar-only error so every gauge is independent of the predictors.
  3. Feasibility plan frozen; Amendment 1 (Saltimbanques, Core42, HTAN reads; infrared third observer) and Amendment 2 (variance of disagreement, resolution floor, seismology guardrails) added before any result.
  4. Data pulled and reduced in memory (MRMS 1,008 files, IMERG 2 × 1,008, gauges 1.1 M rows); grid and timing alignment checked (correlation peaks at zero offset).
  5. Experiment 1 read once: stop rule met; scramble null larger than real.
  6. Literature pulled (19 papers): representativeness explains the null; triple collocation is the formal maths.
  7. Probe A frozen and run: stable structure, ranking MW < R < IR; post-hoc footprint idea refuted; ATBD confirms IMERG IR is microwave-calibrated.
  8. Probe A2 frozen and run with raw GOES infrared: same ranking; calibration route excluded; ice-aloft hypothesis proposed; rubric Gate 6 updated.
  9. Original question closed; collocation thread kept open; lab book started.
  10. T1 synthetic anchor frozen and run: structural collocation valid for centroid and dispersion; shared error reproduces the real ranking; smoothing found to be a shared error mechanism; F2 and F3 revised; T5 set as next.
  11. T5 frozen and run: radar blurred to (and beyond) microwave smoothness, inversion persists; synthetic arm matches the shared-displacement case; exploratory check finds GOES parallax, not shared with microwave; F3 revised, F7 added.
  12. T6 frozen and run: core keying not supported (P1 not met, P3 reversed, P2 met in form); exploratory splits put the shared error in light rain, independent of radar beam quality; F3 revised; T7 set.
  13. T7 frozen and run: gauges as a sharp fourth observer; shared GOES–microwave error measured (+0.35 to +0.51); replacing a satellite with gauges reverses the ranking (radar least noisy); F3 resolved in existence and size; F8 added; T8 set.
  14. T8 frozen and run: no detectable change in GOES–MW coupling across anvil terciles (P1 not met); the triplet inversion grows threefold (P2 met); exploratory absolute errors show all observers noisier in anvil-heavy windows; F3 updated, F9 added; cause candidates set (first labelled T9; the name was later given to the window and smoothness test).
  15. Lab book consolidated (summary, glossary, data manifest, limitations). T7-R robustness check frozen and run: mirror triplet and tetrads all as predicted.
  16. External review (GPT) checked against the code: blur not mass-conserving, dispersion mis-ranked, tetrads dependent, several "not detected" read as "excluded", attribution overstated. Text corrected; F2, F3 revised; F6 under review; T1-bis and T7-S frozen.
  17. T1-bis run: corrected blur passes the analytical reference; coordinate errors independent on the full canvas; all variables recovered with correct rankings; planted inversion at σ_sh = 1.0; five-observer benchmark 10/10 with no false alarms. F6 withdrawn, F2 reinstated, F10 added. T7-S run: attribution survives assumed radar–gauge error correlation up to ≈ 0.4. Decision gate (GATE.md).
  18. T9 frozen and run: shifted and larger windows leave the inversion and point reversal intact; fixed-sample close smoothness match (lag-1 within 0.013) leaves the gap unchanged. Paused at the gate for discussion.
  19. Second external review: wording tightened (close match, not exact; robust to tested variants, not closed; threshold counts unvalidated; T7-S bound and five-observer result stated as conditional on their assumptions). No numbers changed. Replication plan T10 written and frozen before any August data was fetched.
  20. Third external review (after T10): "beyond 0.5" overstated a grid that stops at 0.5; sensitivity now reported by interval in both months (dependence to 0.475–0.5; ranking clear to 0.275–0.4 in July, 0.375–0.4 in August; the earlier "ranking survives to about 0.4" was point-estimate based). "Excluded" softened to "tested, not supported within the tested variants". Replication stated as repeatability, not attribution.
  21. Technical note review: "coordinate errors independent on the full canvas" narrowed to centroids; dispersion keeps a small residual (+0.021 in T1-bis; +0.031 [+0.005, +0.056] in the note's minimal example), origin unresolved. Note at notes/synthetic-shared-error/.
  22. Claim ledger added (REVIEW.md, this section, paper §5.1): the tetrad result stated first as a failure of the one-signal, independent-error model; untested comparisons with existing methods listed as not claimed.
  23. Independent re-implementation audit (separate session, from plan files only): 101 July quantities reproduced to 4 × 10⁻⁹; four details fixed by code rather than plans recorded in audit/AUDIT.md.
  24. T10 run: period switch added, July reproduced byte-for-byte; August fetched (504 MRMS and GOES hours, 1,008 IMERG half-hours, 2,295 gauge stations); all six pre-registered predictions met. Verdict: Replicated. Paused for discussion.

17. Reproducibility

Everything is in Documents/russell/precip-disagreement/. Raw files were never stored: each was streamed, reduced (block means, crops, gauge-pixel samples) and discarded. Reduced arrays live in data/ (git-ignored, ~1.9 GB). Credentials: an Earthdata token in secrets/ (git-ignored, owner-only).

cd precip-disagreement
uv venv --python 3.12 .venv && uv pip install --python .venv/bin/python numpy scipy pandas h5py eccodes eccodeslib matplotlib pypdf
.venv/bin/python scripts/fetch_gauges.py          # USCRN + ASOS -> data/gauges.csv
.venv/bin/python scripts/make_stations.py        # unique stations -> data/stations.csv (reproduces the original inline step)
.venv/bin/python scripts/fetch_mrms.py            # MRMS radar-only + RQI, top-of-hour -> data/mrms/
.venv/bin/python scripts/fetch_imerg.py           # IMERG Late merged, cropped -> data/imerg/
.venv/bin/python scripts/fetch_imerg_extra.py     # IMERG IR, MW, randomError -> data/imerg_x/
.venv/bin/python scripts/analyze.py               # Experiment 1 -> data/results.json, samples*.csv
PYTHONPATH=scripts .venv/bin/python scripts/probe_a.py          # Probe A
PYTHONPATH=scripts .venv/bin/python scripts/probe_a_posthoc.py  # post-hoc (labelled)
.venv/bin/python scripts/fetch_goes.py            # GOES-16 band 13 -> data/goes/
PYTHONPATH=scripts .venv/bin/python scripts/probe_a2.py         # Probe A2
PYTHONPATH=scripts .venv/bin/python scripts/t1_synthetic.py     # T1 synthetic anchor (seed 20261015)
PYTHONPATH=scripts .venv/bin/python scripts/t1_explore.py       # T1 exploratory E1, E2
PYTHONPATH=scripts .venv/bin/python scripts/t5.py               # T5 (synthetic arm, smoothness match, ladder)
.venv/bin/python scripts/t5_offsets.py                          # T5 exploratory offsets
PYTHONPATH=scripts .venv/bin/python scripts/t6.py               # T6 core vs area
PYTHONPATH=scripts .venv/bin/python scripts/t6_intensity.py     # T6 exploratory: by intensity
PYTHONPATH=scripts .venv/bin/python scripts/t6_rqi.py           # T6 exploratory: by RQI
PYTHONPATH=scripts .venv/bin/python scripts/t7.py               # T7 gauges as fourth observer
.venv/bin/python scripts/t7_robust.py                           # T7-R robustness (mirror triplet, tetrads)
.venv/bin/python scripts/t1bis.py                                # T1-bis corrected synthetic audit (seed 20261016)
.venv/bin/python scripts/t7s.py                                  # T7-S radar–gauge sensitivity (seed 13)
PYTHONPATH=scripts .venv/bin/python scripts/t9.py               # T9 window grid + fixed-sample smoothness (seed 21)
PYTHONPATH=scripts .venv/bin/python scripts/t10_area.py _july    # T10 H1 interval on July (same draws as Probe A2)
.venv/bin/python scripts/t10_score.py _july                      # T10 scorer, July reference
# T10 August: cd runs/aug (data -> ../../data_aug), export PRECIP_PERIOD=aug, then
#   fetch_gauges, make_stations, fetch_mrms, fetch_goes, fetch_imerg_both; probe_a2, t10_area, t7, t7_robust, t7s, t10_score
PYTHONPATH=scripts .venv/bin/python scripts/t8.py               # T8 anvil fraction
PYTHONPATH=scripts .venv/bin/python scripts/t8_abs.py           # T8 exploratory absolute errors
.venv/bin/python scripts/make_figures.py && .venv/bin/python build_labbook.py

Environment at build: Python 3.12.11 · numpy 2.5.4 · scipy 1.18.1 · pandas 3.0.6 · h5py 3.16.0 · matplotlib 3.11.2 · macOS-26.3-arm64-arm-64bit. Randomness: bootstrap seeds fixed in code (scramble null 20261015; decision bootstrap 7; collocation 11; T1 fields 20261015, G bootstrap 3, E2 noise 99; T5 bootstrap 5; T6 bootstraps 5, 6, 8; T7 bootstrap 7; T8 bootstrap 9; T7-R bootstrap 11; T7-S 13; T9 21; T10 reuses each analysis's own seed). Known deviations from plan: Experiment 1 excludes gauges within 1° of the domain edge (so the 1.0° sweep window fits); Probe A2 dropped 2 GOES hours per its own rule; the stations table was built inline after the gauge fetch (now reproduced by scripts/make_stations.py, byte-identical).

fileSHA-256 (first 16)
scripts/fetch_gauges.pyea8f390a5c858e98
scripts/fetch_mrms.pya9694e880be9ca85
scripts/fetch_imerg.py0e59f72e3633f089
scripts/fetch_imerg_extra.py2a051abe9a7799b0
scripts/fetch_goes.pyb4b1f0bf67ed27b3
scripts/analyze.pye30ebc58d0a866d7
scripts/probe_a.pyaa50a997b664759c
scripts/probe_a_posthoc.py42eeddb7bac8fc06
scripts/probe_a2.py259d8714d7ebf466
scripts/t1_synthetic.py267fb3a4ddf95c91
scripts/t1_explore.py721399c799b67d23
scripts/t5.py40d1dbe4fcfcc001
scripts/t5_offsets.py697727c1eb7e1f55
scripts/t6.pya1fa9be46a2a30de
scripts/t6_intensity.py908889c5e3cb25e0
scripts/t6_rqi.py6cb3138686370578
scripts/t7.py84b440bf959a51b7
scripts/t7_robust.py4adfcdcf0daafdb3
scripts/t8.pyec517db6599e6e1c
scripts/t8_abs.py61a14f5e29988fb2
scripts/t1bis.pyfff1f4c999f787cf
scripts/t7s.py0ebabbecc99c7262
scripts/t9.py6ca47b5bc59aa5aa
scripts/period.pyd47a9cc89d651f4e
scripts/make_stations.py3cadbeb12b243236
scripts/fetch_imerg_both.pyb7a713b095f019d0
scripts/t10_area.py22b88fd999ff3633
scripts/t10_score.py60af00bc5222bd5d
scripts/make_figures.py13453196d7b2dd23
build_labbook.pyb410c6f7f0fbac45
FEASIBILITY_PLAN.md49d833ff9efa83bd
FEASIBILITY_RESULTS.mdd7f2c06bb8c6dea3
RESEARCH_SYNTHESIS.mdde4c5f9e1cb72b22
PROBE_A_PLAN.mdb7d8d045863cc916
PROBE_A_RESULTS.mdc802fd2f6a88402c
PROBE_A2_PLAN.md0748d5e94ea9db49
PROBE_A2_RESULTS.mddf5fd332c4a05369
T1_PLAN.mddd6ddeaf3cff9c83
T1_RESULTS.md5d16a05cd01d7166
T5_PLAN.md970042e88b6d2bb4
T5_RESULTS.md51db8a402fb3a1d7
T6_PLAN.md17b3d99317e5607d
T6_RESULTS.md31cacd1b961b6010
T7_PLAN.md00ec8a27cc6f66ad
T7_RESULTS.mdbd1243beee2a6434
T7R_PLAN.mdc9f90abeed3bf6dd
T8_PLAN.mdcf31d5b03a80c560
T8_RESULTS.md7ceba56926596906
T1BIS_PLAN.mdc459c8cb76f19c28
T1BIS_RESULTS.mdd3c020908f0305db
T7S_PLAN.mdd7262cef23842258
T7S_RESULTS.md90d32b0426114561
T9_PLAN.md31a0f82f1739249d
T9_RESULTS.md59f97a9998ab05fe
T10_PLAN.mdcfaa617756b9769e
T10_RESULTS.md67d777d9a25771cb
GATE.mda51f872eb9006c27
literature/INDEX.mdafaf9ed3e64bd015
data/results.json0a6de2a10b7c9c8a
data/probe_a_results.jsonee0ca7455d5ec117
data/probe_a_posthoc.json4f0bb91ec710b41e
data/probe_a2_results.jsonce9bc6ed07888b25
data/t1_results.json79f589b0d7b5ffaf
data/t1_explore.jsonc5d7848b51ee20a6
data/t5_results.jsone38186cfda30e725
data/t5_offsets.json02333b8022f4ad8c
data/t6_results.jsonafbf5a576c9ba9ae
data/t6_intensity.json185e30a726b13f66
data/t6_rqi.json1549ac006d5a8dcf
data/t7_results.jsoncad351fc370d1a19
data/t7r_results.jsona56544ff658da0ef
data/t8_results.json4693f67cd2b2e03c
data/t8_abs.json8c52b2ba11008790
data/t1bis_results.json854d05db79fa1409
data/t7s_results.json2e90f4c04d63c2a3
data/t9_results.jsonec4206d4d0fb3c45
data/t10_area_july.json0789e8e01ffc1741
data/t10_score_july.jsonf340c60ea60f3dc3
data_aug/t10_area.json90615d0d8b349132
data_aug/t10_score.jsondcbf27c6fd893548
data_aug/t7_results.jsonb4a53bea93e24809
data_aug/t7r_results.jsonbdfd77b1877b6b8e
data_aug/t7s_results.json749780b0698403d3
data_aug/probe_a2_results.json2def94fc49c4cf20

Reduced input data (what every analysis reads; digest = SHA-256 over sorted file names and contents, first 16). Upstream archives can be reprocessed, so a rerun of the fetch scripts may not reproduce these digests exactly.

directory / filefilessizedigest
data/mrms/504227 MB2b590d699c3ca931
data/imerg/1,008988 MBeb21d4753b446255
data/imerg_x/1,008131 MB59be2c248ba1e366
data/goes/502319 MB659e034be857a808
data_aug/mrms/504229 MBf77e0243e4895db7
data_aug/imerg/1,008988 MBd24aecdedf7c3ea9
data_aug/imerg_x/1,008138 MBbbdf2afc5a5c6241
data_aug/goes/504320 MB9db03850a89f7f60
data/gauges.csv155.0 MB7161420d8187f783
data/stations.csv10.1 MBea22c9af9a53fcdb
data_aug/gauges.csv155.1 MB5f17e6d3f214b021
data_aug/stations.csv10.1 MBbfd5529bfa27ea04

Data sources: MRMS s3://noaa-mrms-pds; GOES-16 s3://noaa-goes16 (NOAA Open Data: open, attribution requested); IMERG GPM_3IMERGHHL.07 at NASA GES DISC (Earthdata login); USCRN ncei.noaa.gov/pub/data/uscrn/products/hourly02; ASOS via Iowa Environmental Mesonet asos.py. Literature in literature/ (git-ignored PDFs; index in literature/INDEX.md).