ClaudeHowSupport Us

When batch processing is worth the wait

The discount that goes unused more often than it should

The Batch API offers a real, meaningful discount off standard pricing, and a lot of workloads that would qualify for it never get moved over — not because the discount isn't worth having, but because "does this actually tolerate the wait" is a question that's easy to answer wrong in either direction: over-cautiously assuming everything needs to be synchronous, or optimistically batching something that turns out to have a hidden latency dependency nobody accounted for.

The workloads that are quietly good batch candidates

A lot of work inside a normal product actually has more slack than the team building it assumes, because it was originally built synchronously by default rather than because it genuinely needs to be. Nightly aggregation jobs, periodic re-classification of an existing dataset against an updated model, generating a large one-off set of summaries or embeddings-adjacent text content — these are often run synchronously purely out of habit, inherited from when the volume was small enough that it didn't matter. At any real scale, revisiting whether these genuinely need real-time processing is worth doing explicitly rather than assuming the original architecture was the right call at today's volume.

The hidden dependency that breaks a batch plan

The failure mode worth watching for isn't batching something that's obviously synchronous — that mistake is easy to catch. It's batching something that looks asynchronous on the surface but has a hidden downstream dependency: a report generation job that looks like a good batch candidate but is actually gating a dashboard someone checks first thing each morning, where the batch's typical completion time comfortably beats that deadline most days and occasionally, on a slow day, doesn't. Trace the actual downstream consumer of a workload's output before batching it, not just the workload's own apparent shape.

Sizing the deadline against the worst case, not the typical case

The completion time you should plan against is the maximum a batch could reasonably take, not the typical time it usually completes in — a batch that typically finishes quickly but occasionally takes considerably longer will, on the slow days, blow past a deadline sized against the typical case. If a downstream dependency genuinely can't tolerate the worst-case timing, either that specific piece of work stays real-time while the rest of the workload batches, or the downstream process itself needs to be redesigned around asynchronous delivery rather than a fixed deadline.

Batching a subset rather than an all-or-nothing decision

A workload doesn't have to be entirely batchable or entirely real-time — splitting it by actual urgency, where the latency-tolerant portion moves to batch and the genuinely time-sensitive portion stays synchronous, often captures most of the available discount without forcing a compromise on the part of the workload that really does need a fast response. Treating "batch or don't" as a single decision for an entire pipeline, rather than a per-request or per-workload-type one, tends to leave either real savings or real responsiveness on the table unnecessarily.

Building the pipeline change gradually

Moving an existing synchronous workload to batch is a real engineering change, not a config flag — submission, status tracking, and result retrieval all need building where a synchronous call previously needed none of that. Migrating the highest-volume, most clearly batchable piece of a pipeline first, rather than attempting a full migration in one pass, gives you a working reference implementation to extend to the rest of the workload once it's proven correct on the part where the savings are largest.

Working out whether it's worth it for your specific volume

Whether the discount clears the bar worth building a separate pipeline for is entirely a function of your own volume, not a general property of batching itself — a workload large enough to make the saving substantial and a workload too small to bother are both completely normal outcomes of the exact same underlying discount rate. The batch vs realtime calculator takes your actual volume and deadline and returns the money the discount is worth at your scale, so the decision is made against a real number rather than a general sense that batching is "probably worth it eventually."

Verified 2026-08-08 against ClaudeHow facts module (src/data/facts/) — see /about/#accuracy.