You're probably on the wrong Cloud box
by Dominik Zalewski ·
Abstract
The recent (2025) migration of a SME-scale Saas e-commerce application (Time Management) 1 to Hetzner Cloud 2 is used to demonstrate an approach for optimizing cloud cost efficiency.
TLDR
If at the start of every month, we were to choose a financially optimal cloud box with same spec (RAM, CPU), how much less would the cost be.
- Period: 2025-03 - 2026-04 (14 months)
- Total Paid: €14 142.46
- Current Cost: €1 878.02/mo
- Potential Saving: 23.3% (€3 296)
| Month | Paid [€] | Optimal [€] | Potential Saving [%] |
|---|---|---|---|
| 2025-03 | 156 | 73 | ##################### 53 |
| 2025-04 | 456 | 221 | #################### 51 |
| 2025-05 | 802 | 566 | ########### 29 |
| 2025-06 | 846 | 632 | ######### 25 |
| 2025-07 | 770 | 661 | ##### 14 |
| 2025-08 | 853 | 752 | #### 12 |
| 2025-09 | 993 | 883 | #### 11 |
| 2025-10 | 1 146 | 852 | ########## 26 |
| 2025-11 | 1 187 | 891 | ######### 25 |
| 2025-12 | 1 204 | 913 | ######### 24 |
| 2026-01 | 1 237 | 947 | ######### 23 |
| 2026-02 | 1 255 | 965 | ######### 23 |
| 2026-03 | 1 357 | 1 052 | ######### 23 |
| 2026-04 | 1 878 | 1 437 | ######### 23 |
Analysis
Since the beginning of the migration in March 2025, you can clearly see the learning curve. The overpaying percentage decreases month-to-month as I chose more optimal machine capacity. I left the already migrated machines on the original box, but was doing later migrations to the cheaper boxes.
Around September 2025, when doing the migration, I realized I was missing the opportunity to use cheaper ARM processors. I only managed to migrate 14 customers (out of ~200), when a change to the pricing model in October 2025 made this not worth it.
On the 16th of October 2025 cloud provider (Hetzner) introduced CX Gen3 + CPX Gen2 launch (cx23 €2.99) 3 4.
This rendered the previously price optimal ARM and AMD processors choice obsolete. As a result instead of overpaying 11%, mytimeplan.com
started overpaying 26% in spite of unchanged requirements.
On the 1st of April 2026 (not an April Fool’s Day joke) cloud provider (Hetzner) introduced pricing changes 5. A flat ~30% increase that hit existing servers. This made the April 2026 invoice higher (1 878€) compared to March 2026 (1 357€) by around 28%. The percentage of lost savings remained the same, since the change was nominally across the whole fleet, so the ratio of choosing a different box could not possibly change.
There was a small window just before the 15th of June 2026 pricing change 6 7 to migrate the machines to more financially optimal, cutting the 23% loss and locking it in, but we missed it. As a result the 23% gap is now permanent when only using the approach discussed in this article. However, we continue working on other ideas for cutting costs even further.
Future Work / Open Questions
- Since the pricing changes quite frequently, what is the alternative to manually adjusting the model?
- How do we know that the current sizes of the boxes are optimal?
- Can we take advantage of rescaling during non-office hours, if we know that the servers are idle then?
- How did the cost change after migration compare to bare metal installations?
Summary
Chasing the cheapest type is a treadmill. Taking no action at all sometimes has disadvantages, like the October 2025 pricing change. But it sometimes has advantages, like June 2026 change, where rescaling existing box puts it to the new pricing table, leaving it as is would keep it on the old pricing. Keeping the invoice optimal all the time with just manual work, proves to be nearly impossible, at least in this case.
Want to know your potential cost saving?
Run the same audit on your own invoices. Cloud Inefficiency Audit is a small open-source command-line tool that runs entirely on your machine — no account, no login, nothing uploaded. Point it at a saved Hetzner invoice and it prints your potential cost saving.
Not technical? Mail your invoice page (saved as HTML) to dominikz@gelkao.com and I’ll reply with your number — I delete it afterwards.
About this case study
The infrastructure analysed above is mytimeplan.com’s real production fleet on Hetzner Cloud. It is shared, with their permission using exact numbers. Most companies treat their cloud bill as something to hide. mytimeplan treats it as something to measure and optimize.
That is also why they are hiring. mytimeplan is looking for a DevOps / platform engineer to own exactly this kind of work: keeping a growing Hetzner fleet right-sized and on the optimal plan as the pricing landscape keeps shifting under it. If that is the sort of problem you enjoy solving, please contact job@mytimeplan.com (send a CV).
Appendix: Current Fleet
At the time of writing, the fleet’s characteristics are shown as below. The totals are slightly higher than the invoices, as Hetzner issues invoices on the 25th of the following month for mytimeplan.com. The prices are also lower than list prices on Hetzner’s website, because they were locked-in at the time of box acquisition.
| Type | Unit Price [€] | Count | Cost [€] |
|---|---|---|---|
cx32 | 8.49 | 121 | 1 027.29 |
cx33 | 6.49 | 30 | 194.7 |
cx43 | 11.99 | 11 | 131.89 |
cax41 | 31.49 | 7 | 220.43 |
cpx31 | 17.49 | 7 | 122.43 |
cax21 | 7.99 | 5 | 39.95 |
cax31 | 15.99 | 3 | 47.97 |
cx23 | 3.99 | 3 | 11.97 |
cx42 | 20.99 | 2 | 41.98 |
cax11 | 4.49 | 1 | 4.49 |
ccx23 | 31.49 | 1 | 31.49 |
cx22 | 4.49 | 1 | 4.49 |
cx53 | 22.49 | 1 | 22.49 |
| 193 | 1 901.57 |
References
https://mytimeplan.com My Time Plan Webpage ↩︎
https://www.hetzner.com/cloud , Hetzner Cloud ↩︎
https://www.hetzner.com/pressroom/new-cx-plans/ 2024-06-06 — CX Gen2 (Intel) launch ↩︎
https://www.hetzner.com/news/new-cloud-plans/ 2025-10-16 — CX Gen3 + CPX Gen2 launch (cx23 €2.99) ↩︎
https://web.archive.org/web/20260408224854/https://docs.hetzner.com/general/infrastructure-and-availability/price-adjustment/ 2026-02-25 — April 1 price increase (details) ↩︎
https://docs.hetzner.com/general/infrastructure-and-availability/price-adjustment/ Hetzner Price Adjustment ↩︎
https://www.hetzner.com/pressroom/standardization-and-price-adjustment-of-our-server-products/ 2026-05-27 — June 15 standardization (reprice on rescale) ↩︎
← Back to blog