The engine (Very Good FFmpeg) bills per GB processed = input bytes + output bytes, exactly the model Vidrotation already uses (built/verified in the repo: estimate.js, DEFAULT_PRICE_PER_GB = 0.50, output sized at a typical 1080p CRF-23 bitrate). Engine rate cards (public, 2026):
| Processing volume | Engine rate ($/GB) |
|---|---|
| 0–10 GB / month | $0.50 / GB |
| 10–100 GB / month | $0.10 / GB |
| 100+ GB / month | $0.08 / GB |
Blended engine cost (what you actually pay as your aggregate volume grows across all users):
| Your total monthly volume | Blended $/GB | Monthly engine bill |
|---|---|---|
| 60 GB | $0.167/GB | $10 |
| 200 GB | $0.110/GB | $22 |
| 800 GB | $0.087/GB | $70 |
| 2,000 GB | $0.083/GB | $166 |
That is $0.007/GB/month — basically a rounding error versus engine compute. Amortized fairly, across ~20 paying users it's ≈$0.70–0.90 per user/month. It behaves as a fixed platform cost (hosting your batch outputs and source pools), not a per-unit driver. Treat it as a covered line item inside each plan, not as a metered input.
Two levers fix it — and you should use both:
Design point: a typical 60-second 1080p clip ≈ 500 MB input. Engine runs input+output GB for each op. Verified engine costs at the $0.50/GB entry tier:
| Operation | Input+output | Engine cost | Suggested sell | Gross margin |
|---|---|---|---|---|
| Convert (mp4 → webm/mov) | 0.830 GB | $0.415 | $0.99 | $0.58 (58%) |
| Resize 1080p → 720p | 0.720 GB | $0.360 | $0.79 | $0.43 (54%) |
| Crop / reframe | 0.720 GB | $0.360 | $0.79 | $0.43 (54%) |
| Trim (60s → 20s) | 0.665 GB | $0.333 | $0.79 | $0.46 (58%) |
| Compress | 0.620 GB | $0.310 | $0.69 | $0.38 (55%) |
| Thumbnail extraction | 0.500 GB | $0.250 | $0.50 | $0.25 (50%) |
Markup logic: ~2× on engine cost, sized so that even a worst-case job (thumbnails) holds ~50% GM. That buffer absorbs failed-job retries, low-balance retries, and your $14/mo S3 before it ever erodes margin.
| Tier | $/mo | Credits (GB) | Overage | GM @100% use | GM @60% use |
|---|---|---|---|---|---|
| Solo | $14 | 60 | $0.50/GB | $1.90 (14%) | $4.30 (31%) |
| Pro | $29 | 200 | $0.30/GB | $2.65 (9%) | $9.05 (31%) |
| Agency | $79 | 800 | $0.15/GB | −$2.85 (−4%) | $22.75 (29%) |
Only viable if you budget on 60% or lower utilization and lean on overage income. Fragile — one heavy user on Agency erases the tier.
Charge per operation at the §3 prices (convert $0.99, resize/crop/trim $0.79, compress $0.69, thumbnail $0.50, thumbnail free with any same-batch paid op). GM ≈ 50–58% per op. S3 + your platform cost are recovered by a small platform/export fee per batch cover (source pooling + output hosting):
| Plan | Data pool / storage | Export/hosting | Notes |
|---|---|---|---|
| Free | 1 GB | watermarked 720p, 30-day hold | Acquisition; no S3 cost exposure |
| Starter | $9/mo | 25 GB, 60-day hold | Covers S3 share ≈ $0.70 + margin |
| Pro | $24/mo | 100 GB, permanent | The core offering |
| Team / API | $59/mo | 250 GB + API key | Batch + automation path (n8n/Make) |
Best for discovery and simplicity — the buyer knows the price before they click. Predictable revenue per job; no need to guess utilization. Recommended direction for the "batch interface with trim/crop/thumbnail/convert/resize/export" you described.
Marry A and B: the plan includes a pool of operation credits (1 credit = 1 standard op, thumbnails ~0.4 credit), priced from your blended engine cost, with markup and overage. Storage/S3 lives in the plan.
| Tier | $/mo | Ops credits | Storage | Overage | Est. GM@60% use |
|---|---|---|---|---|---|
| Free | $0 | 5 ops | 1 GB | — | acquisition |
| Starter | $14 | 40 ops | 25 GB | $0.30/op | ~30–35% |
| Pro | $29 | 120 ops | 100 GB | $0.25/op | ~30% |
| Team | $59 | 300 ops | 250 GB | $0.20/op | ~30% |
| Agency / Scale | $119 | 750 ops | 1 TB | $0.15/op | ~28–30% |
Because engine cost per op drops with your aggregate volume ($0.167→$0.087/GB), your blended cost per bundle falls as you grow while the sell price holds — margin widens at scale, the exact opposite of Scenario A.
estimate.js, pre-render cost shown to the user after upload). Reuse it: show the exact operation cost before the user confirms. That "cost before you click" transparency is precisely what the market's #1 complaint (opaque pricing) rewards.