Where is everybody? · Working papers
Revised after a second, separate analysis run for this project tried to break it. Neither analysis is an outside expert.
Occultation limits cold enclosed stars to a few percent along bulge sightlines
Summary. A search of the public OGLE-II bulge difference-image light curves (221,801 catalogued light curves, drawn from 6.37 million monitored stars with I < 18, 1997-2000), calibrated by injection into catalogue light curves, finds no star that vanishes once, totally and sharply. If every star along these sightlines sat inside an opaque 10 au sphere, 130 (conservative efficiency) to 480 (optimistic) such events would have passed the cuts. The 95% upper limit on the enclosed fraction of stars, f, is therefore about 0.02 (conservative; 0.006 optimistic) at R = 10 au, about 0.003 (0.0007) at 100 au, 0.2 (0.04) at 3 au, and nothing below 2 au. If all main-sequence stars are enclosed at one temperature the limit is 0.01 at 30 K, 0.03 at 50 K, 0.3 at 100 K and none at 150 K or warmer. These numbers are good to one significant figure, and carry a further systematic of about a factor of 2. Main caveats:
A star wholly enclosed by an opaque shell that re-radiates its luminosity at temperature T has radius R = sqrt(L/Lsun) x (393.6 K / T)^2 au. Cold shells are large, escape WISE, and gravity alone still allows 42% of local stellar mass to be dark (study dark_companions). A sphere larger than its own Einstein radius cannot microlens; it blots out background stars instead. How many such total occultations should existing surveys contain, how many have they recorded, and what limit on f follows?
One premise of the study plan is wrong: a 1 Lsun enclosure at 30 K has R = 172 au (344 au across), not 9 au.
| Data set | Use |
|---|---|
| OGLE-II bulge difference-image (DIA) catalogue of candidate variables, Wozniak et al. 2002: 221,801 light curves, 49 fields, 1997-2000 | the search |
| OGLE-II DIA reference-image subframes (header template frame) | check of the reference-epoch reconstruction |
| OGLE-II VI maps, Udalski et al. 2002: 30.5 million stars, 6.37 million with I < 18 | number of monitored stars |
| OGLE Collection of Variable Stars, bulge eclipsing binaries (Soszynski et al. 2016) | catalogue-inclusion test |
| Mroz et al. 2019 (VizieR J/ApJS/244/29): OGLE-IV microlensing rates, star counts | rate normalisation, forecasts |
| Gaia DR3; Gaia Science Alerts index (27,076 alerts); SIMBAD | artefact test, identifications, alert census |
| Mamajek dwarf sequence | mass-luminosity relation |
| Paper texts (listed under prior work) | selection functions |
code/run_all.py reruns everything from the public
archives (2.9 GB download, then about 10-15 minutes). It stops if an
occultation injected into an I = 16 star is not recovered through the
real load path, or if the 1998 fade of Terz V 2637 is missing.
| R [au] | 10 K | 30 K | 50 K | 100 K | 300 K |
|---|---|---|---|---|---|
| L = 0.001 Lsun | 49 | 5.4 | 2.0 | 0.49 | 0.05 |
| 0.01 | 155 | 17 | 6.2 | 1.5 | 0.17 |
| 0.1 | 490 | 54 | 20 | 4.9 | 0.54 |
| 1 | 1549 | 172 | 62 | 15 | 1.7 |
Most stars are M dwarfs, so the median enclosure is 13 au at 30 K, 4.6 au at 50 K and 1.2 au at 100 K. At 100 K only 17% of stars have R > 3 au; the rest sit inside their Einstein radius (about 2 au for a bulge lens) and lens instead of occulting.
Occultation of a monitored star, for f = 1 and R = 10 au:
| Sightline | Rate [per star per yr] | Optical depth | Duration, median (10-90%) |
|---|---|---|---|
| Bulge, l = 1, b = -3 | 6.4e-5 | 3.5e-5 | 161 d (76-356) |
| Bulge, l = 0, b = -6 | 1.8e-5 | 1.1e-5 | 160 d (75-376) |
| Galactic plane, l = 320 | 4.0e-6 | 6.9e-6 | 506 d (231-1,130) |
| Field star at 1 kpc, b = 30 | 1.4e-7 | 2.6e-7 | 556 d (254-1,220) |
| LMC | 9.1e-7 | - | about 560 d |
Rate and duration scale as R. Below about 5 au light bending cuts the bulge rate (by 1.4 at 3 au, 10 at 1 au). The event is flat-bottomed, achromatic, single and total down to the blend level. Ingress lasts from 2 hours (dwarf source) to 4 days (50 Rsun giant) at 200 km/s (fig1, fig2).
| Search | Stars | Records a vanished star? | Total, single, achromatic disappearances |
|---|---|---|---|
| Bramante, Diamond & Kim 2025 (EROS-2, OGLE) | proposal and forecast | - | not searched; efficiency set to 1 |
| MACHO, Drake & Cook 2003 | 3.3e7 bulge, 1.5e7 Clouds | probably | at most 83 bulge leftovers, unvetted; final cut demands dust reddening |
| 2MASS calibration fields, Quillen et al. 2014 | over 4e4 | not stated | 0 (no dimming over 0.2 mag lasting over a day among quiescent stars) |
| VVV, Smith 2021, Lucas 2024 | about 3e8 | no (detection-based) | 1 by luck (VVV-WIT-11) |
| ASAS-SN, JoHantgen 2025 | 5.1e6 | yes | 0 |
| ZTF, Tzanidakis 2025 | 6.3e7 | no | none reported |
| Gaia alerts | all sky | no | none identifiable |
| OGLE-III/IV | 5.4e7 (I < 18) | yes | never searched |
| VASCO, Villarroel 2020, Solano 2022 | 6e8 | only in empty fields | none confirmed |
| OGLE-II, this work | 6.37e6 monitored; 221,801 catalogued | yes (Terz V 2637 recorded at zero flux) | 0 |
Detection-based catalogues store a vanished star as a gap. Smith et al. say VVV-WIT-11 "would not ordinarily have been selected ... were it not for a handful of mismatches" with a neighbour. Gaia17bpp entered the alert stream only on its way back up. Of the 12,483 Gaia alerts that have a historic magnitude, 99 are fadings deeper than 2 mag (21 deeper than 3); keywords attribute 84 to known variable classes.
| Cut | Why | Light curves left |
|---|---|---|
| All catalogue light curves | 221,801 | |
| C1: at least 3 low points, bright state I < 18 | a zero must stand well clear of the noise | 6,078 |
| C2: centroid within 1.5 px of a reference-image star | the flux belongs to a known star | 4,779 |
| C3: at least 5 consecutive low points over at least 3 d, 3 of them in 1997-1999 | rejects bad nights; the variable finder used 1997-1999 | 1,959 |
| C4: single episode (at most 2% of points low elsewhere, at most 60% low) | rejects repeating variables | 130 |
| C5: ingress or egress caught within a season (gap under 30 d, bright side above 75%) | sharp edge; rejects steps hidden in seasonal gaps | 10 |
| C6: scatter outside the event below max(5%, 2.5 sigma) | rejects variables | 0 |
| C7: scatter inside below max(7%, 2.5 sigma) | flat bottom | 0 |
No light curve passes (fig3, fig5).
Effective exposure per star, in years (84,000 injections; 19,743 pass the cuts; 5 of those fail the emulated variable finder):
| Duration | 10 d | 40 d | 160 d | 640 d | 7 yr | 55 yr |
|---|---|---|---|---|---|---|
| Recovered by the cuts | 0.32 | 1.36 | 2.08 | 2.25 | 1.58 | 1.74 |
| and star in reference image, I_ref < 19.5 (optimistic) | 0.32 | 1.35 | 2.05 | 2.10 | 1.50 | 1.65 |
| and I_ref < 18.5 (conservative) | 0.32 | 1.35 | 2.00 | 1.86 | 1.39 | 1.52 |
| and ingress inside the survey | 0.31 | 1.30 | 1.72 | 1.11 | 0.42 | 0.46 |
Nothing shorter than 3 d is recovered. The reconstructed reference images use a median of 20 frames per field, with mean weight 0.28 in 1997, 0.13 in 1998 and 0.60 in 1999. The frame named in each published reference-image header is recovered in 49 of 49 fields.
Catalogue inclusion, measured. The OGLE Collection of Variable Stars lists eclipsing binaries found by period searches, independently of the DIA catalogue. Of 1,296 binaries with an OGLE-II and an OGLE-IV identifier, I < 18 and a primary eclipse deeper than 0.75 mag (below half light), 79% are in the DIA catalogue and pass C2. Chance matches are 0.6%.
| I magnitude | under 15 | 15-16 | 16-17 | 17-17.5 | 17.5-18 |
|---|---|---|---|---|---|
| Deep eclipsing binaries | 58 | 73 | 338 | 373 | 454 |
| In catalogue and pass C2 | 0.93 | 0.75 | 0.83 | 0.81 | 0.74 |
An eclipse puts a few percent of scattered points below half light; an occultation puts five or more consecutive points at zero. I therefore treat these fractions as a floor for occultations, but that is an argument, not a measurement.
| Efficiency factor | Conservative | Optimistic | Basis |
|---|---|---|---|
| In the catalogue and passes centroid cut | 0.54-0.79 by magnitude | 0.74-0.93 | eclipsing binaries; conservative takes the smaller of (measured minus 2 sigma) and the microlensing-based value (174 of 214 events, Wozniak et al. 2001) |
| One star supplies at least 60% of the flux | 0.44 | 0.88 | blending Monte Carlo, merge radius 1.3 or 0.65 arcsec |
| Not a foreground disc star | 0.73 | 1 | stars bluer than the clump by 0.4 mag |
| Rate normalisation | 0.62 | 0.86 | OGLE-IV microlensing, 16th percentile or mean |
| Exposure table | I_ref < 18.5; 4-day ingress for I < 15 | I_ref < 19.5 | injections |
| Overall, R = 10 au | 0.16 | 0.61 |
Limits are 95% upper limits on f, rounded to one significant figure. "Ingress only" is the conservative case restricted to events that begin inside the survey.
| Enclosure | Events expected if f = 1 | Conservative | Optimistic | Ingress only |
|---|---|---|---|---|
| R = 3 au | 17-68 | 0.2 | 0.04 | 0.2 |
| R = 5 au | 48-190 | 0.06 | 0.02 | 0.07 |
| R = 10 au | 130-480 | 0.02 | 0.006 | 0.03 |
| R = 20 au | 270-1,000 | 0.01 | 0.003 | 0.01 |
| R = 50 au | 670-2,400 | 0.004 | 0.001 | 0.008 |
| R = 100 au | 1,200-4,300 | 0.003 | 0.0007 | 0.007 |
| R = 1,000 au | 12,000-43,000 | 0.0003 | 0.00007 | 0.0008 |
| All stars at 30 K | 280-1,000 | 0.01 | 0.003 | 0.02 |
| All stars at 50 K | 94-350 | 0.03 | 0.008 | 0.04 |
| All stars at 75 K | 31-120 | 0.1 | 0.03 | 0.1 |
| All stars at 100 K | 11-44 | 0.3 | 0.07 | 0.3 |
| All stars at 150 K or warmer | under 7 | none | 0.4 | none |
| Sun-like only, 30 K | 1,300-4,600 | 0.002 | 0.0006 | 0.006 |
| Sun-like only, 100 K | 110-430 | 0.03 | 0.007 | 0.03 |
| Sun-like only, 150 K | 25-98 | 0.1 | 0.03 | 0.1 |
For "Sun-like only", f is the fraction of 0.7-1 Msun stars (6% of all). Spheres under 2 au and enclosures warmer than about 200 K are unconstrained (fig4). On top of the conservative-optimistic bracket, which is dominated by the modelled blending factor, I attach a systematic of about a factor of 2: the conservative case is not a strict bound.
MACHO, re-read (order of magnitude only). Drake & Cook expected 1e5 detections for a cloud model whose event rate my model puts 30-80 times above that of 7 au enclosures at f = 1. Counting all 83 of their bulge leftovers as candidates gives f < 0.03-0.08 at 7 au. That scaling is uncertain by a factor of several. Their one named candidate, MACHO 120.21786.958 (a drop of more than 3.5 mag), passed their reddening test, so it is chromatic and not an opaque sphere.
Forecasts (events at f = 1e-3; order of magnitude outside OGLE-II):
| Data set | R = 10 au | Sun-like at 30 K |
|---|---|---|
| OGLE-II (searched here) | 0.25 | 2.4 |
| OGLE-IV 2010-2017, I < 18 | 3.5 | 35 |
| OGLE-IV 2010-2024, I < 18 | 5.5 | 54 |
| OGLE-IV, all I < 21 sources (upper bound) | 150 | 1,600 |
| MACHO bulge | 3 | - |
| VVV bulge (if forced photometry existed) | 26 | 280 |
| Gaia, G < 17.65 (missing transits) | 1.6 | 17 |
| ZTF / ASAS-SN / Kepler | 0.08 / 0.01 / 0.0002 | 0.9 / 0.1 / 0.002 |
The same search on OGLE-IV (2010-2024, conservative efficiency) would reach f of about 1e-3 at 10 au and 1e-4 at 100 au.
The first version kept a photometric point only if its difference flux exceeded -90 counts. The error code is exactly -99.0, and valid fluxes of a vanished I < 18 star are routinely far below -90. The search therefore discarded the signal it was looking for, and its null was vacuous. The injection test did not catch this because it reused the mask computed before injection. The referee found both problems.
After the repair:
The idea is not new. Bramante, Diamond & Kim (2025, Phys. Rev. Lett. 134, 141001; arXiv:2409.08322) proposed exactly this test: dark objects larger than their Einstein radius dimming background stars in EROS-2 and OGLE data, with the rate formalism in which the physical radius replaces the Einstein radius. They forecast dark-matter constraints assuming a future null result and unit efficiency, and did not search. Kerins, Binney & Silk (2002) predicted the same for cold clouds, and Drake & Cook (2003) searched MACHO for them with injected events. Smith et al. (2021) computed chance-occultation rates for 0.5 au dark bodies and found VVV-WIT-08. Quillen et al. (2014, arXiv:1402.1198) searched over 40,000 stars in the 2MASS calibration fields for transient obscuration. Lucas et al. (2024), JoHantgen et al. (2025) and Tzanidakis et al. (2025) search for dippers, not for total single disappearances. Megastructure work uses transits of the host star (Arnold 2005; Wright et al. 2016), optical dimming (Zackrisson et al. 2018), waste heat (Carrigan 2009; Griffith et al. 2015; Suazo et al. 2022, 2024) or two-epoch vanishing (Villarroel et al. 2020; Solano et al. 2022). The sibling study dark_companions forecast an event count; it did not originate the test.
New here:
One figure for an integrator: along inner-Galaxy sightlines, fewer than about 2% of stars (95%, conservative) can be inside opaque, sharp-edged enclosures of 10 au or more, with a further systematic of about a factor of 2, against 42% from the mass budget. It is not a local measurement and it says nothing useful below about 3 au (warmer than about 150 K for Sun-like stars, 75 K for M dwarfs). For 100 au or more the limit is a few tenths of a percent, or just under 1% if only ingress events are trusted. Two percent of the Galaxy is still of order 1e9 stars, so this bounds prevalence, not existence. The archives that would reach f of 1e-3 to 1e-4 (OGLE-III/IV, forced photometry at VVV positions) exist and have not been searched for disappearances.





Errors
quality_mask (flags 1-11 clear, flux not
equal to -99.0), now serves real and injected data. Everything was
rerun. The cut flow matches the referee's corrected run exactly; zero
candidates.Overclaims. The title is softened. Limits are given to one significant figure with the systematic. The R of 100 au and above limits carry the ingress-only alternative beside them. The integrator gets a single qualified figure.
Numbers that differ from the referee's corrected-mask rerun. Expected events at 10 au are 127-482 (referee: 145-500) and the limit is 0.024 / 0.0062 (0.021 / 0.0060). The difference comes from the reference-image condition, the giant-ingress loss and the measured inclusion, all added in this revision. The variant limit is 0.076 / 0.025 (0.073 / 0.024). I measure the minimum of OGLE BLG-LPV-196232 at 0.11, not 0.13.
Points rejected. None in substance.
Code entry point: code/run_all.py
| Quantity | Value | Uncertainty | Note |
|---|---|---|---|
| Candidates for a total, single, sharp-edged occultation in OGLE-II (corrected loader) | 0 | cut flow 221,801 -> 6,078 -> 4,779 -> 1,959 -> 130 -> 10 -> 0 -> 0 | 130 pass C1-C4 (115 smooth variables, 7 drifts, 8 steps across a seasonal gap); 10 pass C5 and all fail the quiet-outside cut C6 (I = 11.9-14.0 long-period variables, minima 0.38-0.49 of the bright level, outside scatter 0.08-0.23) |
| 95% upper limit on enclosed fraction f, R = 10 au | about 0.02 conservative; 0.006 optimistic | unrounded 0.024 / 0.0062; further systematic of about a factor of 2 (no image-level injection) | Expected events if f = 1: 130-480 (790 before efficiency factors). Ingress-only exposure: 0.03. Stars with I < 17 only: 0.03 / 0.01 |
| 95% upper limit on f, R = 100 au | about 0.003 conservative; 0.0007 optimistic | 0.007 if only events whose ingress falls inside the survey are counted; factor-2 systematic on top | R = 3 au: 0.2 / 0.04; R = 5 au: 0.06 / 0.02; R = 1,000 au: 3e-4 / 7e-5 (ingress-only 8e-4); no constraint below 2 au |
| 95% upper limit on f if every main-sequence star is equally likely to be enclosed at temperature T | 30 K: 0.01; 50 K: 0.03; 75 K: 0.1; 100 K: 0.3; 150 K and warmer: none (conservative) | optimistic: 0.003, 0.008, 0.03, 0.07, 0.4; ingress-only conservative: 0.02, 0.04, 0.1, 0.3 | R = sqrt(L)(393.6 K/T)^2 au folded over a Kroupa 0.08-1 Msun mass function |
| 95% upper limit on the fraction of Sun-like (0.7-1 Msun) stars enclosed at T | 30 K: 0.002; 50 K: 0.006; 100 K: 0.03; 150 K: 0.1; 200 K: 0.8 (conservative) | optimistic: 0.0006, 0.002, 0.007, 0.03, 0.2; ingress-only at 30 K: 0.006 | Sun-like stars are 6% of main-sequence stars |
| Effective exposure per star from end-to-end injection (star required to be in the reference image at I_ref < 18.5) | 0 below 3 d; 0.32 yr at 10 d; 1.35 yr at 40 d; 2.0 yr at 160 d; 1.4-1.5 yr from 3.5 to 55 yr | 1,000 hosts x 14 durations x 6 epochs = 84,000 injections; ingress-only: 1.7 yr at 160 d, 0.4-0.5 yr beyond 3.5 yr | 4-day ingress and egress halves it at 80 d or less; 10-day ingress is severe |
| Catalogue inclusion measured on independent deep (> 0.75 mag) eclipsing binaries with I < 18 | 79% in the DIA catalogue and passing the centroid cut (1,296 binaries) | by magnitude bin 0.93, 0.75, 0.83, 0.81, 0.74 (n = 58, 73, 338, 373, 454); chance matches 0.6% | OGLE Collection of Variable Stars binaries with OGLE-II and OGLE-IV identifiers; periods above 10 d: 19 of 34 |
| Overall detection efficiency beyond effective exposure, R = 10 au | 0.16 conservative; 0.61 optimistic | dominated by the modelled blending factor (0.44-0.88) | Inclusion and centroid 0.54-0.79 or 0.74-0.93 by magnitude; foreground 0.73 or 1; rate normalisation 0.62 or 0.86 |
| Loader defect of the first version | 0 of 20 injected I = 16 events recoverable with the old mask; 19 of 20 with the corrected one | 654 in-event points, 0 lost to the corrected mask; 6,870,578 in-event points in the baseline injection, none lost | Old mask kept a point only if difference flux > -90 counts; error code is exactly -99.0 |
| Positive control: R CrB star Terz V 2637 (sc43 #2786, I = 11.9) | 40 consecutive low points over 129 d from HJD 2450988.6, median flux -0.31 of the bright level | 0 low points visible with the defective mask | Passes C1-C4; fails C5-C7 (slow edges, variable outside, not flat) |
| Step-like disappearances across the 1998/99 gap | 12, all within 32 arcsec of a Gaia G < 10.5 star (median 19.5 arcsec) | control: 7.6% of random variables within 60 arcsec; KS p = 1.6e-18 | Instrumental artefacts; they also show that sustained losses of I = 17-18 flux are catalogued |
| Looser variant (drop of 30% or more) | 6 survivors; counting all as real gives f < 0.08 / 0.02 at R = 10 au | cut flow 16,346 -> 14,227 -> 4,715 -> 854 -> 369 -> 8 -> 6 | 3 catalogued OGLE long-period variables grazing the threshold, 2 same-night dips in adjacent fields, 1 bright-star step |
| Reference-image epochs reconstructed from the difference fluxes | median 20 frames per field; mean weight by season 0.28 (1997), 0.13 (1998), 0.60 (1999) | header template frame recovered in 49 of 49 fields (weight 0.03-0.07) | Used to require that an occulted star is present in the reference image |
| Total-occultation rate per monitored bulge star (l = 1, b = -3), f = 1, R = 10 au | 6.4e-5 per star per yr; optical depth 3.5e-5; median duration 161 d | model normalised to OGLE-IV microlensing: observed/model 0.86 (16-84%: 0.62-0.98); durations 10-90%: 76-356 d | Referee's independent route from measured microlensing rates agrees (5.6e-5 field-averaged in both) |
| Radius of a 1 Lsun blackbody enclosure at 30 K | 172 au (344 au across) | exact for a blackbody sphere | The study plan's '9 au across' is wrong. Median radius over the main sequence: 13 au at 30 K, 4.6 au at 50 K, 1.2 au at 100 K |
| Conditional limit from MACHO (Drake & Cook 2003), R = 7 au | f < 0.03-0.08 if all 83 bulge leftovers are counted | order of magnitude only (cloud-model normalisation uncertain by a factor of several) | Their one named candidate, MACHO 120.21786.958 (> 3.5 mag), passed the reddening test, so it is chromatic |
| Gaia Science Alerts that are fadings deeper than 2 mag | 99 of the 12,483 alerts that have a historic magnitude (0.8%); 21 deeper than 3 mag | keyword attribution: 84 to known variable classes, 15 unattributed | 27,076 alerts in total; Gaia17bpp alerted only on its re-brightening |
| Expected events at f = 1e-3, R = 10 au, by data set | OGLE-II 0.25; OGLE-IV I<18 2010-2017 3.5 (2010-2024: 5.5); OGLE-IV I<21 upper bound 150; MACHO bulge 3; VVV bulge 26; Gaia G<17.65 1.6; ZTF 0.08; ASAS-SN 0.013; Kepler 0.0002 | order of magnitude outside OGLE-II | Same search in OGLE-IV (2010-2024, conservative efficiency) would reach f about 1e-3 at 10 au and 1e-4 at 100 au |
Every number above is produced by these scripts from public data. The data tables themselves are not hosted here; the scripts download them.
01_download.py 02_signal.py 03_rates.py 04_ogle2_search.py 04b_catalogue_inclusion.py 05_catalogues.py 06_limits.py common.py galmodel.py ogle2lib.py popmodel.py run_all.py
A second, separate analysis re-ran the code, recomputed the main numbers by its own route and tried to break the result. Like the first, it was run by Claude for this project; it is not an outside expert. In its report “the analyst” is the first analysis, which wrote the paper, and file names that are not linked on this page are its own working files. The paper above is the version revised in response.
Verdict: sound with fixes. Results reproduced: partly.
Rerun as submitted. I copied the code to scratch and
ran run_all.py against the cached raw files (8.3 min). All
30 files in data/ came out byte-identical to the analyst's,
including the cut flow 221,801 -> 3,571 -> 2,405 -> 940 ->
35 -> 0 and every limit.
The search as coded could not see the signal.
ogle2lib.load_field (line 37) keeps a photometric point
only if F > -90. The error code is exactly -99.0 and is
already carried by flag bit 1 (checked in fields 1, 4, 20 and 39: no
exceptions either way). Valid difference fluxes are routinely far below
-90 counts, because an I = 18 star is about 135-145 counts and an I = 16
star about 850-900.
Rerun with the mask corrected
(F != -99.0, full pipeline, 10.5 min):
| Quantity | As submitted | Mask corrected |
|---|---|---|
| Cut flow | 221,801 -> 3,571 -> 2,405 -> 940 -> 35 -> 0 | 221,801 -> 6,078 -> 4,779 -> 1,959 -> 130 -> 10 -> 0 -> 0 |
| Candidates passing all cuts | 0 | 0 |
| Expected events, f = 1, R = 10 au | 143-496 | 145-500 |
| 95% limit on f, R = 10 au (conservative / optimistic) | 0.0209 / 0.0060 | 0.0206 / 0.0060 |
| 95% limit on f, R = 100 au | 0.0022 / 0.00065 | 0.0022 / 0.00064 |
| All stars at 30 K | 0.0092 / 0.0027 | 0.0092 / 0.0027 |
| All stars at 50 K | 0.028 / 0.0081 | 0.028 / 0.0081 |
| All stars at 100 K | 0.23 / 0.067 | 0.23 / 0.067 |
| Sun-like at 30 K | 0.0020 / 0.00061 | 0.0020 / 0.00060 |
| Steps across the 1998/99 gap | 10, all within 25 arcsec of a G < 10.5 star | 12, all within 32 arcsec (median 19.5; KS p = 1.6e-18) |
| Looser-variant survivors | 5 | 6 |
| Looser-variant limit, R = 10 au | 0.063 / 0.020 | 0.073 / 0.024 |
Independent recomputation.
Citations spot-checked against the paper texts and found accurate: the Smith et al. 2021 quotes and 0.8 per square degree per year; Wozniak et al. 2001 (174 of 214, 6 well-measured misses); Wozniak 2000 (the variable finder accepts deviations "up or down"); Drake & Cook 2003 (83 -> 10 bulge, 1e5 expected); the Gaia17bpp alert comment.
An expert would say the search never looked at 6.37 million stars. It looked at the 221,801 objects a 2002 pipeline chose to catalogue as variables, and as submitted it also threw away every flux measurement a vanished star would produce. The second half is a real, fatal-as-coded defect, but it is one line, and with it fixed the full pipeline gives the same null and the same limits to within 2%.
The first half is what remains. The probability that a vanishing star enters the catalogue, and the blending correction, are inferred rather than measured by image-level injection. The conclusion survives this in substance:
A hidden inefficiency large enough to lift the limit from about 2% back towards the gravity bound of 42% would need more than 90% of vanishing stars to go uncatalogued, which this evidence makes implausible. The honest statement is "below a few percent for R of 10 au or more along bulge sightlines, with about a factor of 2 systematic", not 2.1% or 0.6% to two figures.
(F > -90) condition
deletes every valid difference flux below -90 counts, which is exactly
what a vanished star produces. The injection hid this because it reuses
the pre-injection mask. The defect is repairable, and I verified the
repair: with the mask corrected the search still returns zero candidates
and the limits move by under 2%.
code/ogle2lib.py line 37 replace
(F > -90) with (F != -99.0), or drop it,
since flag bit 1 already marks error codes. Rerun steps 04-06. Replace
the cut-flow table, the near-miss inventory, fig3 and fig5, and every
number derived from them (corrected values are in the reproduction
notes).04_ogle2_search.py injection()
passes gk, computed from un-injected fluxes, to
ol.metrics. Under the corrected mask Terz V 2637 shows a
decline to -0.3 of the bright level with resolved ingress.ogle2_cutflow.csv,
ogle2_search_summary.json; SIMBAD identifications for the
deep dimmers.sc23_4377.pngdata/gaia_alerts_summary.json:
n_with_historic_magnitude = 12483.rate_sanity_checks.json implied efficiencies 0.23-1.5.ogle2_fields.csv: 8.1% of I < 18 stars
have I < 15.Novel: partly. The search itself appears to be new. I found no published search of OGLE, MACHO or any other forced-photometry survey for total, single, achromatic disappearances read as a limit on enclosed stars, and no occultation limit on Dyson spheres. The idea and the rate formalism are not new. Bramante, Diamond & Kim (2025) proposed exactly this dimming test on EROS-2 and OGLE data for dark-matter clumps and forecast constraints without searching; the report does not cite them. Kerins, Binney & Silk (2002) and Drake & Cook (2003) did the same for dusty clouds and ran a calibrated MACHO search, which the report credits. The novelty claim should be narrowed to the search and the megastructure application.
code/ogle2lib.py line 37: replace
(F > -90) with (F != -99.0) or remove it.
Rerun steps 04, 05 and 06 and regenerate every file in
data/ and figures 3, 4 and 5.