Skip to content
Use cases
Autopilotplanned
AutopilotComputeplanned

Move a job onto the card it actually needs

A small model on an H100 pays H100 rates for memory it never touches. Autopilot compares what the job used with what the card offers, and prices the smaller card it would fit on.

Everything below describes what this is being built to do. It needs Autopilot and Compute, which you can look around today but cannot yet use for the whole of this job. The problems are real now; the answers are the part still being built.

The card a job was launched on is usually the biggest one somebody thought it might need. It rarely is.

Why it is hard

  • Nobody measures before they launch

    Sizing happens once, up front, by guess, and the guess errs large because running out of memory is worse than overpaying for it.

  • The waste is inside a line that looks right

    An H100 running a job that peaks at 20 GB is billed exactly like one that needs all 80. Nothing on the invoice says three quarters of it sat empty.

  • Moving costs attention

    Even when someone suspects a card is oversized, proving it and picking the right smaller one is a chore, so the job keeps running where it started.

What answers it

  • It reads what the job actually used

    Peak memory and utilisation come from the same per-second metering that produces the invoice, so the comparison is against the real run, not a spec sheet.

  • It prices the smaller card first

    The recommendation names the card the job would fit on and what the same run would have cost there, in euro, before anything moves.

  • Nothing moves unasked

    Right-sizing ships recommend-only. You read the finding, and the job stays on its card until you apply it. This needs Autopilot, which is not built yet.

How billing works

usage_eventsbilled per second, EURlaunchmeter starts with the containerheartbeat10s at the price frozen at matchstopmeter stops, nothing after
heartbeatsent twiceusage_eventsledger_entriescharge · provider_share 85%account_balancesa view: sums, never a columnone fresh row, summedthe retry: unchangedunique(instance_id, seq)

per second, to the microeuro · no minimum · no egress fee · idle costs nothing

Metering starts when the container does and stops when it stops. The rate is frozen the moment you match, so a provider re-pricing cannot change a running rental, and an aborted run costs what it used.

Designed, not built: the metering it reads is live today; the recommendation that reads it is next.