TESS Bandpass vs Gaia XP
SynDiff · bandpass_xp_t10_13_20261009 + redhalo_faint_bigmask_20261012 · updated 2026-10-12

TESS bandpass vs Gaia XP

How the measured TESS flux of stars on five CCDs in four cameras compares with Gaia XP spectra integrated through the POC v2.0 response. The page asks whether red stars are really fainter in TESS than v2.0 predicts, or whether their light is only spread outside the aperture.

Conclusion · FINAL 2026-10-13: stated in Paper 1 as a limit, not corrected

Red stars give less total TESS flux than Gaia XP × v2.0 predicts, by +40 ± 1 mmag per mag of BP−RP. This is pooled over F1, F2, S22, C1 and C4, which cover all four cameras. The deficit is fully in place by 6 px, and the colour slope stays flat from 6 to 30 px on every field (section A).

It is not red light spread beyond the aperture. The colour dependence of the light between 8 and 30 px is $h = +0.23 \pm 0.12$ %/mag. A red halo would need +3.5 %/mag to hide the deficit, so that explanation is excluded at more than 25σ. No camera reaches a quarter of that; the largest is C4, +0.84 ± 0.31.

So the light is missing from the detector, not misplaced. Template convolution cannot cause it, because the target star is never convolved in this measurement.

Cause (section C, five tests). Part of the +40 came from extending XP past 1020 nm with a power-law tail. With a 2MASS-anchored red end the deficit is +29 ± 2 mmag/mag. It persists in a prediction that uses no XP, it is not light out to 150 px or in streaks, and it is the same on all cameras. That points to a red response below v2.0. Its spectral shape is not measurable from these data, and a flat-field or strap effect is not yet tested.

The tilt values $k$ in the older sections below are only a compact way to quote the size of the colour term. They are not a physical measurement of the response.

C · What causes the deficit? Five tests (2026-10-12)

All five tests use the same model. It is fitted per field, with robust least squares and bootstrap errors:

$$\Delta m_s = -2.5\log_{10}\frac{F_{8,s}}{F_{\mathrm{pred},s}} = a_F + b\,(c_s-1) + g\,(T_s-11)$$
  • $F_{8,s}$: measured 8 px flux of star $s$ on the FFI minus the faint-star template (section A), e⁻/s.
  • $F_{\mathrm{pred},s}$: predicted TESS flux. Each test builds it differently.
  • $c_s$: BP−RP.
  • $T_s$: TESS magnitude.
  • $a_F$: an intercept for each field.
  • $g$: a magnitude term.
  • $b$: colour slope in mmag/mag. Positive means red stars are fainter than predicted.
Verdict

The cause is on the detector side, most likely a red response below v2.0. It is not the predicted spectra, and not light outside the aperture.

  • Size. With the red end of the spectrum anchored to 2MASS J, red stars are $+29 \pm 2$ mmag/mag fainter than predicted. Even if every star had zero flux above 1000 nm, the deficit would still be +25.5.
  • Not XP. It persists when the prediction uses no XP data at all (+26 ± 5 with BOSZ models, +39 ± 5 with PHOENIX models).
  • Not large-radius light. Nothing comes back between 8 and 150 px or in streaks along rows and columns.
  • Same everywhere. All four cameras agree, and the same CCD agrees across two sectors.

Not established. The shape of the missing response cannot be measured: with BP−RP as the only lever, a response change and a plain colour term fit equally well. A flat-field or strap effect is untested; the flat field was taken at 780 nm.

p2 · The XP red end, and XP y on every field

The earlier +40 used XP spectra extended past 1020 nm by a power law fitted to 960–1020 nm. XP often turns up over 1000–1020 nm, where Gaia's calibration papers flag systematics. The power law carries that upturn on, so it overshoots the measured 2MASS J by about 0.5 mag per mag of colour.

The fix was a per-star red end from 950 to 1250 nm: a cubic spline in $\ln F_\lambda$ matched to XP at 900–948 nm and to 2MASS J. That gives $b = 29.3 \pm 1.6$. Truncating at 1020 nm gives 33.3; zero flux above 1000 nm gives 25.5. All three use the same 2,336 stars.

