Finetuning Pricing
Finetuning has exactly two charges, billed at two different moments. There are no platform fees, seat fees, or storage fees.
1. Training fee (one-time, charged before training starts)
Training is a $5 base fee per job plus the data you train on — a per-model rate per million training units. A first experiment costs about a coffee; a production dataset scales linearly.
| Base model | Full finetune (listed rate) | LoRA — 75% off (default) |
|---|---|---|
inertialai-embed | $20 / 1M units | $5 / 1M units |
chronicle | $20 / 1M units | $5 / 1M units |
inertialai-forecast | $48 / 1M units | $12 / 1M units |
So a 10M-unit LoRA fine-tune of chronicle costs $5 + $50 = $55.
A training unit is one text token; four time-series points count as one unit. Validation reports and the Data Explorer show your file's exact unit count before you pay.
LoRA trains a low-rank adapter at 75% off the listed full-finetune rate (a quarter of the price) and is the right choice for almost all datasets; a full finetune updates every weight at the listed rate — the extra GPU-time per record is what the price covers. Both run on dedicated GPUs.
Your quote is shown before payment and frozen when you pay — price changes never affect an in-flight job. The quote states the method it was priced under.
The improvement guarantee: every finetune ends with a held-out eval of your tuned model against the frozen base model. If the tuned model does not beat the base, the job is flagged and your training fee is automatically refunded. You only pay for finetunes that work.
No training fee for base deployments: deploying a base model as a
dedicated endpoint without training (POST /v1/endpoints with
base_model) skips this charge entirely — you pay serving compute only.
2. Serving compute (billed by GPU time)
Deployed endpoints bill GPU time at the hourly rate of the GPU you chose:
- Per call — measured wall-clock, cold-start included (the spin-up after idle is GPU time like any other).
- Always-warm replicas — billed hourly while reserved, whether or not requests arrive; that is the price of never cold-starting.
- Idle scale-to-zero — free. Nothing runs, nothing bills.
Reported latency is a different number from billed time: the usage
block on every call and the endpoint usage log report your model's latency
(latency_ms) with any cold start split out as cold_start_ms, so latency
stats are never skewed by container spin-up.
| GPU | Price per hour |
|---|---|
| T4 | $0.97 |
| L4 | $1.32 |
| A10G | $1.82 |
| L40S | $3.22 |
| A100 40GB | $3.47 |
| A100 80GB | $4.13 |
| H100 | $6.52 |
Region-pinned serving multiplies these rates (shown live in the serving
configuration step): us-east/us-west ×1.25, eu-west ×1.5. The default
(auto, no pinning) carries no multiplier.
Every inference response includes the metered cost of that call in its
usage.compute_cents field, so your bill is reconstructible request by
request.
Spend caps: every endpoint has a spend cap (default $50). You're alerted at 80%; at 100% the endpoint suspends automatically until you raise the cap and relaunch. A runaway endpoint cannot generate unbounded charges.
Getting started
Every new account starts with $5 of free usage — enough to embed, forecast, and train a first model. Beyond that, everything is pay-as-you-go from your credit balance; there are no subscriptions and no minimum spend. See API Pricing for the per-model rates.
Pilot program: a guided 30-day evaluation — $2,500–$10,000 depending on scope — including a finetuned deployment on your data, a benchmark report against your current approach, and hands-on eval support from our team. Talk to us.
3. Storage: free
Tuned weights (checkpoints), eval reports, and validation reports are stored
at no charge for as long as the finetune exists — v1 adapter checkpoints
are small, and we absorb the storage cost rather than metering it. Raw
dataset uploads are retained by default (also free) so validation samples
stay browsable and datasets can be reused across jobs without
re-uploading; opt out per job with retain_uploads: false.
Retained datasets are capped at 10 GiB per account (the upload endpoint tells you when you're at the limit; contact support to raise it). Deleting a job purges its checkpoint from every store it lives in (object storage and the training volume) and frees its datasets — unless another of your jobs still references the same file, in which case the shared file stays. Hard-delete everything at any time. See the Finetuning Data Policy for exactly where data lives.
4. What "live" costs when nobody is calling
A live endpoint on the default scale-to-zero mode holds no GPU while idle: "live" means routable, not running. You pay only for the seconds your calls actually execute (plus a cold start on the first call after idle). An always-warm endpoint is the opposite trade: it bills the GPU rate for its resident replicas continuously in exchange for no cold starts. Suspended endpoints bill nothing at all.