WATCHTOWER 2.0 — BASELINE LEARNING
Methodology

No opinions. Just a baseline.

Every part of our pipeline is designed to defeat one accusation: "you only track the aircraft you're already suspicious of."We don't. The machine watches every aircraft, all the time, and the math decides what stands out.

Population-scale objectivity

35,546 aircraft observed over 1.7 months. 10,088 (28.4%) have crossed the 99th-percentile threshold at least once. 25,458 (71.6%) never triggered.

This is what a fixed statistical threshold looks like against a large population — not a curated watchlist. The threshold is published. The math chooses.

Latest scan · funnel7/10/2026, 5:41:16 PM
44,955
Detections
3,681
Candidates
4,148
Kinematic hits
4,148
Handoffs
4,148
Flagged
Human review overrides
0 anomalies dismissed after review in the last 30 days.
We publish our misses.
01

Population-scale capture

We log every ADS-B / MLAT detection in the observation zone — not a curated subset. 4,207,069 records across 35,546 aircraft, growing.

02

48-hour baseline

Before flagging anything, the system observes for 48 hours to learn what NORMAL looks like for that airspace at that time of day, season, and weather.

03

Statistical anomaly detection

Outliers are scored against the learned distribution. The threshold is published. We don't pick — math picks.

04

Chain of custody

Each record receives a SHA-256 hash linked into a Merkle chain. Any tampering is detectable. Evidence is reproducible by any third party.

05

Bradford Hill scoring

We apply the Bradford Hill criteria (strength, consistency, specificity, temporality, etc.) to aircraft-pattern and public-record corroboration — the same framework used in epidemiology and courtrooms. No physiological or personal-health data is included in the public record; the public site is system-focused, not autobiographical.

06

Open source by design

Every line of Watchtower 2.0 will be public. The methodology IS the code. Deploy it in your county, get the same answers.

The anti-cherry-picking proof

100%

of detections logged — not just suspicious ones

0%

flagged during baseline window — by design

48h

minimum learning period before any flag is valid

County-weighted baselines

Each county gets its own normal.

Los Angeles airspace produces roughly ten times the traffic of Kern County. A single regional baseline lets LA volume drown Kern signals — a Cessna at 800 ft over Bakersfield looks unremarkable next to thousands of LA-basin orbits. The fix is not to suppress LA. It is to learn what normal means for each county and score each detection against the airspace it actually occurred in.

How it works
  • 1. Partition the last 48h of detections by county.
  • 2. Compute median, 10th-percentile, and standard deviation of altitude per county.
  • 3. Score each detection against its own county's baseline.
  • 4. Aircraft crossing multiple counties get scored in each; displayed score = MAX(per-county score).
  • 5. Cross-county coordination, convergence, and shell-network detection are unchanged.
Why this isn't cherry-picking
  • · Same math for every county — nothing is hand-coded.
  • · Per-county baselines are published live on /threat-index.
  • · MAX rule prevents a quiet LA segment from hiding a loud Kern one.
  • · Raw data remains intact — anyone can re-run the partition.
Transparency

Data sources

All inputs are public. No private, personal, or biometric data is used.

ADS-B
Public broadcast telemetry — position, altitude, speed, squawk.
MLAT
Public multilateration triangulation where ADS-B is absent or suppressed.
FAA Aircraft Registry
Public FAA registration records — N-number, make, model, year.
State corporate filings
Public Secretary of State business records for ownership linkage.
Scientific honesty

Known limitations

Every serious methodology includes limitations. Acknowledging uncertainty strengthens credibility, not weakness.

  • ADS-B altitude is barometric, not true AGL. Terrain variation introduces ±50–100 ft uncertainty.
  • MLAT accuracy varies with receiver density. Sparse coverage can produce positional jitter.
  • FAA registry may contain outdated ownership info. Transfers lag filings by weeks or months.
  • Shell-network linkage is public-record-based inference, not investigative confirmation.
  • Weather data (NOAA) is optional context, not a scoring input. It does not drive anomaly flags.
  • Signal loss or transponder suppression produces gaps. Absence of data is not absence of aircraft.
Reproducibility

Method versioning

Each detection carries the method version used to score it. This ensures reproducibility even as the method evolves.

VersionDescriptionStatus
WTI_v1Initial weighted scoring: altitude, temporal, shell, repeat.Archived
WTI_v1_with_convergenceAdded convergence component for multi-aircraft clustering.Current
WTI_v2 (future)Planned: weather-adjusted baselines and sector-specific altitude floors.Planned
Baseline design

Why 48 hours?

The 48-hour baseline is not arbitrary. It is statistically motivated to capture the full variation of normal airspace use.

Weekday / Weekend
Captures commuter vs. recreational traffic patterns.
Morning / Evening
Captures diurnal cycles — rush-hour corridors and quiet overnight bands.
Weather variation
Captures how pilots adapt to wind, ceiling, and visibility changes.
Anti-cherry-picking
Prevents selecting a 'quiet' day to make normal activity look suspicious.
Statistical rigor

How anomaly detection works

Anomalies are detections above the 99th percentile of deviation from the baseline distribution for altitude, timing, or pattern.

Distribution
The baseline is a learned empirical distribution, not a assumed normal curve.
Threshold
The 99th percentile is the published, fixed threshold. No manual tuning.
Statistical test
Deviation is measured as standardized distance from the rolling baseline mean.
Percentile
Only events exceeding the 99th percentile enter the scoring pipeline.
Tamper evidence

Chain of custody

Every record is hashed and linked. Altering one record breaks the chain — detectable by any third party.

record001  →  hash(001)  ────────►  merkle_001
record002  →  hash(002)  ─┬────►  hash( merkle_001 + hash(002) )  →  merkle_002
record003  →  hash(003)  ─┬────►  hash( merkle_002 + hash(003) )  →  merkle_003
                          │
                          └──── Any tamper breaks the next link

SHA-256 hashing at ingestion. Merkle root published periodically. Third-party recomputation validates integrity.

Privacy boundary

What we do NOT log

The system is intentionally limited to public airspace data. No private signals. No personal data. No exceptions.

  • Personal data (names, addresses, phone numbers)
  • Biometric data of any kind
  • Phone or Wi-Fi signals
  • Private surveillance feeds
  • Social media or web-scraped personal content
  • Any data not publicly broadcast or filed

Only public ADS-B broadcasts and public FAA registry data are used. The public site is system-focused, not autobiographical.

Auditability

Reproducibility checklist

Every claim on this site can be independently verified. This is the full checklist a third party needs to reproduce our results.

Public data only
ADS-B / MLAT / FAA registry — no proprietary inputs.
Open-source code
Watchtower 2.0 code will be published for independent deployment.
Published thresholds
99th percentile baseline deviation. Fixed. Documented.
Published weights
Altitude 35%, Repeat 25%, Temporal 20%, Convergence 12%, Shell 8%.
Published method version
Every row carries WTI version for temporal reproducibility.
Hash for every record
SHA-256 + Merkle chain. Tamper-evident by design.
Auditor endpoints

Publishing the machine's own logs

Anyone can read the raw scan output. The ML system posts one hashed artifact per scan; every artifact is public and every root is reproducible.