Skip to content
Calcrivo

DynamoDB Write Capacity Calculator

Calculate WCUs for a write workload including global secondary index amplification, transactions and on-demand comparison.

Inputs

writes/s
KB
indexes
x
$/WCU-hour
hours
$/million write units

Total WCUs to Provision

3,600WCU

Base Table WCUs

1,200WCU

Index WCUs

2,400WCU

Write Units per Operation

2

Provisioned Monthly Cost

$1,708.20

On-demand Monthly Cost

$2,956.50

Step by step

  1. Values used

    Average write operations = 300 writes/s; Average item size = 1.50 KB; Write type = Standard write — one WCU per 1 KB; Global secondary indexes updated per write = 2 indexes; Peak to average ratio = 2 x; Provisioned write capacity price = 0.0007 $/WCU-hour; Billed hours per month = 730 hours; On-demand write price = 0.6250 $/million write units

  2. DynamoDB Write Capacity

    units per write = ceil(item KB) × (2 if transactional); total WCU = peak writes/s × units per write × (1 + number of indexes updated).

  3. Total WCUs to Provision

    = 3,600 WCU

  4. Base Table WCUs

    = 1,200 WCU

  5. Index WCUs

    = 2,400 WCU

  6. Write Units per Operation

    = 2

  7. Provisioned Monthly Cost

    = 1,708.20

  8. On-demand Monthly Cost

    = 2,956.50

How it works

Writes round up to whole 1 KB units, transactions double the charge, and — the part that surprises people — every global secondary index whose projected attributes change consumes a full set of write units of its own. Three GSIs therefore make a write cost four times the base table figure, which is why projecting only the attributes an index query actually needs is a direct cost control. The WCU and on-demand write prices are editable inputs seeded with realistic us-east-1 defaults, so confirm current DynamoDB pricing with AWS for your region. GSI write amplification is the single most common cause of a DynamoDB bill that is several times the estimate, and it is invisible unless you count the indexes explicitly.

Formula

DynamoDB Write Capacity

units per write = ceil(item KB) × (2 if transactional); total WCU = peak writes/s × units per write × (1 + number of indexes updated).

1 KB
Write unit block size — every write rounds up to a whole kilobyte
index amplification
Each GSI touched by a write consumes its own write units
peak to average
Ratio of busiest second to the daily average

Frequently Asked Questions

How is DynamoDB Write Capacity calculated?

units per write = ceil(item KB) × (2 if transactional); total WCU = peak writes/s × units per write × (1 + number of indexes updated). Writes round up to whole 1 KB units, transactions double the charge, and — the part that surprises people — every global secondary index whose projected attributes change consumes a full set of write units of its own. Three GSIs therefore make a write cost four times the base table figure, which is why projecting only the attributes an index query actually needs is a direct cost control. The WCU and on-demand write prices are editable inputs seeded with realistic us-east-1 defaults, so confirm current DynamoDB pricing with AWS for your region.

Why does DynamoDB Write Capacity matter?

GSI write amplification is the single most common cause of a DynamoDB bill that is several times the estimate, and it is invisible unless you count the indexes explicitly.

What values do I need to enter?

This calculator takes 8 inputs: Average write operations, Average item size, Write type, Global secondary indexes updated per write, Peak to average ratio, Provisioned write capacity price, Billed hours per month, On-demand write price. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Does every write hit every index?

No — a GSI only consumes write units when the write changes its key or one of its projected attributes. Narrowing projections from ALL to KEYS_ONLY or a short INCLUDE list removes most of the amplification.

You might also need