Webinar Recording
Optimize GitHub Copilot Token Costs & Boost Productivity


Who this webinar is for
Why this webinar?

Control AI coding costs

Improve developer productivity

Connect AI usage to business impact

Prepare teams for agentic development
Top questions from the webinar
FAQs
For more information, check out our help center.
Your billing settings already show you your costs. The AI usage view, for example, breaks down credits consumed by model and then, from there, admins can filter it by user. The harder question is about ROI. One team or person can use a bunch of credits on a refactor, a migration, and it's money well spent, but another team can burn the same amount of credits going in circles and doesn't get much for it. The spend might look about the same, but what they got out of it isn't.
Avoid measuring the stuff that really doesn't tell you much, like the lines of code, the percent of commits written by AI. Those numbers are going to go up and down, and you still won't know if any more work is actually getting done.
Look at what actually shipped, the pull requests merged, how fast they merged, and what made it to production. GitHub gives you a dashboard just for this: the Copilot impact dashboard. It groups your developers by how deeply they've adopted Copilot. Then it shows an adoption multiplier. It shows how many more PRs, for example, your engaged devs merge compared to the ones who are barely using it.
And if that number is 2x, well, there's your case for the spend in a number leadership can understand.
So don't ask how much you spent. Ask what you got for it.
It can cost you extra tokens and here's why. When you stay on one model through a conversation, most of your context — the system prompt, your file contents, the tool definitions, all get cached. And those cached tokens are billed at about 10% of the normal input price. That way, a long agent session isn't repaying full price for the same context on every turn.
The moment you switch models within the same session, that cache is gone. A different model can't read another model's cache, so your whole context gets resent and billed as fresh input.
So switching models to feel like you're optimizing can really cost you more than sticking with the one you started with.
If you do need to change tiers, do it at a natural break, a fresh session, or right after the history gets compacted, not in the middle of an active thread. Otherwise, you pay to rebuild the whole context on top of whatever the new model costs.
And when you're picking that model in the first place, don't just reach for the cheapest one, reach for the cheapest one that gets it right the first time.
A lighter model might get there, but only after more prompting and more back and forth to get it right, while a stronger model might "one shot" the same task and can land in a similar place on cost with less time spent.
You've got two options here:
- Pick a model that fits the work and stick with it for the session.
- Let auto handle it since auto routes with caching in mind. When it does change models, it does it at a point where the cache would reset anyway, like the very first turn or right after a compaction. So you get the routing without paying to rebuild your context.
They are two different units. Tokens get converted into credits, and credits are what shows up on your bill.
Tokens are what the model reads and writes. This includes: your prompt, the files and history you send it, and the response it generates. Everything Copilot does gets counted in tokens.
Credits are how you pay for it. One AI credit equals one US cent. For example, 100 credits is a dollar, 1000 credits is $10, etc. But tokens don't convert to credits at a fixed rate because every model prices its tokens differently. For example, the same request with the same number of tokens costs more on a frontier model than on a lighter one. Copilot prices your tokens at whatever that model charges then converts the total into credits.
Not all tokens cost the same even on one model. Output tokens, what the model generates, usually costs more than the input you send it. And cached tokens, the context that gets reused, cost less.
When your Copilot credits drop, that number comes down to a few things: how many tokens the request used, which model you picked, and whether they were input, output, or cached tokens.
It's not. Auto's job is matching the task to a model that can handle it efficiently. Simpler requests go to faster, lower cost models, while the heavier reasoning models get used for the harder problems, so you're not paying premium prices for work a lower price model could have done.
And it stays inside your guardrails, too. Auto only picks from models that your plan and admins allow.
So if your org has blocked the model or restricted you to certain ones, auto won't route around that.
It's not a black box either. Copilot tells you which model it used while in auto mode.
How does auto decide which model to use? It looks at how hard the task is, how much reasoning it needs, how complex the code is, whether it's a quick fix or a multi-step job. Then it sends the request to whichever model matches that level of difficulty.
If you've been avoiding auto because you think it's routing to the priciest model, it's doing the opposite. And on a paid plan, it also costs less than picking the model yourself.
Per user. Yes. Per model? Not directly.
Per-user budgets are built in. You can cap how many AI credits any one person spends in a billing cycle, from the shared pool and any overage. You can also put a budget on a cost center and everyone in that group inherits the cap.
If your platform team needs a higher limit than everyone else, put them in their own cost center with their own budget, and you're done. If you move someone into that group, they pick up the higher limit. And if you move them out, they lose it.
Also, there's no setting that says "give this model a budget". You can set a budget for a user, a cost center, an org, or the whole enterprise. But every one of those caps a dollar amount, not a model.
If you don't want a team on your most expensive models, you can turn that off. An admin can block specific models for an org. Just remove it from what they're allowed to pick.
To see spending broken down by model, you can go to "Billing and Licensing" on GitHub.com. Under "AI Usage," you can see where it groups spend by models, so you can tell which ones are using up credits before you decide what to restrict.
A new token is fresh input, something the model hasn't already seen in the session. It reads and processes the whole thing at full price.
A cached token is context that's already been processed once and can be reused. A lot of what Copilot sends repeats every turn, like the system prompt, instructions, tool definitions, any files and history already in the conversation. Rather than having to reprocess all of that each time, the model reuses it from cache and cached tokens are billed at about 10% of the normal input rate.
The first time the model sees something, it's new and full price. After that, if the session holds, it's cached and cheaper.
You don't. There's no setting for that, it's automatic!
What you can do is keep from breaking it. Caching only works when the stuff that tends to repeat every turn stays the same — your system prompt instructions, tool definitions, and any settings you've started with.
GitHub is specific about what breaks the cache mid-session and forces the model to reprocess all of that repeated content at full price. That includes switching models, changing the reasoning level, changing context size, or changing your enabled tools and MCP servers. So if you do any of those in the middle of a session after the cache has already built up, it all gets thrown out. Everything has to be reprocessed at full price.
Since your instructions are part of that same repeated content, I recommend you set all of it before you start and leave it alone for the rest of the session.
If you're using the Copilot CLI, there's a handy way to see where your tokens are going. You can run the /context command, and it breaks down all of what's filling your window — the system prompt, custom instructions, system tools, MCP tools, and your messages.
It depends which budget you mean. For an individual user, yes, it's immediate. GitHub blocks the request the moment they hit their limit.
Cost center and enterprise budgets work differently. They only hard-stop if you've turned on stop usage for them. That setting is off by default. If you leave it off, spend just keeps accruing with no cap at all.
There's a bit of a wrinkle with new budgets too. A budget only counts spending from the day you turn it on. So if you set a $500 budget halfway through the month, it doesn't see what your team already spent that month, and you can still go over. The next month it counts from day one and works like you'd expect.
You can get email alerts when a budget hits 75, 90, or 100 percent. But for user budgets, that alerting isn't available in every case, so GitHub's own advice is not to rely on user budget alerts as your only warning. So watch your cost center or enterprise usage directly too.

.png)
.png)
.png)
.png)
.png)
.png)










.webp)