title: How does AWS DynamoDB provisioned capacity pricing model work?
body: <p>After reading AWS docs and answers to other similar questions, DynamoDB Provisioned Capacity model pricing still remains somewhat unclear to me.</p>
  
  <p>As stated in AWS documentation: <em>"You will be charged for the <strong>throughput capacity (reads and writes) you provision</strong> in your Amazon DynamoDB tables, even if you do not fully utilize the provisioned capacity. <strong>The actual reads and writes performance of your DynamoDB tables may vary</strong> and may be less than the throughput capacity that you provision."</em></p>
  
  <p>Accordingly to the last part of <a href="https://stackoverflow.com/a/52585285/13563785">this answer</a> on one of the similar questions: <em>"Lastly, <strong>with Dynamo you pay for the capacity that you reserve, not what you consume</strong>. So as long as your table is not being throttled, even when you go slightly over the provisioned capacity (which Dynamo allows in certain cases) you will not be charged extra.".</em></p>
  
  <p>However, nowhere did I find a simple explanation of how is pricing based on data read/write rates that can exceed current Read/Write Capacity Unit values set for a table or what happens if the table read/write operations are throttled upon request. If I create a table and set both Read Capacity Unit and Write Capacity Unit to 5 with the auto-scaling feature disabled, will the charges for DynamoDB service under all circumstances be calculated by the following equation? </p>
  
  <p><code>charges = (provisioned RCU * Hours used  + provisioned WCU * Hours used) + Storage costs</code></p>
  
  <p>That means, regardless of RCU/s and WCU/s usage and throttling.</p>
  
  <p>An example: from my understanding <code>Scan</code> request that will return all items in the aforementioned table that contains, say, 80 items will exceed provisioned throughput (with the size of each item less than 4 KB and a total size of all items in a table around 160 KB), so it will either take around 8 seconds to fetch the data (160 KB / (5 Read Capacity Units * 4 KB)) with the request being throttled or DynamoDB will allow for burst capacity consumption and process the scan somewhat faster.</p>
  
  <p>But in neither case, that request will be additionally charged as provisioned read capacity overuse because provisioned capacity is basically a method to limit read/write operations rates. Is that assumption correct? Or is table throttling a subject for additional charges? And what are the ways to force the data read/write rates limit then? </p>