8 February 2026
Splitting a shared model endpoint across three product teams
Shared endpoints are common. Shared bills without a method are how three teams end up arguing about a number none of them fully caused.
A single endpoint serving a chatbot, an internal search box, and a batch summariser will produce one invoice line. Finance will still ask each product owner for “their share.” Without a written method, each owner picks the split that flatters their roadmap.
We start by asking what evidence exists. Request logs with a product tag are the cleanest. Many teams have tags for two products and nothing for the third. In that case we use tagged volume where it exists and split the remainder by a method everyone sees, rather than pretending the untagged calls are evenly shared.
Token-weighted splits treat a long summariser job as heavier than a short chatbot turn, which is usually closer to the bill. Call-count splits are simpler and often unfair to the chat team. Reserved GPU hours are a third method: they follow who demanded the reservation, not who happened to send more calls that month.
The argument in the room is part of the work. We write the objections into the caveat note. If search insists their calls are “tiny” and the logs show otherwise, the table still follows the logs. If the logs are missing, we do not invent precision; we say the split is a negotiated convenience until tags exist.
After the table is agreed, we ask finance which period it should apply to — the month just closed, or the next quarter going forward. Applying a new method backwards without warning is how you lose the room you just won.