Skip to content

Coverage and latency clocks

Four instants. Same names in Coverage, Latency, and Dashboard.

Coverage answers when we see. Latency answers when the bytes reach a gateway. They share a timeline.

None of these is radio time of flight. There is no product named Age of Data.

How to run the studies: Coverage · Latency.

Four instants

flowchart LR
  Gen["Generation"]
  Task["Tasking"]
  Acq["Acquisition"]
  Del["Delivery"]
  Gen --> Task
  Task --> Acq
  Acq --> Del
Instant What happens Engine field
Generation A request or packet is born t_birth
Tasking The satellite takes the order. Direct: first see of the origin facility by a command receiver. ISL command: the acquirer has the forwarded order. facility-tasking Discrete only
Acquisition The satellite has the information (first see of the AOI target; bytes enter the MMFU) created_at / pickup_at
Delivery Bytes arrive at a gateway delivered_at

Tasking exists only in Discrete facility-tasking. Continuous, AOI-born Discrete, and Static have no order-at-a-station step.

The delay clocks

Each name is one interval. It never changes meaning between stories.

flowchart LR
  Gen["Generation"]
  Task["Tasking"]
  Acq["Acquisition"]
  Del["Delivery"]
  Gen <-->|Tasking delay| Task
  Task <-->|Look delay| Acq
  Gen <-->|Acquisition delay| Acq
  Acq <-->|Delivery delay| Del
Name Interval Owner
Tasking delay Generation → Tasking Coverage, facility-tasking only
Look delay Tasking → Acquisition Coverage, facility-tasking only
Acquisition delay Generation → Acquisition Coverage Discrete (always). Latency IoT uses the same interval.
Delivery delay Acquisition → Delivery Latency

Acquisition delay is always Generation → Acquisition — time until the information is on the satellite. In facility-tasking it is Tasking delay + Look delay. Without a facility it is the only Coverage delay.

Delivery delay is always Acquisition → Delivery — time until that information is on the ground (includes onboard MMFU wait). It is not Generation → Delivery.

Best-acquirer / per-acquirer / P50 / P99 / CDF are statistics of one of those clocks, not extra clocks.

Coverage Continuous

No Generation of events. The grid is painted for the whole interval.

Keep these (already defined):

Name What it is
Access duration How long a cell is seen (min / mean / max / total)
Revisit time Gap between successive visits (min / mean / max)
Coverage availability Fraction of the interval the cell is seen
N-asset coverage How many acquirers see the cell at once
Simple coverage Seen at least once, or never

Latency Continuous then adds Delivery delay from Acquisition (swath on the cell → bytes into MMFU) to Delivery.

Coverage Discrete — facility tasking

A command is generated at a facility. Direct Coverage requires the same satellite to take the order, then look at the AOI target. With ISL command, a command receiver can hear the station and CGR forwards the order to the acquirer.

flowchart LR
  Gen["Generation at facility"]
  Task["Tasking — takes the order"]
  Acq["Acquisition — has the information"]
  Gen <-->|Tasking delay| Task
  Task <-->|Look delay| Acq
  Gen <-->|Acquisition delay| Acq

That is all Coverage measures here. With ISL command, Tasking can happen on a relay: a command receiver hears the station and CGR forwards the order to the acquirer. Look delay still starts when that acquirer has the order. Misses are chain outcomes (never tasked / tasked-no-image / acquired), not infinite delay. Delay CDFs only include successful sees.

flowchart LR
  Gen["Generation at facility"]
  Recv["Receiver hears GS"]
  Task["Acquirer has the order"]
  Acq["Acquisition"]
  Gen --> Recv
  Recv -->|ISL command| Task
  Task <-->|Look delay| Acq
  Gen <-->|Tasking delay| Task
  Gen <-->|Acquisition delay| Acq

Best acquirer = fastest Acquisition delay (and, separately, fastest Tasking delay) among satellites that closed the chain.

Coverage Discrete — no facility

The event is generated in the AOI. There is no order to pick up.

flowchart LR
  Gen["Generation"]
  Acq["Acquisition"]
  Gen <-->|Acquisition delay| Acq

Acquisition delay is the only Coverage delay. Best acquirer = fastest Acquisition delay among those that saw the event.

Coverage Static

Sites are frozen for the whole interval. There is no Generation, so there is no Tasking / Acquisition / Delivery delay in Coverage.

Treat it as Continuous sampled at N points. These names stay on Coverage even if you later attach Latency:

Name What it is Not this
Reachability Site seen at least once, or never Not a delay clock. Never-seen is a miss.
Access duration How long the site is seen Not Delivery delay
Availability Fraction of the interval in view Not session Unattended
Revisit / blind gap Time between successive passes Not Unattended, not packet wait

Packets and sessions are Latency, not Coverage. Coverage Static only plants the sites. Coverage Static · IoT packets · Continuous session.

Latency — add dump to ground

Latency always starts at Acquisition and adds Delivery. Direct dump is this bus’s X-band. ISL dump may hop neighbours first; Delivery is still T2 → T3 (including ISL wait, transmit, and MMFU). If a gateway is in view, the bus dumps locally even if CGR planned another hop — ISL routing.

For Discrete events, one event makes one file. Every spacecraft that acquired it is a candidate, and only the one CGR plans to deliver first keeps it. Its Acquisition starts Delivery delay, so it can be later than the Coverage best acquirer.

flowchart LR
  Acq["Acquisition"]
  Del["Delivery"]
  Acq <-->|Delivery delay| Del

Direct vs CGR dump (same clock, different path):

sequenceDiagram
  participant A as Acquirer
  participant N as Neighbour
  participant G as Gateway
  Note over A: T2 file closed onboard
  alt Direct
    A->>A: Wait until this bus sees a GS
    A->>G: X-band dump
  else CGR dump
    A->>N: Planned ISL hop when neighbour in view
    N->>G: Neighbour X-band
    A-->>G: Or dump now if a GS is already in view
  end
  Note over G: T3 Delivery

ISL wait is inside Delivery delay. Do not add a fifth clock named “ISL delay.”

Name Interval Meaning
Delivery delay Acquisition → Delivery Dump to a gateway, including MMFU wait
Pending latency now − Acquisition of the oldest byte still onboard Age of the FIFO, not a dump time
Age of Information now − Acquisition of the last delivered chunk Ground freshness, not Delivery delay

Spell Age of Information. AOI is area of interest.

The Dashboard plot Delivery Delay at Stations Map colours stations by mean Delivery delay. It is not Age of Information.

Systematic scan (Continuous)

No Generation. Acquisition = swath on the cell.

flowchart LR
  Acq["Acquisition — swath on the cell"]
  Del["Delivery"]
  Acq <-->|Delivery delay| Del

EO / detection (Discrete, no facility)

flowchart LR
  Gen["Generation"]
  Acq["Acquisition"]
  Del["Delivery"]
  Gen <-->|Acquisition delay| Acq
  Acq <-->|Delivery delay| Del

Coverage owns Acquisition delay. Latency owns Delivery delay.

Radar tasking (Discrete, facility)

flowchart LR
  Gen["Generation at facility"]
  Task["Tasking"]
  Acq["Acquisition"]
  Del["Delivery"]
  Gen <-->|Tasking delay| Task
  Task <-->|Look delay| Acq
  Gen <-->|Acquisition delay| Acq
  Acq <-->|Delivery delay| Del

Latency does not replay Tasking delay / Look delay. It starts at Acquisition. Those two legs stay on the linked Coverage plots.

ISL on both legs (typical polar fleet):

flowchart LR
  Gen["T0 at facility"]
  T1["T1 order on imager"]
  T2["T2 scene onboard"]
  T3["T3 file at any GS"]
  Gen -->|command ISL| T1
  T1 -->|Look same sat| T2
  T2 -->|dump ISL| T3

Command ISL shortens T0→T1. Dump ISL shortens T2→T3. They are independent policies on Coverage vs Latency.

IoT packets (Static Coverage + Latency)

Coverage Static has no delay clocks. Latency generates packets at those sites — Generation lives here, not on Coverage.

flowchart LR
  Gen["Generation at the site"]
  Acq["Acquisition"]
  Del["Delivery"]
  Gen <-->|Acquisition delay| Acq
  Acq <-->|Delivery delay| Del

Same two names as Discrete. Do not add them and call the sum Delivery delay. The sum has its own name on the Dashboard: Generation → Delivery. Coverage reachability / availability / gaps are the geometry of the site; they are not these clocks.

Acquisition is the arrival on the spacecraft that CGR chose for the uplink — the one that gives the earliest delivery, not necessarily the first one in view.

If no satellite is in view is a Latency choice, not a Coverage clock. Wait and upload keeps the packet for a later pass. Drop the packet loses it at generation and records Not in view. Generation itself stays on the clock either way. Details: IoT packets.

Continuous session (Static Coverage + Latency)

Service time, not a packet delay. Coverage already answered in view or not. Latency answers assigned a session or not.

Name Meaning Vs Coverage
No coverage No satellite in view Same miss as Coverage reachability / a blind gap
Unattended — no path Satellite in view, no live chain to a gateway Not a Coverage gap — geometry already succeeded
Unattended — network busy A chain exists, but uplink, ISL, downlink or station capacity is taken Not a Coverage gap — crowding
Served Carried live end to end to a gateway Beyond Coverage

A session has no Delivery delay: it is carried live, nothing waits in the MMFU. How the capacity is shared: Continuous session.

What each plot is

You are looking at… Clock / KPI
Continuous revisit / access / availability Coverage Continuous
Static reachability / access / availability / blind gaps Coverage Static — not Latency
Time until the satellite takes the order Tasking delay
Time from order to information onboard Look delay
Time from generation until information onboard (Discrete, or IoT packets) Acquisition delay
Time from onboard until the gateway Delivery delay
Time from IoT packet generation until the gateway Generation → Delivery (Acquisition delay + Delivery delay)
Age of bytes still in the MMFU Pending latency
How stale the ground picture is Age of Information
Session user in view but not served Unattended (Latency session — not a Coverage gap)

Read the plot title and the (i). Those use the names above.

Beta 0.1.0 default Latency is Direct (acquirer → facility). ISL (CGR) is opt-in — ISL routing.