Multi-cloudAI costs4 min read

Compare AI prices without mixing token types or capacity

Sources checked September 10, 202630 minutes with usage records
On this page

This check is due for a source refresh. Confirm the current documentation before you rely on provider-specific details.

THE SHORT ANSWER

Compare the same workload by input, output, cache, and capacity meters, or the bill can be understated by mixing token categories or ignoring hourly capacity. Match every count to its rate unit, such as per 1 million tokens, and compare provisioned capacity over its billed duration.

What you need first

Tool
Use the supplied checklist in a text editor or spreadsheet. It is a local, manual comparison of official pricing tables and existing usage records, not a command that connects to a cloud account.
Access
Ask an authorized cloud colleague for read-only usage results covering the workload, models, regions, and time window, plus the applicable rates and capacity terms. The sources do not specify a permission name.
If you do not use that tool
Ask the relevant cloud platform owner to complete the checklist for the selected workload and scope, then return the category counts, rate units, capacity sizing, and commitment terms.

Why this is worth a look

Skipping category-level pricing can understate the total bill. Bedrock does not guarantee cache hits, and cache writes can cost more than standard input. Vertex AI lists explicit cache storage in token-hours.

Provisioned capacity can also incur charges while underused. Azure bills deployed PTUs hourly regardless of request volume. Bedrock bills purchased Model Units hourly until deletion, subject to commitment terms. Vertex AI prices GSUs by stated duration and geographic scope.

Run this check

CHECKLIST

Complete this local checklist using existing records. Use one sheet per candidate and the same workload and period. No inference requests or resource changes are needed.

Read-only AI cost comparison worksheet
AI COST COMPARISON

SCOPE AND TIME
[ ] Define the workload and comparison start/end dates.
[ ] Record provider, exact model, region/geography, deployment type,
    processing mode, currency, and rate effective period.
[ ] Record context-length tier and modality where applicable.
[ ] Record the usage-record time window. Label any projected usage.
[ ] Keep standard, priority, batch, and provisioned options separate.

USAGE-BASED COSTS
[ ] Record separate counts for standard input, cached reads, cache writes,
    and output where applicable. Do not count the same input twice.
[ ] For Bedrock Converse prompt caching, use:
    total input tokens = inputTokens + cacheReadInputTokens
                         + cacheWriteInputTokens
    These are separate input categories, not three copies of total input.
    For other APIs, use the selected model's documented response fields.
[ ] Confirm actual cache reads before applying a cache-read rate.
[ ] Add explicit cache storage and any billed modality, grounding,
    or tool categories that the selected offering uses.
[ ] For each category, record count, unit, rate, rate denominator,
    and the pricing URL or applicable contract reference.

CALCULATION
category_cost = usage_count / units_in_rate * rate
Example of units only, not a quoted price:
For a rate per 1,000,000 tokens, units_in_rate = 1,000,000.
For a rate per token-hour, usage_count must be in token-hours.
usage_based_total = sum(all applicable category_cost values)
[ ] Keep currencies consistent. Leave unknown rates unresolved, not zero.

PROVISIONED ALTERNATIVE
[ ] Obtain capacity sizing for the chosen model and required throughput.
[ ] Azure: record provisioned throughput units (PTUs), billed hours,
    reservation coverage and term, and any capacity outside coverage.
    Without a reservation: cost = PTUs * hours * rate_per_PTU_hour.
    With a reservation: use its payment terms plus uncovered charges.
[ ] Bedrock: record Model Units (MUs), input/output tokens per minute
    supported by each MU, commitment term, and billed hours.
    cost = MUs * billed_hours * applicable_rate_per_MU_hour.
[ ] Vertex AI: record generative AI scale units (GSUs), required
    throughput, Global/non-Global scope, and the price's stated duration.
    Match the GSU count and purchased duration to that table.
[ ] Include unused capacity and payment obligations beyond the workload
    window. Do not treat provider-specific capacity units as equivalent.

DECISION
[ ] Compare totals for the same workload and period.
[ ] Keep usage-based and provisioned alternatives separate unless the
    selected billing terms explicitly require additional usage charges.
[ ] Record required quality, latency, and throughput before choosing.
[ ] Mark the comparison incomplete if usage, rates, or sizing are missing.

How to confirm it

  1. 01

    Set one comparison scope

    Choose the workload and comparison period first. Record each candidate's exact model, geography, deployment or processing mode, context tier, and modality so an inapplicable pricing table does not enter the comparison.

  2. 02

    Request existing usage records

    Ask the AI platform owner for category-level usage for that scope. Check Bedrock cache fields in model responses instead of assuming a cache hit. If comparable records are missing, label estimates as assumptions and do not launch paid test requests for this review.

  3. 03

    Calculate matching units

    Enter each category's count, unit, rate denominator, and rate in the worksheet. Divide token counts by 1,000,000 for a per-million-token rate. Keep cache storage and other billed categories separate. For provisioned options, use sized capacity, billed duration, and commitment terms.

  4. 04

    Approve only a complete comparison

    Compare totals only when both candidates cover the same workload and period. Confirm quality, latency, and throughput requirements. Resolve missing rates, unsupported modes, and capacity obligations before procurement.

Before making changes

Treat the result as an estimate until usage, applicable rates, and capacity sizing are confirmed. This assumes the same workload and period, not identical token counts across models. Use the relevant contract and currency rates. Check the exact model's cache limits, context tier, modality, and available processing options. Do not apply one provider's capacity units or billing rules to another.

Skip this guide if you are pricing one known usage category at an already confirmed rate and are not comparing providers, models, modes, or billing categories.

Primary sources