Rate cards

Reusable pricing templates that map agents to per-unit prices. Assign one to a customer to control what they pay per confirmed outcome.

What is a rate card?

A rate card is a named collection of agent–price mappings. Each entry pairs a agent with a price_per_unit — the amount billed when an outcome for that agent resolves CONFIRMED.

Rate cards are shared across customers. You define them once and assign the same card to many customers. A single customer is assigned at most one rate card at a time.

Key

Every rate card has a key — a lowercase slug that uniquely identifies it within your account:

standard
enterprise-2024
agency_tier

Keys must start with a letter or digit and may contain lowercase letters, digits, hyphens (-), and underscores (_). The key is unique per account, not globally — two different accounts may each have a rate card keyed standard.

Entries

A rate card contains zero or more entries. Each entry maps one agent to a price:

{
  "id": "...",
  "key": "standard",
  "entries": [
    { "agent_id": "...", "price_per_unit": 10.00, "rate_type": "flat" },
    { "agent_id": "...", "price_per_unit": 12.00, "rate_type": "flat" }
  ]
}

Each agent may appear at most once per rate card. Only flat billing (fixed price per confirmed outcome) is supported today.

Assigning to a customer

A rate card is assigned to a customer at the customer level. When an outcome for that customer resolves CONFIRMED, the price recorded on the outcome is read from the customer's rate card entry for that agent at the time the outcome was created.

Changing a rate card after outcomes exist does not retroactively change the price of past outcomes. Each outcome snapshots its price_per_unit at creation time.

Archiving

Deleting a rate card soft-deletes (archives) it. Archived rate cards are excluded from the default list response but remain accessible by id. Customers assigned to an archived rate card retain the assignment and historical outcomes are unaffected.

Updating entries

Rate cards and their entries are managed from the dashboard. Edits replace the full entry set on save.

On this page