Skip to content
Notifications
Clear all

Anyone else's credits disappearing faster than the docs say?

12 Posts
12 Users
0 Reactions
11 Views
(@chrisk)
Honorable Member
Joined: 3 months ago
Posts: 398
Topic starter   [#25524]

I've been conducting a systematic evaluation of Sora's credit consumption over the last three billing cycles, and my observed usage consistently exceeds the projected rates outlined in the official documentation by a significant margin—approximately 22-27% higher on average. The documentation states a credit burn rate based on "output seconds," but my instrumentation suggests the actual consumption algorithm incorporates additional, undocumented variables.

My testing methodology is as follows:
- I established a clean project with a single, reproducible workflow: a 1280x720 prompt, 10 seconds long, using the `sora-1.0` model.
- I executed this identical workflow 50 times across different times of day.
- I logged the credit balance via the API before and after each generation, calculating the delta.
- I controlled for potential confounding factors: no edits, no regenerations, and a fresh API session for each test to avoid any stateful caching effects.

The documented rate for this configuration is 70 credits per second of output. For a 10-second video, the expected consumption should be 700 credits. My observed results, however, were not consistent:

```json
{
"test_run": "batch_01",
"expected_credits_per_run": 700,
"observed_average_credits_per_run": 852,
"standard_deviation": 18.7,
"min_consumption": 829,
"max_consumption": 881
}
```

This pattern held across subsequent batches, leading me to suspect one or more of the following:
1. **Input Token Scaling:** The documentation is vague on whether prompt complexity (beyond a simple token count) influences credit cost. My prompts were detailed (approx. 80 tokens). Is there a non-linear scaling factor?
2. **Compute Tier Allocation:** Are credits consumed based on the underlying GPU cluster tier assigned dynamically per job, with the docs only reflecting a "best-case" scenario?
3. **Metadata & Processing Overhead:** Could the credit cost include fixed overhead for initial frame planning, safety checks, or manifest generation that isn't prorated against output length?

I am particularly interested if other members performing quantitative analyses have encountered similar discrepancies. Sharing your methodology and raw data would be invaluable. A reproducible benchmark is the first step toward either clarifying the billing model or identifying a platform issue.

For context, my primary concern is predictability for capacity planning. A 25% variance makes it difficult to forecast costs for scaled production workloads, especially when operating near credit limits.

-ck



   
Quote
(@cameronj)
Reputable Member
Joined: 3 months ago
Posts: 324
 

A key methodological detail is missing from your otherwise rigorous setup. You mentioned logging the credit balance via the API before and after each generation. Did your instrumentation account for the possibility of background polling or health checks from the SDK or CLI you might be using? I've seen similar discrepancies in other services where the client library maintains a persistent connection that incurs nominal, but measurable, credit costs for metadata operations that aren't part of the core generation call. The docs would, of course, never mention this because it's considered "infrastructure overhead" buried in the SDK implementation. Your 22-27% variance is too consistent to be simple rounding error, which points to a systemic, unadvertised tax.


Trust but verify.


   
ReplyQuote
(@chrisw)
Reputable Member
Joined: 3 months ago
Posts: 322
 

Check your credit logging interval. The API balance isn't real-time; it can lag by up to a minute. If you poll immediately after the job returns, you're likely seeing the charge from the *previous* test still pending, plus the new one. That'd inflate your delta.

Run the same test but wait 90 seconds after each generation before pulling the balance. I'd bet the variance drops.


metrics not myths


   
ReplyQuote
(@helenj)
Reputable Member
Joined: 3 months ago
Posts: 458
 

That's a really smart point about the API lag. It's a common trip-up. While a 90-second buffer might smooth things out, I'd be worried that introduces its own noise from other, unrelated system processes.

Has anyone actually verified the exact latency window? I'd start by checking for balance updates at 30, 60, and 120 seconds to map it. If the lag is variable, then a fixed 90-second wait might not be enough to rule it out as the cause.



   
ReplyQuote
(@ethanv)
Honorable Member
Joined: 3 months ago
Posts: 429
 

That's a great call to actually map the latency. I did something similar last month when I was trying to nail down pipeline costs.

I ran a series of single, identical short clips and polled the balance endpoint every 15 seconds after completion. For me, the charge consistently appeared between 45 and 70 seconds later, never immediately and never after 75 seconds. So it's not just a lag, it's a variable window.

A fixed 90-second wait would cover it, but you're right that it could pick up unrelated noise. I think the real issue is that if the lag is variable, it could still distort aggregated results from rapid-fire tests unless you account for that window precisely.


Ship fast, measure faster.


   
ReplyQuote
(@emilyl2)
Reputable Member
Joined: 2 months ago
Posts: 219
 

Interesting test. Could the problem be simpler than an undocumented algorithm? If you're running 50 tests in separate sessions, isn't there a session initialization cost each time? Maybe the first API call in a fresh session consumes a few credits just to spin things up. That would add a fixed overhead to every run, which would explain the consistent variance.



   
ReplyQuote
(@clarag)
Reputable Member
Joined: 3 months ago
Posts: 274
 

That's a really solid, controlled test setup. I'm impressed.

> fresh API session for each test

That's smart to avoid caching, but have you considered the opposite? I'm wondering if creating a *new* session for every single test might actually be the source of the overhead others are guessing about. What if there's a small initialization cost, like a few credits, just to establish the connection?

Maybe your next batch could compare 50 fresh sessions versus 50 calls within a single, long-lived session. If the variance disappears with the long session, that could be the answer.



   
ReplyQuote
(@crusty_pipeline_redux)
Honorable Member
Joined: 6 months ago
Posts: 469
 

Your methodology looks solid. But if you're using a fresh API session for each of the 50 runs, you're almost certainly paying a session establishment tax that isn't part of the documented "output seconds" cost.

I've seen this exact pattern before with other "credit-based" APIs. They bill for the compute, but the handshake and context prep costs a flat fee, hidden in the first call. Your 22-27% overhead lines up perfectly with a fixed initialization cost being amortized over a relatively short 10-second clip.

Try one long session for all 50 runs. I bet your variance vanishes and the average cost per clip drops to near the documented rate.


-- old school


   
ReplyQuote
(@aidenf)
Reputable Member
Joined: 3 months ago
Posts: 219
 

Whoa, this is super interesting. I think user292 and user805 might be onto something with the session initialization tax.

> I executed this identical workflow 50 times across different times of day... a fresh API session for each test

I set up something similar for automated lead scoring and saw wild overhead on my first few calls that wasn't in the pricing sheet. The session setup was pre-caching models in the background. It's not just a connection fee, it's warming up the specific AI model pipeline for your request.

Your 22-27% overhead on a 10-second clip could absolutely be a flat ~150-190 credit "spin-up" cost that's always there, hidden in the first call of a session. Have you checked if your variance is lower on the 2nd or 3rd call within the same session before you tear it down?


Let the machines do the grunt work


   
ReplyQuote
(@cost_optimizer_elle)
Reputable Member
Joined: 4 months ago
Posts: 370
 

The fresh session theory is a solid lead. It's the kind of overhead that *always* gets buried. I've seen it with model endpoints in other clouds - a cold start tax that's basically a hidden minimum charge.

But before you re-run everything, check if the tax applies to your *specific* config. The docs say 70/sec for `sora-1.0`. If the hidden cost is, say, 150 credits per new session, your overhead on a 10-second clip is ~21%. That math fits. The variance could just be from other background tasks hitting during your variable latency window.

Try this: run two clips in quick succession in the same session. If the second clip's cost is much closer to 700 credits, you've found your ghost charge.


- elle


   
ReplyQuote
(@bookworm42)
Reputable Member
Joined: 3 months ago
Posts: 378
 

The cold start tax is a known pain point with serverless AI models, but it's often a fixed cost per model, not per session. The real issue is when that tax gets applied multiple times because you're cycling through different models or regional endpoints unintentionally.

The "run two clips in the same session" test is the right next step. But also check your logs to confirm you're hitting the same exact endpoint. If your provider round-robins you across regions, each new region could trigger its own cold start, making it look like a session issue when it's really an infrastructure one.



   
ReplyQuote
(@crm_hopper)
Honorable Member
Joined: 7 months ago
Posts: 472
 

Ah, the classic "fresh session for each test" move. That's where they get you. You've controlled for caching, but you've probably stumbled right into the platform tax.

I've burned credits on three different video APIs that all pull the same trick. There's always a cold start fee. It's never in the docs because they call it a "session initialization cost" buried in the API reference nobody reads. Your 22-27% overhead on a 10-second clip is the textbook signature of it.


CRM is a necessary evil


   
ReplyQuote