EU VPS floor (2 vCPU / 4 GB)
The EU VPS floor (2 vCPU / 4 GB) is EUR 4.49 per month on 2026-10-24 (n=7 providers), set by vps/ovhcloud/vps-2027-model1. Definition: The lowest monthly list price, in EUR excluding VAT, for a VPS with at least 2 vCPU and at least 4 GB RAM, sold in an EU datacentre, across the providers whose price APIs we read.
Computed from the SKU state at the end of each UTC day (latest value: 2026-10-24; today's value is recomputed until the day ends). The constituents of the latest value are listed below; each shows when it was verified and links to its source.
Change over this window: 0.0% from 2026-10-19 to 2026-10-24 (like for like, on the constituents both days share).
Dashed lines with a diamond mark days on which the set of constituents (n) changed; a jump on such a day can be coverage, not a price move.
Download this chart: SVG · PNG · CSV · JSON
Constituents of the latest value
| SKU | EUR per month | Detail | Last verified | Source |
|---|---|---|---|---|
| vps/ovhcloud/vps-2027-model1 | 4.49 | 2026-10-23 22:44 UTC | source (first-party) | |
| vps/netcup/vps-500 | 7.98 | 2026-10-23 00:54 UTC | source (first-party) | |
| vps/scaleway/dev1-m | 14.74 | 2026-10-23 22:44 UTC | source (first-party) | |
| vps/vultr/vc2-2c-4gb | 17.87 | 2026-10-23 22:44 UTC | source (first-party) | |
| vps/transip/v3 | 20.00 | 2026-10-23 00:54 UTC | source (first-party) | |
| vps/linode/g6-standard-2 | 21.44 | 2026-10-23 22:53 UTC | source (first-party) | |
| vps/azure/standard_b2ls_v2 | 31.31 | 2026-10-23 12:28 UTC | source (first-party) |
Details of the latest value
- Region
- eu
- VCPU min
- 2
- RAM GB min
- 4
- Min coverage
- 3
- SKU ID
- vps/ovhcloud/vps-2027-model1
- Provider
- ovhcloud
- stale constituents left out
- 0
- coverage changed
- no
All fields (raw JSON)
{
"chain": {
"broken": false,
"change_pct": 0.0,
"index": 100.0,
"matched": 7,
"prev_day": "2026-10-23",
"ratio": 1.0
},
"constituents": {
"azure|vps/azure/standard_a2_v2": 56.153846,
"azure|vps/azure/standard_b2as_v2": 56.349504,
"azure|vps/azure/standard_b2ls_v2": 31.30528,
"azure|vps/azure/standard_b2s": 31.30528,
"azure|vps/azure/standard_b2s_v2": 62.61056,
"azure|vps/azure/standard_d2as_v5": 67.828107,
"azure|vps/azure/standard_d2ls_v5": 63.262754,
"azure|vps/azure/standard_d2s_v3": 78.2632,
"azure|vps/azure/standard_d2s_v5": 75.002234,
"azure|vps/azure/standard_f2s_v2": 63.262754,
"linode|vps/linode/g6-dedicated-2": 32.162959,
"linode|vps/linode/g6-dedicated-4": 64.325918,
"linode|vps/linode/g6-dedicated-8": 128.651836,
"linode|vps/linode/g6-standard-2": 21.441973,
"linode|vps/linode/g6-standard-4": 42.883945,
"linode|vps/linode/g6-standard-6": 85.767891,
"linode|vps/linode/g7-dedicated-4-2": 38.416868,
"linode|vps/linode/g7-dedicated-8-4": 76.833735,
"linode|vps/linode/g7-highmem-1": 53.604932,
"linode|vps/linode/g7-highmem-2": 107.209863,
"linode|vps/linode/g7-premium-2": 38.416868,
"linode|vps/linode/g7-premium-4": 76.833735,
"netcup|vps/netcup/vps-1000": 14.016807,
"netcup|vps/netcup/vps-2000": 26.016807,
"netcup|vps/netcup/vps-4000": 43.831933,
"netcup|vps/netcup/vps-500": 7.983193,
"netcup|vps/netcup/vps-8000": 64.840336,
"ovhcloud|vps/ovhcloud-publiccloud/d2-4": 15.038,
"ovhcloud|vps/ovhcloud/vps-2025-model1": 6.49,
"ovhcloud|vps/ovhcloud/vps-2025-model2": 9.99,
"ovhcloud|vps/ovhcloud/vps-2027-model1": 4.49,
"ovhcloud|vps/ovhcloud/vps-2027-model2": 8.49,
"ovhcloud|vps/ovhcloud/vps-2027-model3": 12.24,
"ovhcloud|vps/ovhcloud/vps-comfort-4-4-80": 16.5,
"ovhcloud|vps/ovhcloud/vps-essential-2-4-40": 11.3,
"ovhcloud|vps/ovhcloud/vps-essential-2-4-80": 12.5,
"ovhcloud|vps/ovhcloud/vps-essential-2-8-40": 16.3,
"ovhcloud|vps/ovhcloud/vps-essential-2-8-80": 17.5,
"ovhcloud|vps/ovhcloud/vps-le-4-4-80": 10.0,
"scaleway|vps/scaleway/basic2-a2c-4g": 16.79,
"scaleway|vps/scaleway/basic2-a2c-4g-nl-ams-1": 16.79,
"scaleway|vps/scaleway/basic2-a2c-8g": 25.185,
"scaleway|vps/scaleway/basic2-a2c-8g-nl-ams-1": 25.185,
"scaleway|vps/scaleway/basic3-x2c-4g": 28.79777,
"scaleway|vps/scaleway/basic3-x2c-4g-nl-ams-1": 28.79777,
"scaleway|vps/scaleway/dev1-m": 14.74308,
"scaleway|vps/scaleway/dev1-m-nl-ams-1": 14.74308,
"scaleway|vps/scaleway/dev1-m-pl-waw-1": 14.74308,
"scaleway|vps/scaleway/play2-nano": 20.1042,
"scaleway|vps/scaleway/play2-nano-nl-ams-1": 20.1042,
"scaleway|vps/scaleway/play2-nano-pl-waw-1": 20.1042,
"transip|vps/transip/v3": 20.0,
"transip|vps/transip/v4": 50.0,
"transip|vps/transip/v5": 100.0,
"vultr|vps/vultr/vc2-2c-4gb": 17.868311,
"vultr|vps/vultr/vc2-4c-8gb": 35.736621,
"vultr|vps/vultr/vhf-2c-4gb": 21.441973,
"vultr|vps/vultr/vhf-3c-8gb": 42.883945,
"vultr|vps/vultr/vhp-2c-4gb-amd": 21.441973,
"vultr|vps/vultr/vhp-2c-4gb-intel": 21.441973,
"vultr|vps/vultr/vhp-4c-8gb-amd": 42.883945,
"vultr|vps/vultr/vhp-4c-8gb-intel": 42.883945,
"vultr|vps/vultr/voc-c-2c-4gb-50s-amd": 35.736621,
"vultr|vps/vultr/voc-c-2c-4gb-75s-amd": 40.203699,
"vultr|vps/vultr/vx1-g-2c-8g": 39.1316,
"vultr|vps/vultr/vx1-g-2c-8g-120s": 49.566693
},
"converted_hourly": [
"vps/azure/standard_b2ls_v2"
],
"skipped": {
"commitment_unknown": 0,
"no_fx": 0,
"non_list": 1771,
"unmapped_spec": 1814,
"vat_included": 0
},
"unmapped": [
"vps/azure/basic_a0",
"vps/azure/basic_a1",
"vps/azure/basic_a2",
"vps/azure/basic_a3",
"vps/azure/basic_a4",
"vps/azure/standard_a0",
"vps/azure/standard_a1",
"vps/azure/standard_a10",
"vps/azure/standard_a11",
"vps/azure/standard_a1_v2",
"vps/azure/standard_a2",
"vps/azure/standard_a2m_v2",
"vps/azure/standard_a3",
"vps/azure/standard_a4",
"vps/azure/standard_a4_v2",
"vps/azure/standard_a4m_v2",
"vps/azure/standard_a5",
"vps/azure/standard_a6",
"vps/azure/standard_a7",
"vps/azure/standard_a8",
"vps/azure/standard_a8_v2",
"vps/azure/standard_a8m_v2",
"vps/azure/standard_a9",
"vps/azure/standard_b12ms",
"vps/azure/standard_b16als_v2",
"vps/azure/standard_b16as_v2",
"vps/azure/standard_b16ls_v2",
"vps/azure/standard_b16ms",
"vps/azure/standard_b16pls_v2",
"vps/azure/standard_b16ps_v2",
"vps/azure/standard_b16s_v2",
"vps/azure/standard_b1ls",
"vps/azure/standard_b1ms",
"vps/azure/standard_b1s",
"vps/azure/standard_b20ms",
"vps/azure/standard_b2als_v2",
"vps/azure/standard_b2ats_v2",
"vps/azure/standard_b2ms",
"vps/azure/standard_b2pls_v2",
"vps/azure/standard_b2ps_v2",
"vps/azure/standard_b2pts_v2",
"vps/azure/standard_b2ts_v2",
"vps/azure/standard_b32als_v2",
"vps/azure/standard_b32as_v2",
"vps/azure/standard_b32ls_v2",
"vps/azure/standard_b32s_v2",
"vps/azure/standard_b4als_v2",
"vps/azure/standard_b4as_v2",
"vps/azure/standard_b4ls_v2",
"vps/azure/standard_b4ms"
],
"vat_converted": [
"vps/netcup/vps-500"
]
}Definition
The lowest monthly list price, in EUR excluding VAT, for a VPS with at least 2 vCPU and at least 4 GB RAM, sold in an EU datacentre, across the providers whose price APIs we read.
Inclusion rule
category vps; deployable in the EU (sku.eu); vCPU >= 2 and RAM >= 4 GB; no GPU, not bare metal; price > 0 and excluding VAT. Per provider the cheapest qualifying plan is its value (ovhcloud-publiccloud counts as ovhcloud); the series is the minimum of provider values. Hourly-priced plans (Azure westeurope Linux) are converted hourly x 730. USD prices convert to EUR at the ECB rate stored for that day (rate and its date are in the metadata). Shared/dedicated and ARM/x86 both count. All series are excluding VAT: SKUs flagged vat_included are skipped.
When it cannot be computed: Not computed: that day shows no number and states the reason; the last full value stays shown with its date. A source whose last confirmed snapshot is older than 3x its cadence (6h sources 18 h, 12h sources 36 h, 1d sources 72 h) drops out; below minimum coverage the series is not computed and says 'not verified: <source> stale since <date>'.
Minimum coverage: 3 providers. Below that the series is not computed and says so instead of showing a number.
Sources feeding it
vultr, linode, scaleway-instances, ovh-catalog-vps, azure-retail-vm-westeurope, ovhcloud-publiccloud
Deliberately excluded
- hetzner-cloud (no price fields yet)
- digitalocean-droplets
- netcup-vps
- contabo-vps (blocked from our IP: shown as a gap)
- any plan not deployable in the EU
What can break it
- a provider renames or retires a plan (the floor jumps; the SKU delisting is the cause)
- a spec map goes stale (OVH planCode -> vCPU/RAM)
- a USD-priced provider sets the floor and the FX rate moves it
- Hetzner joins and lowers the floor (a dated basis change, not a market move)
- regional prices differ inside one provider (Linode, Scaleway zones)
- Linode EU availability is inferred from the base price, not stated by its API
Daily values, last 90 days
Days with a value since 2026-10-19 (days without one are left out of the data files): CSV · JSON.
| Day (UTC) | Value | n | Floor SKU / note |
|---|---|---|---|
| 2026-10-24 | 4.49 | 7 | vps/ovhcloud/vps-2027-model1 |
| 2026-10-23 | 4.49 | 7 | vps/ovhcloud/vps-2027-model1 |
| 2026-10-22 | 4.49 | 7 | vps/ovhcloud/vps-2027-model1 |
| 2026-10-21 | 4.49 | 7 | vps/ovhcloud/vps-2027-model1 |
| 2026-10-20 | 4.49 | 7 | vps/ovhcloud/vps-2027-model1 n changed n 5 → 7; joined: netcup, transip |
| 2026-10-19 | 4.49 | 5 | vps/ovhcloud/vps-2027-model1 |
Cite this
Free to reuse under CC BY 4.0 with this credit. The numbers are list prices, not transacted prices.
InfraRabbit (2026). EU VPS floor (2 vCPU / 4 GB) [data as of 2026-10-24]. https://infrarabbit.com/index/eu-vps-floor-2c4g (accessed 2026-10-24). List prices, not transacted prices. CC BY 4.0.
BibTeX
@misc{infrarabbit_index_eu_vps_floor_2c4g_2026,
author = {{InfraRabbit}},
title = {EU VPS floor (2 vCPU / 4 GB)},
year = {2026},
howpublished = {\url{https://infrarabbit.com/index/eu-vps-floor-2c4g}},
note = {Data as of 2026-10-24; accessed 2026-10-24; list prices, not transacted prices; CC BY 4.0}
}