# Catalogue epochs and constrained red-candidate profiles

**2026-10-05 conclusion:** our new neighbour-scene diagnostic mixed catalogue
epochs. Individually propagating the neighbours repairs that diagnostic while
leaving every primary anchored to its existing WCS prediction. Some neighbour
residuals improve, but primary cores and independent-pixel flux consistency
still fail. Small primary shifts and axis dilations do not provide a general
repair. No new photometry, calibration or WCS correction is adopted. The full
instrumental-systematics and photon-noise goal remains active and unmet.

Run: `/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001`.
Code: `/home/kshukawa/syndiff_pipeline/dev/.worktrees/temporal-raw-epsf`,
local branch `codex/temporal-raw-epsf`. Nothing is pushed or merged.
This follows `RED_CANDIDATE_SCENES_20261005.md`; the old diagnostic is preserved
as the mixed-epoch control, not silently replaced.

## Reference astrometry already includes proper motion

The producing `minbg_joint_20260923/bundle/fit_bundle.npz` metadata says that
Gaia J2016.0 positions were propagated to BTJD 1969.2714375695214. Replaying
the producer's frozen `gaia_pm.py` reproduces all 6,571 cube coordinates, with
maximum angular disagreement 3.05e-7 mas. This is numerical agreement, not
measured astrometric accuracy. The temporal extraction uses WCS-only scene
positions; the separately saved historical per-star offsets are not applied.
Adding the full J2016-to-reference motion to primaries again would be wrong.

Our recent `red_joint_scene.py` instead added unpropagated catalogue neighbour
offsets to the propagated primary position. The corrected diagnostic uses

$$\mathbf x^{\rm ref}_j=\mathbf x^{\rm old}_j+
\Delta\mathbf x_j-\Delta\mathbf x_0.$$

Here $j$ indexes catalogue sources, with $0$ the primary; $\mathbf x$ is a
two-component stamp position in TESS pixels; and $\Delta\mathbf x_j$ is the
J2016-to-bundle-reference displacement predicted from that source's catalogue
proper motion through the same fixed header WCS. The primary stays exactly
anchored. An additional diagnostic substitutes epoch-specific motion for
$\Delta\mathbf x_j$, but retains the primary reference subtraction. That arm
is not adopted: the fitted temporal WCS may already absorb common motion.
Each of the three scenes has one missing-PM contributor, kept at its original
coordinate convention; unknown motion is not established zero motion.

![Reference-epoch replay and candidate motion](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/reference_epoch_audit.png)

The replay plot adds 1e-12 mas for displaying exact zeros on a logarithmic
axis. The first attempt stopped before saving because subset versus full-
catalogue iterative WCS inversion differed by up to 5.33e-8 pixel. The retry
reproduces the original full-catalogue base and adds high-precision differential
motion, preserving the original 2e-9-pixel baseline gate.

## Geometry-only controlled comparison

Three candidates, FFIs 1 and 601, identical masks, profiles, sky basis, source
membership, and 100%/500% neighbour flux priors. The primary has no flux prior.
Complementary detector 2-by-2 pixel blocks train/evaluate each fit. Old model
predictions replay on held pixels; no stellar time trend enters the fit.

| Candidate cube index | All-pixel RMS, old → reference | Core RMS, old → reference |
|---|---:|---:|
| 1800 | 11.368 → 10.572 | 38.886 → 38.959 |
| 2768 | 30.935 → 26.852 | 37.220 → 37.113 |
| 3110 | 15.146 → 15.176 | 60.402 → 60.533 |

These are medians across two epochs and two complementary held-pixel scores,
in archived-uncertainty units, for the 100% prior. They are not pure-Poisson
scores or significance estimates. Epoch-specific motion changes little in
this small control. Images show remaining compact bipolar/core structure;
the coordinate repair does not fix the primary profile.

![Candidate 1800 matched pixels](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/epoch_pixels_1800.png)
![Candidate 2768 matched pixels](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/epoch_pixels_2768.png)
![Candidate 3110 matched pixels](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/epoch_pixels_3110.png)

The final column is a model difference in electrons/second/pixel; the residual
columns divide by archived pixel uncertainty. Use
`results/red_joint_scene_epochref/` for future controls. Its metadata points
to the parent and new score table. It does not inherit the old scores as new results.

## Fixed-profile shifts and width controls

On those corrected scenes, keep all positive mixture coefficients and all
neighbour profiles fixed. Test primary-only translation, axis dilation, and
their combination. Translation is bounded to ±0.25 pixel; each width scale
is bounded to 0.7–1.4. Gaussian component offsets and widths scale together
before exact pixel integration, preserving whole-plane template flux. Source
and sky amplitudes are re-solved on training pixels at every nonlinear step.
Unit template flux does not establish estimator signal preservation.

Analytic profile and measured-scene variable-projection derivatives pass
finite-difference checks. Two starts are evaluated. The first run selected
two unsuccessful optimizer representatives whose objectives differed from
successful starts only at rounding level. The corrected selector chooses
the best successful start, rejecting a materially better failed alternative.
The repeated run has 96/96 successful selected solutions and no parameter
on a bound; its largest changed predicted pixel is 1.10e-6 electrons/second.
Both old and repeated results are retained. Five focused tests pass.

| Candidate | Fixed core RMS | Shift | Dilation | Shift + dilation |
|---|---:|---:|---:|---:|
| 1800 | 38.959 | 34.180 | 49.318 | 27.152 |
| 2768 | 37.113 | 27.204 | 39.896 | 16.692 |
| 3110 | 60.533 | 32.622 | 78.239 | 70.475 |

Same median definition and 100% neighbour prior as above. Candidate 3110
worsens when dilation is added, despite training convergence. The 500% prior
does not yield a general repair. Actual held-pixel images for both priors:

![1800, 100 percent prior](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/shape_1800_prior100.png)
![1800, 500 percent prior](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/shape_1800_prior500.png)
![2768, 100 percent prior](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/shape_2768_prior100.png)
![2768, 500 percent prior](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/shape_2768_prior500.png)
![3110, 100 percent prior](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/shape_3110_prior100.png)
![3110, 500 percent prior](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/shape_3110_prior500.png)

Independent-pixel primary flux estimates remain inconsistent. Define

$$d=200\frac{F_1-F_0}{F_1+F_0}.$$

Here $F_h$ is the fitted primary rate in electrons/second from training half
$h=0,1$ of the same exposure; $d$ is their signed difference in percent of
their mean. Neither half is truth, and covariance is not propagated here.
For the combined shift/dilation arm with 100% priors, the two-epoch differences
are 1.108/0.070%, 2.668/2.707%, and −8.068/−8.251% for 1800/2768/3110.
One small difference for one exposure cannot validate this model family.

![All conditional rates and same-exposure half differences](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/consistency/half_flux_consistency.png)

## Within-sector catalogue motion and scope

The old temporal-scene docstring incorrectly supplied a universal sub-mas
proper-motion bound. It now states the actual reference-epoch convention.
Predicted displacement from FFI 1 to 1225 through a fixed header WCS is:

| Cohort | Total / finite PM | Median / p95 / maximum [millipixel] |
|---|---:|---:|
| Cube | 6571 / 6519 | 0.0531 / 0.2560 / 5.5701 |
| Science | 172 / 170 | 0.0639 / 0.4734 / 1.2615 |
| Eligible science | 165 / 163 | 0.0668 / 0.5375 / 1.2615 |
| References | 235 / 233 | 0.0556 / 0.3025 / 0.9001 |

Missing PM rows are excluded from these percentiles. This is predicted
catalogue motion, not measured WCS error or an adopted correction. Observer
parallax, catalogue covariance and absorption into the global WCS are not
evaluated by this control. The large fitted candidate shifts cannot simply
be identified with these small within-sector motions.

![Predicted source motions and cohort distributions](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/motion_assessment/reference_motion.png)

## Reproducibility, grids and next test

All outputs are under the run above. Frozen local jobs and their exact commands,
source hashes, host, PID and exit status are in `condor/`: accepted jobs
`red_epoch_control_differential`, `red_epoch_control_grids`,
`red_profile_shape_converged`, `red_profile_shape_converged_grids`,
`red_shape_consistency`, and `reference_motion_assessment` all exit 0.
The last two are assessments of saved arrays, not additional fits.
The motion assessment initially failed argument parsing before creating a job;
registering its name in the task launcher resolved that configuration error.
The failed epoch job and initial optimizer-selection run remain archived.
Local memory hints are not enforced. No production data are modified.

Both standard colour × magnitude × 3×3 CCD grid sets were generated and all
28 PNGs inspected, along with the 12 principal figures above. Only three
unique stars contribute; every bin is below the unchanged minimum of five.
Blank grids indicate insufficient population, not absent systematics. The
underlying individual stamps above carry the evidence. Shared gallery and
canvas publication remain pending; the existing canvas is an older checkpoint.

Calibration remains a separate unresolved branch: our RAW inputs are SPOC
`_ffic` calibrated rates, with four output responses, row bias, column smear
and pixel flats. See the run's `CALIBRATION_PIXEL_BRIDGE.md`,
`APPLIED_CALIBRATION.md`, and `READOUT_REFERENCE_CONTROL.md`. Archive replay
does not certify detector gain/flat accuracy, and the final reference-star
correction can hide a global signal. No result here clears those hypotheses.

