Latency¶
From acquisition to delivery on the network
Latency asks: once Coverage has the data, how long until it reaches a gateway? Coverage answers when you see the Earth (or an event). Latency moves bytes from the acquirer to a facility on a Connection Network — through onboard MMFU, downlinks, and processing delay.
It needs:
- A Coverage run (Continuous, Discrete, or Static), and
- A Connection Network that connects those acquirers to ground stations.
Add from Mission Tree → Analysis → Latency.
Walkthroughs that feed this clock: LEO Optical Satellite · LEO Radar Tasking · Walker IoT coverage
When to use¶
| Use Latency when… | Prefer something else when… |
|---|---|
| Time-to-ground, backlog, overflow, delivery success | Percent area / revisit → Coverage |
| You already have Coverage + a network | Unique A→B hop lists only → Routing |
| Imaging, tasking, IoT, detection, or a scanning mapper as data | One-hop RF margin → Link |
Five operational stories¶
Latency does not have its own “type” dropdown. The linked Coverage type plus the payload / traffic model pick the story.
| Story | Coverage | Latency model | Idea |
|---|---|---|---|
| Systematic scan | Continuous grid | Produce while the swath is on the AOI (no extra payload panel) | Mapper always collecting as it flies — bytes into MMFU whenever Coverage says the cell is acquired |
| EO imaging | Discrete — Random N (or Poisson) in the AOI | Either Discrete payload: rate × window or Fixed payload size | A scene is taken when the sensor sees the point; you choose how many bytes that scene is; dump on the next ground pass |
| Radar tasking | Discrete — Facility tasking | Same two Discrete payload models (often rate × window on the bus) | Command is born at a station; the same satellite looks; Latency starts at Coverage TOTAL (the look), then downlinks |
| IoT-like | Static sites | Fixed packet (IoT) (or Continuous session) | Frozen clients emit traffic; sessions compete for Max. concurrent link |
| Detection (e.g. wildfires) | Discrete — Random N / Poisson in the AOI | Same two Discrete payload models (fixed size is typical for an alert) | Unplanned events pop in the AOI; clock is detect → first successful dump |
Beta 0.1.0 routes acquirer → facility (store-and-forward / bent-pipe). ISL relay is not in Beta 0.1.0 — see Routing policy.

Latency Properties — linked Coverage and network, acquirers, payload.
Shared editor inputs¶
These fields are always there. Discrete payload and Static traffic blocks appear only for those Coverage types. Continuous has no extra payload panel — produce rate is the COMM / sensor Acquisition data rate whenever the swath is on.
| Field (editor) | Meaning |
|---|---|
| Latency ID | Name in the tree and Dashboard |
| Active | Off → skipped on scene refresh |
| Coverage Analysis | Completed Coverage to pick up. Mode (Discrete / Static / Continuous) is shown under the dropdown. |
| Connection Network | Completed network. Gateways are facilities on this graph, not every facility in the mission. |
| Acquirers → Mode | All sources from coverage or Selected acquirers only |
| Ground Stations → Mode | All facilities on network or Selected ground stations |
| Policy | How bytes leave the acquirer — below |
| Simulation step [s] | How often the data-plane is stepped (default 5). Finer → slower run, tighter MMFU timeline. |
| Interval | Follows the scenario window |
Changing Coverage, the network, COMM, or these fields makes Latency stale — run again.
Routing policy and ISL¶
| Policy (editor) | Beta 0.1.0 | Later |
|---|---|---|
| No inter-satellite link | Use this. Direct dump: the acquirer holds data in MMFU until it sees a selected facility. No relay through other spacecraft. All current plans include this. | — |
| Use CN nodes as relay | Not in Beta 0.1.0 (next build). When it ships, spacecraft on the Connection Network can relay; Max hops appears. Plan-gated (Pro+). | Walk the mesh; ISL data rate on both buses limits each space–space hop |
Until that build, draw Connection Network edges acquirer → facility (bent-pipe). Extra ISL edges do not move Latency bytes yet. The spacecraft COMM ISL data rate field is reserved for relay; it is unused while policy is No inter-satellite link.
If the dropdown still shows Use CN nodes as relay as Pro+, treat it as upcoming — do not depend on it in Beta 0.1.0.
MMFU and COMM¶
Latency is a data-plane study. RF EIRP / G/T live on Link. Bytes and rates live on Spacecraft — COMM (vehicles share that profile). Facilities add ingest / ground buffer on Facility.
| Piece | Role in Latency |
|---|---|
| MMFU capacity / initial fill | Onboard store. Produce writes here; overflow if full (not delivered). |
| Acquisition data rate | Produce while Coverage is acquiring, if the acquirer is the bus. If Coverage’s acquirer is a sensor, use that sensor’s Acquisition data rate; bytes still land in the parent MMFU. |
| Downlink data rate | Space → ground hop: min(this, facility Downlink max RX rate). |
| Processing latency | Fixed onboard delay on the dump / relay path — not the Coverage acquisition clock. |
| Uplink data rate / Max. concurrent link | Inbound / how many sessions the bus may hold (Static IoT and continuous session). |
| Facility COMM | Ground ingest, buffer, ground processing delay. |
Discrete (with or without facility tasking) always offers two payload models — see Discrete payload. Continuous has neither: it produces for as long as Coverage marks the grid acquired.
Systematic scan (Continuous)¶
Idea: a mapper that keeps collecting while the instrument is over the region — pushbroom / scanning swath, not one snapshot per point. Continuous Coverage paints the AOI grid; Latency treats every acquired cell-time as production into MMFU at the sensor (or bus) Acquisition data rate, then dumps on the next direct ground pass.
That is the contrast with Discrete EO imaging: Discrete is this scene, this instant; Continuous is the belt on the ground for the whole pass. Overflow is the usual risk: the swath may write faster than dumps can drain.
| Setup | Typical choice |
|---|---|
| Coverage | Continuous — granularity and AOI as in the mapping study. Acquirer = sensor with FOV / swath. |
| Latency | Shared fields only (no Discrete payload / Static traffic panel) |
| Network | Imaging spacecraft → dump facilities |
| COMM | Sensor Acquisition data rate; parent MMFU and Downlink data rate |
Walkthrough for the Coverage side: LEO Optical Satellite. Add Latency on that completed Continuous run when you care about time-to-ground and memory, not only percent covered.

End-to-end latency vs time — systematic scan (Continuous Coverage, produce while the swath is on).
EO imaging¶
Idea: planned or opportunity imaging. Discrete points in the AOI are scenes (no facility-tasking chain). When the sensor (or bus) first sees the point, Coverage records TOTAL. Latency then writes one message per acquired scene into MMFU and waits for a direct ground pass.
How many bytes is that message? Discrete without tasking uses the same two payload models as radar and detection — pick one in Model:
| Model | Bytes into MMFU |
|---|---|
| Acquirer rate × acquisition window | Sensor (or bus) Acquisition data rate × Acquisition duration [s] / 8. Use when scene size grows with how long you integrate / scan. |
| Fixed payload size | The size you type (Payload size + unit). Acquisition rate is not used for the message. Use when the product is a known file (compressed scene, thumbnail, packet). |
| Setup | Typical choice |
|---|---|
| Coverage | Discrete — Random N in AOI (or Poisson). Acquirer = sensor with FOV. |
| Latency payload | Either model — rate × window is the usual imaging default; switch to Fixed payload size if the product size is known |
| Network | Each imaging spacecraft → the dump facilities |
| COMM | Sensor Acquisition data rate (needed for rate × window); parent MMFU and Downlink data rate |
Watch overflow if scenes are large and dumps are rare. Pickup is Coverage TOTAL, not a facility-tasking chain.

