Fiber photometry of the suprachiasmatic nucleus — the brain's master clock — recorded continuously for 14–17 days in constant darkness, with wheel-running behavior and a single light pulse that resets the clock mid-record.
Calcium-dependent fluorescence (ΔF/F₀, 470 nm signal / 415 nm isosbestic correction) alongside the behavior stream, across the entire recording. The shaded band is the min–max envelope per 6-minute bin; the darker line is the smoothed signal. The gold line marks the light pulse. Expressed: —
Zeitgeber time is cumulative from recording start (ZT0 = lights-on convention of the prior LD cycle; in DD it free-runs). ΔF/F₀ baseline = mean of ZT14–22 on cycle 1, per the lab's MATLAB pipeline.
The classic circadian biology view: each row is one day, hours left→right. Darker = more wheel running. In constant darkness a healthy clock free-runs with τ slightly under 24 h, so activity onsets drift left. After the light pulse (gold row marker) the rhythm shifts — that's phase resetting, the SCN doing its job.
Every cycle at its native length, anchored at each animal's own activity onset (CT12): the average calcium day and the wheel-running rate beside it. Cycles are never stretched — a 23-h cycle occupies 23 h — so the 23–24 h tail is honest thinner, not filled. The pulse-containing cycle is excluded; everything before and after is kept.
—
The behavioral clock and the calcium clock each free-run with their own period. If SCN calcium is a faithful readout of the oscillator the wheel reports, the two periods should agree per animal — and they nearly do: calcium τ runs longer than wheel τ in all five animals, consistently across two independent estimators. Same direction everywhere; the magnitude depends on the estimator, which is the honest reading at n = 5.
Unity line: points on it would mean the two clocks share one period. The sign test asks whether more animals sit on one side of that line than coin-flip chance allows.
—
Zoomed to ±12 h around the pulse (15-second resolution). The GFP controls (#7382, #7386 — ΔF/F is movement artifact, not biology, per the Methods §12 QC screen) join every triggered average as their own n=2 series: a light-evoked deflection in GFP indicts movement artifact in the GCaMP response; its absence certifies signal. And the deflection is here: GFP 7382's pulse-triggered peak is +15.2% above baseline at +22 min — larger than any GCaMP animal (cohort max: 7390 at +13.7%), the movement-artifact signature the control exists to expose. This is photic phase resetting in action: a 30-min light pulse in the behavioral night acutely suppresses then releases SCN calcium, and the clock's phase is rewritten for the days that follow.
Pre/post periods below come from a χ² periodogram (Sokolove–Bushell) on wheel activity before vs. after the pulse. In DD, mice run ~23.3–23.6 h cycles — shorter than 24 h, as expected for the species.
One pulse per animal, aligned at pulse onset; baseline = that animal's mean over the 2 h to 30 min before the pulse; 1-min bins; shaded band = SEM across animals. The second-session pulses (ZT8: 7390 and the GFP pair 7382/7386) are pooled with the ZT12 pulses in their group means — n = 2 VIP / 3 D1, plus the GFP control pair (n = 2, never pooled into D1 despite the D1-Cre genotype), so these are displays, not stats. What they show: both groups rise during the 30-min pulse (VIP peak +6.7%, D1 +10.8% above baseline at pulse onset) — the acute excitation — then D1 falls to a sustained post-pulse trough (−3.7% at ~100 min) while VIP holds nearer baseline; by +6 h both are rising into the next calcium day.
t = 0 is light-pulse onset, native 15-s resolution, same per-animal baseline as the traces above. Group means with SEM bands.
t = 0 is light-pulse offset (lights back off, 30 min after onset), native 15-s resolution, same baseline convention. The acute dynamics at both edges of the pulse.
First-minute ΔF/F: the single 1-min bin after pulse onset (baseline as above). At 1-min resolution the “first 60 s” holds exactly one sample — this is a single-bin read, not a peak-finding window, and it is noise-dominated at that scale (GFP 7386 reads −0.75%). No latency axis: with one bin there is no latency to report. Troughs are not shown (retired 2026-09-18); the sustained post-pulse trough is described in the group-means footnote above. Hover for the animal's numbers.
Each animal carries two measurable oscillators: when it starts running (the behavioral clock) and the phase of its SCN calcium rhythm (the calcium clock — the S+6 sine-acrophase anchor defined in Methods). The light pulse rewrites both — but not identically, and the disagreements are the interesting part.
Each animal's two shifts are paired on one row: filled circle = behavioral clock, rotated square = calcium clock, connected by the within-animal line.
| Animal | Full shift | LOO range | Read |
|---|
Shift = pre/post-pulse regression difference at the pulse cycle, in circadian hours (×24/τ pre). Recomputed 2026-09-15 under the same CT metric as the scatter above (raw-ZT values superseded; per-animal superseded values retained in the data file). Calcium clock anchored on the per-cycle sine acrophase + 6 h (CT12 marker, the S+6 convention); the previous daily-minimum (CT18) anchor is retained as a labeled diagnostic and for the published-number reproduction gates.
The chart pairs each animal's behavioral-clock shift with its calcium-clock shift under the current S+6 sine-acrophase convention — the same convention the Methods and the estimator comparison use: —. The retired daily-minimum (CT18) anchor gave r = +0.53 on these same animals, and an earlier ΔF-weighted circular-mean estimator gave a spurious −0.93; each is a different quantity — a different calcium-clock definition, not a competing measurement of one number — and the retired anchor survives only as a labeled diagnostic in Methods. At n = 5 every value here is a lead, not a conclusion. 6978's advance is confirmed by its calcium clock (+2.16 vs behavioral +4.11); 7390's behavioral-clock advance (+4.32 CT) shrinks to +2.05 in the calcium frame — same sign, half the size, consistent with its wheel onsets pulling the behavioral estimate. Flag: 7390 runs in the opposite absolute-ZT half from the four 221014 animals (83% of wheel events in ZT0–12 vs 4–29%), consistent with a ~12 h difference in session ZT convention or release phase — within-animal CT analyses are unaffected; cross-session absolute-ZT comparisons are not.
The light pulse knocks the behavioral clock and the calcium clock out of alignment. Do they find each other again? φ (phi) is the per-cycle difference between the two clocks — CT12(calcium) − CT12(wheel) — so 0 means the two CT12s coincide. Before the pulse the two clocks hold a stable offset; after it, φ either relaxes back to the pre-pulse band (re-lock), drifts (the clocks free-run at different periods), or overshoots. The group view shows VIP and D1 means with thin per-animal lines; the animal dropdown (multiple recordings per animal viewable separately where the animal took more than one light pulse) drops to one animal's cycles. The pairs view plots each cycle's calcium CT12 and wheel CT12 (y = CT 0–24, ticks every 6 h) connected by a vertical line — the length of that line is φ.
Each pilot animal took a second, unlogged light pulse (photodiode-verified, DOY-288) one week after the first — but photometry ends 18–27 h before it for every animal, so this point is wheel-only. Post windows hold a single onset each (exploratory 1-point fits, not regression estimates). 6976 is excluded from this panel: its post-pulse wheel data lacks clean rest/onset structure for rhythm estimation (the same ~8 h suppression→re-onset is present, but the following ~34 h never settles into detectable onsets), and it is a single-span animal whose numbers are self-consistency-validated only. The exclusion is documented here rather than left as a silent absence. LP2 CT estimates carry a sensitivity caveat: over the fixed 168 h P1→P2 interval, post-P1 τ-drift moves the CT estimate by ~9.5 h for 6577 (τ 23.96→22.68 — real drift), ~4.2 h for 6977, ~2.4 h for 6978. The primary frame is the adjacent (pre-pulse) regression; the τ-swap bracket (23.96-h τ held fixed) clusters all three near midnight (~15/~22/~16 CT) instead of the diverse primary CTs (0.6/17.6/13.5). Both frames are shown in the tooltip; the spread is the τ-instability, worst where drift is largest.
| Animal | Pre φ (mean ± SD) | n pre/post | Dropped | Post points | Read |
|---|
φ = CT12(calcium) − CT12(wheel): the sine-acrophase calcium anchor + 6 h (calcium CT12), minus the paired wheel onset (pairing window: the onset within [anchor−4, anchor+16] h closest to anchor+6 h). Cycles are LP1-relative. 6976 renders with its two standing flags: calcium-anchor fragmentation (3/16 inter-anchor gaps outside 18–30 h, pre-LP2 anchor quality) and single-span/self-consistency-only validation. Its pre-pulse record is good — the exclusion is post-LP2 only, per the 2026-09-03 ruling.
When a mouse breaks a stillness of ≥10 min (left) or ≥5 min (right) and starts running, SCN calcium shifts. The size of that shift depends on circadian time — and the pattern differs between animals. The GFP controls join as their own series (n = 2, own color, never pooled): a bout-onset deflection in GFP is the expected movement signature; anything beyond it indicts artifact.
CT frame per the toggle above (behavior clock: wheel onsets = CT12, bins 12–24 the subjective night; calcium clock: the S+6 sine-acrophase convention). Peak = baseline-to-max in the first 60 s (z). Integral = area of the baseline-normalized trace over 0–180 s post-onset, computed per onset and then averaged within each CT bin (z·s). A trace that stays at baseline integrates to ~0; a negative-going trace to negative. No onset's 0–180 s window is truncated by recording end; the smallest bin (any animal, either frame) holds 20 onsets. (Three of 6978's onsets fall in a 68-min photometry gap near recording start and integrate to NaN — excluded from their bin mean by construction; no other bin loses members. GFP onsets: 7382 196, 7386 274 — wheel-frame only; the calcium-clock frame needs the S estimator, which never ran on QC-excluded calcium.) Under base→peak, 6977 and 6978 show the early-night > late-night gradient, 7390 doesn't, and VIP 6976 runs flat. Under the integral the ordering changes: 6977 and 6978 stay positive everywhere (6977 peaks at CT6–12 in the behavior frame, CT0–6 in the calcium frame), 6577 stays mildly positive, 7390 runs negative through the mid-cycle bins — and 6976, flat under base→peak, is negative in every bin, deepest in CT12–18 in both frames.
First rev after ≥5 min stillness; baseline-normalized (mean of −60…−10 s → 0). Shading = SEM across animals. Onsets whose −60→+180 s window lacks photometry coverage are excluded everywhere (window edges, recording gaps); legend n's count contributing onsets only, so per animal the four quartile n's sum to the All-view n (341–400 for the GCaMP animals; 196–274 for the GFP controls). Quartiles are of the behavior clock (wheel onsets = CT12): CT0–12 subjective day, CT12–24 night; the legend shows the animals contributing onsets in each quartile.
Increasers / decreasers (added 2026-09-18): at the whole-animal level the mean 0–60 s response splits the five GCaMP animals into increasers (#6577, #6977, #6978) and decreasers (#6976, #7390). The animal-average curve shown here is each animal's own mean; a per-onset split (averaging only increasing vs only decreasing onsets within an animal) needs per-onset data that this page's artifacts do not ship — that view is parked as a data dependency, flagged in the build PR, not silently omitted.
Splitting bout onsets by early (CT12–18) vs late (CT18–24) night gives the curves below. In bulk ΔF/F, VIP-Cre and D1-Cre animals share the same day-high profile: full-record day/night calcium ratio 1.04–1.14 in the wheel-CT frame, and a cycle-1 LD orientation test of 1.13–1.86 (day-high) in all five animals. The night-firing VIP⁺ subgroup reported in single-unit work is not resolvable in bulk fiber signal — that needs single-cell resolution.
What happens at the moment the lights go off for good: the time course of phase drift for behavior and calcium from the first hour of constant darkness, in one frame. Does the calcium clock carry the LD-entrained phase into free-run cleanly — and how fast does the internal τ drift establish once the external synchronizer is gone?
Not yet live — for a concrete reason: both exemplar sessions on this page (221014, 221128) start in constant darkness, so neither contains the LD→DD transition. The data for this section is identified: the Oct 24 – Nov 4 campaign (~11 d LD→DD, 10 animals, including 7381's earlier recording — a direct fiber-vs-animal test of its zero-periodicity exclusion). It lands here when that campaign is pulled and QC'd. Two checks gate the pull: confirming IDs "1"/"2" are the camera-test dummies rather than animals, and anchoring the DD switch point from the lab log and photodiode — the session's own params label it plain DD, so the transition time must come from outside the recording.
The Oct-24 campaign records were labeled DD, but the room photodiode had been disabled since Sep 28 — its silence proves nothing. Two independent behavioral controls answer the question instead: reference animals with known endogenous periods free-ran through the week before the campaign (the room was standing-DD), and light-masking released in all eight campaign animals across the DD span (lights-on would have suppressed their daytime running). The same analysis caught a method artifact: the night mask used for τ estimation clamps free-run onsets and reads certified free-runners as 24 h-locked — the earlier "entrained" headline is withdrawn.
—
Fraction of wheel running in the night window (ZT18–6), each animal's own logged-LD week (Oct 18–22) vs the DD span (Oct 24–Nov 4). Under LD, lights-on suppresses daytime running — night-only is the signature. If the "DD" span had actually been LD, these fractions would stay pinned at the top of the range. Instead daytime activity emerges in 8/8 animals.
—
| Animal | τ (session-run) | q-ratio | LD-week night frac. | DD-span night frac. | Read |
|---|
—
Ten animals across two sessions. D1-Cre and VIP-Cre drivers target distinct SCN-relevant cell populations; GCaMP6s reports calcium, GFlamp1 is a faster green indicator, and GFP animals are the fluorescence control — any "signal" there is movement artifact, not biology.
| Animal | Session | Genotype | Sensor | Sex | Record | τ pre | τ post | Δτ | ΔF/F range |
|---|
τ = free-running period from χ² periodogram (20–28 h window). Δτ = post-pulse minus pre-pulse period. GFP rows are controls; interpret their ΔF/F as artifact, not neural signal.
Everything on this page is computed by a Python port of the lab's MATLAB pipeline, checked against the lab's own MATLAB outputs to numerical exactness before being shown.
loading validation result…
Acquisition. Neurophotometrics 3-color fiber photometry: 470 nm (GCaMP/GFlamp1/GFP excitation), 415 nm (isosbestic control), 560 nm (tdTomato reference). LED states are frame-multiplexed in a single raw CSV stream; channels are demultiplexed on the 0.0039 trigger edge as in the lab's ProcessPhotometryAndWheelData.m.
Correction. Signal = 470/415 (divide-by-isosbestic for all animals here), 30-s centered median filter, ΔF/F₀ with F₀ = mean over ZT 14–22 of the first cycle. Wheel events (ZT-hour timestamps of revolutions) are histogrammed into 10-min bins.
Port validation. The Python demux was compared sample-for-sample against the MATLAB FullTrace.mat outputs: raw channels matched to ~1e-16, corrected signal r = 0.9998, ΔF/F r = 1.0000 (max abs diff ≈ 1.4e-6) on the pilot animal; the cross-session check runs live below against a second-session animal.
Average cycle (§02). Cycles are consecutive activity onsets (the shipped 18–30 h guard); the pulse-containing cycle is excluded and all others kept. The axis is elapsed hours from onset (CT12) — cycles occupy their native length; no resampling. Per-bin calcium = mean ΔF/F over the cycles that reach the bin (animal-first, then group mean ± SEM across animals). Wheel-running probability = fraction of reaching cycles with ≥1 event in the bin; cycles that end before the bin never enter its denominator. The 23–24 h tail thins because τ < 24 h in most animals — the count is on the badge, not smoothed away.
GFP controls (§04, §08). #7382 and #7386 express GFP/tdTomato (no GCaMP); their ΔF/F is movement artifact by the §12 QC screen — that is exactly what makes them the right control. A light-evoked deflection in a triggered GFP average indicts movement artifact in the GCaMP response; a bout-onset deflection is the expected movement signature; absence certifies signal. GFP appears as its own labeled n=2 series in every triggered average, never pooled into D1 despite the D1-Cre genotype. The calcium-clock (S+6) frame never ran on GFP calcium (QC-excluded), so GFP bout bins are behavior-frame only.
Light-pulse-triggered traces (§04). Group means are per-animal curves from the native 15-s ΔF/F (1-min rebin, per-animal baseline = mean over the 2 h to 30 min before pulse onset); the peak/trough readouts use an 8-min rolling mean (8×1-min bins) over the first 40 min from pulse onset (the 30-min pulse + 10 min after), latency measured from onset. Each animal contributes one pulse — ZT12 for the four 221014 animals, ZT8 for 7390 and the GFP pair (7382/7386, second session) — so the group curves are displays, not statistics.
Circadian metrics. χ² periodogram (Sokolove & Bushell 1978) on 10-min wheel histograms, 20–28 h period window (trial periods on a 0.1 h grid), computed separately pre/post light pulse.
How calcium circadian time (CT) is computed — the S+6 convention (updated 2026-09-03). The calcium clock's phase marker is the acrophase of a per-cycle least-squares sine fit (period fitted per animal — a global free-period sine fit on the same 30-min ΔF/F-weighted, 3-h-smoothed profile the published pipeline uses), with the CT12 marker placed at acrophase + 6 h. The shift is the pre-vs-post regression difference through the marker series evaluated at the pulse cycle, converted to circadian hours (×24/τpre); the continuity unwrap (consecutive marker differences constrained to 12–36 h) is part of the estimator definition. Why it changed: the previous anchor — the daily ΔF/F minimum, labeled CT18 — degrades on these traces because the calcium trough is a 5.5–9.5 h plateau: the argmin lands anywhere on the plateau, and on 6977's span it double-sampled one physical trough and missed another entirely, pushing that animal's published shift to +6.62 CT where the clean estimate is −0.54. The sine acrophase is not artifact-immune in principle — it needed the unwrap on two spans — but its failure mode is repairable, while a double-sampled plateau cannot be un-double-sampled. Numbers under the switch (canonical dashboard path, era-A cache): 6577 +0.93 → +0.40, 6976 −1.32 → −0.87, 6977 −2.59 → −0.54 (the published +6.62 checkpoint value was argmin-artifact-corrupted; corrected here with the artifact documented in the repeat-recordings appendix below), 6978 +3.40 → +2.16, 7390 −0.75 → +2.05. Fitted-period update (2026-09-14): the per-cycle acrophase fits now carry each animal's fitted τ rather than a fixed 24 h — the swap moved every published S-basis number by ≤0.12 CT h (shifts), ≤0.003 z (bout bins), +0.0004 (compensation pooled r), and ≤0.13 h (relock ψ). No reading changes. The daily-minimum anchor is retained as a labeled diagnostic — S-vs-T disagreement is how the 6977 artifact was caught — and all published numbers reproduce exactly under it (parity gate: 5/5 animals, d = 0.0000). The sine fit is absent from the in-vivo photometry phase-extraction literature (the field uses threshold/midpoint markers on smoothed ΔF), so this choice rests on the benchmark below, not on precedent. Path provenance: an earlier benchmark run on the era-B re-cut files (30-min bins, different F₀ window) gave S shifts of +0.63 / −0.13 / +1.87 for the three pilots; the numbers above ride the era-A cache arrays that feed this dashboard, and the 0.2–0.7 h differences between the two sets are bin-grid and F₀ path effects, not biology — both sets are archived with the estimator suite.
Estimator comparison, rendered from the data. The chart below overlays the three candidate calcium markers — daily-minimum argmin (T, the retired anchor), per-cycle sine acrophase (S, the current anchor), and a Brancaccio-style midrise crossing (M, diagnostic) — on the actual per-cycle series, per animal. The companion table gives the numbers: marker jitter (median interval deviation), wrap-flip counts, sine fit R², plateau occupancy, and the S-vs-T shift deltas. On clean spans T and S agree within 0.1–1.8 h; the divergence is exactly where the plateau artifacts live.
| Animal | T shift (pub) | S shift | ΔCT S−T | Jitter T/S/M pre (h) | Flips S/M | Sine R² | Plateau h (10%) |
|---|
Gate results for the switch: T-parity vs published exact (5/5); S-cleanliness zero flips (5/5) after unwrap; era-B reprocess deltas documented (S within ±0.66 CT except 6976's T-path +4.09, a known era-B F0/binning effect); DD free-run stability — S post-pulse residual SD 0.64–2.27 h vs T's 1.14–4.28 h, i.e. the sine acrophase does not degrade in long free-runs the way argmin degrades on plateaus (the fit-quality-vs-free-run check, now tested rather than asserted).
Searching the full 1.5-year archive for animals with repeat recordings surfaced an uncomfortable finding before any result: the "new" span the within-animal analysis scored is the pilot recording itself, re-stitched three days longer — and it contains a second light pulse the lab's records never logged.
loading…
loading…
| Animal | Stream | checkpoint | cut at pulse 2 | pilot window | pilot dashboard | n pre/post |
|---|
checkpoint = the within-animal run's first output, whose post-pulse window ran to the recording end — past the unlogged pulse; cut at pulse 2 = post window truncated at the second pulse; pilot window = the exact data window behind the §05 numbers. The wheel reconstruction itself is bit-exact against the lab's ground truth (corr 1.0, zero diff), so the spread is windowing, not loading. 6977's calcium row is where the daily-minimum anchor fails: its post-pulse trough series is fragmented (6 of 17 inter-trough gaps outside 18–30 h) and the argmin double-samples one plateau and misses another trough entirely, which is what pushed the checkpoint value to +6.62. The per-cycle sine-acrophase estimator (§12) is clean on this span — 0 wrap flips, even 23–24 h marker spacing, residual SD 0.64 h post-pulse — and gives −0.54 CT. So the +6.62 is an argmin artifact, not a windowing story: the fragmentation flag was real, but it indicts the estimator, not the animal. The corrected estimate rides in §05; the +6.62 stays in this table as the documented artifact it is.
| Animal | Genotype | Span start | Days | Condition | Behavior source | Outcome |
|---|
Round-11 addition: #6976's 220829 span is a recon find — the Aug 19–29 campaign's second half, present on disk but never QC-screened (6976 was a main-cohort animal, not a within-animal candidate) and absent from every shipped artifact until this round; it screens as the strongest span in this explorer (circadian SNR 21.55, 9.7 d DD with wheel). Its same-campaign companion, #6577's 220829 span, was already in the explorer — the campaign's two halves now both live here. QC screen = circadian SNR + τ sanity, the shipped convention; both repeat spans pass.
Two independent noise models — a 24-h sine fit and a circadian signal-to-noise ratio — screened all ten recordings before any physiology was interpreted. Five animals survived; the keep/exclude calls were then reviewed by the researcher who collected the data.
| Animal | Genotype | Sensor | Circadian SNR | Sine amplitude (z) | R² | Model verdict | Final |
|---|
GFP animals are fluorescence controls — their ΔF/F is movement artifact, not biology. 6577 is statistically borderline (SNR 0.65) but was kept after review: it shows a clear rhythm. 7121/7122 (GFlamp1) carry no detectable signal; 7381's fiber was likely off-target.
| Animal | Modality | Stream span (h) | Per-day audit |
|---|
Audit scope: every kept §03 cycle carries full wheel coverage and 100% finite ΔF/F for the five GCaMP animals — no cycle exclusions required. The GFP pair's stream breaks are disclosed here rather than silently truncated: 7382's wheel detection ends at 213.5 h (128.5 h of clean photometry after; all 6 kept cycles precede the break), and 7386 carries two low-wheel windows in subjective day (235–241 h, 307–313 h) with wheel coverage resuming after both.
This is a data exploration dashboard over two exemplar sessions (2022-10-14, n=4; 2022-11-28, n=6) pulled from a 1.5-year, 1.23 TB archive — not a full-cohort study. Trace sections are descriptive; the analysis sections (04–08) report small-sample statistics with permutation tests and explicit fragility flags — n is 5 animals, so treat every correlation as a lead, not a conclusion. Session 221014 contains VIP-Cre and D1-Cre animals (recording quality permitting); 221128 is D1-Cre only, with sensor-type contrasts (GCaMP6s / GFlamp1 / GFP control).
Raw recordings remain on the lab's Dropbox; this page ships only downsampled derived traces (~2 MB).
Analyses we ran but did not pursue — kept with context so they can be brought back as more data lands. Collapsed by default; nothing here feeds the sections above.
Does a heavy night buy a quieter following day (deeper sleep)? Per circadian cycle, behavioral clock: no detectable compensation in this cohort. Why archived: a null result on n = 5 with no compensation signal; worth re-running once more animals add power, but not a lead worth a main section.
Dividing revolutions by window length suggests a strong negative activity→period effect (pooled r = −0.41, p = 0.001) — but the window is the outcome variable. A structural null (permuting counts, keeping windows) reproduces most of it. Why archived: the honest verdict is "no per-cycle activity feedback detectable here"; the naive reading is an artifact, and the corrected one is a null. Kept as a cautionary example.
Dropping the first 1–3 days (light-shift transient at recording start) does not shrink the two large advances — if anything it grows them, but the pre-pulse onset count shrinks with each skip (7390: 6 → 3), so magnitudes beyond skip-1 rest on thin fits; the sign is stable. Why archived: a robustness check on §05's numbers, not a standalone result — the §05 footnote disclosure covers its conclusion. Revivable as a sensitivity-analysis panel if the exclusion question returns.