Research note

A toy transit fit: what the trapezoid recovers on synthetic data

24 October 2026 Research note Working note

A seeded synthetic light curve fitted with a trapezoid model. The recovered parameters agree with the injected values within about two reported sigma.

This is a code-recovery check on synthetic data. The same trapezoid generated the light curve and fitted it, so agreement is expected. It is not evidence that the model is correct for a real transit and it is not a planet detection.

Synthetic input

The light curve was generated by toy_transit_fit.py with seed 20261022. It covers 27.0 days at a 120 s cadence, which gives 19,441 cadences. The injected model has a mid-transit time of 3000.6 BTJD, a period of 3.5 d, a depth of 0.012, a full duration of 0.16 d, a baseline offset of 2.0e-4, and white Gaussian noise with a per-cadence sigma of 2.0e-4.

Model and fit

The model is a trapezoid in relative flux with a fixed ingress plus egress fraction of 0.2. It does not use a projected orbit, limb darkening, dilution, or the Mandel-Agol equations.

A box matched-filter search over periods from 1.0 to 8.0 d initializes a scipy.optimize.least_squares fit. The fit frees five parameters: t0, period, depth, duration, and baseline offset. The reported one-sigma uncertainties come from the least-squares Jacobian, scaled by the reduced chi-square.

Result

The fit used 19,441 cadences, 920 of them in transit, with 19,436 degrees of freedom. The RMS is 199.60 ppm and the chi-square per degree of freedom is 0.9962. The optimizer converged.

ParameterInjectedRecoveredOne-sigmaDifference / sigma
t0 (BTJD)3000.63000.6000300.0000366+1.48
Period (d)3.53.4999950.00000250-1.97
Depth0.0120.01199970.00000738-0.04
Duration (d)0.160.15999280.0000455-0.16
Baseline offset0.00020.000199330.00000147-0.46
Synthetic 27-day light curve with the fitted trapezoid in the top panel and the phase-folded curve with the fit and injected model in the bottom panel.
The toy trapezoid fit to the synthetic multi-transit light curve. Generated by toy_transit_fit.py. Synthetic throughout. Open the full-size SVG.

Limits

  • The noise is white and the stated uncertainty equals the injected sigma.
  • The model is not physical. A trapezoid can bias depth and duration on real data with curved ingress, limb darkening, and a projected orbit.
  • The period search only initializes the fit. It is not a detection statistic.
  • The covariance ignores correlated noise, red noise, and dilution. Real TESS photometry has systematics that this fit does not model.
  • A fit to a transit-like dip is not a planet detection.

Evidence in the repository

Topics: exoplanets, transit-timing, scientific-computing