# The AI Agency Margin Problem: When OpenAI Is Your Biggest Vendor

API costs scale with every client you add. How agencies price AI work, where margins leak, and what flat subscription-backed capacity changes.

*Published 2026-06-12 · https://proxyllm.ai/blog/ai-agency-margins-openai-api*

Every AI agency discovers the same line item around month three: OpenAI is quietly their largest vendor after payroll. The bill grows with every client added, every workflow shipped, every retry loop an agent takes. Revenue per client is flat; cost per client is metered. That mismatch is the margin problem, and pricing tricks only redistribute it. Flat capacity removes it.

## Why metered costs hit agencies hardest

A SaaS company eats its API bill once, against one product. An agency eats it per client, multiplied by everything that makes agency work agency work:

- **Client work is repetitive at scale.** Forty clients running the same content pipeline is the same workload forty times, but the meter charges full price for each.
- **Agents multiply calls.** One "task" is five to fifty model calls once you count planning, tool use, retries, and review passes.
- **Usage is spiky.** Campaign launches and month-end batches concentrate spend, which makes monthly bills unpredictable and retainer pricing a guess.
- **You cannot invoice surprise.** When the bill lands 40% over estimate, renegotiating mid-retainer costs trust; absorbing it costs margin.

The result, in numbers we hear: $85/client/month average usage across 40 clients is $3,400/month, around $40k a year, scaling linearly with growth.

## The three pricing patterns and their failure modes

**Absorb it.** Quote a retainer with usage baked in. Simple, and fine until one client's workload doubles; then you are paying to work for them.

**Pass it through.** Bill usage at cost plus markup. Transparent, but it pushes the unpredictability onto clients, invites bill-shopping, and makes your invoice hostage to a vendor's pricing page.

**Cap it.** Hard usage caps per client. Predictable, but caps turn into support conversations the day a client hits one mid-campaign.

All three are workarounds for the same primitive: the input cost is metered. Change the primitive and all three soften.

## What flat capacity changes

[Codex Hosted](/) runs OpenAI's Codex against your own ChatGPT subscription, exposed as one OpenAI-compatible endpoint. The plan window does the work the meter used to charge for. The agency math:

|                  | Metered (API)     | Subscription-backed                   |
| ---------------- | ----------------- | ------------------------------------- |
| Cost shape       | Linear with usage | Step function ($100 plan steps)       |
| 40 clients @ $85 | $3,400/mo         | ~$100 + $129/mo + overflow                   |
| Client #41       | +$85/mo forever   | ~$0 until the window, then +$100 step |
| Bad-month risk   | Unbounded         | Capped by fallback lane spend         |

Adding the next client adds close to zero marginal AI cost until you need another plan step. That sentence is the whole pitch to your P&L. The detailed tier math, including where the crossover sits, is in [the API vs subscription comparison](/blog/openai-api-vs-chatgpt-subscription-cost).

Two operational notes so the picture stays honest: plan capacity arrives in rolling windows, so bursty months want a second account or an API-key fallback lane ([how limits behave](/blog/what-happens-when-you-hit-codex-usage-limit)), and the Codex lane returns complete responses rather than streams, which suits pipelines and agents better than live chat UIs.

## Running client work cleanly

The pieces that make this workable across a book of clients:

- **Scoped sub-keys per client or app**, each with a budget cap, so one client's runaway workflow cannot eat the window everyone shares.
- **Request logs with per-key spend**, which turn "what did we use for client X" from a spreadsheet exercise into a filter.
- **Fallback lanes** (second account, then your API key), so client deliverables never wait on a window reset.
- **Your accounts, your billing.** Clients see deliverables and, if you want, usage reports; they never need their own ChatGPT accounts.

Policy posture, because agencies ask: programmatic Codex use is documented OpenAI functionality, your accounts are never shared or pooled, and OpenAI retains final discretion over its services. The plain-language version is in [our reading of OpenAI's terms](/blog/is-codex-hosted-against-openai-terms); the [terms](/terms) carry the formal one.

If OpenAI is your biggest vendor, the fix is thirty seconds of arithmetic: put your monthly bill in the [calculator](/calculator) and read what the same workload costs against a plan.
