Ok, so essentially, we work with the concept of SU and CU. Whenever you want to deploy a workload, you first need a pool. A pool contains an amount of CU and SU you can use. Essentially, the pool represents your purchased capacity.
When you deploy a workload, we calculate how much CU and SU this workload consumes per second. Once the node reports the workload is deployed, this amount will be drained from the pool every second, until the pool is empty, or the workload is deleted.
Exactly how 1 SU (or CU for that matter) is defined, is depending on the user’s configuration. Basically a SU is a combination of both HDD and SSD (though SSD counts for more than HDD). Should you only require one of the 2, then that is of course possible. In this way, some types of workloads allow you to mix and match. For instance, containers allow you to specify exactly how much cores and memory you want, and depending on that, the amount of CU used is calculated.
Right now, the payment is done based on the reserved amounts. I.e if you reserve 10 SU worth of disk space, 10 SU will be deducted from your pool every second, even if you only use 1 SU.
Formula wise - this is (currently) how unit consumption are being calculated:
cu = round(min(MRU/4, CRU/2)*1000) / 1000
su = round((HRU/1200+SRU/300)*1000) / 1000
The reserved raw units are directly usable and addressable.