CLIENT: Skjoldvik Teleport AS🇳🇴Norway

Groundlink - Ground Station Scheduling Platform from Orbit Data to Invoice

Ground Station Operations Platform for a Norwegian Teleport

Designed and built a clickable scheduling and operations platform for a Tromsø ground-station-as-a-service operator: predict and book satellite passes across nine antenna sites, resolve conflicts by priority tier and contract, block any pass a site licence does not cover, follow every pass live through antenna telemetry and trace it through to delivered data and billable minutes.

Scope of Work
Product design, UI build and clickable demo
Industry
Space / Ground Station Scheduling
Enterprise
Compliance & Certifications
Nkom earth station licencesITU Radio RegulationsGDPRPersonopplysningslovenNorwegian export controlsEARITARSatDSiGUS commercial remote sensing licences

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, live operations, the schedule timeline, conflicts and pass detail with 5 tabs. Every one of the 381 demo passes opens its own pass page.

10 Checks
Blocking rules per pass

Antenna capability, site licence coverage, uplink EIRP limit, customer space licence, orbit data age, maintenance, antenna occupancy with 3 min setup and 2 min teardown, contract, export control declaration and X-band rain risk.

4 Tiers
Conflict precedence encoded

Reserved over Priority over Standard over Opportunistic, then the customer furthest below contracted minutes, then the earliest request. Published and locked passes are never moved automatically.

381 Passes
Realistic demo data

15 S-band and X-band antennas at 9 sites, 10 customers, 17 satellites, 8 booking requests and 7 conflicts, 4 of them waiting for a decision.

The Problem

Skjoldvik grew from two antennas in Tromsø to nine sites on three continents faster than its tools. Passes were planned in a spreadsheet per site, orbit data was pasted in by hand, two customers were once booked on the same antenna at the same minute, spectrum licence limits lived in PDF files, failed passes turned into email arguments over credits, and month-end invoices took a week.

Our Solution

Groundlink takes a pass from orbit data to invoice: it predicts passes over every antenna, takes booking requests, resolves conflicts by priority tier and contract, respects maintenance windows and licence limits, follows each pass live, delivers recorded data with checksums, records anomalies and credits, and bills per minute. It points the antenna and receives the downlink; it never commands a customer's spacecraft.

The Challenge: One Network, Many Rulebooks

About 30 small-satellite operators rent Skjoldvik's antenna time by the minute, across high-latitude sites for polar orbits and equatorial sites for low-inclination orbits. Each pass has to fit the antenna, the site's licence, the customer's own licence and contract, and the conditions on the data itself.

Nine Sites, Nine Spreadsheets

Each site planner saw only their own sheet, so nobody could see the network as one schedule. Two customers were booked on the same antenna at the same minute, and setup and teardown time between passes was nobody's rule.

Licence Limits Locked in PDFs

Transmitting earth stations need an authorisation from the national telecom authority, Nkom in Norway, and some sites need a licence even to receive. Licences list frequencies, directions, power limits and satellites, and a pass for a satellite not yet on a site's licence was nearly scheduled.

Orbit Data That Goes Stale

Orbits arrive as TLE sets from Space-Track or CelesTrak, or as CCSDS OEM ephemerides uploaded by customers. Pasted in by hand, they aged without anyone noticing, and stale orbit data makes antenna pointing drift during a pass.

Failures Argued After the Fact

When a pass failed, nobody could say quickly whether it was the station, the weather or the satellite, so credits were argued over email. Invoices were rebuilt from antenna logs at month end, and export control and data licence conditions sat outside the delivery process.

Our Approach: From Station Rules to a Clickable Console

01

Spec and Rules Research

Mapped 11 roles from scheduler and site engineer to licensing officer, finance and customer admin, 44 screens (37 operator console and 7 customer portal) and the data model for sites, antennas, versioned site licences, satellites, orbit products, predictions, booking requests, passes, conflicts, antenna telemetry, deliveries, anomalies, credits, contracts and invoices. Wrote down the rules the design follows: per-site spectrum licensing, ITU coordination recorded as information only, customer space licences, GDPR and the Norwegian Personal Data Act, export controls including EAR and ITAR, and remote sensing data licensing such as SatDSiG.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production dashboard kit: the dashboard with KPIs, a next 6 hours timeline per antenna and utilisation by site split by band; live operations with lock lights, C/N0, frame counts and an antenna telemetry panel; the schedule timeline with setup and teardown caps, hatched maintenance and red conflict outlines; conflicts with the competing passes side by side; and pass detail with a sky plot, telemetry, SHA-256 checksums and billing. All actions run on local state against a live UTC clock.

03

What a Production Build Adds

Orbit ingest from Space-Track and CelesTrak, one adapter per site for antenna control units and modems (for example Kratos or Safran Data Systems equipment), delivery to Amazon S3, Google Cloud Storage or Azure Blob with credentials in HashiCorp Vault or AWS Secrets Manager, MET Norway weather forecasts and NOAA space weather alerts, Tripletex or Fiken accounting, Stripe, PagerDuty and Postmark. Staff auth by role and site scope, a portal sign-in with a second factor, an append-only audit log, and the remaining 32 operator screens and 7 portal screens.

Why It Works: Rules That Block, Not Warn

A Pass the Licence Does Not Cover Cannot Exist

Licence coverage, the customer's licence expiry and the other blocking rules run at scheduling time and again at the pre-pass check 10 minutes before AOS. Moving a pass only succeeds onto an antenna where every rule passes; any other target is refused with the reason.

Conflicts Explain Themselves

Each conflict shows the engine's proposal in words, such as Priority beats Opportunistic, with each customer's remaining contracted minutes. A published pass is never dropped by the engine, and an override needs a reason that goes to the audit log.

One Pass From Prediction to Invoice

Pass detail holds the predicted track over the site's horizon mask, the orbit data used and its age, commanded against actual pointing, signal and lock states, station events, delivered files with checksums, and billable minutes at the contract rate with a 5-minute minimum, so a failure can be traced to its cause.

Built for the Operations Room

Every time is in UTC with the site's local time on hover, the next pass and its countdown sit in the top bar, and live operations shows pre-pass checks for orbit data, antenna health, licence, weather and delivery target before each pass starts. Uplink windows show the station transmitter against its licensed EIRP limit; telecommand content never touches Groundlink.

Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab