Skip to content

Navigation Ownership Boundaries

bijux-gnss-nav owns the scientific interpretation that turns navigation messages, external products, observations, models, and corrections into a position, uncertainty estimate, integrity result, advanced-mode claim, or explicit refusal.

Navigation breadth is not permission to absorb receiver scheduling, repository discovery, command policy, or reusable signal processing. Domain parsing belongs here because encoded navigation formats carry scientific meaning; generic file location and lifecycle do not.

Place A Capability

flowchart TD
    proposal["proposed capability"]
    truth{"Does it decode or model<br/>navigation-domain truth?"}
    estimate{"Does it correct observations,<br/>estimate state, assess integrity,<br/>or govern a navigation claim?"}
    samples{"Does it schedule samples,<br/>channels, acquisition,<br/>or tracking?"}
    repository{"Does it discover files,<br/>datasets, runs, or manifests?"}

    proposal --> truth
    truth -->|yes| nav["navigation owner"]
    truth -->|no| estimate
    estimate -->|yes| nav
    estimate -->|no| samples
    samples -->|yes| receiver["receiver owner"]
    samples -->|no| repository
    repository -->|yes| infra["infrastructure owner"]
    repository -->|no| neighbor["command, signal,<br/>or core owner"]

Navigation is the right owner for:

  • decoding broadcast navigation words, pages, frames, and parity;
  • parsing and formatting navigation-domain exchange products;
  • interpreting SP3, clock, bias, and antenna products;
  • propagating broadcast or precise orbit and clock state;
  • atmosphere, antenna, bias, phase-windup, and signal-combination models;
  • position solvers, filters, weighting, integrity, and anomaly evidence;
  • PPP and RTK state, ambiguity policy, maturity, provenance, and refusal;
  • navigation-specific time rollover and reference-context handling.

Domain Parsing Versus File Discovery

flowchart LR
    location["file location,<br/>registry, or run manifest"]
    bytes["bytes or lines"]
    parser["navigation-domain parser"]
    typed["typed product<br/>with time and provenance"]
    science["orbit, correction,<br/>or estimator"]

    location --> bytes
    bytes --> parser --> typed --> science

Repository infrastructure owns the first transition when repository discovery is involved. Navigation owns the parser and every scientific interpretation after bytes or records enter the domain boundary.

A parser here must make units, timescales, reference epochs, frames, missing fields, quality flags, and rejection reasons explicit. It should not search operator directories, choose repository defaults, or write run manifests.

Receiver Boundary

Receiver and navigation can both contain state, but they own different state:

receiver execution navigation science
sample ingestion and frame timing navigation product time interpretation
acquisition and tracking channels satellite orbit and clock state
lock, degradation, fade, and reacquisition lifecycle filter, ambiguity, integrity, and solution lifecycle
observation production and runtime handoff observation correction, weighting, estimation, and refusal
stage scheduling and run budgets scientific convergence and uncertainty

The receiver handbook owns when observations are available and whether channels remain operational. Navigation owns whether those observations support a defensible solution.

Do not move a filter into receiver because receiver calls it every epoch. Do not move acquisition or tracking policy into navigation because a solution depends on their output.

Signal And Core Boundaries

Signal processing owns code families, component modulation, sample conversion, carrier relationships, replicas, and reusable DSP. Navigation may use signal identities and frequencies when forming corrections or combinations, but it does not own raw-IQ generation or tracking correlators.

Shared GNSS contracts own portable identities, units, times, observations, diagnostics, artifact envelopes, and generic solution records. Navigation owns domain-specific algorithms and state that consume or populate those records.

flowchart BT
    core["shared contracts"]
    signal["signal meaning<br/>and primitives"]
    nav["navigation science"]
    receiver["receiver execution"]
    infra["repository infrastructure"]
    command["command workflows"]

    signal --> core
    nav --> core
    nav --> signal
    receiver --> nav
    infra --> nav
    command --> nav

Dependency direction supports ownership but does not prove it. Infrastructure may call navigation validation without owning the model; receiver may hold a navigation engine without owning estimator science.

Product And Estimator Boundaries

The navigation public facade exposes format decoders, precise-product providers, corrections, orbits, models, position estimation, integrity, PPP, RTK, and explicit advanced-claim evidence. A new capability belongs in that facade only when callers can use it without depending on internal module layout.

Scientific state must carry enough context to interpret:

  • source product and provider;
  • coordinate frame and time system;
  • correction order and assumptions;
  • measurement support and exclusions;
  • uncertainty, residual, and integrity evidence;
  • convergence, ambiguity, or maturity state;
  • refusal reason when a claim cannot be supported.

Result packaging should preserve those claims without introducing repository layout or operator wording.

Command Boundary

Command workflows select a requested navigation operation, translate operator inputs into typed requests, and render results. Command defaults may choose among navigation-owned policies, but they must not duplicate formulas or silently reinterpret refusal.

If an operator flag changes an estimator threshold, the flag belongs to the command package; the typed threshold, validation, scientific effect, and tests belong here.

Reject Boundary Drift

Reject a navigation change that:

  • searches repository layouts instead of accepting an explicit product source;
  • controls receiver channel scheduling or sample buffering;
  • implements raw sample or code-generation behavior;
  • moves a generic cross-package identity into a solver module;
  • converts missing products or unsafe geometry into plausible success;
  • embeds command defaults in an estimator;
  • treats a parsed product as scientifically usable without provenance, timescale, continuity, and quality checks.

Review format changes with the format contracts, model changes with the model contracts, estimation changes with the estimation contracts, and scientific claims with the navigation test guide. The owning proof must exercise the scientific decision, not only the command that exposed it.