Pricing
You pay for what you actually held.
Tenura's billing unit is the capacity-second: the amount of a specific resource held for one second. No instance-hour rounding, no static-reservation premium, no estimation gap between what you allocated and what you used.
The model
Capacity × time × rate.
Every lease event — allocation, renewal, release, expiry, revocation — is recorded with
a timestamp, capacity, and resource type. Usage summaries reconstruct the lease intervals
exactly (with sweep-line accounting for overlapping leases). The cost of a lease is
capacity × duration_seconds × rate. No averaging.
Because the audit chain is hash-linked and persisted, the bill you see is the same artifact your auditor sees — there's no separate billing pipeline that could drift.
Default rate card
Where conversations start.
These are the defaults that ship with the scheduler. They're the starting point for pilot conversations; final rates are negotiated based on commitment, region, and hardware mix.
| Resource | Rate | Unit |
|---|---|---|
| GPU | 0.01 | per GPU-second |
| CPU core | 0.002 | per core-second |
| Memory | 0.001 | per GiB-second |
| Block storage | 0.0005 | per GiB-second |
| Network | 0.0003 | per Gb-second |
Rates are in your contract's currency. The numbers above are abstract pricing units; we
set the conversion when you sign up. Example: at 0.01 per GPU-second and a
conversion of $1.00 = 100 units, an L4 held for one hour costs 3,600 × 0.01 / 100 = $0.36.
Tiers
Three priority tiers.
- Guaranteed — never preempted. Highest cost. The default for production-serving workloads.
- Standard — preempted by Guaranteed requests when capacity is scarce. Discount applies; the system tries to give you advance notice.
- Scavenger — preempted by anyone. Lowest cost. Designed for fault-tolerant batch work that can re-checkpoint.
Tier multipliers and exact pilot terms are set in your contract. The mechanism is the same for every tenant: priority is enforced by the scheduler, with audit records of every preemption decision.
Pilots
Free during private beta.
Approved beta tenants don't pay during pilot. The point of the pilot is to validate that the lease model fits your workload — not to extract revenue while the surface is still changing. We share metering data with you so you can build the ROI case for managed cells or production self-hosting after the pilot.
Deployment models
Self-hosted vs managed.
Self-hosted
The reference implementation is source-available and free to run on your own hardware. You operate the daemon, the scheduler, the CA, and your own audit-chain collector. We don't charge software fees during private beta; production-license terms come with general availability.
Managed cells
We operate the control plane. You bring tenants and workloads. Pricing is custom based on the rate card above plus a control-plane fee that depends on cell size, region, and hardware mix. Talk to us for a quote.
FAQ
The three questions everyone asks.
Why capacity-seconds instead of GPU-hours?
A GPU-hour tells you that a GPU was allocated for an hour. It says nothing about whether the GPU was used or whether the allocation matched the actual workload. Capacity-seconds tell you what was actually held — and because lease metadata records the resource type, you can also see what kind of capacity dominates a workload's cost. That's what makes optimization tractable.
Can I cap costs?
Yes. Per-tenant quotas (hard, soft, and burst) are first-class. A hard quota rejects new lease requests when exceeded. A burst quota allows temporary over-quota with its own TTL. Quotas can also be set per-resource: e.g., 4 GPUs hard, 1 TB of memory hard, unlimited block.
What about idle GPUs between leases?
That's the Scavenger tier's job. Idle capacity earns revenue at scavenger rates instead of zero. Scavenger leases are evicted the moment a higher-tier request arrives — so the operator's floor utilization rises without compromising guaranteed workloads.
Get a quote
Pilots are scoped to your workload.
Tell us your cluster size, current utilization, and the workloads you'd like to migrate first. We'll come back with a pilot scope and a path to a quote.