
# 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 in the request body (`route.region`) or via a virtual
  key policy (recommended for production).
- The route fails closed: if no provider in the requested region is
  available, 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 a `provider` field with the upstream that
served it, a `region` field with the region it served from, and a
`generation_id` that can be looked up later through
[`GET /generation/{id}`](../api-reference/overview). 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 IEA 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 `lowrouter/auto`, then re-send it pinned to a
  specific provider/region. Compare `provider`, `region`, and `eco`
  fields in the responses.
- Open the corresponding entries on the dashboard and confirm the
  numbers match.
- Use [`GET /generation/{id}`](../api-reference/overview) to fetch the
  full record after the fact. The numbers are stable.

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