ORCHESTRATION LAYER · MODEL ROUTING

The cheapest correct path wins.

You never see it happen. Every request your software makes enters the router, gets classified in under 200µs, and leaves on the least expensive path that can actually do the job — escalated when it can't, failed over when a provider goes dark, logged either way.

01 support-agent 02 etl-nightly 03 sales-copilot 04 ops-runbook 05 search-api
0.0B
Requests routed / month
0µs
Median policy evaluation
0%
Tokens saved vs baseline
0
Providers under management
SECTION 03 · SEE A DECISION HAPPEN

Type a task. Watch the router decide.

This is not a video. The classifier below is the same shape as the one in production — eight scored dimensions, a policy that maps score to tier, a fallback chain that exists before it is needed. Different tasks genuinely produce different tiers. Try to make it escalate.

live route dormant path escalation
policy trace · runbook/v3 · default-v3

            

No request leaves your browser. The classifier, the weights and the policy are all in the page — open the source and read them. In production the same evaluation happens in the router process, next to your traffic, with no network hop of its own.

SECTION 04 · ESCALATION IS EARNED
SMALL MID FRONTIER HUMAN-REVIEW 240ms class 640ms class 2.1s class queue · async
FAIL — retry

One request. First attempt at SMALL.

out: {"total":4820.00,"currency":"USD"}
verify: schema+judge → line items do not sum to total

The router does not assume the cheapest tier is correct. It assumes the cheapest tier is worth trying, and then it checks. Verification is part of the route, not a thing you bolt on later.

FAIL ×2 — escalate

Second attempt fails. The policy climbs.

out: {"total":4820.00,"currency":"USD"}
escalate_after: 2 → tier MID · provider unchanged

Two attempts is a number in a runbook, not a hard-coded constant. Set it to 1 for anything customer-facing, 3 for bulk transforms nobody is waiting on. The ladder is yours to tune.

PASS

MID succeeds. You pay the increment, not the ceiling.

out: {"total":4791.40,"currency":"USD"}
verify: schema+judge → pass · decision closed in 3 attempts

The bill records two small attempts and one mid attempt. It does not record a frontier call, because none happened. This is the entire economic argument, and it is boring on purpose.

1,000 REQUESTS

Escalation is the exception.

Roughly 7% of traffic climbs past MID in a mature policy. The other 93% never touches a frontier model at all — and never did need to. Paying frontier prices for everything is not a strategy. It is the default you were living with.

accrued: 1 × small

SECTION 05 · POLICY AS CODE

A dropdown is a decision you can't diff.

Most routing products give you a settings page. Someone changes a value on a Tuesday, spend moves 14%, and there is no artefact anywhere that says who, when or why. That is not a policy. That is a rumour with a save button.

GhostRouter runbooks are files. They live in your repository, they go through your review process, they are versioned with your application, and they are executed — not interpreted as hints. A routing change is a pull request with an approver's name on it.

Every clause below is evaluated on every request, in the router process, with no network call of its own. Median evaluation time is 180µs.

runbooks/default.ymlrunbook/v3
classifyScores the request across four dimensions before any model is contacted. Heuristic, deterministic, and cheap enough to run on every request.
tierMaps a score band to a set of interchangeable targets. Targets inside a tier are load-balanced by health and latency, not by preference.
escalate_afterHow many verified failures a tier gets before the request climbs. Lower it for customer-facing work; raise it for bulk transforms.
fallbackWhere traffic goes when a provider is unreachable or a tier is exhausted. These paths are kept warm, so failover is a routing decision, not a recovery project.
budgetA spending guard evaluated against the period to date. A soft guard warns; a brake pins every eligible request to the cheapest tier until the period rolls.
SECTION 06 · WHAT THE ROUTER DOES

Three jobs, run on every request.

01 / ROUTE

Cost, capability, latency.

Classification produces a score, the runbook maps the score to a tier, and the tier resolves to a live target chosen on health and observed p50 — not on a preference list someone wrote in March. A request that needs 400 output tokens of structured extraction does not get a frontier model because a config file forgot to say otherwise.

  • · 8 scored dimensions
  • · 180µs median evaluation
  • · per-route latency class targets
02 / ESCALATE

Verify, retry, climb.

Output is verified against the shape the caller asked for — schema, then an optional judge pass at the same tier. Failures retry in place until escalate_after, then the request climbs one rung. It never leaps to the top, and it never silently returns something wrong because the cheap path was cheap.

  • · schema + judge verification
  • · one rung per escalation
  • · ~6.4% typical escalation rate
03 / SURVIVE

Fallback across providers.

Every tier holds targets from more than one provider, and every route carries a fallback chain that is exercised continuously rather than discovered during an incident. When a provider degrades, traffic shifts mid-flight and the event lands in the audit log with the policy clause that authorised it.

  • · 11 providers under management
  • · path failover < 800ms class
  • · every shift written to the log
SECTION 07 · NETWORKING HERITAGE

The same router table, one layer down.

Before GhostRouter routed model traffic, it routed packets. The vocabulary did not change when the payload did: a route is still a match plus a target plus a fallback, a policy is still a file, and a path you have never used is still a path you should have already tested.

Underneath the model layer, GhostRouter runs a private overlay between your services — mutually authenticated links, no public ingress, relay hops you choose, and failover paths that exist before you need them.

LINK mutually authenticated STANDBY warm, unused
SECTION 08 · ANONYMIZED OUTCOMES

What it looks like after one billing period.

Client names are never published. Figures below are drawn from metered quantities in the client portal, reconciled at the close of the period.

A portfolio of client-reporting teams

“Model spend fell 58% in the first full billing period. Not one line of product code changed — we pointed the SDK at the router and wrote a runbook.”

Their reporting pipeline was calling a frontier model for every summarisation, including the 71% that were structured extraction with a fixed schema. Those now resolve at SMALL and are verified against the schema before they return.

model spend −58% traffic re-tiered 71% product code changed 0 lines time to first routed request 40 min

An electrical contracting group

“Our estimating assistant used to call the most expensive model for every line item. Now it calls one for the four lines that are actually ambiguous.”

Takeoff line items are mechanical and schema-bound; scope exceptions are not. A single classify clause separates them, and the escalation ladder handles the rest without anyone maintaining a list of special cases.

frontier calls −93% p50 response 2.1s → 310ms escalation rate 6.4% providers under policy 3
GET STARTED

Put a policy between your software and the model bill.

Routing engineering will read your traffic shape and hand back a runbook you can review before anything is signed. Existing clients: your usage, invoices and payment live in the portal.