Extended Security Updates Calculator
Security updates after end of support cost more each year you wait. Price Extended Security Updates for Windows Server 2016, SQL Server 2016 and Windows 10, and see them next to the cost of upgrading instead.
Deadlines and options
Windows Server 2016
Extended support ends January 12, 2027. ESU years run January 2027 to January 2030, priced per core with the same 16-core-per-server minimum as a new license.
SQL Server 2016
Extended support ended July 14, 2026. ESU years run July 2026 to July 2029, priced per 2-core pack with a 4-core minimum per server.
Windows 10
Support ended October 14, 2025. Commercial ESU doubles in price each year through October 2028. Most devices upgrade to Windows 11 at no license cost if the hardware qualifies.
Azure includes ESU
Workloads moved to Azure virtual machines, Azure VMware Solution or Azure Virtual Desktop receive Extended Security Updates at no extra charge. Ask us to price the move.
window.C2N = (function () { function esc(s) { return String(s).replace(/[&<>"]/g, function (c) { return { '&': '&', '<': '<', '>': '>', '"': '"' }[c]; }); } function fire(el) { el.dispatchEvent(new Event('input', { bubbles: true })); el.dispatchEvent(new Event('change', { bubbles: true })); } function enhance(form) { [].forEach.call(form.querySelectorAll('select[data-seg]'), function (sel) { var seg = document.createElement('div'); seg.className = 'c2n-seg'; seg.setAttribute('role', 'radiogroup'); seg.style.gridTemplateColumns = 'repeat(' + Math.min(sel.options.length, +sel.dataset.seg || sel.options.length) + ',1fr)'; [].forEach.call(sel.options, function (o) { var b = document.createElement('button'); b.type = 'button'; b.textContent = o.textContent; b.dataset.v = o.value; b.setAttribute('role', 'radio'); b.addEventListener('click', function () { sel.value = o.value; sync(form); fire(sel); }); seg.appendChild(b); }); sel.hidden = true; sel.parentNode.insertBefore(seg, sel.nextSibling); }); [].forEach.call(form.querySelectorAll('input[data-range]'), function (num) { var r = num.dataset.range.split(','), rg = document.createElement('input'); rg.type = 'range'; rg.min = r[0]; rg.max = r[1]; rg.step = r[2] || 1; rg.className = 'c2n-range'; rg.setAttribute('aria-label', num.name); rg.addEventListener('input', function (e) { e.stopPropagation(); num.value = rg.value; fire(num); }); num.parentNode.appendChild(rg); }); } function sync(form) { [].forEach.call(form.querySelectorAll('select[data-seg]'), function (sel) { [].forEach.call(sel.nextSibling.children, function (b) { var on = b.dataset.v === sel.value; b.classList.toggle('on', on); b.setAttribute('aria-checked', on); }); }); [].forEach.call(form.querySelectorAll('input[data-range]'), function (num) { num.parentNode.querySelector('.c2n-range').value = num.value; }); } function render(el, r) { var h = '<div class="c2n-cx-bar"><span>Results · ' + esc(r.title) + (r.unit === undefined ? ' · USD' : r.unit) + '</span><span class="c2n-cx-live">Live</span></div>'; if (r.lead) h += '<p class="c2n-cx-lead">' + r.lead + '</p>'; if (r.kpis) h += '<div class="c2n-cx-kpis">' + r.kpis.map(function (k, i) { return '<div class="c2n-cx-kpi' + (i ? '' : ' on') + '"><small>' + esc(k[0]) + '</small><b>' + k[1] + '</b><span>' + (k[2] || '') + '</span></div>'; }).join('') + '</div>'; if (r.rows) { var cell = function (tag) { return function (c, i) { return '<' + tag + (i ? ' class="n"' : '') + '>' + c + '</' + tag + '>'; }; }; h += '<div class="c2n-cx-scroll"><table class="c2n-cx-table">' + (r.head ? '<tr>' + r.head.map(cell('th')).join('') + '</tr>' : '') + r.rows.map(function (row) { return '<tr>' + row.map(cell('td')).join('') + '</tr>'; }).join('') + (r.total ? '<tr class="t">' + r.total.map(cell('td')).join('') + '</tr>' : '') + '</table></div>'; } h += '<div class="c2n-cx-foot"><p>' + (r.note || '') + '</p>' + (r.cta ? '<a class="c2n-cx-btn" href="' + esc(r.cta[1]) + '">' + esc(r.cta[0]) + '</a>' : '') + '</div>'; el.innerHTML = h; } function money(n, d) { return (n < 0 ? '-$' : '$') + Math.abs(n).toLocaleString('en-US', { minimumFractionDigits: d || 0, maximumFractionDigits: d || 0 }); } function values(form) { var v = {}; [].forEach.call(form.elements, function (el) { if (el.name) v[el.name] = el.type === 'number' ? Math.max(0, +el.value || 0) : el.value; }); return v; } function restore(form) { var q = new URLSearchParams(location.search); [].forEach.call(form.elements, function (el) { if (el.name) { if (q.has(el.name)) el.value = q.get(el.name); } }); } function save(form) { var o = {}; [].forEach.call(form.elements, function (el) { if (el.name) o[el.name] = el.value; }); history.replaceState(null, '', '?' + new URLSearchParams(o)); } function mount(form, calc) { enhance(form); restore(form); var run = function () { sync(form); calc(values(form)); save(form); }; form.addEventListener('input', run); form.addEventListener('submit', function (e) { e.preventDefault(); }); run(); } return { mount: mount, render: render, money: money, esc: esc, sync: sync, enhance: enhance }; })(); (function () { var P = {"Win Server Std Core Ext Security 2016 16 Core Y1 (January 2027 - 2028)":{"Commercial|One-time purchase (perpetual)":992.0,"Nonprofit|One-time purchase (perpetual)":248.0},"Win Server Std Core Ext Security 2016 16 Core Y2 (January 2028 - 2029)":{"Commercial|One-time purchase (perpetual)":992.0,"Nonprofit|One-time purchase (perpetual)":248.0},"Win Server Std Core Ext Security 2016 16 Core Y3 (January 2029 - 2030)":{"Commercial|One-time purchase (perpetual)":992.0,"Nonprofit|One-time purchase (perpetual)":248.0},"Win Server Std Core Ext Security 2016 2 Core Y1 (January 2027 - 2028)":{"Nonprofit|One-time purchase (perpetual)":31.0,"Commercial|One-time purchase (perpetual)":124.0},"Win Server Std Core Ext Security 2016 2 Core Y2 (January 2028 - 2029)":{"Commercial|One-time purchase (perpetual)":124.0,"Nonprofit|One-time purchase (perpetual)":31.0},"Win Server Std Core Ext Security 2016 2 Core Y3 (January 2029 - 2030)":{"Commercial|One-time purchase (perpetual)":124.0,"Nonprofit|One-time purchase (perpetual)":31.0},"Win Server DC Core Ext Security 2016 16 Core Y1 (January 2027 - 2028)":{"Nonprofit|One-time purchase (perpetual)":1440.0,"Commercial|One-time purchase (perpetual)":5760.0},"Win Server DC Core Ext Security 2016 16 Core Y2 (January 2028 - 2029)":{"Nonprofit|One-time purchase (perpetual)":1440.0,"Commercial|One-time purchase (perpetual)":5760.0},"Win Server DC Core Ext Security 2016 16 Core Y3 (January 2029 - 2030)":{"Commercial|One-time purchase (perpetual)":5760.0,"Nonprofit|One-time purchase (perpetual)":1440.0},"Win Server DC Core Ext Security 2016 2 Core Y1 (January 2027 - 2028)":{"Commercial|One-time purchase (perpetual)":720.0,"Nonprofit|One-time purchase (perpetual)":180.0},"Win Server DC Core Ext Security 2016 2 Core Y2 (January 2028 - 2029)":{"Commercial|One-time purchase (perpetual)":720.0,"Nonprofit|One-time purchase (perpetual)":180.0},"Win Server DC Core Ext Security 2016 2 Core Y3 (January 2029 - 2030)":{"Nonprofit|One-time purchase (perpetual)":180.0,"Commercial|One-time purchase (perpetual)":720.0},"ESU for SQL 2016 Std 2 Core pack Year 1 (July 15 2026 - July 14 2027)":{"Commercial|One-time purchase (perpetual)":3944.0},"ESU for SQL 2016 Std 2 Core pack Year 2 (July 15 2027 - July 14 2028)":{"Commercial|One-time purchase (perpetual)":3944.0},"ESU for SQL 2016 Std 2 Core pack Year 3 (July 15 2028 - July 14 2029)":{"Commercial|One-time purchase (perpetual)":3944.0},"ESU for SQL 2016 EE 2 Core pack Year 1 (July 15 2026 - July 14 2027)":{"Commercial|One-time purchase (perpetual)":15122.0},"ESU for SQL 2016 EE 2 Core pack Year 2 (July 15 2027 - July 14 2028)":{"Commercial|One-time purchase (perpetual)":15122.0},"ESU for SQL 2016 EE 2 Core pack Year 3 (July 15 2028 - July 14 2029)":{"Commercial|One-time purchase (perpetual)":15122.0},"Windows 10 ESU Year 1 (2025 - 2026)":{"Nonprofit|One-time purchase (perpetual)":1.0,"Education|One-time purchase (perpetual)":1.0,"Commercial|One-time purchase (perpetual)":61.0},"Windows 10 ESU Year 2 (2026 - 2027)":{"Education|One-time purchase (perpetual)":2.0,"Nonprofit|One-time purchase (perpetual)":2.0,"Commercial|One-time purchase (perpetual)":122.0},"Windows 10 ESU Year 3 (2027 - 2028)":{"Education|One-time purchase (perpetual)":4.0,"Nonprofit|One-time purchase (perpetual)":4.0,"Commercial|One-time purchase (perpetual)":244.0},"Windows Server 2025 Standard - 16 Core License Pack":{"Nonprofit|One-time purchase (perpetual)":470.0,"Commercial|One-time purchase (perpetual)":1176.0,"Education|One-time purchase (perpetual)":294.0},"Windows Server 2025 Standard - 2 Core":{"Education|One-time purchase (perpetual)":36.0,"Commercial|One-time purchase (perpetual)":147.0,"Nonprofit|One-time purchase (perpetual)":58.0},"Windows Server 2025 Datacenter - 16 Core":{"Commercial|One-time purchase (perpetual)":6770.0,"Nonprofit|One-time purchase (perpetual)":2708.0,"Education|One-time purchase (perpetual)":1692.0},"Windows Server 2025 Datacenter - 2 Core":{"Nonprofit|One-time purchase (perpetual)":338.0,"Commercial|One-time purchase (perpetual)":846.0,"Education|One-time purchase (perpetual)":211.0},"SQL Server 2025 Standard core - 2 core License Pack":{"Nonprofit|One-time purchase (perpetual)":1577.0,"Commercial|One-time purchase (perpetual)":3944.0,"Education|One-time purchase (perpetual)":986.0},"SQL Server 2025 Enterprise core - 2 core License Pack":{"Commercial|One-time purchase (perpetual)":15122.0,"Education|One-time purchase (perpetual)":3780.0,"Nonprofit|One-time purchase (perpetual)":6049.0}}; var $ = C2N.money, WSY = ['(January 2027 - 2028)', '(January 2028 - 2029)', '(January 2029 - 2030)'], SQY = ['Year 1 (July 15 2026 - July 14 2027)', 'Year 2 (July 15 2027 - July 14 2028)', 'Year 3 (July 15 2028 - July 14 2029)'], W10 = ['Year 1 (2025 - 2026)', 'Year 2 (2026 - 2027)', 'Year 3 (2027 - 2028)']; function p(name, seg) { var r = P[name] || {}; return r[seg + '|One-time purchase (perpetual)'] || r['Commercial|One-time purchase (perpetual)'] || 0; } function wsCost(prefix, cores, seg, sfx) { return Math.floor(cores / 16) * p(prefix + ' 16 Core' + sfx, seg) + (cores % 16) / 2 * p(prefix + ' 2 Core' + sfx, seg); } C2N.mount(document.getElementById('es'), function (v) { var yrs = +v.years, seg = v.seg, top = v.ed === 'top', rows = [], esu = 0, up = 0, upLabel = '', label = ''; [].forEach.call(document.querySelectorAll('#es [data-prod]'), function (l) { l.hidden = (l.dataset.prod === 'w10') !== (v.prod === 'w10'); }); if (v.prod === 'ws') { var c = Math.max(16, v.cores + v.cores % 2), ed = top ? 'Datacenter' : 'Standard', pre = 'Win Server ' + (top ? 'DC' : 'Std') + ' Core Ext Security 2016'; for (var i = 0; i < yrs; i++) { var y = wsCost(pre, c, seg, ' Y' + (i + 1) + ' ' + WSY[i]) * v.servers; esu += y; rows.push(['Year ' + (i + 1) + ' ' + WSY[i].replace(/[()]/g, ''), $(y)]); } up = (Math.floor(c / 16) * p('Windows Server 2025 ' + ed + (top ? ' - 16 Core' : ' - 16 Core License Pack'), seg) + (c % 16) / 2 * p('Windows Server 2025 ' + ed + ' - 2 Core', seg)) * v.servers; upLabel = 'Windows Server 2025 ' + ed + ' licenses'; label = v.servers + ' servers x ' + c + ' cores, Windows Server 2016 ' + ed; } else if (v.prod === 'sql') { var sc = Math.max(4, v.cores + v.cores % 2), sed = top ? 'EE' : 'Std'; for (var j = 0; j < yrs; j++) { var s = sc / 2 * p('ESU for SQL 2016 ' + sed + ' 2 Core pack ' + SQY[j], seg) * v.servers; esu += s; rows.push([SQY[j].replace(/[()]/g, ''), $(s)]); } up = sc / 2 * p('SQL Server 2025 ' + (top ? 'Enterprise' : 'Standard') + ' core - 2 core License Pack', seg) * v.servers; upLabel = 'SQL Server 2025 ' + (top ? 'Enterprise' : 'Standard') + ' licenses'; label = v.servers + ' servers x ' + sc + ' cores, SQL Server 2016 ' + (top ? 'Enterprise' : 'Standard'); } else { for (var k = 0; k < yrs; k++) { var w = v.devices * p('Windows 10 ESU ' + W10[k], seg); esu += w; rows.push([W10[k].replace(/[()]/g, ''), $(w)]); } up = 0; upLabel = 'Windows 11 upgrade (eligible hardware)'; label = v.devices + ' Windows 10 devices'; } var cheaper = up < esu, w10 = v.prod === 'w10'; C2N.render(document.getElementById('es-out'), { title: 'Extended Security Updates', lead: yrs + ' year' + (yrs > 1 ? 's' : '') + ' of updates for ' + label + ' cost <strong>' + $(esu) + '</strong>. ' + (w10 ? 'Devices that meet the Windows 11 hardware requirements upgrade at no license cost; ESU only makes sense for the ones that cannot.' : cheaper ? 'Upgrading costs ' + $(up) + ' once and keeps you supported for years, ' + $(esu - up) + ' less.' : 'ESU is cheaper than upgrading for this period; plan the move before it runs out.'), kpis: [['ESU, ' + yrs + ' year' + (yrs > 1 ? 's' : ''), $(esu), 'bought one year at a time'], [w10 ? 'Windows 11 upgrade' : 'Upgrade instead', w10 ? 'No charge' : $(up), upLabel]], head: ['Coverage year', 'Cost'], rows: rows, total: ['Total ESU', $(esu)], note: 'Microsoft US list price, ' + seg + ', current month. Azure-hosted workloads get ESU at no charge. A person confirms every quote.', cta: ['Get an upgrade quote', '/tools/forms/?f=quote&items=' + encodeURIComponent(label + ': ESU ' + yrs + ' yr est. ' + $(esu) + ' vs upgrade est. ' + $(up))] }); }); })();