← the windowsill · the lab

windowsill lab · open lead

TIC 374861595

A ten-percent dip every 1.94 days on an M dwarf that the official pipeline has seen 259 times and never promoted. Everything the lab knows about it, including what it got wrong.

The object, in brief

Period
1.9369484 d
Depth
10.46 %
Host
mid-M dwarf, 222 pc
SPOC detections
259 transits, 23 sectors
Geometry
grazing, b ≈ 0.9–1.05
Companion radius
2.6–3.9 RJup, unresolved
Phase-folded TESS light curve of TIC 374861595: a flat baseline with one deep, V-shaped dip of about ten percent at phase zero and no visible secondary eclipse at phase one half.
The windowsill's own fold of the signal. One deep dip, no secondary eclipse.

What it is. A 10 % dip every 1.94 days on a small, cool star 222 parsecs away. The windowsill's blind search found it on its own, in three separate TESS sectors, without being told where to look. It has no TOI, no community candidate, and no variable-star entry.

What is solid. It is on the target star, not a neighbour. Odd and even dips match, so it is not an eclipsing binary seen at half its period. There is no secondary eclipse, and its absence rules out any star as the companion by a factor of 10 to 48 in surface brightness.

What is not. The dip is grazing, so its size is poorly pinned. A careful refit over 24 sectors made the radius less certain, not more. The transit shape and the star also disagree about the star’s density by 7.7σ, which could mean an eccentric orbit, a fit on the wrong branch, or a blend. That tension is reported, not averaged away.

Why it is not submitted. Since 2026-08-19, ExoFOP accepts community candidates only after a peer-reviewed paper. The survey paper is that route.

The full working dossier follows, unedited, including its own retractions.

Prepared 2026-09-14, adversarially re-checked 2026-09-14, corrected and re-scoped 2026-09-18. Nothing has been sent.

0 · Read this first: what changed on 2026-09-18

Three numbers in the previous revision were wrong and one framing decision was open. All four are settled here. The density row was corrected twice on the same day — once wrongly — and the row records both passes, because a package that hides its own retractions is not a package anyone should trust.

was is why
The ExoFOP upload line in §1 carried this lab's trapezoid values carries SPOC's limb-darkened values §5 already concluded SPOC's ephemeris supersedes ours, but the paste-ready line was never updated. It was the one artifact in the package meant to be pasted, and it was the one carrying the retracted numbers.
Stellar density — both sides were in solar units, and only one carried the label "ρ★ from fit 1.64; catalogue 2.57", the second tagged g/cm³ fit 1.644 ρ☉ = 2.32 g/cm³; catalogue 2.571 ρ☉ = 3.62 g/cm³ 0.601 / 0.616³ = 2.571, so the catalogue's "2.57 g/cm³" is M/R³ in SOLAR units with a cgs label on it. SPOC's starDensitySolarDensity = 1.64423 is solar too. The original comparison was therefore like-for-like and the factor-1.56 discrepancy is real; only the unit label was wrong. A 2026-09-18 revision of this file briefly claimed the two agree to 11 % — that was an error, made by converting one side to cgs and not the other, and it is retracted here.
Odd/even statistic "1.13σ" 1.288 (significance 0.256) oddEvenTransitDepthComparisonStatistic value="1.2880648" in the committed DV XML.
Companion exclusion "every stellar and L-type companion excluded by two orders of magnitude"; survivors "cooler than ~1,000 K" stars excluded by 10–48×, early-L marginal, survivors cooler than ≈1,800 K Recomputed by Planck integration over the TESS band in scripts/tic374861595_secondary_limit.py. The conclusion holds; the margin was overstated.
Baseline and sector count "259 over ~2,300 d (980 expected; 25+ sectors)"; sector list given as ranges "35–39, 61–69, 87–97" 259 over 1,897 d; 23 sectors, the first being S27; the sectors enumerated individually The DV root's own startCadence/endCadence span 1,365,963 two-minute cadences = 1,897.2 d = 979.5 cycles, which is the DV's own expectedTransitCount of 980 to 0.05 %. "~2,300 d" implies 1,187 cycles and contradicts that number by 207. The sectorsObserved bitmap has exactly 23 bits set and none below 27, so the range forms named six sectors the DV does not cover: S39, S64, S91, S92, S95 and S97. Five of those six are simply not observations of this target; S97 is different — the refit reached it (§5f), so it is real and merely postdates this DV. See §5f's coverage note. Found by the survey-paper thread; verified here against the committed XML.

