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¶
- Verify NTP sync status:
chronyc trackingorntpq -p. Confirm offset < 1 s (for TTV), < 50 ms (for occultations with NTP). - For GPS-PPS: Verify PPS signal lock. Test with
ppstest /dev/pps0. Record the timing source in the FITS header. - 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.
- Record exposure start timestamp: Use hardware trigger output from the camera to a GPS timestamp or check that the FITS header
DATE-OBSis 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.
9. Recommended Hardware for OpenAstro Timing¶
| 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