Home / Guides / Reduce Azure DevOps license costs
Guide · Azure DevOps cost

How to reduce Azure DevOps license costs without losing access

Most Azure DevOps overspend isn't a pricing problem — it's a utilization problem. Paid seats sit assigned to people who left, went inactive, or never needed the tier they're on. Here's how to find that spend and recover it, using data Azure DevOps already keeps.

What you actually pay for in Azure DevOps

Azure DevOps charges per user, per access level. Two of those levels cost money; the rest don't. Knowing the difference is the whole game, because most waste hides in paid seats that should be on a free level — or on no seat at all.

Azure DevOps access levels · monthly cost per user
Access levelCostNotes
StakeholderFreeLimited access — work items, dashboards
Basic~$6/moFull features except Test Plans
Basic + Test Plans~$52/moAdds test-case management & test execution
Visual Studio subscriberFree*Covered by an existing VS subscription

*A user with a Visual Studio subscription is entitled to Basic-level access at no extra Azure DevOps charge. If they're assigned a paid Basic seat anyway, you're paying twice.

The three sources of Azure DevOps license waste

Every dollar of recoverable spend falls into one of three buckets. The first two are firm — you can act on them today. The third needs a quick human check.

1. Inactive paid seats (firm waste)

Azure DevOps records a last-access date for every user under Member Entitlement Management. A paid user (Basic or Basic + Test Plans) who hasn't accessed the org in six months or more — or has never accessed it at all — is almost certainly recoverable spend. These are people who left, changed teams, or were provisioned "just in case."

2. Trending-stale seats (near-term risk)

Paid users inactive for three to six months are on the way to becoming firm waste. They're worth a review now, before another two quarters of spend go out the door.

3. Over-tiered seats (contingent savings)

Basic + Test Plans costs roughly nine times what Basic costs. Any active Basic + Test Plans user who isn't actually authoring or running test plans is over-tiered. Downgrading them to Basic keeps their access intact and cuts ~$46/user/month. This one needs a quick check of who genuinely uses Test Plans — hence "contingent."

Worked example · a 180-user org
FindingActionAnnual recovery
15 paid seats inactive 6+ monthsRevoke~$18,000
10 paid seats 3–6 months staleReview & revoke~$13,000
~8 over-tiered Basic + Test PlansDowngrade to Basic~$5,000

That's roughly $36,000/year — about 27% of paid ADO spend — on a mid-size org, recovered without a single person losing the access they actually use. Recovery of 25–33% of paid spend is typical.

A phased plan that won't break active work

How to do this without a spreadsheet marathon

You can pull user entitlements and last-access dates from the Azure DevOps API yourself and reconcile them by hand each quarter. Or you can point a tool at the org and have the whole picture — every paid seat, its tier, its months of inactivity, and a phased savings plan — in a few minutes.

See your recoverable Azure DevOps spend — free

HALA scans your Azure DevOps org with a read-only token and names every recoverable seat, with a phased 30/60/90-day plan. The headline scan is free.

Run a free audit →

Frequently asked questions

How much does an Azure DevOps license cost?

Basic is about $6/user/month and Basic + Test Plans is about $52/user/month. Stakeholder access is free, and users covered by a Visual Studio subscription get Basic-level access without a paid seat.

How do I find inactive Azure DevOps users?

Azure DevOps records a last-access date for every user under Member Entitlement Management. Paid users inactive for six months or more (or never accessed) are the clearest candidates to revoke; three-to-six-month inactivity is trending stale.

Will revoking a license delete someone's work?

No. Removing or downgrading a user's access level does not delete their work items, commits, or history — it only changes what they can do going forward. That's why revoking inactive seats is low-risk.

How much can I typically save?

25–33% of paid Azure DevOps spend is recoverable in a typical audit, across inactive, never-accessed, and over-tiered seats.