Skip to main content
For the complete documentation index, see llms.txt.
An opportunity is a predicted access window during which a payload’s field of view (FOV) footprint overlaps the AOI. Each opportunity is attributed to the specific payload whose FOV produced the access, shown alongside the spacecraft that carries it. The events surface lives at the bottom of the AOI Overview page; it visualises every opportunity in a 7-day window on a heatmap, and opens the selected opportunity’s full detail in a panel beneath it. Route: Visible on the Events band of the AOI Overview page once you select an AOI.

Events Surface Layout

The events surface composes a header of filters plus the Recompute and Provenance actions, a 7×24 opportunity heatmap, and the selected opportunity’s detail panel: With off-nadir opportunities switched off, the events surface shows exactly what it shows today — no off-nadir reading, no Access control, and no placeholder for either. The switch’s own on/off state is where that is expressed; no row anywhere carries a dash for being off.

7×24 Opportunity Heatmap

The heatmap spans the now…now+7d window as a density grid: 7 rows, one per day, × 24 columns, one per UTC hour — 168 cells in total. Each row is labelled with its UTC date (e.g. Jul 25); each column represents one UTC hour of the day. A cell’s shade reflects how many opportunities start in that hour — an hour with no opportunities renders as a plain, empty cell, and the shade darkens as the count rises toward the busiest hour in the current 7-day window. Click any non-empty cell to scope the view to just that day/hour bucket — the clicked cell highlights with a ring — and to select an opportunity from it (see Selecting an Opportunity below). A Show all opportunities control appears once a bucket is scoped; click it to clear the scope and return to the full 7-day window. The payload and spacecraft filters apply to the heatmap — narrowing either filter re-bins it to the matching opportunities.

Selecting an Opportunity

Clicking a heatmap cell scopes the view to that day/hour bucket and automatically selects the first opportunity in it, loading it into the detail panel below. When a bucket holds more than one opportunity, a compact preview list appears beneath the grid — one row per opportunity, each showing the spacecraft, the payload, and the UTC entry time — so you can pick a different one from the same bucket. Hovering an occupied cell shows the same preview rows in a tooltip, without needing to click first. Only one opportunity is selected at a time — picking another preview row, or clicking a different cell, swaps the selection. The Show all opportunities control (above) also clears the scope and reselects the very first opportunity across the full 7-day window. If your selected opportunity’s window closes and drops out of the forecast, the surface selects the next opportunity in its place and notes Your selected opportunity left the window — showing the next one instead. The detail panel renders beside the heatmap on viewports wider than ~768 px and beneath it on narrower viewports. When a spacecraft filter is active, an N of M shown indicator appears beneath the heatmap so you always know how many opportunities the filter is hiding.

Per-Event Detail

Selected opportunity's detail panel, showing the Off-nadir block with its one-word assessment and disclaimer above the Entry, Peak, Exit, Duration, Payload, Off-boresight, and Blinding rows

Off-nadir

Once off-nadir opportunities are switched on for this area of interest, the detail panel gains an Off-nadir group, reporting whether this opportunity’s payload pointing falls inside the payload’s declared off-nadir pointing limits — purely a statement about geometry, never a promise that the spacecraft can be tasked. See Off-nadir Opportunities for the full reading, including what each word in the assessment means for what you can do about it.
This is a geometric bound on the look angle only. It does not account for agility, attitude, power, thermal or scheduling feasibility.
An opportunity that predates off-nadir assessment shows Geometry: unknown with the reason “This opportunity predates off-nadir assessment.” — every other value on the opportunity is unchanged from before off-nadir access shipped. When no off-nadir pointing limits are on file for this payload at all, the note Off-nadir opportunities aren’t available for this payload — no slew limits are on file. sits above the opportunity list, which stays fully populated — never empty — with every row carrying the not assessable glyph. Neither the caveated nor the not assessable glyph carries any colour or emphasis — deliberately so. A red or amber treatment would read as “cleared to task” or “do not task,” a judgement this reading never makes.

Ground track

At the top of the detail panel, a mini-map draws the spacecraft’s sub-satellite ground track across the AOI for the selected opportunity — the path the spacecraft flies over the ground during the window, rendered as a densified curve in the spacecraft’s workspace colour. A muted caption beneath the map reads Ground track — where the spacecraft flies, not where the payload looks. The track is the platform’s path; the payload’s look direction is shown separately by the connector below, not by the curve itself. The opportunity inspector mini-map showing the spacecraft's sub-satellite ground track drawn as a coloured curve across the AOI, with entry, peak, and exit ticks, a direction-of-travel arrow, and a dashed connector from the peak tick to the AOI centre The track carries five annotations on the mini-map: Selecting an opportunity also adds a marker to the track, showing the spacecraft’s current sub-satellite point — the same instant named by the footprint sweep’s time readout in Payload footprint below. Drawn in the spacecraft’s workspace colour, the marker moves along the track curve as the sweep plays, always landing exactly on the point the curve already draws for that instant. Below the caption, a plain-text provenance note names the orbit source the track was propagated from. It is a trust signal — never a quality verdict. The track is drawn identically for every source; the note only tells you what kind of orbit data the curve rests on. The note is omitted entirely when no track is drawn. A track is not always available, and an unavailable track is a neutral state — never an error or a verdict on the opportunity. When the track cannot be drawn, the mini-map still renders the AOI, and a muted note reads Ground track unavailable for this opportunity. No warning style, no toast, and no error string is shown. While a fresh track is being fetched for a newly selected opportunity, the mini-map holds its prior render rather than locking the inspector behind a spinner — re-selecting an opportunity never blanks the panel. Selecting a different opportunity redraws exactly one track and re-frames the mini-map to fit the AOI together with the track and connector, so the whole geometry stays in view.

Payload footprint

Below the ground-track mini-map, a second mini-map draws the selected opportunity’s FOV footprint over the AOI, at the payload’s actual pointing. Because the footprint reflects real off-nadir pointing rather than a directly-below assumption, it can appear displaced, stretched, or angled relative to the spacecraft’s ground track — and a footprint pointed far enough off-nadir can be clipped where it would otherwise extend past the Earth’s horizon. Opening an opportunity plays this view forward automatically: a Play/Pause control (keyboard-operable) and a UTC time readout beneath the map step through the opportunity’s real, already-computed positions for each instant — never smoothed or guessed between them — and move the ground-track marker described above in step with it. If you have reduced motion enabled in your operating system, the sweep opens paused instead of playing automatically; press Play, or click an entry in Accumulated coverage below, to move through it yourself. An always-on caption beneath the map states whether the footprint covers the AOI: The caption is informational only — it is never shown in a status or severity colour. It appears only once a footprint has actually been drawn, so it is absent for the No footprint and Not yet computed states below; in rare cases where a footprint’s shape cannot be safely compared to the AOI — for example one that crosses the ±180° meridian — the caption is also omitted rather than shown as an unearned guess. When the footprint’s outline has been simplified to fit the map’s detail budget, the caption gets a trailing ~ and a muted line underneath reads Outline reduced to fit detail budget — the footprint is still correctly placed, just drawn with a coarser outline. The footprint itself renders in one of four states: Beneath the footprint, a plain-text provenance note names the orbit source behind it — the same kind of trust signal as the ground track’s own provenance note above. When the ground track is also shown for this opportunity, the two panels share that single note. When it is not, the footprint carries its own honest note instead: A small legend below the map distinguishes the two shapes: AOI — a solid swatch in the AOI’s own colour — and Footprint — a swatch in the spacecraft’s workspace colour. Selecting an opportunity adds a compact profile bar above the fields below — a single track spanning the opportunity’s entry to exit, with a tick marking the peak instant (omitted if no peak is available) and, only while the opportunity is currently under way, a second tick marking now (this tick disappears once the opportunity ends). The bar carries no numbers of its own — read the exact instants from the Entry, Peak, and Exit rows beneath it. The detail panel exposes every operator-facing field on the opportunity:

Accumulated coverage

Selecting an opportunity also adds an Accumulated coverage panel beneath the footprint sweep, showing the whole opportunity’s coverage picture in one place — complete the moment the opportunity’s data loads, not filled in gradually as the sweep plays. A small map shows the coverage polygon — the union of everywhere the footprint touched across the entire window, filled in the spacecraft’s workspace colour. Beneath it, a summary line names the overall result: Each item in the segment list reads Gap or Declined, styled distinctly from each other and from the covered area on the map above: Click any segment to jump the footprint sweep straight to that moment — the map above and the Payload footprint sweep both update to it. There is no need to click a point on the map itself; every gap or declined stretch can be jumped to from the list.

Filtering by Payload

The Payload filter appears beside the Spacecraft filter at the top of the events surface. Use it to narrow the list to events from one or more specific instruments: The payload filter’s options are sourced from the instruments that actually contributed events to the current forecast — payloads that produced no access for this AOI are not listed. The filter resets whenever you switch between AOIs.

Filtering by Access

Once off-nadir opportunities are switched on for this area of interest, an Access control appears beside Provenance. It narrows the list to exactly one of three options:

Blinding

A bright body — the Sun or the Moon — drifting into a payload’s field of view during an overflight blinds that imaging window: the body’s glare spoils the imagery the opportunity would otherwise capture. Every overflight opportunity carries a blinding verdict so you can see at a glance which opportunities are worth tasking and which are spoiled. Selected opportunity's detail panel showing the payload footprint mini-map, the Off-boresight, Slant range, GSD and Sun glint profile cards, and the Blinding card reporting Clear (Sun and Moon stay out of the field of view)

Blinding Indicator

The detail panel carries a blinding badge beside the spacecraft name, naming the verdict directly — no hover needed: A Clear opportunity is an imaging opportunity worth tasking; a Blinded opportunity is spoiled — the badge names the responsible body so you know what is spoiling the window.
A body counts as blinding only if the payload can actually see it. A body whose direction falls inside the field of view but which is hidden behind the Earth is never flagged as blinding — only an un-occulted body the payload can see is counted. This keeps an opportunity from being marked spoiled by a Sun or Moon the Earth is blocking.

Sun-Glint Angle

Sun-glint is sunlight reflecting off the target the way light reflects off a mirror — strongest over water — straight back into the payload, washing the image out in a bright hotspot. It is distinct from blinding: with glint the Sun is not inside the field of view; its reflection off the ground is what reaches the payload. Every overflight opportunity reports a sun-glint angle beside its blinding indicator, so you can weigh both of the ways sunlight can spoil an opportunity. Selected opportunity's detail panel showing a Sun glint reading of 30.6° alongside Off-boresight, Slant range, and GSD, with Blinding, Sun position, Apparent solar time, and a Day lighting band beneath

What the angle means

The sun-glint angle measures how close the opportunity’s viewing direction comes to the Sun’s mirror-reflection direction off the target, in degrees. A smaller value is closer to the mirror direction — means the payload is looking straight at the Sun’s reflected image; larger values sit further from it. The reported value is the closest approach reached over the whole opportunity — the smallest angle anywhere in the imaged part of the AOI at any moment in the window. It is not a reading taken at the opportunity’s peak-elevation moment: if any imaged part of the area lines up with the mirror direction at any point in the window, the opportunity reports that. Selecting the opportunity adds a Sun glint row to the detail panel, carrying the angle together with the instant at which that closest approach occurs (UTC, in the same format as the opportunity’s Entry and Exit). That instant is its own value — it is generally a different moment from the opportunity’s Peak, because the two locate different things.

When no angle is shown

An opportunity shows no sun-glint angle when the Sun stayed below the target’s horizon for the whole window — with the Sun below the horizon there is no specular reflection to report, so the readout reads Not applicable · Sun below the horizon instead of a number. This is a normal outcome of the geometry, not a failure or missing data. An opportunity that is only partly in darkness still reports a value, for the sun-lit part of its window.

VALAR reports it — you judge it

The sun-glint angle is information, not a verdict. VALAR reports the geometry and applies no threshold to it — you apply whatever glint limit your mission holds. VALAR does not flag, rank, or filter opportunities by sun-glint, and it stores no glint threshold anywhere. Unlike the neighbouring blinding indicator — which marks an opportunity as spoiled — the glint angle never marks an opportunity at all; it reports the number and leaves the judgement to you.
Two things to keep in mind when reading the angle:
  • A small angle is not a severity score. Real glint spreads out in a lobe around the mirror direction, and how wide that lobe is depends on how rough the surface is — over water, on the wind. So a value a few degrees away from does not mean “no glint”, and a small angle is not a claim about how bright the glint will be. Read the number as how close you are to the centre of the glint, not how bad it will be.
  • The calculation treats the target as flat. That holds well over water, where the surface really is close to flat; over hilly or mountainous ground a slope tilts the effective mirror direction, so the angle is a weaker guide there. Lean on it less over relief than over open water.

Sun at Target

Selecting an overflight opportunity adds a Sun at target group to the detail panel, reporting where the Sun sits in the sky above the target on the ground during the opportunity — the ground-lighting geometry of the opportunity. It is distinct from both the blinding indicator and the sun-glint angle: those describe the Sun relative to the payload, while Sun at target describes the Sun relative to the ground you are imaging. The AOI overflight opportunity detail with the Solar conditions group — four cards show the Sun's elevation and azimuth at the target, the Apparent solar time, and the Lighting band with the UTC instants it began and ended Every value is read at the opportunity’s own peak point — the same ground point that reports the Peak point, Peak elevation, and Azimuth at peak above — so the Sun geometry and the opportunity geometry describe the same spot. The group carries four scalar cards:

Illumination bands

