Method: where every figure comes from and how the ordering is produced
Every price on this site is copied from the provider's own published pricing page, with the date it was read. Nothing is estimated, and no third-party figure is used anywhere.
Every ordering is by one computed number — cost per seat per month over three years, ascending — and listing position is not for sale.
The formula, in full
Nothing else is added. Taxes, regulatory recovery fees, USF and e911 charges are not added to any figure on this site. On taxes and regulatory fees, 2 of the 37 providers state that the price already carries them on at least one plan, 0 publish what they come to, 14 say they are extra without an amount, and 21 say nothing. Where a provider says the price is all-inclusive or includes them, the page says so beside the figure; everywhere else the invoice will be higher than the figure. Where a plan needs another subscription first (a Google Workspace or Microsoft Teams license), that subscription is not in the figure and the page says so. Handset purchases, number porting, international calling and overage are excluded. Every figure here is a floor. The full method is at Method.
What is added and what is not
Added: the published seat price, the minimum seats where the provider states one, and the setup fee where one is published.
Added for flat packages: the published price per additional user, multiplied by the seats above the included allowance. Where that price is not published, the cell at larger sizes is empty rather than a guess.
Not added: taxes, regulatory recovery fees, USF, e911 and administrative surcharges (except where the provider states they are already in the price); the price of a prerequisite subscription such as a Google Workspace or Microsoft Teams license; handsets; number porting; international calling; overage. Every figure on this site is a floor, not a forecast.
Which plan is priced at each team size
A provider is not one price. At each seat count we compute, we take every plan the provider publishes, drop the ones whose stated minimum or maximum excludes that size, drop add-ons that are not a phone system on their own, and price the cheapest plan that is left. So a provider whose entry plan stops at 10 or 20 users is not marked unavailable at 25 seats; it is priced on the plan it would actually sell you at 25 seats, and the tables name that plan.
Three classes of plan, and which ones rank
- Complete phone system. The seat price buys a phone number and outside calling. These rank against each other.
- Phone license with a prerequisite. The seat price is the phone part, but the provider requires another subscription first — Google Voice needs a Google Workspace plan, Teams Phone calling plans need a Microsoft Teams license. These rank on the phone license, and every table marks them + billed separately. Where the prerequisite's own published price could be read (Microsoft Teams Essentials at $4 for Teams Phone — the cheapest license Microsoft lists as eligible; Google Workspace Business Starter at $7 for Google Voice), the provider's page also shows the minimum usable stack: phone license plus that license, per seat. Where it cannot be read, no stack total is shown rather than a guess. If you already pay for the prerequisite, the plain figure is your incremental cost.
- Add-on only. Teams Phone Standard at $10 adds phone features to a Teams license but includes no way to call outside. It is priced on the provider's page and ranked nowhere, because a $10 add-on placed against a $20 complete system is not a comparison.
- Calls not in the seat price. Zoom Phone's US & CA Metered plan is a complete phone system, but outbound calls are billed per minute on top of the seat price. BT Cloud Voice publishes licence prices and sells calls separately, as optional call packages. Both are priced on the provider's page and ranked nowhere, because the seat price is not what a seat costs; where the provider also sells a plan with calls included, the ranking uses that one.
Taxes and fees are not one thing
A US business phone invoice carries several kinds of charge on top of the seat price, and providers treat them differently, so this site no longer describes them with one sentence.
- Government taxes and mandated surcharges — state and local taxes, 911 surcharges, Universal Service contributions. They vary by location and are passed through.
- Provider-set recovery and administrative fees — RingCentral names a Compliance and Administrative Cost Recovery Fee and says its E911 Cost Recovery Fee is “not a government-mandated charge”. These are set by the provider, and we do not call them taxes.
- Included — Microsoft states that its Teams Phone calling plans “include communication taxes and fees”.
- All-inclusive — Talkroute states that it adds no separate telecom taxes, USF or regulatory fees.
- Conditional — SMS registration and similar charges that apply only if you use the feature. We do not add these to anyone.
On taxes and regulatory fees, 2 of the 37 providers state that the price already carries them on at least one plan, 0 publish what they come to, 14 say they are extra without an amount, and 21 say nothing. Where a provider says the price is all-inclusive or includes them, the page says so beside the figure; everywhere else the invoice will be higher than the figure. Not one provider publishes a percentage. Each provider's page states which position it takes, with the source, and the table below lists every provider by that position.
| Position | Providers | Who |
|---|---|---|
| All-inclusive | 1 | Talkroute |
| Varies by plan | 1 | Microsoft Teams Phone |
| Extra, varies by location | 2 | Ooma Office, OpenPhone (now Quo) |
| Extra, no amount | 12 | 3CX, 8x8 (8x8 Work), Dialpad (Connect), Google Voice, GoTo Connect, magicJack for BUSINESS, Nextiva, NUACOM, Phone.com, RingCentral (RingEX), Vonage Business Communications, Zoom Phone |
| Not stated | 21 | 4Com, 8x8, Aircall, Babble, bOnline, BT Cloud Voice, CallHippo, Dialpad, Gradwell (Wave), Grasshopper, Intermedia Unite, JustCall, Line2, net2phone, RingCentral (RingEX), Switchvox Cloud, Telecoms World, Voipfone, Vonage (Vonage Business Communications), Yay.com, Zoom Phone |
Scroll sideways on a phone.
Three reasons a price can be missing
These are not the same thing and this site does not mix them:
- The provider does not publish one (6 providers). Its own pages ask you to contact sales. We quote that wording.
- We could not read it (2 providers). The page draws its figures with scripts that did not run when we retrieved it. That is our limitation and it is labeled as ours, not held against the provider.
- It is published in another currency (1 providers). We do not convert.
Two published prices that do not rank
A $0 tier does not rank. One provider here publishes a free tier. The figure is real and it appears on that provider's own page on this site, but a free tier whose conditions are not published in the page text we read is not the cost of running a team for three years, so the orderings use the provider's cheapest paid plan instead.
A flat price with a stated user allowance is priced with its published additional-user charge. Talkroute's $59 Pro plan includes 10 users and publishes $5 per additional user, so 25 seats is $134 a month. Where the additional-user charge is not published, the cell at larger team sizes stays empty rather than pretending the extra users are free.
Plans whose status is unclear
Sometimes a provider's older plan names stay readable in a component of its pricing page while the plans it sells today have different names and prices. We do not delete the older figures; we mark them legacy, keep them on the provider's page for the record, and rank only the current plans. Where we cannot yet tell which set is current, the plan is marked status unclear and the question is listed in the row's unconfirmed items. RingCentral's Essentials / Standard / Premium / Ultimate rows are the current example of legacy plans.
Corrections
When a figure or a description on this site is corrected, the change is recorded against the row with the date and the reason, and it appears on the provider's page. The log is not rewritten. Changes on the provider's own page (a new price, a renamed plan, a changed billing condition) are recorded the same way and tagged as the provider's change rather than our correction. The full log by month is at What changed, with an RSS feed. The 15 most recent entries:
- 2026-09-05 — bOnline — Starter:
per_seat_annualnot held → 7.0. Headline £/user/mo price is a contract price (plan page: 12-month contract), so it belongs in the annual/long-term column; no month-to-month price is published. - 2026-09-05 — bOnline — Starter:
per_seat_monthly7.0 → not held. Moved to per_seat_annual (contract price). Month-to-month price not published. - 2026-09-05 — bOnline — Starter:
contract_monthsnot held → 12. Plan page legal note: "£7.00+vat per seat per month with a 12-month contract". - 2026-09-05 — bOnline — Starter:
free_trial_daysnot held → 30. Terms of Business 2.3: "thirty (30) day trial" (UK only). - 2026-09-05 — bOnline — Unlimited Calling:
per_seat_annualnot held → 13.95. Headline £/user/mo price is a contract price (plan page: 12-month contract), so it belongs in the annual/long-term column; no month-to-month price is published. - 2026-09-05 — bOnline — Unlimited Calling:
per_seat_monthly13.95 → not held. Moved to per_seat_annual (contract price). Month-to-month price not published. - 2026-09-05 — bOnline — Unlimited Calling:
contract_monthsnot held → 12. Plan page legal note: 12-month contract (24-month option also mentioned); card price identical on 36 / 24 / 12 months tabs. - 2026-09-05 — bOnline — Unlimited Calling:
free_trial_daysnot held → 30. Terms of Business 2.3: "thirty (30) day trial" (UK only). - 2026-09-05 — bOnline — AI For Business Calls:
per_seat_annualnot held → 19.95. Headline £/user/mo price is a contract price (plan page: 12-month contract), so it belongs in the annual/long-term column; no month-to-month price is published. - 2026-09-05 — bOnline — AI For Business Calls:
per_seat_monthly19.95 → not held. Moved to per_seat_annual (contract price). Month-to-month price not published. - 2026-09-05 — bOnline — AI For Business Calls:
free_trial_daysnot held → 30. Terms of Business 2.3: "thirty (30) day trial" (UK only). - 2026-09-05 — BT Cloud Voice —
plansPublished plans → Basic; Connect; Collaborate. Page now publishes licence prices ("a month per 60 month licence", ex VAT). - 2026-09-05 — BT Cloud Voice — Basic:
per_seat_annualnot held → 10.52. Page now publishes licence prices ("a month per 60 month licence", ex VAT). - 2026-09-05 — BT Cloud Voice — Basic:
contract_monthsnot held → 60. Page now publishes licence prices ("a month per 60 month licence", ex VAT). - 2026-09-05 — BT Cloud Voice — Connect:
per_seat_annualnot held → 13.74. Page now publishes licence prices ("a month per 60 month licence", ex VAT).
How ties are broken
Cost per seat over three years, ascending. If two plans are equal, the lower published seat price goes first. If those are equal too, alphabetically by provider. That is the entire sort key. There is no score, no weighting, no editorial adjustment and no provider input.
What is not in the sort key
Commission. Whether a provider runs an affiliate program at all. Whether we have applied to it. Brand size, review counts, uptime claims, support quality. The disclosure page names every program we are in.
Annual and monthly prices are not the same number
Most providers advertise the annual-billing rate. Where the monthly rate is also published we record both and print the ratio. Where it is not, the cell says so rather than assuming they are equal.
VAT, and why we do not convert
UK providers publish on different bases: some quote ex-VAT, some inc-VAT, and some do not say. At 20% that is larger than most of the gaps between providers. We print the figure as published and label the basis where it is stated. We do not convert, because converting means printing a number no provider published.
Currency
USD plans appear in the United States tables, GBP plans in the United Kingdom tables. We never convert between currencies.
How often this is re-checked
Every figure carries the date it was read. The whole dataset was last refreshed on 2026-08-21. Any figure older than 90 days is automatically labeled “not re-checked since” on every page it appears on — that label is generated, not written by hand.
What we do not do
We do not test these products, and no page here claims otherwise. There are no ratings, no stars, no badges and no “editor's choice”. We have never been paid for placement and we do not sell listings, reviews or leads. We do not collect your phone number and we do not pass anyone's details to a provider.
The data itself
The whole dataset is published under CC BY 4.0, with the source URL and check date attached to every row: data.csv (one row per plan, opens in a spreadsheet) and data.json (plans nested inside each provider, with the change history). The dataset page defines every column and says what is deliberately not in it. If a figure here is wrong, tell us and it will be re-checked and re-dated.
Cite this data
Cite the dataset rather than a single page, and give the date you took the figure — they move. The reference to use, the BibTeX entry and the licence terms are on the dataset page.
This site is 215 pages, generated from 37 rows of data by one script. 80 of 108 plans carry enough published detail to compute with.
Related
Written by Kaz (pen name). Figures are copied from providers' published pricing pages on the dates shown. We have not used these products. Corrections: contact form.