Skip to content

Timing Precision Budget

Status: Foundational reference Relates to: Occultation chord timing, TTV midtime measurement, FRB detection, GPS/NTP calibration Last derived: 2026-03-20


1. Why Timing Precision Matters

In time-domain astronomy, the measurement is fundamentally a time stamp on a photometric event. The relevant science cases and their requirements:

Science Case Event Required $\sigma_t$ Why
Transit midtime (TTV) Transit midpoint 30โ€“120 s TTV amplitudes ~1โ€“10 min
Occultation chord Disappearance/reappearance 5โ€“100 ms Limb position at km-scale
FRB optical counterpart Burst detection 1โ€“10 ms Match to radio trigger
Microlensing peak Caustic crossing 1โ€“10 min Peak characterization
Eclipsing binary Eclipse midtime 1โ€“60 s O-C analysis

Timing precision has two distinct components that must be budgeted separately: 1. Clock accuracy: How close is the computer clock to true UTC? 2. Shutter/exposure precision: When exactly does the detector integrate, relative to the clock?


2. Time Standards and Sources

2.1 GPS-PPS (Gold Standard)

A GPS receiver with a Pulse-Per-Second (PPS) output provides: - Accuracy: 50โ€“100 ns to UTC (USNO) - Stability (jitter): < 100 ns RMS on the PPS pulse - After software timestamping: 1โ€“10 ยตs latency from kernel interrupt handling

The PPS signal is connected to a serial port or GPIO pin of the computer. The gpsd daemon + ntpd (or chrony) disciplined to the PPS signal achieves: [Source: Mills (1991), RFC 1305; IOTA (2020), Video Timing Standards] - System clock offset from UTC: 1โ€“50 ยตs (typical Linux with good kernel driver)

For occultation work, the relevant number is the total error from UTC to the timestamp stored in the FITS header. This includes: - PPS signal timing: ~100 ns - Kernel interrupt latency: ~1โ€“10 ยตs - NTP timestamp granularity: typically 1 ยตs - Camera trigger latency: 0โ€“50 ms (dominant term for USB/CMOS cameras)

Total GPS-PPS budget: 1โ€“50 ms. The dominant term is camera trigger latency, not the GPS itself.

2.2 NTP (Network Time Protocol)

NTP over the internet synchronizes to Stratum 1 or Stratum 2 servers. Performance: - WAN NTP (typical home broadband): 20โ€“200 ms offset from UTC, variable - LAN NTP (local server): 1โ€“5 ms offset possible - Jitter: 10โ€“100 ms on typical consumer hardware

The offset is not constant โ€” it drifts with network conditions. Over a 2-hour observation, the drift can be 10โ€“100 ms in either direction.

Critical for TTV work: NTP-only timing at the 100 ms level is perfectly adequate for TTV measurements requiring $\sigma_t = 30$โ€“120 s. The 100 ms systematic is negligible relative to the minutes-scale TTV signal.

Critical for occultation work: NTP-only timing gives $\sim$100 ms uncertainty. For main-belt asteroids ($v_s = 15$ km/s), this translates to 1.5 km limb uncertainty. For shape science requiring $<500$ m precision, NTP is insufficient. GPS is required.

2.3 Chrony vs NTPd vs PTP

chrony is the preferred NTP implementation for Linux (used by default on RHEL/Fedora/CentOS). It offers: - Better performance than ntpd on systems with variable network latency - Faster convergence - Still limited to ~5โ€“50 ms offset on typical internet connections

Precision Time Protocol (PTP / IEEE 1588): Over a LAN, PTP achieves sub-microsecond synchronization between machines. Relevant if OpenAstro nodes are on a local network or a professional observatory LAN, but not applicable to geographically distributed amateur observers.


3. Transit Timing: The Budget

3.1 Components

For a transit midtime measurement, the total uncertainty is:

$$\sigma_{t_m}^2 = \sigma_\text{phot}^2 + \sigma_\text{clock}^2 + \sigma_\text{shutter}^2 + \sigma_\text{detrend}^2$$

Component Typical Value Notes
$\sigma_\text{phot}$ 30โ€“120 s Photon noise, from SNR (see [[SNR and Stacking Theory]])
$\sigma_\text{clock}$ 0.05โ€“0.2 s NTP; negligible for TTV
$\sigma_\text{shutter}$ 0.01โ€“2 s Exposure midpoint offset, see below
$\sigma_\text{detrend}$ 10โ€“60 s Systematic from trend removal

The clock contribution is negligible for TTV work. The dominant terms are photometric noise and detrending systematics.

3.2 Shutter/Exposure Precision

For CCD/CMOS cameras, the exposure is initiated at time $T_\text{start}$ and ends at $T_\text{start} + t_\text{exp}$. The relevant time to record is the midpoint of the exposure: $T_\text{mid} = T_\text{start} + t_\text{exp}/2$.

