Hosting prices change constantly. Hetzner renamed its entire entry lineup this year and adjusted prices mid-June. Render replaced per-member plans with flat workspace pricing. Netlify moved to a credit model. If a comparison site copied prices into a spreadsheet last autumn, it is now quietly wrong about all three.
This post documents how we keep ours from going quietly wrong. It is the same methodology note we link from our About page — published in full, because "trust us" is not a methodology.
Every price has a source URL
Our database stores, for every plan: the price, the currency the provider actually bills in, and the exact URL of the official pricing page the number came from. Not a homepage — the specific page (or pricing API endpoint) where the number is visible.
That source URL is not decoration. It is what our automation checks against, and it is what you can click to verify us.
A weekly job re-checks everything
Every Monday morning, a background job fetches each plan's source URL and verifies the price we display still appears there. Three things can happen:
- The price is found → the plan's "last verified" date updates. That is the date you see on every pricing table.
- The price is missing → the provider probably changed it. We get an alert, verify by hand, and update the database — which writes a snapshot into the plan's price history.
- The check fails twice in a row → the plan is automatically flagged stale. On the site, that plan stops showing a number at all and instead shows a "verify on provider site" badge linking to the source page.
That third rule is the important one: a price we cannot verify is a price we do not show. A wrong number dressed as a fact is worse than an honest badge.
What automation can't check, humans do
Some pricing pages are rendered entirely in the browser (Railway, Render) or block automated requests outright (Vultr and Akamai return HTTP 403 to bots — we know, because ours is politely user-agented and they block it anyway). Those providers are marked for scheduled manual re-verification, and the system nags us when their data ages past 30 days. The "last verified" date on their tables is a human's date, not a bot's.
Honest numbers over pretty numbers
Two policies that regularly make our tables look worse than competitors', on purpose:
- Renewal prices, not intro prices. Hostinger's headline VPS price requires a 24-month prepay and roughly doubles at renewal. We list the renewal price and note the intro deal — not the other way round.
- No hidden currency conversion. Hetzner bills in EUR, DigitalOcean in USD. Our calculators only convert between them with an exchange-rate assumption you can see and edit, and converted values are marked with ≈.
Why this matters for affiliate sites in particular
This site earns affiliate commissions — disclosed on every page that contains an affiliate link. The classic failure mode of affiliate comparisons is that revenue quietly shapes the content: the best-paying provider tops the table, stale prices linger when they flatter a partner.
Our defense is structural, not aspirational: rankings and verdicts are computed from the database by the same code for every provider, several providers in the database pay us nothing at all, and the freshness pipeline above treats every provider identically. A commission cannot buy a better verdict, because there is no editorial step where a verdict could be sold.
Spotted a price we got wrong? That is a bug in the pipeline and we want to know: info@23trade.sk.