Genace

generation cost per successful asset: Count approved deliverables rather than raw outputs

The generation cost per successful asset depends on what successful means in your workflow. A succeeded job means the gateway obtained outputs under its adapter contract. It does not mean that every image is approved for a campaign or that every video is ready to publish. Define the denominator before comparing costs.

Choose the unit of success

For a product catalog, an accepted asset might be one image that passes a human checklist and is exported in the required format. For a video campaign, it might be one approved clip with validated download and editorial review. Record that rule before reviewing results.

Keep at least three counts: submitted jobs, returned outputs, and accepted deliverables. An image request can ask for multiple outputs, while a successful job can still produce zero deliverables that meet your brief. A delivery retry that downloads the same output again should not increase the accepted count.

Use the job identifier and artifact identifier to deduplicate these records. Otherwise, repeated collection after a timeout can make the apparent acceptance rate look better than it is.

Establish the numerator

For settled generation consumption, use observed held and actual credits together with refund evidence. Do not count a fully refunded reservation as permanently spent. Do not silently treat an unresolved reservation as zero merely because its owner stopped polling.

If you need an operational estimate before all settlement is known, show settled credits and unresolved held credits separately. That gives a range or pending total without pretending the final accounting is available.

Convert credits to money only with an explicit acquisition-cost assumption. A gateway pricing function’s internal upstream cost estimate is not necessarily the amount your organization paid for its credit balance.

Work a fictional example

Suppose a controlled internal fixture records twelve settled credits of generation consumption and three accepted deliverables. Its observed generation cost is four credits per accepted deliverable. These are invented numbers demonstrating the calculation, not measured model performance.

If the same fixture also has eight credits held by unresolved jobs, report those eight as pending exposure. Do not bury them in the final ratio or declare them refunded. Once settlement is known, recompute and retain the earlier snapshot for traceability.

A model with fewer credits per request can still yield a higher cost per accepted deliverable in your particular task set. That is a question for a documented local experiment, not a ranking established by request price alone.

Acceptance criteria

A reviewer should be able to reproduce the numerator and denominator from saved jobs, ledger evidence, artifacts, and approval decisions. Report the evaluation period, task mix, model identifiers, and exclusion rules alongside the ratio.

Continue with human evaluation rubrics, pricing snapshots, and ledger reconciliation before using the result for budget planning.

Continue with costs and billing

Where these facts come from

  • codebase: src/ai/api/credits.ts
  • codebase: src/credits/credits.ts
  • codebase: src/ai/jobs/service.ts
  • codebase: src/ai/jobs/db.ts
  • Editorial keyword hypothesis; search volume not measured