Blog · 2026-08-04 · Vynaris Team
What a trust-and-safety UGC moderation cascade costs per 1M items screened
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 alone costs $47.60 per 1M items. Add a 5% escalate to Claude Sonnet 5 and the cascade totals $87.60; escalate to 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.024ande = 5%, soS = 92.6%. The cascade only loses to always-Opus abovee* = 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 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. 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 minuteTwo 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 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 (intro through Aug 31) $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.00Derivation 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 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 baselineRead 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.

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 - rFor 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.00Derivation: 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 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 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 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 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 intro $2/$10 through Aug 31 2026, Claude Haiku 4.5 $1/$5), captured 2026-08-04: 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) - ederivation): 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.