The model behind the assistant
Most products handle the question “which model is this?” in one of two unsatisfying ways. Either the model is hidden entirely, so you cannot reason about cost or capability at all, or you are handed a dropdown of version strings and left to work out which of them is good at what. LinearPilot does a third thing: three named tiers, called LinearPilot Spark, LinearPilot Core and LinearPilot Max.
A tier is a named slot pointing at a specific hosted model from a specific provider. Spark is the fast, inexpensive one. Core is the middle. Max is the frontier one. Today Spark and Core run on Google's Gemini models and Max runs on Anthropic's Claude — and those two companies are the only two on our sub-processor page, which is where that list lives precisely so it cannot quietly grow without anyone noticing.
The reason for a slot rather than a version number is that model versions turn over fast. They get renamed, superseded, and retired, sometimes while still being advertised as available. A version string printed on a marketing page is a promise you break in three months without meaning to. A tier is a commitment about a capability class and a cost class, and we repoint the slot underneath it when a provider moves — which is a configuration change, not a release.
Your plan comes with a default tier — Spark on the free plan, Core in the middle, Max at the top — and that default is what runs when you send a message without touching anything. What has changed recently is that the choice isn't only ours. A picker on the composer lets you switch tier per turn, which turns the interesting model into a menu you can actually reach rather than a setting hidden inside a plan. The reason this used to feel like a bad idea and is now a good one is credits: with a shared unit that means the same thing across tiers, picking the more capable model isn't a hidden cost, it's a number you can see move on the meter.
Alongside the picker there is a second way to reach the other tiers, and it's the one to use when you want a comparison rather than a decision. On any answer you can ask another model: the same question runs on the other tiers and you read the answers side by side. It is text only — no tools, no changes to your data — and it exists because “is the expensive model actually better at this particular thing?” is a question you should be able to settle for yourself rather than take on faith from us.
Now what happens when a provider has a bad day, because this is the part most vendors leave out. The tiers are chained: Max falls back to Core, and Core falls back to Spark. If a call fails in a way worth retrying — a timeout, a server error at the provider — the request walks down that chain instead of failing. The consequence is worth stating plainly rather than burying: during an outage, a company on the top plan can be answered by a lower tier. We think a slightly less capable answer beats a spinner. If the whole chain is unavailable you are told the AI is unavailable; you are never handed a fabricated answer, and there is no local model quietly standing in.
The meter. AI use is counted in credits rather than tokens, because a token is a unit only the vendor really understands and its meaning shifts between models. A credit is anchored to money: roughly what a thousand tokens of work costs on the fastest tier. Every request converts into credits from what that model actually charges, multiplied by the tier's rate.
That has a consequence worth internalising before you plan around it. The price gap between a small model and a frontier one is not a rounding difference — per token it is more than a hundredfold. So the tier your users pick on any given turn is by far the largest factor in how quickly an allowance moves, much larger than how many people are using the assistant. A team asking a hundred questions a day on Core and the same team asking a hundred on Max are not doing comparable things to their allowance — the tier is the choice with the leverage.
Each plan comes with a credit allowance, and we are not going to reprint the numbers here and let them rot. The pricing page reads them from the live plan data, so that is the version to trust. Additional seats now add to that allowance too, which has its own post.
One thing we will not claim: that we can verify what a provider does with your text once it arrives. We cannot, and no code can. What we can do is refuse to route to any account not asserted to be on terms that exclude your content from training — a tier that is not marked as such simply does not resolve, and requests never reach it. That is a gate in our own code rather than an audit of theirs, and the difference between those two things is exactly the kind of difference this blog exists to keep straight.
Related articles
How private AI actually works in LinearPilot
“Private AI” gets said a lot and explained rarely. Here is the actual mechanism in LinearPilot: named providers under no-training terms, sensitive fields masked and restored, consent you control, and the isolation and encryption underneath.
Seats that bring their own credits
A seat beyond your plan's included headcount now raises the company's AI allowance instead of dividing it. Here is the formula, and the two parts of this that are not switched on yet.