Data trust
Occupancy clusters on Space-Track TLE longitude when quality gates pass, otherwise the UCS catalog. The registry table is one row per slug. Operator display is a curated alias map over UCS/FCC strings; raw source strings stay inspectable. FCC rows come from the committed SSAL workbook. Congestion v0 and implied fair value are labeled models on the Slot Terminal, not recorded facts. Fair value stays behind one disclosure and off the registry until Show fair value. ITU filings are not in this product. ITU Space Explorer is the current ITU source. SNS Online shut down in January 2025. The flag is not_in_product (Unrecorded in Clarke). The simulated capacity book is not on Slot Terminal.
Legend: V verified from a named public source · M modeled / heuristic, labeled · S stub or simulated. Curated dollar overlays are class M hand estimates, secondary to the model range.
Clarke is the registry for orbital infrastructure: a public-data registry plus labeled heuristic model. This page is the audit of what a paying operator can trust on Slot Terminal and /api/v1/agents/slots/{slug}.
Clarke v0 is a public-registry view (TLE-primary occupancy, UCS identity, FCC SSAL licenses) plus a transparent heuristic implied-value range. It is not a live exchange, not an ITU deed, and not an appraisal. Curated dollar overlays are hand-checked opinions and do not replace the model. TLE longitude is a tracked-object location, never an FCC assignment or ITU filing.
Product chrome (Sep 2026 design pass)
Registry and Slot Terminal are data surfaces. First screens answer who is on station, rights, and freshness. Dollars are secondary.
| Surface | Rule |
|---|---|
| Registry columns | Slot, status, occupancy, and FCC are the default columns. Congestion is not a column. Fair value stays off until Show fair value. Congestion v0 and fair value are labeled models on the human Slot Terminal. They are not recorded facts. |
| Slot Terminal fold | Title, trust line, and occupancy share the first viewport. Recorded FCC rights and freshness follow. Congestion v0 is on the page as a labeled model. Implied fair value, nearest comps, Unlock Pro, and the model path sit behind one closed Labeled model disclosure. |
| Trust bar | FCC stale and position disagreement share one compact line (FCC SSAL stale · Position disagreement · Details) with expand-in-place. Not stacked orange banners. |
| Unlock Pro | Driver-panel gate only. Verified occupancy is never blurred or paywalled. |
| Nav | Registry · Index · Docs. Terminal opens from a registry row (sample: /orbital/101w). |
| Wallpaper | Solid near-black + hairline borders on /orbital, /orbital/[slug], and /docs. Earth imagery stays off those surfaces. |
Default Terminal quarantine
The default Slot Terminal screen is occupancy + recorded FCC + ingest freshness, plus labeled models: congestion v0 on the page, implied fair value behind one disclosure. Simulated trading UI is not the default.
| Surface | Default Terminal | Why |
|---|---|---|
| Simulated capacity book | Off the Terminal. Not rendered on the slot page. Method note only (this page and Valuation v0). API may still return bidAsk for inspection. | Function of v0 midpoint + congestion. There is no public GEO bid/ask feed. |
| ITU filing layer | Unrecorded. Default Terminal shows a thin chip only: Unrecorded in Clarke (ituRecorded: not_in_product). Experimental keeps an empty rights-chain stub. | ITU filings are not in this product. ITU Space Explorer is the current ITU source. SNS Online shut down in January 2025. |
| Sub-lease / capacity-lease layer | Quarantined stub. Same Experimental disclosure. | No public sub-lease registry. Must not look like a named lessee. |
| Seeded valuation sparkline | Inside Labeled model. Model path, labeled model backfill, not trades. Not on the default fold. | terminal.db is a deterministic v0 path, not observed trades. |
Curated $NNN M+ overlay | Visible, secondary. Class M “hand estimate / curated opinion,” under the model range, not a competing headline. Valuation basis is always model. | Overlay can diverge ~2× from v0. V/M/S discipline. |
| Recorded FCC rows + TLE-primary occupancy | Primary. | Named public sources. |
Pro API still returns bidAsk / full rightsChain / history so agents can inspect the stubs; the HTML default view does not present them as filled primary panels.
GEO Slot Index #1 (/index) is distribution content from the same occupancy / FCC fields: enter/leave vs UCS, dispute flips, license-table mismatches. It does not publish prices.
The machine-readable Slot Index delta feed is GET /api/v1/agents/deltas (see Agent API). It diffs stored registry snapshots. It does not turn the Index method note, or satellite_relocated events, into a weekly tape. A satellite_relocated row is a current station-kept payload whose longitude change exceeds the drift its mean motion predicts. Debris and rocket bodies are not in that list.
Tests: src/lib/terminal-default.test.ts asserts default primary markup does not contain a filled ITU filing panel (data-rights-layer="itu"). The thin Unrecorded chip is allowed. src/lib/operator-identity.test.ts covers alias resolution.
Ranked issues
| Rank | Severity | Issue | Status |
|---|---|---|---|
| 1 | High | Remaining-life factor said “no usable lifetime data” on every GEO row. UCS stores 590/590 launch dates as M/D/YY (11/14/10); the parser required year > 1950, so expectedLifetimeYears was ignored. Terminal also printed launch years as 10 / 95 / 6. UCS-derived slot.launched was 13 for MUOS-2. | Fixed. Shared parseUcsLaunchYear; remaining-life now uses design-life remaining. Re-seed snapshots after the parser fix. |
| 2 | High | Operator contradiction at 101°W: registry/API slot.operator=SES, Terminal header = DirecTV (majority of ±0.4° window), congestion dominant = DirecTV (±2°). Occupancy metric implied DirecTV holds all 7 sats. Rights chain named Ligado DIP as the licensee because FCC rows are ordered west-to-east. UCS/FCC strings also disagree (DirecTV vs AT&T, LightSquared vs Ligado, SES S.A. vs SES). | Fixed. Header uses registry/curated operator; occupancy mix is explicit; rights chain lists all FCC licensees. Alias map canonicalizes display/grouping; raw strings stay on tooltip/API. |
| 3 | High | “Nearest comps” were other longitudes inside the same occupancy window (101.08°W, 100.81°W, …), each re-bundling the same satellites with near-identical model values. | Fixed. Comps exclude ±0.4°. |
| 4 | High | Seeded valuation history shown as “persisted snapshot.” terminal.db only stores a deterministic v0 path. FCC provenance used the latest any-source ingest, so a 21-day-old SSAL looked like “Sep 15.” | Fixed. History labeled backfill; FCC/UCS asOf is per-source. |
| 5 | High | Live Space-Track TLEs (epoch 2026-09-15) disagree with UCS GEO longitude by >2° for 204/512 matched objects and >10° for 168/512. Ingest only rewrote longitude_geo = 0 placeholders, so occupancy/congestion/v0 clustered on stale UCS longs (MUOS-2 at 100.1°W vs TLE 172.0°E). | Fixed. Occupancy is TLE-primary (see Position authority). UCS catalog longitude is preserved and shown. |
| 6 | Medium | BIU label “Operating (non-US admin)” on US DoD birds with no FCC row (MUOS-2). | Fixed. Wording is “no FCC market-access row.” |
| 7 | Medium | Occupancy grouping 0.3° (agents dossier default) vs 0.4° (Terminal / congestion). | Fixed. Default co-location window is 0.4°. |
| 8 | Medium | Agents list valuation omitted satellite lifetimes, so remaining life stayed 1.0 even after a parser fix. | Fixed. listSlots / explorer / seed pass the occupancy window. |
| 9 | Won’t invent | Curated overlay ($350M+ at 101°W, $400M+ at 19.2°E) can sit far from v0. The cutover off UCS clustering moved the model. The live Terminal is the current v0. | Overlay is class M, secondary to the model; basis is always model. No new prices invented. |
| 10 | Open | UCS ingest last_run is the parse clock. The file vintage is the latest GEO launch in the snapshot, not that clock. Terminal shows file vintage, TLE epoch, and FCC workbook as-of separately. FCC SSAL workbook as-of is the committed sheet name (Updated 27 September 2026). The stale flag is true only when that date is older than 45 days. ITU filings are not in this product. ITU Space Explorer is the current ITU source. SNS Online shut down in January 2025. NORAD/COSPAR omitted from UI; API still returns them. | Vintage fields + compact Trust bar (FCC stale / position disagreement expand-in-place); monthly ingest:fcc re-parse documented. Same-slug duplicate rows are collapsed (see Registry row identity). |
| 11 | High (UI) | Simulated book, ITU/sub-lease stubs, and seeded sparkline still sat on the default Terminal as filled panels. | Fixed. Simulated book is docs-only. Implied value, comps, and the model path are behind one Labeled model disclosure. ITU/sub-lease stubs stay collapsed under Experimental. |
Position authority (TLE-primary occupancy)
Dual-track. satellites.longitude_geo remains the UCS catalog longitude (wrap-normalized only; 0° placeholders are no longer silently overwritten). Occupancy, congestion, comps, and valuation v0 cluster on a chosen occupancy longitude:
Prefer Space-Track / Clarke TLE sub-satellite longitude when all of these hold:
Object is a satcat PAYLOAD (or satcat type is missing — UCS GEO identity is kept). Explicit
DEBRIS,ROCKET BODY, andUNKNOWNare not moved.
Not decayed (
decay_dateempty) and satcatcurrentis notN.TLE epoch was within 30 days of TLE ingest (the Space-Track query already filters
EPOCH > now-30; usability is relative to ingest, so a shipped snapshot does not silently revert to UCS as the wall clock moves).Eccentricity ≤ 0.01 and mean motion in [0.98, 1.02] rev/day when those elements parse (same gates as the GEO TLE feed).
Mean motion is inside the station-kept band [1.0013, 1.0041] rev/day. Outside that band the object is drifting (about 0.5 degrees per day or more). It gets no occupancy longitude and no UCS fallback.
SGP4 at the TLE epoch (
tsince=0) returns a finite longitude in (−180, 180].Else fall back to UCS longitude unless that value is the
0°placeholder (classified/undisclosed pile-up), and unless a stored mean motion says the object is drifting. No TLE and UCS0→ occupancynull(do not invent a Prime-Meridian station). The three disposal-orbit objects the old 0.99 query never stored (NORAD 23553 MSAT-2, 26608 Intelsat 1R, 20776 Skynet 4C) are filled from CelesTrak GP element sets fetched 17 October 2026, and only whenspacetrack_tleshas no row. Space-Track was not re-queried on that date.Never interpolate UCS and TLE. Never present TLE longitude as an FCC assignment or ITU filing location. FCC matching stays on the authorization’s own longitude (±0.6°).
Flag
positionDisputedwhen both longs exist and circular \|UCS−TLE\| > 2° (tunablePOSITION_DISPUTE_DEG).A UCS ghost is a catalog longitude inside the slot window whose occupancy longitude is outside that window and whose \|UCS−TLE\| exceeds 2°. Agreement within 2°, with the track just outside the ±0.4° co-location cut, is the same station-keeping neighborhood, not a stale catalog hit.
Occupancy / congestion window remains ±0.4° co-location and ±2° neighborhood, using circular longitude difference. The occupancy window is 0.4 degrees on either side of the slot longitude. A satellite at 0.5 degrees is outside it. On the stored Space-Track TLE, MUOS-1 (NORAD 38093) is 0.42 degrees from 101W. A CelesTrak element set fetched 17 October 2026 places it 0.505 degrees from 101W. Both are outside the window, so MUOS-1 is not an occupant of 101W.
A servicing vehicle that shares an element set with a host payload is flagged and left out of the operator mix.
satCountstill includes the row. MEV-2 shares an element set with Intelsat 10-02. Docking is inferred from that match. A separate docking notice was not checked.
Read-time freshness is separate from the 30 day ingest gate. sourceVintage.tleStale and each occupancy row's tleStale are true when the TLE that supplied occupancy has an epoch older than 45 days (tleStaleAfterDays). A missing epoch is not stale. A UCS fallback row is not given a catalog date as a TLE epoch, and its tleStale stays false. The flag does not move occupancy back to UCS. A shipped snapshot still does not silently revert to UCS as the wall clock moves.
Ingest (npm run ingest:spacetrack, or npm run apply:positions against an existing TLE table) writes audit columns (longitude_ucs, longitude_tle, longitude_occupancy, position_source, position_delta_deg, position_disputed, tle_epoch, …) without replacing the UCS catalog field. Live clustering recomputes from the TLE table at query time so occupancy cannot drift from the audit trail.
Registry row identity
The registry table is one row per slug. Same-slug duplicate rows are shipped as a single row.
UCS satellites outside every curated slot's ±0.4° window are grouped by lonToSlug (occupancy longitude rounded to 0.1°). Satellites that share that slug are one row, not one row per satellite. Different slugs stay separate rows even when they sit inside ±0.4° of each other. A satellite inside a curated slot's ±0.4° window is occupancy on that curated row, not a second table row.
The registry operator is the canonical name with the most satellites in the slug (tie: alphabetical canonical name). Source strings stay on operatorRaw. A UCS operator string that equals that satellite's launch vehicle is not treated as a GEO operator and is not replaced with a guessed owner.
UCS sometimes stores one country-free defense label (Ministry of Defense, Defense Ministry, Armed Forces) for more than one nation. Clarke appends the owner country on display so those rows are not one operator. Unknown US agency stays unknown. Federal Government (Reserved) is not mapped to US DoD.
Post-2023 occupancy and empty licenses
The UCS file vintage is the latest GEO launch in that snapshot (2023-04-07 on the current database). Station-kept GEO payloads launched after that date are missing from a UCS-only occupancy count. Clarke adds them when Space-Track has a PAYLOAD row, the satcat period is 1434 to 1438 minutes, the object is not already in UCS, and the TLE passes the occupancy gates. On this snapshot that set is about 73 satellites. Operator is filled only from a single matching FCC licensee. A country code is not an operator.
An FCC-only registry row requires a real authorization and no satellite or curated slot inside the 0.6 degree license window. Federal Government (Reserved) rows (no spacecraft, public-notice reservations) are not registry rows and are not shown as licensees. A license next to an occupied slot is not a second empty slot. The old 0.4 degree cut plus those reservation rows overstated the empty-licensed set (about 15 rows).
Curated status does not override evidence. 45W (Intelsat 14, FCC S2785) and 169E (Horizons 3e, FCC S2947) are On station. A squatted label remains only when a satellite is in the window and Clarke has no FCC row.
A detail URL can still open for an occupancy slug that the table folded into a nearby row. The label on that URL is the nominal longitude of the slug. The page can still show satellites from the shared ±0.4° window. It is not a second registry row. The live registry size is the positions and on-station line on /docs and /orbital.
Before / after (Space-Track TLE epoch 2026-09-15, apply 2026-09-15)
This table is the cutover snapshot. It is not the live registry and not the live Slot Terminal. Later TLE ingests move occupancy counts, congestion v0, and fair value. Those live figures are not reprinted here, because a hardcoded count goes stale on the next refresh.
| Before (UCS clustering) | Cutover snapshot (TLE-primary) | |
|---|---|---|
| UCS GEO satellites | 590 | 590 |
| UCS∩TLE longs | 512 | 512 (513 TLE-primary incl. UCS-null / 0° cases) |
| |Δ| > 2° / > 10° | 204 / 168 — hidden (occupancy still UCS) | 204 / 168 — flagged on satellite + slot banner |
| Occupancy source | UCS longitude_geo (+ 0° TLE rewrite only) | 513 TLE-primary · 73 UCS fallback · 4 unknown |
| MUOS-2 (39206) | clustered at UCS 100.1°W | occupies TLE 172.04°E, positionDisputed, Δ 87.9° |
| SES-1 (36516) | 101°W | still 101°W (TLE −100.98, Δ 0.02°, not disputed) |
| 101°W ±0.4° | 7 (DirecTV-8/9S, SES-14, SES-1, AT&T T16, SkyTerra 1, MSAT 2) | 5 (SES-1, AT&T T16, SkyTerra 1, MSAT 2, JCSat 2A whose TLE is −100.90; UCS listed JCSat 2A at 154°E). DirecTV-8 TLE 119.0°W, DirecTV-9S TLE 149.2°W, SES-14 TLE 47.5°W leave the window and are UCS ghosts on the 101°W banner. |
| 101°W congestion / v0 | 100 / $228M (remaining-life fix, UCS occupancy) | 80 / $198M ($155–242M), 5 co-located, history re-seeded as backfill |
Spot checks
Occupancy window is ±0.4° TLE-primary. Satellite counts, congestion v0, and fair value move when TLEs refresh, so this table does not print them. Open the Slot Terminal for the live labeled models.
| Slot | Registry operator | What holds |
|---|---|---|
101°W (101w) | SES (curated) | Occupancy is the TLE-primary window, not the old UCS cluster. A UCS ghost is a bird whose catalog longitude is still near the slot while TLE occupancy is elsewhere (DirecTV-8, DirecTV-9S, SES-14 are the standing examples). FCC rows at the license longitude are not occupancy. Curated overlay $350M+ is class M. |
19.2°E (19-2e) | SES | Astra names stay when TLE agrees with the UCS catalog. Curated overlay $400M+ is class M. |
13°E (13e) | Eutelsat | A military bird stays in the window only when its TLE is inside it. Curated overlay $250M+ is class M. |
72°E (72e) | Intelsat | The congestion majority in the ±2° neighborhood can be a different operator than the registry row. Curated overlay $160M+ is class M. |
172°E (172e) | Canonical majority on the slug | MUOS-2 occupies here while its TLE is near 172°E. That is occupancy, not an FCC assignment. The UCS catalog still says 100.1°W, and the row is positionDisputed. |
100.1°W (100-1w) | Canonical majority on the slug | MUOS-2 is not clustered here while its TLE occupancy is elsewhere. The UCS catalog can still read 100.1°W. |
163°W (163w) | FCC licensee on the empty-license row (Astranis, S3092) | FCC S3092 names ARCTURUS at 163W. The post-UCS TLE (NORAD 56371) is near 119.7E, outside the 0.6 degree license window, so the registry keeps an FCC-only row. The spacecraft is not counted as unlaunched. It is absent from this window. |
Satellite identity cross-check (do not invent)
Compared Clarke UCS + Space-Track satcat to CelesTrak SATCAT (/satcat/records.php?CATNR=). Names, COSPAR, launch dates match. Sub-satellite longitude in the last column is from Clarke’s Space-Track TLE at epoch 2026-09-15 (not CelesTrak SATCAT, which does not publish GEO longitude).
| Name (Clarke) | NORAD | COSPAR | CelesTrak name / launch | UCS lon | TLE lon (2026-09-15) |
|---|---|---|---|---|---|
| SES-1 (AMC-4R) | 36516 | 2010-016A | SES-1 / 2010-04-24 | −101 | −100.98 (matches) |
| Astra 1M | 33436 | 2008-057A | ASTRA 1M / 2008-11-05 | 19.2 | 19.34 (within 0.4°) |
| Intelsat 22 | 38098 | 2012-011A | INTELSAT 22 / 2012-03-25 | 72 | 72.07 (matches) |
| AT&T T16 | 44333 | 2019-034A | AT&T T-16 / 2019-06-20 | −101 | −100.87 (within 0.4°) |
| MUOS-2 | 39206 | 2013-036A | MUOS-2 / 2013-07-19 | −100.1 | 172.04°E (UCS stale; occupancy is TLE) |
These five NORAD IDs did not reproduce the historical UCS mis-ID problem called out on About. Terminal now shows UCS lon, TLE lon, Δ, source, and epoch. The agents slot payload returns those occupancy fields, FCC rows, dispute records, and source vintage. Treat NORAD on that payload as UCS-attributed, Space-Track-joinable, not independently verified for every row.
On that 2026-09-15 snapshot, disagreements were flagged instead of hidden, and occupancy was already TLE-primary. The live disagreement count moves with each TLE ingest and is not reprinted here.
Field trust matrix (Slot Terminal)
Legend: V = verified from a named public source in this product · M = modeled / heuristic, labeled · S = stub or simulated · B = bug or inconsistency (fixed unless marked open)
| Field | Class | Source / notes |
|---|---|---|
| Longitude label / slug | V/M | Registry slug is the curated / occupancy / FCC position. Occupancy clustering uses TLE-primary longitude, not UCS longitude_geo. TLE lon is not an FCC assignment or ITU filing. |
| UCS longitude | V | UCS catalog. Stale vs TLE for 204/512 matched GEO objects. Shown next to TLE. |
| TLE longitude / epoch | V | Space-Track TLE at ingest. Sub-satellite lon at TLE epoch (tsince=0). |
positionDisputed | M | Circular |UCS−TLE| > 2°. Trust bar chip when in-window sats disagree or UCS ghosts remain. |
| Co-located satellite names, operators, purposes | V | UCS identity. Names checked well. Operator display is class M (alias map); hover/API keeps the UCS string. |
| Operator display / grouping | M | Curated alias map (src/data/operator-aliases.ts) over UCS/FCC strings. Canonical name is shown on Registry rows, occupancy mix, congestion majority, and FCC licensee. The agent slot record has no headline operator. Canonical names are operatorMix.operator and per-satellite operator, with raw strings on operatorRaw. The satellite list still returns operatorCanonical, operatorRaw, and aliases. Not a corporate-ownership graph. Joint A/B UCS strings stay unmapped unless listed. Congestion score still counts distinct source strings so valuation is unchanged. |
| Satellite count | M | Count of GEO rows whose occupancy lon is in ±0.4°, not a unique ITU network count. |
| Launch year | V | UCS M/D/YY now parsed. Was B. |
| Remaining life | M | UCS launch + design lifetime. Not remaining license term. Was B (always missing). |
| Registry / curated operator | V/M | Hand-set for curated slots then passed through the alias map; else UCS canonicalized. Raw on operatorRaw. |
| Occupancy-window majority | V/M | Mode of UCS operators in the TLE-primary ±0.4° window, grouped by canonical name. Was shown as the operator (B, previous PR). |
| Congestion score / tier | M | Labeled model on the human Slot Terminal (congestion v0). Not a recorded fact and not a registry column. TLE-primary density ±2°, co-location ±0.4°, operator contention on raw source strings. Decayed Space-Track objects excluded; graveyard/inclined not classified. |
| Congestion dominant operator | V/M | Majority source string in ±2°, displayed under the alias map. Often a different company than the registry row (ISRO vs Intelsat at 72°E). |
| Fair value point / CI | M | Labeled model behind the Labeled model disclosure. Not a recorded fact. Registry column only after Show fair value. $30M × drivers. Not a quote. CI is a confidence spread, not a statistical interval. |
Curated $NNN M+ overlay | M | Hand-checked opinion. Secondary to v0. Not the model, not a headline. Can diverge by 2×. |
| Coverage GDP/pop | M | Longitude band heuristic (coverage-proxy.ts). Not a measured beam. |
| Spectrum bands | V/M | Curated tags only. UCS-derived rows often empty. |
| License / BIU | M | Heuristic: satellite in the occupancy window + FCC row is not ITU brought-into-use. Labeled as a Clarke hint. "FCC record, no satellite in the occupancy window" is not a count of unlaunched satellites. Do not read BIU from UCS+FCC without this label. |
| FCC table (call sign, licensee, service) | V | SSAL. Licensee display is class M (alias map); raw licensee stays in the cell tooltip and API licenseeRaw. Freshness is the FCC ingest, not “today.” Notes can mention later ICFS grants. Default Terminal primary. |
| Rights: national admin / FCC licensees | V/M | FCC when present; else inferred country. Licensee names canonicalized. Default Terminal primary. |
| Rights: ITU filing | S | ITU filings are not in this product. ITU Space Explorer is the current ITU source. SNS Online shut down in January 2025. ituRecorded is not_in_product. Thin “Unrecorded in Clarke” chip on the default Terminal. Experimental holds an empty stub. |
| Rights: sub-lease | S | No public feed. Quarantined — Experimental only. |
| Simulated capacity book | S | Function of v0 midpoint + congestion. Not rendered on Slot Terminal. Documented here only. |
| Valuation chart / 30-day history | S | Seeded model path. Inside the Labeled model disclosure (Model path), labeled model backfill. Not trades. |
Data freshness age_days | V | Ingest clock (last_run). Not file vintage. |
| File vintage / source as-of | V | UCS: latest GEO launch in snapshot. FCC: SSAL sheet “Updated …”. TLE: epoch min/max. Shown on Terminal + agents meta.data_freshness. |
| FCC stale / position disagreement | V | Workbook as-of older than 45 days, or in-window |UCS−TLE| / UCS ghosts. Compact Trust bar chips; details expand in place. Occupancy does not wait on FCC. |
| Non-commercial flag | V | UCS users without “Commercial.” |
| NORAD / COSPAR (API) | M | Stored from UCS; some historical IDs were wrong. UI still hides them. |
Claim language Clarke can use
Safe
“Normalized public GEO occupancy: Space-Track TLE longitude when the TLE passes published quality gates, otherwise the UCS catalog longitude.”
“Implied fair value v0 is a documented heuristic ($30M baseline × listed drivers), with a confidence band, not a market price.”
“Congestion is a 0–100 coordination-risk index from TLE-primary occupancy positions, not an ITU filing count.”
“Identity of named satellites can be checked against Space-Track / CelesTrak; we do not treat UCS NORAD IDs as authoritative for every row.”
“UCS vs TLE longitude disagreement is shown (Δ and
positionDisputed); TLE longitude is not an FCC or ITU assignment.”“ITU filings are not in this product.
ituRecordedisnot_in_product. ITU Space Explorer is the current ITU source. SNS Online shut down in January 2025.”“The registry table is one row per slug.”
“Congestion v0 and implied fair value are labeled models on the Slot Terminal.”
“Operator labels are a curated alias map over UCS and FCC strings; source strings remain inspectable.”
“The public agent record has no headline operator, no valuation, and no congestion score.
ituRecordedisnot_in_product.”
Do not claim
Live transponder bids, last trade, or slot appraisal.
ITU deed / brought-into-use as recorded (BIU is a Clarke hint from UCS occupancy + FCC rows, not SNS).
That the curated overlay is the model, or that history is a price index.
That the default Terminal is a live exchange (simulated book is Experimental only).
That “operator” means exclusive holder of the longitude (it does not).
That UCS
last_runtoday means 2026 ephemerides.That a TLE sub-satellite longitude is the FCC-authorized or ITU-filed location.
That the operator alias map is a live ownership or sub-lease graph.
That congestion v0 or fair value is a recorded occupancy or license fact.
That the agent payload includes a single operator, a valuation, or a congestion score.
That the Unrecorded chip names an ITU network, proves brought-into-use, or fills a filing row.
Re-ingest
Scheduled ingest.yml runs UCS, Space-Track, SEC, and the FCC workbook re-parse on the 1st of the month, then pushes data/clarke.db once. The Space-Track step applies TLE-primary audit columns. FCC reads committed data/ssal.xlsx and does not download fcc.gov. See FCC SSAL refresh. Against a DB that already has TLEs:
npm run apply:positions # audit columns; live occupancy also recomputes at query time
npm run ingest:fcc # parse data/ssal.xlsx; record workbook vintage
npm run vintages # backfill UCS / TLE / FCC vintages without re-downloading UCS
npm run seed:valuations # backfill model path (not trades) after occupancy/model changes
Space-Track credentials are required only for a live TLE refresh (npm run ingest:spacetrack), not for apply:positions or ingest:fcc.
Agent slot payload
The field list is Agent API. HTTP GET /api/v1/agents/slots and GET /api/v1/agents/slots/{slug}, and the MCP tools clarke_list_slots, clarke_get_slot, and clarke_get_terminal, return that record. clarke_get_terminal is the same JSON as clarke_get_slot.
The record includes occupancy (TLE-primary, UCS fallback), operatorIdentity (split, single, or none) and operatorMix (canonical name, count, share, raw source strings), per-satellite operators on occupancy rows, FCC rows, disputes, source vintage, and provenance. occupancyAuthority on the slot is tle-primary. Each observation's occupancyAuthority is tle, ucs, or none. There is no slot-level operator or operatorRaw. A split window has no single holder name. The human Terminal can still show its curated registry label. That label is not the agent record. Disputes are in-window TLE vs UCS disagreement plus UCS ghosts (catalog inside the window, occupancy outside, absolute UCS-TLE difference greater than 2 degrees, or no measured delta). ituRecorded is not_in_product on every slot. sourceVintage.fccStale is true when the FCC workbook as-of parses and is older than 45 days. A missing as-of is not marked stale. sourceVintage.tleStale is true when a TLE used for occupancy is older than 45 days. A UCS fallback row does not invent that epoch.
Valuation, congestion, bid/ask, comps, and dollar strings are not in the agent payload. Congestion v0 and implied fair value live only as labeled models on the human Slot Terminal. Agents must not treat them as facts. The Pro Terminal API can still return those labeled models. It is not the agent record.
Not yet shipped
ITU BR IFIC when licensed. Replace the empty stub rather than decorating it. SNS stays out of the product until then.
Daily valuation job that writes
source=model_runonly after ingest, still neversource=tradeuntil observed trades exist.A real FCC download when the agency publishes a bot-reachable file. Until then, the human replace-xlsx steps in FCC SSAL refresh.