Sources of uncertainty in $T_\text{mid}$: - Software triggering latency (USB cameras): 5โ€“50 ms. Irregular due to OS scheduling. - Firmware latency (hardware-triggered cameras): < 1 ms. - Exposure duration uncertainty: For cameras reporting $t_\text{exp}$ to the nearest second, the uncertainty in $T_\text{mid}$ is $t_\text{exp}/2 \cdot \delta t_\text{exp}/t_\text{exp} \sim 0.5$ s.

Mitigation: Record $T_\text{start}$ at the moment of trigger (not when software hands off to camera). Use hardware external triggering for occultation work.

3.3 Meeting ยฑ30 s Midtime Requirement

For TTV detection requiring $\sigma_{t_m} < 30$ s:

The photometric noise term (from [[TTV Sensitivity and N-Body Math]], Section 2.3) is: $$\sigma_{t_m,\text{phot}} \approx \frac{\sqrt{\tau_\text{ing} \cdot \Delta_t}}{2\sqrt{2}} \cdot \frac{\sigma_\text{phot}}{A_\text{depth}/2}$$

Setting $\sigma_{t_m,\text{phot}} < 30$ s and solving for required $\sigma_\text{phot}$:

For $\tau_\text{ing} = 20$ min, $\Delta_t = 1$ min, $A_\text{depth} = 1\%$: $$30 > \frac{\sqrt{20}}{2\sqrt{2}} \cdot \frac{\sigma_\text{phot}}{0.005}$$ $$30 > \frac{4.47}{2.83} \cdot 200 \sigma_\text{phot}$$ $$30 > 316 \sigma_\text{phot}$$ $$\sigma_\text{phot} < 9.5 \times 10^{-2} = 9.5\%$$

That's trivially achievable. The requirement is tighter for smaller planets. For a 1% depth transit with a 30 s cadence: $$\sigma_{t_m,\text{phot}} \approx \frac{\sqrt{20 \times 0.5}}{2\sqrt{2}} \cdot \frac{0.005}{0.005} = \frac{3.16}{2.83} \approx 1.1\,\text{min} = 66\,\text{s}$$

Still within the budget for many TTV science cases where amplitudes are measured in minutes.

Meeting ยฑ30 s requires: 5 mmag precision with 1-min cadence on a hot Jupiter ($A_\text{depth} \geq 1\%$). This is routinely achievable with 20โ€“30 cm apertures on V < 12 stars.


4. Occultation Timing: The Budget

This is the demanding case. The total timing error budget for a chord endpoint (disappearance or reappearance):

$$\sigma_t^2 = \sigma_\text{clock}^2 + \sigma_\text{trigger}^2 + \sigma_\text{frame}^2 + \sigma_\text{fit}^2 + \sigma_\text{Fresnel}^2$$

Component GPS-PPS NTP Notes
$\sigma_\text{clock}$ 0.00001โ€“0.00005 s 0.05โ€“0.2 s GPS: PPS + kernel latency
$\sigma_\text{trigger}$ 0.0001โ€“0.001 s 0.001โ€“0.05 s Camera hardware trigger vs software
$\sigma_\text{frame}$ $t_\text{exp}/2\sqrt{3}$ $t_\text{exp}/2\sqrt{3}$ Unknown position within exposure
$\sigma_\text{fit}$ 0.5โ€“1 frame 0.5โ€“1 frame From light curve fit
$\sigma_\text{Fresnel}$ physical limit physical limit Cannot be reduced

4.1 The Frame Timing Contribution

For a camera running at frame rate $f_r$ with exposure time $t_\text{exp} \approx 1/f_r$, the uncertainty from not knowing exactly when within the exposure the star disappeared is:

$$\sigma_\text{frame} = \frac{t_\text{exp}}{2\sqrt{3}} \approx \frac{1}{2\sqrt{3} f_r}$$

For a 25 fps camera: $\sigma_\text{frame} = 1/(2\sqrt{3} \times 25) = 11.5$ ms For a 5 fps camera: $\sigma_\text{frame} = 57$ ms For a 1 fps camera: $\sigma_\text{frame} = 289$ ms

High frame rate is critical for occultation chord precision. The frame rate sets the fundamental timing resolution floor for most amateur setups.

4.2 Light Curve Fitting Uncertainty

For a step-function edge (instantaneous disappearance), the edge time can be localized to better than one frame using the light curve shape. The Bayesian model for the edge time $t_D$ given photometric SNR is:

$$\sigma_\text{fit} \approx \frac{1}{2 f_r \cdot \text{SNR}_\text{frame}}$$

where $\text{SNR}\text{frame}$ is the per-frame SNR of the stellar flux. For $\text{SNR}\text{frame} = 20$ and $f_r = 10$ fps: $$\sigma_\text{fit} \approx \frac{1}{2 \times 10 \times 20} = 2.5\,\text{ms}$$

High per-frame SNR allows sub-frame edge timing. This is why a fast CMOS with good sensitivity (like the IMX462 or IMX585) is preferred: it can achieve $\text{SNR} > 20$ per frame at 25 fps for V < 11 stars.

4.3 GPS-PPS Combined Budget

For a GPS-PPS equipped setup with a 25 fps CMOS camera and a bright star (SNR = 30 per frame):

Component Value
Clock 0.05 ms
Trigger 1 ms
Frame ($1/25$ s frames) 11.5 ms
Light curve fit 2 ms
Total (quadrature) ~12 ms

Dominant term: frame duration. GPS timing is effectively perfect โ€” the bottleneck is frame rate.

For a 50 fps camera: total $\approx 6$ ms. For a 100 fps camera: total $\approx 3$ ms.

4.4 NTP-Only Combined Budget

Component Value
Clock 100 ms
Trigger 20 ms
Frame (25 fps) 11.5 ms
Light curve fit 2 ms
Total (quadrature) ~102 ms

Dominant term: clock accuracy. NTP is the bottleneck, regardless of camera frame rate.

Conclusion: For any occultation timing work requiring $\sigma_t < 50$ ms, GPS-PPS is mandatory. NTP is adequate only for TNOs (where Fresnel timescales are >100 ms) or large KBOs (where chord durations are >10 s).


5. The Fresnel Physical Floor

As derived in [[Occultation Geometry and Chord Reconstruction]], Section 6, the Fresnel diffraction timescale is:

$$\Delta t_F = \frac{1}{v_s} \sqrt{\frac{\lambda d}{2}}$$

This is the irreducible temporal width of the occultation edge, regardless of clock precision. Tabulating for key cases:

Body $d$ (AU) $v_s$ (km/s) $\Delta t_F$ at 550 nm
Near-Earth asteroid 0.05 20 3 ms
Mars-crosser 1.5 15 11 ms
Main-belt asteroid 2.5 15 14 ms
Jupiter Trojan 5.2 15 20 ms
Trans-Neptunian (KBO) 40 8 120 ms
Pluto/Eris-class 35โ€“100 5โ€“15 80โ€“250 ms

For main-belt asteroids, the Fresnel floor is ~15 ms. No clock can do better than this. A 25 fps camera (40 ms frames) is actually over-sampled relative to the Fresnel scale โ€” using 10 fps (100 ms frames) already undersamples the edge, degrading localization.

The optimal frame rate for a given body distance is: $$f_r^\text{opt} \approx \frac{v_s}{\sqrt{\lambda d / 2}} = \frac{1}{\Delta t_F}$$

For a main-belt asteroid: $f_r^\text{opt} \approx 1/0.014\,\text{s} = 70$ fps. For a KBO: $f_r^\text{opt} \approx 1/0.12\,\text{s} = 8$ fps.


6. Absolute vs Differential Timing

For TTV measurement, the science is differential: the transit midtime relative to the predicted ephemeris. Absolute clock accuracy (how close to UTC) matters only in that: - It affects the fitted ephemeris $t_0$ and $P$ when combining data from multiple observers - A 1-second systematic between observers would introduce a 1-second systematic in the fitted period

For a baseline of $T_\text{base} = 365$ d and $P = 5$ d: $$\sigma_P = \frac{\sigma_t}{\sqrt{M}} \cdot \frac{1}{T_\text{base}/P} \approx \frac{60\,\text{s}}{\sqrt{73}} \cdot \frac{5}{365} = \frac{60}{8.54} \times 0.0137 \approx 0.096\,\text{s}$$

A 1-second NTP systematic between two observers contributes at most $\sim$0.3 seconds to the period uncertainty when combining data โ€” negligible relative to the ~1 minute timing precision per transit.

