In 2025 I set up a remote telescope observatory, IAU Minor Planet Code R60, to reach millimagnitude photometry; the engineering story is in Building My Remote Observatory. This post reports the exoplanet science from its first year: 29 transit timings submitted to the ExoClock network in support of the European Space Agency's Ariel mission, an assessment of the precision and accuracy achieved, and one planet, WASP-148b, measured arriving 26 to 32 minutes late.
Why the timing matters
When a planet transits its star, the star fades for a few hours, and the midpoint of that fade is a clock reading. Predicting those readings years ahead gives an ephemeris, but ephemerides drift: small errors in a planet's period accumulate, and after a few years a predicted mid-time can be tens of minutes out. A space telescope must book its observations in advance and point during the transit, so this drift has a direct operational cost.
ExoClock is a worldwide network of professional and amateur observers who time exoplanet transits from the ground and pool the results, keeping the predicted transit times fresh for the candidate targets of ESA's Ariel mission. Ariel launches around 2029 to study the atmospheres of roughly a thousand exoplanets. A 0.3 m telescope cannot rival a space observatory on any single measurement, but it can give a whole night to one star on the exact date a transit falls, which is what this kind of timing requires. Every observation discussed here is lodged with ExoClock, where each light curve is reduced and vetted independently of me; my full observer record is public at my ExoClock observations page.
The observations
Between July 2025 and June 2026 I recorded 29 exoplanet transits of 23 planets with R60, my 0.305 m (12") Ritchey-Chrétien in Nerpio, Spain, using a ZWO ASI 2600 Mono camera, almost all in the Cousins R band. Three earlier transits, from 2023 and 2024 on shared telescopes, bring my total ExoClock record to 32 transits across 25 planets. Every one was submitted to ExoClock and independently re-fitted and quality-controlled there.
Target selection. ExoClock assigns every planet a priority, from Alert down to Low, according to how uncertain its predicted transit time has become, and I worked from the top of that list. Priorities are not fixed: a planet climbs as its ephemeris decays and drops back to Low once enough observers have re-timed it, so the mostly-Low priorities in the table partly reflect the collective effort, mine included, that keeps these predictions current. WASP-148b remains an Alert because its timing genuinely varies, pulled by its outer companion, and WASP-44b and HAT-P-17b were still Medium when I observed them.
The sample. The host stars span V = 10.2 to 14.3. The transits run from half a percent to nearly three percent deep, and the orbital periods from under a day (TOI-2109b in 16 hours, KELT-16b in 23) to HAT-P-17b's ten days. The targets come from most of the major transit surveys: five are TESS objects of interest, one is from the Kepler field, and the rest are from ground-based programmes such as WASP, HAT, KELT, TrES, XO and Qatar. Most of the observing fell in an intensive first season from July to October 2025, when these targets were well placed after dark, with a second run of high-priority follow-ups into 2026.
Reading the table. Each transit yields: the observed-minus-calculated timing residual (O − C), in minutes; the transit depth; the planet-to-star radius ratio Rp/Rs; the detection signal-to-noise (SNR); and the residual scatter. Drift is how far the measured radius ratio sits from the published value, in units of my measurement uncertainty alone (some tension is expected regardless, since the radius ratio depends slightly on the observing band). Scatter is the residual standard deviation of each light curve, in millimagnitudes. AutoCorr and Shapiro are ExoClock's two residual checks, for correlated noise and for departures from a Gaussian, both explained after the table. R60 is my telescope; the three earlier transits on shared telescopes are marked.
| Planet | Priority | Obs. date | Depth | Rp/Rs (measured) | Rp/Rs (literature) | Drift | O−C (min) | SNR | Scatter (mmag) | AutoCorr | Shapiro |
|---|---|---|---|---|---|---|---|---|---|---|---|
| HAT-P-23b | Low | 2026-06-25 | 1.17% | 0.1080 ± 0.0049 | 0.1162 | -1.65σ | +2.62 ± 2.16 | 11.0 | 3.62 | 0.234 | 0.027 |
| HAT-P-59b | Low | 2026-06-24 | 1.21% | 0.1099 ± 0.0051 | 0.1045 | +1.04σ | +4.54 ± 1.73 | 10.9 | 2.44 | 0.223 | 0.013 |
| XO-6b | Low | 2026-02-23 | 1.46% | 0.1207 ± 0.0029 | 0.1100 | +1.61σ | -0.20 ± 1.87 | 20.9 | 2.47 | 0.303 | 0.013 |
| TOI-3819b | Low | 2026-02-20 | 0.74% | 0.0862 ± 0.0097 | 0.0783 | +0.81σ | -2.39 ± 4.18 | 4.5 | 2.64 | 0.249 | 0.017 |
| Qatar-3b | Low | 2025-10-02 | 0.77% | 0.0878 ± 0.0047 | 0.0888 | -0.20σ | +2.49 ± 2.74 | 9.3 | 2.96 | 0.288 | 0.020 |
| Qatar-4b | Low | 2025-10-02 | 1.75% | 0.1321 ± 0.0046 | 0.1380 | -1.07σ | +1.98 ± 1.87 | 14.4 | 5.41 | 0.159 | 0.012 |
| HAT-P-59b | Low | 2025-10-01 | 1.30% | 0.1138 ± 0.0078 | 0.1045 | +1.18σ | +2.67 ± 3.60 | 7.4 | 4.57 | 0.339 | 0.019 |
| WASP-44b | Medium | 2025-09-13 | 1.17% | 0.1083 ± 0.0055 | 0.1260 | -2.83σ | +1.38 ± 2.59 | 9.9 | 4.42 | 0.167 | 0.015 |
| TOI-2154b | Low | 2025-09-12 | 1.27% | 0.1126 ± 0.0050 | 0.1069 | +1.11σ | +1.10 ± 2.45 | 11.4 | 3.34 | 0.270 | 0.015 |
| WASP-135b | Low (TTV) | 2025-09-11 | 2.13% | 0.1459 ± 0.0078 | 0.1390 | +0.83σ | -3.22 ± 1.73 | 9.5 | 5.39 | 0.259 | 0.010 |
| Kepler-17b | Low | 2025-09-10 | 1.62% | 0.1273 ± 0.0062 | 0.1303 | -0.49σ | -1.38 ± 2.16 | 10.3 | 6.82 | 0.275 | 0.027 |
| WASP-148b | Alert (TTV) | 2025-09-05 | 0.84% | 0.0914 ± 0.0067 | 0.0807 | +1.59σ | +25.64 ± 3.31 | 6.8 | 3.46 | 0.290 | 0.020 |
| HAT-P-17b | Medium | 2025-09-03 | 1.65% | 0.1285 ± 0.0032 | 0.1238 | +1.40σ | +2.87 ± 1.87 | 20.1 | 3.12 | 0.209 | 0.034 |
| TrES-2b | Low | 2025-08-10 | 1.76% | 0.1325 ± 0.0044 | 0.1254 | +1.60σ | +1.88 ± 1.73 | 15.4 | 3.69 | 0.206 | 0.013 |
| KELT-16b | Low | 2025-08-08 | 1.23% | 0.1109 ± 0.0037 | 0.1070 | +0.99σ | -2.00 ± 1.35 | 15.0 | 2.84 | 0.192 | 0.017 |
| TOI-2046b | Low | 2025-08-06 | 1.67% | 0.1292 ± 0.0067 | 0.1213 | +1.14σ | +0.88 ± 1.58 | 9.7 | 2.08 | 0.406 | 0.032 |
| TrES-5b | Low | 2025-08-05 | 2.26% | 0.1502 ± 0.0064 | 0.1420 | +1.27σ | +0.48 ± 1.27 | 11.8 | 6.18 | 0.234 | 0.013 |
| KELT-16b | Low | 2025-08-05 | 1.16% | 0.1079 ± 0.0089 | 0.1070 | +0.10σ | -3.45 ± 2.30 | 6.1 | 2.69 | 0.285 | 0.016 |
| HAT-P-23b | Low | 2025-08-04 | 1.17% | 0.1083 ± 0.0033 | 0.1162 | -2.33σ | -0.46 ± 1.34 | 16.4 | 3.26 | 0.345 | 0.015 |
| WASP-59b | Low | 2025-08-04 | 1.92% | 0.1385 ± 0.0018 | 0.1300 | +2.37σ | -0.97 ± 0.79 | 38.6 | 2.48 | 0.233 | 0.012 |
| TrES-3b | Low (TTV) | 2025-08-03 | 2.23% | 0.1492 ± 0.0047 | 0.1631 | -2.95σ | -2.27 ± 1.09 | 16.4 | 3.72 | 0.276 | 0.011 |
| TOI-4463Ab | Low | 2025-08-02 | 0.96% | 0.0981 ± 0.0046 | 0.1145 | -2.70σ | -4.07 ± 1.87 | 10.9 | 1.90 | 0.324 | 0.023 |
| TOI-2109b | Low | 2025-07-22 | 0.69% | 0.0832 ± 0.0036 | 0.0815 | +0.46σ | +3.24 ± 2.16 | 11.6 | 1.52 | 0.292 | 0.018 |
| WASP-2b | Low | 2025-07-22 | 1.76% | 0.1328 ± 0.0040 | 0.1326 | +0.05σ | -1.22 ± 1.09 | 16.8 | 2.06 | 0.217 | 0.034 |
| HAT-P-7b | Low (TTV) | 2025-07-21 | 0.62% | 0.0788 ± 0.0075 | 0.0781 | +0.09σ | -0.51 ± 1.87 | 5.3 | 1.63 | 0.189 | 0.011 |
| KELT-12b | Low | 2025-07-21 | 0.61% | 0.0778 ± 0.0029 | 0.0772 | +0.17σ | +2.74 ± 3.02 | 13.4 | 1.90 | 0.259 | 0.006 |
| Qatar-4b | Low | 2025-07-20 | 1.95% | 0.1397 ± 0.0042 | 0.1380 | +0.33σ | +0.14 ± 1.44 | 16.7 | 6.46 | 0.269 | 0.021 |
| WASP-2b | Low | 2025-07-19 | 1.82% | 0.1348 ± 0.0030 | 0.1326 | +0.71σ | -2.86 ± 0.95 | 22.7 | 1.67 | 0.332 | 0.028 |
| WASP-148b | Alert (TTV) | 2025-07-15 | 0.51% | 0.0717 ± 0.0061 | 0.0807 | -1.47σ | +32.08 ± 8.06 | 5.9 | 4.56 | 0.270 | 0.007 |
| KELT-16b [Alnitak] | Low | 2024-07-27 | 1.00% | 0.1000 ± 0.0130 | 0.1070 | -0.54σ | +5.31 ± 5.62 | 3.9 | 5.81 | 0.203 | 0.009 |
| WASP-52b [Alnitak] | Low (spots) | 2024-07-02 | 2.83% | 0.1683 ± 0.0037 | 0.1646 | +0.95σ | -1.65 ± 1.05 | 22.9 | 7.05 | 0.161 | 0.005 |
| KPS-1b [BurkeGaffney] | Low | 2023-07-07 | 1.33% | 0.1152 ± 0.0073 | 0.1140 | +0.14σ | -0.62 ± 2.74 | 8.0 | 6.51 | 0.188 | 0.007 |
The observer's craft
ExoClock reduces and re-fits every light curve I submit, but the photometry it works from is mine to get right, and that is decided at the telescope. From the ground, a thousandth of a magnitude is a hard target: the atmosphere shimmers, transparency drifts, and an imperfectly flattened field can invent a signal of its own. Each transit means running the full instrument chain myself, remotely: guiding the mount so the star holds the same pixels for hours, refocusing as the night cools, taking the flats and darks that flatten the frame, choosing an exposure that fills the well without saturating, and watching the run live to catch a guiding drift or a passing cloud before it costs the transit. That control, an instrument I can point at one demanding star for a full night and hold steady, is why I built R60 (the story is here).
Photometric precision: did it reach the millimagnitude level?
Each light curve is a stream of brightness measurements, and its scatter, the residual standard deviation or STD, is how much those points jitter around the fitted transit curve. A scatter of three millimagnitudes means a typical measurement sits about three thousandths of a magnitude, roughly a third of a percent, from the smooth model. It measures the raw steadiness of the photometry, not the depth of the transit or the quality of the fit.
The observatory was built and funded, through the Masason Foundation grant, to reach one benchmark: millimagnitude photometry, the ability to measure a star's brightness to within about a thousandth of a magnitude. Across the 29 R60 transits the scatter runs from 1.5 to 6.8 millimagnitudes, with a median of 3.1. The tightest, TOI-2109b at 1.5, approaches the millimagnitude floor; the loosest, Kepler-17b at 6.8, is the faintest star in the set at V = 14.3. This is per-point scatter, a few millimagnitudes on each exposure; averaged over the hundreds of points in a transit it beats down to the roughly one-millimagnitude precision on the fitted depth and mid-time the observatory was built for, which is what makes the shallowest transits here, such as WASP-148b's half-percent dip, measurable at all. For comparison, my three earlier transits on shared telescopes scatter 5.8 to 7.0 millimagnitudes, though on different targets and nights, so it is not a controlled test; one was even a larger 0.43 m instrument. What building R60 changed decisively was not aperture but control: the freedom to schedule these targets, and to return to them, whenever the science required.
Reading the clock: timing precision and accuracy

Figure 1. Transit timing across the whole programme. Each point is one transit's observed-minus-calculated (O − C) mid-transit time, in minutes, against the night it was observed; the dashed line at zero is the constant-period prediction. The R60 transits (blue) scatter tightly about zero, with an error-weighted mean of −0.28 ± 0.32 minutes and no detectable clock or reduction bias; error bars show each transit's timing precision. WASP-148b (orange) sits 26 to 32 minutes late, the one known timing variation in the set. Grey squares are three earlier transits on shared telescopes.
Every transit gives a mid-transit time, and hence an O − C residual against the prediction. Two quantities describe how good it is. Precision, the per-transit uncertainty, has a median of 1.9 minutes, from a best of 0.79 (WASP-59b) to 4.2 on the lowest-SNR target (setting aside WASP-148b, whose shallow half-percent dip gives ±8); 17 of 29 transits are timed to better than two minutes. Accuracy, any systematic offset, is the sterner test: across the 20 planets with no flagged timing anomaly the error-weighted mean residual is −0.28 ± 0.32 minutes, consistent with zero to about twenty seconds. This is consistent with no clock or reduction bias, and the scatter is only slightly larger than the formal uncertainties (reduced chi-square near 1.6), so the error bars are, if anything, mildly optimistic. A flat, zero-centred baseline is what allows a single genuine outlier to be identified with confidence.
What sets the precision is transit depth, not stellar brightness. Timing precision barely changes across the roughly 40-fold range of host-star brightness in the sample (correlation −0.03): Kepler-17b at V = 14.3 was timed as well as targets three magnitudes brighter, because what limits the timing on these stars is the transit's depth relative to the scatter, its signal-to-noise, not the brightness of the star on its own. Depth does drive it (correlation −0.49), a deeper dip giving the fit more to lock onto; even so R60 times a 0.6 percent dip, six parts in a thousand, to about two minutes. The depths are accurate as well as precise: every measured radius ratio agrees with the literature to within three standard deviations, with no net bias (mean drift +0.11σ). The main cost is time. Transits here last from 1.4 to 5.8 hours, and each needs an hour of steady baseline on either side, so the longest demand an unbroken run approaching eight hours, a commitment a dedicated telescope can make and a shared one cannot.
Clean light curves
Two further checks confirm the light curves are honest. AutoCorrelation, which hunts for correlated systematics in the residuals, stays low on every transit but one (TOI-2046b, taken in a Clear filter). The Shapiro statistic, which tests for outliers and departures from a Gaussian, is comfortably in the good band throughout. The residuals look like clean noise, which is what makes the error bars, and therefore the timing, trustworthy.
WASP-148b: a planet running late
Against that flat baseline, one system stands out. WASP-148b is a known two-planet system: its transits are already documented to arrive early or late as its outer companion, WASP-148c, pulls on it, and ExoClock flags it "Alert". My measurements recover that signal. Both transits I caught arrive late, by 26 and 32 minutes, far outside the flat baseline set by the unflagged planets, and consistent with the system's previously documented timing variations.

Figure 2. WASP-148b on 15 July 2025, running late. The fitted transit (red) sits to the right of the constant-period prediction (teal); that horizontal shift is the planet transiting about 32 minutes late. The dip is shallow, around five millimagnitudes, yet the offset is unmistakable.
Recovering a published timing variation with a 0.3 m telescope, against a demonstrably unbiased baseline, is the intended use of this precision. Turning offsets like these into the mass and orbit of the unseen perturbing planet, once enough epochs are in hand, is what my NEPTUNE pipeline is built to do, so WASP-148b is both a measurement and a working test case for that method (the fuller analysis is here). Three more targets, WASP-135b, TrES-3b and HAT-P-7b, are flagged for possible timing variations and are worth continued monitoring.
What it feeds: orbital decay and ESA Ariel
A long timing baseline also reveals slow changes. The two shortest-period planets here, TOI-2109b on a 16-hour orbit and KELT-16b on a 23-hour orbit, are candidates for tidal orbital decay, a gradual shrinking of the period that only years of dense timing can confirm; repeated ExoClock measurements are how that baseline is built.
Every planet here is also an Ariel candidate target, and each mid-transit time narrows its predicted schedule a little further. Across 29 transits it is a small but concrete contribution to keeping Ariel's ephemerides current before launch.
The 29 R60 transits
Every transit below was reduced and quality-controlled by ExoClock. Each card shows the folded lightcurve, the fit, and the measured mid-transit time, and prints its scatter (STD) in parts per thousand of flux; the diagnostic table converts these to the millimagnitudes used throughout this post (2.3 parts per thousand is about 2.5 millimagnitudes).
HAT-P-23b · 2026-06-25

O − C +2.62 ± 2.16 min · SNR 11.0 · scatter 3.62 mmag
HAT-P-59b · 2026-06-24

The largest residual of any unflagged planet, about 2.6σ late, and worth re-observing. O − C +4.54 ± 1.73 min · SNR 10.9 · scatter 2.44 mmag
XO-6b · 2026-02-23

O − C -0.20 ± 1.87 min · SNR 20.9 · scatter 2.47 mmag
TOI-3819b · 2026-02-20

The lowest-SNR detection in the set, near the limit of what R60 can time. O − C -2.39 ± 4.18 min · SNR 4.5 · scatter 2.64 mmag
Qatar-4b · 2025-10-02

O − C +1.98 ± 1.87 min · SNR 14.4 · scatter 5.41 mmag
Qatar-3b · 2025-10-02

O − C +2.49 ± 2.74 min · SNR 9.3 · scatter 2.96 mmag
HAT-P-59b · 2025-10-01

O − C +2.67 ± 3.60 min · SNR 7.4 · scatter 4.57 mmag
WASP-44b · 2025-09-13

O − C +1.38 ± 2.59 min · SNR 9.9 · scatter 4.42 mmag
TOI-2154b · 2025-09-12

O − C +1.10 ± 2.45 min · SNR 11.4 · scatter 3.34 mmag
WASP-135b · 2025-09-11

O − C -3.22 ± 1.73 min · SNR 9.5 · scatter 5.39 mmag
Kepler-17b · 2025-09-10

The faintest star in the programme, V = 14.3, yet timed to two minutes. O − C -1.38 ± 2.16 min · SNR 10.3 · scatter 6.82 mmag
WASP-148b · 2025-09-05

The same timing variation, a cleaner epoch. O − C +25.64 ± 3.31 min · SNR 6.8 · scatter 3.46 mmag
HAT-P-17b · 2025-09-03

O − C +2.87 ± 1.87 min · SNR 20.1 · scatter 3.12 mmag
TrES-2b · 2025-08-10

O − C +1.88 ± 1.73 min · SNR 15.4 · scatter 3.69 mmag
KELT-16b · 2025-08-08

O − C -2.00 ± 1.35 min · SNR 15.0 · scatter 2.84 mmag
TOI-2046b · 2025-08-06

The one transit taken in a Clear filter, and the only light curve with raised autocorrelation. O − C +0.88 ± 1.58 min · SNR 9.7 · scatter 2.08 mmag
TrES-5b · 2025-08-05

O − C +0.48 ± 1.27 min · SNR 11.8 · scatter 6.18 mmag
KELT-16b · 2025-08-05

O − C -3.45 ± 2.30 min · SNR 6.1 · scatter 2.69 mmag
WASP-59b · 2025-08-04

The cleanest light curve of the programme. O − C -0.97 ± 0.79 min · SNR 38.6 · scatter 2.48 mmag
HAT-P-23b · 2025-08-04

O − C -0.46 ± 1.34 min · SNR 16.4 · scatter 3.26 mmag
TrES-3b · 2025-08-03

O − C -2.27 ± 1.09 min · SNR 16.4 · scatter 3.72 mmag
TOI-4463Ab · 2025-08-02

O − C -4.07 ± 1.87 min · SNR 10.9 · scatter 1.90 mmag
WASP-2b · 2025-07-22

O − C -1.22 ± 1.09 min · SNR 16.8 · scatter 2.06 mmag
TOI-2109b · 2025-07-22

One of the shallowest dips in the set, cleanly recovered. O − C +3.24 ± 2.16 min · SNR 11.6 · scatter 1.52 mmag
KELT-12b · 2025-07-21

O − C +2.74 ± 3.02 min · SNR 13.4 · scatter 1.90 mmag
HAT-P-7b · 2025-07-21

O − C -0.51 ± 1.87 min · SNR 5.3 · scatter 1.63 mmag
Qatar-4b · 2025-07-20

O − C +0.14 ± 1.44 min · SNR 16.7 · scatter 6.46 mmag
WASP-2b · 2025-07-19

O − C -2.86 ± 0.95 min · SNR 22.7 · scatter 1.67 mmag
WASP-148b · 2025-07-15

The known timing variation at its larger epoch, shown as Figure 2 above. O − C +32.08 ± 8.06 min · SNR 5.9 · scatter 4.56 mmag
Networks: ExoClock (ESA Ariel exoplanet ephemerides); IAU Minor Planet Center observatory code R60.