How Lantern Works collects and checks prices
This page explains, in plain words, where every price on this site comes from, how it is checked, when it is held back, and how you may reuse the data. The same rules are in the methodology field of the GPU price feed.
How prices are collected
- Every price comes from the vendor's own public pricing page or API. Each rate keeps a link to that page (
source_url) and the exact text found there (evidence.quote). - A scheduled job re-reads every source page once a day. It respects each site's robots.txt and waits between requests.
- Prices are never guessed. If there is no single verified price, the price is left empty and a short label describes the pricing model instead.
- All GPU prices are per GPU. A multi-GPU server's price is divided by its number of GPUs; the whole-server price is kept alongside.
- For marketplaces where hosts set their own prices, the listed price is the median offer, shown with the lowest offer and the number of offers.
- Cost estimates leave out storage, data transfer (egress), extra CPU and taxes. Each vendor's published terms for these, or "not published", are listed with their source.
How prices are verified
- A price is updated only when the job actually read it from the vendor's page or API.
verified_atis when the price was last read successfully;checked_atis the last attempt. - A few vendors block automated checks. Their rows are manual snapshots:
snapshot_atsays when they were captured, and they are held automatically afterhold_afterunless checked again. - Before any change goes live, the site's tests must pass. A separate daily check confirms that every source page is reachable and still shows the quoted price.
- Ranking is by estimated cost for the requested use. Whether a link is a referral link is never a ranking factor; referral links are labeled.
When prices are held
A held price is still listed with its reason, but it is never ranked or called the cheapest.
- Not re-verified for 7 days: the rate is held until a fresh check succeeds.
- Thin marketplace: a marketplace rate with fewer than 5 available offers is held, because a handful of listings is not a reliable price.
- Stale vendor page: if a vendor's published prices are out of date, all of that vendor's rates are held.
Why reserved rates are not "cheapest"
Some vendors publish lower prices that need a reservation, a contract or a minimum term. Those prices are real, so they are shown, but they are not comparable with pay-as-you-go rates you can start and stop at any time. They are always listed separately, after every pay-as-you-go rate, and are never counted when this site calls a rate the cheapest among tracked providers.
Update schedule
- GPU prices are refreshed once a day. The job is scheduled for 10:23 UTC, with a backup run at 14:47 UTC that only runs if the first one did not.
- Scheduled runs can start late. If the last refresh is more than a day old, an automatic check flags it.
- Each refresh is saved as a daily snapshot. What changed between snapshots is published at /api/v1/gpu-price-changes.json (changes page) and the full history at /api/v1/gpu-prices/history.json.
- The deal feed shows when it was last updated (
updated_at), and every deal shows when it was last verified (verified_at).
License
The price and deal data (the JSON feeds under /api/v1/, deals.json, the price history and the tables on this site) are licensed under Creative Commons Attribution 4.0 (CC BY 4.0); see LICENSE-DATA. You may copy, share and adapt the data, including commercially, as long as you credit Lantern Works and link to thelanternworks.com, for example: “GPU price data: Lantern Works, CC BY 4.0”. Each JSON feed carries the same terms in its license field.
The code (this site's generators and the MCP server package) is released under the MIT License. Prices change; always confirm on the vendor's page before spending.