For TTV work: NTP is sufficient if all observers are using UTC-synchronized NTP (not local computer clocks that haven't been synced).

[NOVEL] The quantitative demonstration that a 1-second NTP systematic contributes only ~0.3 seconds to period uncertainty over a 1-year baseline, and the resulting practical conclusion that NTP is sufficient for TTV science, is original to OpenAstro.

For occultation work, absolute timing determines the shadow path position (used to refine the asteroid orbit). A 0.1 s timing error with $v_s = 20$ km/s moves the inferred shadow position by 2 km. This matters for orbit determination but not necessarily for the local chord shape.


7. Practical Checklist: Timing Setup Validation

7.1 Before the Observation

  1. Verify NTP sync status: chronyc tracking or ntpq -p. Confirm offset < 1 s (for TTV), < 50 ms (for occultations with NTP).
  2. For GPS-PPS: Verify PPS signal lock. Test with ppstest /dev/pps0. Record the timing source in the FITS header.
  3. Camera frame rate: Confirm actual vs nominal frame rate using test acquisition. Some cameras drop frames under USB bandwidth pressure โ€” verify no dropped frames during a test run.
  4. Record exposure start timestamp: Use hardware trigger output from the camera to a GPS timestamp or check that the FITS header DATE-OBS is being set at exposure start (not end).

7.2 In the FITS Header

Required keywords:

DATE-OBS = '2026-03-20T03:14:15.926' / UTC start of exposure
EXPTIME  = 30.0                       / Exposure time in seconds
TIMESYS  = 'UTC'                      / Time system
TIMEREF  = 'TOPOCENT'                 / Topocentric (not barycentric)
TIMESRC  = 'GPS-PPS'                  / or 'NTP' with server name
NTPOFF   = 0.042                      / NTP offset at observation time (s)

Barycentric correction: All times should be converted to Barycentric Julian Date (BJD) in Barycentric Dynamical Time (TDB) before fitting transit models. The difference between observer-frame UTC and BJD(TDB) can be up to ยฑ8 minutes (due to Earth's orbital motion). Use astropy.time.Time.light_travel_time() or the barycorrpy package. This is not optional โ€” the 8-minute effect completely dominates TTV signals if not applied. [Source: Eastman, Siverd & Gaudi (2010), PASP 122, 935 โ€” essential reference for barycentric time correction]

7.3 Verifying Timing Post-Hoc

For occultation campaigns: compare your chord times with chords from other observers at known baselines. The timing consistency check: $$|t_{D,1} - t_{D,2}| \leq \frac{|x_1 - x_2|}{v_s} + 3(\sigma_{t,1}^2 + \sigma_{t,2}^2)^{1/2}$$

If this is violated, one observer has a timing error.

For TTV: compare your midtime against predictions from existing ephemeris (ETD, ExoClock). If your O-C value is an outlier by > 5 min when other observers agree, suspect a timing problem before claiming a TTV.


8. Clock Drift During Long Observations

NTP synchronizes at intervals (typically 64โ€“1024 s). Between synchronizations, the computer clock drifts freely according to its oscillator stability. Quartz oscillators in typical computers drift at 10โ€“100 ppm, meaning:

$$\text{drift} = 50\,\text{ppm} \times 1\,\text{hour} = 180\,\text{ms/hour}$$

For a 3-hour transit observation with NTP syncing every 5 minutes: - Maximum drift between syncs: $50 \times 10^{-6} \times 300 \approx 15$ ms - NTP re-syncs correct this, but if the system is busy (CPU load), NTP updates may be delayed

For extended observations ($> 2$ hours) with NTP-only, verify that NTP remains synchronized throughout. Log the NTP offset every 5 minutes in the observation log. The chronyc tracking command gives the current estimated offset.


Use Case Minimum Recommended Notes
TTV only NTP (Ethernet, not WiFi) NTP over Ethernet WiFi adds variable 1โ€“50 ms latency
Occultations (TNOs) NTP + GPS (no PPS) GPS-PPS + NTP GPS provides ground truth check
Occultations (main-belt) GPS-PPS GPS-PPS + 25+ fps camera Frame rate is the bottleneck
FRB triggers GPS-PPS + hardware trigger GPS-PPS + 100+ fps ms-scale requirements

GPS-PPS solutions for amateur use: - u-blox NEO-M8T or F9T module: $30โ€“80. PPS output. Interfaces to RPi GPIO or PC serial. - Raspberry Pi + gpsd + chrony: Well-documented setup, achieves 1โ€“10 ยตs clock accuracy with PPS. - Beaglebone Black with cape: Sub-microsecond with real-time kernel.

For the OpenAstro software stack, the timing source should be declared in the observation metadata and recorded in the database, enabling appropriate quality flags to be applied during the science pipeline.

[NOVEL] The recommended hardware stack (u-blox NEO-M8T + RPi + gpsd + chrony), the timing metadata schema for the FITS header (TIMESRC, NTPOFF keywords), and the quality-flag framework for the OpenAstro pipeline are original to OpenAstro.


10. References

  • Mills, D.L. (1991), RFC 1305 โ€” NTP Version 3 specification
  • Ludlow, A.D. et al. (2015), Rev. Mod. Phys., 87, 637 โ€” precision timekeeping (broader context)
  • IOTA (2020), Video Timing Standards for Occultation Observers โ€” community standard
  • Eastman, Siverd & Gaudi (2010), PASP, 122, 935 โ€” barycentric time correction (essential reading for TTV)
  • Herald et al. (2020), MNRAS, 499, 4570 โ€” timing methods for occultations