← all posts
// economics · commercial-models

Commercial vs free models for coding assistants: a hybrid route instead of a winner

So no, I'm not telling you the paid API wins, or that self-hosting pays for itself; both are true for some traffic, false for the rest. "Commercial versus free" hides three things: a paid API bundles inference with support, a free tier rations that service, and an open-weight model is an artifact whose license may not be open, compute still somebody's expense. Self-host it and the invoice becomes hardware, electricity, and upkeep.

For a coding assistant the unit that matters is a reviewed change that clears your test suite. Nothing softer counts. The real failure is subtler than gibberish: a patch that compiles and breaks a contract nothing in the diff mentions. A cheap call that fails validation and eats ten minutes of review time isn't cheap.

Run one exam, not two impressions

Pick one candidate per side, local coder or capped free tier, against a metered commercial one, fed identical evidence and the same acceptance bar. Label traffic, enforce hard sensitivity filters first, then measure escalation frequency and total accepted cost. Use real prices while testing, then drop them from the rule: catalogs reshuffle, free tiers vanish.

route + model revision
tokens: input / cached / reasoning / output
queue, first token, completion, timeout
pass / retry / abstain / human repair
privacy, license, fallback constraints

The gate is tests, static checks, human diff review, and measured correction time. Label each failure by reason: missing evidence, bad instructions, malformed output, wrong reasoning, tool error, unsafe action.

Where the premium and the free lunch each earn out

Commercial earns its premium on genuinely ambiguous cases, not because the model is sitting there or a dashboard looks reassuring; cap reasoning effort and try a cheaper tier before reaching for the top shelf. Local or free earns its keep on routine, sensitive, repeatable work, better the steadier you run it, worse once it barely fits in memory or depends on one person who understands it.

Stop paying an LLM to decide for you

The mistake I keep seeing is routing through another LLM before a plain rule or validation check runs, the opposite of a local-first cascade: cheap absorbs what it can. Tie every number to a workload and time window: price per token and tokens per second are diagnostic, not the decision; cost per accepted task, p95 latency, failure severity, and human attention spent.

Wire the exit before you need it

Put provider calls behind one narrow adapter, keep prompts and schemas in version control, and never let a vendor's thread object hold your only job state. Contract-test streaming, tool calls, and token accounting on every route. Falling back to local when the commercial API is down is fine if the user can tell capability changed; the reverse, shipping a request remote because local capacity ran dry, turns a fallback into a privacy incident with good uptime. Re-run this when traffic or prices shift.

"Free" and "commercial" are procurement labels, not an engineering verdict. If I keep exactly one rule out of all this: privacy and authorization decide before capability ever gets a vote.

#commercial-models#open-models#cost