← all posts
// economics · commercial-models

Commercial vs free models for customer-support automation: a hybrid route instead of a winner

There's no single right model for customer-support automation, and hunting for one is how teams overpay for capability most of their tickets never need. The honest framing splits the traffic instead of crowning a winner: a private default, and a visible escalation for the cases that earn it.

"Commercial versus free" hides three deals: a paid API sells inference wrapped in a service, a free tier is that service on a leash, and an open-weight model is an artifact whose compute somebody still paid for. Local inference doesn't erase the cost. It moves the cost onto hardware, electricity, and the capacity planning you now own.

The unit that matters is a ticket resolved correctly or escalated safely, built from ticket history, policy text, safe account facts, and a short list of approved actions. The failure to fear isn't a clumsy sentence, it's a confident policy mistake or an unapproved account action, and a cheap answer that fails validation costs more than it looks.

Sort the tickets before you sort the vendors

Different request classes deserve different capability, privacy, latency, and cost boundaries. Locally, that's an open-weight or free-tier model boxed into a narrow workflow, not open chat. Commercially, it's a paid API for multilingual reasoning and tool use. Run the real experiment with real names and prices, but keep those out of the architecture: catalogs change, tiers vanish.

Filter for sensitivity first, run both routes on the same evidence and bar, and score escalation frequency against total accepted cost, never list price. Grade resolution accuracy, escalation quality, and policy compliance, and label every failure by cause: missing evidence, bad reasoning, an unsafe action. A local model can be flawless on the easy majority and fail only past a threshold you can now name.

Let the threshold make the call

The commercial route earns its premium at that threshold, when a case is genuinely ambiguous and stronger reasoning buys something real, not as a default out of caution. Test a cheaper commercial tier first, cap reasoning effort, and pay for managed capacity only when it removes work your team would otherwise do by hand.

The free or local route earns its keep on routine, sensitive, high-volume tickets that never leave the building, and improves with steadier load and narrower tasks, the logic behind a local-first cascade. It degrades once a model barely fits or needs a runtime only one engineer understands; spare hardware isn't free if another job loses it.

The mistake I see most: reaching for another expensive model before simple rules and validation are exhausted. Tie every number to a workload and a time period, since price per million tokens is a diagnostic, not an outcome, the discipline behind cost architecture for the long tail. What counts is cost per accepted task, p95 latency, failure severity, and human attention required.

Keep provider handling behind one adapter, prompts versioned, and state outside any vendor's thread object, with contract tests on every route. Local as fallback is fine if visible; a capacity shortfall never excuses quietly sending data out that should stay put. Re-visit the split whenever traffic or utilization moves.

None of this needs a universal winner. Whether a route is labeled free or commercial is a procurement detail; what I track is whether the ticket got resolved and who's accountable when it doesn't. If I keep one rule from all this: privacy and authorization pick the route, capability only gets a vote after.

#commercial-models#open-models#cost