# A decision, worked

> A real routing decision with real numbers: the candidates, why each was kept or dropped, and what it saved.

This example is produced by the engine’s own router evaluation: the router’s code, unchanged, routing every question of the three golden sets that ship with the engine (insurance claims, market intelligence and solution architecture). The evaluation calls no model; it is the router’s arithmetic over a price card and the published evidence. Every figure below came out of a run of it on 1 November 2026, on engine 0.37.0.

## The setup

**The card**: three Claude models on Amazon Bedrock’s EU cross-region profiles, plus the US profile of one of them, at the rates Atlantic’s published evidence was priced on (AWS’s published Bedrock on-demand rates for EU cross-region profiles, 31 October 2026):

| Model                            | Input, per million tokens | Output, per million tokens |
| -------------------------------- | ------------------------- | -------------------------- |
| `eu.anthropic.claude-haiku-4-5`  | $1.10                     | $5.50                      |
| `eu.anthropic.claude-sonnet-4-5` | $3.30                     | $16.50                     |
| `eu.anthropic.claude-opus-4-6`   | $5.50                     | $27.50                     |
| `us.anthropic.claude-haiku-4-5`  | on the card               | on the card                |

The card states no cache-read rate, so cached input is priced at the input rate, as the gateway does for any card without one.

**The policy**: all four allowed for the call’s tier and data class; router on; residency `eu`; default bars.

**The agent’s own model**: Opus 4.6, the most capable model allowed. This is the conservative choice the router has to beat on evidence.

**The work**: 212 questions, every one retrieval question-answering (`retrieval_qa`, bar 0.90). Each is sized by its kind: 6,000 tokens of passages for a lookup, 14,000 for a multi-hop question, 9,000 otherwise, with 70% of each read from the cache.

**The evidence**: Atlantic’s published figures, version 2.0.0, measured on 31 October 2026. On retrieval question-answering, all three EU models scored 1.00 (three tasks of three).

## One question

A lookup: 6,000 tokens of passages, plus 4,200 tokens read from the cache.

| Candidate                        | Kept?      | Why                                      | Quality | Projected output tokens | Expected cost, estimated | p95 latency |
| -------------------------------- | ---------- | ---------------------------------------- | ------- | ----------------------- | ------------------------ | ----------- |
| `eu.anthropic.claude-haiku-4-5`  | **Chosen** | Cheapest expected cost at the bar        | 1.00    | 42                      | **$0.011451**            | 667 ms      |
| `eu.anthropic.claude-sonnet-4-5` | Kept       | Meets the bar; costs more                | 1.00    | 57                      | $0.034601                | 2,211 ms    |
| `eu.anthropic.claude-opus-4-6`   | Kept       | Meets the bar; costs more. The top model | 1.00    | 55                      | $0.057613                | 1,991 ms    |
| `us.anthropic.claude-haiku-4-5`  | Dropped    | `residency`: not `eu`                    | —       | —                       | not priced               | —           |

Two things to notice:

- **The US profile is dropped before it is priced.** It is the same model family. It is not a candidate, because the policy requires `eu`. Residency is a hard rule, not a cost.
- **Each model’s projected output differs** (42, 57 and 55 tokens), because each model’s own measured verbosity on this class is used, not a common figure.

The decision in one line, as the router writes it:

> eu.anthropic.claude-haiku-4-5 was chosen for retrieval_qa: the cheapest model whose evidence meets the 90% bar, an estimated $0.046161 less than eu.anthropic.claude-opus-4-6 on this call.

## All 212 questions

|                                        |                                                                                                       |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Questions routed                       | 212 of 212; no fallbacks                                                                              |
| Chosen                                 | `eu.anthropic.claude-haiku-4-5`, for every question                                                   |
| Measured quality of the chosen model   | 1.00, against a bar of 0.90                                                                           |
| Estimated cost on Opus 4.6 for all 212 | $17.50                                                                                                |
| Estimated cost as routed               | $3.48                                                                                                 |
| **Estimated saving**                   | **$14.01**, or **$0.066 a question**                                                                  |
| The evaluation’s three claims          | All held: every choice met its bar; no fallback left the agent’s model; no forbidden model was chosen |

Opus 4.6 and Sonnet 4.5 were kept as candidates for every question, and cost more. The US profile of Haiku 4.5 was dropped for residency every time.

## What this does and does not show

It shows that the router’s **choices** follow its evidence on real questions of real shapes and sizes, that it never chose a model the policy forbids, and what those choices would save on this card.

It does not show that Haiku 4.5 answers these 212 questions as well as Opus 4.6 would. The evidence behind the choice is the benchmark’s: three retrieval tasks, on which every model scored 1.00. At that size, one task moves a model across the bar. Treat the saving as the router’s estimate on the evidence it holds, and make the evidence yours: run [the Token Value Benchmark](/cost/token-value-benchmark/) on your own retrieval tasks, and the router decides on those.

The dollar figure depends on the card. Your deployment’s card, with its own cache-read rate and your own models, will give a different one. That is why this page states its card.

## Reproduce it

On your own policy, through your certified forward-deployed engineer today; see [What to do about it](/cost/levers/#model-routing-the-cheapest-model-that-meets-the-bar). For decisions your own agents asked for, `GET /api/v1/routing/decisions/{id}` returns each one with its candidate table, exactly as above.

Source: https://docs.atlanticagenticlabs.com/router/decision/
