Build vs Buy

You can build this. Here is what it actually costs.

None of the pieces are hard. The difficulty is that the parts which look easiest are the ones that fail silently — a budget cap that is breachable under concurrency looks identical to one that works until the month it does not.

ComponentRealistic effortWhere it goes wrong
Provider abstractionA weekGenuinely easy. Three adapters behind one interface.
Retry and fallbackA week, then monthsThe loop is easy. Knowing which failures are retryable, and revalidating policy before each attempt, is where it goes wrong.
Cost estimationTwo weeks, then foreverPrices change. Thinking models bill reasoning as output. An unpriced model must not read as free.
Policy compositionA monthDeny-overrides with monotonic tightening across five scopes. Easy to write, hard to keep correct as scopes multiply.
Budget enforcementTwo weeksTrivial until concurrency. A counter-based cap is breachable by two simultaneous requests and nobody notices until the invoice.
Quality measurementMonthsA benchmark everything passes measures nothing. Building one that discriminates, and excluding mock runs and infrastructure errors from it, is most of the work.
Manifests and provenanceA monthRecording what ran is easy. Recording what was refused, and why, means threading rejections through the planner into storage.

When you should build

You run one model successfully

Our own benchmark found a single good mid-tier model is close to Pareto-optimal on general traffic. If that describes you and you have no governance requirement, a thin wrapper is the right call.

Your routing logic is your product

If model selection is a differentiator rather than plumbing, own it. Buying a control plane to then override its decisions everywhere is the worst of both.

You have no compliance surface

Manifests, immutable versioning and residency constraints cost real engineering. If nobody will ever ask you what ran under which rules, that spend is not yet earned.

The self-interested version, stated plainly

A build-vs-buy page written by a vendor is an advertisement. Read this one as an argument, not an assessment. The specific thing we think is genuinely hard to replicate is not routing — it is the discipline of never letting an estimate present itself as a measurement, and that is a property of how a system is built rather than a feature you can copy in a sprint.

Or try it for an afternoon

Free tier, your own key, and a base-URL change.

Get started