PANOPT Free account

How PANOPT sees

The method behind the Situation Monitor · panopt.online

The Situation Monitor has 38 layers: satellite and radar instruments, aircraft and ship broadcasts, network probes, official lists, and the reporting they are read against. Each is described below as it runs: what it measures, how often, how, and what it cannot see. Who supplies each source, and under what licence, is on sources and licences. How the aircraft and GNSS data are derived from adsb.lol is set out under Aircraft data (adsb.lol, ODbL).

Headlines are scored again from 8 Oct 2026; nothing on this page depends on it. What is running now is on the status page.

Five rules for reading it

  1. Every reading carries a grade. Measured (an instrument saw it), Official (a government published it), Reported (a news wire), Claimed (a party to the conflict), Indicated (a proxy). The grade comes before the reading.
  2. Plain mode explains; Analyst mode shows the numbers. In the Monitor, Plain mode says what a reading can mean and Analyst mode shows the counts, medians and ranges behind it. Dotted terms carry their meaning.
  3. Blind is not quiet. Where an instrument cannot see, the page says so. A blank is never a clean reading.
  4. Absence is not disproof. Strike aircraft fly dark, cloud hides fires, and no one reports from everywhere.
  5. Nothing here is advice. The page describes the world; what to do about it is yours.

Evidence grades

Every reading says how it is known.

GradeMeaning
A · MeasuredAn instrument recorded it. The doubt is in what it means, not whether it happened.
B · OfficialPublished by a government or intergovernmental body. Reliable about what was decided or noticed; not proof of what is true on the ground.
C · ReportedSaid by a news wire or several independent desks. Usually right; sometimes early, sometimes wrong.
D · ClaimedSaid by a party to the conflict or a single account. Treat as a claim until something measured or official agrees.
E · IndicatedA proxy that points at something without observing it directly, or an inference from a pattern. Useful for attention, never for fact.

Instruments

Facility heat

A · Measured
What it measures
Fire radiative power (heat) from NASA's VIIRS satellites summed inside each watched refinery, terminal, field, plant or pipeline corridor, judged against the site's own recent median and range.
How often
read every 15 min as NASA posts each pass (about hourly); a day is complete 6 h after midnight UTC
How
The public FIRMS detection files, binned to sites by distance; a week of history is fetched whenever a site is short of a baseline.
What it cannot see
Cloud hides fires. A cold site can be a shutdown or a week of overcast. A pipeline corridor is 24,000 km² of desert and farms, so only new heat on the line is called. A plant never seen hot is a pin problem until shown otherwise.
Licence
NASA FIRMS, public domain. Plant and terminal locations are from OpenStreetMap (© OpenStreetMap contributors, ODbL 1.0); PANOPT's heat measurements are its own and separate from them · source details

Large fires, every 15 minutes

A · Measured
What it measures
Fire radiative power from Meteosat's SEVIRI over the Indian Ocean (45.5 E), every 15 minutes, inside each watched site and pipeline corridor it can see. A large fire is timed to the quarter hour, where VIIRS passes a site a few times a day.
How often
every 15 min; each slot lands about 35 min after it
How
LSA SAF's FRP-PIXEL fire list for the MSG-IODC disk, matched to each target by the satellite's own pixel grid. A new fire is a target quiet for a day, then lit at 50 MW or more in two of three consecutive slots. A single slot of 100 MW or more at a plant, three times its normal (the higher of its own usual slots and the hottest day VIIRS recorded there in the two weeks before), backs a report or a Strike Ledger claim naming that plant, worded as one look; it never raises an alert of its own.
What it cannot see
Pixels are 3 km at best and need tens of megawatts to register, so small flares and small fires do not show. The product never processes sea, inland water or wetland pixels, so coastal terminals (Ras Tanura, Kharg, Jubail) and riverside refineries are listed as not covered, never as quiet. Cloud hides fires.
Licence
EUMETSAT LSA SAF, CC BY 4.0 · source details

Fires every 10 minutes at 1 km

A · Measured
What it measures
Fire radiative power from the FCI imager on Meteosat-12 (MTG), over the whole disk every 10 minutes at 1 km, inside each watched site and pipeline corridor it can see. Pixels that small register fires of a few megawatts, where Meteosat over the Indian Ocean needs tens.
How often
every 10 min; each slot lands about 17 min after it
How
LSA SAF's MTG FRP-PIXEL fire list (LSA-509), matched to each site by the pixel's own position, at least 3 km around a site's pin. A new fire is a site below its threshold for six hours, then lit for three ten-minute looks at or above the larger of 20 MW and three times its usual heat (its 95th percentile over the week before), so a flaring field needs a fire far above its flaring. A single look of 100 MW or more, three times the plant's normal (its own usual looks or VIIRS's hottest day there in the two weeks before, whichever is higher), backs a report or a Strike Ledger claim naming the plant, worded as one look, never an alert of its own.
What it cannot see
It cannot see the Urals and beyond (Salavat, Ufa, Orenburg: Meteosat over the Indian Ocean can), nor pixels its mask calls sea, so offshore terminals (Ras Tanura, Kharg, the Basra terminal) are listed as not covered, never as quiet. Cloud and thick smoke hide fires. A demonstration product under validation; heat along a pipeline's corridor is kept for Confirm, never raised.
Licence
EUMETSAT LSA SAF, CC BY 4.0 · source details

Fires from Sentinel-3, about four looks a day

A · Measured
What it measures
Fire radiative power from SLSTR on Sentinel-3A and 3B at 1 km, over every watched plant, on passes near 10:00 and 22:00 local time: hours the VIIRS passes do not cover.
How often
checked every 30 min; each pass lands 1 to 3 h after it
How
EUMETSAT's near-real-time FRP fire list for each pass, matched to each plant's circle. A large new fire is at least 30 MW over two pixels, three times the plant's own Sentinel-3 normal over the two weeks before.
What it cannot see
The fire list says nothing about cloud, so no fire on a pass is never read as quiet. Small flares need tens of megawatts to show at 1 km. It alerts only at plants Meteosat cannot see; elsewhere it backs reports without a second alert for one fire.
Licence
Contains modified Copernicus Sentinel data, processed by EUMETSAT; free and open · source details

Fires from NASA's MODIS, at the hours VIIRS misses

A · Measured
What it measures
Fire radiative power from MODIS on NASA's Terra and Aqua at 1 km, over every watched plant, on passes near 03:00-04:30, 08:30-10:00, 14:00-16:00 and 19:00-21:00 local time: the hours between the VIIRS passes, when a night strike's fire can burn out unseen.
How often
read every 15 min as NASA posts each pass; a pass lands about 3 h after it
How
NASA FIRMS's public MODIS near-real-time file, matched to each plant's circle and judged against the plant's own MODIS normal, its highest day in the two weeks before. A large new fire is at least 30 MW over two pixels, three times that normal.
What it cannot see
1 km pixels see less than VIIRS, and a pass with no fire is never read as quiet (cloud). It alerts only as the first look, where no other PANOPT satellite has raised the plant in the day and a half before; otherwise it backs reports. Terra and Aqua are old and drifting; when NASA stops them the file stops changing and the sensor says so.
Licence
NASA FIRMS, public domain; NASA asks that its use be acknowledged · source details

Oil fields' flares going dark

A · Measured
What it measures
Whether a watched oil field's gas flares, lit night after night, have gone dark under a clear sky, and when they light again. A field that stops producing stops flaring, and a shutdown is often reported hours late.
How often
every 10 min with MTG's slots; VIIRS's passes land about 3 h after them
How
MTG (Meteosat-12, every 10 minutes at 1 km) at night: a field lit in 80% or more of its night hours over the last 30 days, then dark for more night hours than any run in its month before (four at least, twelve at most), is checked against MTG's own quality map for those looks, read only then: it needs six looks with the sky over the flares clear and none of them lit. A VIIRS pass that recorded half the field's usual flaring inside the dark spell means the flares burned, and stops it or corrects it. Flares too small for MTG to see steadily are read on VIIRS's own days instead: lit on 27 of 30, dark on the last two, with MTG's map clear at the hours VIIRS sees them. The flares back are read when MTG sees them in three of six looks, or VIIRS sees them again.
What it cannot see
A fall, never proof of a shutdown: planned work, a cut in flaring and gas sent to re-injection or a pipeline darken flares too. MTG's cloud mask is tuned never to hide a fire, so it can call thin cloud or dust clear. MTG sees flares far better by night, so a field that stops by day is read from nightfall. MTG cannot see beyond about 75 degrees from its sub-point (Karachaganak, the Urals): no sky check there, so no reading.
Licence
EUMETSAT LSA SAF, CC BY 4.0 (MTG FRP-Pixel and its quality map); NASA FIRMS, public domain. Field locations are from OpenStreetMap (© OpenStreetMap contributors, ODbL 1.0) · source details

Gas plumes from Sentinel-5P, once a day

E · Indicated
What it measures
The sulphur dioxide column over each watched plant from TROPOMI on Sentinel-5P, at about 5 km: a refinery, gas plant or tank farm on fire puts SO2 in the air.
How often
checked hourly; each day lands about 3 h after the early-afternoon pass
How
The day's highest column within 25 km of the plant against its own 90th-percentile day over the month before. A plume is twice that, at 4 Dobson units or more, on three pixels or more.
What it cannot see
The retrieval is noisy, and power plants, smelters and volcanoes emit SO2 too, so a plume is a reading for the Monitor tab and evidence beside a report, never an alert and never corroboration on its own. Cloud leaves no reading.
Licence
Contains modified Copernicus Sentinel data; free and open · source details

Hormuz crossings, estimated

E · Indicated
What it measures
Crossings a day through the Strait of Hormuz, estimated from Sentinel-1 radar snapshots: every hull, AIS or not, warships included.
How often
with every ledger build; the last 30 days and each month of the war
How
Large hulls on each pass, less those in the same spot a day and a half earlier (waiting, not crossing), turned into crossings with 2025's ratio against the published pre-war counts, then scaled down by a correction measured at Bab el-Mandeb, where trackers see well. 4,000 recalculations give the range.
What it cannot see
A model, not a count. It cannot tell a crossing tanker from a patrolling warship; the war correction comes from another strait; the smallest hull counted moves the answer most, and a measured floor (Lloyd's List's AIS count of some of the same ships) is what fixes it.
Licence
PANOPT, CC BY 4.0. Contains modified Copernicus Sentinel data · source details

Night fires

A · Measured
What it measures
VIIRS detections at night per quarter-degree cell against the cell's own median. Shelling, strikes and burning villages show at night; fields burn by day.
How often
as each night pass lands, about 3 h after it
How
Same FIRMS files, binned to a grid by day and night. A cell surges when it has at least 5 night fires and either three times its own median count, or 100 MW of night fire and ten times its usual heat; surging cells within half a degree of the hottest are one alert, named for it. A night's count reads "so far" until its last pass has landed. An alert raised early in the night is raised once more if its night fires grow to three times their heat, or if more fires at night take it past the main feed's floor near a watched plant; day fires alone never raise it again. An alert no watched plant is near is named for the oil or gas site OpenStreetMap maps within 10 km of its hottest fire, if any, and says the site is not watched; it stays in the Monitor tab.
What it cannot see
Gas flares and industrial heat register every night; the median absorbs them. Fires inside a watched plant's circle are left to that plant's own record. Peat and forest fires dominate globally, so only theatre cells are raised. A mapped site near a fire names the place, not what burned: the map can be out of date, and a field fire can burn beside a depot.
Licence
NASA, public domain; the names of unwatched oil and gas sites are from OpenStreetMap (© OpenStreetMap contributors, ODbL 1.0) · source details

Site photographs

A · Measured
What it measures
The latest cloud-free Sentinel-2 image of each watched site at 10 m, plus the hot pixels the fire measure (Fires at 20 m) found inside the plant on the same pass, against the plant's usual count.
How often
every 3 h check; a new clear view every 2–5 days
How
The newest Sentinel-2 scene with the site itself clear, from Element 84's Earth Search catalogue (Microsoft Planetary Computer is only a cross-check).
What it cannot see
Ten metres shows tanks, jetties and large aircraft, not people or trucks. Cloud can delay a view for a week.
Licence
Contains modified Copernicus Sentinel data · source details

Fires at 20 m

A · Measured
What it measures
Hot pixels in Sentinel-2's short-wave infrared at 20 m inside each watched plant's circle, on every pass that sees it, judged against the plant's own flares on its passes in the 60 days before, so a fire is placed inside the plant: the unit, the tank farm, the jetty.
How often
every Sentinel-2 pass over a watched plant, every 2–5 days at about 10:30 local time; read with the site photographs, a few hours after the pass
How
A pixel is hot when band 12 (2.2 µm) is at least 1.4 times band 11 (1.6 µm) and band 8A (0.86 µm), and at least 0.15 reflectance (Murphy and others, 2016, written as normalised hot-spot indices after Marchese and others, 2019); hotter pixels touching it join it. The plant's usual heat is every pixel hot on its passes in the 60 days before, widened 40 m. A new fire is a patch of 16 new hot pixels or more, or 40 in patches of four or more, judged only once four passes before it saw half the plant. A pass up to 36 hours after a report of a strike at the plant is read for it, and the Strike Ledger prints the fire's hot pixels and the pass's time where no instrument that measures megawatts recorded heat.
What it cannot see
One look every 2–5 days: a night fire out by morning leaves nothing on the pass, and a pass that saw less than 70% of the plant is never read as quiet. Cloud hides fires; smoke does not, so the scene classification's cloud is not used to mask hot pixels (it called parts of real fires cloud and shadow). A fire smaller than the plant's own flares vary, or at a flare stack, is missed. It measures no megawatts and cannot say what burned or why. A plant is judged from its fifth measured pass.
Licence
Contains modified Copernicus Sentinel data · source details

Radar ship counts

A · Measured
What it measures
Vessel-sized radar returns in open water at chokepoints and anchorages, counted on every Sentinel-1 pass and compared with the area's own median.
How often
every pass, typically every 1–3 days
How
Sentinel-1 terrain-corrected scenes; fixed platforms and long-anchored hulls learned and excluded; a call needs two consecutive full passes. Each pass's land is also read coarsely and held against the same satellite track's earlier passes: a pass more than 2 dB brighter there is radio interference, and is not counted.
What it cannot see
Counts hulls, not identities or cargo. A ship at anchor and a ship transiting look the same. Radar sees through cloud and at night. Ground radio interference can swamp a pass (10 of Taman's 20 passes in June–August 2026): such a pass reads not measured, never as few hulls, and a pass the land test cannot check is counted as before. Sea ice can read as hulls, so in the Gulf of Finland (Primorsk, Ust-Luga) passes from 1 December to 30 April are shown but never judged.
Licence
Contains modified Copernicus Sentinel data; Sentinel-1 RTC by Catalyst, CC BY 4.0 · source details

Oil terminals from radar

A · Measured
What it measures
Large hulls, radar returns of 3 or more pixels (each about 40 m square), in open water in the waters of 14 oil export terminals at the moment of each pass, set against each terminal's own 2025 and the years before.
How often
every Sentinel-1 pass over a terminal, typically every 1–3 days; off Venezuela every week or two
How
Each terminal's radar box, or for Taman and Port Kavkaz its part of the Kerch Strait box, counted by the radar table's rule: anything in one spot for most of six weeks set aside, full passes only. The seven days' median against the terminal's 2025 median and the middle half of its passes, and each earlier year's median where the archive holds 20 judged passes; a 2025 whose judged passes fall in fewer than 9 of its months gives no normal.
What it cannot see
A count of hulls, not of barrels or cargo: more hulls can be tankers loading or tankers waiting, and radar does not say whose a hull is. Berths within 1.5 km of the shore are inside the radar's coastal mask and not counted, and a box also holds lanes and ships passing. The boxes added on 16 Oct 2026 (Primorsk, Ust-Luga, Tuapse, Sidi Kerir, Jose) have no history until the archive is read back. In the Gulf of Finland sea ice most winters can read as hulls: Primorsk's and Ust-Luga's passes from 1 December to 30 April are counted and marked, set against no normal, and their normals are taken from May to November. A pass swamped by radio interference reads not measured and is never counted.
Licence
Contains modified Copernicus Sentinel data; Sentinel-1 RTC by Catalyst, CC BY 4.0 (the archive to October 2026) · source details

Town control

C · Reported
What it measures
Who holds which settlement in each war, as Wikipedia's conflict map editors judge it from the reporting they cite.
How often
every 6 h
How
The map modules are read as data: a dot per settlement with its colour and the module's own legend; a colour change since the last read becomes a finding.
What it cannot see
Editors' judgement, not a measurement; timeliness varies by map and the revision date is shown. No line is drawn: the front is where colours meet. Small hamlets are omitted from the page.
Licence
Wikipedia, CC BY-SA 4.0 (attribution on the layer and every card) · source details

Wire lane (unscored)

D · Claimed
What it measures
What the wire PANOPT reads (GDELT's news index, government and official feeds) carried, grouped into stories by headline, each report listed with its outlet, time and link.
How often
every 5 min, published only while scoring is offline
How
A separate process reads PANOPT's wire log, keeps items that pass the headline filter and name a commodity, shipping term or watched theatre, and groups headlines that share most of their words within 12 hours (different figures, dates or opposite verbs never group). A copy of the same headline and a report citing another outlet are marked.
What it cannot see
No model reads these: no urgency, importance, direction or confirmation. Headline grouping splits some stories and merges a few; the number of reports is not corroboration, since syndicated copy and echoes of one report are common. A word filter decides relevance, so some off-topic items get in and some on-topic ones do not (rejections are logged).
Licence
Headlines and links as published by each outlet · source details

OSINT desks (Bluesky)

D · Claimed
What it measures
Posts from watched desks on Bluesky: conflict researchers and open-source investigators, naval and maritime analysts, shipping and oil-market analysts, and regional news desks. Each post carries its author's handle and a link to the original. Commercial headline services are not carried without their written permission.
How often
every 10 min
How
Bluesky's public AppView, no key; reposts, replies and moderated posts dropped; every held post re-checked each run and withheld if it could not be; deleted or pulled posts are also redacted from the feed and the wire log; each post tagged to situations and placed by the monitor's geocoder, explicit coordinates first.
What it cannot see
Each post is its author's claim. Most X OSINT accounts have no genuine Bluesky presence, so coverage differs from the X list. Telegram was ruled out: its terms forbid reading channels this way.
Licence
Bluesky public API; authors keep their rights; attributed and linked · source details

Optical ship counts

A · Measured
What it measures
Ships on clear water in five sea boxes (Hormuz lanes and southern approach, Fujairah anchorage, Kharg loading waters, Bab el-Mandeb), counted between radar passes.
How often
every clear Sentinel-2 pass, about every 2–5 days
How
Band 8 (near infrared, 10 m) on a fixed lon/lat grid; hulls are compact objects brighter than the local water; cloud and its margin cut out; returns in the same place on most passes removed as structures.
What it cannot see
Only clear days count. No identity, cargo or heading; anchored and moving ships look the same; thin cloud and sun glint can hide or fake a hull, so a count is compared only with the box's own history.
Licence
Contains modified Copernicus Sentinel data · source details

Radar hulls with no AIS

A · Measured
What it measures
Bright radar returns (3 or more pixels, each about 40 m square) that no AIS transponder heard by PANOPT accounts for at the moment of the pass.
How often
every radar pass where PANOPT hears AIS well
How
Every Class A and Class B AIS vessel in the counted water is dead-reckoned to the pass instant and paired with the nearest radar hull. A box is judged only when the recorder was running, at least five AIS vessels are there, half of them line up, and AIS explains at least half of the hulls; otherwise the card says which of those failed.
What it cannot see
A leftover hull is 'no transponder heard', not proof of a dark ship: receivers have gaps. Pixel size is not calibrated to hull length. The free AIS feed PANOPT uses is heard mainly off Cyprus, Israel, the Aegean and Trinidad, so only the Haifa and Ashkelon boxes can be judged; the Gulf, Red Sea and Black Sea boxes read AIS-blind and nothing is called there.
Licence
Contains modified Copernicus Sentinel data; Sentinel-1 RTC by Catalyst, CC BY 4.0; AIS from aisstream.io (no published licence) · source details

Ship density

A · Measured
What it measures
Where ships were: every radar detection in the watched waters over two weeks on a 2 km grid, as detections per pass.
How often
rebuilt every 15 min from the last 14 days of radar passes
How
The same Sentinel-1 detections the counts use, accumulated across passes; cells lit in most passes are structures and are removed.
What it cannot see
Positions without identity, cargo or heading; a lane looks the same whether ships are transiting or queuing. A pass every 1–3 days, so a single day's movement is invisible. Only the watched areas are covered.
Licence
Contains modified Copernicus Sentinel data; Sentinel-1 RTC by Catalyst, CC BY 4.0 · source details

Sanctioned tankers

A · Measured
What it measures
Designated tankers from the OFAC, UK and EU lists matched on AIS by IMO number, with identity changes and going dark.
How often
live AIS stream, summarised every 10 min
How
aisstream.io terrestrial AIS against the merged watchlist of 1,288 hulls.
What it cannot see
Terrestrial AIS has almost no receivers in the Persian Gulf or Red Sea: a blank there is blindness, not calm. 'Dark' is only called where surrounding traffic kept reporting. No position or track is shown: aisstream.io publishes no terms or data licence, so the layer gives counts per theatre, identity changes and hulls going dark only.
Licence
aisstream.io (no published licence); sanctions lists as published · source details

Military air

A · Measured
What it measures
Military aircraft broadcasting ADS-B over the theatres, with the state of registry from the address block, the mission from the type, and whether the track is holding on station.
How often
every 10 min
How
adsb.lol's military feed; per-airframe track kept for three hours.
What it cannot see
Only aircraft with transponders on. Strike packages fly dark. Coverage depends on volunteer receivers: thin over Iran's interior, Sudan and the open sea.
Licence
adsb.lol, ODbL 1.0 · source details · how the data is derived (ODbL)

GPS integrity and air traffic

A · Measured
What it measures
The share of aircraft within 250 NM of each sample point reporting degraded navigation integrity, and how many aircraft of any kind are in the sky against the same hour on other days.
How often
every 30 min
How
Every ADS-B position carries the aircraft's own bound on its GPS error; jamming and spoofing push many aircraft to low integrity at once.
What it cannot see
A geomagnetic storm degrades GPS everywhere; the space-weather sensor suppresses interference language during one. No receivers means no reading, not a clean one.
Licence
adsb.lol, ODbL 1.0 · source details · how the data is derived (ODbL)

GPS interference

A · Measured
What it measures
Whether the share of aircraft reporting degraded satellite navigation over an area is far above that area's usual share for the same hour: the jumps that come with jamming and spoofing, set apart from the background some regions always show.
How often
every 30 min, as the GPS integrity samples land
How
Each sample point's worst look of the hour against the median of the same UTC hour over the 14 days before, counting only hours with at least 10 aircraft reporting; five such days are needed. Far above: at least 10 aircraft reporting, 5 of them degraded, a share three times the usual (a usual under 2% counts as 2%) and 15 points above it. The Jordan and Cyprus points, whose circles overlap and jump together, are one area, the Levant and Cyprus, where a jump must last two hours in a row: a single hour is logged, not raised. An area gets one reading in six hours unless the jump grows half as big again; each says what was measured, against what normal and what else produces it, with NOAA's K-index around the hour. The northern Gulf's readings go to the main feed, the other areas' to the Monitor activity tab; during a geomagnetic storm, or a jump over three areas at once, all go to the tab.
What it cannot see
Only aircraft that adsb.lol's volunteer receivers hear: Iran's interior, central Iraq, most of the Red Sea and eastern Ukraine have none to read, and Odesa usually too few. A receiver joining or leaving, a few aircraft with poor equipment, a geomagnetic storm or a fault in the feed can each make a jump; the reading names the ones it can check. It cannot tell jamming from spoofing, or say where exactly or by whom.
Licence
adsb.lol, ODbL 1.0 · source details · how the data is derived (ODbL)

Airspace bulletins

B · Official
What it measures
EASA conflict-zone information bulletins and FAA security notices per country.
How often
every 3 h
How
The regulators' published lists.
What it cannot see
Regulators move slowly; a bulletin can outlast the risk it names by years.
Licence
Public regulatory notices · source details

Internet reachability

A · Measured
What it measures
Whether networks registered inside each of 34 countries answer PANOPT's own probes, against each country's own baseline.
How often
every 10 min
How
TCP and DNS probes to registry-verified in-country addresses from PANOPT's server; control hosts guard against PANOPT's own connection failing.
What it cannot see
One vantage point. A regional path failure is reported as such, not as a country outage. Niger and Somalia have few targets.
Licence
PANOPT's own measurement · source details

Night lights

A · Measured
What it measures
Radiance of 60 cities at night from NASA's Black Marble, judged against each city's clear-night baseline.
How often
every 6 h; only clear nights count
How
NASA's quality-flagged VNP46 files where the token allows, GIBS tiles otherwise; cloudy nights are discarded rather than compared.
What it cannot see
A city already dark cannot get darker and is marked too dark to judge. Moonlight and snow are corrected by NASA; smoke is not.
Licence
NASA, public domain · source details

Seismic

A · Measured
What it measures
USGS earthquakes inside the theatres, with the nearest watched asset.
How often
every 15 min
How
USGS real-time feed.
What it cannot see
These regions have frequent natural earthquakes; a shallow event at a known test site is the exception worth noting.
Licence
US government, public domain · source details

Satellite passes

A · Measured
What it measures
When the imaging satellites last passed and next pass over each watched place.
How often
hourly
How
CelesTrak orbital elements propagated with SGP4.
What it cannot see
Pass times say when a look was possible, not what it saw.
Licence
CelesTrak orbital elements (no data licence published); pass times computed by PANOPT · source details

Reported violence

C · Reported
What it measures
Geolocated news reports of fighting, assault and unconventional violence per half-degree cell, against the cell's own weekly rate.
How often
every 15 min
How
GDELT 2.0 event exports; country-level and state-level reports dropped so nothing lands on a capital by default.
What it cannot see
Counts reports, not events: one incident covered by forty outlets is forty. Language coverage is uneven.
Licence
GDELT, commercial use with citation · source details

Verified conflict record

B · Official
What it measures
Human-verified conflict events with deaths per theatre and month, from Uppsala's candidate events.
How often
monthly, a month behind by design
How
UCDP monthly download files.
What it cannot see
A month behind; period tallies are spread across the days they cover so a months-long death toll cannot fake a spike.
Licence
Uppsala Conflict Data Program, CC BY 4.0; cite Hegre, Croicu, Eck and Högbladh (2020), Introducing the UCDP Candidate Events Dataset, Research & Politics · source details

Disaster alerts

B · Official
What it measures
Earthquake, cyclone, flood, volcano, drought and wildfire alerts graded Green, Orange, Red.
How often
every 30 min
How
GDACS API, Orange/Red and Green fetched separately.
What it cannot see
Automatic estimates from models, not official warnings; the grade is about likely humanitarian impact.
Licence
GDACS (European Commission JRC with UN OCHA); no reuse licence published, attributed · source details

Space weather

B · Official
What it measures
The observed planetary K-index and NOAA's geomagnetic storm scale.
How often
every 15 min
How
NOAA SWPC product feeds.
What it cannot see
Observed values lag by up to five hours; forecasts are kept separate and never shown as observations.
Licence
NOAA, public domain · source details

Sanctions lists

B · Official
What it measures
New and removed designations on the UK and EU lists, and the vessels they name. UN Security Council designations arrive through them; the UN's own list is not read.
How often
every 6 h
How
FCDO CSV, EU files and the consolidated Annex XLII text, diffed.
What it cannot see
A designation is a legal act, not evidence of what a vessel is doing.
Licence
UK list: contains public sector information licensed under the Open Government Licence v3.0; EU lists under the European Commission reuse notice · source details

US petroleum stocks

B · Official
What it measures
Strategic Petroleum Reserve, commercial crude, Cushing, refinery utilisation, imports and exports from the EIA's weekly report.
How often
weekly, Wednesdays
How
The report's public CSV tables.
What it cannot see
Weekly and US-only; a week older than 12 days is shown stale.
Licence
US government, public domain · source details

Country oil stocks

B · Official
What it measures
Crude stocks, production, exports and refinery intake reported by 27 countries, with JODI's own quality code.
How often
monthly, two months behind
How
The JODI-Oil primary database file.
What it cannot see
Iran, Kuwait, Qatar, China, Egypt and Libya do not report stocks. Two months old by design.
Licence
JODI asks to be cited as "International Energy Forum (IEF), JODI Oil World Database, www.jodidata.org"; JODI figures stay out of paid data files until JODI gives permission · source details

Airbases from orbit

A · Measured
What it measures
Aircraft-sized changes on the aprons of 18 bases: what differs from the base's own usual picture, counted and judged against the base's own history.
How often
every clear Sentinel-2 pass, every 2–5 days
How
Each clear 10 m Sentinel-2 pass is compared with the pixel-wise median of the base's earlier clear passes; changes of 40–75 m across, strong, compact and on smooth tarmac are counted. Buildings, markings and parked hulks cancel out; changes among buildings are not counted.
What it cannot see
No type, no airworthiness, nothing in a shelter. Fighters are too small. Shadows, wet ground and construction count as change. Five clear passes are needed before any number is shown.
Licence
Contains modified Copernicus Sentinel data · source details

Public attention

E · Indicated
What it measures
Readership of 27 Wikipedia articles about watched places and actors against each article's own two-week median.
How often
daily, a day behind
How
Wikimedia's page-view API.
What it cannot see
Measures who is looking, not what happened. A spike follows news as often as it precedes it.
Licence
CC0 · source details

Aircraft data (adsb.lol, ODbL)

The Military air, GPS integrity and GPS interference readings are derived from adsb.lol's ADS-B data, which adsb.lol makes available under the Open Database License 1.0 (ODbL). Section 4.6 of the ODbL asks anyone who publicly uses a database derived from it to publish, free, how that database was made. This is that description. It is written from the code that runs (adsb_watch.py, air_registry.py and gnss_watch.py) each time this page is built, so every number below is the one the code uses.

What is read

Theatre boxes and GNSS sample points

An aircraft is kept only when its reported position lies inside one of these boxes (edges in degrees of longitude and latitude, negative west and south). Where boxes overlap, the box listed first wins. The sample points are the centres of the point queries, latitude then longitude.

TheatreWestSouthEastNorthGNSS sample points
Persian Gulf & Hormuz4422623229, 49; 26.3, 55.5
Iran (interior)4432624035, 51
Levant & Iraq34294937.531.8, 36.5; 33.3, 44.2
Red Sea, Yemen & Gulf of Aden3210523015, 43; 21.5, 38.8; 27.5, 34.5
Black Sea & Ukraine2743415346.5, 31.5; 49, 37
Eastern Mediterranean2430363834.5, 33
Sudan & Darfur21.58.5322315.5, 32.5; 13.6, 25.3
Horn of Africa36-252102, 45.3; 9, 38.7
Sahel-610162012.6, -8; 13.5, 2.1
Eastern DRC & Great Lakes24-6325-1.7, 29.2
South Caucasus4038504440.2, 44.5; 40.4, 49.9
India–Pakistan frontier6023803734.1, 74.8; 31.5, 74.4
Myanmar9291022916.9, 96.2; 22, 96.1
South China Sea10541212115.2, 117.8; 10, 114
Taiwan Strait116211252724.5, 119.5; 23, 121
Korean Peninsula124331314338.5, 126.5
Venezuela & the southern Caribbean-740-591310.5, -66.9; 11.5, -70

Military filter

Only aircraft on adsb.lol's military list are read: the classification is the feed's own, not PANOPT's. Entries without a position are dropped, and so are entries whose type code is GND, SERV, TWR: ground stations and towers that carry a military flag. Each aircraft kept is given a role from its ICAO type designator by the table below; a designator the table does not list is unknown. Only the signal roles (tanker, ISR, bomber, fighter, airlift, tanker or ISR) count toward a theatre's activity: they are the aircraft whose presence says something about operations.

Aircraft roles, in full

371 ICAO type designators in 11 roles. A designator listed under two roles takes the first. The mission shown for an aircraft is the role's, or the finer one for its type below.

RoleMission shownICAO type designators
tankeraerial refuellingA310 A3ME IL78 K35E K35R K35T K46 KC10 KC30 KC39 KC46 L101 MRTT VC10
tanker or ISRtanker or signals intelligence (C-135 family)C135 R135K
ISRsurveillance / intelligenceA100 A50 AN30 ATP ATR7 BE20ISR C130J-ISR C295M CL60ISR CN35MP CP14 DA42M DH8A DHC7 E145 E2 E3 E3CF E3TF E6 E7 E737 E8 EMB1 EP3 ERJ1 GLF6ISR IL20 IL22 KC2 KJ2K MC12 MQ1 MQ4 MQ9 P1 P3 P8 PC12ISR Q4 R135 R99 RC12 RQ4 SB34 TU142 TU204R U2 Y8Q Y9
bomberstrategic bomberB1 B2 B52 H6 TU16 TU160 TU22 TU95
fighterfighter / strikeA10 AJET AV8B EUFI F14 F15 F16 F18 F22 F35 F4 F5 FA50 FC1 GRIP HAR J10 J11 J15 J16 J20 JF17 JH7 KAI KF21 M2000 MG21 MG23 MG29 MG31 MIR4 Q5 RFAL SU22 SU24 SU25 SU27 SU30 SU34 SU35 SU57 TEJA TOR
airliftairliftA124 A400 AN12 AN148 AN2 AN22 AN24 AN26 AN32 AN70 AN72 ATR4 BE99 C1 C12 C123 C130 C141 C160 C17 C2 C208 C212 C27J C295 C2A C30J C5 C5M C7 CN35 D228 D328 DHC4 DHC5 DHC6 E110 G222 IL76 KC1 L410 NOMD PC6 SF34 Y12 Y20 Y7 Y8 Y9T
tanker or transportrefuelling or transportA332 B762 B763 B764 IL62 IL96
VIP or special missionVIP or special missionA20N A21N A319 A320 A321 A343 A346 A359 ASTR B350 B734 B737 B738 B739 B742 B744 B748 B752 B772 BE9L C25A C25B C510 C560 C680 C750 CL60 CRJ2 CRJ7 CRJ9 E135 E170 E190 F900 FA7X FA8X FA90 G150 G280 GL5T GL7T GLEX GLF4 GLF5 GLF6 H25B LJ35 LJ45 LJ60 PRM1 TU154 TU204 TU214
rotaryhelicopterA109 A119 A129 A139 A189 AH64 AS32 AS50 AS55 AS65 B06 B212 B222 B230 B412 B429 B505 CH7 EC20 EC25 EC30 EC35 EC45 EC55 EC75 EH10 H135 H145 H160 H47 H500 H53 H53S H60 H64 KA27 KA32 KA52 LYNX MI17 MI24 MI26 MI28 MI35 MI8 NH90 OH58 PUMA R44 R66 S61 S64 S70 S76 S92 TIGR UH1 UH60 V22 WG30 Z10 Z19 Z20 Z8 Z9
trainertrainerALPI AN2T AT3 BTB2 C172 CT4 DA40 DA42 EMB3 EPSI FOUG G115 G120 HAWK JL10 JL8 JL9 K8 KT1 L15 L159 L29 L39 M290 M311 M346 MB33 MB39 P28A PC12 PC21 PC7 PC9 SF26 SF60 T1JT T38 T45 T50 T6 T7 TAMP TB30 TEX2 TUCA YK130 YK52
utilityutility / liaisonAC50 AC90 AC95 B190 BE20 BE30 BE55 BE58 C182 C206 C210 C26 C310 C402 C414 C425 C441 C99 DO28 E120 F406 KODI M600 P180 PA31 PA34 PA44 PA46 SW3 SW4 TBM7 TBM8 TBM9 U21
Mission by type, 114 designators
TypeMission shown
R135signals intelligence (RC-135)
E3TFairborne early warning (E-3)
E3CFairborne early warning (E-3)
E737airborne early warning (E-7)
E2carrier early warning (E-2)
E6nuclear command relay (E-6)
P8maritime patrol / anti-submarine (P-8)
P1maritime patrol (P-1)
EP3signals intelligence (EP-3)
Q4high-altitude surveillance drone (RQ-4)
RQ4high-altitude surveillance drone (RQ-4)
MQ4maritime surveillance drone (MQ-4C)
MQ9armed reconnaissance drone (MQ-9)
U2high-altitude reconnaissance (U-2)
E8ground surveillance radar (E-8)
K35Rtanker (KC-135)
KC46tanker (KC-46)
K46tanker (KC-46)
KC10tanker (KC-10)
MRTTtanker / transport (A330 MRTT)
A3MEtanker / transport (A330 MRTT)
B52strategic bomber (B-52)
B1strategic bomber (B-1)
B2stealth bomber (B-2)
C17strategic airlift (C-17)
C5strategic airlift (C-5)
C5Mstrategic airlift (C-5M)
C30Jtactical airlift (C-130J)
C130tactical airlift (C-130)
A400tactical airlift (A400M)
A124outsize cargo (An-124)
IL76heavy airlift (Il-76)
V22tiltrotor assault transport (V-22)
IL78tanker (Il-78)
A50airborne early warning (A-50)
A100airborne early warning (A-100)
IL20signals intelligence (Il-20)
IL22airborne command post (Il-22)
TU142maritime patrol (Tu-142)
TU95strategic bomber (Tu-95)
TU160strategic bomber (Tu-160)
TU22long-range bomber (Tu-22M)
AN12tactical airlift (An-12)
AN26light transport (An-26)
AN72STOL transport (An-72)
SU24strike (Su-24)
SU25ground attack (Su-25)
SU34strike (Su-34)
SU35fighter (Su-35)
SU57stealth fighter (Su-57)
MG31interceptor (MiG-31)
KA52attack helicopter (Ka-52)
MI28attack helicopter (Mi-28)
MI24attack helicopter (Mi-24/35)
MI8transport helicopter (Mi-8/17)
IL96government transport (Il-96)
TU154government transport (Tu-154)
TU204government transport (Tu-204)
Y20strategic airlift (Y-20)
Y8tactical airlift / special mission (Y-8)
Y9special mission (Y-9 family)
KJ2Kairborne early warning (KJ-2000)
H6bomber (H-6)
J10fighter (J-10)
J11fighter (J-11)
J15carrier fighter (J-15)
J16strike fighter (J-16)
J20stealth fighter (J-20)
JH7strike (JH-7)
Z8transport helicopter (Z-8)
Z9utility helicopter (Z-9)
Z10attack helicopter (Z-10)
Z20utility helicopter (Z-20)
M2000fighter (Mirage 2000)
JF17fighter (JF-17)
TEJAfighter (Tejas)
GRIPfighter (Gripen)
A10ground attack (A-10)
AV8Battack (AV-8B Harrier)
F5fighter (F-5)
F4fighter (F-4)
P3maritime patrol (P-3)
C295tactical airlift (C-295)
C27Jtactical airlift (C-27J)
CN35light transport (CN-235)
C160tactical airlift (C-160)
KC39tanker / transport (KC-390)
KC30tanker / transport (KC-30)
SB34airborne early warning (Saab 340 Erieye)
E145airborne early warning or airliner (EMB-145)
MC12surveillance (MC-12)
RC12signals intelligence (RC-12)
DHC7surveillance (EO-5 / RC-7)
C135tanker or signals intelligence (C-135 family)
BE20utility twin (King Air 200)
B350utility or surveillance (King Air 350)
C12utility (C-12)
T38trainer (T-38)
T45trainer (T-45)
T6trainer (T-6)
TEX2trainer (T-6 Texan II)
PC21trainer (PC-21)
M346trainer (M-346)
HAWKtrainer (Hawk)
KT1trainer (KT-1)
T50trainer / light fighter (T-50)
FA50light fighter (FA-50)
KF21fighter (KF-21)
A139helicopter (AW139)
H64attack helicopter (AH-64)
H60utility helicopter (H-60)
H47heavy-lift helicopter (CH-47)
H53heavy-lift helicopter (CH-53)
NH90helicopter (NH90)
Registry state by ICAO address block, 90 blocks

The registry state is read from the aircraft's 24-bit ICAO address by the blocks ICAO Annex 10 allocates to states: the state the airframe is registered in, not necessarily who is flying it.

Address block (hex)State
A00000–AFFFFFUnited States
C00000–C3FFFFCanada
400000–43FFFFUnited Kingdom
380000–3BFFFFFrance
3C0000–3FFFFFGermany
300000–33FFFFItaly
340000–37FFFFSpain
480000–487FFFNetherlands
448000–44FFFFBelgium
488000–48FFFFPoland
468000–46FFFFGreece
4B8000–4BFFFFTurkey
4A8000–4AFFFFSweden
478000–47FFFFNorway
458000–45FFFFDenmark
460000–467FFFFinland
4B0000–4B7FFFSwitzerland
440000–447FFFAustria
490000–497FFFPortugal
498000–49FFFFCzech Republic
4A0000–4A7FFFRomania
4C0000–4C7FFFHungary
470000–477FFFBulgaria
4C8000–4CFFFFCroatia
500000–507FFFSlovakia
508000–50FFFFUkraine
510000–5103FFBelarus
140000–17FFFFRussia
738000–73FFFFIsrael
740000–747FFFJordan
748000–74FFFFLebanon
778000–77FFFFSyria
728000–72FFFFIraq
730000–737FFFIran
710000–717FFFSaudi Arabia
896000–896FFFUnited Arab Emirates
06A000–06AFFFQatar
706000–706FFFKuwait
894000–894FFFBahrain
70C000–70C0FFOman
890000–890FFFYemen
010000–017FFFEgypt
018000–01FFFFLibya
020000–027FFFAlgeria
02A000–02AFFFMorocco
03E000–03EFFFTunisia
040000–040FFFEthiopia
07C000–07CFFFSudan
078000–078FFFSomalia
04C000–04CFFFKenya
088000–088FFFDjibouti
0A0000–0A7FFFNigeria
09A000–09AFFFSenegal
05C000–05CFFFMali
09C000–09CFFFNiger
0A8000–0A8FFFBurkina Faso
084000–084FFFChad
08C000–08CFFFDR Congo
06E000–06EFFFRwanda
068000–068FFFUganda
008000–00FFFFSouth Africa
600000–6003FFAzerbaijan
600800–600BFFArmenia
514000–5143FFGeorgia
601800–601BFFKazakhstan
700000–700FFFAfghanistan
760000–767FFFPakistan
800000–83FFFFIndia
780000–7BFFFFChina
899000–8993FFTaiwan
840000–87FFFFJapan
718000–71FFFFSouth Korea
720000–727FFFNorth Korea
700800–700BFFBangladesh
704000–704FFFMyanmar
880000–887FFFThailand
888000–88FFFFVietnam
758000–75FFFFPhilippines
75C000–75FFFFMalaysia
76C000–76CFFFSingapore
8A0000–8A7FFFIndonesia
7C0000–7FFFFFAustralia
C80000–C87FFFNew Zealand
0D0000–0D7FFFVenezuela
0AC000–0ACFFFColombia
E80000–E80FFFPeru
E40000–E7FFFFBrazil
E00000–E3FFFFArgentina
0D8000–0DFFFFMexico
0B0000–0B0FFFCuba

On station, and what else an aircraft is doing

Each aircraft's phase is read from its vector and its recent track:

A hold by a tanker, ISR or bomber aircraft is kept as one record per airframe and hold, with the minutes held; the same airframe holding again after a gap of more than 2 hours opens a new record. A hold is raised as a finding once it reaches 20 minutes for a tanker and 30 minutes for the others.

Each pass counts a theatre's signal-role aircraft, and the hourly count is kept for 14 days. A theatre is compared with the median of its earlier hours, once 48 hours are recorded; until then it reads as building its baseline.

Tracks, and how long anything is kept

Navigation integrity (GNSS) and air traffic

Every ADS-B position carries a Navigation Integrity Category (NIC): the aircraft's own bound on its GPS error. Around each sample point, the aircraft reporting a NIC are counted; degraded is NIC 6 or below, lost is NIC 0. A point is flagged when at least 10% of the aircraft reporting are degraded, at least 2 of them are, and at least 8 aircraft report, so one faulty transponder is never a jammed region. No aircraft reporting is no coverage; fewer than 8 is thin coverage. A flag reads "consistent with GNSS interference", never as attribution.

The same reply counts aircraft of any kind against the same UTC hour on other days, once 3 days of that hour are recorded: emptied at 35% or less of a same-hour median of at least 15; heavy at 2 times or more of a median of at least 5.

Far above its usual (the GPS interference readings): a point's worst look of an hour is set against the median share of the same UTC hour over the 14 days before, counting only hours with at least 10 aircraft reporting, once 5 such days exist. It is far above when at least 10 aircraft report, at least 5 of them degraded, and the share is at least 3 times the usual (a usual below 2% counts as 2%) and 15 percentage points above it; elevated hours no more than 2 hours apart are one episode. Sample points whose circles overlap and jump together are read as one area: the Levant and Cyprus (31.8,36.5 and 34.5,33.0). Over the Levant and Cyprus a jump counts only when the hour before or the hour after jumped too; a single hour is logged, not raised. A reading says when NOAA's planetary K-index was 5 or more around the hour (a geomagnetic storm, which degrades satellite navigation by itself).

The sample points are listed with the theatre boxes above.

What is published

The Monitor shows these derived records: each aircraft with its type, role, mission, registry state, phase and short track; the holds; each sample point's integrity and traffic counts, and its latest hour against its usual share for that hour; each theatre's activity; and the GPS interference readings, in the Monitor activity tab and, for the northern Gulf, in the main feed. The same arrays are offered in the Monitor's public side file under the keys adsb_aircraft, adsb_on_station, adsb_gnss, adsb_events, each with the licence (ODbL-1.0), its address, adsb.lol's notice and a link to this section.

Contains information from adsb.lol, made available under the Open Database License (ODbL 1.0): https://opendatacommons.org/licenses/odbl/1-0/.

About · Ledger · Strike Ledger · Ship Attack Ledger · Method · Sources · Status · Changelog · Pricing · Press · Terms · Privacy

On X: @Pan_Opt · Questions or corrections: admin@panopt.online · Built 24 Oct 2026