XP synthetic y matches real PS1 y on all five fields (stars with G > 14). The colour slope is −0.49 to −0.64 %/mag for Gaia's standardised photometry and +0.36 to +0.63 %/mag for raw XP.

Example spectra with three red-end treatments
Example XP spectra (black) with the power-law tail (red) and the 2MASS-J-anchored red end (blue; star = J). The grey area is the v2.0 response. The XP upturn at 1000–1020 nm (giant and dwarf panels) is what the power law extends.
Delta m vs colour for three red-end treatments
Δm vs BP−RP for (i) XP + power-law tail, (ii) XP truncated at 1020 nm and (iii) J-anchored. The right panel shows binned medians. Orange crosses are stars clipped from the fit.
XP over PS1 flux ratio per band per field
XP synthetic PS1 / real PS1 flux ratio vs BP−RP, per band and field, for about 13–100k unsaturated PS1 stars per field. All slopes are below 0.75 %/mag.

p3 · A prediction with no XP

BOSZ-2024 (main) and PHOENIX (cross-check) model spectra were fitted to each star's APASS g′r′i′ photometry (brought onto the PS1 system using faint unsaturated stars) and 2MASS JHKs. The fit used no XP or BP/RP fluxes; BP−RP appears only on the x-axis. Most of these stars are too bright for PS1, which is why APASS is used.

On the same 1,309 stars: $b = 39.1 \pm 2.2$ with the XP prediction, $25.7 \pm 4.7$ with BOSZ and $39.2 \pm 4.5$ with PHOENIX. The two model libraries differ by about 13 mmag/mag; that is the systematic error of this test.

Delta m vs colour, XP vs library predictions
Δm vs BP−RP for the XP, BOSZ and PHOENIX predictions on the same stars (blue = dwarfs, red = giants). The rise is present with all three predictions.

p1 · Light out to 150 px, and streaks along rows and columns

This test used 111 isolated stars with T 5–8, measured on the FFI minus the faint-star template, with neighbours and bleed columns masked. The sky is a plane fitted at 160–200 px.

An injected 1 % $r^{-2}$ halo at 40–150 px was recovered at 1.00. A plane fitted to the whole box with only 40 px masked would have absorbed 42 % of it. That variant is not used.

Below, $h$ is the colour slope of the light between two radii, in % of the predicted flux per mag. A halo holding the whole deficit would give $h \approx 3.7$ %/mag.

  • 8–40 px: $h = 0.20 \pm 0.19$ %/mag, which is $5 \pm 5$ % of the deficit.
  • 40–150 px: $0.49 \pm 1.22$, or $13 \pm 33$ %. Only 19 red stars pass isolation, so this limit is loose.
  • Row and column strips relative to diagonal strips: $-0.3 \pm 2.4$ % of the deficit.
Colour slope vs radius to 150 px
Colour slope $b(r)$ out to 150 px, pooled and per field. The right panel shows $b(r) - b(8)$. A halo that held the deficit would pull $b$ towards 0 at large $r$, a change of about −30. The measured change is about −5 ± 5.
Row, column and diagonal cut stacks per colour bin
Stacked 5 px strips along the row, the column (own bleed masked) and the ±45° diagonals, per colour bin (top), and each bin minus mid (bottom). There is no excess in the row or column strips beyond what the diagonals show.

p4 · Fitting a correction to the response

The fitted response is $R(\lambda) = R_{v2.0}(\lambda)\,\exp[\sum_j \alpha_j B_j(\lambda)]$, scored on held-out stars with 5-fold cross-validation.

  • $R_{v2.0}(\lambda)$: the POC v2.0 response.
  • $B_j(\lambda)$: spline basis functions on 580–1080 nm.
  • $\alpha_j$: fitted amplitudes, with $R = R_{v2.0}$ at 800 nm.

A smooth spline and a plain linear BP−RP term fit the held-out stars equally well (difference in loss $10^{-5} \pm 1.5\times10^{-3}$). The best spline oscillates and is not physical. A pure tilt is about 3σ worse. The test of the part of the tilt that is not a function of colour rests mostly on one bin, so treat that as tentative.

  • Slope per camera: C1 44.6 ± 1.8, F1 37.9 ± 1.7, camera 3 38.3 ± 1.4, C4 41.1 ± 2.1 mmag/mag.
  • F2 vs S22 (same CCD, two sectors): $\Delta b = 1.2 \pm 2.8$.
  • Shifting the response's red edge needs −41 nm and fits worst of all the models.
Corrected response vs v2.0
v2.0 times the smooth-spline correction (red, 68 % band), compared with a pure tilt (blue). Pooled on top; per camera, and F2 vs S22, below. The top-right panel shows where the detected photons of blue, mid and red stars fall. The oscillation shows the data constrain only 2–3 smooth modes.
Residual vs non-colour part of predictions
Measured residual against the part of each model's prediction that is not a cubic in BP−RP. If the model's spectral shape were right, the points would follow the dashed line of slope 1. For the tilt (left), the outermost bin pulls the slope negative; the remaining bins neither confirm nor reject it.

p5 · What the literature says

  • The v2.0 curve (Vanderspek, POC, 2020-07-30) is computed from component throughputs. Its only in-flight check is a normalisation: "~15,000 e⁻/s for T = 10 … correct to a few percent" (Instrument Handbook §7.1). It has no colour test.
  • The TIC Tmag–colour relations (Stassun et al. 2019) are model spectra times the passband, not measurements. They "degrade considerably for M dwarfs".
  • Montegriffo et al. (Gaia DR3 BP/RP external calibration) report a "strong systematic difference in RP for λ ≳ 950 nm" that depends on colour. p2 treats it.
  • Handbook §6.6: straps add +4 to +10 % to the 1 µm sensitivity of strap columns, the flat field was taken at 780 nm, and "the magnitude of these variations has not been quantified". That leaves the flat-field/strap explanation untested.
  • No published comparison of measured TESS flux with XP synthetic photometry was found.
  • Sources and links: red_deficit_cause_20261012/p5_literature/README.md.

Records: /astro/armin/koji/syndiff/dev_runs/red_deficit_cause_20261012/README.md. Each part has its own README in p1_large_radius/, p2_red_anchor/, p3_xpfree/, p4_response_fit/ and p5_literature/, with its method, equations and the bugs found and fixed.

A · Red halo test: faint stars, big masks, all four cameras

The 09-30 test excluded a red halo only for bright stars (T < 10, 10–20 per colour bin) on cameras 2 and 3. This test uses 2,354 stars at T 8–12.5 on all five fields. Each neighbour is masked out to wide radii, and the measurement runs out to 30 px.

Image. $S = \mathrm{FFI} - (a\,C + b)$:

  • $C$: run3's PS1-template image. It contains only stars fainter than T ≈ 13, so subtracting it removes the faint-star crowding.
  • $a(x,y)$: an order-2 Chebyshev scale, from run3's match fit.
  • $b$: a constant offset, from the same fit.

Target stars and stars with T ≤ 13 are untouched FFI pixels. Nothing in this measurement convolves the target. Each star's sky is a plane fitted to the 40–50 px annulus. A plane cannot absorb a circularly symmetric halo; a quadratic could.

Enclosed flux and fits.

$$F_s(<r) = \sum_{k:\,r_k^{\rm out}\le r} \bar S_k\,A_k,\qquad m_s(r) = -2.5\log_{10}\frac{F_s(<r)}{F_{XP,s}} = a_F + b(r)\,(c_s-1) + g\,(T_{XP,s}-11)$$
$$q_s = 100\,\frac{F_s(<r_2)-F_s(<r_1)}{F_{XP,s}} = a' + h\,(c_s-1) + g'\,(T_{XP,s}-11)$$
  • $\bar S_k$, $A_k$: masked, sky-subtracted mean of ring $k$ (e⁻/s/px; 4σ-clipped beyond 6 px) and its exact area (px²). Rings are 0.5 px wide inside 6 px and 1 px wide to 30 px, with 5×5 sub-pixel assignment.
  • $F_{XP,s}$: Gaia XP spectrum × POC v2.0, as $10^{-0.4(T_{XP}-20.44)}$ e⁻/s. $T_{XP}$ comes from paper1_figures_20261009/xp_synth_T.
  • $c_s$: BP−RP.
  • $a_F$, $a'$: intercepts, one per field.
  • $g$, $g'$: magnitude terms. At fixed T, red stars are fainter in other bands, so this term is needed.
  • $b(r)$: total-flux colour slope in mmag/mag. Positive means red stars are fainter than XP × v2.0 predicts.
  • $h$: the colour slope of the light between $r_1$ and $r_2$, in % of $F_{XP}$ per mag. Hiding the 8 px deficit would need $h \approx +3.5$.
  • Weighting and errors: $q_s$ is weighted by $F_{XP,s}^2$, because the sky noise is constant in e⁻/s. Fits are clipped at 4 MAD, and errors are bootstrapped over stars.

