CostMonStart free

Amazon Bedrock cost monitoring

See which model is driving your Bedrock bill

CostMon joins AWS Cost Explorer's Bedrock spend with CloudWatch's per-model token metrics, so a model swap that changes your per-token rate, or a Provisioned Throughput commitment burning budget with no traffic, shows up in days instead of buried in next month's Cost Explorer export.

AWS Cost Explorer + CloudWatch token usage — live today

Cost Explorer groups Bedrock spend by USAGE_TYPE, which doesn't cleanly separate per-model, per-token attribution. It can't tell you that last week's spend jump was a switch from Claude Haiku to Claude Opus rather than a traffic increase. Provisioned Throughput compounds the problem: it bills hourly for committed capacity whether or not it's handling any traffic at all, and Cost Explorer alone won't show you the utilization gap. By the time a model swap or an idle commitment reconciles onto the AWS invoice, the spend is already sunk.

Cost anatomy

What actually drives your Bedrock bill

Per-model input/output token rates
Bedrock prices input and output tokens separately, per model, and the gap between them is large. Claude 3.5 Sonnet runs roughly 5x more per output token than per input token (as of 2026-07-29; check current rates at aws.amazon.com/bedrock/pricing), so a workload shifting toward longer generations costs more per call at flat volume.
Swapping models silently changes the rate
Moving a workload from a smaller model to a larger, higher-quality one changes the per-token rate non-linearly. The same call volume can cost several times more overnight with no configuration change to catch.
Provisioned Throughput bills hourly, regardless of use
A Provisioned Throughput commitment bills by the hour for the committed capacity whether or not it's handling traffic. An over-provisioned or forgotten commitment burns budget with zero corresponding usage.
Batch inference discount
Bedrock's batch inference mode is priced at a discount versus on-demand for the same model, for workloads that don't need a real-time response.
Cost Explorer alone can't show you this
AWS Cost Explorer groups Bedrock spend by USAGE_TYPE, which doesn't cleanly separate per-model, per-token attribution on its own. That view has to be joined against CloudWatch's per-model token metrics to see which model is driving the bill.

Why CostMon

Built for Bedrock spend, from day one

Per-model, not per-USAGE_TYPE

CostMon parses Bedrock's Cost Explorer usage types back into model IDs and merges them with CloudWatch's per-model token metrics, so you see cost by model instead of one opaque Bedrock line.

Catch a model swap before the bill does

A workload moved to a bigger or pricier model shows up as a step-change in that model's daily line the day it ships, not weeks later blended into a monthly Bedrock total.

One view, next to the rest of your AI stack

Bedrock spend lands in the same normalized daily table as Anthropic, OpenAI, and every other connected provider, so finance sees one honest AI total instead of a Bedrock line buried inside the AWS bill.

Read-only, cost-scoped credentials

CostMon connects with AWS credentials scoped to ce:GetCostAndUsage and CloudWatch's ListMetrics and GetMetricData only. It's read-only and never touches your Bedrock models, prompts, or infrastructure.

  • Per-modelinput and output tokens priced separately, and separately by model
  • HourlyProvisioned Throughput commitments bill regardless of utilization
  • Dailysync cadence, not monthly

Getting started

Connect, sync, see — for Bedrock

  1. 01

    Connect a read-only AWS role

    Grant CostMon a role scoped to Cost Explorer and CloudWatch read access only, the same read-only pattern as the AWS connector. CostMon never touches your Bedrock models or infrastructure.

  2. 02

    CostMon joins cost and token usage

    Cost Explorer's Bedrock usage-type spend is parsed back into model IDs and merged with CloudWatch's per-model input and output token counts on the same day, so cost and usage line up per model.

  3. 03

    See which model is driving spend

    Open a daily, per-model view of Bedrock spend and catch a costly model swap or an idle Provisioned Throughput commitment before it compounds into a bigger bill.

FAQ

Common questions about the Bedrock connector

How does CostMon connect to Amazon Bedrock?

Through the same read-only AWS role as the AWS Cost Explorer connector, scoped to ce:GetCostAndUsage plus CloudWatch's ListMetrics and GetMetricData. CostMon never requests access to your Bedrock models, prompts, or completions.

How does CostMon break Bedrock spend down by model?

Cost Explorer's Bedrock usage types are parsed back into model IDs and merged with CloudWatch's per-model InputTokenCount and OutputTokenCount metrics, so cost and token usage line up per model, per day.

What if CloudWatch token metrics aren't available for a model?

Bedrock spend still syncs from Cost Explorer either way. Token-level detail is best-effort enrichment, so a gap in CloudWatch metrics means less granularity, not a missing cost row.

Does CostMon track Provisioned Throughput separately from on-demand usage?

Provisioned Throughput commitments bill hourly regardless of traffic and show up as cost with little or no corresponding token usage. That's the pattern that flags an idle or over-provisioned commitment.

What does the Bedrock connector cost?

A flat monthly rate per plan. CostMon never takes a percentage of your Bedrock spend or the savings it helps you find. Free includes 2 connectors; Professional and Enterprise include unlimited connectors.

Connectors

Cloud, AI, and SaaS: all in one place

AWS, GCP, and Azure for cloud; Anthropic, OpenAI, Amazon Bedrock, Vertex AI / Gemini, and Helicone for AI and LLM spend; Snowflake and Databricks for the data cloud; Datadog, GitHub, and Vercel for the rest of the stack. Add CSV import for any tool without a native connector. That's 14 connectors, all normalized into the same unified view.

Connect a provider. See one number.

Connect your first provider and CostMon normalizes it alongside everything else you run. Your team gets one number everyone can check.

Esc