Most transcription bills surprise people not because the per-minute rate moved, but because the minute count was wrong before anything was submitted. Someone counts files, opens a few in a player, reads the duration off the scrubber, multiplies, and budgets from that. Then the batch runs and the numbers land somewhere else. The gap is rarely a broken meter; it is almost always a sizing mistake made upstream of the API call.
Sizing audio minutes is a separate job from transcribing them, and it happens on your side before upload. It needs its own pass over the files: decoded duration per file, a floor per file, a ceiling per file, and a clear view of whether you will settle at list or launch prices. Get those right and a batch becomes predictable. Get them wrong and you get a hold you did not plan for, a spend cap that blocks the queue halfway through, or a transcript set that cost three times the audio it contains.
Why Container Metadata Is a Poor Proxy for Billable Minutes
The duration your operating system shows is a container field. On a clean MP3 it is close enough. On variable-bitrate MP3 without a Xing or LAME header, on streams captured from a browser tab, on concatenated files, and on MP4 video where the audio track is shorter than the video track, that field can drift by seconds per file. Seconds per file multiplied by thousands of files is the difference between a budget that holds and one that does not.
The safer method is to measure decoded samples. Decoding the audio stream to null and reading the reported elapsed time gives the length the encoder will actually see; padding frames and container-level estimates fall away. It costs CPU time, but a decode pass over a few thousand files is cheap compared with re-running a batch because the hold tripped a cap.
Then apply the floor. Whisper jobs on Y-PAD are billed by the second with a 30-second minimum per file, and duration is measured from decoded samples rather than the file header. That minimum is the biggest sizing factor for call recordings, voice memos, IVR captures and short support clips. Ten thousand ten-second notes carry about 27.8 hours of audio but bill as 83.3 hours — 5,000 billable minutes for 1,667 minutes of speech. The audio did not change; the floor did.
Two ceilings matter as well. A single file is capped at 240 audio minutes and 500 MB, so long recordings need splitting, and the split points are yours to choose — cut on silence where possible so you do not clip a word across two files. A finished transcription also bills even when the transcript is empty, so silence-only files, music beds and accidental uploads all cost money. Filtering them out is a sizing decision, not just a cleanup one.
A Pre-Submit Sizing Pass That Survives Contact With Real Files
Run the pass in six steps. First, inventory: path, byte size, container duration, sample rate, channels, codec. Second, sample check: decode 100 to 200 files spread across sources and compare decoded seconds against container seconds. If the median absolute difference is under a second, trust the header for the rest and spot-check the outliers. If it is larger, decode everything.
Third, apply the per-file floor: billable seconds equals the greater of decoded seconds and 30. Fourth, apply the ceilings: flag anything above 240 minutes or 500 MB for splitting, and flag anything with no audio stream as a reject. Fifth, sum billable seconds, divide by 60, and keep the fractional minute — pricing is per minute but the meter runs on seconds, so rounding up per file inflates a large batch unnecessarily.
Sixth, price the result twice. Once at the list rate for the hold you will see at submit, and once at the launch rate you will settle at if you hold a launch seat. The model page for the whisper api is the reference for current limits and accepted formats, and the pricing page carries the live figures — the numbers here are provisional beta fares as of 7 November 2026 and should be re-checked before you commit a large batch.
The arithmetic is worth doing in public. At the published list rate of $0.00044 per audio minute and a launch rate of $0.0004, a thousand one-minute transcripts cost $0.44 at list and $0.40 at launch. A thousand ten-second transcripts cost $0.22 at list and $0.20 at launch, because every file still bills the 30-second minimum. The second batch holds a sixth of the audio and costs half as much as the first — a gap any sizing model that ignores the floor will misprice.
Keep the pass proportional to the risk. For a one-off batch of 50 files, a quick decode and a spreadsheet is enough. For a nightly job, store decoded duration alongside each file so you never pay the decode cost twice, then reconcile against the batch results after settlement.
From Minutes to Holds, Caps and a Submit Timetable
The minute count is half the sizing job; the other half is the shape of the submission. At submit, Y-PAD holds the sum of max_units multiplied by list price, then settles on succeeded units at launch price if you hold a launch seat and at list otherwise, returning unused hold. That makes the hold deliberately conservative: it is computed at list, so a launch-seat batch returns the difference. Size your balance against the hold, not the settlement figure, or a batch will fail at submit for a shortfall that would have resolved itself.
Pack size and the first-week cap constrain the first submission more than the minute count does. Packs are $10, $25 and $100 as of the check date, the first payment cannot exceed $25, and for seven days after that first payment the day’s charges plus open holds cannot pass $25. A 40-hour audio backlog will not fit on day one, however well you sized the minutes. Split it into daily batches that stay under the cap and let settled holds release before the next submission.
Batch mechanics affect the timetable as much as the money. Up to 100 files go in a call and up to 2,000 items in a batch, upload links last an hour, outputs stay seven days, and there are no webhooks — you poll. Cold starts run 10 to 30 seconds and occasionally minutes, and later items in a batch ride on the same start, which argues for fewer, larger batches. The counter-argument is feedback, so size each batch to roughly the window in which you can react, poll on a fixed cadence, and download promptly so nothing expires.
Write the numbers down. Keep decoded seconds, billable seconds, the hold, the settled amount and the launch-or-list flag for every batch. After two or three runs you will know your own conversion factor between raw audio hours and billed minutes, and sizing stops being an estimate. Prices are provisional beta fares; confirm them on the live pricing page before you size anything you intend to run at volume.
Porto Alegre jazz trumpeter turned Shenzhen hardware reviewer. Lucas reviews FPGA dev boards, Cantonese street noodles, and modal jazz chord progressions. He busks outside electronics megamalls and samples every new bubble-tea topping.