# Metered or a flat box: how to choose pricing for each app

> How to choose metered vs reserved pricing per deployment on Ownkube: meter what idles, reserve what runs steadily, and why databases and caches are always reserved.

- **Published:** 2026-09-02
- **Author:** Ownkube team
- **Category:** Product
- **Tags:** pricing, metered-billing, reserved-instances, cloud-cost, ownkube-compute
- **Canonical URL:** https://ownkube.io/blog/metered-vs-reserved-pricing
- **Cover:** https://ownkube.io/blog/metered-vs-reserved-pricing.png

---
You do not have to pick one pricing model for your whole account. On Ownkube Compute you choose metered or a flat reserved box per deployment, so a bursty web app can meter while a steady worker sits on a fixed price, in the same project. The choice comes down to one question: does this app idle, or does it run hot around the clock?

This post explains what metered and reserved billing each mean, gives the entry prices for the boxes, and lays out a decision rule simple enough to apply per app without a spreadsheet.

**TL;DR**

- Metered bills both CPU and memory on actual per-minute usage, so a mostly-idle app costs almost nothing on CPU.
- A reserved box is a flat price whether it is busy or idle: Spark (shared CPU) from $5 a month, Core (dedicated CPU) from $58 a month.
- You choose metered or reserved per deployment and can switch later. Nothing forces one model on everything.
- Databases and caches are always reserved: a Postgres box from $4 a month plus storage, a Valkey cache box from $2 a month.
- The rule: meter what idles, reserve what runs steadily.

## What metered pricing means

Metered pricing bills you for what an app actually uses, measured per minute, on both CPU and memory. You set a CPU limit and a memory limit as ceilings, and the bill follows the meter rather than the ceiling. A limit is not a reservation, so you are not charged for headroom you set aside, only for what the app consumes up to it.

