Usage-based billing recipes/ PACKAGE PRICING

Build package pricing finance and customers both trust

Your customers buy usage in whole blocks at a fixed price. They know exactly what they’re paying. Finance knows what’s coming. Chargebee handles rounding and invoicing automatically. No micro-charges, no per-unit disputes, just a straightforward monthly cadence customers understand immediately.

Model
Package pricing
Complexity
Low–Medium
Building blocks
3
Reference
DeepL
DeepL API · character-based pricingdeepl.com/en/pro  ·  Illustrative reference
Developer (Free)
$0
500K chars / month
Growth (API)
50M chars incl.
+$27.50 / 1M extra
Enterprise
Custom
Volume commitments
Billing dimension
Developer
Growth
Enterprise
Unit of billing
Characters
1M char package
Custom blocks
Package size
500K / mo cap
1,000,000 chars
Negotiated
Price per package
-
$27.50
Custom
Minimum billed
N/A
1 package ($27.50)
1 package
Fractional usage?
N/A
Rounds up
Rounds up
Source: deepl.com/en/pro (Growth plan, Jun 2026)  ·  The $27.50/1M rate is used here as a block price. Ceil-rounding is a Chargebee billing feature, not DeepL's published logic.
Real-world model: DeepL Growth charges $27.50 / 1M extra chars above a 50M included quota. The 300–500M chars/mo volumes and customer-specific figures throughout this recipe are illustrative. Ceil-rounding is a Chargebee feature; how DeepL actually structures invoicing internally is their own.
The model

Package pricing: predictable pricing, simple billing, dispute-free revenue

Customers buy capacity in whole blocks (or packages, the terms are used interchangeably), not individual units. Your API reports raw counts; Chargebee accumulates across the period and rounds up at close. Every unit of consumption maps to a fixed-price block. The key difference from per-unit metering: customers always pay for complete blocks, never fractional costs.

Compare this to per-unit metering, where charges scale with decimals. A customer consuming 1.2 million characters at $0.0000275 per character pays $33.00. With package pricing, that same usage rounds to 2 blocks at $27.50 each = $55.00. You trade a slightly higher per-unit cost for revenue predictability. Customers know their costs upfront, reducing billing confusion and churn.

This works when
  • You sell digital products where value is measured in discrete units: characters, tokens, API calls, documents, or similar
  • A full block costs little enough that low-volume customers don't push back on paying for the headroom
  • You want to reduce billing complexity and customer disputes about fractional charges
  • Your customer base values predictable, auditable invoices over minimal per-unit cost
The recipe

Here's what you need

Three objects in the Chargebee catalog. Set them up once and package pricing is live. There is nothing else to wire up, which is what keeps this model simple to run.

1
PlanThe anchor
$1,500/mo base

Required on every Chargebee subscription. Here it carries the flat $1,500/mo platform fee, keeping the fixed base charge cleanly separated from variable usage.

2
Metered add-on with package pricingThe block engine
$27.50/ 1M chars

A metered add-on where DeepL defines the package: 1,000,000 characters per block at $27.50. This is the protagonist of the recipe.

3
Feature entitlementIncluded quota per plan
50M chars · Growth

Add a feature called translation_quota to each plan and set a different included limit for each one. Your app checks this value to see how many translations are included. Customers are only charged through the metered add-on after they exceed that limit.

01 Set up

Define the block size and price once.
Every subscription inherits it

Package pricing is built on three components working together. A plan anchors the subscription with the flat platform fee. A metered add-on tracks character usage and applies package pricing, rounding consumption to the nearest 1M-character block. A feature entitlement sets per-plan included quotas so charges only fire after customers exceed their limit. Here's how to configure each.

The metered add-on is where DeepL defines the package, 1,000,000 characters at $27.50 per block. Raw character counts flow in from DeepL's app, Chargebee accumulates them across the period, and the invoice shows a single rounded line at close.

Chargebee product catalog - DeepLtranslation-api-growth
Base plan
Translation API – Platform fee
$1,500 / mo · flat
Metered item attached
Metered item (package pricing)
chars_translated
$27.50 / package
Pricing model: Volume · Advanced config: ON
Package size: 1,000,000 Ceil rounding Min: 1 packageMonthly
Product Catalog Items chars_translatedActive
Pricing
Tiers
Advanced
SettingValueNotes
Item typeMetered Usage reported via API each billing period
Pricing modelVolume Required for package pricing. Tiered also works.
Price per unit$0.000025 Per character - Chargebee multiplies by package size internally
Advanced pricing configEnabled Unlocks the package size field
Package size1,000,000 Chargebee bills usage ÷ 1,000,000 packages at $27.50 each
Entitlements Features translation_quotaActive
Product entitlements
Subscription overrides
PlanFeatureTypeEntitlement level
Starter
translation-api-starter
translation_quotaQuantity5,000,000chars
Growth
translation-api-growth
translation_quotaQuantity50,000,000chars
Enterprise
translation-api-enterprise
translation_quotaQuantityUnlimited
How it works at runtime: Your app calls the Chargebee Entitlements API with the subscription_id to get the customer’s translation_quota level. Characters consumed below that level are covered by the plan. Usage above it is reported to the chars_translated metered add-on and billed as packages.
02 Sell

