Skip to main content

Investigating Deleted Flights

Status file. Updated 2026-08-28. This is the working record of one effort: going back through the enormous volume of flight data already downloaded to this repository, and finding out how much of the erased record we actually got back.

It is not a summary of the case. It is a coverage and progress report, written so that the next person can see exactly what was asked, what came back, what did not, and which claims the data can and cannot carry.


1. The one-paragraph answer

Three different answers, and all three are true of different questions.

  • The foreign fleet's per-tail percentage did not move: still 8.95%. Every event-window day for every Egyptian tail has now been put to every free archive that exists. That number is maxed out against free sources.
  • The geographic percentage went from nothing to 71.9% — 82.7% / 98.0% / 92.2% for 2023 / 2024 / 2025 — by asking what was there instead of where was this tail.
  • Three aircraft gained coverage today from data already on disk. 111 aircraft-days had been downloaded by the geographic sweep and never filed under the aircraft they belong to. Filing them raised N1098L from 4.68% to 19.28%, N2100L from 2.75% to 15.15% and N59906 from 3.31% to 6.89% in the event window — no network call, just data we already had in the wrong place. See §2.5.

Asking "where was SU-BTT on this date" still returns a trace only 8.95% of the time across the event windows that matter. Every one of those days has now been asked of every free archive that exists, so that number is not going to improve without a paid credential. But the investigation stopped depending on that question. A second lane — streaming a whole day of the open archive and filtering it by geography instead of by tail number — now covers 71.9% of the event-window days, and 82.7% / 98.0% / 92.2% for 2023 / 2024 / 2025. That lane does not need to know a tail number in advance, which means it can answer "was anything foreign on the ground near this event" on days where the per-tail lane is blank.

2022 remains at zero. No free archive covers it.


2. What percentage of the data do we have now?

A percentage is meaningless without naming the denominator, so here are four, because four different questions get asked and quoting the wrong one is how "9%" and "72%" end up both being true statements about the same investigation.

D1 — Calendar coverage

Of every UTC day from 1 Jan 2022 to 31 Dec 2025, how many do we hold a trace for?

FleetAircraft-days heldOfCoverage
Foreign fleet (SU-BTT, SU-BND, SU-BTU, SU-BTV, SU-BGM, T7-ELL)5098,7665.81%
US / Kirk-associated fleet (10 tails)1,22314,6108.37%
Control airliners (Lufthansa, Ryanair)4042,92213.83%

This is the honest ceiling on "do we know where this plane was". It is low because a business jet parked with its transponder off is invisible to a volunteer receiver network, and because the archives themselves are incomplete.

D2 — Asked-hit rate

Of the aircraft-days we actually queried an archive about, how many came back?

FleetAskedHit rate
Foreign fleet5,8708.67%
US fleet3,48431.92%
Control airliners51678.29%

The control line is the important one and it is a warning, not a finding. A scheduled airliner over Europe is heard by everybody; a private jet is not. The gap between 78% and 9% is mostly what kind of aircraft this is, not who is hiding it. Both controls are airliners, which makes them a weak control for a private jet — that limitation is stated here rather than hidden.

A second warning, this one about our own bookkeeping. D2 is only meaningful where a miss was recorded as well as a hit. Three of the four sources — the ADS-B Exchange monthly samples, the GitHub backup ingest, and the page archive — write a record only when they succeed, so their asked-hit rate is 100% by construction and means nothing. The same defect makes the 2026 row of any coverage table read 100%. Quote D2 only for adsb.lol and airplanes.live, which write a .miss record when the archive was asked and had nothing.

D3 — Event-window coverage (the number that matters)

Restricted to the 363 UTC days that are a sourced Charlie / Erika / TPUSA event date ±1 day.

FleetHeldOfCoverageNever asked
Foreign fleet1952,1788.95%0
US / Kirk-associated fleet8053,63022.18%1,302
Control airliners14972620.52%530

Zero never-asked for the foreign fleet. Every event-window day for every Egyptian-registered aircraft and T7-ELL has been put to every free archive that exists. The 91% that is blank is not un-attempted work; it is archives that were asked and had nothing. Those two states are recorded separately on disk (.miss.json.meta.json files) and must never be merged.

D3 by year — the foreign fleet, the fleet the claim is about

YearWindow daysFleet-days neededHeldCoverage
20227846820.43%
202381486459.26%
20241016066711.06%
20251036188113.11%

2022 is the year the following claim starts, and it is the year we have almost nothing for. Two aircraft-days out of 468.

D4 — Geographic-sweep coverage: this is where the number went up

The lane that needs no tail number. It streams an entire UTC day of the open archive — 74,000 to 95,000 aircraft — and filters by a 50-mile circle on the event city.

YearWindow days sweptOfCoverage
20220780.00%
2023678182.72%
20249910198.02%
20259510392.23%
All years26136371.90%

278 day-directories are on disk: 233 fully swept, 28 truncated, 9 with no release published for that date, 8 unresolved on probe. 1,772,543 aircraft-circle rows were scanned.

So: have we increased the percentage? For the question "was a foreign jet on the ground near this event" — yes, from near-zero to 72%, and to 92–98% for 2024 and 2025. For the question "where was this specific tail on this specific day" — no, it is still ~9%, and it is now provably maxed out against free sources.

2.5 The one increase that came from data we already had

The geographic sweep keeps the full trace of any tracked tail it meets, as a by-product of asking a geographic question. Those traces were written to data/geo_sweep/<date>/traces/<hex>.json.gz — filed under the date, because that is how a sweep works — and the per-aircraft lane, which looks under the tail, never saw them. 111 aircraft-days of already-downloaded evidence were sitting in the repository uncounted.

ingest_sweep_traces.py files them where the per-tail lane can read them. It copies rather than moves, so the sweep artifact stays intact; it refuses to shadow a day the per-tail lane already holds, because a trace fetched for an aircraft is the better artifact than one harvested in passing; and it writes the same .meta.json shape every other client writes, with source key adsblol-github-backup, so the provenance is exactly as auditable.

AircraftEvent-window coverage beforeAfterDays added
N1098L4.68%19.28%53
N2100L2.75%15.15%45
N599063.31%6.89%13
US fleet total19.12%22.18%111

Those three tails are the LASAI Aviation / survey-aircraft thread, and they were the worst-covered aircraft in the whole investigation. They are now mid-ranking. The foreign fleet gained nothing from this pass — every sweep trace for an Egyptian tail had already been pulled directly by the per-tail lane, which is itself a useful confirmation that the two lanes agree.

The lesson generalises: before concluding that data is missing, check whether it is merely filed under a different key. A sweep indexes by date, a per-tail pull indexes by tail, and the join between them is not automatic.


3. Is the data local, and where did it come from?

All of it is local, under site/docs/Planes/. Nothing in the numbers above depends on a live network call. The source is recorded in every filename and in a .meta.json beside every payload, carrying the exact URL, the HTTP status, the byte count, and the UTC retrieval time.

Open source versus proprietary — the answer is stark

LaneAircraft-days heldShare
Open source, free, no account2,235100%
Proprietary / paid00%

Every single trace in this investigation came from a free, open, no-account archive. No proprietary API contributed one aircraft-day.

Broken down by individual open source:

SourceAircraft-daysShare of heldDays where it is the only source
globe.airplanes.live2,07288.32%371
adsb.lol1,70272.55%10
ADS-B Exchange free monthly samples2078.82%153
adsb.lol GitHub Release backup1134.82%111

Total aircraft-days held: 2,346.

Two lines carry the whole recovery story:

  • airplanes.live is the single biggest win — 371 aircraft-days exist nowhere else on disk. It is an independent volunteer network running the same tar1090/readsb URL shape, and it was found by swapping the hostname on a URL that already worked. It typically holds 5–10× more data for the same aircraft-day than adsb.lol.
  • ADS-B Exchange's free monthly sample is the only free route into 2022 — 153 aircraft-days exist nowhere else. It publishes one whole day per month, the 1st, back to July 2016. One day in thirty can never test a claim about a specific mid-month date, which is exactly why 2022 sits at 0.43%.

The geographic sweep on top of these ran against adsb.lol's GitHub Release backup — the same operator's entire archive, mirrored one release per UTC day under the Open Database Licence, including every date the live API refuses.

The page-archive lane, counted in pages not aircraft-days

SourceCaptures held
Internet Archive → FlightAware28
Internet Archive → Flightradar2422
FlightAware activity log16
Total66

A web-page snapshot is dated by when the crawler visited, not by when an aircraft flew, so it cannot enter any denominator above. It is the only lane that can document a page-level removal — what a tracking site said and no longer says — and the only lane that reaches back before 2022.

Proprietary lanes: not blocked by policy, blocked by a missing key

FlightRadar24's API, FlightAware AeroAPI, ADS-B Exchange's historical API and OpenSky's OAuth endpoint all returned nothing, because no credential is held for any of them. That is itself a publishable fact rather than a failure to hide: the credential slots exist in ~/.credentials/charlie_kirk.json, an empty string means "not held", and the client reports BLOCKED on credential by name without ever printing a value. This is the single cheapest remaining way to raise the per-tail percentage, and it is the one step a human has to take.


4. What we found

4.1 The finding that matters most

A blind geographic sweep — one that does not know a tail number and cannot be steered toward a wanted answer — was run across 187 sourced event-days and 1,772,543 aircraft-circle rows. It asked one question: which foreign-registered, unregistered, military, or blocked aircraft were on the ground inside a 50-mile circle of a city where Charlie Kirk, Erika Kirk, or TPUSA had a sourced event, on the event date ±1 day?

Egyptian-registered aircraft come back exactly three times:

Sweep dateTailTypeFieldDistance to fieldEvent cityOffset
2025-09-09SU-BNDGulfstream IVKPVU Provo0.8 miOrem, UTday −1
2025-09-10SU-BNDGulfstream IVKPVU Provo0.8 miOrem, UTday 0
2025-09-10SU-BTTFalcon 7XKPVU Provo0.8 miOrem, UTday 0

Both readings have to be published together, and neither is allowed to bury the other:

  • It independently confirms the single most important claim in the case. Two Egyptian-registered jets were on the ground at Provo Municipal — 4.9 miles from Orem — the day before and the day of the assassination. This was found by geography, in an archive mirror, without being told what to look for.
  • It does not reproduce a "73 times" pattern anywhere in the swept range. In 261 usefully swept UTC days covering 72% of the event windows, and 92–98% of 2024 and 2025, no other Egyptian-registered aircraft is on the ground near any other sourced event. That is a real result and it points the other way.

The honest scope: the sweep covers 0% of 2022, is US-only, and cannot speak to overseas overlaps at all. It also proves presence, never purpose and never occupancy — no trace places any person aboard any aircraft.

4.2 The control test caught something

The same sweep runs six control cities with no known Kirk or TPUSA event, on the same days, in the same run. SU-BTT and SU-BTU both turn up over Des Moines — but at 24,000 to 41,000 feet, in transit, never on the ground. SU-BTT is over Des Moines at 41,000 ft on 10 September 2025, the same day it is parked at Provo.

That distinction is the finding. An aircraft inside a 50-mile circle is not an aircraft at a place. Any tally that counts circle entries rather than ground presence will inflate, and this is the mechanism by which it inflates.

4.3 What was recovered that one archive no longer serves

The recovery ledger holds 10,104 (tail, UTC day) rows:

VerdictRows
Both archives have it1,692
Only on airplanes.live182
Only on adsb.lol10
Held by airplanes.live alone (no paired ask)191
Held by ADS-B Exchange samples alone153
Asked of both, neither has it7,869

318 aircraft-days were recovered from inside the window where adsb.lol serves nothing at all (2025-10-12 onward) — 281 from airplanes.live, 29 from ADS-B Exchange's free samples, 7 from both, 1 from the GitHub backup. 210 of them are in 2026, where adsb.lol returns HTTP 404 for every date. 41 of the 318 are the Egyptian fleet plus T7-ELL. That is real recovery: nobody working only from adsb.lol has any of it. It is also, unambiguously, a retention boundary and not suppression — the same archive refuses those dates for the control airliners too.

Of the 182 aircraft-days that exist on airplanes.live and not on adsb.lol:

  • 88 fall inside adsb.lol's known 403 band (2025-10-12 onward), which that archive returns for every aircraft including both control airliners. That is a retention boundary — an archive fact, not suppression.
  • 81 fall outside the band on case aircraft.
  • 10 fall outside the band on the control airliners — the background rate. Any reading of the 81 has to be net of this.

A correction to our own first pass. An earlier draft of this page put the per-tail "airplanes.live only" rate at 9.6% to 72.4% for the case aircraft. That was wrong: it merged "adsb.lol was asked and had nothing" with "adsb.lol was never asked at all", which the ledger's own three-state contract forbids. 198 aircraft-days had never been put to adsb.lol — nearly the whole of N1098L, N2100L and N59906. Counting only the days where both archives were genuinely asked, and excluding both known archive holes:

AircraftDays both archives were askedairplanes.live onlyRate
CONTROL — Lufthansa19952.5%
CONTROL — Ryanair20252.5%
N560TW16021.2%
N40JD7811.3%
N582MM28841.4%
N888KG7722.6%
N872RA166116.6%
N102DZ129107.8%
N1098L / N2100L / N5990617 / 8 / 900.0%
T7-ELL10276.9%
SU-BTU8056.2%
SU-BGM4137.3%
SU-BTT791012.7%
SU-BND821315.9%
SU-BTV761317.1%

The Egyptian tails still sit above the US private jets. Two tests say that is receiver coverage, not deletion, and both are decisive.

Test one — the size signature. On days both archives hold, the median trace carries 1,388 position points. On days only airplanes.live holds, the median is 83 — seventeen times thinner. A day that only one network heard is a day that was barely heard at all. Deletion does not preferentially remove the sparse days; thin receiver coverage produces exactly this and nothing else.

Test two — where the residue lands. Strip the archive holes and the controls and 81 case aircraft-days survive as genuinely "one archive had it, the other was asked and did not". If records were being removed to conceal a following pattern, those 81 days would cluster on the days that matter.

Not one of the 81 puts an aircraft within 50 miles of a sourced Charlie, Erika or TPUSA event. Zero. The residue is scattered across ordinary transatlantic legs, which is what a coverage artifact looks like and is not what suppression looks like.

The Egyptian fleet flies Cairo–Europe–US transatlantic routing, where the two volunteer networks have genuinely different receiver footprints. The US jets fly domestically inside dense coverage. That difference in flight geography, not a difference in treatment, is the whole of the remaining gap.

4.4 Proximity — every tracked aircraft near Charlie or Erika

4,214 airport ground visits were extracted from the recovered traces and joined to every sourced event. 137 put a tracked aircraft on the ground within 50 miles of a sourced event city, same day or ±1 day. 60 of those are same-day.

Split by fleet, because the split is the whole point:

TailProximity hitsReading
N582MM82US private jet — proximity is expected, not a finding
N560TW19US private jet — Scottsdale home base
N872RA15US private jet
N102DZ6US private jet
N888KG, N40JD4 eachUS private jet
N599062US private jet
SU-BND3Foreign — Provo, 2024-04 and 2025-09-09/10
SU-BTT2Foreign — Provo, 2024-04-23 and 2025-09-10

Several of the N-tails are Kirk- or TPUSA-associated aircraft. An aircraft that carries the man showing up where the man is, is not surveillance. Those 82 rows are a data-quality check on the method, not evidence of anything.

4.5 The naive ratio does not survive normalisation — and the honest number is better

The first thing the sweep appears to say is that event circles hold 5.81× more notable aircraft per circle-day than control circles — 49.61 against 8.54. That number is worthless and publishing it alone would have been a mistake.

The event circles are wherever Charlie Kirk spoke: Phoenix, Dallas, Las Vegas, Los Angeles, West Palm Beach. The controls are Des Moines, Chattanooga, Spokane, Albuquerque, Syracuse, Shreveport. Phoenix Sky Harbor moves an order of magnitude more business aviation than Shreveport. A per-circle-day comparison between those two sets measures airport size, not surveillance.

Three normalisations were run. All are reported.

N1 — per aircraft on the ground. Divide out airport size by asking what fraction of the aircraft on the ground were notable.

Circle kindOn groundNotableNotable %Foreign %Military %Unregistered %
Event153,61317,26611.24%1.02%0.83%1.77%
Control51,0066,72713.19%0.54%3.96%0.27%

Event:control ratio = 0.85×. Event circles hold a lower share of notable aircraft than the controls. The 5.81× was airport size and nothing else.

N2 — size-matched. Bucket every circle-day by how busy it was, then compare inside each bucket.

Aircraft on groundEvent daysEvent notable %Control daysControl notable %Ratio
1–54015.53%30819.57%0.79
6–203118.98%7221.96%0.86
21–502615.42%1413.46%1.15
51–1503716.51%31212.06%1.37
151–4007014.83%8215.04%0.99
400+14410.57%0

Flat, in every bucket that has both. No aggregate excess of foreign, unregistered, military or blocked aircraft near Charlie Kirk's events survives a size-matched control.

N3 — the rate the claim is actually about. "Foreign-registered" has thousands of members and is dominated by Canadian and Mexican business jets. The claim is about Egyptian registrations, and there are a handful.

Sweep dateRegistrationTypeFieldCircleWhat it is
2023-03-22SU-GDNBoeing 777-300ERKJFKNew Brunswick, NJEgyptAir scheduled service
2025-01-21SU-GETBoeing 787-9KIADWashington, DCEgyptAir scheduled service
2025-09-09SU-BNDGulfstream IVKPVU ProvoOrem, UTthe claim
2025-09-10SU-BNDGulfstream IVKPVU ProvoOrem, UTthe claim
2025-09-10SU-BTTFalcon 7XKPVU ProvoOrem, UTthe claim

In control circles: zero.

Strip the two EgyptAir widebodies on scheduled airline service and the swept record — 261 UTC days, 348 event circle-days, 153,613 aircraft on the ground — contains three Egyptian-registered business-jet ground presences inside a Kirk/TPUSA event circle, and all three are Provo on 9 and 10 September 2025.

Three is a floor, not a total — and the reason is a defect in our own code. See §4.8. The union of both routes gives four, and the fourth is 23 April 2024, also Provo.

That is the strongest and the most limiting result this investigation can currently produce. It is very hard to explain away, and it is also very far from "73 times".

4.6 The Provo record, in full

Every ground presence by the foreign fleet at Provo Municipal that the recovered traces hold — 30 visits, both archives agreeing except where noted:

UTC dateTailkm from fieldGround pointsWindow (UTC)Archives
2024-04-19SU-BND1.032321:33–21:36both
2024-04-23SU-BTT0.585318:12–18:18both
2024-04-28SU-BTT1.52313:52–13:54both
2024-07-17SU-BND1.511615:49–15:53both
2025-04-08SU-BTU0.95718:32–18:33both
2025-04-10SU-BGM1.44 / 0.3841 + 6321:13–22:16both
2025-04-14SU-BTU1.251612:00–12:02both
2025-04-16SU-BGM1.416918:09–18:14both
2025-05-23SU-BND1.1314120:38–20:46both
2025-09-04SU-BTT1.0414118:45–18:54both
2025-09-05SU-BND1.51 / 0.89 / 1.292 + 73 + 14818:05–23:49both
2025-09-06SU-BND1.2914019:18–20:02both
2025-09-07SU-BND1.2920616:31–18:13both
2025-09-08SU-BND1.2918218:49–20:08both
2025-09-09SU-BND1.2913120:03–20:38both
2025-09-10SU-BND1.29100 + 15616:05–20:29both
2025-09-10SU-BTT1.365813:07–13:13both
2025-09-12SU-BND1.29226 + 34 + 30013:37–22:17both
2026-05-13SU-BND1.274223:12–23:59airplanes.live only
2026-05-14SU-BND1.28100:00airplanes.live only
2026-05-20SU-BND1.111,01913:46–18:14airplanes.live only
2026-06-02SU-BND1.51 / 0.929 + 16017:04–18:23airplanes.live only
2026-06-04SU-BND1.0516821:16–22:12airplanes.live only

Three things fall out of this table and each has to be said plainly.

  • SU-BND sat at Provo continuously from 5 to 12 September 2025. Every fix from 6 to 12 September is at the same distance from the field reference point — 1.29 km, unchanged across eight days. The aircraft did not move. It was parked there before Charlie Kirk arrived and it was still parked there two days after he was killed.
  • SU-BTT's Provo presence on 10 September lasted about five minutes of transmission and it left. 13:07:53 to 13:13:16 UTC, then airborne — 07:07 to 07:14 Mountain, roughly five hours before the shooting.
  • SU-BND was back at Provo in May and June 2026 — and those five days exist only on airplanes.live, because adsb.lol serves nothing for any date in 2026. Without the second archive this investigation would not know the aircraft returned at all.

None of this establishes purpose or occupancy. A parked airframe is a parked airframe. No archive anywhere produces a passenger manifest, and none of these traces places any person aboard any aircraft.

4.7 An open question on the site, answered by the sweep

The N708JH page — a 2019 Gulfstream G550 registered directly to the United States Government, Department of Justice — carries an open question it could not answer: "Did N708JH operate into Utah at any point in September 2025?"

The geographic sweep answers it. Yes.

Sweep dateFieldDistanceGround fixesWindow (UTC)Circle
2025-09-11KPVU Provo0.0 mi56515:21–17:37Orem, UT — day +1
2025-09-21KSDL Scottsdale0.1 mi30418:58–19:09Glendale, AZ — day 0
2025-09-22KSDL Scottsdale0.3 mi24000:16–00:29Glendale, AZ — day +1
2023-10-03KSJC San Jose0.3 mi14620:18–20:32San Jose, CA — day +1

The DOJ Gulfstream was on the ground at Provo Municipal the day after the assassination, and at Scottsdale on the day of and the day after the 21 September memorial at State Farm Stadium in Glendale.

The ordinary explanation fits this completely. A federal aircraft arriving at the scene of a federal investigation the day after, and at a national memorial service, is what that aircraft is for. It is recorded here because the site asked the question in public and the data on disk answers it — and because the same sweep row shows N708JH on the ground at Albuquerque, a control city, on the same 2023-10-03 day it was at San Jose. This aircraft goes everywhere. That is the correct frame for it.

4.8 A defect in our own filter — found, fixed, and published against ourselves

The adversarial verification pass turned up a bug in geo_sweep.py that understated the sweep's own results, and it is recorded here rather than quietly patched, because a page that only ever reports errors in the other direction should not be believed.

The bug. The sweep's cheap byte pre-filter builds substring tokens out of the integer part of a coordinate, so a circle near Provo looks for ,-111. in the raw bytes before parsing any JSON. It built those tokens with math.floor(). But math.floor(-111.73) is −112, while a trace file prints -111.73. On every negative longitude the generated band was shifted one degree west, so the eastern edge of every circle in the western hemisphere was never examined.

What it cost. Averaged over the 146 event circles, 28.7% of each circle's area could not produce a hit; for the six control circles, 20.1%. The Salt Lake City circle was 50.9% blind — and that is the one that matters, because on 23 April 2024 SU-BTT was on the ground at Provo, 39.7 miles inside it, and the sweep returned nothing. The day was streamed whole and completed cleanly; the pre-filter threw the file away before the exact geometry check ever ran. The per-tail route holds that same aircraft-day in full, with 53 ground points at a median 0.58 km from the field — which is how the defect was caught rather than shipped.

The direction of the bias matters and cuts against us. Event circles were more blind than control circles, 28.7% against 20.1%. The defect suppressed the pattern-supporting side of the comparison. It is not the sort of error that flatters a conclusion.

This is not a removal and must never be written as one. adsb.lol served the day on request. The GitHub backup tarball downloaded whole. Nobody deleted anything — we failed to look at part of what we had.

The fix. The printed integer part is truncation toward zero, which is what int() does and math.floor() does not. _printed_int_parts() now generates the tokens for every integer part a coordinate can actually print inside the range, including the -0 case at the prime meridian. code/test_prefilter.py locks it: 6,000 random circles × 12 interior points each, plus the Provo point asserted directly against the Salt Lake City circle. All pass. The sweep is one line different and one degree wider where it matters.

Until the sweep is re-run, every sweep-only count on this page is a FLOOR. That scoping travels with the number everywhere it is quoted.

4.9 The union of both routes — the complete answer for the tracked tails

Neither route is complete alone. The per-tail route is complete for the sixteen tails in lib/fleet.js and structurally incapable of finding anything else. The sweep finds aircraft nobody named, but its 2026-08 run was area-blind. The union is the honest answer for the fleet, and a floor for everything outside it.

UTC dateTailTypeFieldMiles from fieldEvent cityOffsetFound by
2024-04-23SU-BTTFalcon 7XKPVU0.36Salt Lake City, UTday 0per-tail only
2025-09-09SU-BNDGulfstream IVKPVU0.80Orem, UTday −1both routes
2025-09-10SU-BNDGulfstream IVKPVU0.80Orem, UTday 0both routes
2025-09-10SU-BTTFalcon 7XKPVU0.80Orem, UTday 0both routes

Four rows. Two dates. One airport. Both Charlie-only.

This reproduces, from raw ADS-B rather than from anybody's spreadsheet, exactly what this repository's own strict and loose overlap tests already returned across 139 sourced Kirk/TPUSA events: 23 April 2024 and 10 September 2025, both Utah.

Both halves of that have to be said whenever the number is quoted:

  • It is this investigation's own primary data reproducing the sceptics' result, and it must be reported that way rather than softened.
  • It is not the same as saying the pattern is false. 139 events is every Kirk/TPUSA location this repo can source and nowhere near every location the Kirks were at. Exactly one of those rows places Erika Kirk anywhere before 10 September 2025 — against a tally claiming 73 overlaps with her. Her flight logs are reported erased and no archive anywhere produces her itinerary. A test that returns 4 is a statement about what we can currently prove, not about what happened.

4.10 A flaw in our own control design, and why it did not bite

The six control cities exist so that "a foreign jet was within 50 miles of the event" can be measured against how often one is within 50 miles of somewhere uninteresting. One of them should not have been chosen.

Albuquerque, New Mexico is also a sourced Charlie Kirk event city — 30 November 2022, University of New Mexico. It is in tpusa_events.csv as an event and in the sweep as a control. It also supplies 102 of the 186 control-city touches in the recurrence list, so it is not a minor member of the set.

It did not contaminate the measurements, and the reason is checkable. The sweep's earliest successfully swept UTC day is 2023-03-10. The Albuquerque Kirk event is 30 November 2022, more than fifteen months earlier and outside the swept range entirely. On every single day the sweep actually ran, Albuquerque was a genuine control with no Kirk or TPUSA event anywhere near it.

Both halves are published because a control set that has to be defended is worth less than one that does not. Any future sweep that reaches back into 2022 must drop Albuquerque from the control set or the control becomes circular.

4.11 What the recovered 111 days actually showed

Filing those 111 aircraft-days under their aircraft (§2.5) was not bookkeeping. It made three proximity events visible that no page on this site had, because until today the per-tail record for those aircraft did not contain the days.

N1098L and N2100L are Bombardier Global 6500s registered to LASAI Aviation II LLC. In the recovered traces they transmit only the callsigns AXEL10 and AXEL21, and their dominant ground field is Biggs Army Airfield (KBIF) at Fort Bliss — 28 and 25 days respectively, more than any other field either one touches.

UTC dateAircraftFieldMiles to event cityEventOffsetSource
2024-09-04N2100LKMSN Madison, WI5.4Charlie Kirk eventday +1GitHub backup
2024-12-18N1098LKPHX Phoenix Sky Harbor10.8Charlie Kirk eventday +1GitHub backup
2025-08-08N2100LKLGB Long Beach, CA13.7Rancho Palos Verdesday −1GitHub backup

All three come from the adsblol-github-backup source key — they exist on this site only because of today's ingest.

And now the part that has to be said just as loudly. Three events is not a pattern, and the base rate says so plainly. Across every ground-visit day this investigation holds, the share that falls within 50 miles of a sourced Kirk or TPUSA event is:

AircraftEvent-proximate days / days observedRateWhat it is
N582MM53 / 27619.2%TPUSA-associated Learjet — this is what "travels with them" looks like
N560TW15 / 1848.2%Kirk-side jet
N40JD4 / 785.1%Kirk-side jet
N872RA9 / 2154.2%Kirk-side jet
N888KG3 / 754.0%Kirk-side jet
N2100L2 / 593.4%LASAI / AXEL21
N102DZ4 / 1442.8%Kirk-side jet
N599061 / 402.5%survey aircraft
N1098L1 / 621.6%LASAI / AXEL10
SU-BTT2 / 1910.5%2 events on 19 observed days
SU-BND2 / 229.1%2 events on 22 observed days
SU-BTU0 / 150.0%never
SU-BTV0 / 160.0%never
SU-BGM0 / 90.0%never
T7-ELL0 / 760.0%never
CONTROL — Lufthansa / Ryanair0 / 169, 0 / 1630.0%a null control, see below

Read that table carefully, because it cuts in three directions at once.

  • N582MM at 19.2% is the positive control this investigation did not know it had. An aircraft that genuinely does travel with the organisation produces a clear, high, sustained rate across 276 observed days. That is the shape a following pattern makes in this data. One caveat, and the verification pass insisted on it: this table is built from the PER-TAIL route, not from the blind sweep. N582MM's rows in the sweep all carry the flag tracked_fleet:N582MM, meaning it was kept because it was already on our list — it was retrieved by name, not discovered. The per-tail rate is still a valid comparison between aircraft; it is not evidence that a blind search would have found it.
  • The two LASAI aircraft come in at 1.6% and 3.4% — at or below the ordinary Kirk-side jets. The three new proximity events are real, and they are also what a busy government-contract aircraft flying into major metros produces by chance. They are worth recording and they are not evidence of anything on their own.
  • Four of the six foreign tails are at exactly zero. Never. Not once. SU-BTU, SU-BTV, SU-BGM and T7-ELL never come within 50 miles of a sourced Charlie, Erika or TPUSA event on any day this investigation holds. SU-BTT and SU-BND's 9–10% is two events each, on nineteen and twenty-two observed days, and both aircraft's two events are the same two dates at the same airport. With a denominator that small, that is not a rate. It is an anecdote with a percent sign on it, and it must not be quoted as a frequency.
  • The two control airliners are a NULL control for any US proximity question. Lufthansa and Ryanair fly in Europe; they were never going to be within 50 miles of a Kirk event. Their 0.0% measures nothing and must never be cited as if it established a baseline.

4.12 Two corrections to the record, from the raw traces

SU-BND did not take off on 10 September 2025. Derived metadata on this site records a wheels-up for it. The raw trace says otherwise, and both archives agree to the point: of 257 position points that day, 256 report the aircraft ON THE GROUND. The single point that does not is the very last fix of the day, 20:29:19 UTC, reporting 4,525 ft — at the same position it had held all day. Provo Municipal's field elevation is 4,497 ft. That is a barometric reading of an aircraft sitting on the ramp, not a departure. The aircraft never moved, and the "wheels-up" is an artifact of treating any non-ground altitude string as airborne.

The survey aircraft flew a mapping grid, not an orbit of the campus — and it had landed before the shooting. N59906, a Piper Navajo operated by an aerial survey company, was airborne over the Utah Valley on the morning of 10 September 2025. The raw trace, identical in both archives, gives the whole flight:

Local (MDT)What the trace shows
09:08:45On the ground at Provo (KPVU), 0.3 km from the field
09:28:53Airborne, climbing
09:54 – 11:41Level at 19,000 ft, flying parallel lines across a block spanning the Utah Valley and out over Tooele County
11:10 / 11:25 / 11:35Passes 3.8 – 4.5 km from UVU — at 19,000 feet, on a survey line
11:46 – 12:01Descending
12:03:30Final descent, crossing within 5 km of the campus at 5,725 ft
12:08:35On the ground at Provo again, 0.26 km from the field reference point
~12:23The shooting

It landed roughly fifteen minutes before the shooting — the same figure the N59906 page already carries, re-derived here independently from the raw trace rather than from the circulated screenshot. The pattern — constant 19,000 ft, long parallel legs, a wide rectangular block, a return to the field it launched from — is a standard aerial-mapping grid. It passed near UVU because UVU sits inside the survey block, not because it was watching it, and it was on the ground when the shooting happened. Publishing the near-UVU distances without the altitude, the grid, and the landing time would be a serious misrepresentation.

4.13 The one sentence the recovered data supports about the headline number

The tallies behind this whole line of inquiry — 65, 68, 70, 72, 73, 77 — are trackers' counts, never records, and they have never been reconciled with each other. The register of what was actually claimed holds 85 rows. Here is what the recovered data does to them, in a sentence a reader can repeat:

Of the 85 claimed overlaps behind the 68-to-77 tallies, recovered public ADS-B can decide 29 — it puts the aircraft at the claimed field on 25 of them, 10 with wheels actually on the ground collapsing to seven aircraft-days at just two airports, and somewhere else on 2 — while the remaining 56 cannot be decided by any free archive; and on the person the count was named for, not one of the 85 rows records Erika Kirk as documented present.

The sentence that must go next to it, or the first one misleads: the free archives hold a trace on roughly 8% of the 114 days SU-BND provably sat at Provo, and on about 1% of the 85 days of its 2024 stay. That is the ceiling on what this method can ever prove or disprove. The 56 undecidable rows are a statement about the archives, not about the claim, and the 25 confirmations are a floor rather than a total.

The seven aircraft-days with wheels actually on the ground at a claimed field:

TailDateFieldClosest approach
SU-BTT2023-04-20KILG Wilmington0.56 km
SU-BND2024-04-19KPVU Provo0.05 km
SU-BTT2024-04-23KPVU Provo0.00 km
SU-BND2025-05-23KPVU Provo0.03 km
SU-BTT2025-09-04KPVU Provo0.16 km
SU-BTT2025-09-10KPVU Provo1.23 km
SU-BND2025-09-10KPVU Provo1.29 km

The other 15 "at the claimed airport" rows are airborne fixes near the field — an arrival, a departure, or a low pass. That distinction is on every row in the register and it must not be dropped when the number is quoted.

On the person the count is named for: the register's erika_present column is claimed on 70 rows and not_claimed on 15. It is never yes on any row. The aircraft half of this claim is now checkable on 29 of 85 rows and confirmed on 25; the person half is confirmed on zero. Erika Kirk's flight logs are reported erased and no backup anywhere produces her itinerary — see Erika Flight Logs Erased.

4.14 Corrections that favour the claim, published because they do

A page that only ever corrects in one direction should not be believed. These cut the other way and are published for that reason.

The hostile audit's negative calls are the unreliable half. Of the 44 register rows an independent audit marked inaccurate, recovered ADS-B reaches 5 and contradicts the audit on 3 — OWENS-021 (14 Feb 2024, SU-BTT at Wilmington, 0.82 km), OWENS-025 (19 Apr 2024, SU-BND at Provo, 0.05 km, on the ground) and OWENS-041 (10 Sep 2025, SU-BTT at Provo, 1.23 km, on the ground). Of the 29 rows it marked accurate or partial, ADS-B reaches 24 and contradicts it on 2. This site currently publishes the first half of that finding and not the second.

OWENS-015 is scored REFUTED and the raw trace corroborates it. The row claims SU-BND flew Missouri → Goose Bay → Paris → Cairo on 9 May 2023, and carries the verdict ELSEWHERE with the note that its closest recovered position is 1,063 km from Goose Bay. Both archives say otherwise, independently and agreeing to the minute: the trace begins 4.4 km from St. Louis Downtown at 1,725 ft climbing and ends over Quebec at 41,000 ft tracking northeast. The aircraft did leave the St. Louis area for Goose Bay on the claimed date. The ELSEWHERE verdict is an artifact of scoring a multi-leg route row against the LAST airport in the route string, at the point where volunteer receiver coverage over Labrador runs out. Reclassifying it takes the published "10% wrong continent" (3 of 29) down to 6.9% (2 of 29). The other two refutations are solid and stand.

"Not heard" is nearly worthless as a refutation here. The free archives hear a Provo-parked jet on 9 of 114 undisputed days. A NOT_HEARD verdict on a claimed overlap is a statement about receiver coverage, not about whether the aircraft was there.

4.15 Four things the traces say that reframe the fleet

Wilmington, not Provo, is the Egyptian fleet's dominant American field. Across every recovered trace the five SU- tails are on the ground at Wilmington (KILG) 26 times and at Provo (KPVU) 30 times — but 21 of the 30 Provo contacts are SU-BND alone. Excluding that one airframe, the fleet's US ground presence is 26 Wilmington against 9 Provo, roughly three to one. SU-BTV, one of the five, has no recorded ground contact at Provo at any time across 85 held days spanning October 2022 to May 2026. Provo is the field the public argument is built on; the primary data says the fleet's habitual American destination is Wilmington, and that within Provo the recurring aircraft is one specific airframe, not a fleet.

Four of the five Egyptian tails carry the community database's military flag — and SU-BND does not. In the dbFlags bitfield inside the traces themselves, SU-BTT, SU-BTU, SU-BTV and SU-BGM are flagged military on every payload from every archive; SU-BND is flagged 0 on all 237 of its payloads. Same-day cross-archive agreement is 100% on all five, so this is not one network's opinion. It is also a community-derived classification, not a government record and not an assertion of ownership — and the aircraft it does not apply to is the one that sat at Provo through the September window.

T7-ELL does not belong in an Egyptian-fleet total. Its largest ground presence by a wide margin is Dubai World Central (27 visits), then Athens (14), Los Angeles (8), Rome Ciampino (6), Vienna and Zurich (5 each). Its heard positions are 49.6% Europe, 25.6% Middle East and South Asia, 13.3% the Americas. It has no recorded ground contact at Provo, at Wilmington, or at any other field connected to this case, across 140 held days from February 2022 to August 2026. The T7- prefix is San Marino, not Egypt. It was grouped with the "Egyptian armada" because a fleet-list thread grouped it. Every count that includes T7-ELL in an Egyptian-fleet total is inflated by an aircraft that never went to any of the fields in question.

Zero emergency or interesting squawks across 6.2 million trace points. The only emergency squawk values anywhere in the archive are on a control airliner. Whatever these aircraft were doing, none of them declared anything.

4.16 The one real page-level suppression — and it is lawful and ordinary

Two archived FlightAware pages carry FlightAware's own machine-readable suppression state: blocked: true, blockedForUser: true, an empty activity log, and the site's verbatim text "This aircraft is not available for public tracking per request from the owner/operator."

TailSnapshotOwner on the page
N888KG2025-09-11 17:11:15 UTC — about 23 hours after the shootingN888KG LLC, Lehi UT
N102DZ2026-01-14 19:27:50 UTCElderberry Chestnut LLC, Cheyenne WY

This is not a 403 and not a paywall. It is the site stating that the data is withheld, and it is the only thing in this entire recovery effort that is.

And it is an ordinary, lawful privacy program. The FAA's LADD scheme and FlightAware's owner-request block exist precisely for this, thousands of aircraft use them, and nothing in the archived page dates when either block was filed or says who asked for it. The snapshot date is when a crawler visited, not when the block began. The flag also varies inside our own subject set — N1098L, N2100L, N560TW and N59906 all come back blocked: false with full activity logs on the same kind of page — so it is not boilerplate. And on the same days FlightAware was suppressing N888KG, Flightradar24 was still publishing it. A blocking claim must always name the network.

4.17 85 flight legs recovered from pages this repo had scored as empty

Six archived FlightAware captures were logged in this repository as JAVASCRIPT_SHELL_NO_SERVER_RENDERED_ROWS with 0 rows. They were not empty. The same pages ship a trackpollBootstrap JSON blob carrying the whole activity log, and re-parsing them offline recovers 85 distinct flight legs the repo's own totals scored as zero: N1098L 47, N2100L 27, N59906 6, N560TW 5.

The worked example matters. N1098L's 20 September 2025 capture holds 46 legs and independently corroborates the two 10 September legs this site publishes — while adding landing times it does not: KBIF→KGPI took off 13:48Z and landed 16:38Z; KGPI→KBIF took off 17:27Z, not the 17:32Z this site prints, and landed 20:33Z. The archived log also shows the aircraft flew that pair twice in 24 hours and continued KBIF→KHII→KSNS the same evening — six legs on the 10 September UTC day where the page names two.

A "0 rows recovered" is not an absence of evidence until the extractor has been checked. That is now a standing rule here.


5. What worked, and what did not

Worked

  • Swapping the hostname on a working URL. Most community ADS-B networks run tar1090/readsb, so one URL shape works across all of them. That single move found globe.airplanes.live and 371 aircraft-days that exist nowhere else.
  • Going to the operator's own off-site mirror. adsb.lol publishes its entire archive to GitHub Releases, one release per UTC day, ODbL. Every date the live API refuses is there in full. Stream and filter it — do not store 3 GB per day.
  • Asking by geography instead of by tail. This is the change that moved the percentage from 9% to 72%. Every per-tail client can only ever find an aircraft somebody already named.
  • Running the control in the same pass. Not afterwards, not as a check — in the same run, on the same days. It has already caught two false positives.
  • Recording "asked and nothing" as its own artifact. 15,959 .miss records are what let this document say "0 never asked" and mean it.

Did not work

  • globe.adsb.fi — HTTP 403. globe.theairtraffic.com — HTTP 404.
  • globe.adsbexchange.com/globe_history/ — 403, paid tier.
  • samples.adsbexchange.com/readsb-hist/ — redirects to an index; the per-ICAO /traces/ path is the one that works.
  • OpenSky /api/flights/aircraft — 403 anonymous since the March 2026 move to OAuth2 client credentials. Not attempted with credentials. Cheapest gap left.
  • archive.today / archive.ph — HTTP 429 both attempts. Inconclusive, not ruled out. Worth retrying.

The expensive lesson this effort already paid for

This investigation once published that N102DZ's Flightradar24 page "returns HTTP 403 to the public today" and called it a documented removal. It was wrong and had to be retracted. FR24 returns 403 to any scripted client — including on its own homepage — and serves the page normally in a real browser. The empty flight table underneath is a paywall: a logged-out visitor sees seven days, and a control private jet shows the identical empty table.

Three rules came out of it, and they govern everything above:

  1. The control test applies to websites, not just archives.
  2. Never read an HTTP status from curl as the public's experience.
  3. An empty table is a paywall until proven otherwise.

6. Which files mean what

Derived analysis built for this run

site/docs/Planes/following/apis/public_open_source/data/analysis/

FileWhat it holds
master_proximity.csv4,214 ground visits joined to sourced events; 137 within 50 mi
recovery_ledger.csv10,104 (tail, day) rows and which archive answered
recovery_ledger_summary.jsonthe verdict counts and the 403-band split
geo_ground_foreign.csv17,266 foreign / unregistered / military / blocked aircraft on the ground in an event circle
geo_rates.csvevent-circle versus control-circle base rates
geo_recurrence.csv799 aircraft near 2+ events in 2+ states, with control contamination flagged
su_presence_union.csvthe four-row union of both routes (§4.9)
flight_legs.csv2,282 flight legs, each labelled direct / overnight / gap
al_only_classified.csvevery one-archive-only aircraft-day, classified against four independent tests
wayback_trackpoll_legs.jsonthe 85 legs re-parsed out of pages scored as empty
recurrence_hardtest.csvthe 3,032-aircraft recurrence population and the hard test applied to it

Code that produced it

site/docs/Planes/following/apis/public_open_source/code/

ScriptWhat it does
build_master_proximity.pyjoins ground visits to events; drops un-geocodable event rows rather than guessing
build_recovery_ledger.pythe three-state ledger — HELD / ASKED_NONE / NOT_ASKED
build_geo_findings.pymines the 1.77 M sweep rows into the three geo CSVs
coverage_percent.pyevery percentage in section 2, with each denominator named
normalise_event_control.pythe three normalisations in §4.5
ingest_sweep_traces.pyfiles sweep-downloaded traces under their aircraft (§2.5)
union_su_presence.pythe union of both routes (§4.9)
test_prefilter.pythe regression test locking the §4.8 fix
build_flight_legs.pyground runs → legs, with cross-midnight stitching
geo_sweep.pythe sweep itself — streams a whole UTC day, filters by circle
recover_erased.jspulls two archives side by side per aircraft-day and diffs them
recover_adsbx_samples.jsthe 2022 bridge — free monthly samples

Raw evidence

PathWhat it holds
site/docs/Planes/<TAIL>/data/recovered/20,437 .meta.json; 4,478 payloads; 15,959 "asked and nothing" records
.../data/recovery/trace_visit_index.json17 MB — 6,429 airport ground visits over 2,235 tail-days
.../data/geo_sweep/<date>/hits.csv.gz278 day-directories, 1,772,543 aircraft-circle rows
.../data/geo_sweep_samples/the three 2022 sample days
<TAIL>_<date>_<source>_trace_full.json[.gz]the trace. .json and .json.gz are the same evidence; the source key is in the filename on purpose
..._trace_full.miss.json.meta.jsonasked, and the archive holds nothing. Not the same as never asked

7. Which flights we found, and which we did not

Found — and confirmed by two independent archives

WhatWhere it is
4 foreign-fleet ground presences within 50 mi of a sourced event — SU-BTT 23 Apr 2024 Provo; SU-BND 9 and 10 Sep 2025 Provo; SU-BTT 10 Sep 2025 Provosu_presence_union.csv
30 foreign-fleet ground visits at Provo, Apr 2024 → Jun 2026, including SU-BND parked continuously 5–12 Sep 2025master_proximity.csv
7 aircraft-days with wheels on the ground at a claimed overlap field — six Provo, one Wilmingtonoverlaps.csv
2,282 flight legs across 17 aircraft, each labelled direct / overnight / gapflight_legs.csv
6,502 airport ground visits over 2,346 aircraft-daystrace_visit_index.json
318 aircraft-days pulled from inside adsb.lol's two archive holes, 210 of them in 2026recovery_ledger.csv
111 aircraft-days already downloaded but never filed — N1098L, N2100L, N59906ingest_sweep_traces.py
85 flight legs re-parsed out of archived pages scored as empty§4.17
N708JH at Provo the day after, and at Scottsdale for the memorial — answering an open question this site had posted§4.7
N59906's complete 10 September survey flight, takeoff to landing§4.12

Not found — and honestly, why

What is missingWhich of the three it is
2022 entirely. 3 of 38 sourced 2022 US event-days are covered by anything free that exists, and zero on the event day itselfCoverage gap. Neither daily archive holds anything before 2 February 2023, for the case aircraft or the controls
All nine claimed 2022 overlapsUntestable. Not refuted — untestable
56 of the 85 claimed overlapsUndecidable by any free archive. 37 not heard, 10 no coverage, 5 no date claimed, 4 no tail claimed
7,869 aircraft-days asked of both archives, held by neitherAsked and empty. A coverage fact. Never an absence
Erika Kirk's itineraryNever published by anyone. No backup produces it. This is the single largest hole in the whole claim
The original overlap spreadsheet as a fileNever released
The 5 unpublished rows that took the count from 68 to 73No dates, no tails. Untestable as published
36 sweep days lost to a download failureOur own bug — see below. Not a deletion
9 UTC days with no adsb.lol release at all, costing 3 event-daysA hole in adsb.lol's own archive, control-confirmed

Not one thing on that list is a removal. Every single gap classified out as a retention boundary, an archive coverage hole, or a defect in our own tooling.

The 36 lost sweep days were our bug, and it is provably not date-selective

28 sweep days ended TRUNCATED and 8 unresolved. 35 of the 36 fall on a date whose day-of-month ends in 8 or 9. The cause is in our own code: the queue sorts ordinary dates on the reversed date string, which orders them by the last digit of the day, so every *8 and *9 date landed at the very end of a 22-hour run and died to curl network errors. On every one of those days the server reported a full Content-Length and the asset exists on the CDN at full size — we simply failed to finish downloading it.

Does any of it coincide with an important date? No. 9, 10, 11 and 12 September 2025 are the first four entries in the queue by design and all four came back fully swept with 74,000–80,000 aircraft each. The nearest failures are 18 and 19 September, eight and nine days after the killing.


8. Status, and the one thing only a human can do

Where this stands. The mining is done and adversarially verified: ten independent analysis lanes produced 102 findings, 94 survived a three-lens refutation pass and 8 were killed or sent back for rewording. Every number on this page is either re-derived directly from the payload files or carries a verified finding behind it.

What is genuinely finished:

  • Every event-window day for every Egyptian tail has been put to every free archive that exists. Never-asked is zero.
  • Both recovery routes have been run and cross-checked, and they never contradict each other on any aircraft-day where both hold data.
  • Two defects in our own code found, fixed, and locked with a regression test.
  • Three aircraft raised out of the worst-covered tier using data already on disk.

What is blocked, and by what:

Blocked onWhat it would unlock
A credential for a proprietary archive (FlightAware AeroAPI reaches back to 2011; FR24; ADS-B Exchange historical)The only remaining way to raise the per-tail percentage. Everything free has already been asked. AeroAPI is the highest-value unopened door
A re-run of the geographic sweep with the fixed pre-filterWould turn every sweep-only count from a floor into a total, and recover the 36 lost days
Erika Kirk's itineraryThe person half of every overlap claim. No archive anywhere holds it
State public-records requests at the city-owned airports — landing fees, fuel tickets, ramp assignment, badge accessRecords rather than readings. The most under-used route in the whole investigation, and it is state law, not federal FOIA — faster and cheaper

The honest bottom line. The archives have been squeezed. What is left is not more scraping; it is one API key and a handful of public-records letters.


9. What this page does not claim

  • No trace here places any person aboard any aircraft. Presence is not purpose and it is not occupancy.
  • No removal was found. One lawful owner-requested tracking block was found, and it is described as exactly that.
  • No intent is asserted anywhere. We can show a page was public and is not; we cannot see why. Owners lawfully request blocking and sites reorganise URLs.
  • Every tally quoted is a tracker's count, never a record. Where they conflict, the conflict is shown rather than averaged.
  • The four Egyptian ground presences are what we can currently prove, not a statement about what happened. 139 sourced events is nowhere near every place the Kirks went, and the person side of the claim is close to empty.