An Honest TTV Number

The analytic TTV signal-to-noise treats the moon’s maximum projected displacement as a cleanly recoverable sinusoid. Real surveys sample the moon’s orbit only at transit epochs, with unknown phase and a possibly tilted orbit — and a fitted transit ephemeris silently absorbs part of the signal. The epoch-level forward model accounts for all of it, and the honest number is what decides whether the dark primary can be confirmed.

Code
from lastmoon.figures.grid import build_grid_population
from lastmoon.survey.instruments import JWST
from lastmoon.survey.survey import SurveyConfig, run_survey

table = run_survey(build_grid_population(), JWST).to_table()
print(f"analytic TTV SNR (sanity check):  {table['ttv_snr_analytic'].max():.2f}")
print(f"epoch-level forward-model TTV SNR: {table['ttv_snr'].max():.2f}")
print(f"detection threshold:               {SurveyConfig().ttv_snr_threshold:.1f}")
analytic TTV SNR (sanity check):  6.34
epoch-level forward-model TTV SNR: 6.33
detection threshold:               7.0
Code
from lastmoon.figures.confirmation_frontier import (
    frontier_sweep_table, plot_confirmation_frontier,
)
fig = plot_confirmation_frontier(frontier_sweep_table())
fig

The confirmation frontier: where longer baselines and better photometry push the epoch-level TTV SNR past threshold. Conditional on transiting geometry and 100% occurrence; illustrative grid, not a yield.

The forward SNR is a known-period matched-filter statistic: it assumes we know the moon’s orbital period when fitting. A blind period search pays an additional look-elsewhere penalty that is not modeled here — one more reason the threshold matters. The transits themselves are still idealized as central, box-shaped events on a quiet star; both caveats carry into the manuscript.