Microsoft 365 Subscription Comparisons
Only the differences that change your decision. Pick two plans and see what the more expensive one adds, what it costs per user and for your headcount, and what stays the same.
The comparisons we are asked about most
Business Premium vs E3
Under 300 people, Business Premium usually wins: it adds email threat protection that E3 lacks and costs less. E3 brings Windows Enterprise rights, larger mailboxes and no seat cap.
E3 vs E5
E5 is worth it when you need several of its extras at once: risk-based Conditional Access, full endpoint detection and response, automatic labeling, Teams Phone and Power BI Pro. For one or two, compare add-ons with the E5 vs E3 calculator.
Business Standard vs Premium
The apps are identical. Premium adds device management, Conditional Access, Defender for Business and email threat protection: the security baseline most small businesses need.
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 }; })(); window.C2N_PLANS = { plans: [ ['bb', 'Business Basic', 'Microsoft 365 Business Basic'], ['bs', 'Business Standard', 'Microsoft 365 Business Standard'], ['bp', 'Business Premium', 'Microsoft 365 Business Premium'], ['f3', 'Microsoft 365 F3', 'Microsoft 365 F3'], ['o1', 'Office 365 E1', 'Office 365 E1'], ['o3', 'Office 365 E3', 'Office 365 E3'], ['e3', 'Microsoft 365 E3', 'Microsoft 365 E3'], ['e5', 'Microsoft 365 E5', 'Microsoft 365 E5']], groups: [ ['Apps and storage', [ ['webapps', 'Office web and mobile apps', { bb: 1, bs: 1, bp: 1, f3: 1, o1: 1, o3: 1, e3: 1, e5: 1 }], ['desktop', 'Desktop Office apps (Word, Excel, Outlook)', { bs: 1, bp: 1, o3: 1, e3: 1, e5: 1 }], ['mailbox', 'Mailbox size', { bb: '50 GB', bs: '50 GB', bp: '50 GB', f3: '2 GB', o1: '50 GB', o3: '100 GB', e3: '100 GB', e5: '100 GB' }], ['onedrive', 'OneDrive storage', { bb: '1 TB', bs: '1 TB', bp: '1 TB', f3: '2 GB', o1: '1 TB', o3: '1 TB+', e3: '1 TB+', e5: '1 TB+' }], ['seats', 'Seat limit', { bb: '300', bs: '300', bp: '300', f3: 'None', o1: 'None', o3: 'None', e3: 'None', e5: 'None' }]]], ['Identity and devices', [ ['p1', 'Conditional Access (Entra ID P1)', { bp: 1, f3: 1, e3: 1, e5: 1 }], ['p2', 'Risk-based access and PIM (Entra ID P2)', { e5: 1 }], ['intune', 'Device management (Intune)', { bp: 1, f3: 1, e3: 1, e5: 1 }], ['winent', 'Windows Enterprise rights', { e3: 1, e5: 1 }]]], ['Security', [ ['mde', 'Endpoint protection', { bp: 'Defender for Business', e3: 'Defender for Endpoint P1', e5: 'Defender for Endpoint P2' }], ['mdo', 'Email threat protection', { bp: 'Defender for Office P1', e5: 'Defender for Office P2' }], ['mdi', 'Identity threat detection (Defender for Identity)', { e5: 1 }], ['mca', 'Cloud app discovery (Defender for Cloud Apps)', { e5: 1 }]]], ['Compliance', [ ['labels', 'Sensitivity labels (manual)', { bp: 1, o3: 1, e3: 1, e5: 1 }], ['autolabel', 'Automatic labeling', { e5: 1 }], ['dlp', 'Data loss prevention (email and files)', { bp: 1, o3: 1, e3: 1, e5: 1 }], ['ediscovery', 'eDiscovery and litigation hold', { bp: 'Standard', o3: 'Standard', e3: 'Standard', e5: 'Premium' }], ['irm', 'Insider Risk Management', { e5: 1 }]]], ['Voice and analytics', [ ['phone', 'Teams Phone', { e5: 1 }], ['pbi', 'Power BI Pro', { e5: 1 }]]]] }; (function () { var P = {"Microsoft 365 Business Basic":{"c":[84,7.35,8.4]},"Microsoft 365 Business Standard":{"c":[168,14.7,16.8]},"Microsoft 365 Business Premium":{"c":[264,23.1,26.4]},"Microsoft 365 F3":{"c":[120,10.5,12]},"Office 365 E1":{"c":[120,10.5,12]},"Office 365 E3":{"c":[312,27.3,31.2]},"Microsoft 365 E3":{"c":[468,40.95,46.8]},"Microsoft 365 E5":{"c":[720,63,72]}}; var M = C2N_PLANS, f = document.getElementById('cp'), $ = C2N.money; f.b.value = 'e3'; f.a.value = 'bp'; function plan(k) { return M.plans.filter(function (p) { return p[0] === k; })[0]; } function price(p) { return P[p[2]].c[0] / 12; } function show(v) { return v === 1 ? 'Included' : v ? v : '<span style="color:#C9C3BA">Not included</span>'; } C2N.mount(f, function (v) { var a = plan(v.a), b = plan(v.b), users = Math.max(1, v.users), pa = price(a), pb = price(b), rows = [], same = 0; M.groups.forEach(function (g) { g[1].forEach(function (r) { var x = r[2][a[0]] || 0, y = r[2][b[0]] || 0; if (x === y) same++; else rows.push([r[1], show(x), show(y)]); }); }); var hi = pa >= pb ? a : b, lo = hi === a ? b : a, diff = Math.abs(pa - pb); C2N.render(document.getElementById('cp-out'), { title: a[1] + ' vs ' + b[1], lead: a[0] === b[0] ? 'Pick two different plans to compare.' : '<strong>' + hi[1] + '</strong> costs ' + $(diff, 2) + ' more per user per month than ' + lo[1] + ', ' + $(diff * users * 12) + ' a year for ' + users + ' users. ' + rows.length + ' capabilities differ; ' + same + ' are the same.' + (users > 300 ? ' Note: Business plans stop at 300 seats.' : ''), kpis: [[a[1], $(pa, 2), 'per user / month'], [b[1], $(pb, 2), 'per user / month']], head: ['What differs', a[1], b[1]], rows: rows.length ? rows : [['No differences in this summary', '', '']], total: ['Per year, ' + users + ' users', $(pa * users * 12), $(pb * users * 12)], note: 'Microsoft US list price, Commercial, annual commitment, current month. Summary of included services; the Microsoft Product Terms govern.', cta: ['Get advice on this choice', '/tools/forms/?f=quote&items=' + encodeURIComponent(users + ' users: ' + a[2] + ' vs ' + b[2])] }); }); })();