Methodology Every number, traced

A cost calculator is an argument. This page shows the working โ€” where each input came from, what the model assumes, and the places we got it wrong.

Why this page exists

A calculator takes a price you can look up and turns it into a number you cannot, and somewhere in the middle it makes choices you never see. Most tools do not show their work. That is a problem for anyone making a purchasing decision, because the assumptions are usually worth more than the arithmetic.

So this page is the audit trail. If a figure on this site looks wrong to you, you should be able to find the exact assumption responsible in under a minute โ€” and if the assumption is bad, we want the email.

Where the inputs come from

Every rate on jslet is a published list price, read from the vendor's own pricing page or datasheet. Nothing is reconstructed from secondhand blog posts, and nothing is a "typical" figure pulled from memory.

Input Primary source Reviewed
Compute, storage, egressAWS / Google Cloud / Azure public pricing pagesQuarterly
GPU instance ratesAWS EC2 on-demand, Google Cloud, RunPod, Vast.aiQuarterly
GPU memory and bandwidthNVIDIA and AMD datasheetsOn release
Model architectureEach model's published config โ€” layers, KV heads, head dimensionOn release
API token pricesProvider pricing pagesMonthly
Region-specific ratesThe vendor's own region pricing tableQuarterly

Where a vendor publishes hundreds of SKUs, we model the ones the workload actually touches rather than an average across the catalogue. An average would be easier to maintain and would describe nobody's bill.

The assumptions behind every model

Five conventions run through the whole site. When a number looks wrong, it is nearly always one of them.

  1. On-demand list price. Unless a tool names another billing model, it assumes you pay the posted on-demand rate. That is the most expensive way to buy and the only one every vendor publishes honestly.
  2. A named reference region. Region changes the price before anything else does. Every rate is tied to a region the tool states explicitly โ€” usually us-east-1 for AWS โ€” rather than to an unlabelled global average.
  3. No discounts. No reserved capacity, no savings plans, no committed-use agreements, no negotiated enterprise pricing. All of those typically reduce the bill, so a self-host verdict here is a conservative one.
  4. GB means the vendor's GB. Cloud and hardware vendors label capacity in decimal units โ€” an "80 GB" accelerator has 80,000,000,000 bytes, not 80 ร— 1024ยณ. Storage pages and memory pages treat this differently on purpose, because for storage the gap is real and for memory labels it is a category error.
  5. Utilisation is yours to choose. We ask for it instead of assuming it. A rented GPU costs the same whether it serves one request or a million, so utilisation โ€” not model size โ€” usually decides whether self-hosting beats an API.

What the models deliberately leave out

  • Reserved-instance, savings-plan, spot and committed-use discounts โ€” except in tools whose entire purpose is comparing them.
  • Negotiated enterprise pricing, which is not public and therefore not modelable.
  • Taxes, currency conversion and regional surcharges.
  • Your real cache-hit ratio: we ask for it rather than assuming a flattering default.
  • Engineering labour and MLOps overhead. Where a tool includes them, it says so and exposes the number as an input.

A model that quietly assumes a 90% cache hit ratio will flatter itself by an order of magnitude. Ours would rather return an uncomfortable number you can act on.

Where we have been wrong

We keep this list because a site that has never published a correction has probably not been checked closely enough.

GPU memory converted when it should not have been. For a period our VRAM pages applied the storage convention โ€” 1 TB = 931 GiB โ€” to GPU memory labels. Those labels are already binary, so the conversion understated capacity by roughly 7%; an 80 GB accelerator was being modelled as 74.5 GB. The memory pages no longer apply it. The storage pages still do, because there the gap is genuine.

KV cache totalled in the wrong unit. One legacy estimator added a byte count into a gigabyte total, inflating the result by a factor of a million. The current model derives KV cache from the attention geometry directly โ€” 2 ร— layers ร— kvHeads ร— headDim ร— precision ร— context ร— batch โ€” and keeps KV precision independent of weight quantization, because the two are not the same setting.

Counts that drifted. Tool and article totals were once maintained by hand across a handful of files and fell out of sync after expansions. They are now derived from a single source of truth and verified mechanically before every deployment, so a stale count fails the build instead of shipping.

How to check any number yourself

  1. Open the tool and note the assumption block beneath the result. It names the region, the currency, the price date and the conditions.
  2. Open the vendor's pricing page linked from that block.
  3. Reproduce the arithmetic by hand. Every tool exposes the formula it used, and the numbers are round enough to check without a spreadsheet.
  4. If your result differs, tell us. A reproducible disagreement is the single most useful message we receive.

Corrections

Email support@jslet.com with the page and the vendor source. If the source contradicts our figure, we correct the model, note it in the log above, and update the affected pages. Corrections take priority over new features โ€” a wrong number is worse than a missing tool.

What this site is not

  • Not affiliated with, sponsored by, or compensated by any cloud or hardware vendor.
  • No affiliate links. No referral codes. Nothing on a page changes because someone paid.
  • No accounts, no tracking, no data collection. Every tool runs in your browser and nothing you type leaves it.
  • Not financial or procurement advice. We publish the arithmetic; the decision is yours.