The Lighting row names how lit the ground is, set by how far the Sun is above or below the target’s horizon: The Day boundary is the standard sunrise/sunset line, which allows for atmospheric refraction and the Sun’s apparent size — so an Elevation a little below can still read Day while the Sun’s upper edge is above the horizon. The band name is followed by the UTC instants it began and ended within the opportunity, in the same format as the opportunity’s Entry and Exit — for example Civil twilight 13 May 2026, 05:14:32 UTC – 13 May 2026, 05:41:07 UTC. When the whole window sits inside one continuous band with no boundary crossing — a polar day or polar night — only the band name is shown, with no start–end range. If only one side of the range is known, the missing side reads .

At the poles

At the poles the Sun has no meaningful compass bearing and no meaningful local solar time. There, the Azimuth and Apparent solar time rows read (an em-dash) rather than a fabricated value; the Elevation and Lighting rows still report normally.

Reading the apparent solar time

The Apparent solar time is apparent (true-Sun) local time — the time the Sun itself keeps, carrying the equation of time — and is accurate to within the spacecraft’s epoch (timing) uncertainty. Two things it is not:
  • It is not clock time. It does not match the target’s civil time zone or UTC; it tracks the real Sun over that exact point on the ground.
  • It is not the LTAN — the local time of the ascending node — which is an orbit-level property of the spacecraft, not a reading taken on the ground.
Read it as where the Sun is in the target’s day, not as a wall clock or an orbit parameter.

VALAR reports the lighting — you judge it

The Sun-at-target geometry is read-only reporting, exactly like the neighbouring sun-glint angle. VALAR reports the numbers and the band and applies no judgement to them: there is no sort, no filter, no threshold, no badge, and no colour on any of these values, and no illumination is ever flagged as good or bad. Every readout is plain text — you decide what lighting your mission needs.

Ground Sample Distance (GSD)

Ground sample distance (GSD) is the size on the ground that a single detector pixel spans — a practical measure of the finest detail an opportunity could resolve. A smaller GSD means finer detail. VALAR models the GSD for each opportunity from the imaging payload’s optics — its pixel pitch and focal length, set on the Spacecraft page — together with the opportunity’s viewing geometry, and reports it in the opportunity profile cards. The GSD reading is information, not a verdict. VALAR reports the modelled figure and applies no threshold to it — you weigh it against your mission’s resolution needs. VALAR does not rank, filter, sort, or flag opportunities by GSD, and the reading never marks an opportunity.

On the opportunity detail — the opportunity profile card

Selecting an opportunity shows the modelled-GSD reading in its own profile card alongside off-boresight and slant range. For an available reading it shows: Each reading also carries an explicit note of where across the area of interest it applies — the point the reading was modelled from, not the area as a whole.

Availability states

A GSD reading is not always available — and an unavailable reading is a normal state, never an error. Whatever the state, the reading block keeps the same size, so nothing on the detail panel shifts when a reading lands. The six states: Every unavailable state renders as a plain, muted note in the space the reading would occupy — never in an error or warning style. To move an opportunity from No payload optics or Only one optic set to a full reading, set both the pixel pitch and the focal length on the payload — see Payload optics on the Spacecraft page.

Filtering by Spacecraft

The Spacecraft filter is a multi-select dropdown beside the Payload filter. Its options are spacecraft that contributed at least one event to the current forecast — vehicles that produced no event for this AOI are silently excluded. The filter resets whenever you switch between AOIs. When a spacecraft filter is active, an N of M shown indicator appears beneath the heatmap.

The Recompute Action

Click Recompute to refresh the 7-day overflight schedule for the AOI across every spacecraft in the workspace. The button shows a spinner while the recompute runs, and the heatmap and the detail panel are replaced by Computing overflights… for the duration of the run. The Last computed label refreshes on success. The Recompute button is disabled when:
  • The AOI is Inactive (toggle it active again on the Overview page).
  • The AOI is Out-of-window (its validity window has not started yet or has already ended).
  • A recompute is already running.

When the AOI Changes After a Recompute

Overflight results describe the AOI as it stood when they were computed. Change what the forecast is computed from — replace the boundary, edit the geometry, or move the validity window — and those results no longer describe it. Rather than leave them on screen, the events surface replaces the heatmap and the detail panel with a named state, so you are never shown results computed for inputs that have since changed: Neither state annotates the results — the results are gone until a recompute covering the current AOI completes. Events section showing the AOI changed since last computed state in place of the heatmap and opportunity cards, with Recompute still available AOI changed since last computed is not a local hint. It is derived from the AOI itself, so it survives a page reload and reads identically for a colleague who never saw your edit. An AOI that has never been computed shows No overflights computed yet instead — there are no earlier results to disown. See Empty States for the full priority order.