The reason this matters is that most personal software is idle most of the time. A side project handling a request every few minutes has a CPU line that sits near zero between requests. On a metered deployment that idle time is nearly free, and the balance you loaded stretches across it. The metered rates are about $18 per vCPU per month and $4.50 per GiB per month, roughly a third under an equivalent [Railway bill](https://railway.com/pricing) for the same always-on shape.

Memory is the part people forget. Metered on Ownkube means CPU *and* memory both bill on real usage, so an app that holds a small resident set while it idles is cheap on both lines, not just the CPU one.

## What a reserved box means

A reserved box is a fixed-size instance at a flat price. It bills the same whether the app inside it is slammed or asleep. You are buying a known monthly number instead of a meter, which is exactly what you want for a workload where the meter would never rest anyway.

Ownkube has two reserved compute shapes:

- **Spark** is a shared-CPU box, from $5 a month. The CPU is shared with other tenants, which keeps the price low and fits small steady services and light always-on apps.
- **Core** is a dedicated-CPU box, from $58 a month. You get CPU that is not shared, for workloads that need consistent performance and run hot enough to justify a dedicated instance.

Because a reserved box is flat, its appeal is predictability. There is no end-of-month arithmetic and no spike to absorb. The trade is that idle time is not free: you pay the box price through the quiet hours the same as the busy ones.

## Databases and caches are always reserved

Metered-versus-reserved is a choice for your app deployments. It is not a choice for data services, which are always reserved on Ownkube, because a database that scaled its price to zero when idle would also have to give up being always available.

- A managed **Postgres** runs on a database box from $4 a month, plus storage at $0.15 per GB a month, with backups included. It is single-instance and private (in-region) today. Multi-instance and HA, public access, and point-in-time recovery are on the roadmap, so plan around single-instance private for now.
- A **Valkey** cache runs on a cache box from $2 a month. It is in-memory and ephemeral, so there is no storage charge, and it offers an opt-in public `rediss://` endpoint when you need to reach it from outside.

These flat prices are a floor you can plan against. A small app with one Postgres and one Valkey has a data layer starting around $6 a month before storage, and that number does not move with traffic.

## The box entry prices at a glance

One table for the reserved boxes and where the meter sits relative to them.

| Box | Type | Entry price | Billing shape |
|---|---|---|---|
| Metered compute | Shared, usage-based | ~$18 / vCPU / mo, ~$4.50 / GiB / mo | Per-minute CPU and memory, near-zero when idle |
| Spark | Reserved, shared CPU | from $5 / mo | Flat, busy or idle |
| Core | Reserved, dedicated CPU | from $58 / mo | Flat, busy or idle |
| Postgres | Reserved database box | from $4 / mo + $0.15 / GB / mo storage | Flat compute, storage metered, backups included |
| Valkey | Reserved cache box | from $2 / mo | Flat, in-memory, no storage charge |

All of it draws from the same prepaid wallet. For how that wallet caps your total spend, see [how to keep your cloud bill from surprising you](/blog/prepaid-wallet-no-surprise-bill), and for why prepaid credit that rolls over beats a postpaid meter, see [what a prepaid cloud wallet is](/blog/prepaid-wallet-vs-usage-based-billing).

## How to choose per app

The decision rule is short: **meter what idles, reserve what runs steadily.** Apply it per deployment.

### Meter it when the app idles

If a workload spends most of its time waiting, meter it. Web apps and APIs that handle bursts between long quiet stretches, side projects, internal tools, staging environments, and anything you spun up to try out all fit here. The idle hours are nearly free on the meter, so you pay for the bursts and little else. This is the default, and it is the right default for most personal software.

### Reserve it when it runs hot

If a workload runs hot around the clock, reserve it. A busy background worker that never idles, a streaming consumer that is always draining a queue, or a service pinned near its CPU limit all day would meter continuously, and for that shape a flat box gives you a price that never moves and often costs less than the meter would. Start on Spark for a small steady service, step up to Core when it needs dedicated CPU.

### Mix them in one project

Because the choice is per deployment, a single project can meter its front-end API, reserve a Spark box for a steady worker, and run a reserved Postgres and Valkey behind both. You are not choosing a billing philosophy for the account. You are matching each workload to the shape that costs less for how it actually runs, and you can switch a deployment from metered to reserved (or back) as its usage pattern settles.

A quick way to sanity-check: estimate the app's average CPU usage. If average usage is a small fraction of its ceiling, meter it. If average usage sits near the ceiling most of the day, price out a reserved box, because at high steady utilization the flat rate usually wins.

## FAQ

### What is the difference between metered and reserved pricing on Ownkube?

Metered bills both CPU and memory on actual per-minute usage, so an idle app is nearly free. Reserved is a flat-price box (Spark or Core) that costs the same busy or idle. You pick per deployment.

### Can I change a deployment from metered to reserved later?

Yes. The choice is per deployment and you can switch as the workload's usage pattern settles. A bursty app that becomes steadily busy can move onto a reserved box, and a reserved box that mostly idles can move to the meter.

### Why can't I meter a database?

A database has to stay available, so it cannot scale its price to zero the way an idle app's CPU can. Databases and caches are always reserved: Postgres from $4 a month plus storage, Valkey from $2 a month.

### Is metered always cheaper than reserved?

No. Metered wins when an app idles, because you skip paying for the quiet hours. Reserved wins when an app runs hot around the clock, because a flat box beats a meter that never rests. Match the model to how the app actually runs.

### How do the box prices bill against my wallet?

Every model, metered or reserved, draws down the same [prepaid wallet](/pricing) per minute. Reserved boxes draw a steady amount, metered deployments draw more when busy and almost nothing when idle, and unused wallet credit rolls over and never expires.

## Where Ownkube fits

Pricing per app is the point. Meter the workloads that idle and pay almost nothing for their quiet hours, reserve the ones that run hot and get a flat number you can plan against, and let databases and caches sit on their reserved boxes because availability is the job. It all draws one prepaid wallet, so the whole project stays inside a ceiling you set. For personal software and small teams who want each app on the pricing that suits it, that per-deployment choice is the calm default in Ownkube Compute. [Deploy your first app](https://app.ownkube.io/login).