# Pricing Models

> Use when choosing a pricing model for a SaaS product — metered (pay per use), credits (block when exhausted), balance (prepaid spend), seats (per-user), or boolean (feature flags). Covers decision frameworks, implementation patterns, and when to use each model.

- Skill: `commet-labs/pricing-models` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add commet-labs/pricing-models`
- Raw SKILL.md: https://api.skillmd.com/api/skills/commet-labs/pricing-models/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: commet-labs (https://skillmd.com/u/commet-labs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/commet-labs/pricing-models

---


# Pricing Models

## Decision Matrix

| Question | Metered | Credits | Balance | Seats |
|----------|---------|---------|---------|-------|
| Is usage predictable? | No | Somewhat | Somewhat | Yes |
| Need hard limits? | No | Yes | Optional | N/A |
| Per-user value? | No | No | No | Yes |
| Multi-feature spend? | No | No | Yes | No |
| Sub-cent pricing? | Yes | No | Yes | No |
| Customer wants cost control? | Low | High | Medium | High |

## Quick Comparison

| Model | Charges When | Blocks on Limit | Best For |
|-------|-------------|-----------------|----------|
| **Metered** | Period end (true-up) | Never | API calls, bandwidth, storage |
| **Credits** | Upfront (blocks) | Yes, hard stop | Image generation, exports, compute jobs |
| **Balance** | Real-time deduction | Configurable | AI token usage, multi-feature platforms |
| **Seats** | Period start (advance) + true-up | N/A | Team tools, per-user licenses |
| **Boolean** | Included in plan base | N/A | Feature flags, plan differentiation |

## Code Examples

### Metered -- Track API usage

```typescript
import { Commet } from "@commet/node";

const commet = new Commet({ apiKey: process.env.COMMET_API_KEY! });

await commet.usage.track({
  customerId: "user_123",
  featureCode: "api_calls",
  value: 1,
  eventId: "usage_abc123",
}, { idempotencyKey: "req_abc123" });
```

### Credits -- Check before consuming

```typescript
const availability = await commet.usage.check({
  featureCode: "image_generations",
  customerId: "user_123",
});

if (!availability.allowed) {
  // Customer exhausted credits -- prompt to buy a credit pack
  const portal = await commet.portal.getUrl({ customerId: "user_123" });
  return redirect(portal.portalUrl);
}

await commet.usage.track({
  customerId: "user_123",
  featureCode: "image_generations",
  value: 1,
});
```

### Balance -- AI token billing

```typescript
import { tracked } from "@commet/ai-sdk";
import { anthropic } from "@ai-sdk/anthropic";
import { generateText } from "ai";

const result = await generateText({
  model: tracked(anthropic("claude-sonnet-4-20250514"), {
    commet,
    feature: "ai_generation",
    customerId: "user_123",
  }),
  prompt: "Explain quantum computing",
});
// Tokens tracked, cost calculated, balance deducted automatically.
```

### Seats -- Manage team members

```typescript
await commet.seats.add({
  customerId: "org_456",
  featureCode: "editor",
  count: 3,
});

const balance = await commet.seats.getBalance({
  customerId: "org_456",
  featureCode: "editor",
});
// balance.current = 3
```

### Boolean -- Check feature access

```typescript
const access = await commet.featureAccess.get({
  code: "custom_branding",
  customerId: "user_123",
});

if (!access.allowed) {
  // Feature not included in their plan
}
```

## Detailed References

| Need | Reference |
|------|-----------|
| **Choosing between models** | [choosing-a-model.md](references/choosing-a-model.md) -- Decision framework, real-world examples |
| **Metered pricing** | [metered.md](references/metered.md) -- Pay-per-use, overage, included amounts |
| **Credit-based pricing** | [credits.md](references/credits.md) -- Block purchases, hard limits, credit packs |
| **Balance / prepaid** | [balance.md](references/balance.md) -- Prepaid spend, AI billing, top-ups |
| **Seat-based pricing** | [seats.md](references/seats.md) -- Per-user, advance + true-up, seat features |
| **Combining models** | [hybrid-models.md](references/hybrid-models.md) -- Base + usage, seats + metered, addons |

