# See what your customers' use costs you

> Read the compute your customers use by customer and product, choose between plans and usage billing, set a monthly budget and understand a pause on new orders.

Source: https://www.coritan.com/docs/organizations/billing/usage-and-cost/

In the dashboard:

- /dashboard/organizations/…/billing/usage: https://www.coritan.com/dashboard/organizations

Your customers' Cloud Compute servers, game servers and databases use memory, CPU, disk and bandwidth. On the **Usage** billing basis you pay Coritan the wholesale rate for that use, so what a customer costs you depends on what their server does. **Usage and cost**, one of the pages under **Billing**, adds it up by customer and by product, and shows which customers cost you more than they pay.

[The reseller program's terms](/docs/organizations/partner-program/) has the rates and how the two billing bases differ.

## Before you begin

- **Billing** is for the owner, admins and members with the billing role. The owner switches the billing basis. The owner, admins and billing members set the budget.
- Coritan's own organizations are not charged for usage. Their **Usage and cost** page says so and shows no figures.
- A customer on a flat plan sees none of this. It is your cost, not theirs.

## Read your usage and cost

1. Open the organization, then **Billing**, then **Usage and cost**.
2. Choose the **Month**. It starts on this month so far. The twelve most recent months are in the list, and the choice stays in the address.

The page shows four figures, all in US dollars:

**Usage at wholesale**
: What your customers' servers used, at the wholesale rates you pay. Under it you see the same use at Coritan's list rates. On the **Plans** basis the card reads **Usage if you switched**, because nothing is charged for it.

**Retail revenue**
: What your customers' plans bring in for the days their servers ran. A plan's price counts as a month's worth, so a month that is still running compares like with like. Plans that are paid for in another currency are converted at the market rate.

**Margin**
: Retail revenue less usage at wholesale, before the platform cut.

**Usage budget**
: How much of your monthly budget this month's use has taken, on the **Usage** basis. **None** when you have not set one.

Under the figures, **By customer** lists each customer with their **Usage at wholesale**, **Retail revenue** and **Margin**, and **By product** lists the same use for each product. Select a customer to open them. The list starts with the customers who cost you the most compared with what they pay, and you can sort by customer, usage, revenue or margin.

## Customers who cost more than they pay

A customer whose use costs you more than their plans bring in is marked **Costs more than it pays**, and their **Margin** shows in red. Two customers on one plan can cost you very different amounts: a server that sits idle costs a little, and one that keeps its CPU busy costs a lot.

Two things help. Raise the price of the plan for new orders, or offer a plan with a smaller size. [Set up products and pricing](/docs/organizations/products-and-pricing/#what-the-hosting-costs-you) shows what each plan costs you.

## Choose your billing basis

The **Billing basis** card shows whether you pay on **Plans** or on **Usage**, and since when. A new organization starts on **Usage**.

While you are on **Plans**, the card shows a preview: the last three complete months, with **Plan wholesale** (what Coritan charged on your compute plans) beside **Usage at wholesale** (what your customers' use would have cost) and the **Difference**. Until your customers' servers have three months of readings, a month without readings is estimated with every server on all month and its CPU at 10%, and the card says so.

To switch:

1. Read the preview. A negative **Difference** is what usage billing would have cost you on top.
2. Select **Switch to usage billing…**. Only the organization's owner sees it.
3. Type the organization's slug to confirm.
4. Select **Switch to usage billing**.

The switch takes effect on the 1st of the next month at midnight UTC, so no month mixes the two. Until then the card shows **Switch**, with the day it lands, and **Cancel the switch…** puts it off. Nothing about your running servers changes. From the day it lands, Coritan stops charging wholesale on the plan lines of compute plans and charges the use instead. It still charges wholesale on other plans, such as IP addresses, mail and add-ons.

The preview and the switch are in **Settings**, then **General**, too.

## Set a monthly usage budget

A budget is an optional cap on what your customers' use costs you in a month. It does not limit what customers run.

1. Open **Settings**, then **General**, or **Billing**, then **Usage and cost**.
2. On the **Monthly usage budget** card, select **Set a budget…**, or **Edit budget…** to change it.
3. Enter the amount in dollars, such as `100.00`, and select **Save budget**. Leave the field empty to remove the budget.

We tell you at 80% and at 100% of the budget, once each month, with a `billing.usage_budget` [webhook event](/docs/organizations/webhooks/). At 100% we pause new orders. The card is only there while you are on the **Usage** basis.

## When new orders are paused

New orders pause in two cases: your monthly usage budget is reached, or a shortfall invoice for the compute your customers used has gone unpaid past its payment reminders. **Overview**, **Settings** and **Usage and cost** show **New orders are paused** with the reason.

- Customers see only that new orders are paused for the store, and your staff see the reason when they try to place an order for a customer.
- Servers that already run keep running, and renewals carry on.
- A budget hold ends when you raise the budget, remove it or the month turns. An invoice hold ends when the invoice is paid. **Open your Coritan invoices** takes the owner to it.

## With the API

Every call starts with `https://api.coritan.com/api/v1/orgs/{org_slug}` and takes a member's token. Reading and the budget are for the billing role and above. The switch is for the owner.

`GET /billing/usage-cost` answers a month, `?month=2026-09`, or this month so far when it is left out. `by_customer` lists the 100 customers with the worst margin first, or the number `limit` names, and `customers` counts them all.

```bash
curl "https://api.coritan.com/api/v1/orgs/acme/billing/usage-cost?month=2026-09" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

```json
{
  "month": "2026-09",
  "currency": "USD",
  "basis": "usage",
  "totals": {"usage_wholesale": "98.67", "list": "164.45", "retail_revenue": "128.27", "margin": "29.60"},
  "by_product": [
    {"product_id": 402, "name": "Minecraft 8 GB", "usage_wholesale": "47.37", "customers": 2}
  ],
  "by_customer": [
    {"customer_id": 103, "email": "alex@example.com", "services": 2, "usage_wholesale": "41.07",
     "retail_revenue": "30.48", "margin": "-10.59", "loses_money": true}
  ],
  "customers": 5,
  "budget": {"amount": "120.00", "spent": "98.67", "percent": 82.2},
  "hold": {"held": false, "reason": null}
}
```

Every money figure is text with two decimals. `budget` is `null` without a budget, and `hold.held` is `true` while new orders are paused. An organization on the `plans` basis has no usage rows and answers zeros.

`GET /billing/basis/preview` answers the last three complete months, oldest first, with `plan_wholesale` and `usage_estimate`, whether a month was `assumed`, the `assumption` that says how, `current`, `effective_at` (when a switch asked for now lands) and `pending`, a switch already asked for. Coritan's own organizations answer `409`.

```bash
curl -X PUT https://api.coritan.com/api/v1/orgs/acme/billing/basis \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"basis": "usage"}'
```

`PUT /billing/basis` takes `usage` or `plans` and answers the basis in force now and the switch still to come: `{"basis": "plans", "pending": {"basis": "usage", "effective_at": "2026-11-01T00:00:00+00:00"}}`. Sending the basis you are on cancels a waiting switch. A member who is not the owner gets `403`, another word `422` and Coritan's own organizations `409`. Each change is in the audit log.

```bash
curl -X PUT https://api.coritan.com/api/v1/orgs/acme/billing/usage-budget \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"amount": "100.00"}'
```

`PUT /billing/usage-budget` takes `amount` in US dollars as text, or `null` to remove the budget, and answers `{"amount": "100.00", "spent": "39.46", "percent": 39.5}`. An amount that is not more than zero answers `422`.

The `billing.usage_budget` event carries `threshold` (`80` or `100`), `spent`, `amount` and `month`:

```json
{"threshold": 80, "spent": "80.00", "amount": "100.00", "month": "2026-10"}
```

## Related

- [The reseller program's terms](/docs/organizations/partner-program/)
- [Set up products and pricing](/docs/organizations/products-and-pricing/)
- [Track your payouts](/docs/organizations/billing/payouts/)
- [See your platform cut](/docs/organizations/billing/platform-cut/)

## API

- `GET /api/v1/orgs/{org_slug}/billing/usage-cost`: What your customers' compute use cost you in a month, by product and by customer (https://www.coritan.com/docs/api/reference/organizations/billing-payouts/billing/#op-get-api-v1-orgs-org-slug-billing-usage-cost)
- `GET /api/v1/orgs/{org_slug}/billing/basis/preview`: What switching the billing basis would have meant over the last three months (https://www.coritan.com/docs/api/reference/organizations/billing-payouts/billing/#op-get-api-v1-orgs-org-slug-billing-basis-preview)
- `PUT /api/v1/orgs/{org_slug}/billing/basis`: Switch what Coritan charges you for compute, from the 1st of next month (https://www.coritan.com/docs/api/reference/organizations/billing-payouts/billing/#op-put-api-v1-orgs-org-slug-billing-basis)
- `PUT /api/v1/orgs/{org_slug}/billing/usage-budget`: Set the most your customers' compute use may cost you in a month, or remove it (https://www.coritan.com/docs/api/reference/organizations/billing-payouts/billing/#op-put-api-v1-orgs-org-slug-billing-usage-budget)
