# `Sidereon.GNSS.BroadcastComparison.Stats`
[🔗](https://github.com/neilberkman/sidereon-ex/blob/main/lib/sidereon/gnss/broadcast_comparison.ex#L82)

Orbit and clock difference statistics for one satellite (or the overall set).

All values are meters except `count` (the number of compared epochs).
`orbit_3d_rms_m` / `orbit_3d_max_m` are the Euclidean position-difference
magnitudes. `radial_*`, `along_*`, `cross_*` are the RMS and max of the signed
RAC components of the position difference (`broadcast - precise`).
`clock_rms_m` / `clock_max_m` are the **raw** satellite-clock differences
scaled to meters by the speed of light; they are `nil` when neither product
carried a clock estimate for any compared epoch. They are dominated by the
per-epoch common reference-clock offset between the two products' time
datums. `clock_datum_removed_rms_m` / `clock_datum_removed_max_m` are the
same differences after that per-epoch common offset (the median over all
satellites at the epoch) is removed, the actual signal-in-space clock error
(the SISRE clock term), typically several times smaller than the raw value.

# `t`

```elixir
@type t() :: %Sidereon.GNSS.BroadcastComparison.Stats{
  along_max_m: float() | nil,
  along_rms_m: float() | nil,
  clock_datum_removed_max_m: float() | nil,
  clock_datum_removed_rms_m: float() | nil,
  clock_max_m: float() | nil,
  clock_rms_m: float() | nil,
  count: non_neg_integer(),
  cross_max_m: float() | nil,
  cross_rms_m: float() | nil,
  orbit_3d_max_m: float() | nil,
  orbit_3d_rms_m: float() | nil,
  radial_max_m: float() | nil,
  radial_rms_m: float() | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