Big masks.

  • Every neighbour with T ≤ 13.2 within 60 px is masked out to where the steep part of its wing falls below $3\times10^{-5}$ of the target's flux per pixel (minimum 3 px, maximum 20 px).
  • Bleed columns of stars with T < 7.5 are masked.
  • A target is rejected if a brighter star lies within 10 px, if any of its rings is too heavily masked, or if neighbour wing light leaks past the masks.
  • The leak limits are 0.5 % inside 8 px and 1 % at 8–30 px ("strict", 882 stars), or 2 % and 3 % ("loose", 2,354 stars).
Colour slope versus aperture radius for five fields
Left (main image $S$): on every field the colour slope rises from about +7 mmag/mag at 2 px to about +40 at 6 px, then stays flat to 30 px. The grey band is the 09-30 bright-star raw-FFI value at 8 px. Right: the same stars on the run3 difference image hp_d, for reference only (see the hp_d caveat below).
Halo term per field and brightness bin
The halo term $h$ for 8–15 px (black) and 8–30 px (green), and for 8–15 px split by brightness. The dashed line at +3.5 %/mag is what a red halo hiding the deficit would need. Stars with T 11.5–12.5 (red points) carry no information: sky structure dominates them.
Masked stacks per colour bin and red/blue minus mid images
These are the images the numbers come from: masked stacks of $S/F_{XP}$ per colour bin (asinh), and the blue − mid and red − mid differences (±1×10⁻⁴ $F_{XP}$ per px). The circles mark 8 and 30 px.
  • C1, S22, C4: red − mid shows a dark core (the deficit) and no bright ring beyond 8 px.
  • F1, F2: a few heavily weighted stars on a scattered-light band (F1) or on unmasked bleed columns (F2) dominate the stacks. Their panels are hard to read. The fits clip these stars.
Ring surface brightness colour bin minus mid
Ring surface brightness, each colour bin minus BP−RP 0.8–1.2, per field. Top: full range (symlog). Inside 6 px, red stars are short of light and blue stars have extra. Bottom: zoom beyond 5.5 px. The dashed line is the uniform 8–30 px excess per mag that would hide the deficit. C4's red bin sits about +0.05×10⁻⁴ px⁻² high, about a third of that line.
Field (camera)n looseb(8) mmag/magb(30) mmag/magh 8–15 %/magh 8–30 %/mag
F1 (cam 2)452+36.5 ± 2.7+42.7 ± 5.1+0.02 ± 0.06−0.13 ± 0.24
F2 (cam 3)427+40.2 ± 4.2+40.2 ± 5.8+0.05 ± 0.05+0.03 ± 0.18
S22 (cam 3)530+36.6 ± 2.4+30.3 ± 5.9+0.11 ± 0.05+0.26 ± 0.21
C1 (cam 1)623+44.4 ± 2.3+41.0 ± 6.9+0.02 ± 0.05+0.16 ± 0.19
C4 (cam 4)322+40.6 ± 2.9+37.5 ± 5.3+0.19 ± 0.09+0.84 ± 0.31
Pooled, loose2354+39.6 ± 1.3+37.8 ± 2.7+0.08 ± 0.03+0.23 ± 0.12
Pooled, strict882+40.3 ± 2.2+42.6 ± 3.3+0.05 ± 0.03+0.22 ± 0.12
Example target stamps and masks
Example targets per field, one random and the reddest: the masked stamp of $S/F_{XP}$ (top) and its mask (bottom; white = used). The masks cover T ≤ 13.2 neighbours and bleed columns.

Limits of this test

  • Faint stars cannot test the halo one by one. Real sky structure (scattered light, unresolved stars) in the 8–30 px ring scatters by 25 % of a T 11.5 star's flux at empty positions; at 8–15 px it is 6 %. The pooled fit is weighted by $F_{XP}^2$, so most of the constraint comes from T 8–11.5. Within that range the T 8–10 and T 10–11.5 subsets agree: $h$(8–15) = +0.08 ± 0.03 and +0.44 ± 0.21 %/mag. T 11.5–12.5 alone gives +1 ± 4, which carries no information.
  • Light beyond about 40 px is not tested. The 40–50 px sky annulus would absorb a halo that extends that far.
  • Strict isolation in these fields is almost impossible: masking every catalogue star in a raw co-add kept 1 of 8,712 C1 targets. That is why stars fainter than T ≈ 13 are subtracted with the template, and only the brighter neighbours are masked.

hp_d caveat

  • The run3 difference image hp_d is not used for the halo term. Its background map ks_b is built TESSreduce-style: stars with T < 13 are masked to 6–10 px, then a 2 px Gaussian smooths the result. Outside the mask it can follow whatever light is there.
  • The ePSF wing study tested how much star light ks_b actually takes on F2 (dev_runs/epsf_wing_excess_20261012/step2_trace):
    • within 10 px it carries ≤ 0.08 ppt of the star's flux per ring;
    • beyond 10 px its offset is additive, set by the background rather than scaled with the star.
  • So hp_d does not remove a star-proportional halo at 8–10 px. Beyond 10 px it can still bias aperture sums by an additive offset. The main image $S$ avoids the question by not subtracting ks_b. On these stars the hp_d halo term is +0.02 ± 0.04 %/mag, consistent with $S$.

B · What the XP validation rules out, and what it does not

With no red halo, the deficit of about 3.7 %/mag must come from the TESS red response or from XP's red flux. Gaia XP synthetic PS1 photometry has been checked against real PS1:

  • r, i, z: agree to ≤ 0.001 mag (gaia-xp-synthetic-ps1 check, 09-25).
  • y (about 920–1030 nm): the XP / PS1 ratio has a colour slope of −0.34 ± 0.04 %/mag for XP Std and +0.39 ± 0.05 %/mag for raw XP. This is measured on F1 only. The y-band offset itself, +0.05 ± 0.14 %, comes from the PS1 flux-chain study (DR1 mean PSF), also on F1.

Ruled out: an XP flux error over the r, i and z bands. An XP colour error in the y band on F1 larger than about 0.4 %/mag. Both are about ten times smaller than the deficit.

Not ruled out:

  • The y validation is on one field (F1). It has not been repeated on F2, S22, C1 or C4.
  • XP spectra end at 1020 nm, but the POC v2.0 response runs past that. The extrapolated tail holds 0.8 % (blue) to 2.4 % (red) of the TESS photons. Neither the PS1 comparison nor XP itself checks that tail.
  • A narrow-band error that the broad y filter averages out cannot be excluded.
  • The giant − dwarf offset, 4–13 mmag at the same colour (section 4), is unexplained.

Section A rules out light spread outside 30 px. Section B narrows the cause to the response or the XP red tail, but does not decide between them. New tests are with the user to decide.

Data over XP colour slope versus aperture radius, bright and faint
Earlier result (10-09, run3 hp_d): data / (XP × v2.0) colour slope against aperture radius, in %/mag, for T 10–13 and T 13–16. The two magnitude ranges follow the same curve: about 0 at 2 px, −1.9 at 3 px, −2.7 at 4 px, about −3.5 at 8 px, and −3.9 to −5.2 for PSF flux. The red core concentration and the total-flux deficit cancel at 2 px. Section A confirms that the 8 px value is the total.

Method

For each star $i$ in field $f$:

$$\Delta m_i = m_{X,i} - m_{\mathrm{XP},i},\qquad m_{\mathrm{XP},i} = -2.5\log_{10}\!\int F_{\lambda,i}\,\lambda\,R(\lambda)\,d\lambda$$

Trial responses and the fit:

$$R_k(\lambda) = R_{v2.0}(\lambda)\,e^{-k(\lambda-800\,\mathrm{nm})/100\,\mathrm{nm}},\qquad \Delta m_i = \mathrm{ZP}_f + \beta_f\,(T_i-11.5) + B_k(i),\qquad B_k(i) = -2.5\log_{10}\frac{N_i(R_k)}{N_i(R_{v2.0})}$$

The aperture correction is $A_r = m_{\mathrm{PSF}} - m_{\mathrm{ap}}(r)$, measured on isolated stars. Isolation means aperture contamination $c_r = \sum_k (f_k/f_0)\,\phi_r(d_k) < 0.03$, where $f_k$ is a neighbour's catalogue flux (T ≤ 13.5), $d_k$ its distance and $\phi_r(d)$ the fraction of its light that falls in the target's $r$-px aperture.

1 · The colour term on five CCDs

With PSF flux, Δm rises by 41–54 mmag per mag of BP−RP. The rise is the same at every crowding level and every magnitude bin from T 10 to 13, but it differs between CCDs by more than the errors.

Delta m versus BP-RP for five fields with tilt predictions, and colour slope versus T
Left: Δm vs BP−RP, isolated stars (neighbour flux <5 % within 3 px), T 10–13. Solid uses XP with the red tail, dotted XP truncated at 1020 nm. Black lines show pure tilts $k$ = 0.03 / 0.06 / 0.10 predicted from the same spectra. Right: colour slope (BP−RP 0.4–2.0) per half-magnitude bin; flat in T on every field.
Delta m versus colour split by T and crowding for three fields
F1/F2/S22 (XP truncated at 1020 nm). Top: split by T; the curves overlap. Bottom: split by neighbour light within 3 px (<5 %, 5–20 %, >20 %); also identical, so neighbour light plays no part.

2 · Aperture correction vs bandpass

Measuring the same stars in apertures of growing radius on the final image splits the PSF colour term in two. Only $+3$ to $+16$ mmag/mag is PSF-vs-aperture; the rest stays in the 8-px flux. Beyond 8 px the growth curve is dominated by a sky-level bias that grows as $r^2$ and is colour-flat within errors.

Colour slope versus aperture radius
Top: colour slope of $m_\mathrm{PSF}-m_\mathrm{ap}(r)$ (circles) and $m_\mathrm{ap}(r)-m_\mathrm{XP}$ (squares) vs radius, two magnitude bins. Dotted lines mark the PSF-vs-XP slope. Bottom: median $m_\mathrm{PSF}-m_\mathrm{ap}(r)$ per colour bin; red stars lose more light from the core. Isolated $c_8<0.03$, 914–1372 stars per field.
Std vs raw XP and Delta m for PSF and aperture flux
Right: with 8-px aperture flux the five CCDs fall on one curve. Middle: with PSF flux they fan out (F1 flat at the red end, C1/C4 steep). Left: Gaia's PS1 Std standardisation of raw-XP synthetic photometry: z and y shift by up to +18 / +12 mmag for red stars. A smooth correction through these ratios (solid vs dotted) lowers the slope by only 3–4 mmag/mag.
Best-fit tilt per field and colour slopes
Left: best-fit tilt per CCD. Aperture flux (blue) gives 0.093–0.126; PSF flux (red) gives 0.118–0.158. The grey band is the image-level pixel fit on F1 (pixfit_weights, $k \approx 0.03$); the dashed line is the earlier isolated-star joint fit. Right: colour slopes for PSF vs aperture flux, raw vs Std-corrected XP.
Field (sector, camera, CCD)n PSF / n ap8k PSFk ap8slope PSF raw / Stdslope ap8 raw / StdA8 colour slope
F1 (s24 cam2 ccd2)6184 / 12190.118 ± 0.0010.106 ± 0.00541.3 / 37.839.2 / 36.2+4.7 ± 18
F2 (s20 cam3 ccd3)5183 / 9140.133 ± 0.0010.098 ± 0.00745.4 / 42.035.5 / 31.9+15.7 ± 5.1
S22 (s22 cam3 ccd3)5644 / 13720.133 ± 0.0010.093 ± 0.00445.6 / 42.436.8 / 33.1+15.6 ± 3.5
C1 (s24 cam1 ccd2)5601 / 17650.158 ± 0.0020.113 ± 0.00454.4 / 51.443.0 / 40.1+12.2 ± 5.0
C4 (s23 cam4 ccd2)6486 / 7970.144 ± 0.0010.126 ± 0.00749.3 / 45.645.2 / 41.8+4.4 ± 18
Joint29098 / 60670.137 ± 0.0010.105 ± 0.002+11.9 ± 2.2

