
# Sovereignty and transparency

Two of the practical reasons teams move from a single LLM provider to a
gateway are sovereignty (where the request goes) and transparency
(what's actually happening). Both deserve concrete answers, not
adjectives.

## Sovereignty

LowRouter's control plane is operated from the European Union by
Carbonifer SAS. The data plane — the providers that actually run the
inference — covers multiple regions: EU (Mistral, Anthropic via EU
endpoints, Bedrock EU), US (OpenAI, Anthropic via US endpoints,
Bedrock US), and a growing set of regional Vertex AI deployments.

When you send a request without a region preference, the router picks
based on availability and the carbon-intensity heuristic described in
[provider routing](../models/routing). The chosen region is reported in
the response.

When you need data residency:

- Pin a region by encoding it in the model ID — append a UN/LOCODE as
  the last segment, e.g. `vertex/anthropic/claude-opus-4.6/sg-sin`.
- Region resolution fails closed: if the model isn't served in the
  requested region, the request returns an error rather than silently
  falling back to another region.

We do not run inference on user prompts inside our own infrastructure
beyond what is required to forward and account for them. Logs are
documented in [usage accounting](../guides/usage-accounting).

## Transparency

Every API response includes, in its `lowrouter_metadata` block, a
`provider` field with the upstream that served it and a `region` field
with the region it served from, alongside an `X-Request-ID` header you
can correlate against your own logs. The dashboard shows the same data
per request, per day, and aggregated per model.

The carbon and energy numbers shown on the dashboard are produced by
the formula in [methodology](../sustainable-ai/methodology). The
formula's coefficients, the model parameter counts we use, and the
grid-intensity values we apply are documented and dated. When a value
changes — for instance, when a new grid-intensity dataset replaces an
older one —
the change is reflected in the dashboard with the date it took effect.

The platform is operated by a small team. There is no army of
unaccounted-for logging or analytics services. The third-party services
involved are listed in the
[privacy policy](/privacy).

## How to verify

- Read [methodology](../sustainable-ai/methodology) and audit the
  formula.
- Send a request with an `auto/<creator>/<model>` ID, then re-send it pinned to a
  specific provider/region via the model ID. Compare the `provider`,
  `region`, and eco fields in the `lowrouter_metadata` block.
- Open the corresponding entries on the dashboard and confirm the
  numbers match.

If something doesn't reconcile, that's a bug, not a feature — please
[file an issue](https://github.com/carbonifer/lowrouter/issues).