Customers know exactly what they’re buying before they sign

The quote is transparent: a flat platform fee plus a per-block rate. There are no hidden tiers, no volume discounts waiting to be negotiated, no usage thresholds that shift pricing. The customer sees the formula at signing and knows it won't change. On acceptance, Chargebee activates the subscription and begins tracking usage from the start date.

Quotes Q-2026-0388Accepted
Q-2026-0388DeepL · Monthly · Jun 1, 2026 onwards
Download PDFConvert to subscription
Line itemTypeUnitMonthly amount
Translation API – Platform fee
Flat monthly access fee
Flat1 × 1 mo$1,500
chars_translated
Metered · billed monthly in 1M-char packages · ceil rounding
Metered (pkg)$27.50 / 1M charsPer usage
Characters are billed in packages of 1,000,000. Any partial package is rounded up to a full package. Minimum 1 package ($27.50) per billing period.
Base at signing
$1,500 + usage
03 Meter

Report raw counts. Chargebee handles the package math

Each batch fires a usage event with four fields: subscription_id, item_price_id, quantity (raw char count), and a deduplication_id. Report at any granularity, per call, hourly batch, or daily rollup. Chargebee accumulates everything and applies total ÷ 1,000,000 once, at period close.

Usages SUB-2026-DPL-001200 pkgs running
DeepL · Usage logchars_translated · billing period Jun 1–30, 2026
400,000,000 chars accumulated→ 400 packages at close
0500M
Event IDTimestampChars reportedRunning total
evt_9204Jun 28, 14:1148,000,000400,000,000
evt_9203Jun 27, 09:4462,000,000352,000,000
evt_9202Jun 25, 16:3090,000,000290,000,000
evt_9201Jun 22, 11:07200,000,000200,000,000
POST /v2/usages
// Fire after each translation batch
{
  "subscription_id": "SUB-2026-DPL-001",
  "item_price_id":    "chars_translated-USD-monthly",
  "usage_date":      1751132400,
  "quantity":         "480000",
  "deduplication_id": "evt_9204"
}

// Report raw chars - not packages.
// Chargebee rounds at period close,
// not at the time of this event.
Period close - Chargebee calculates
total = 400,000,000 chars
400,000,000 ÷ 1,000,000 = 400 packages
invoice = 400 × $27.50 = $11,000.00
04 Surface

Customers see their charges accumulating, in real time

Pull past invoices from Chargebee's API and surface monthly spend, packages billed, and usage trend. Customers see costs building in real time instead of getting surprised at invoice close.

What DeepL pulls from the API:

  • Month-on-month invoice amount, from the amount_paid field on each past invoice
  • Packages billed per period, from the metered line item's quantity field
  • Usage trend over the last 12 months, by comparing invoice amounts period-over-period
What Chargebee gives you
GET /api/v2/invoices
// Query params
subscription_id=AzBc-DeepL-001
limit=12
sort_by[desc]=date

// Response, each past invoice
{
  "list": [
    { "invoice": {
      "id":           "INV-2026-0405",
      "date":         1717113600,
      "amount_paid":  700000,
      "line_items": [
        { "entity_id": "Translation-Platform-Fee",
          "quantity": 1, "amount": 150000 },
        { "entity_id": "chars_translated",
          "quantity": 200, "amount": 550000 }
      ]
    }},
    // ... 11 more invoices
  ]
}
What your app builds with it
DeepL customer dashboard
Built by DeepL · data from Chargebee Invoices API
Live
Current period · Jun 2026
In progress · closes Jun 30
$12,500 est.
400 pkgs · 400M chars
Last 6 months · invoice amount↑ 79% vs May
$6.0K
$6.5K
$7.3K
$6.9K
$7.0K
$12.5K*
JanFebMarAprMayJun
* Jun is the current open period, estimate from run rate
05 Bill

Period closes. Chargebee rounds, invoices, collects. No manual work

At month-end, Chargebee applies the rounding formula to the accumulated usage, generates the invoice, and charges the customer's card on file. The invoice line items match the quote the customer signed. DeepL's finance team does no rounding calculations, no tier lookups, no manual adjustments. Chargebee handles it all.

Billing history - DeepL
May 31
INV-2026-0405
$7,000
200 pkgs (200M chars)
Jun 30
INV-2026-0522
$12,500
400 pkgs (400M chars)
Jul 31
Pending
TBD
Est. 450 pkgs
Invoices INV-2026-0522Paid
INV-2026-0522DeepL · Jun 1–30, 2026 · Generated Jul 1, 2026
Download PDF
DescriptionQtyUnit priceAmount
Translation API – Platform fee
Jun 1–30, 2026
1$1,500.00$1,500.00
chars_translated - 400 packages
400,000,000 chars → 400 = 400 packages × $27.50
400 pkg$27.50$11,000.00
Subtotal
$12,500.00
Start building

Simplicity that customers understand immediately.

Package pricing removes micro-charges and disputes because customers know exactly what they’re paying. Chargebee rounds usage to whole blocks automatically, invoices without spreadsheets, and handles mid-cycle upgrades in the billing workflow. Finance gets predictable revenue. RevOps sees when customers run out of capacity and are ready to buy more.