Slopes in mmag per mag of BP−RP over 0.4–2.0. k errors are bootstrap (statistical only); the field-to-field scatter of k ap8 (±0.012) is the realistic error.

3 · Magnitude and position

Two terms remain after the colour term: a grey brightness term and a few-mmag spatial term. Neither changes with colour, so neither feeds into the bandpass question.

Delta m minus colour polynomial versus Gaia G
Δm after a colour polynomial vs Gaia G. It falls by about 10 mmag from G 10.5 to 13.5 at every colour on all five fields, with no step at the XP window-class boundaries (dotted, G = 11.5 and 13). About half of it also appears in $A_8$.
Aperture correction versus T and position
$A_5$ and $A_8$ vs T by colour (left two columns) and over 3×3 detector cells after removing the colour term (right two). $A_5$ varies by ±5 mmag across the CCD; $A_8$ is flat to about ±3 mmag (1–2σ).
Spatial maps for five fields
All five CCDs, 512-px cells, colour term removed. Rows: Δm with PSF flux (±2–5 mmag, σ ≈ 0.5), Δm with 8-px aperture flux (noisier), and $A_8$. Cell values are medians ± error.
Delta m versus T in colour bins
Δm vs T in four colour bins (F1/F2/S22, XP truncated). The colour offsets do not change with magnitude.

4 · Can the spectra separate bandpass from aperture?

A bandpass change acts on each star's whole spectrum; a colour-dependent aperture loss acts only through colour. So the part of a tilt's prediction that is not a function of BP−RP is the handle. For a $k = 0.10$ tilt that part is only ±2 mmag, and the data do not follow it.

Model for the colour term (held-out, 5-fold)loss, ap8loss, PSF
none (v2.0 exact)0.80240.4287
BP−RP linear0.70180.2368
BP−RP cubic0.70180.2346
tilt $k$0.70770.2358
tilt + curvature0.70550.2355
tilt + curvature + linear colour0.70110.2342
PS1 Std weights r, i, z, y0.69840.2282

Loss = mean $\log(1+(r/20\,\mathrm{mmag})^2)$ on held-out stars; lower is better. 6,067 aperture and 29,098 PSF stars. The PS1-weight model wins on both, but its free fit puts z at 0 (r/i/z/y ≈ 0.26/0.55/0/0.19 for ap8), so only the colour tilt is determined.

Spectral discriminant and giants versus dwarfs
Left: residual after a BP−RP cubic vs the spectral part of a $k = 0.10$ tilt. The expected slope is 1; measured −0.55 ± 0.24 (ap8) and 0.13 ± 0.05 (PSF). Middle/right: giants ($M_G < 2.5$) vs dwarfs at the same BP−RP. Giants are 4–8 mmag (ap8) and 3–13 mmag (PSF) fainter; a tilt predicts 1–2 mmag (red squares).
Giant over dwarf detected photon distribution
Giant/dwarf ratio of the detected-photon distribution (XP × $R_{v2.0}$) at matched BP−RP. The ratio stays within ±3 %: giants are slightly richer at 880–1000 nm and show a narrow ~690 nm molecular feature in the reddest bin. That is too small for any plausible response change to give a 5–10 mmag offset.
Free response multiplier fits
Free smooth response multiplier (Gaussian basis, 500–1100 nm), fitted linearly. Only 3–4 response modes are constrained (singular values 49, 3.4, 3.2, 1.3 mmag per unit amplitude), and with weak smoothing the solution oscillates. It does not measure the response shape. Right: $R_{v2.0}$ and the detected-photon distributions of blue, solar and red stars.

What this rules out, and what is open

Bugs found and fixed:

Records: