DynamoDB On-Demand vs Provisioned Calculator

Enter your table's average traffic and how spiky it is. The calculator compares on-demand and provisioned capacity using AWS's current US East (N. Virginia) prices for the Standard table class, and shows which one is cheaper for your shape of load.

Averaged over the whole month, not the peak.
CloudWatch: ConsumedReadCapacityUnits / ConsumedWriteCapacityUnits show current usage.
Writes use 1 unit per KB; reads use 1 unit per 4 KB.
How much higher your busiest minutes are than the average. 1 = perfectly flat.
Auto scaling reacts in minutes, so sharp spikes usually force sizing for the peak.
Include global secondary indexes. Same price in both modes.
On-demand per month
-
Provisioned per month
-
Storage per month
-
-

How this is calculated

On-demand: $0.625 per million write request units and $0.125 per million read request units. Provisioned: $0.00065 per write capacity unit-hour and $0.00013 per read capacity unit-hour, over 730 hours. Storage: $0.25 per GB-month after the first 25 GB, which the AWS Free Tier covers once per account and region. These are the published US East (N. Virginia) Standard-table-class rates; other regions and the Standard-IA class differ.

Not included: reserved capacity (a further discount on provisioned capacity for one- or three-year commitments), global table replication, streams, backups and data transfer.

The break-even: about 29% utilisation

Per unit of throughput, on-demand costs about 3.5 times as much as provisioned capacity that is fully used: a million on-demand writes cost $0.625, while the same writes on provisioned capacity running flat out cost about $0.18. So provisioned capacity is cheaper whenever, on average, you use more than roughly 29% of what you provision - and on-demand is cheaper below that.

That is why traffic shape matters more than traffic volume. A smooth, predictable table kept at 60-70% utilisation by auto scaling is far cheaper on provisioned capacity. A table that idles most of the day and spikes hard has to be provisioned for its peak - and at a peak-to-average ratio above about 3.5, average utilisation drops under the break-even and on-demand wins. AWS halved on-demand throughput prices in November 2024, which moved that line: many tables that were cheaper on provisioned capacity before are now cheaper on on-demand.

Before you switch

  • Use real numbers: the hourly maximum and average of ConsumedWriteCapacityUnits and ConsumedReadCapacityUnits over at least two weeks.
  • Count the global secondary indexes - each one consumes its own write capacity on every write that touches it.
  • On provisioned capacity, check ThrottledRequests after the change; savings that cause throttling aren't savings.
  • For large, steady tables, reserved capacity on top of provisioned is cheaper still.

The wider set of DynamoDB cost levers - TTL, index projections and the Standard-IA table class - is in the DynamoDB section of the AWS cost optimization guide.

Want your whole AWS bill checked, not just DynamoDB?

I look at capacity modes, storage, data transfer and commitments together, in order of risk and saving.

See AWS Cost Optimization Consulting