← All posts

July 9, 2026 · 6 min read · Waste and recovery

Do you need both Copilot and Cursor?

Some teams have a real reason to run both. Most teams that run both never decided to — they accumulated. To tell which one you are, join the two seat lists — a seat is a paid license for one person. You can do it this afternoon.

By Spendassay Research

The honest answer to the title question is: sometimes yes. There are good reasons to pay for GitHub Copilot and Cursor at the same time. A leader who cuts down to one tool on principle will break something that was working.

But "sometimes yes" is not the same as "yes in your case." Overlap is a claim, and a claim needs evidence. The evidence is not a feature table or a team survey. It is two seat lists, joined on the person, then split by whether both seats show real use.

This post is not a bake-off. Spendassay does not rank AI coding tools and does not prefer one. What it has is a way to tell whether the second tool on someone's laptop is a choice or a leftover.

The legitimate reasons to run both

Four of these hold up.

Different ways of working. Inline completion and agent-driven rewriting are not the same product wearing different logos. Some engineers use one tool to finish lines inside a file they know well. They use another to hand off a change across many files and review the result. If your team really does split its day that way, two tools are two tools, not one tool billed twice. This is the strongest reason. It is also the one most often claimed without proof.

Editor lock-in on part of the team. Cursor is a fork of VS Code. Part of your org may live in JetBrains, Neovim, or an editor your platform team fixed on years ago. Forcing everyone into one editor to save a license is a bad trade. You would pay in friction to save $19 to $40 a head. Keeping a second tool for that group is fair. Keeping it for the whole org because one group needs it is not.

A move in flight. If you decided in Q2 to switch from one tool to the other, you will run both for a while. That is correct. What matters is whether the switch has an end date and an owner. A migration with no end date is not a migration.

Company policy. Some firms are tied to a Microsoft-stack tool. It can be a buying rule, an enterprise deal already signed, or a security review that cleared one tool and not the other — while the engineers prefer something else. That is a real limit, and it is fine. Finance just has to know it is paying for a limit rather than for twice the output.

The illegitimate reasons

These are the ones that show up in the data.

A rollout nobody ended. A tool was piloted widely in 2024 or 2025. The pilot ended. The seats stayed. Nobody decided to keep paying, and nobody decided to stop.

A team that switched and never cancelled. Adopting the new tool was the visible project. Cancelling the old one was nobody's job.

Seats handed to every new hire by default. This is the quietest and most costly one. If your new-hire checklist grants both tools to each engineer, your overlap grows on its own with headcount. It grows fastest in the quarters when you hire hardest.

None of these are failures of judgment. They are failures of a review that never got scheduled.

The test: join the lists, split by use

Here is the procedure. It takes an hour if your admin access is in order.

1. Pull the billed seat list from each vendor. Not the license count on the invoice — the list of people. You want names, not a count.

2. Put the names in the same format. Work email is the usual key. Expect it to be imperfect: contractors on another domain, engineers whose Git name uses a personal address, people who changed names. Match them up through your login system if you have one.

3. Join on the person. Count the engineers holding a paid seat on both.

4. Split that overlap by use. For each person in the overlap, ask whether *both* seats show real recent use. Not a login. Not an install. Real use in the last 30 days.

That fourth step is the whole exercise. The overlap count on its own proves nothing.

Two active tools is a choice. One active and one dormant is a bill.

You end with three groups. Both active: both tools used, which is your evidence that the ways-of-working argument is real for those people. One dormant: a seat to cut, person by person, with a dollar figure attached. Both dormant: a different problem, and a worse one. An idle seat is a paid seat nobody has used lately — see the hidden cost of idle AI seats for what that pattern usually means.

What the overlap costs, in dollars

Take a 100-engineer org. Published list prices as of July 2026: GitHub Copilot Business is $19 per user per month and Enterprise is $39. Enterprise also needs GitHub Enterprise Cloud at $21, which makes the real seat $60. Cursor Business is $40 per user per month.

Say 30 of your 100 engineers hold both. On Copilot Business, that group costs $59 per person per month. That is $21,240 a year for the doubled cover. On Copilot Enterprise, the same 30 people cost $100 each per month, or $36,000 a year.

Now apply the split. Say 20 of those 30 show one dormant seat. If the dormant side is Cursor, that is $9,600 a year. If it is Copilot Business, $4,560. If it is Copilot Enterprise, $14,400.

Those are five-figure numbers, not seven-figure ones. Say so out loud when you present it. The reason to do this is not that it saves a fortune. It is the cheapest evidence you can get for a renewal talk, and it stacks up with every other vendor you run the same join against. What you negotiated moves the sums too. Vendr's Cursor marketplace data shows a median yearly contract value of $111,408 across 76 documented purchases, with 15–25% off for an annual commit. Run the numbers on what you actually pay, not on list.

Why no vendor dashboard can show you this

This is how the market is built, not a missing feature. GitHub's admin console can tell you everything about Copilot seats and nothing about Cursor seats. Cursor's can tell you the reverse. Neither vendor holds the other's seat list. Neither has a business reason to build the join that would show you a seat you could cancel.

So someone who reads both has to build the overlap view. That is a formatting problem before it is an analysis problem. Each vendor names people in its own way, sets its own bar for "active," and hands you a different level of detail. What each AI vendor's admin console actually exposes covers the gaps vendor by vendor.

If you want a baseline before you start, what good AI seat utilization actually looks like gives you the range to compare against. Opsera's 2026 benchmark, drawn from 250,000+ developers, reports 21% of AI coding licenses underused. Worth knowing, though it is vendor-published and the method is not fully public.

The honest caveats

Activity data is not use data. A seat marked active might be a background process, an editor that signed in at launch, or one accepted suggestion in a month. Each vendor sets its own bar for "active" and moves it without telling you. Numbers from two vendors point in the right direction. They are not equal.

The name-matching join is the weakest link. Contractors, service accounts, and people whose Git and login names do not match all produce false overlaps and false gaps. Fix the names before you conclude.

And a dormant seat is a guess, not a verdict. Parental leave, a rotation onto an incident, a quarter spent in design docs — all produce quiet seats that have nothing to do with the value of the tool. Ask the person before you take the seat back.

Find your recoverable AI spend

Spendassay reads both lists and joins them on the person. It shows you the both-active and one-dormant groups with dollars attached. Every view is at team level, with a minimum group of eight, and never ranks people one by one. See a sample report before you connect anything.

`Start free` → /login?src=blog_copilot-and-cursor-duplicate-spend

Find your recoverable AI spend

Spendassay turns this from an afternoon of spreadsheets into a live, proof-level audit with the recovery attached.

Practical, evidence-first notes on AI spend. A couple a month. No spam, unsubscribe anytime.