Auto-Trigger on Edit

Editing any of the following AOI fields triggers an automatic recompute when you commit the edit — you do not need to click Recompute afterwards:
  • Geometry edits (any vertex, disk centre or radius, multipolygon piece), and a whole-boundary replacement from a file.
  • Validity window changes (either bound, set or cleared).
  • Flipping the AOI active toggle in the identity hero (ActiveInactive).
  • Flipping the Include off-nadir opportunities switch in the Edit AOI dialog, either direction. The switch surfaces opportunities the payload can be pointed at rather than only those directly overhead, and changing it recomputes this area of interest’s overflight forecast. It is set per area of interest, so every opportunity in this AOI shares this AOI’s setting.
An edit that leaves the geometry exactly as it was is not a change: nothing is written and no recompute runs. Identity fields — name, description, tags, colour — do not trigger a recompute. Existing opportunities are unaffected by an identity-field-only edit.

Timing Accuracy

Event timing accuracy is better than 1 second at day 1 of the forecast horizon. For spacecraft in LEO at altitudes below 500 km, the timing may drift up to a few seconds at day 7 because of atmospheric drag uncertainty. After a fresh orbit determination or a known manoeuvre, click Recompute again to anchor the schedule on the new ephemeris.

Provenance

Click Provenance to open a dialog that answers what was this forecast built from? — one block per spacecraft the forecast covers, each naming the spacecraft and listing the inputs recorded for it. The button is available once the AOI has a computed forecast. If an opportunity is selected, or the spacecraft filter is narrowed, the dialog narrows with it, so it always answers about the spacecraft you are already looking at. Provenance dialog for a spacecraft entry, showing all four recorded forecast inputs — Orbital state, Attitude, Payload, and Configuration — each reporting All current

The Recorded Inputs

Each spacecraft’s block lists up to four inputs — whichever the forecast actually recorded for that spacecraft: Not every input is recorded for every forecast. When one is missing for a spacecraft, that spacecraft’s block names it in a short footer rather than showing an empty or guessed row — so what you see is never presented as more complete than the data actually is.

Used Beside Current

Every recorded input is compared against the spacecraft’s value right now, and VALAR computes that comparison for you — you never have to work out whether two values still match: Each spacecraft’s block also carries a roll-up so you can see which spacecraft needs a second look before reading a single row: Provenance is read-only: opening the dialog computes nothing and changes nothing, and closing it returns you to the events surface exactly as you left it.

When an orbit is stale or unusable

A recompute draws each spacecraft’s overflights from a fresh orbit. A spacecraft’s orbit age is measured from its latest state vector — the position and velocity at an epoch provided through orbit determination, an OPM import, or manual entry. As that age grows it crosses two levels in turn — the degraded level, then the stale level — and a recompute treats each spacecraft individually, so an aging or unusable orbit on one spacecraft never stops the rest of the forecast. Because you trigger the recompute yourself — by clicking Recompute or committing an edit — that press is itself the deliberate action. An aging or stale spacecraft is therefore surfaced as an inline warning above the event list, naming the spacecraft, rather than holding the forecast behind a confirmation. What each affected spacecraft does: Both N values are whole days — the spacecraft’s actual orbit age and your configured stale level. To bring an excluded spacecraft back into the forecast, provide a fresher state vector for it (or raise the stale level), then click Recompute. The stale and degraded levels are workspace-wide values set once in Settings → Orbits → Orbit age (stale level default 14 days), the same values that govern the Keplerian-elements plot, the ground-track map, and ground-station passes together with AOI overflight. See Orbit age for the workspace-wide policy and the block message.
Every spacecraft affected at either level is also named in the unified orbit-data-age footer at the bottom of the page — tagged Degraded at the degraded level, or Blocked once past the stale level — so the affected spacecraft read at a glance across the whole workspace, not only on this AOI.

Empty States

When the AOI or workspace is in a state that explains why no events are displayed, the events surface replaces the heatmap and detail panel with a guidance card. Only one card is shown at a time, and the priority order is: The spacecraft filter dropdown above still lists only vehicles that actually contributed at least one opportunity to the current forecast.
  • Areas of Interest overview — the page that hosts the events surface, plus the identity hero and geometry block.
  • Off-nadir Opportunities — the per-AOI opt-in, the assessment vocabulary, and the geometric-bound disclaimer in full.
  • AOI Map — the world map view, where each AOI’s hovercard surfaces its next overflight and a compact 7-day timeline.
  • Create an AOI — define an AOI and configure its lifecycle.
  • GeoJSON file format — accepted geometry types for AOIs created from a GeoJSON document.