Methodology
How bills are calculated and servers ranked
Every number on ServerDiff follows the rules on this page. The same rules apply to every server, and no position on a list can be paid for.
Last updated Calculation version bill-2026.11-1
On this page14
- 1How a bill is calculated
- 2A worked example
- 3Currencies, VAT and rounding
- 4Unknown, included, not offered
- 5How the list is ordered
- 6Best picks and provider ratings
- 7Sponsored placements
- 8Filters and unknown specs
- 9Freshness
- 10Sample, unverified, verified
- 11Configurations and history
- 12Corrections
- 13What a bill leaves out
- 14Changes to this method
How a bill is calculated
Each bill is worked out under one set of assumptions, shown above every list: how many months you keep the server (12 unless you change it), the currency, VAT, the options you need and how much traffic you expect. The same assumptions apply to every row, so the totals can be compared directly. A bill is a list of lines, each with its own amount:
- Months you pay for. The months you choose are rounded up to the provider’s minimum term and to whole billing periods. A plan billed every 12 months costs 12 months even if you need it for one, and the bill adds a commitment line that says so.
- Server price. When a plan has an introductory price, the bill splits it into two lines: the months at the introductory price and the months at the regular price after the offer ends. A plan at €2.00 for six months and €4.00 afterwards costs €36.00 over 12 months, which is €3.00 a month rather than the €2.00 on the banner.
- Setup fee. Charged once, when the provider asks for one.
- Public IPv4 address. The monthly address fee, for every month you pay for. It is on by default; switch off Public IPv4 if IPv6 alone works for you, and the fee leaves every bill.
- Backups. Only when you switch Backups on. Some providers charge a fixed monthly price, others a percentage of the server price. A percentage is applied to each monthly invoice and rounded on its own, the way providers bill: 20% of €3.79 is €0.758, so €0.76 a month.
- Traffic over the allowance. Your estimate of monthly traffic (1 TB unless you change it) is compared with the plan’s monthly allowance. Unmetered plans add nothing. Traffic above the allowance is charged at the provider’s price per TB for each month you keep the server: 5 TB a month on a plan with 2 TB included and €1.00 per extra TB adds €3.00 a month, €36.00 over 12 months.
- VAT. Prices are compared excluding VAT until you choose a country. Then one VAT line is added at that country’s standard rate, calculated on the subtotal of the other lines after conversion into your currency.
Under the lines, every bill shows four figures:
- Total for the period: the sum of the lines shown and nothing else.
- Per month: the total divided by the months you chose, rounded to the cent. When a minimum term makes you pay for more months than you use, the per-month figure carries that cost.
- Due at sign-up: the first billing period plus one-time fees, with VAT if you chose it. Traffic is billed later, so it is not part of this figure.
- Extras: how much the per-month bill exceeds the advertised monthly price on the same VAT basis. This is what the price tag leaves out.
A worked example
A server advertised at €3.79 a month, with a €0.50 monthly fee for its IPv4 address, no setup fee and 20 TB of traffic included, kept for 12 months with the default assumptions:
Excluding VAT
12 months| Server 12 × €3.79 | €45.48 |
|---|---|
| Setup fee None | €0.00 |
| IPv4 address 12 × €0.50 | €6.00 |
| Traffic 1 TB of 20 TB included | €0.00 |
| Total, 12 months | €51.48 |
| Per month | €4.29 |
VAT Germany 19%
12 months| Server 12 × €3.79 | €45.48 |
|---|---|
| Setup fee None | €0.00 |
| IPv4 address 12 × €0.50 | €6.00 |
| Traffic 1 TB of 20 TB included | €0.00 |
| VAT 19% Germany | €9.78 |
| Total, 12 months | €61.26 |
| Per month | €5.11 |
Excluding VAT, the server costs 12 × €3.79 = €45.48 and the address 12 × €0.50 = €6.00: €51.48 in total, or €4.29 a month, €0.50 more than the price tag.
With VAT for Germany at 19%, the VAT on €51.48 is €9.7812, rounded to €9.78, so the total is €61.26. Divided by 12 that is €5.105, which rounds half up to €5.11 a month. The price tag on the same basis is €4.51, so the extras come to €0.60 a month.
The two bills above are computed by the same code that computes every bill on the site, each time this page is served.
Currencies, VAT and rounding
- Amounts are stored and calculated as whole cents. No floating-point arithmetic touches a price.
- Each line is computed in the provider’s own currency, then converted into yours line by line, rounding half up to the cent. The total is the sum of the converted lines, so it always equals what you can add up yourself.
- Exchange rates are stored as whole numbers (millionths of a unit) together with the date they apply to and their source. A converted bill names the rate date it used.
- VAT is a percentage of the converted subtotal, rounded half up once for the whole period. Providers round VAT on each invoice and your card may convert at a different rate, so real charges can differ by a few cents. The provider’s checkout is always final.
The VAT setting starts at “Excluding VAT”. The other choices add the standard rate of one country: Austria 20%, Belgium 21%, Germany 19%, Denmark 25%, Spain 21%, Finland 25.5%, France 20%, Ireland 23%, Italy 22%, Netherlands 21%, Poland 23%, Portugal 23%, Sweden 25%, Bulgaria 20%, Cyprus 19%, Czechia 21%, Estonia 24%, Greece 24%, Croatia 25%, Hungary 27%, Lithuania 21%, Luxembourg 17%, Latvia 21%, Malta 18%, Romania 21%, Slovenia 22%, Slovakia 23%, United Kingdom 20%, Switzerland 8.1%, Norway 25%, Australia (GST) 10%, Canada (GST only) 5%, India (GST) 18%, Japan (consumption tax) 10%, New Zealand (GST) 15%, Singapore (GST) 9%. Whether you pay VAT, and at which rate, depends on you and the provider.
Unknown, included and not offered
Each charge on a plan is in one of four states:
- Priced
- We know the amount, and it goes on the bill.
- Included
- The provider includes it at no extra charge. The line shows €0.00, or “None” for a setup fee.
- Not published
- The provider does not publish the price. The line says “Not published” and adds nothing, and the list names the fee next to the price, for example “Setup fee not published”, so you can check it on the provider’s page before you order.
- Not offered
- The provider does not sell it. If you asked for it, for example backups, the server leaves the list and a note under the list counts how many servers were left out this way. For a setup fee, “not offered” means there is none.
A fee that is not published is never shown as free: it is named next to the price instead.
How the list is ordered
The default order follows one rule, applied in this sequence:
- Keep the servers that match every filter you set and are not hidden or discontinued. Sold-out servers stay, marked as sold out.
- Leave out servers whose price has not been checked within its freshness budget and servers that lack an option you asked for. The note under the list counts both.
- Sort by the bill per month under the assumptions shown, lowest first.
- Break ties by the server’s permanent ID number, so the same inputs always give the same order. (When you sort by something else, ties are broken by the bill per month first.)
Commission is not an input. The code that sorts never reads whether a provider has an affiliate programme, and an automated test checks that switching affiliate links on and off leaves the order unchanged. Nothing else is an input either: there are no sponsored positions, boosts or personalised orders inside the list.
You can also sort by Price tag, Bill per GB of memory, Name or by a specification (CPU, Memory, Storage). Specification sorts start with the largest value, and every column can be reversed. Servers with an unknown value in the sorted column stay at the end whichever way you sort. Lists show 25 servers per page (50 or 100 on request), and every page has its own address.
Best picks and provider ratings
The finder sorts by the bill alone. Pages that name a “best” server, such as Best VPS, also ask how good the provider is, because the cheapest plan is not always the one we would buy. Each provider’s cheapest plan in a size gets a score out of 10 from three parts with fixed weights:
- Real bill, 50%. The plan’s monthly bill against the cheapest bill in that size, on a log scale: the cheapest scores 10, twice the cheapest 5, four times or more 0.
- User reviews, 35%. The provider’s average rating on public review sites (Trustpilot, HostAdvice and similar), each site weighted by its number of reviews up to 2,000 (HostAdvice’s reviews count half, because its headline rating includes its own expert score), then adjusted for how many reviews there are: the average is pulled toward 3.5 stars by 40 imaginary reviews, so a handful of five-star reviews cannot beat thousands of good ones. 2.5 stars or less scores 0, 4.8 or more scores 10, and a provider with no reviews found scores 2.5. Ratings are read from each site on the date shown and are never estimated.
- Company record, 15%. 6 points when the company behind the brand passes our checks (a legal name, a registered country and a published address), plus up to 4 points for years in business, full marks at ten years.
The provider ratings page lists providers by the same adjusted review score and shows the plain average and the number of reviews next to it, so you can check them on the review sites. Commission, affiliate links and sponsorship are not part of any score.
Sponsored placements
Providers can pay for a sponsored box in a few marked places, for example under a list or beside a server’s details. A sponsored box always carries the word “Sponsored”, is drawn apart from the ranked list, and never changes the order, the score, the bill or any badge. If no one has bought a place, the box is not shown.
Filters and unknown specifications
- A server matches a filter only when its value is known and meets it. If you ask for at least 8 GB of memory, a server whose memory we have not recorded is left out, and the note under the list says how many servers were dropped because a value was unknown.
- Ranges include both ends, so 4–16 GB includes 4 and 16 GB. A single number means “at least”.
- Choice filters, such as cores or architecture, match any of the values you tick. Yes-or-no filters, such as IPv6, need a confirmed yes.
- Location filters match a server offered in at least one of the countries or cities you chose. The in-stock filter needs at least one location confirmed in stock; unconfirmed stock counts as unknown, not as in stock.
- The bill filter applies to the bill per month under your assumptions, not to the price tag.
- Search matches servers whose provider and plan names contain every word you type.
Freshness
Every price records when it was last checked successfully at its source. A failed check never moves that date forward. How long a check stays current depends on how the price is collected:
| Collected | Shown as aging after | Left out of rankings after |
|---|---|---|
| Checked by hand | 14 days | 45 days |
| Provider API | 24 hours | 72 hours |
| Provider feed | 24 hours | 72 hours |
| Provider price page | 24 hours | 72 hours |
| Listing site | 24 hours | 72 hours |
Aging prices stay in the list with their date. Prices past the second limit leave the rankings, the note under the list counts them, and their pages are kept out of search engines until they are checked again. Freshness is recalculated at least every five minutes.
Sample, unverified and verified data
- Sample
- Illustrative values typed in to preview the site, not checked against the provider. They are labelled “Sample data”, and no page built on them is offered to search engines.
- Unverified
- Collected, but not yet confirmed at the provider’s own source. Shown with a label, and kept out of search engines.
- Verified
- Read automatically from a source the server’s page names, or checked by an editor, and labelled
with the way it was done. The date of the last check is always shown, and verification cannot be
bought. Prices are collected by three routes, each with its own label:
- Checked via API: read automatically from the provider’s public price API, for example api.vultr.com. The server’s page names the API. No editor has looked at these prices by hand: if the provider’s API is wrong, the price is too, and a correction report reaches an editor.
- Read from price page: read automatically from the provider’s own public pricing page, for example contabo.com. Only pages the provider’s robots.txt allows are read, one request per page. When the page’s layout changes, the whole run stops and nothing is stored: a price is never guessed. No editor has checked these prices by hand either.
- From a listing site: read from a third-party site that lists providers’ plans. The server’s page names and links that site (“From …”). These prices are not checked at the provider itself, so the provider’s own page has the last word.
- Checked by an editor: an editor compared the price and terms with the provider’s own page.
Today, 1,541 prices from AWS Lightsail, Microsoft Azure, Vultr, Cherry Servers, Akamai (Linode), phoenixNAP, Scaleway, OVHcloud, BinaryLane, Webdock and Verda are checked via API; 454 from Contabo, BandwagonHost, HostDime, netcup, HostAfrica, Hostwinds, Cloudzy, ServerMania, LayerStack, hosttech, RoseHosting, ScalaHosting, webgo, RackNerd, Locaweb, WinterNode, IONOS, SwissLayer, 1Gbits, Hostinger and Ultahost are read from their own price pages; 119 come from listing sites (StackRates).
Listing sites we use. Prices marked “From StackRates” come from the StackRates hosting price index, an open dataset of providers’ list prices that StackRates reads from their pages every day, released under the Creative Commons Attribution 4.0 licence (CC BY 4.0). The prices themselves are facts published by each provider. We use it only for providers we cannot read from their own API or pricing page, and we change it as follows: a price is shown in the currency the provider bills in, plans StackRates last read more than seven days ago or reports as sold out are left out, and what the dataset does not cover (setup fee, backups, the price of traffic over the allowance) is shown as not published. Every price taken from it names StackRates and links its data page.
We also checked GPU Rental Prices (CC BY 4.0) for GPU servers. It is not used yet: its rows give a price per GPU-hour without the processor, memory, storage and location every server here needs.
Configurations and price history
Each server has a configuration fingerprint: a hash of the provider, plan name, category, currency, billing period, minimum term and specifications. When only the price or fees change, the fingerprint stays the same and the change joins that server’s price history. When the specification or the terms change, the fingerprint changes too, so a different product is never presented as a price change.
Every change to the price, fees or configuration records an observation with its date, source and data status, and who or what made it. History starts when a server is added to ServerDiff; earlier prices are not reconstructed. Observations keep the provider’s own currency, so exchange-rate movements never show up as price changes.
Corrections
Every server page has a “Report a correction” form: describe the problem and, if you like, leave an e-mail address for a reply. An editor checks the report against the provider’s page. Accepted corrections update the record, every change is logged with its date, who made it and why, and price changes appear in the server’s price history. Providers can write to [email protected] as well.
What a bill leaves out
- Charges without a line of their own: payment fees, licences for commercial operating systems or control panels, extra volumes, snapshots and support plans. Taxes other than VAT are not included either.
- The provider’s final word. Bills are estimates for comparison; the provider’s checkout and invoices decide what you pay.
- The whole market. Coverage is limited to the providers listed on ServerDiff.
- Performance. A vCPU is not the same unit at every provider and there are no benchmarks here yet, so compare like with like using the cores filter.
Changes to this method
The calculation has a version number, currently bill-2026.11-1. Any change to how
bills are calculated gets a new version, and this page is updated with the date and what changed.