# AC17 standalone transit science package

Save all linked files in one ordinary directory. The scientific Python scripts
run without the private Sandbox Physics checkout or protected interactive Engine.
Use Python 3.10+; the frozen host run also works on Python 3.9.6. Dependencies
are pinned to NumPy 2.0.2, SciPy 1.13.1 and batman-package 2.5.3.

```sh
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 -W error replay-transits.py --data . --out transit-fit-rerun.json
python3 -W error reference-transits.py --input synthetic-input.json --out analytic-reference-rerun.json
```

The first replay fits real frozen TESS observations. The second produces an
independent analytic synthetic grid and dense finite-exposure averages. They
are separate kinds of evidence; neither reference output is an observed image.
Small optimizer/eigenlibrary differences across platforms should be compared
numerically. Exact parsed output matches are recorded for the tested host.

## Real observations and conditional fitting

The source is TIC 25155310/WASP-126, TESS Sector 1, SPOC DR 42, processing
spoc-5.0.10-20200904. The complete original FITS is 2,039,040 bytes with SHA-256
12ddd623b04bdd354f27b5c89287b3a25a800d65cdf2733a1d0d04ab98e2d790.
Source URL, original-byte header ranges and subset hashes are retained in
observed-provenance.json. The CSV preserves 2017 raw rows in five fixed time
windows, including flags, supplied errors and null values; 2007 pass the stated
quality/finite-value policy and 10 remain rejected. No flux clipping is used.

TIME is TDB days relative to BJD 2457000, at the cadence midpoint. It already
includes TIMECORR. Flux is electrons per second. SAP_BKG is the pipeline-removed
background. PDCSAP already includes aperture-loss and known-crowding corrections;
CROWDSAP/FLFRCSAP remain metadata and are not applied again. The 120-second
cadence span differs from effective live time and onboard rejection. A uniform
120-second time window is an explicit approximation, not an exact instrument
kernel. The original header retains all frame/readout/live-time quantities.

The fit assumes a circular orbit, negligible planet mass, quadratic limb
coefficients .45/.20 and zero additional contamination after PDC. It fits radius
ratio, nonnegative impact, scaled axis, epoch and period, profiling a separate
multiplicative intercept/slope per window. Its objective uses supplied pointwise
errors. The full impact profile, asymmetric boundary, multistart and badly
initialized high-impact candidates are retained. It is not a calibrated
posterior or an astrophysical false-positive probability. Residual lag and
complete 15-cadence block diagnostics do not prove all errors independent.
Alternative limb, dilution and time-window fits are sensitivity experiments,
not statements that those alternatives describe the actual star. Circularly
inferred density is not a general measurement of stellar density or eccentricity.

Optional original-FITS refresh uses Astropy 6.0.1 in addition to the ordinary
requirements. Use a separate environment for this optional older Astropy release:

```sh
python3 -m venv .venv-freeze
source .venv-freeze/bin/activate
python3 -m pip install numpy==1.26.4 astropy==6.0.1
python3 -W error freeze-tess.py /path/to/original_lc.fits --outdir refreshed
```

Download the exact original URL in observed-provenance.json. The freezer rejects
a different source hash, then preserves original rows between fixed time-window
endpoints. It does not refit the selection or use measured-flux thresholds.

## Independent numerical evidence and retained reference failures

The analytic reference uses installed batman-package 2.5.3 with the published
Mandel–Agol quadratic model. Its raw 280-point values are preserved. At exact or
roundoff-near planet-edge/stellar-center crossings, the installed library emits
elliptic-integral convergence messages and its raw values can differ from the
continuous limit. The same rows separately retain a direct transcription of
Mandel–Agol Table 1 case V / Eq7 using SciPy complete elliptic functions. An
independent nested Cartesian area integral checks those cases and selected
grazing points. No library coefficient is tuned to match the annular browser
calculation, and no error in the primary paper is asserted.

The public output keeps raw library values, the resolved reference method and
Cartesian results separately. The browser's annular quadrature comparisons,
finite-exposure refinement, orbit/curve sampling comparisons and actual default
synthetic records are supplied as separate frozen analysis. The reference time
averages use 4096/8192 composite-midpoint samples. The browser instead averages
with fifteen Gauss nodes in each segment bounded by outer/inner contacts and
the midpoint, so a narrow event cannot fall between widely spaced nodes. Its
chart includes the complete integration wings and baseline; its replay clock
covers the visible planetary passage. The public Python replay regenerates the
independent reference values, not the protected interactive implementation.

batman imports an upstream test-module docstring containing an invalid escape.
The scripts narrowly ignore that spelling warning during its import; numerical
warnings still fail under -W error. A sum of explicitly finite sample weights
avoids a host BLAS floating-point-flag issue; nonfinite model samples raise.

## Sources and permissions

Mandel–Agol astro-ph/0210099v1; Kipping 1004.3741v1; Maxted et al. 1602.01740v1;
TESS Science Data Products Description Rev F and official MAST product overview;
Rackham et al. 1711.05691v3; Morton et al. 1605.02825v1; Dawson/Johnson 1203.5537v3.
The website source guide pins reading sections and distinguishes published
calculations, synthetic experiments and observed samples. Full file hashes and
source URLs are in provenance.json.

NASA TESS/SPOC/MAST original mission data retain their original public-science
use/acknowledgement terms. This package does not invent a new license for those
observations or primary papers. The independently installed batman package
retains its GPLv3 terms; its code is not copied into the interactive Engine or
redistributed here. Independently authored scientific scripts are MIT; authored
synthetic inputs/outputs and prose are CC BY 4.0 with attribution to Sandbox
Physics AC17, 2026-10-28. These grants cover the linked science package, not the
protected Engine.

MIT notice: Copyright 2026 Sandbox Physics. Permission is hereby granted, free
of charge, to any person obtaining these authored scientific scripts to use,
copy, modify, merge, publish, distribute, sublicense and/or sell copies, subject
to retaining this notice. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. THE AUTHORS SHALL NOT BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING FROM ITS USE.
