Home › Guides › Estimate your budget

A step-by-step method for budgeting video generation

Updated 2026-10-02

A video API budget is simple arithmetic once you know five inputs. The hard part is estimating them honestly, especially the retry factor. This page gives a spreadsheet layout, a symbolic worked example, and a checklist for the inputs people usually guess wrong. All numbers live in your sheet and in the live tables, not in this text.

The formula

monthly_cost = N * S * P * R * (1 + F)

N = accepted clips per month
S = seconds per clip
P = per-second price for your model, host and resolution tier
R = retry factor (generations billed per accepted clip)
F = platform fee (VideoRouter: a flat 2% on image and video)

Charges are made once at job creation from the requested duration, polling is free and jobs that fail upstream are not billed, so R counts successful generations you discard, not failed ones. The pricing explainer covers the billing flow.

Step 1: define the workload

Write down what you will produce and in which stages. Do not average across very different jobs. For each job type, set:

Step 2: get P from live data

Take P from the live price for your exact model and tier, not from memory. The pricing page compares hosts, and the table below shows what clips of common lengths cost at the cheapest host at the compared tier:

ModelTierCheapest hostRate5 s clip10 s clip1 min of video1,000 × 10 s clips
seedance-2-5480pOpenSand$0.0525 / second$0.263$0.525$3.15$525
seedance-2-5720pOpenSand$0.1179 / second$0.59$1.18$7.07$1,179
seedance-2-5720p-srAtlas Cloud$0.2193 / second$1.10$2.19$13.16$2,193
seedance-2-5720p-esrAtlas Cloud$0.2515 / second$1.26$2.52$15.09$2,515
seedance-2-51080pOpenSand$0.2919 / second$1.46$2.92$17.51$2,919
seedance-2-51080p-srAtlas Cloud$0.4056 / second$2.03$4.06$24.34$4,056
seedance-2-51080p-esr & 60fpsAtlas Cloud$0.4958 / second$2.48$4.96$29.75$4,958
seedance-2-51080p-esrAtlas Cloud$0.4507 / second$2.25$4.51$27.04$4,507
seedance-2-51440p-esrAtlas Cloud$0.7602 / second$3.80$7.60$45.61$7,602
seedance-2-51440p-srAtlas Cloud$0.7 / second$3.50$7.00$42.00$7,000
seedance-2-52160pOpenSand$0.6065 / second$3.03$6.07$36.39$6,065
seedance-2-54k-esrAtlas Cloud$1.7006 / second$8.50$17.01$102$17,006

Computed from each model's cheapest current host per resolution tier, before VideoRouter's 2% platform fee. Built 2026-10-02 from live data. Failed upstream jobs are not billed; re-generations are, so multiply by your retry rate.

Use it to sanity check your sheet: the cost of a 5, 10 or 60 second clip is P times the seconds. If you plan to pin a specific host instead of leaving routing automatic, use that host's price from the model page.

Step 3: estimate R honestly

R is the number of generations you pay for per clip you actually keep. It is specific to your prompts, your acceptance bar and your workflow, so guess nothing. Measure it:

  1. Take 30 to 50 representative prompts.
  2. Generate with your intended model and tier. Count generations until each one is accepted.
  3. Take the average attempts per accepted clip as R, and look at the high end too, since your budget needs a margin.

A draft stage changes R in an interesting way. If you explore on a lower tier or a cheaper model variant, the many discarded attempts happen at a low P, and the final stage runs at a high P with an R close to one. Budget them as separate rows.

Step 4: add the fee and any extras

Apply F to the whole product. Then add lines for things that are not per-second:

A symbolic worked example

Suppose a product has two job types. Lay it out like a spreadsheet, one row per stage:

RowStageN (clips)S (sec)P (per sec)RCost = N x S x P x R
1Drafts, low tierN1S1P1R1N1 * S1 * P1 * R1
2Finals, delivery tierN2S2P2R2N2 * S2 * P2 * R2
3Flat-priced model (per clip)N3n/aC3R3N3 * C3 * R3
Subtotalrow1 + row2 + row3
Fee Fsubtotal * F
Totalsubtotal * (1 + F)

In a real sheet each symbol becomes a cell reference: P1 and P2 come from the live pricing for your tiers, S1 and S2 from your product spec, and R1 and R2 from your pilot. Put assumptions in one block at the top so a stakeholder can change N or R and see the total move.

Step 5: stress test it

Re-run the total with pessimistic and optimistic values to see which input dominates:

Use per-key spend caps as a second line of defense so a bug cannot exceed the plan: a key's monthly cap returns 402 when reached. For per-model views see the cost page, and compare options with the cheapest-API method. The quickstart gets you a first request, and a key is available at videorouter.sh/signup.

Refresh cadence

Treat the sheet as a living document. Re-check P whenever you change host or tier, re-measure R whenever the prompts or the model change, and review the whole thing when a new model version ships, because a new version resets both.

Frequently asked questions

How do I estimate a video API budget?

Multiply accepted clips by seconds per clip, the per-second price for your model, host and tier, and a retry factor, then add the platform fee. Use separate rows for drafts and finals.

What is a realistic retry factor?

It depends entirely on your prompts and acceptance bar, so measure it with a pilot of 30 to 50 representative prompts instead of guessing.

Are failed generations part of the budget?

On VideoRouter, jobs that fail upstream are not billed, so the retry factor counts successful generations you discard. Slow jobs that finish are billed, and hedged duplicates are billed twice.

How do I stop a bug from overspending?

Set a monthly spend cap and a model allow-list on each API key. Reaching the cap returns a 402 error instead of continuing to charge.

Keep reading

Using AI video is one part of the job.

VideoRouter puts it next to dozens of other video and image models behind one API key, so you can compare providers, prices and fail over automatically. Compare providers on VideoRouter →