---
title: "What a trust-and-safety UGC moderation cascade costs per 1M items screened"
description: "A UGC moderation cascade screens 1M items for $87.60-$147.60 when 95% terminate cheap and 5% escalate — 92.6% under always-Opus."
canonical: https://vynaris.com/blog/ugc-moderation-cascade-cost-per-1m-items-playbook
author: "Dhrumil Barot"
author_bio: "Dhrumil is an AI inference and LLM infrastructure expert. Dhrumil built Vynaris to make model access, routing and pricing simple and transparent for developers."
published: 2026-08-04
updated: 2026-08-22
---

# What a trust-and-safety UGC moderation cascade costs per 1M items screened

Published 2026-08-04 · Updated 2026-08-22 · By [Dhrumil Barot](https://vynaris.com/about#founder), Founder

A UGC moderation cascade screens 1M items for $87.60-$147.60 when 95% terminate cheap and 5% escalate — 92.6% under always-Opus. Free OpenAI Moderation can cut further. Prices verified 2026-08-04.

A sequential trust-and-safety cascade screens 1,000,000 UGC items for $87.60 to $147.60 in model fees when 95% terminate on a cheap classifier and 5% escalate to a frontier model. That is 92.6% cheaper than running Claude Opus 5 on every item ($2,000.00). The OpenAI Moderation endpoint is free and can cut the residual further. Prices verified 2026-08-04.

## TL;DR

- On a 300-input / 20-output policy-classification shape, [deepseek-v4-flash](https://vynaris.com/models#deepseek-v4-flash) alone costs $47.60 per 1M items. Add a 5% escalate to [Claude Sonnet 5](https://vynaris.com/models#claude-sonnet-5) and the cascade totals $87.60; escalate to [Claude Opus 5](https://vynaris.com/models#claude-opus-5) and it is $147.60. Always-Opus is $2,000.00. Prices verified 2026-08-04.
- Savings follow `S = (1 - r) - e`. With deepseek into Opus, `r = 0.024` and `e = 5%`, so `S = 92.6%`. The cascade only loses to always-Opus above `e* = 97.6%` escalation.
- The OpenAI Moderation endpoint (`omni-moderation-latest`) is free. Used as tier-0, then escalate 5% of residuals to Opus, model fees drop to $100.00 per 1M on a pure free→Opus path, or ~$29.52 when free Moderation settles 80% of items before a deepseek→Opus cascade runs on the rest.
- Honest floor: if the 5% escalated tail also hits a human reviewer at an assumed $0.05/item, that human line is $2,500.00 — 16.9x the deepseek→Opus model bill. The model cascade is not your T&S budget.

## The finding, before the model

UGC moderation is a terminate-or-escalate pipeline. A cheap classifier scores every item against policy. Clear allow and clear block stop there. Ambiguous or high-severity cases escalate to a stronger model, then usually to a human queue. You pay the cheap call on 100% of items and the expensive call only on the escalated fraction `e`.

That is a [confidence-gated cascade](https://vynaris.com/blog/confidence-gated-cascade-routing-cost-math) applied to a specific outcome unit: items screened. The general how-to derived `S = (1 - r) - e` on a 1,500/500 task shape. This playbook plugs in the T&S workload (300 in / 20 out), a free Moderation floor OpenAI documents as free to use, and the human-review line on the escalated tail.

It is also not an [LLM jury](https://vynaris.com/blog/llm-jury-data-labeling-cost-per-1m-items-playbook). A jury pays N cheap models in parallel on every item and an arbiter on disagreement. A moderation cascade pays one cheap call, terminates 95% of the time, and double-spends only on the 5% tail. Break-even is an escalation rate, not a jury size.

Every token count below is an assumption you can edit. Every price is from a provider's live page, captured 2026-08-04.

## The workload (edit these)

One screened item is the outcome unit: one UGC post, comment, or listing scored against policy.

| Assumption | Value | Note |
| --- | --- | --- |
| Item + policy rubric in | 300 [input tokens](https://vynaris.com/glossary/input-tokens) | content snippet plus the policy checklist each classifier reads |
| Decision out | 20 [output tokens](https://vynaris.com/glossary/output-tokens) | class (allow / review / block) plus a short reason code |
| Terminate rate | 95% | clear allow or clear block at the cheap tier |
| Escalation rate `e` | 5% | ambiguous or high-severity → frontier (+ human queue) |
| Gate | self-scored | cheap model emits confidence; no separate judge call (`g ≈ 0`) |
| Human review on escalated | $0.05 / item (assumption) | editable; measure your reviewer's fully-loaded minute |

Two numbers drive the model bill. The cheap unit cost runs on every item. The escalation rate `e` gates the frontier unit. Everything else is [cost-per-token](https://vynaris.com/glossary/category/cost-and-finops#cost-per-token) arithmetic. The number people guess wrong is `e`, because it is a property of your policy strictness and your first-pass model's calibration, not a sticker price.

## Unit costs: what one call costs per 1M items

Same 300/20 shape on every model. Prices verified 2026-08-04.

| Model | $/1M in | $/1M out | Cost /1M items |
| --- | --- | --- | --- |
| OpenAI Moderation (`omni-moderation-latest`) | $0 | $0 | $0.00 |
| deepseek-v4-flash | $0.14 | $0.28 | $47.60 |
| gpt-5.6-luna | $0.20 | $1.20 | $84.00 |
| gemini-3.5-flash-lite | $0.30 | $2.50 | $140.00 |
| [Claude Haiku 4.5](https://vynaris.com/models#claude-haiku-4-5) | $1.00 | $5.00 | $400.00 |
| Claude Sonnet 5 | $2.00 | $10.00 | $800.00 |
| gpt-5.6-terra | $2.00 | $12.00 | $840.00 |
| gemini-3.1-pro (≤200k) | $2.00 | $12.00 | $840.00 |
| Claude Opus 5 | $5.00 | $25.00 | $2,000.00 |
| gpt-5.6-sol | $5.00 | $30.00 | $2,100.00 |

Derivation for deepseek: `300 × $0.14 + 20 × $0.28 = $47.60` per 1M items. Same formula for every row. [Price your own item and decision sizes](https://vynaris.com/calculator?in=300&out=20) before you lock a cascade.

## Verdict: cascade cost at 5% escalation

`cascade /1M = cheap_unit + 0.05 × premium_unit`. The cheap call runs on all 1M items. The premium runs on 50,000.

| Cascade | Cheap (100%) | Premium @5% | Total /1M | vs always-Opus |
| --- | --- | --- | --- | --- |
| deepseek-v4-flash → Claude Sonnet 5 | $47.60 | $40.00 | $87.60 | 95.6% less |
| Free Moderation → Claude Opus 5 | $0.00 | $100.00 | $100.00 | 95.0% less |
| deepseek-v4-flash → Claude Opus 5 | $47.60 | $100.00 | $147.60 | 92.6% less |
| gpt-5.6-luna → Claude Opus 5 | $84.00 | $100.00 | $184.00 | 90.8% less |
| gemini-3.5-flash-lite → Claude Opus 5 | $140.00 | $100.00 | $240.00 | 88.0% less |
| Claude Haiku 4.5 → Claude Opus 5 | $400.00 | $100.00 | $500.00 | 75.0% less |
| Lone Claude Opus 5 (no cascade) | — | — | $2,000.00 | baseline |

Read the cheap column. On a well-calibrated cascade the first-pass model is most of the spend only when it is mid-tier (Haiku). With deepseek, the $100.00 Opus slice on 5% of items already exceeds the $47.60 first-pass bill. Pull the escalation lever and the premium price before you obsess over another $0.05 on the cheap tier.

![Horizontal bar chart, single blue hue, log x-axis, of model fees per 1,000,000 UGC items: deepseek→Sonnet $87.60, free Moderation→Opus $100, deepseek→Opus $147.60, Haiku→Opus $500, lone Sonnet $800, lone Opus $2,000](https://cdn.sanity.io/images/u1qdn8dx/production/0998028000637d3dc4ec5e0e5558c00c483afe74-1382x710.png?w=1440&fit=max&auto=format)

*UGC moderation cascade cost per 1M items at 5% escalation vs always-frontier baselines. Prices verified 2026-08-04.*

## The savings formula, applied to this shape

From the cascade how-to: with self-scored confidence (`g ≈ 0`),

```
S = (1 - r) - e
r = cheap_unit / premium_unit
e* = 1 - r
```

For deepseek → Opus: `r = 47.60 / 2000.00 = 0.0238`, so at `e = 5%`, `S = 92.6%`. Break-even `e* = 97.6%`. You would have to escalate almost everything before the cascade costs as much as always-Opus.

| Escalation `e` | deepseek → Opus /1M | Savings vs always-Opus |
| --- | --- | --- |
| 1% | $67.60 | 96.6% |
| 5% | $147.60 | 92.6% |
| 10% | $247.60 | 87.6% |
| 20% | $447.60 | 77.6% |
| 50% | $1,047.60 | 47.6% |
| 97.6% (`e*`) | $2,000.00 | 0% |

Each extra point of escalation costs another $20.00 per 1M on the Opus leg (`0.01 × $2,000`). If your gate is soft and `e` drifts from 5% to 20%, you add $300.00 per 1M — more than six times the entire deepseek first-pass bill. Calibrate the gate on a labeled sample before you celebrate the sticker savings.

## Free Moderation as tier-0

OpenAI's Moderation endpoint is free to use (`omni-moderation-latest` on text and images; docs re-read 2026-08-04). It covers a fixed taxonomy (hate, sexual, violence, self-harm, and related). It does not encode custom marketplace or community rules. Treat it as a pre-filter for categories it covers, not as a full policy engine.

If free Moderation settles fraction `f` of items, residual `(1 - f)` enters the LLM cascade:

| Free settle rate `f` | Residual | free → deepseek → Opus /1M | free → Sonnet on residual /1M |
| --- | --- | --- | --- |
| 60% | 40% | $59.04 | $320.00 |
| 80% | 20% | $29.52 | $160.00 |
| 90% | 10% | $14.76 | $80.00 |

Derivation: residual cascade = `(1 - f) × (cheap_unit + e × premium_unit)`. At `f = 80%` and deepseek→Opus: `0.20 × $147.60 = $29.52`. Custom rules (spam rings, marketplace fraud, brand impersonation) still need the LLM cascade.

## Where routing changes the unit economics

[Model routing](https://vynaris.com/glossary/category/routing-and-cost#model-routing) on this workload has three real jobs.

Route by severity, not content length. Keep the 95% terminate path on deepseek or Luna. Reserve Opus for severity classes the gate already flagged.

Route the escalate tier by decision cost. Send low-severity review queues to Sonnet 5 ($40.00 at 5% of 1M) and hold Opus for the high-severity slice. That is a weighted average on a signal the first pass already produced.

Use free Moderation only where its taxonomy matches. Route hate/sexual/violence through the free endpoint first; route custom policy through the LLM cascade. Mixing those without a taxonomy map ships false confidence, not savings.

Where routing does not help: re-scoring a clear allow on a second model. That is pure double-spend with no new information.

## The human queue dwarfs the model bill

Here is the honest tradeoff. Trust-and-safety almost always puts a human on the escalated tail. At `e = 5%`, that is 50,000 items per 1M. If a reviewer costs an assumed $0.05 per item (measure your fully-loaded minute), the human line is $2,500.00 — 16.9x the deepseek→Opus model bill of $147.60. Combined: $2,647.60 per 1M.

That reframes the goal. The cascade's job is not to minimize model spend in isolation. It is to keep `e` low enough that the human queue stays small, while false-allow rates stay inside risk tolerance. Shaving $60 off the model line while letting `e` drift from 5% to 8% adds $1,500 in human review and is a net loss. Optimize the gate for human-minutes avoided, not for [tokens](https://vynaris.com/glossary/category/tokenization) alone.

Skip a multi-tier cascade when free Moderation plus rules already clear your gold set, or when every flag needs a human and volume is low enough that a single model plus review is simpler. A cascade earns its wiring when the first pass truly terminates most items without a person.

If overnight latency is fine for backlog sweeps, the [Batch API](https://vynaris.com/glossary/category/inference-and-serving#batch-api) halves OpenAI and Anthropic rates (flat 0.5x) — free money on a non-realtime sweep, still a rounding error next to the human queue. [Prompt caching](https://vynaris.com/glossary/category/inference-and-serving#prompt-caching) helps only the static policy rubric, not unique UGC text, so it does not move the escalation lever.

## FAQ

**What does a UGC moderation cascade cost per 1M items?** With 300 in / 20 out and 5% escalation, deepseek-v4-flash → Claude Sonnet 5 costs $87.60 per 1M and deepseek → Claude Opus 5 costs $147.60. Always-Opus is $2,000.00. Prices verified 2026-08-04.

**Why does 5% escalation beat always-frontier by ~90%?** Savings are `S = (1 - r) - e`. Budget first-pass models have `r` near 0.02–0.07 against Opus, so a 5% haircut still leaves ~88–93% savings.

**Does free OpenAI Moderation replace an LLM classifier?** No. It is free on its published taxonomy, but it does not encode custom community rules. Use it as tier-0 where categories overlap; keep an LLM cascade for the rest.

**When does the cascade stop saving money?** At `e* = 1 - r`. For deepseek → Opus that is 97.6%. A soft gate that pushes `e` from 5% to 20% already adds $300 per 1M on the Opus leg alone.

**When should I not build a cascade?** When free Moderation plus rules already clear your gold set, when every flag needs a human at low volume, or when a poorly calibrated first pass escalates most items and you pay double-spend without terminating the mass.

## Sources

- OpenAI API pricing (gpt-5.6-luna $0.20/$1.20, terra $2/$12, sol $5/$30), captured 2026-08-04: https://developers.openai.com/api/docs/pricing
- OpenAI Moderation guide (`omni-moderation-latest`; "The moderation endpoint is free to use"), captured 2026-08-04: https://developers.openai.com/api/docs/guides/moderation
- Anthropic pricing (Claude Opus 5 $5/$25, Claude Sonnet 5 $2/$10 standard, Claude Haiku 4.5 $1/$5), re-verified 2026-08-14: https://platform.claude.com/docs/en/about-claude/pricing
- DeepSeek API pricing (deepseek-v4-flash $0.14/$0.28), captured 2026-08-04: https://api-docs.deepseek.com/quick_start/pricing
- Google Gemini API pricing (gemini-3.5-flash-lite $0.30/$2.50, gemini-3.1-pro $2/$12 ≤200k), captured 2026-08-04: https://ai.google.dev/gemini-api/docs/pricing
- Adjacent demand signal, confidence-gated cascade interest: https://news.ycombinator.com/item?id=49010782
- General cascade formula (same `S = (1 - r) - e` derivation): https://vynaris.com/blog/confidence-gated-cascade-routing-cost-math
- Cost model script: arithmetic from the assumptions table above (artifacts/ugc-moderation-cascade-cost-per-1m-items-playbook-math.py).

Prices change. We re-verify every figure in this post monthly and stamp updates. Numbers here are current as of 2026-08-04.

A UGC moderation cascade's cost is the cheap call on every item plus escalation times the frontier call — and the human queue on that same tail usually dwarfs both. Keep `e` low, use free Moderation where its taxonomy fits, and put your cheapest defensible model on the 95% terminate path. Vynaris is an OpenAI-compatible gateway that routes each request to the cheapest right-sized model. One base URL swap. Get an API key at vynaris.com.

## About the author

[Dhrumil Barot](https://vynaris.com/about#founder), Founder. Dhrumil is an AI inference and LLM infrastructure expert. Dhrumil built Vynaris to make model access, routing and pricing simple and transparent for developers. [LinkedIn](https://www.linkedin.com/in/bdhrumil) · [X](https://x.com/fyidhrumil)