Plus: the AAVSO VSX check that was outstanding is now closed (§5d), and the venue question is answered (§3) — Research Notes of the AAS do not satisfy ExoFOP's rule, because the AAS itself says RNAAS is non-peer-reviewed.

And later the same day, two things that had been waiting on someone else's machine: the Mann+2019 0.72 M☉ line is retracted (§5d, checked against the authors' own posterior), and the refit has been run (§5f) — over 24 sectors rather than three. It derives R★ instead of copying it, explains the O−C drift as the trapezoid's period error, and leaves the radius less determined than before, not more. Read §5f before quoting any radius from this package.

0.1 · The gate

ExoFOP-TESS changed its community-candidate policy on 2026-08-19 (read on exofop.ipac.caltech.edu/tess/candidate_help.php, 2026-09-14):

"Candidates must be published in a peer-reviewed journal that offers online access before being uploaded to ExoFOP." … "approval to upload candidates is required" (Published Candidate Upload Request form) … "Paper URL (required)".

So "submit a CTOI" is no longer a form. It is a peer-reviewed paper, then an approval request, then the upload. That page disallows automated fetching, so this quote is a human transcription from 2026-09-14 and has not been re-read since — check it against the live page before acting on it.

Confirmed: no existing TOI or CTOI for this TIC (full CTOI table downloaded 2026-09-14, 5,137 rows, zero matches; ExoFOP target page reads "No TOI").

1 · The candidate, in one table

Stellar parameters from TIC v8. Transit parameters are SPOC's multi-sector Data Validation fit (sectors 1–96, generated 2025-12-24, spoc-5.0.125), not this lab's — see §5 for why, and §2 for what this lab's independent pass adds.

value source
Host TIC 374861595 · Gaia DR3 4756470194913503104 · 2MASS J05542154-6407473 TIC v8
RA, Dec (ICRS) 88.5897756°, −64.1297956° (05:54:21.55 −64:07:47.3) TIC v8
Tmag / G 14.076 / 15.25 TIC v8 / Gaia DR3
Distance 222.2 ± 1.6 pc (plx 4.47 ± 0.03 mas) TIC v8 (Bailer-Jones 2018)
Teff, R★, M★, ρ★ 3445 ± 157 K · 0.616 ± 0.019 R☉ · 0.601 ± 0.020 M☉ · 2.571 ρ☉ = 3.62 g/cm³ TIC v8 (cool-dwarf relations)
Gaia RUWE 1.05 (no astrometric binary signal) Gaia DR3
TIC contamination ratio 0.070 TIC v8
Period 1.9369484 ± 0.0000002 d SPOC DV s1–s96, 259 transits
Epoch (BJD_TDB) 2459036.54794 ± 0.00005 (BTJD 2036.54794) SPOC DV s1–s96
Depth 104603 ± 405 ppm (10.46 %) SPOC limb-darkened Mandel-Agol fit
Duration T14 2.1533 ± 0.0063 h (ingress 1.0767 h) SPOC DV
Transits observed 259 over 1,897 d (980 expected; 23 sectors, first is S27) SPOC DV
Rp/R★ 0.42988 ± 0.07582 SPOC DV
Rp 28.90 ± 5.17 R⊕ = 2.59 ± 0.46 R_Jup SPOC DV
Impact parameter b 0.9000 ± 0.1120 — grazing SPOC DV
Inclination 83.300 ± 0.799° SPOC DV
a/R★ 7.71473 ± 0.04768 → ρ★ = 1.644 ρ☉ = 2.32 g/cm³ SPOC DV; ρ★ re-derived here
T_eq (A=0, full redistribution) 744.5 ± 34.3 K SPOC DV
MES / model SNR / bootstrap FAP 508.60 / 507.39 / 0 SPOC DV

ExoFOP upload line

Pipe-delimited, in the public export's column order for the fields we have. Do not send this until the paper exists and the upload request is approved.

target|flag|disposition|period|period_err|epoch|epoch_err|depth_ppm|depth_ppm_err|duration_hrs|duration_hrs_err|rp_rearth|rp_rearth_err|incl|incl_err|b|b_err|rprs|rprs_err|ars|ars_err|notes
374861595|newctoi|PC|1.9369484|0.0000002|2459036.54794|0.00005|104603|405|2.1533|0.0063|28.90|5.17|83.300|0.799|0.900|0.112|0.42988|0.07582|7.71473|0.04768|Blind BLS recovery in windowsill-lab survey; parameters adopted from SPOC multi-sector DV s1-s96 (2025-12-24); grazing, b=0.90; no secondary eclipse, stellar companion excluded; mass unknown

Tag (ExoFOP convention YYYYMMDD_username_description_nnnn): <YYYYMMDD>_<exofop-username>_windowsill-tic374861595_0001.

One thing still needs a human eye: the exact upload-form column order lives behind the login wall (add_new.php?param=bulkparams). The line above follows the public export's order. Open the form once and check the header before pasting.

2 · Why it is a candidate, and what this lab independently contributes

This lab did not discover the signal — SPOC has it as TCE 1 in every 2-minute sector. What a blind search added is an independent recovery and, more usefully, one measurement SPOC's pipeline does not make: the exclusion of a stellar companion from the absent secondary eclipse (§5c). That is the load-bearing thing.

For.

Against, or unresolved.

Verdict: planet candidate (PC) — a grazing transit by an object cooler than ≈1,800 K on a 1.937-day orbit around an M2–M3 dwarf at 222 pc. Stellar companion excluded by the secondary-eclipse limit. Radius degenerate, mass unknown.

3 · Venue — the question is settled, and RNAAS loses

The previous revision left this open: "a Research Note of the AAS if RNAAS counts as peer-reviewed under ExoFOP's rule." It does not.

The AAS says so itself, on journals.aas.org/research-notes/ (read 2026-09-18):

"Research Notes of the AAS is non-peer reviewed, indexed and secure record of works in progress" … "Research Notes are moderated but not edited."

So RNAAS cannot clear a gate whose text is "published in a peer-reviewed journal." Do not spend the writing effort there expecting a CTOI upload at the end of it. RNAAS remains a legitimate way to put a citable, ADS-indexed marker down in days, and it is worth knowing that option exists — but it is a separate decision with a separate purpose, and taking it does not advance the ExoFOP path by one step.

What the paper should be

A survey-methods paper in AJ (or PASP), with this candidate as its worked case — not a single-object note. Reasons, in order of weight:

  1. A single-candidate paper has thin new content and a hostile referee. SPOC found this signal 259 times and published the DV reports. A paper whose claim is "we independently recovered a signal the pipeline already has, and we think it deserved promotion" invites exactly one question: what is new? The honest answer — one archival measurement (the secondary bound) and a disagreement with a triage decision — is a paragraph, not a paper.
  2. The survey is real, is already done, and now has a draft. Re-derived from the receipts on 2026-09-18 by scripts/survey_paper_numbers.py: 12,898 target-searches over a sample of 12,151–12,702 distinct stars, 116 above threshold, every one dispositioned from a vocabulary of 18 terms, 14 of them used, 9 known planets recovered blind, 7 leads minted and 5 killed by the survey's own gates (of 7 refutation rulings), 0 planets claimed — plus 5 hunt files refused outright by their own controls (uniformity-failed, budget-over-share). A pipeline that logs its own refusals is the unusual part, and it is the part that is publishable. Quote figures from that reader, never from memory or from this paragraph — "12,898 targets", "closed 14-term vocabulary" and a bare "5 refutations" are each wrong in a way a referee would catch. The survey-paper draft itself is on claude/project-thread-alqen7 (1c8a7f1).
  3. The two halves need each other. A survey that claims no occurrence rate and no detection completeness (the repo's claim_boundary explicitly disclaims both) has a weak positive result on its own. A candidate with no survey around it has no denominator. Together they make one defensible claim: an automated disposition pass over 12,898 targets surfaced a high-MES signal that human triage had set aside across 23 sectors, and the measurement that discriminates it was sitting in the archive the whole time.
  4. It clears the ExoFOP gate on its own terms. AJ and PASP are peer-reviewed without argument, so the paper that makes the science case is also the paper that unlocks the upload. One writing effort, both outcomes.

Frame it as a gap, not an accusation. The claim is not "the TESS Science Office erred." It is: high-MES, grazing, large-inferred-radius signals on faint M dwarfs fall into a triage gap, because the cheap archival test that resolves them — the secondary-eclipse surface-brightness bound — is not part of the standard promotion path. That is constructive, checkable, and generalises past one target. An accusation does not survive review; a named gap with a proposed test does.

4 · What "submit" requires, in order

  1. Two analysis upgrades (scripts/tic374861595_refit.py, written to run on Ben's machine because this environment cannot reach MAST): a limb-darkened Mandel-Agol fit with the grazing degeneracy properly explored, and a Gaia-anchored R★ with its own errors. Without these the radius is indefensible.
  2. Write the paper per §3. AJ or PASP.
  3. ExoFOP account — "REQUEST AN ACCOUNT" on exofop.ipac.caltech.edu/tess (its own registration, not the Exoplanet Archive login). Independent of everything above; can be done today.
  4. Published Candidate Upload Request (pub_candidate_upload_request.php) with the paper URL.
  5. Upload via add_new.php?param=bulkparams with the line in §1 and the tag.

5 · Adversarial re-check — SPOC has seen this 259 times

5a · Someone has looked, and did not promote it

MAST holds SPOC Data-Validation products for TIC 374861595 in every 2-minute sector it has — 23 of them, read off the DV bitmap: 27, 28, 30, 31, 35, 36, 37, 38, 61, 62, 63, 65, 66, 67, 68, 69, 87, 88, 89, 90, 93, 94, 96 — plus multi-sector runs. The latest multi-sector DV (sectors 1–96, 2025-12-24, spoc-5.0.125; XML committed beside this file, every number in §1 re-extracted from it 2026-09-18) finds our signal as TCE 1 at MES 508.6, bootstrap FAP 0, suspectedEclipsingBinary: false, centroid on target, ghost diagnostic clean.

The pipeline vetted it clean and the TESS Science Office never promoted it. Note the coverage starts at sector 27 (July 2020), not at launch — TESS did not observe this target in its first two years, so the unpromoted span is about five years, not seven. The likeliest reading is human triage: a V-shaped 10 % transit giving Rp > 2 R_Jup on a faint M dwarf is what gets set aside as a probable eclipsing binary without further work. That is the objection the paper must answer head-on, and §5c is the answer.

Two further TCEs (268 d and 291 d, 3 and 2 events, MES ~12) are multi-sector false alarms of the usual kind and are not part of this candidate.

5b · What the re-check withdrew from earlier revisions

5c · What stands, and why the grazing geometry does not spoil it

No secondary eclipse. This lab: −159 ± 628 ppm over 34 events on undetrended flux with per-event local baselines. SPOC: maximum weak-secondary MES 3.3, 602 ± 168 ppm, at phase 0.328 d, not at 0.5 P = 0.968 d. Two routes, same null. Adopted 3σ ceiling on a phase-0.5 event: 1,105 ppm.

The obvious worry is that b = 0.90 breaks the usual secondary/primary relation, because only part of the companion's disc ever crosses the star. It does not, and the cancellation is exact:

primary depth   = A_overlap · I_star      / F_total
secondary depth = A_overlap · I_companion / F_total

The same overlap area appears in both — at secondary the star covers exactly the region the companion covered at primary — so

secondary / primary = I_companion / I_star, the surface-brightness ratio, independent of b, of k, and of how grazing the configuration is.

Against the 10.46 % primary, the 1,105 ppm ceiling bounds the companion's TESS-band surface brightness at < 1.06 % of the host's. Computed by Planck integration over the TESS band (scripts/tic374861595_secondary_limit.py, two different bandpass stand-ins agreeing to 1 %):

companion Teff I₂/I★ predicted secondary verdict
M5V star 3050 K 5.1e−1 52,800 ppm excluded, 48× over
M7V star 2650 K 2.1e−1 21,800 ppm excluded, 20× over
M9V / BD boundary 2400 K 1.0e−1 11,000 ppm excluded, 10× over
L2 brown dwarf 1900 K 1.6e−2 1,670 ppm excluded, 1.5× over
L8 brown dwarf 1400 K 7.2e−4 75 ppm allowed
T4 brown dwarf 1100 K 3.2e−5 3 ppm allowed
planet at T_eq 745 K 4.0e−8 ~0 ppm allowed

Cut-off: T_companion ≲ 1,800 K. Every stellar companion is excluded by 10–48×; early-L is excluded marginally; mid-L and cooler survive. The previous revision said "excluded by two orders of magnitude" with a 1,000 K cut-off — both were overstated, and the correction is in the direction that matters (the true bound is looser than claimed). The conclusion is unchanged: a stellar companion is ruled out; a giant planet or a cool brown dwarf is not.

Two caveats, both stated rather than buried. Reflected light and thermal redistribution are ignored, which can only add secondary flux and so makes the exclusions conservative. Blackbodies are a poor model for L and T dwarfs, which are fainter than blackbodies in the TESS band — so the real cut-off sits somewhat above 1,800 K, again in the permissive direction for the objects being kept.

5d · Independent checks that came back clean

5e · Where the package stands

Planet candidate, unchanged. A strong, on-target, grazing transit that SPOC has seen 259 times and never promoted, whose one discriminating measurement is the missing secondary eclipse — which rules out a stellar companion and leaves a giant planet or a cool brown dwarf. The paper writes itself around that measurement, the survey that found it blind, and an RV request. It does not write itself around a radius, because the radius is degenerate.

§5f reports the refit, which has now been run. It does not change this verdict; it hardens it.

5f · The refit, run — 2026-09-18

scripts/tic374861595_refit.py has been run against MAST. Full output in TIC374861595-refit-2026-09-18.log, machine-readable in the matching .json:

py -3.11 scripts/tic374861595_refit.py --backend numpy \
  --kmag 11.710 --kmag-err 0.026 \
  --parallax 4.512610 --parallax-err 0.023275 \
  --errors mcmc --json docs/submissions/TIC374861595-refit-2026-09-18.json

The archive is much larger than this package assumed. 24 SPOC 2-minute sectors (27–97), 378,654 good cadences, BTJD 2036.3 to 3988.3 — a 1,952-day (5.3-year) baseline, 289 transit windows, 105,227 cadences in the fit. The blind search used three sectors.

Why this is 24 sectors and §1 is 23. They count different things and both are right. §1 is the DV run, generated 2025-12-24 over sectors 1–96: its sectorsObserved bitmap has 23 bits, the highest S96, spanning 1,897 d. This refit queried MAST on 2026-09-18, nine months later, and got one sector more and 55 days more. The extra sector's identity is not actually pinned down by either artifact. The 55-day tail is 2.00 sector lengths past the DV's last cadence while the count rises by only one, which fits one skipped sector followed by one observed one — and that would make the highest sector S98, not the S97 written above. Neither the log nor the JSON enumerates the sectors, so the "27–97" range label is a typed number, not a derived one. Do not quote it in the paper until the script prints the list.

Both gaps are closed in code as of 2026-09-19, and both need a re-run on a machine with MAST access to produce their output. The script now derives the sector list from each product's own SECTOR keyword, prints it, counts any product it could not identify, and ships it in the JSON as coverage; and --chain <file.npz> writes the joint MCMC samples, with the JSON saying so when it is not passed. Five tests in tests/test_tic374861595_refit.py gate the coverage helper, including that it will not emit a range across a sector that was never observed.

The stellar inputs are now measured rather than back-derived. 2MASS Ks = 11.710 ± 0.026 (PSC 05542154−6407473; Qflg AAA, Cflg 000, Xflg 0 — clean) and Gaia DR3 parallax 4.512610 ± 0.023275 mas (RUWE 1.05, non_single_star = 0). TIC v8's 4.47187 mas is DR2. The script's built-in default K is back-derived from the package's own M_K and must never be used for anything published; pass the real one.

What the refit settled

row was is
R★ catalogue — "agrees with TIC rather than checking it" 0.6148 ± 0.0186 R☉, derived here from the measured Ks and the DR3 parallax, M_K = 4.982 ± 0.028. It reproduces TIC to 0.2 %, which is now a check instead of a copy.
M★ disputed; one line said 0.72 M☉ 0.5998 ± 0.0185 M☉
O−C "+5.2, +3.2, +0.8 min over 73 cycles, monotone; almost certainly trapezoid mid-time bias" Explained — and the guess was right in spirit, wrong in detail. It is the trapezoid's period, not its mid-times. The trapezoid period sits 3.382 s/cycle short of SPOC's (16 σ on its own error bar); over 73 cycles that predicts −4.12 min of drift against the −4.40 min observed, agreeing to 7 %. No TTV is required, and none is claimed.

What it did not settle — and one thing it made worse

One operational note. --backend auto picks batman whenever it is installed, and that path rebuilds its model inside every likelihood call: 348 ms per evaluation against 3.9 ms for the numpy integrator at the same cadence count. That is ~90× and it is the difference between a roughly three-hour MCMC and one on the order of ten days. The two backends agree to 1.54 ppm in --selftest. Pass --backend numpy until the model object is hoisted out of the likelihood.

6 · Files