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.
ConsumedReadCapacityUnits / ConsumedWriteCapacityUnits show current usage.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
ConsumedWriteCapacityUnitsandConsumedReadCapacityUnitsover 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
ThrottledRequestsafter 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