Skip to main content
A pricing model is the rule that turns a quantity (seats, API calls, dollars processed) into an amount owed. Every price in Alguna has a type and one matching *_pricing_model object; the type decides which object is required. Use this page to pick the right model for a product before you build a plan or subscription. For the exact request shape of each model, see the pricing models reference; for where prices sit in the object graph, see How Alguna Works.

The eleven types

All amounts are strings ("0.05", "500.00"), never floats.

Fixed

A flat amount for a set quantity, regardless of usage. The quantity is on the price (units), so a 25-seat licence is price_per_unit: "10.00", units: 25. Use for: platform access fees, base subscriptions, support tiers, seat licences where the count is contracted rather than measured.
Dashboard: Products → New Product → fee type Fixed → pricing model Fixed.

Unit

One rate multiplied by the measured quantity. Use for: metered products where every unit costs the same: storage per GB, emails sent, seats when the count is metered.
Dashboard: Products → New Product → fee type Metered → select the metric → pricing model Per Unit.

Tiered

The total quantity decides which tier applies, and every unit is priced at that tier’s rate. 250 units land in tier 2, so all 250 are charged at 0.10=0.10 = **25.00**.
Use for: rewarding volume with a lower rate across the board. Works with fixed or metered fee types.

Graduated tiered

Each tier is priced independently, so the quantity is split across the tiers it spans. Same tier table as above. 250 units cost:
  • First 100 @ 0.15=0.15 = 15.00
  • Next 150 @ 0.10=0.10 = 15.00
  • Total = $30.00
Use for: usage pricing where the first units carry the highest rate and marginal cost falls with volume. A free allowance is a first tier with price_per_unit: "0.00".
Tiered and graduated tiered take the same tier table and give different totals (25.00vs25.00 vs 30.00 in the example). Confirm which one you selected before publishing.

Prepaid with overages

The customer commits to a quantity up front (prepaid_units) at a committed rate, and anything beyond it is charged at the overage tiers. The commitment is billed in advance and drawn down; the overage is billed in arrears.
  • Prepaid: 1,000 API calls
  • Overage: $0.08 per call beyond 1,000
  • 1,500 calls used → the commitment plus 500 × 0.08=0.08 = **40.00** overage
prepaid_fixed_tiered takes the same shape plus overages_charge_interval, which lets overage be invoiced on a different cadence from the commitment. Use for: committed-usage packages, API bundles, messaging packs, and any deal where cash comes in before consumption. For committed balances that span products, see Credits & Wallets.

Volume percentage

A single percentage of the transaction value, plus an optional fixed fee per event.
  • Rate: 2.5% + $0.25 per transaction
  • $10,000 processed across 100 transactions
  • Fee: (10,000×2.510,000 × 2.5%) + (100 × 0.25) = 250+250 + 25 = $275
Use for: payment processing, marketplace take rates, revenue share.

Graduated percentage

Different percentage rates apply to successive slices of the volume. $250,000 processed:
  • First 100K@2.5100K @ 2.5% = 2,500
  • Next 150K@2.0150K @ 2.0% = 3,000
  • Total = $5,500

Tiered percentage

The total volume picks a tier, and that tier’s percentage applies to the whole amount. Same tiers as above. 250,000landsintier2,soallofitischargedat2.0250,000 lands in tier 2, so all of it is charged at 2.0% = **5,000**.

Expression

When no standard model expresses the pricing, an expression price computes the quantity and the unit rate from formulas over your metrics. Use it for rates that fall continuously with volume, pricing that combines several metrics, or conditional charges. Example: charge for compute hours at a rate that falls as monthly usage rises, and bill API calls above a free allowance in the same price. See the reference for the expression syntax and the variables available.

Matrix

Matrix pricing routes each usage event to a priced cell based on its property values, so the rate can vary along more than one dimension at once. Each cell carries its own pricing model, so one dimension can be flat while another is tiered, and a fallback cell catches anything that does not match. Example: a per-request rate that differs by region and by request type. See the reference for the routing tree, wildcard and fallback behaviour, and a worked example.

Fields every price carries

Whatever the type, a price also carries fee_type, billing_direction (advance or arrears), the billing cadence (billing_interval_unit + billing_interval_count, or the legacy billing_interval), and optional guardrails: minimum_spend, maximum_spend, discount and trial_period_days. These are documented in the reference. Only advance charges from the fixed-class models (fixed, tiered, graduated_tiered, and prepaid_fixed_tiered billed in advance) are prorated on mid-period changes. Arrears and metered charges never are.

Choosing a model


Next steps

Configure Products

Create the products these prices attach to.

Create Plans

Package priced products into a reusable offer.

Pricing models reference

Request shape and required fields for every type.

Send usage

Feed the metrics that metered prices rate.