Bus MMFU fill — EO imaging; sawtooth is produce then dump to ground.
Radar tasking¶
Idea: a request is born at a ground station; the same spacecraft must see that station, then the land point (Coverage — facility tasking). Latency does not replay TASKING / ACQUISITION-LEG. It picks up at TOTAL (the look) and then asks how long until the product is on the ground.
| Setup | Typical choice |
|---|---|
| Coverage | Discrete — Facility tasking (N) or Poisson. Acquirer = spacecraft (no sensor in the radar tutorial). |
| Latency payload | Same two models as EO: Acquirer rate × acquisition window (bus rate) or Fixed payload size |
| Network | Tasking / dump facilities on the graph with the fleet |
| COMM | Bus Acquisition data rate, MMFU, Downlink data rate |
Walkthrough: LEO Radar Tasking. Chain outcomes (never tasked / no image) stay on Coverage; Latency only sees events that were acquired.

Delay CDF by origin facility — same reading as [LEO Radar Tasking](../tutorials/mission-radar-tasking.md); polar stations typically rise sooner.
IoT-like¶
Idea: many fixed users (not events that appear once). Static Coverage plants N sites; Latency emits traffic from those sites for the whole interval.
| Setup | Typical choice |
|---|---|
| Coverage | Static — # Targets + Seed in the AOI |
| Latency traffic | Fixed packet (IoT) — packet size + generation rate (msg/s, msg/min, msg/h) |
| Alternative | Continuous session (Starlink-like) — ongoing Session rate (bps…Gbps) instead of packets |
| Network | Serving spacecraft → gateways |
| COMM | Uplink data rate, Max. concurrent link, MMFU if you store before dump |
Crowding shows up as dropped sessions when Max. concurrent link is 1 and many sites are up. On Dashboard, unattended time is how long each site waits without a served session (typical of Continuous session). Coverage for a Walker + Discrete IoT capture recipe is Walker IoT; for Latency’s packet model, pair Static Coverage with Fixed packet.
| Field (editor) | Meaning |
|---|---|
| Packet size + unit | Bytes per message (B / KB / MB) |
| Generation rate + unit | How often each site emits |
| Session rate + unit | Continuous-session model only |

Unattended time by client — IoT-like (Static sites; how long users wait without a served session).
Detection (wildfires and similar)¶
Idea: unplanned Discrete events in the AOI — a fire, a ship, an alert — not a commanded imaging plan. Coverage TOTAL is “we saw it.” Latency is “the alert (or chip) is on the ground.”
| Setup | Typical choice |
|---|---|
| Coverage | Discrete — Random N in AOI or Poisson in AOI (arrivals over time) |
| Latency payload | Fixed payload size for a short alert; or rate × window if you also take an image chip |
| Network | Detecting spacecraft → dump facilities |
| COMM | Same MMFU / downlink story as EO; payloads are usually smaller |
Unlike radar tasking, there is no origin facility on the Coverage side — only TOTAL. Unlike IoT, each fire is a one-shot event, not a standing client.
Discrete payload fields¶
Shown when the linked Coverage is Discrete — EO imaging, radar tasking, and detection share this panel. Tasking only changes when Coverage marks TOTAL; it does not change how Latency sizes the message.
| Field (editor) | Meaning |
|---|---|
| Model | Acquirer rate × acquisition window or Fixed payload size. Always both; the story only suggests a typical pick. |
| Acquisition duration [s] | Rate × window only. Bytes = acquirer Acquisition data rate × this duration / 8. |
| Payload size + unit | Fixed-size only (B / KB / MB / GB). Rate is ignored for message size. |
| Show message flow | Draw hops in Design |
| Visual hop duration [s] | Playback only — not the physics clock |
Acquirer rate × acquisition window is the default. Switch to Fixed payload size when the product is a known file rather than “rate times how long the look lasted.”
After Run¶
Dashboard: select this Latency analysis — end-to-end latency, MMFU fill, delay CDFs, unattended-time histogram (Static session).
Nothing delivers — no Coverage captures, no path to the selected facilities, empty network, or MMFU already full at start.
Overflow — MMFU capacity too small vs produce rate and dump cadence.
High delay — rare downlinks, Max. concurrent link, or processing latency. ISL relay is not in Beta 0.1.0, so you cannot shorten delay by hopping to a neighbour yet.
Stale — Coverage, the network, or COMM changed; run Latency again.