# Bedrock Imported Model Idle

> Custom Model Import bills two ways: an active per-CMU-minute charge that scales to zero on its own, and a storage charge of $1.95 per Custom Model Unit per month that never does. ZopNight flags imported models with no invocations across 30 days, where deleting the model recovers exactly that standing storage cost.

Source: https://zop.dev/integrations/aws/recommendations/bedrock-imported-model-idle
Updated: 2026-08-19

---

## The charge that does not stop when the traffic does

An imported model's compute charge is genuinely serverless: no invocations, no per-minute
billing. Its storage charge is not: while the model artifact sits in the account, AWS [bills
$1.95 per Custom Model Unit per month](https://aws.amazon.com/bedrock/pricing/), invoked or not. That asymmetry is the whole finding.
An imported model nobody calls has already scaled its compute to zero by itself; the storage
line is the only remaining cost, and only deletion removes it.

## Where the dollar figure is honest and where it is conservative

The recommendation prices the saving from the aggregator's standing-storage cost for the
specific model, never a guess. One caveat is inherited from discovery: the model's CMU count
is not currently captured (the list API does not expose it), so pricing treats each model as
one CMU. A large multi-CMU model is therefore *understated*. A 1-CMU model at $1.95/mo
will typically fall below the $5 minimum-savings floor and be suppressed. Under-claiming is
the deliberate direction; the rule never rounds a small model up to make a card.

## How idleness is established

Among [the count metrics Bedrock emits](https://docs.aws.amazon.com/bedrock/latest/userguide/monitoring.html), a model with zero invocations produces no
series at all, so a missing Invocations series, on a metrics fetch that succeeded for the org, is
itself the idle evidence. Any recorded activity in the full metric suppresses the finding,
and a total metrics outage (an empty map) makes the rule abstain wholesale rather than
declare the entire fleet idle at once. Absent pricing also abstains: no cost, no card.

## Reproduce the traffic check

```bash
aws cloudwatch get-metric-statistics \
  --namespace AWS/Bedrock --metric-name Invocations \
  --dimensions Name=ModelId,Value=<imported-model-arn> \
  --start-time "$(date -u -v-30d +%Y-%m-%dT%H:%M:%SZ)" \
  --end-time "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
  --period 86400 --statistics Sum
```

## Before deleting

Keep the source artifacts in S3: re-importing later is straightforward as long as the
original weights exist, so deletion is reversible in effect even though the imported-model
object itself is gone. The pattern worth fixing is the pipeline that imports every fine-tune
experiment and never cleans up; a lifecycle policy on experiments costs one meeting and ends
the accumulation.