The next discriminating work should test a different profile/response model
with adequate independent spatial/colour support, and/or observed-pixel
anchoring for count-loss simulations, retaining same-physical-pixel and
source-consistent injection requirements. Repeating free per-star profiles
or these simple dilation controls unchanged is not justified by the evidence.
The faint diagnostic stars in this report are separate from the current
165-star eligible photometry sample; their percent-scale errors are not the
measured errors of that sample.


## Standard residual grids: insufficient population in every cell

![resgrid_raw_red_epoch_control_epoch100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/epoch100/resgrid_raw_red_epoch_control_epoch100_20261005.png)

![resgrid_raw_red_epoch_control_epoch100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/epoch100/resgrid_raw_red_epoch_control_epoch100_20261005_rel.png)

![resgrid_raw_red_epoch_control_epoch500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/epoch500/resgrid_raw_red_epoch_control_epoch500_20261005.png)

![resgrid_raw_red_epoch_control_epoch500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/epoch500/resgrid_raw_red_epoch_control_epoch500_20261005_rel.png)

![resgrid_raw_red_epoch_control_legacy100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/legacy100/resgrid_raw_red_epoch_control_legacy100_20261005.png)

![resgrid_raw_red_epoch_control_legacy100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/legacy100/resgrid_raw_red_epoch_control_legacy100_20261005_rel.png)

![resgrid_raw_red_epoch_control_legacy500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/legacy500/resgrid_raw_red_epoch_control_legacy500_20261005.png)

![resgrid_raw_red_epoch_control_legacy500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/legacy500/resgrid_raw_red_epoch_control_legacy500_20261005_rel.png)

![resgrid_raw_red_epoch_control_reference100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/reference100/resgrid_raw_red_epoch_control_reference100_20261005.png)

![resgrid_raw_red_epoch_control_reference100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/reference100/resgrid_raw_red_epoch_control_reference100_20261005_rel.png)

![resgrid_raw_red_epoch_control_reference500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/reference500/resgrid_raw_red_epoch_control_reference500_20261005.png)

![resgrid_raw_red_epoch_control_reference500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_epoch_control/residual_grids/reference500/resgrid_raw_red_epoch_control_reference500_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_dilation100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/dilation100/resgrid_raw_red_profile_shape_converged_dilation100_20261005.png)

![resgrid_raw_red_profile_shape_converged_dilation100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/dilation100/resgrid_raw_red_profile_shape_converged_dilation100_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_dilation500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/dilation500/resgrid_raw_red_profile_shape_converged_dilation500_20261005.png)

![resgrid_raw_red_profile_shape_converged_dilation500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/dilation500/resgrid_raw_red_profile_shape_converged_dilation500_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_fixed100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/fixed100/resgrid_raw_red_profile_shape_converged_fixed100_20261005.png)

![resgrid_raw_red_profile_shape_converged_fixed100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/fixed100/resgrid_raw_red_profile_shape_converged_fixed100_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_fixed500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/fixed500/resgrid_raw_red_profile_shape_converged_fixed500_20261005.png)

![resgrid_raw_red_profile_shape_converged_fixed500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/fixed500/resgrid_raw_red_profile_shape_converged_fixed500_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_shift100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift100/resgrid_raw_red_profile_shape_converged_shift100_20261005.png)

![resgrid_raw_red_profile_shape_converged_shift100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift100/resgrid_raw_red_profile_shape_converged_shift100_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_shift500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift500/resgrid_raw_red_profile_shape_converged_shift500_20261005.png)

![resgrid_raw_red_profile_shape_converged_shift500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift500/resgrid_raw_red_profile_shape_converged_shift500_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_shift_dilation100_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift_dilation100/resgrid_raw_red_profile_shape_converged_shift_dilation100_20261005.png)

![resgrid_raw_red_profile_shape_converged_shift_dilation100_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift_dilation100/resgrid_raw_red_profile_shape_converged_shift_dilation100_20261005_rel.png)

![resgrid_raw_red_profile_shape_converged_shift_dilation500_20261005](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift_dilation500/resgrid_raw_red_profile_shape_converged_shift_dilation500_20261005.png)

![resgrid_raw_red_profile_shape_converged_shift_dilation500_20261005_rel](/astro/armin/koji/syndiff/dev_runs/temporal_raw_epsf_20261001/results/red_profile_shape_converged/residual_grids/shift_dilation500/resgrid_raw_red_profile_shape_converged_shift_dilation500_20261005_rel.png)

**Conclusion:** a diagnostic coordinate bug is repaired and bounded profile
alternatives are rejected as universal fixes. Absolute scene accuracy,
full-population temporal validation and the physical noise budget still
require work; photon-noise dominance is not established.
