Finding Planets · a bookSearchlearn.xhelio.ai
Part VII · Exoplanets · Chapter 30

Shadows on the star: transits

How a transit survey turns light curves into planets: detrending that is part of the detector, a matched-filter search over periodic combs (BLS, TLS, Kepler's TPS, fast folding, GPU codes) with its grid and false-alarm statistics, and the vetting and statistical validation that decide what a dip is. The search is a trajectory search, algebraically the same as shift-and-stack, and its hard problems are noise models and selection calibration rather than arithmetic.

The Kepler pipeline’s own handbook estimates that its four-year search performed about 101210^{12} statistical tests across all target stars: every star, every trial period, every trial phase, every trial duration. To keep the expected number of pure-noise detections near one, the threshold was set at 7.1 standard deviations, a single-test false-alarm probability of order 10−1210^{-12} under whitened Gaussian noise (Kepler Data Processing Handbook 2020, §11.3.5). In the twelve-quarter run, 115,645 of 192,313 stars still crossed that threshold before additional tests were applied (Tenenbaum et al. 2013). The final Kepler catalogue lists 4,034 planet candidates. For the faintest, longest-period signals around Sun-like stars, the catalogue’s own measurement says only about half of them are real (Thompson et al. 2018).

Those numbers capture the transit method. A planet the size of the Earth crossing a Sun-like star blocks about 84 parts per million of its light for about 13 hours, once a year, and only if the orbit happens to be aligned within about a quarter of a degree of our line of sight. The geometry and physics are simple. The difficulty is that the search tests enormous numbers of hypotheses against light curves whose noise is neither white nor Gaussian, after a detrending step that can remove the signal along with the noise, and then has to decide which surviving dips are planets. This chapter follows that chain: detrending, search, and vetting and validation.

It also makes an algorithmic point that runs through the whole book. A periodic transit search filters each stretch of the light curve locally, then sums signed evidence and its information along a hypothesised trajectory in time. That is the same computation as shift-and-stack for a moving asteroid (Chapter 17), with a comb of transit times in place of a line across the sky.

From HD 209458 to TESS

In September 1999 David Charbonneau, Timothy Brown, David Latham and Michel Mayor pointed STARE, a small Schmidt camera built for wide-field transit searches, at HD 209458. The star was already known from radial velocities to have a close-in giant planet, so its orbital phase was known and the expected transit times could be predicted. Transits arrived on 9 and 16 September, consistent with the radial-velocity ephemeris, and the light curves resolved the ingress, egress and limb-darkened shape. The inferred planetary radius was 1.27±0.021.27\pm0.02 Jupiter radii (Charbonneau et al. 2000). This was an ephemeris-guided detection with a search bank of essentially one template. It demonstrated the physics. The algorithmic problem of finding transits blind came next.

Small telescopes, large ensembles, red noise

The first wide-field surveys traded angular resolution for many bright stars at once, and their difficulty was keeping photometry repeatable through changing seeing, pointing, extinction and blending. In 2003 Gáspár Bakos, Robert Noyes, Géza Kovács and colleagues deliberately moved the HAT telescopes during each exposure to broaden the point-spread function, which improved the sampling of an undersampled detector and gave about 2 millimagnitudes for bright stars (Bakos et al. 2004). Two ensemble algorithms then appeared within months. Kovács, Bakos and Noyes’s Trend Filtering Algorithm (TFA) regressed each target on a set of other stars’ light curves (Kovács et al. 2005). Omer Tamuz, Tsevi Mazeh and Shay Zucker’s SysRem framed the same problem as weighted low-rank factorisation of the star-by-time matrix (Tamuz et al. 2005).

HAT-P-1b: a planet hidden by a neighbour

Between 13 October 2003 and 30 January 2004, the HAT-5 telescope in Arizona took 2,059 observations of a field, and HAT-8 in Hawaii took 901. One target was an unresolved pair of stars, and as the seeing changed, the varying blend produced strong spurious variations in its light curve. TFA removed much of this, and a box-fitting search then found five transits. Resolved photometry and spectroscopy showed that the fainter star of the pair, ADS 16402B, hosted the planet: period 4.46529 days, depth 0.015 magnitudes (Bakos et al. 2007). Here detrending did not polish a known signal. It uncovered one.

Don Pollacco and colleagues’ SuperWASP made wide-field photometry industrial. Its first northern season produced about 12.9 billion measurements of 6.7 million objects, and one camera’s night took about eleven hours to reduce on a 3-GHz Pentium 4 (Pollacco et al. 2006). Its pipeline used SysRem, removing four trends. The same year Frédéric Pont, Shay Zucker and Didier Queloz explained why many optimistic yield forecasts had failed: noise correlated on the timescale of a transit meant that taking more points within one night did not give the square-root improvement the forecasts assumed (Pont, Zucker & Queloz 2006). KELT used a 42-mm lens with a 26° field for very bright stars; its first transiting companion, KELT-1b in 2012, had 27.23±0.5027.23\pm0.50 Jupiter masses, near the brown-dwarf boundary (Pepper et al. 2007; Siverd et al. 2012). NGTS, twelve 20-cm telescopes at Paranal, began survey operation in 2016, and its first planet, NGTS-1b, came from 118,498 ten-second exposures between August and December 2016, a 2.674-day, 2.5%-deep transit of an M dwarf (Wheatley et al. 2018; Bayliss et al. 2018).

The search statistic and the space era

In 2002 Kovács, Zucker and Mazeh introduced box-fitting least squares (BLS). Rather than look for sinusoidal power, it fitted two flux levels, in and out of transit, to phase-folded data. They supplied a Fortran implementation and found that an effective transit signal-to-noise ratio of about six was a useful detectability scale in their simulations (Kovács, Zucker & Mazeh 2002).

Kepler, launched in 2009, shifted the problem from millimagnitudes to tens of parts per million. Jon Jenkins and colleagues built the Transiting Planet Search (TPS), a wavelet-based adaptive matched filter with a 7.1σ threshold (Jenkins et al. 2010). When the loss of two reaction wheels ended Kepler’s original pointing, Andrew Vanderburg and John Johnson showed in 2014 that flux could be calibrated against the measured image motion, improving raw K2 precision by factors of 2–5 and bringing it within 35% of Kepler’s for the best magnitudes (Vanderburg & Johnson 2014). TESS launched on 18 April 2018 and began science operations on 25 July. The MIT Quick-Look Pipeline (QLP) extracted about 24.37 million light-curve segments from the primary mission’s full-frame images (Huang et al. 2020). ESA’s PLATO is planned for launch in March 2027, and its noise figures are still forecasts (ESA 2026).

The signal and the noise

Depth, duration and probability

For a small dark planet crossing a uniform stellar disc the fractional depth is δ≃k2\delta\simeq k^2, with k=Rp/R⋆k=R_p/R_\star. Real stars are limb-darkened. A quadratic law I(μ)=I(1)[1−u1(1−μ)−u2(1−μ)2]I(\mu)=I(1)[1-u_1(1-\mu)-u_2(1-\mu)^2], with μ\mu the cosine of the angle from disc centre, gives the curved bottom of a real transit, and Kaisey Mandel and Eric Agol supplied analytic light curves for it (Mandel & Agol 2002). What a detector records is the model averaged over each exposure, which matters for short or grazing transits and for long cadences.

For a circular orbit with semi-major axis aa, inclination ii and impact parameter bb, the total duration is

D14=Pπarcsin⁡ ⁣[R⋆a(1+k)2−b2sin⁡i].D_{14}=\frac P\pi\arcsin\!\left[ \frac{R_\star}{a}\frac{\sqrt{(1+k)^2-b^2}}{\sin i}\right].

In the small-planet, central, small-angle limit the duty cycle is

q≡DP≃R⋆πa=(2π)2/3R⋆π(GM⋆)1/3 f2/3,f=1P,q\equiv\frac DP\simeq\frac{R_\star}{\pi a} =\frac{(2\pi)^{2/3}R_\star}{\pi(GM_\star)^{1/3}}\,f^{2/3},\qquad f=\frac1P,

so D∝P1/3ρ⋆−1/3D\propto P^{1/3}\rho_\star^{-1/3} and q∝P−2/3q\propto P^{-2/3} (Ofir 2014). For the Earth and Sun these give a depth of (6,371/695,700)2≈84(6{,}371/695{,}700)^2\approx84 ppm, a central duration of about 13.0 hours and a duty cycle of 0.15%. The probability that a randomly oriented orbit transits is about R⋆/aR_\star/a, 0.47% for the Earth (derived numbers). A survey must watch about 200 Sun-like stars to expect one transiting Earth analogue among them, even if every star had one. Eccentricity changes the duration by roughly 1−e2/(1+esin⁡ω)\sqrt{1-e^2}/(1+e\sin\omega).

White noise, red noise, and why events matter

With ninn_{\rm in} equally precise in-transit points and a well-determined baseline,

SNR≃δσnin≃δσTobsP DΔt,\mathrm{SNR}\simeq\frac\delta\sigma\sqrt{n_{\rm in}} \simeq\frac\delta\sigma\sqrt{\frac{T_{\rm obs}}P\,\frac D{\Delta t}},

where TobsT_{\rm obs} is the baseline and Δt\Delta t the cadence. This holds only for white noise. In general the variance of a transit mean is 1n2∑i,jCij\frac1{n^2}\sum_{i,j}C_{ij} over the in-transit covariance. Pont, Zucker and Queloz split the noise into a white part σw\sigma_w and a “red” part σr\sigma_r correlated within a transit but independent between transits, which gives

σδ2≃σw2n+σr2∑knk2n2,n=∑knk,\sigma_\delta^2\simeq\frac{\sigma_w^2}{n}+\sigma_r^2\frac{\sum_k n_k^2}{n^2},\qquad n=\sum_kn_k,

for NtrN_{\rm tr} transits with nkn_k points each. For equal events this is σw2/(Ntrm)+σr2/Ntr\sigma_w^2/(N_{\rm tr}m)+\sigma_r^2/N_{\rm tr}. Faster cadence reduces only the first term. More independent transits reduce both. Their OGLE fields had red noise of 3.6 and 3.1 millimagnitudes in two seasons (Pont, Zucker & Queloz 2006).

0102030110100Samples per transitSNR (calculated) (1, 3.333) (2, 4.714) (5, 7.454) (10, 10.541) (20, 14.907) (50, 23.57) (100, 33.333) (1, 7.454) (2, 8.607) (5, 9.623) (10, 10.05) (20, 10.287) (50, 10.437) (100, 10.489) (1, 4.082) (2, 4.714) (5, 5.27) (10, 5.505) (20, 5.634) (50, 5.717) (100, 5.745) (1, 2.357) (2, 2.722) (5, 3.043) (10, 3.178) (20, 3.253) (50, 3.3) (100, 3.317)1 transit, white noise only10 transits, white + red3 transits, white + red1 transit, white + red
Why independent transits beat faster cadence. Calculated, not observed: signal-to-noise of a 1% transit with white noise 0.003 and transit-timescale red noise 0.003 (fractional flux) correlated within an event but independent between events. Within one transit the SNR saturates near 3.3 however many samples are taken; only more events raise the plateau. The white-only curve shows the forecast that misled early ground-based surveys. Source: Illustrative calculation with the covariance model of Pont, Zucker & Queloz 2006 (arXiv:astro-ph/0608597 §§2.5, 2.9-2.10); series compiled for this book.

Kepler’s Combined Differential Photometric Precision (CDPP) builds this into its definition. It is the effective noise seen by a transit pulse of a given duration after whitening both data and template, so a 3-hour CDPP of 20 ppm means that a 20-ppm, 3-hour pulse has expected SNR one. The pipeline computed it for fourteen durations from 1.5 to 15 hours, with a representative median 6.5-hour value of 34 ppm for twelfth-magnitude dwarfs (Christiansen et al. 2012). An earlier analysis found 32.0 ± 0.3 ppm for a selected sample and identified stellar variability as the largest contributor above the design expectation (Gilliland et al. 2011). The rule of thumb SNR≃δNtr/CDPP(D)\mathrm{SNR}\simeq\delta\sqrt{N_{\rm tr}}/\mathrm{CDPP}(D) holds when events have comparable noise and coverage, and scaling CDPP as D−1/2D^{-1/2} only for white noise.

The photon budget

For aperture counts SS, background BB per pixel, read noise rr and npixn_{\rm pix} pixels, the fractional variance is approximately

σf2≃S+npix(B+r2)S2+σscint2+σinst2+σ⋆2.\sigma_f^2\simeq\frac{S+n_{\rm pix}(B+r^2)}{S^2}+\sigma_{\rm scint}^2+\sigma_{\rm inst}^2+\sigma_\star^2 .

The first term is photon and detector noise. On the ground, atmospheric scintillation dominates for bright stars and scales with aperture roughly as D−2/3D^{-2/3}; stellar photon noise dominates at intermediate brightness, and sky background for faint stars (Wheatley et al. 2018). NGTS reached about 0.1% in one hour for stars brighter than about I=13I=13. The independent-term budget is an approximation: stellar and instrumental terms need covariances, not scalars. PLATO’s reference requirement is 50 ppm in one hour for an eleventh-magnitude G0 star, and its noise model includes a brightness-independent jitter of about 9 ppm that does not average down across its 24 cameras like photon noise does. These are model components, not measured limits (Cabrera et al. 2026).

Detrending is part of the detector

The nuisance projection

A transit survey measures a moving instrument and a variable star while looking for a small, intermittent loss of light. Write a normalised light curve as

y=−δh+Xβ+g+ϵ,g+ϵ∼N(0,C),\boldsymbol y=-\delta\boldsymbol h+X\boldsymbol\beta+\boldsymbol g+\boldsymbol\epsilon, \qquad \boldsymbol g+\boldsymbol\epsilon\sim\mathcal N(0,C),

where h\boldsymbol h is a unit-depth transit, XX holds nuisance regressors (other stars’ light curves, basis vectors, pixel fractions, centroids, splines) and CC covers stellar variability and white noise. Profiling the nuisance coefficients exactly gives

W⊥=C−1−C−1X(XTC−1X)−1XTC−1,δ^=−hTW⊥yhTW⊥h,Var(δ^)=1hTW⊥h.W_\perp=C^{-1}-C^{-1}X(X^TC^{-1}X)^{-1}X^TC^{-1}, \qquad \hat\delta=-\frac{h^TW_\perp y}{h^TW_\perp h},\qquad \mathrm{Var}(\hat\delta)=\frac1{h^TW_\perp h}.

This is the simultaneous-fit principle of Foreman-Mackey and colleagues’ joint K2 search (Foreman-Mackey et al. 2015). It exposes the most common mistake in the field. If one first fits XX to the light curve without a transit and then fits an unfiltered transit to the residuals, the signal has been projected but the template has not, and the depth is attenuated by the factor hTC−1Hh/(hTC−1h)h^TC^{-1}Hh/(h^TC^{-1}h), with H=I−X(XTC−1X)−1XTC−1H=I-X(X^TC^{-1}X)^{-1}X^TC^{-1}. Foreman-Mackey’s example shows the scale: one injected transit came back at 3.2 ppt after a ten-component sequential fit, 2.7 ppt after a 150-component fit, and 3.7 ppt from the simultaneous fit. And if hh lies in the span of XX, hTW⊥h=0h^TW_\perp h=0: the transit is unidentifiable. That is a limit of the information, not of the software.

Detrending changes the experiment

Detrending alters the signal amplitude, the noise covariance, the number of usable points and the distribution of false alarms. An algorithm that minimises the scatter of a light curve can make planet detection worse by removing transits along with the noise. A light curve cleaned for stellar rotation studies is the wrong product for transit search, and the reverse. The correct question is never “how flat is it?” but “how many injected planets survive at a fixed false-alarm rate?”

Ensemble methods: SysRem, TFA and cotrending basis vectors

SysRem approximates the mean-subtracted magnitudes rsir_{si} of star ss at epoch ii, with errors σsi\sigma_{si}, by a rank-one term csaic_sa_i that minimises ∑s,i(rsi−csai)2/σsi2\sum_{s,i}(r_{si}-c_sa_i)^2/\sigma_{si}^2. The minimum satisfies

cs=∑irsiai/σsi2∑iai2/σsi2,ai=∑srsics/σsi2∑scs2/σsi2,c_s=\frac{\sum_i r_{si}a_i/\sigma_{si}^2}{\sum_i a_i^2/\sigma_{si}^2}, \qquad a_i=\frac{\sum_s r_{si}c_s/\sigma_{si}^2}{\sum_s c_s^2/\sigma_{si}^2},

which are iterated alternately. Subtract the converged component and find the next. With equal weights this is principal component analysis, which the authors credit to earlier work; their contribution was the proper treatment of unequal errors and missing data (Tamuz et al. 2005). Each iteration is a pair of weighted reductions over the star–time matrix, O(MN)O(MN) for MM stars and NN epochs, ideal for a GPU. Too many components remove real signals or inject comparison-star noise. The same algorithm reappears in high-resolution exoplanet spectroscopy, where it removes stationary telluric and stellar features from a time series of spectra (Chapter 34).

TFA fits each target with a weighted sum of template stars, Fi=∑jcjXj(i)F_i=\sum_jc_jX_j(i). In discovery mode the target signal is assumed constant. In reconstruction mode a detected period supplies a folded signal estimate that alternates with the trend fit. In 4,293 HAT light curves with injected transits, recovery of one test signal rose from 0.45 to 0.87 at I=10I=10, and from 0.08 to 0.27 at I=11I=11, with 595 templates. The same paper lists detections present in the raw data but lost after TFA (Kovács et al. 2005).

Kepler’s Presearch Data Conditioning, in the PDC-MAP form developed by Martin Stumpe, Jeffrey Smith and colleagues to replace an early version that sometimes removed real variability, builds cotrending basis vectors (CBVs) by singular-value decomposition of the most correlated quiet stars on each detector channel, eight by default, and fits each target with a prior on the coefficients learned from stars at similar positions and magnitudes (Stumpe et al. 2012; Smith et al. 2012). The prior stops a variable star from borrowing an instrumental basis vector that happens to correlate with its own variation. A later multiscale version splits the light curve into wavelet bands and corrects each band with its own basis vectors, so that short thermal recoveries and slow drifts get different coefficients. Its band boundary near 1,024 long cadences, about 21 days, is a variability timescale, not a cutoff in detectable orbital period.

Pointing: self-flat-fielding, pixel-level decorrelation and Gaussian processes

K2’s drifting pointing made the flux of each star depend on where its image fell on the detector. Vanderburg–Johnson self-flat-fielding measures the centroid, describes the roll motion by arclength along its dominant path, and fits flux against arclength after suppressing slow stellar variability, iterating and excluding thruster-firing cadences (Vanderburg & Johnson 2014). It is calibration by repeated visits to the same detector coordinates and costs close to O(N)O(N).

Drake Deming’s pixel-level decorrelation (PLD), developed for Spitzer, uses fractional pixel fluxes xpi=dpi/∑qdqix_{pi}=d_{pi}/\sum_q d_{qi}. An astrophysical change multiplies all pixels equally and cancels in these fractions, while pointing moves flux between pixels (Deming et al. 2015). Rodrigo Luger and colleagues’ EVEREST extended PLD to K2 with higher-order pixel products, regularised coefficients and neighbouring stars’ pixels, and accelerated the many regularised fits by precomputing and reusing each order’s Gram matrix (Luger et al. 2016; Luger et al. 2018). In a 2,700-star injection test, unmasked low-SNR transits came back about 10% too shallow, and masking the transit restored the depth. That circularity is fundamental: a blind search cannot mask transits it has not yet found, so completeness must include the first-pass losses.

Suzanne Aigrain, Hannu Parviainen and Benjamin Pope’s K2SC models the covariance as a sum of a position kernel for systematics and a time kernel for stellar variability, so the two can be removed separately (Aigrain, Parviainen & Pope 2016). A dense GP costs O(N3)O(N^3); K2SC reports about two minutes per light curve. Celerite’s structured kernels reduce one-dimensional temporal GPs to O(NJ2)O(NJ^2) for JJ terms but do not cover K2SC’s two-dimensional position kernel, which its authors identify as a limitation (Foreman-Mackey et al. 2017).

Temporal filters

After instrumental correction, stellar variability is usually removed with a sliding filter. Running means absorb dips; medians tolerate outliers; splines and robust local estimators trade flexibility against distortion. Michael Hippke and colleagues’ Wōtan compared many of them on hard Kepler and K2 samples and favoured a time-windowed Tukey biweight, which down-weights points far from a robust local location (Hippke et al. 2019). Their duration experiment is revealing. A window about three transit durations wide recovered all 100 low-SNR Kepler planets in their test when each duration was known, while a single 1.65-day window recovered 87: short transits on rapidly varying stars needed narrower filters. The original QLP fitted an orbit-by-orbit spline with knots at least 0.3 days apart, a choice its authors note favours short periods and distorts long transits (Huang et al. 2020).

GPU detrending has arrived. Omar Khan’s April 2026 UMI estimator modifies the biweight to use an above-median scale and to weight negative residuals more heavily, so dips are less likely to be fitted. A single fused kernel assigns one thread to each star–window pair and never materialises the windows. On an AMD Radeon RX 9060 XT it took 3.4 ms per star against 234 ms for Wōtan’s CPU biweight, and preprocessing throughput rose from 4.2 to 154 stars per second (Khan 2026).

11010010001041101001000Injected depth (ppm, log scale)Median depth error (%, log scale) (5, 273) (50, 37.7) (100, 29.1) (200, 25) (500, 20.4) (1000, 14.6) (5, 224) (50, 39.1) (100, 33.3) (200, 29.2) (500, 20.6) (1000, 8.6) (5, 277) (50, 40.8) (100, 30.5) (200, 23.7) (500, 11.5) (1000, 4.2)Tukey biweightWelschUMI (asymmetric, GPU)
Depth fidelity of three robust detrenders on Kepler data. Median per-star absolute percentage error in recovered depth for box transits (period 3 d, duration 3 h) injected into 1,000 Kepler stars, as a function of injected depth. At planet-scale depths the asymmetric UMI estimator preserves depth better; at the shallowest depths every method fails and the advantage disappears. This measures depth preservation, not detection completeness or false alarms. Source: Khan 2026, UMI, arXiv:2604.06602 §3.2, Table 2.

The depth-fidelity results are promising at planet-scale depths and vanish at the shallowest ones. The paper also reports a bias of −451 ppm on quiet stars, underestimates transits longer than about five hours with default windows, and leaves false-positive analysis for future work. Speed is established. Equal sensitivity at equal false-alarm rate is not. And because Wōtan found that the search, not the detrending, consumed most of the computing in its comparison, the end-to-end gain is bounded by Amdahl’s law: if detrending is a fraction ff of runtime and becomes ss times faster, the total gain is [1−f+f/s]−1[1-f+f/s]^{-1}, only 1.25× at f=0.2f=0.2 even with infinite ss (a derived estimate).

A warning about objectives comes from an October 2026 comparison of TESS correction methods. Optimising background, quaternion, PLD and CBV regressions against a CDPP-like noise proxy produced some light curves with better noise numbers that still retained scattered-light contamination, and the mission’s PDC was more robust in aggregate (Rapetti et al. 2026). A scalar noise metric is not a scientific objective. The same caution applies to anyone using TESS pixels to find moving Solar-System bodies (Chapter 23): a correction tuned for stationary stars can absorb or distort a source that crosses the aperture.

The search: a template bank over combs

Sufficient statistics

Let r=c−yr=c-y be the flux deficit relative to a known baseline cc, with covariance CC, and let h(θ)h(\theta) be a unit-depth transit train with parameters θ=(P,t0,D,shape)\theta=(P,t_0,D,\text{shape}). Two numbers determine the likelihood:

A=hTC−1r,B=hTC−1h,δ^=AB,σδ=B−1/2,Z=AB,2Δln⁡L=Z2.A=h^TC^{-1}r,\qquad B=h^TC^{-1}h, \qquad \hat\delta=\frac AB,\qquad \sigma_\delta=B^{-1/2},\qquad Z=\frac{A}{\sqrt B},\qquad 2\Delta\ln L=Z^2 .

A transit is a dip, so a planet search constrains δ≥0\delta\ge0 and uses max⁡(0,Z)2\max(0,Z)^2. A fitted baseline is handled by replacing C−1C^{-1} with W⊥W_\perp above. For white noise with weights wi=σi−2w_i=\sigma_i^{-2}, A=∑wihiriA=\sum w_ih_ir_i and B=∑wihi2B=\sum w_ih_i^2, and for non-overlapping events jj the statistics simply add:

Ztrain=∑jAj∑jBj.Z_{\rm train}=\frac{\sum_jA_j}{\sqrt{\sum_jB_j}} .

This retains a common signed depth. The alternative ∑jAj2/Bj\sum_jA_j^2/B_j fits a separate depth to each event and rewards collections of unrelated noise excursions (Smith et al. 2025; Seader et al. 2013). With correlated noise the cross-event terms hjTC−1hkh_j^TC^{-1}h_k need not vanish, so a table of single-event likelihoods is an approximation to a GP likelihood, a point the nuance authors make explicitly (Garcia et al. 2024).

A transit search is a trajectory search

Filter locally, then accumulate a signed numerator AA and an information BB along a hypothesised trajectory, and score A/BA/\sqrt B. For a periodic transit the trajectory is a comb of times t0+kPt_0+kP. For a slow-moving asteroid in KBMOD it is a straight line across a stack of images: each image is reduced to a PSF-weighted flux array ψ\psi and an information array ϕ\phi, and the score of a trajectory is ∑ψ/∑ϕ\sum\psi/\sqrt{\sum\phi} along it (Whidden et al. 2019; Chapter 17). The algebra is identical, and so are the traps: the noise normalisation must travel with the signal sum, and summing separately optimised powers asks a different question.

The analogy can be drawn literally. In a “river plot”, each row is one transit epoch and the horizontal axis is time relative to the predicted transit. A correct ephemeris makes the dips line up vertically. A wrong period tilts the line. Gravitational perturbations from another planet bend it.

a. Light curve with three transits and a trial comb (illustrative) P P time b. River plot: one row per transit time from predicted transit 1 2 3 correct P: vertical wrong P: tilted TTVs: bentpath (QATS) c. Shift-and-stack: one row per image position on the sky constant-velocity track both: A = Σ numerator, B = Σ information, score A/√B
A periodic transit search and a moving-object search accumulate the same sufficient statistics along different trajectory families. In the river plot (b), a correct period stacks the transits vertically inside the duration band, a period error produces a straight tilt, and transit timing variations produce a bent path that QATS can follow within bounds. Panel (c) shows the analogous track through a stack of images. Illustrative, not data. Basis: Carter & Agol 2013 §3; Whidden et al. 2019.

BLS

BLS folds the light curve at each trial period and fits an in-transit level and an out-of-transit level. Normalise the weights to ∑iwi=1\sum_iw_i=1 and subtract the weighted mean flux. For a trial in-transit interval II let s=∑i∈Iwiyis=\sum_{i\in I}w_iy_i and r=∑i∈Iwir=\sum_{i\in I}w_i. The fitted levels are L=s/rL=s/r and H=−s/(1−r)H=-s/(1-r), and the improvement in χ2\chi^2 is

SR2=s2r(1−r)\mathrm{SR}^2=\frac{s^2}{r(1-r)}

(Kovács, Zucker & Mazeh 2002). For a dip s<0s<0, and a planet search should enforce the sign. The efficient implementation never sorts: it bins phase, keeps prefix sums, and evaluates every box in constant time.

for P in period_grid:
    S[bin], W[bin] = weighted phase histograms of flux and weight at period P
    form prefix sums of S and W over two copies of the phase cycle
    for duration in allowed_durations(P):
        for start_bin in one phase cycle:
            s, r = interval sums from the prefix arrays
            if coverage is valid and s < 0:
                score = s*s / (r*(1-r)); keep the best
keep several distinct peaks; refine each on the original timestamps

For NN samples, NfN_f periods, BB phase bins and KK durations this costs about O[Nf(N+BK)]O[N_f(N+BK)] in time and O(N+B)O(N+B) in memory. Enumerating all bin pairs instead costs O(NfB2)O(N_fB^2), and sorting at every period adds O(NfNlog⁡N)O(N_fN\log N), so “the complexity of BLS” depends on the implementation and the bank. Binning is a controlled approximation: too few bins dilute narrow events and too many leave sparse bins. Several peaks must be kept, because harmonics, artefacts and stronger planets can mask a weaker one.

Designing the grid

A period error ΔP\Delta P makes the comb drift by about Tobs∣ΔP∣/PT_{\rm obs}|\Delta P|/P over the baseline. To keep the drift below a fraction ϵ\epsilon of a duration,

∣ΔP∣≲ϵDPTobs,∣Δf∣≲ϵ qTobs.|\Delta P|\lesssim\epsilon\frac{DP}{T_{\rm obs}},\qquad |\Delta f|\lesssim\frac{\epsilon\,q}{T_{\rm obs}} .

The familiar Fourier spacing 1/Tobs1/T_{\rm obs} is far too coarse for a narrow transit: the relevant scale is smaller by the duty cycle. Because q∝f2/3q\propto f^{2/3} for a given star, the correct frequency step grows with frequency. Aviv Ofir derived Δf=Af2/3\Delta f=Af^{2/3} with

A=(2π)2/3R⋆π(GM⋆)1/3Tobs OS,fj=[fmin⁡1/3+A3j]3,Nf≃3A(fmax⁡1/3−fmin⁡1/3),A=\frac{(2\pi)^{2/3}R_\star}{\pi(GM_\star)^{1/3}T_{\rm obs}\,OS}, \qquad f_j=\left[f_{\min}^{1/3}+\frac A3j\right]^3, \qquad N_f\simeq\frac3A\left(f_{\max}^{1/3}-f_{\min}^{1/3}\right),

where OSOS is an oversampling factor of order 2–5 (Ofir 2014). The natural uniform coordinate is f1/3f^{1/3}, not ff or PP.

Worked example: a four-year Kepler-like search of a Sun-like star

Take R⋆=R⊙R_\star=R_\odot, M⋆=M⊙M_\star=M_\odot, Tobs=4T_{\rm obs}=4 years, OS=3OS=3, and periods from 0.5 to 400 days. Then A≈3.9×10−7 s−1/3A\approx3.9\times10^{-7}\ \mathrm{s^{-1/3}}, and Ofir’s grid needs about 2.0×1052.0\times10^5 trial frequencies. A uniform grid with the step required at the longest period, Afmin⁡2/3Af_{\min}^{2/3}, needs about 6.3×1066.3\times10^6, roughly 32 times more (my calculation from the formulas above). Ofir’s own three-year example, which also optimised phase and duration sampling against a specified uniform procedure, gained a factor of about 330. Neither factor applies against an implementation that already uses a physical grid.

This is the same reasoning that sets the velocity grid in shift-and-stack, where the step is chosen so that a trajectory error drifts by less than a PSF width over the baseline, and the distance coordinate in orbit-space stacking (Chapter 20). In each case the right coordinates are those in which the template mismatch is uniform, the subject of Chapter 38. Not every code uses them. Astropy’s documented automatic period grid for BoxLeastSquares is uniform in frequency, with spacing tied to the minimum duration and the baseline, so a fair comparison must supply an explicit star-dependent grid (Astropy documentation).

The epoch grid must resolve the shortest duration, or more carefully the ingress and egress where the template changes fastest. A logarithmic duration bank controls relative shape mismatch. Boxes have an awkward property: two equal boxes shifted by τ\tau overlap as 1−∣τ∣/D1-|\tau|/D, a cusp rather than the smooth quadratic that template-metric theory assumes. Exposure integration and physical ingress smooth it.

TLS: a better template

Hippke and René Heller’s Transit Least Squares (TLS) replaced the box with a limb-darkened transit profile, by default built from the median parameters of 2,346 small Kepler planets, and evaluated unbinned folded data rather than phase bins (Hippke & Heller 2019). Its strongest result is a controlled comparison. In 10,000 simulated three-year, 30-minute-cadence light curves with Earth-like signals and 110 ppm white noise per point, and an equal-sized noise-only set, at a 1% false-alarm rate BLS recovered 75.7% and TLS 93.1%, both on the same improved period grid. The empirical threshold was a signal detection efficiency (SDE) of 7, where

SDE=SRmax⁡−SR‾sd⁡(SR)\mathrm{SDE}=\frac{\mathrm{SR}_{\max}-\overline{\mathrm{SR}}}{\operatorname{sd}(\mathrm{SR})}

standardises a periodogram against itself. SDE is not a standard-normal statistic. Changing the frequency range, duration bank or normalisation changes it.

The 2019 implementation took about 10 seconds for an 80-day, 4,000-point K2 light curve on an Intel Core i7-7700K, similar to BLS, with runtime growing roughly as the square of the baseline. The TLS changelog dates version 2.0 to 5 October 2026 and reports 30–60 times faster warm searches using algebraic correlations, prefix sums, persistent workers, screening and piecewise-linear templates, with an approximate default backend reported to change SDE by at most 0.04 on hundreds of injections (TLS changelog). These are maintainer-reported results, not a peer-reviewed survey benchmark, but they mean that CPU-versus-GPU comparisons against the old TLS are now out of date.

TPS: whitening and the multiple-event statistic

Kepler’s TPS first estimates a time-dependent noise spectrum with an overcomplete wavelet decomposition (Daubechies 12-tap wavelets, with a moving robust noise estimate over about 30 times the trial duration) and whitens both data and template (Seader et al. 2013). Whitening only the data would apply the wrong matched filter. For wavelet channel jj with data xjx_j, template sjs_j, inverse noise variance σ^j−2\hat\sigma_j^{-2} and weight aja_j, the single-event numerator and information are correlations,

N[n]=∑jaj[(xj/σ^j2)⋆sj][n],D[n]=∑jaj[σ^j−2⋆sj2][n],\mathcal N[n]=\sum_ja_j\big[(x_j/\hat\sigma_j^2)\star s_j\big][n], \qquad \mathcal D[n]=\sum_ja_j\big[\hat\sigma_j^{-2}\star s_j^2\big][n],

the single-event statistic is N/D\mathcal N/\sqrt{\mathcal D}, and at the transit centres nkn_k of a period-epoch hypothesis

MES(P,t0,D)=∑kN[nk]∑kD[nk].\mathrm{MES}(P,t_0,D)=\frac{\sum_k\mathcal N[n_k]}{\sqrt{\sum_k\mathcal D[n_k]}} .

The multiple-event statistic (MES) is exactly A/BA/\sqrt B. The twelve-quarter search used 14 durations from about 1.5 to 15 hours. Each MES crossing then faced a robust depth fit and two chi-square consistency tests, which ask whether the individual events and wavelet channels agree with one common transit. These vetoes are related to the consistency tests of gravitational-wave searches (Seader et al. 2013). A crossing that survives is a threshold-crossing event (TCE), a pipeline output, not a planet. The run produced 18,406 TCEs on 11,087 stars (Tenenbaum et al. 2013).

A vetoed peak must be followed by a new search, or an artefact can hide a weaker real planet. TPS allowed up to 1,000 such iterations per star and duration. About three quarters of TCEs appeared on the first, but the longest case needed 404. For a GPU programmer this is a warning: survey wall time is set by the tail, not the mean kernel time.

What “7.1σ” means

For one fixed, correctly normalised template under Gaussian noise, Z∼N(0,1)Z\sim\mathcal N(0,1), and the one-sided tail at 7.1 is 6.24×10−136.24\times10^{-13} (a calculation). For MM independent templates pglobal≃MQ(z)p_{\rm global}\simeq MQ(z). Real banks are strongly correlated, so their raw template count is not MM, and maximisation, adaptive noise estimation, vetoes and non-Gaussian artefacts all change the calibration. Kepler chose MES > 7.1 from prelaunch studies targeting about one statistical false alarm in 600,000 target-years, roughly the nominal mission, with an expected 80% detection probability for an Earth-size planet with four transits around a twelfth-magnitude Sun-like star (Tenenbaum et al. 2013).

Even the ideal detector finds only half the signals whose expected SNR sits at threshold: pD=Φ(ρ−7.1)p_D=\Phi(\rho-7.1) gives 50% at ρ=7.1\rho=7.1. The real pipeline did worse. Jessie Christiansen and colleagues injected 10,341 transits into Kepler pixels and measured 25.8% recovery at an expected MES of 7.1 for FGK dwarfs (Christiansen et al. 2015). Injection at the pixel level, before every processing step, is the only way to measure that loss.

QATS: dynamic programming over timing paths

Planets in a multi-planet system tug on each other, so their transits arrive early or late: transit timing variations (TTVs), the subject of Chapter 31. A strictly periodic comb smears such a train. Joshua Carter and Eric Agol’s quasiperiodic automated transit search (QATS) allows each interval between successive transit starts to vary within bounds, Δmin⁡≤nm−nm−1≤Δmax⁡\Delta_{\min}\le n_m-n_{m-1}\le\Delta_{\max}, for a box of qq samples on uniformly indexed data (Carter & Agol 2013). With single-event deficits dn=−∑j=0q−1Fn+jd_n=-\sum_{j=0}^{q-1}F_{n+j}, maximising the likelihood for MM transits means maximising ∑mdnm\sum_md_{n_m}, and instead of enumerating exponentially many paths it keeps

Vm,n=dn+max⁡i∈[n−Δmax⁡, n−Δmin⁡]Vm−1,i,V_{m,n}=d_n+\max_{i\in[n-\Delta_{\max},\,n-\Delta_{\min}]}V_{m-1,i},

then traces back from the best final value. The cost for fixed MM and qq is O{M[Δmax⁡−Δmin⁡+q](N−q+1)}O\{M[\Delta_{\max}-\Delta_{\min}+q](N-q+1)\}. A sliding-window maximum can reduce the predecessor search where the intervals stay contiguous.

This is the dynamic-programming track-before-detect used for dim moving targets in radar and infrared surveillance (Chapter 37), with transit times in place of positions and bounded period changes in place of bounded accelerations. For Kepler-36c, the SNR rose from 82 for an exactly repeating integer-cadence interval to 127 and 133 when the interval was allowed to vary by one and two cadences, and for the weaker Kepler-36b from 10 to 13 to 17. The flexibility has a price that radar engineers also know: more allowed paths raise the noise maximum, so QATS’s SNR cannot inherit Kepler’s 7.1 threshold and must be calibrated by simulation.

Fast folding

The fast-folding algorithm, long used in pulsar searches (Chapter 36), shares partial sums across nearby trial periods. Arrange regularly sampled data in short rows. A constant-period pulse becomes a tilted track across the rows. Combine adjacent rows with alternative integer shifts, then combine pairs of those, doubling the baseline and refining the period resolution at each level. Unlike a Fourier search, it keeps a narrow pulse intact rather than spreading it across many harmonics. Shahaf, Zackay, Mazeh, Faigler and Ivashtenko’s fBLS applies BLS to the folded profiles, folding weighted flux and weight separately, and handles irregular timestamps by folding short sections on the original times first (Shahaf et al. 2022). For NpN_p periods, NbN_b phase bins and NwN_w widths the cost is

CfBLS∼NpNb(log⁡2Np+Nw)+Cinit,C_{\rm fBLS}\sim N_pN_b(\log_2N_p+N_w)+C_{\rm init},

so the often-quoted O(Nplog⁡Np)O(N_p\log N_p) hides the bin and width factors. Against Astropy BLS on identical grids it was 10–20 times faster for 10410^4–10510^5 points and about 100 times faster at 10610^6. A search of 74,510 Kepler stars over periods of 0.2–1.0 days, with about 250,000 trial frequencies and 80 phase bins, produced three new candidates. The recursion is the same idea as the tree dedispersion of radio astronomy and the grid trees of moving-object stacking (Chapter 21): reuse partial sums over a structured family of trajectories, and carry the information along with the signal.

GPUs: CETRA, nuance and umbra

John Hoffman’s cuvarbase was an early CUDA BLS with physically restricted durations, frequency steps proportional to q(f)/Tq(f)/T and a fast shared-memory mode (cuvarbase). Kaitlyn Wang and colleagues’ GPFC folds at 100,000 periods and classifies the folded profiles with a CNN, at about 6 seconds per 65,536-point curve, against 1.05 seconds for cuvarbase’s fast mode on a similar curve. Atomic memory operations took 3.66 of its roughly 5 folding seconds (Wang et al. 2024).

Leigh Smith and colleagues’ CETRA (2025) implements the sufficient-statistics architecture directly. It resamples onto a regular time grid with empty cells given zero weight, computes for every epoch and duration a fitted depth, its variance and a likelihood improvement using a cached physical template, and then combines these along periodic combs with a common depth, reducing to the best candidate per period on the device:

prepare weighted observations and an exposure-integrated transit template
for each duration D and epoch t (GPU):
    A[t, D], B[t, D] = event numerator and information
for each period P (GPU):
    for each admissible epoch and duration:
        A_tot, B_tot = sums of A and B at t + k*P
        score = A_tot^2 / (2 B_tot), with the transit sign enforced
    reduce to the best candidate for P
copy the periodogram; refine peaks on the original data

(This is the sufficient-statistics form for known baseline and diagonal noise, not a verbatim listing.) On one A100 the event stage is cheap. The periodic stage is not:

30 d, 25 s cadence: event0.26 s30 d, 25 s cadence: periodic0.94 s720 d, 1800 s cadence: event0.17 s720 d, 1800 s cadence: periodic177.92 sElapsed time (s, log scale)
On a GPU the periodic stage, not the filter, dominates long baselines. Elapsed time of CETRA's two stages on one NVIDIA A100 for two light-curve configurations. The shaped single-event search costs a fraction of a second in both; the periodic combination grows with the period-epoch bank and takes almost three minutes for a two-year baseline. The two configurations differ in both baseline and cadence, so this is not a one-variable scaling test. Log scale. Source: Smith et al. 2025, CETRA, arXiv:2503.20875 §3.2.

On TESS 20-second data for HD 101581, CETRA took 2.6 seconds on an RTX A5000 against roughly four minutes for TLS on six CPU cores. In a synthetic test with 20,000 curves it recovered more periods than TLS at the highest noise level (3,290 against 2,713), but recovery allowed harmonics and false alarms were not matched (Smith et al. 2025).

Two codes attack model mismatch rather than speed. Lionel Garcia and colleagues’ nuance fits transit and systematics with a GP covariance in JAX, solving for depth analytically, and is aimed at active stars. On TOI-540 it took 5 minutes 35 seconds on twelve Apple M2 Max cores against 1 minute 49 seconds for a BLS search over fifteen filter windows, and the authors recommend using it selectively (Garcia et al. 2024). Geert Jan Talens’s umbra addresses a subtler problem: detrending changes the transit itself. For a fixed linear filter FF the correct residual template is FhFh, not hh. umbra approximates robust filters by weighted means and searches with warped least-squares templates that include the raised wings and reduced depth the filter creates (Talens et al. 2026).

The September 2026 PLATO study compared these on 2,000 simulated stars with two injected planets each:

Search (PLATO simulations)Combined recoveryTime per light curveResources
nuance61.2%~280 min4 CPU cores, coarser cadence and duration grid
CETRA, four filter windows61.3%~60 sone H100 GPU
umbra, two filter windows61.7%~30 minone CPU core
TLS (pre-2.0)not quoted~100 minone CPU core

Source: Talens et al. 2026. The study did not impose a common significance threshold, so the recoveries are not at matched false-alarm rates, and the timings are on different resources. Two conclusions are robust. Several cheap filter windows competed with an expensive joint GP search. And search banks built on assumed stellar parameters can exclude real planets: extending CETRA’s duration limits raised its outer-planet recovery from 44.5% to 47.4% for one filter window. CETRA is now the default transit search in PLATO’s exoplanet analysis system.

Single transits

A planet whose period exceeds the observing window shows one transit. A single-event search scans only epoch and duration, which is cheap, but one dip has little protection against artefacts. Foreman-Mackey and colleagues filtered Kepler light curves with a running median, searched with a 0.6-day box, kept events above 25 times the local noise, and used model comparison and pixel checks to reject outliers and instrumental shapes. From about 40,000 bright Sun-like stars they found 16 long-period candidates, six of them new (Foreman-Mackey et al. 2016). For P≫TobsP\gg T_{\rm obs}, the chance of catching a transit scales as Tobs/PT_{\rm obs}/P and the geometric probability as P−2/3P^{-2/3}, so the yield falls as P−5/3P^{-5/3}. No algorithm can recover a transit that happened while nobody was looking. A duration gives a crossing speed, and with a stellar density and an eccentricity prior a rough period, but a second transit years later turns inference into a discrete alias problem.

The search methods compared

MethodTemplateStatisticMain cost driverEvidence (conditions differ)
BLS (2002)boxs2/[r(1−r)]s^2/[r(1-r)]O[Nf(N+BK)]O[N_f(N+BK)]reference baseline
TLS (2019)limb-darkenedmin χ2\chi^2, SDEgrows ~ baseline² (v1)93.1% vs 75.7% at 1% FAP
TPS (Kepler)whitened pulseMES =∑N/∑D=\sum\mathcal N/\sqrt{\sum\mathcal D}bank + veto iterations18,406 TCEs, 12 quarters
QATS (2013)box, bounded path∑d/σMq\sum d/\sigma\sqrt{Mq}O(MΔN)O(M\Delta N) per bank cellKepler-36b SNR 10 → 17
fBLS (2022)box on folded profilesBLSNpNb(log⁡2Np+Nw)N_pN_b(\log_2N_p+N_w)10–100× vs Astropy
CETRA (2025)physical, GPUA2/2BA^2/2Bperiodic gather2.6 s vs ~4 min (TLS)
nuance (2024)GP-covariance linear fitprofile likelihoodGP solves × banktargeted at active stars
umbra (2026)filter-warpedWLSwindows × bank61.7% (PLATO sims)

Is it a planet? Vetting and validation

Four different products

A search produces threshold-crossing events. Vetting asks whether a TCE looks like a planet transiting the intended star, producing a planet candidate (PC). Validation asks whether the remaining alternatives are improbable enough to call the candidate a planet without measuring its mass. Confirmation adds dynamical evidence: a radial-velocity mass (Chapter 29) or interacting TTVs. These are different things, and catalogue counts must say which they count.

The main impostors are eclipsing binaries diluted by a brighter star in the same aperture, grazing binaries, and instrumental or stellar artefacts. In the ground-based era OGLE-TR-33 had a planet-like transit, apparently matching velocity variations and nearly colour-independent depth, yet Guillermo Torres and colleagues showed that a hierarchical triple star reproduced everything: the blend distorted the spectral lines and faked a velocity shift (Morton 2012 recounts the case). Absence of a failed diagnostic is not evidence that every alternative is excluded.

Diagnostics

Dilution. If the host contributes a fraction XhX_h of the aperture flux, the observed depth is δobs≃Xh(Rp/Rh)2\delta_{\rm obs}\simeq X_h(R_p/R_h)^2, so Rp≃Rhδobs/XhR_p\simeq R_h\sqrt{\delta_{\rm obs}/X_h}. A shallow dip on a bright target can be a deep eclipse on a faint neighbour. TRICERATOPS computes XsX_s for every nearby star and rejects hosts that would need an intrinsic depth above one (Giacalone et al. 2021).

Odd/even and secondary eclipses. A binary folded at half its true period shows alternating depths:

Zoe=∣δ^odd−δ^even∣σodd2+σeven2.Z_{\rm oe}=\frac{|\hat\delta_{\rm odd}-\hat\delta_{\rm even}|}{\sqrt{\sigma_{\rm odd}^2+\sigma_{\rm even}^2}} .

A secondary eclipse is a binary signature, but a hot giant planet can also show one, so good vetters keep that exception (Thompson et al. 2018).

Where did the light go? In a fixed scene the in-transit photocentre moves by

cin−c0=δobs1−δobs(c0−rh),\mathbf c_{\rm in}-\mathbf c_0=\frac{\delta_{\rm obs}}{1-\delta_{\rm obs}}(\mathbf c_0-\mathbf r_h),

where c0\mathbf c_0 is the out-of-transit photocentre and rh\mathbf r_h the position of the dimming source (a direct derivation). The shift is tiny for small depths and vanishes when the source sits at the photocentre, so a missing centroid shift does not prove the target is the host. A difference image, out-of-transit minus in-transit, instead shows the point-spread function of the light that was lost, and fitting it locates the source (Kostov et al. 2019). This is difference imaging (Chapter 10) applied to a dimming rather than a brightening. For Kepler-90 i, a 90-ppm transit, photocentre uncertainties were about 0.1 milliarcseconds (Shallue & Vanderburg 2018).

Robovetter and measured reliability

Kepler’s DR25 Robovetter, built by Susan Thompson, Jeffrey Coughlin and colleagues, is a documented expert system (Thompson et al. 2018). It evaluates two detrendings. It tests transit shape with a low-dimensional projection of the folded light curve. It checks uniqueness, comparing the primary dip with the next strongest dips and brightenings at the same period. It runs individual-event checks for coverage, artefact shape, isolation of the single-event peak and clustering of events across stars on the same detector region. It applies binary tests (secondary eclipses, odd/even, V shapes) and localisation and ephemeris-matching tests. A disposition score, the fraction of 10,000 metric perturbations under which the rules still say PC, measures robustness of the rules, not a planet probability.

DR25’s decisive step was to run the same code on simulated false alarms made by inverting light curves and by scrambling the order of observing quarters, which destroys real transit trains while keeping much of the noise. If a fraction EE of simulated false alarms is correctly rejected, NFPN_{\rm FP} observed TCEs are rejected and NPCN_{\rm PC} survive in a comparable region, the false-alarm reliability is

RFA=1−NFPNPC 1−EE.R_{\rm FA}=1-\frac{N_{\rm FP}}{N_{\rm PC}}\,\frac{1-E}{E} .

When false alarms vastly outnumber planets, a tiny leakage fraction dominates. Below 100 days DR25 reported vetting completeness above 85% and reliability above 98%. For FGK dwarfs at 200–500 days and MES below 10, completeness was 76.7%, rejection effectiveness 98.9%, and reliability only 50.3% (the abstract gives 50.5%). From 32,534 observed TCEs the catalogue produced 8,054 objects of interest and 4,034 PCs (Thompson et al. 2018). Reliability changes science, not just target lists. In one narrowly defined box near the Earth’s period and radius around GK dwarfs, Steve Bryson and colleagues found an occurrence of 0.015−0.007+0.0110.015^{+0.011}_{-0.007} planets per star with reliability correction and 0.034−0.012+0.0180.034^{+0.018}_{-0.012} without, more than a factor of two (Bryson et al. 2020).

Learned vetters

An eighth planet for Kepler-90

Christopher Shallue, a Google software engineer, and the astronomer Andrew Vanderburg trained a convolutional network, AstroNet, on 15,737 labelled Kepler TCEs (3,600 PCs, 9,596 astrophysical false positives and 2,541 non-transiting phenomena) using two folded views of each light curve: a global view of 2,001 bins and a local view of 201 bins around the transit. They then searched 670 known multi-planet stars after removing the known transits, with a deliberately low BLS threshold of 5. The search gave 513 new TCEs. The network scored 30 above 0.5 and nine above 0.8. After astrophysical checks and validation, two became planets: Kepler-80 g, about 250 ppm deep, and Kepler-90 i, about 90 ppm deep, the eighth planet of Kepler-90 (Shallue & Vanderburg 2018). The discovery was a cascade, permissive search, learned ranking, human examination and explicit validation, not a network announcing planets.

AstroNet’s often quoted 0.988 is an area under the ROC curve: the probability that a random labelled PC outranks a random false positive. It is not the probability that a newly flagged signal is a planet. That depends on prevalence. For a classifier with true-positive rate tt and false-positive rate uu, applied where a fraction π\pi of signals are planets,

precision=πtπt+(1−π)u.\mathrm{precision}=\frac{\pi t}{\pi t+(1-\pi)u}.

With t=0.95t=0.95, u=0.01u=0.01 and π=0.01\pi=0.01, typical of a permissive search flooded with noise, precision is 0.0095/(0.0095+0.0099)≈0.490.0095/(0.0095+0.0099)\approx0.49 (an illustrative calculation): half the “planets” are false. The TESS adaptation of AstroNet shows the effect directly: a triage mode that accepts any eclipse-like signal had average precision 0.970, while a planet-vetting mode had 0.693 despite higher accuracy, because true planets are scarce (Yu et al. 2019).

Hamed Valizadegan and the NASA Ames team’s ExoMiner feeds a network the diagnostics an expert would use: full-orbit and transit views, centroid motion, odd/even and secondary-eclipse views and scalar statistics. Splitting cross-validation by star, it reached recall 0.936 at precision 0.99 on out-of-fold predictions. Applied to 1,922 unlabelled KOIs it scored 368 above 0.99, 47 of them already validated; after excluding 20 with MES below 10.5 it validated 301 new planets (Valizadegan et al. 2022). The MES cut is the honest part: a 0.99 score near threshold does not validate a planet. ExoMiner++ adds TESS difference images, unfolded individual events, periodograms and spacecraft momentum-dump flags, and was trained on four V100 GPUs at about 80 seconds per epoch (Valizadegan et al. 2025). Its catalogue illustrates how numbers shrink along a selection chain, and how units change:

Unlabeled TCEs scored147,568Scored as candidate (TCEs)7,330Not matching known TOIs (TCEs)1,008After period matching (TCEs)427Unique events288All 10 models agree, 3+ transits91After expert inspection: new CTOIs50Number (log scale)
From threshold crossings to new candidates: the ExoMiner++ catalog. Selection chain for ExoMiner++ applied to 2-minute TESS data. Units change along the chain: the first four rows count TCEs (one star can produce a TCE in many sector runs), the last three count unique events. The 50 survivors are new community candidates, not validated planets. Log scale. Source: Valizadegan et al. 2025, ExoMiner++, arXiv:2502.09790 abstract and §7.

The 2026 RAVEN survey by Marina Lafarga, David Armstrong and colleagues searched more than 2.2 million Gaia-characterised stars in TESS full-frame photometry over periods of 0.5–16 days and reported 118 newly validated planets, 31 of them newly detected. Its classifiers are trained on physical simulations injected into real light curves and passed through search recovery, and its final score is the minimum of prior-weighted planet-versus-scenario probabilities. Refitting each candidate removed 77 of 220 that would have qualified on initial scores alone (Lafarga et al. 2026): small changes in ephemeris moved validation scores materially.

Statistical validation

Validation compares explicit hypotheses HjH_j (planet on the target, eclipsing binary on the target, planet or binary on a bound companion, on a background star, on a resolved neighbour) by their evidences and priors,

p(Hj∣D)=πjZj∑kπkZk,Zj=∫L(D∣θj,Hj) p(θj∣Hj) dθj,p(H_j\mid D)=\frac{\pi_jZ_j}{\sum_k\pi_kZ_k},\qquad Z_j=\int L(D\mid\theta_j,H_j)\,p(\theta_j\mid H_j)\,d\theta_j,

and reports a false-positive probability FPP=1−∑j∈Pp(Hj∣D)\mathrm{FPP}=1-\sum_{j\in\mathcal P}p(H_j\mid D) over an accepted planetary set P\mathcal P. The definition of P\mathcal P differs between packages. In TRICERATOPS a planet around an unresolved different star counts as a false positive, while Morton’s 2016 VESPA catalogue did not count blended planets as false positives (Giacalone et al. 2021; Morton et al. 2016). An astrophysical FPP is also conditional on the signal being astrophysical: it says nothing about instrumental false alarms, which the reliability measurement above addresses.

The method grew from forensic case studies. Torres, François Fressin, Natalie Batalha and colleagues’ BLENDER fitted physical blend light curves for Kepler-9 and validated Kepler-9 d, 1.64−0.14+0.19R⊕1.64^{+0.19}_{-0.14}R_\oplus on a 1.59-day orbit, without a mass (Torres et al. 2011). Timothy Morton’s VESPA compressed each transit into a trapezoid (depth, duration, and ratio of duration to ingress) and compared it with simulated populations of binaries, triples and background stars. In 2016 it validated 1,284 Kepler planets at FPP below 1% and identified 428 likely false positives, at about 30 minutes per object on one core (Morton et al. 2016). Its README now recommends retiring it in favour of TRICERATOPS (Morton, Giacalone & Bryson 2023). Rodrigo Díaz and colleagues’ PASTIS compared full physical models with posterior sampling and found that the light curve alone strongly favoured the right hypothesis only above transit SNR of about 50 in their tests (Díaz et al. 2014). Jack Lissauer and colleagues added a population argument: false positives scattered among stars cannot explain how often Kepler stars host several candidates, so multi-candidate systems are mostly real (Lissauer et al. 2014).

Steven Giacalone and Courtney Dressing’s TRICERATOPS handles a TESS target’s neighbourhood explicitly. It computes each nearby star’s flux in the actual aperture, then evaluates 15 target scenarios plus three per viable neighbour by averaging likelihoods over 10610^6 prior draws per scenario (Monte Carlo integration, not a Markov chain), with contrast curves from high-resolution imaging as constraints on unresolved companions. It runs in about five minutes on a two-core laptop. Tests on 68 known TOIs set validation at FPP < 0.015 and NFPP (nearby false-positive probability) < 10−310^{-3}, and of 384 unclassified TOIs it validated 12 (Giacalone et al. 2021). TRICERATOPS+ adds multi-colour light curves: TOI-6000 b moved from FPP 0.071 to 0.0078 with a JJ-band transit, while TOI-4094.01 went from 0.005 to 0.031 and lost validation because of possible chromaticity (Gomez Barrientos et al. 2025). New data can lower confidence.

The marginal value of follow-up imaging has now been measured:

< 1 Earth radius2 of 21-1.7 Earth radii20 of 201.7-2.6 Earth radii18 of 252.6-4 Earth radii7 of 154-8 Earth radii2 of 6Fraction losing validation without imaging
Small planets depend most on high-resolution imaging for validation. Of 68 TESS planets validated with TRICERATOPS and having contrast curves, the number per radius bin that would lose validation if the imaging were removed. The removed probability is dominated by unresolved bound companions. Small denominators; a curated sample, not an all-TESS rate. Source: Collier et al. 2026, arXiv:2608.21560v3 §5.3, Figure 6.

Of 68 validated planets with contrast curves, 49 lose validation without them, and every planet below 1.7 Earth radii does (Collier et al. 2026). The probability that returns is mostly from unresolved bound companions. Small-planet validation is limited by telescope time for high-resolution imaging, not by computation.

Many eyes

Planet Hunters began on 16 December 2010, and Planet Hunters TESS on 6 December 2018. Volunteers mark transits by eye, their markings are weighted by performance on injected signals and clustered in time, and the top 500 candidates per sector go to the science team. The first two years produced 12,617,038 classifications and 90 promising new candidates, 73 of them single transits (Eisner et al. 2021). Human inspection is a complementary selection function that is strong exactly where periodic searches are weak, but it is hard to calibrate. Chapter 28 tells that story.

From catalogue to population

A catalogue’s selection probability factorises as

Ctot(θ,s)=pgeom(θ,s) Csearch(θ,s) Cvet(θ,s∣detected),C_{\rm tot}(\theta,s)=p_{\rm geom}(\theta,s)\,C_{\rm search}(\theta,s)\,C_{\rm vet}(\theta,s\mid\text{detected}),

for planet parameters θ\theta and star ss. Each factor must be measured by injection through the real pipeline: search completeness by pixel-level injections, vetting completeness by the injections that became TCEs, and reliability by simulated false alarms whose types and frequencies match the real ones (Bryson et al. 2020). This is the survey forward-modelling that Solar-System population studies use (Chapter 16). A list of validated planets adds selection on brightness, imaging and follow-up, and is a poor substitute.

Landmark results

YearWorkAchievementKey number
1999Charbonneau et al.First transit (HD 209458), ephemeris-guidedTwo events; Rp=1.27±0.02 RJR_p=1.27\pm0.02\,R_J
2002Kovács, Zucker & MazehBLSEffective SNR ~6 useful in simulations
2005TFA; SysRemEnsemble detrendingTFA recovery 0.45 → 0.87 at I=10I=10
2006Pont, Zucker & QuelozRed-noise penaltyOGLE red noise 3.6 / 3.1 mmag
2007Bakos et al.HAT-P-1b revealed by TFAP=4.46529P=4.46529 d
2011Torres et al.BLENDER validates Kepler-9 d1.64−0.14+0.19R⊕1.64^{+0.19}_{-0.14}R_\oplus without a mass
2013Tenenbaum et al.Kepler 12-quarter TPS192,313 stars, 18,406 TCEs
2013Carter & AgolQATSKepler-36b SNR 10 → 17
2014OfirPhysical period gridf1/3f^{1/3} spacing, ~330× in one example
2014Vanderburg & JohnsonK2 self-flat-fielding2–5× precision recovery
2015Christiansen et al.Pixel-injection efficiency25.8% at expected MES 7.1
2016Morton et al.VESPA catalogue1,284 new validations
2018Thompson et al.DR25 with measured reliability4,034 PCs; 50.3% reliability, long-period low MES
2018Shallue & VanderburgAstroNetKepler-90 i, Kepler-80 g
2019Hippke & HellerTLS93.1% vs 75.7% at 1% FAP
2021Giacalone et al.TRICERATOPS12 of 384 TOIs validated
2022Valizadegan et al.ExoMiner301 new validations
2022Shahaf et al.fBLS10–100× vs Astropy BLS
2025Smith et al.CETRA on GPU2.6 s vs ~4 min (TLS, 6 cores)
2026Lafarga et al.RAVEN118 newly validated planets
2026Talens et al.PLATO search comparison61.2–61.7% recovery, false alarms unmatched
2026Collier et al.Imaging dependence of validation49 of 68 lose validation without imaging

Transits are by far the most productive discovery method: 4,785 of the 6,451 confirmed planets in the NASA Exoplanet Archive as of October 2026, with peaks in 2014 and 2016, the years of the large Kepler statistical validations (Lissauer et al. 2014; Morton et al. 2016). Chapter 35 gives the census.

Limits and open problems

The null hypothesis is the hard part. Data gaps, focus changes, thermal recoveries, pointing jitter, spots and flares produce structured features. A filter optimised against Gaussian noise can be very powerful against the wrong null. Inverted and scrambled light curves are the best available controls, but inversion changes asymmetric artefacts and scrambling changes time correlations, and a vetter trained on them can learn the simulator.

Every choice is a trial. Several detrending windows, several apertures, several pipelines: each increases the effective number of tests. The PLATO comparison showed that more windows recover more planets. Whether they also admit more false alarms at a matched rate has not been measured.

Physical priors can exclude real planets. A wrong stellar density, an evolved host, a high impact parameter or an eccentric orbit can push a real duration outside the bank. The PLATO study’s duration fix is a concrete example.

Strict periodicity fails. TTVs smear trains, and QATS pays for its flexibility with a higher noise maximum. Circumbinary planets need still more specialised geometry (Chapter 31).

Aliases and gaps. Half and double periods can be strong maxima, and a transit in a gap changes the relative likelihood of aliases. Benchmarks that accept harmonics, or a percentage period tolerance over a long baseline, are weaker than they look; drift relative to duration is the meaningful measure.

Counts conflate stages. TCEs, KOIs, TOIs, candidates, validated and confirmed planets are different. ExoMiner++‘s 7,330 candidate TCEs are not 7,330 planets, and the same planet can appear in many sectors.

There is no common benchmark. No published comparison runs current BLS, TLS 2.0, fBLS, cuvarbase, CETRA, nuance and umbra on one realistic dataset with common coverage, matched false alarms and fully accounted hardware. Published timings are workload-specific and cannot be multiplied into a combined speedup.

Where the room is

The first lesson of recent work is that the easy acceleration has been taken. GPU search exists (CETRA, cuvarbase), fast folding exists (fBLS), fused GPU detrending exists (UMI), physical grids exist (Ofir), and TLS 2.0 has rewritten the CPU baseline. A new method must beat those, on the same hardware, at the same completeness and false-alarm rate. Within that constraint there is still real room.

Fast-fold the sufficient statistics

CETRA’s own benchmark shows the next bottleneck: on a two-year baseline the periodic stage took about 178 seconds while the event stage took 0.17. The periodic stage is a sum of AA and BB arrays along combs, for every duration channel. fBLS shows that such sums can be shared across nearby periods by a recursive fold. Combining the two, fast-folding the signed numerator and information arrays from a shaped event filter across duration channels and refining survivors on the original timestamps, is a natural next algorithm. Its interpolation and staircase error must be bounded against ingress and the true timestamps, and masks, heteroscedastic noise and any covariance approximation must enter the denominator. The target is fewer bytes moved per tested template, since the gather is memory-bound. No order-of-magnitude gain over CETRA on the same GPU has yet been demonstrated. This is the same tree idea that dedispersion and moving-object stacking use (Chapter 21, Chapter 39).

Hierarchical banks with honest bounds. A coarse bank can nominate candidates for exact refinement, but marginal planets do not always make prominent coarse peaks. Coarse spacing should come from normalised template overlap, with the worst-case SNR loss quantified and recovery calibrated for signals between nodes. Safe pruning could use bounds on the best fine-bank correlation inside each coarse cell. Stopping after a fixed fraction of transits is dangerous for long-period planets with few events. A hierarchy that accelerates the common short-period case and keeps an exhaustive protected path for sparse-event candidates is plausible, and its total cost must include that path (Chapter 38).

GPU organisation and precision. The useful operations are histograms, prefix sums, short template correlations, regular comb gathers, reductions and recursive shifted additions. Neighbouring hypotheses share data that can live in on-chip memory, and stars with common timestamps can be batched with separate masks. GPFC’s profile, dominated by atomic operations, shows that memory organisation is a concrete target. Tensor cores fit dense batches of template products or low-rank shape bases (limb darkening and impact parameter), but folding is an indexed reduction, and forcing it into a dense matrix product can increase work. Centre timestamps and subtract the flux baseline before reducing precision. CETRA stores flux deficits for exactly this reason (Chapter 40).

Spend saved compute on sensitivity. The PLATO result points to the best use of a faster detector: more filter windows, warped templates (umbra’s WLS inside CETRA is an obvious combination), broader duration banks, proper exposure integration, and many more injection trials, with the null experiment expanded to match.

Cache nuisance-projected event statistics. For diagonal noise and box events, cumulative sums of the target and of each regressor over event intervals, plus one small factorisation, give every event’s nuisance-adjusted numerator and information. Ketu’s event tables and EVEREST’s cached Gram matrices are precedents. Low-rank trends plus a celerite covariance, handled with Woodbury identities, may gain more than moving a dense Cholesky to a GPU.

Batch the validation integrals. TRICERATOPS evaluates (15+3k)×106(15+3k)\times10^6 prior draws per candidate, an embarrassingly parallel workload of geometry, dilution and likelihood reductions. Fused GPU batches with log-sum-exp accumulation are straightforward. Adaptive importance sampling that spends draws where the decision is uncertain is more valuable, provided it preserves the original prior measure and tracks the evidence error: missing a rare high-likelihood blend lowers the FPP falsely. Stellar populations, PRF throughputs and contrast-curve lookups can be cached per star across sectors and candidates.

Choose follow-up by information. The imaging-removal and multi-colour results give an empirical basis for deciding whether a bluer filter, a sharper image or a spectrum will best separate the remaining hypotheses per hour of telescope time. For small planets this, not computation, is the binding constraint.

What a real gain would look like. Freeze original observations, an injected population, the period and duration domain, the template family and the event-count rules. Report completeness against depth, period and stellar variability at matched false alarms per star; include detrending, transfers, compilation, refinement and vetoes in wall time; report GPU-hours and CPU core-hours separately with device models and software versions. A tenfold claim means tenfold lower cost on that curve.

The physical limits are photon statistics, transit probability, the observing window, exposure smearing, and the degeneracy between a single transit’s duration, geometry and eccentricity. Stochastic stellar variability on transit timescales carries genuine competing information. The engineering limits are duplicate folds, oversampled grids, unnecessary sorting, host–device traffic, poorly batched reductions and serial human triage. Algorithms can remove the second set. They cannot observe a transit that fell in a gap, and they cannot separate two hypotheses that the data do not distinguish. Chapter 42 collects these limits across the book.

References

  1. Charbonneau, D., Brown, T. M., Latham, D. W. & Mayor, M. (2000). Detection of planetary transits across a Sun-like star. ApJL. arXiv:astro-ph/9911436
  2. Kovács, G., Zucker, S. & Mazeh, T. (2002). A box-fitting algorithm in the search for periodic transits. A&A 391, 369. arXiv:astro-ph/0206099
  3. Mandel, K. & Agol, E. (2002). Analytic light curves for planetary transit searches. ApJL. arXiv:astro-ph/0210099
  4. Bakos, G., Noyes, R. W., Kovács, G., Stanek, K. Z., Sasselov, D. D. et al. (2004). Wide-field millimagnitude photometry with the HAT: a tool for extrasolar planet detection. PASP. arXiv:astro-ph/0401219
  5. Kovács, G., Bakos, G. & Noyes, R. W. (2005). A trend filtering algorithm for wide-field variability surveys. MNRAS. arXiv:astro-ph/0411724
  6. Tamuz, O., Mazeh, T. & Zucker, S. (2005). Correcting systematic effects in a large set of photometric light curves. MNRAS. arXiv:astro-ph/0502056
  7. Pollacco, D. L., Skillen, I., Collier Cameron, A. et al. (2006). The WASP project and the SuperWASP cameras. PASP. arXiv:astro-ph/0608454
  8. Pont, F., Zucker, S. & Queloz, D. (2006). The effect of red noise on planetary transit detection. MNRAS 373, 231. arXiv:astro-ph/0608597
  9. Bakos, G. Á., Noyes, R. W., Kovács, G. et al. (2007). HAT-P-1b: a large-radius, low-density exoplanet transiting one member of a stellar binary. ApJ. arXiv:astro-ph/0609369
  10. Pepper, J., Pogge, R. W., DePoy, D. L. et al. (2007). The Kilodegree Extremely Little Telescope (KELT). PASP. arXiv:0704.0460
  11. Jenkins, J. M. et al. (2010). Overview of the Kepler science processing pipeline. ApJL 713, L87. arXiv:1001.0258
  12. Torres, G., Fressin, F., Batalha, N. M. et al. (2011). Modeling Kepler transit light curves as false positives: rejection of blend scenarios for Kepler-9, and validation of Kepler-9 d. ApJ 727, 24. arXiv:1008.4393
  13. Gilliland, R. L., Chaplin, W. J., Dunham, E. W. et al. (2011). Kepler mission stellar and instrument noise properties. ApJS. arXiv:1107.5207
  14. Morton, T. D. (2012). An efficient automated validation procedure for exoplanet transit candidates. ApJ 761, 6. arXiv:1206.1568
  15. Stumpe, M. C., Smith, J. C., Van Cleve, J. E. et al. (2012). Kepler presearch data conditioning I: architecture and algorithms for error correction in Kepler light curves. PASP. arXiv:1203.1382
  16. Smith, J. C., Stumpe, M. C., Van Cleve, J. E. et al. (2012). Kepler presearch data conditioning II: a Bayesian approach to systematic error correction. PASP. arXiv:1203.1383
  17. Christiansen, J. L., Jenkins, J. M., Barclay, T. S. et al. (2012). The derivation, properties and value of Kepler's combined differential photometric precision. PASP. arXiv:1208.0595
  18. Siverd, R. J., Beatty, T. G., Pepper, J. et al. (2012). KELT-1b: a strongly irradiated, highly inflated, short period, 27 Jupiter-mass companion transiting a mid-F star. ApJ. arXiv:1206.1635
  19. Tenenbaum, P. et al. (2013). Detection of potential transit signals in the first twelve quarters of Kepler mission data. ApJS. arXiv:1212.2915
  20. Seader, S., Tenenbaum, P., Jenkins, J. M. & Burke, C. J. (2013). Chi-square discriminators for transiting planet detection in Kepler data. ApJS. arXiv:1302.7029
  21. Carter, J. A. & Agol, E. (2013). The quasiperiodic automated transit search algorithm. ApJ 765, 132. arXiv:1210.5136
  22. Ofir, A. (2014). Optimizing the search for transiting planets in long time series. A&A 561, A138. arXiv:1307.7330
  23. Díaz, R. F., Almenara, J. M., Santerne, A. et al. (2014). PASTIS: Bayesian extrasolar planet validation I. MNRAS 441, 983. arXiv:1403.6725
  24. Lissauer, J. J., Marcy, G. W., Bryson, S. T. et al. (2014). Validation of Kepler's multiple planet candidates II: refined statistical framework. ApJ 784, 44. arXiv:1402.6352
  25. Vanderburg, A. & Johnson, J. A. (2014). A technique for extracting highly precise photometry for the two-wheeled Kepler mission. PASP. arXiv:1408.3853
  26. Deming, D., Knutson, H., Kammer, J. et al. (2015). Spitzer secondary eclipses of the dense, modestly-irradiated, giant exoplanet HAT-P-20b using pixel-level decorrelation. ApJ. arXiv:1411.7404
  27. Foreman-Mackey, D., Montet, B. T., Hogg, D. W., Morton, T. D., Wang, D. & Schölkopf, B. (2015). A systematic search for transiting planets in the K2 data. ApJ. arXiv:1502.04715
  28. Christiansen, J. L. et al. (2015). Measuring transit signal recovery in the Kepler pipeline II: detection efficiency as calculated in one year of data. ApJ. arXiv:1507.05097
  29. Aigrain, S., Parviainen, H. & Pope, B. (2016). K2SC: flexible systematics correction and detrending of K2 light curves using Gaussian process regression. MNRAS. arXiv:1603.09167
  30. Luger, R., Agol, E., Kruse, E. et al. (2016). EVEREST: pixel level decorrelation of K2 light curves. AJ. arXiv:1607.00524
  31. Morton, T. D., Bryson, S. T., Coughlin, J. L. et al. (2016). False positive probabilities for all Kepler objects of interest: 1284 newly validated planets and 428 likely false positives. ApJ 822, 86. arXiv:1605.02825
  32. Foreman-Mackey, D., Morton, T. D., Hogg, D. W., Agol, E. & Schölkopf, B. (2016). The population of long-period transiting exoplanets. AJ 152, 206. arXiv:1607.08237
  33. Foreman-Mackey, D., Agol, E., Ambikasaran, S. & Angus, R. (2017). Fast and scalable Gaussian process modeling with applications to astronomical time series. AJ. arXiv:1703.09710
  34. Luger, R., Kruse, E., Foreman-Mackey, D., Agol, E. & Saunders, N. (2018). An update to the EVEREST K2 pipeline. AJ. arXiv:1702.05488
  35. Thompson, S. E., Coughlin, J. L., Hoffman, K. et al. (2018). Planetary candidates observed by Kepler VIII: a fully automated catalog with measured completeness and reliability based on Data Release 25. ApJS 235, 38. arXiv:1710.06758
  36. Shallue, C. J. & Vanderburg, A. (2018). Identifying exoplanets with deep learning: a five-planet resonant chain around Kepler-80 and an eighth planet around Kepler-90. AJ 155, 94. arXiv:1712.05044
  37. Wheatley, P. J., West, R. G., Goad, M. R. et al. (2018). The Next Generation Transit Survey (NGTS). MNRAS. arXiv:1710.11100
  38. Bayliss, D., Gillen, E., Eigmüller, P. et al. (2018). NGTS-1b: a hot Jupiter transiting an M-dwarf. MNRAS. arXiv:1710.11099
  39. Hippke, M. & Heller, R. (2019). Optimized transit detection algorithm to search for periodic transits of small planets. A&A 623, A39. arXiv:1901.02015
  40. Hippke, M., David, T. J., Mulders, G. D. & Heller, R. (2019). Wōtan: comprehensive time-series detrending in Python. AJ. arXiv:1906.00966
  41. Whidden, P. J., Kalmbach, J. B., Connolly, A. J. et al. (2019). Fast algorithms for slow moving asteroids: constraints on the distribution of Kuiper Belt objects. AJ. arXiv:1901.02492
  42. Kostov, V. B., Mullally, S. E., Quintana, E. V. et al. (2019). Discovery and vetting of exoplanets I: benchmarking K2 vetting tools. AJ 157, 124. arXiv:1901.07459
  43. Yu, L., Vanderburg, A., Huang, C. et al. (2019). Identifying exoplanets with deep learning III: automated triage and vetting of TESS candidates. AJ 158, 25. arXiv:1904.02726
  44. Bryson, S., Coughlin, J., Batalha, N. M. et al. (2020). A probabilistic approach to Kepler completeness and reliability for exoplanet occurrence rates. AJ 159, 279. arXiv:1906.03575
  45. Huang, C. X., Vanderburg, A., Pál, A. et al. (2020). Photometry of 10 million stars from the first two years of TESS full frame images. RNAAS 4, 204. arXiv:2011.06459
  46. Jenkins, J. M. (ed.) and Kepler Science Operations Center (2020). Kepler Data Processing Handbook, KSCI-19081-003. NASA Ames. archive.stsci.edu
  47. Eisner, N. L., Barragán, O., Lintott, C. et al. (2021). Planet Hunters TESS II: findings from the first two years of TESS. MNRAS 501, 4669. arXiv:2011.13944
  48. Giacalone, S., Dressing, C. D., Jensen, E. L. N. et al. (2021). Vetting of 384 TESS objects of interest with TRICERATOPS and statistical validation of 12 planet candidates. AJ 161, 24. arXiv:2002.00691
  49. Valizadegan, H., Martinho, M. J. S., Wilkens, L. S. et al. (2022). ExoMiner: a highly accurate and explainable deep learning classifier that validates 301 new exoplanets. ApJ 926. arXiv:2111.10009
  50. Shahaf, S., Zackay, B., Mazeh, T., Faigler, S. & Ivashtenko, O. (2022). fBLS: a fast-folding BLS algorithm. MNRAS 513, 2732. arXiv:2204.02398
  51. Morton, T. D., Giacalone, S. & Bryson, S. (2023). A recommendation to retire VESPA for exoplanet validation. RNAAS 7, 107. doi:10.3847/2515-5172/acd9a6
  52. Wang, K. et al. (2024). The GPU phase folding and deep learning method for detecting exoplanet transits. MNRAS. arXiv:2312.02063
  53. Garcia, L. J., Foreman-Mackey, D., Murray, C. A., Aigrain, S., Feliz, D. L. & Pozuelos, F. J. (2024). nuance: efficient detection of planets transiting active stars. AJ 167, 284. arXiv:2402.06835
  54. Smith, L. C. et al. (2025). CETRA: a fast, sensitive exoplanet transit detection algorithm implemented for GPUs. MNRAS. arXiv:2503.20875
  55. Valizadegan, H., Martinho, M. J. S., Jenkins, J. M. et al. (2025). ExoMiner++: enhanced transit classification and a new vetting catalog for 2-minute TESS data. AJ 170, 287. arXiv:2502.09790
  56. Gomez Barrientos, J., Greklek-McKeon, M., Knutson, H. A. et al. (2025). Validation of TESS planet candidates with multi-color transit photometry and TRICERATOPS+. AJ 170, 148. arXiv:2508.02782
  57. Lafarga, M., Armstrong, D. J., Cui, K. et al. (2026). Automatic search for transiting planets in TESS-SPOC FFIs with RAVEN: over 100 newly validated planets and over 2000 vetted candidates. MNRAS 548. arXiv:2603.22597
  58. Cabrera, J., Rauer, H., Samadi, R. et al. (2026). Assessment of PLATO science performance. arXiv:2604.04818
  59. Khan, O. (2026). UMI: GPU-accelerated asymmetric robust estimator for photometric detrending in exoplanet transit searches. arXiv:2604.06602
  60. Collier, M., Giacalone, S., Derfer, B. et al. (2026). Assessing the impact of high-resolution imaging on statistical validation of TESS planet candidates. Accepted, AAS journals. arXiv:2608.21560
  61. Talens, G. J., Smith, L. C., Malavolta, L., Garcia, L. J., Hodgkin, S. & Aigrain, S. (2026). Detecting transiting exoplanets in simulated PLATO data: a comparison of light curve filter and transit search algorithms. A&A, accepted. arXiv:2609.15493
  62. Rapetti, D., Jenkins, J., Twicken, J., Caldwell, D. & Smith, J. (2026). Comparing optimized systematic error correction methods on selected TESS light curves. arXiv:2610.01040
  63. Hoffman, J. cuvarbase: GPU-accelerated time-series tools, repository and BLS documentation. github.com/johnh2o2/cuvarbase
  64. Astropy Collaboration. BoxLeastSquares API documentation, accessed 2026-10-16. docs.astropy.org
  65. Hippke, M. et al. Transit Least Squares changelog, version 2.0 (5 October 2026). transitleastsquares.readthedocs.io
  66. European Space Agency (2026). Plato mission overview, accessed 2026-10-16. esa.int