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.
T1 only in Discrete facility-tasking. Without a facility, T0 → T2 is Acquisition delay. Delivery delay is always T2 → T3.
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.