Routing policies
One policy id carries three budgets, one fallback and an exception mode. Every route is checked against all of it before it runs.
Policy 01
support-summariesActive
Budgets 02
Fallback 03
gannet-lnamed in advance
If no route qualifies 04
Report before execution, then run the fallback
On Dispatch-200 each budget closes one side of the route mix. The policy can only run in the window they leave open.
≥ 89/100rubric
Binds on hard tickets. Long threads and several issues in one ticket need Gannet-L. It blocks Gannet-S for them.
≤ 1.8 s p95measured
Binds on interactive work, where someone waits. It blocks the slower Gannet-L first. At 1.2 s it would block all 200.
≤ 60 Wh / 200est.
Binds on bulk batches. At 0.40 Wh est. per Gannet-L request, it caps Gannet-L at 100 of 200.
40 to 100 on Gannet-L
Budgeted lands at 50. 90/100, 1.4 s p95 and 50 Wh est., inside every edge.
Dispatch-200, 200 support ticket summaries. The energy edge follows from 0.20 and 0.40 Wh est. per request, accelerator energy only, facility overhead left out. The quality edge and the Gannet-S figures are sample values. Read the methodology
Three example policies on the same Dispatch-200 tickets. Each one shows its rules, its route split and the outcome.
support-summaries
The benchmark policy. All three budgets set, with room left on each.
| Budget | Limit | Routes that clear |
|---|---|---|
| Quality floor | ≥ 89/100 | 2 of 3 |
| Latency ceiling | ≤ 1.8 s p95 | 3 of 3 |
| Energy ceiling | ≤ 60 Wh est. | 2 of 3 |
Fallbackgannet-lnot needed on this run
Route split on Dispatch-200
Benchmark run
150Gannet-S
50Gannet-L
All Gannet-Smisses
87/100, under the floor
150 and 50 mixclears
Clears all three
All Gannet-Lmisses
80 Wh est., over
Meets the policy
90/100, 1.4 s p95, 50 Wh est. Headroom: 1 point, 0.4 s and 10 Wh est.
support-summaries-fast
Same floor and energy ceiling, a 1.2 s latency ceiling. No candidate is that fast here.
| Budget | Limit | Routes that clear |
|---|---|---|
| Quality floor | ≥ 89/100 | 2 of 3 |
| Latency ceiling | ≤ 1.2 s p95 | 0 of 3binds |
| Energy ceiling | ≤ 60 Wh est. | 2 of 3 |
Fallbacknonereturn to the caller
Route split on Dispatch-200
Nothing ran
0dispatched
200returned
All Gannet-Smisses
1.3 s p95, over
150 and 50 mixmisses
1.4 s p95, over
All Gannet-Lmisses
1.6 s p95, over
Exception before execution
Fastest candidate: Gannet-S at 1.3 s p95 (sample). No fallback is named, so every request returns unexecuted.
support-summaries-lean
A lower floor and a 40 Wh ceiling. Only sending all 200 to Gannet-S still fits.
| Budget | Limit | Routes that clear |
|---|---|---|
| Quality floor | ≥ 85/100 | 3 of 3 |
| Latency ceiling | ≤ 1.8 s p95 | 3 of 3 |
| Energy ceiling | ≤ 40 Wh est. | 1 of 3binds |
Fallbackgannet-lnot needed on this run
Route split on Dispatch-200
Illustration
200Gannet-S
0Gannet-L
All Gannet-Sclears
Clears all three
150 and 50 mixmisses
50 Wh est., over
All Gannet-Lmisses
80 Wh est., over
All 200 move to Gannet-S
40 Wh est., right at the ceiling, at a sample 87/100 and 1.3 s p95. Any Gannet-L request would go over.
Candidates are the three ways to run the batch: all Gannet-S, the 150 and 50 mix, all Gannet-L. Gannet-S alone figures are samples.
When no route qualifies, the exception comes first. Then the policy runs its named fallback, or hands the request back.
No route qualifies
Every candidate misses at least one budget.
Exception reported
Before execution, with each candidate and the budget it misses.
Does the policy name a fallback?
Yesfallback: gannet-l
The fallback runs
Marked as fallback, with its route, latency and energy estimate.
Nofallback: none
Back to the caller
Unexecuted, so the team can relax a budget or hold the rollout.
A policy names at most one fallback route. There is no chain of fallbacks to trace.
The team picks it when writing the policy. The gateway never improvises one at run time.
A fallback result counts against the policy and shows in the report, so the miss stays visible.
Policy in review
The file your gateway reads, line by line, beside the sentence the teams who pay and operate sign off.
1policy: support-summaries 2evidence: dispatch-200
Covers support ticket summaries. Its figures come from the Dispatch-200 test.
Everyone
3quality_floor: 89 # rubric, of 100
No route may score below 89 out of 100 on the fixed rubric.
Product
4latency_ceiling: 1.8s # p95, at the gateway
95 of every 100 requests finish within 1.8 seconds, measured at the gateway.
Operations
5energy_ceiling: 60Wh # per 200, est.
The batch stays under 60 Wh est. of accelerator energy. Facility overhead is not counted.
Finance
6routes: [gannet-s, gannet-l]
Only these two models are eligible. Nothing else is tried.
Platform
7fallback: gannet-l 8on_no_route: report_first
If nothing fits, the exception is reported before anything runs, then Gannet-L runs as the marked fallback.
Everyone
Sample policy file. Field names are illustrative.
Read the API integration
Bring one workload. We will run it under your policy and show you what each route delivers and consumes.