Question

Billing granularity (minimum billable time)

Posted April 24, 2021 227 views
Billing

I’m starting to work on a project that will use the DO API to spin up large VM instances for short process runs. The idea is I will spin up the VM and provide a script that will run the task at hand. That script will do some intensive compute and upload the results somewhere. The VM will then power itself off, and a monitor process on my end will check every minute; once the VM is powered off it will be destroyed via the API. I have one question though: I’m not clear on how granular the Digital Ocean billing system is.

I’ve experimented with the lowest spec VM, but its per-hour billing is less than $0.01, so it doesn’t matter if I use it for one minute or for one hour, I’m still going to be billed $0.01.

However, if I spin up a very expensive droplet (such as a 256GB memory-optimized droplet) which runs a script doing some intensive processing that takes only around 15 minutes, am I billed for one hour of that VM, or am I billed for 15 minutes of it? The largest memory-optimized VM costs $2.97/hour, so does this mean the minimum billable time period is $2.97 even if I spin up the VM and immediately destroy it?

Similarly, what if the VM runs for one hour and thirty seconds? Am I then billed $5.94, or am I billed $3.02 ($2.97 + ~5c for the extra minute) This scenario could get expensive and ugly if billing is strictly hourly; suppose my process finished at 59:45 after the VM was created, but the script I am running to check for and destroy the VM when it is finished only checks once per minute, and it doesn’t grab the status and destroy the VM until 01:00:05 - I’d then be billed an extra $2.97 for five seconds during which the VM was powered off.

If there is more granularity, what level is it? Per minute? Per second? etc.?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hi there,

I believe that the billing is hourly-based. So if you run a $5 per month Droplet for 59 minutes, it would cost $0.007 which would be the same as if you run the Droplet for 10 minutes only.

It looks like someone has had the same idea before, for a “Per Minute Billing” and has posted it on the Product Ideas board. The best thing to do would be to head over and add your vote to it, as well as adding any additional information in the comments for exactly what you’d like to see implemented!

https://ideas.digitalocean.com/ideas/DO-I-1491

Regards,
Bobby

  • Hello @fmillion

    That’s a great question. There is actually is no difference between monthly and hourly billing!

    At the end of each calendar month, we calculate the cost of your server based on the size of your Droplet. All Products are billed at an hourly rate up to a maximum monthly cap, which we have set at 672 hours (28 days). Therefore, if you use the Product for less than the monthly cap, you will be billed for each hour that you used it.

    However, if you use your server for more than 672 hours during that month, you will be billed at the monthly cost, which will be no greater than the cost of 672 hours. There is no more granular billing at this point of time.

    Hope this helps!

    Cheers,
    Sri Charan

    • Is the calculation per-droplet or per-product?

      For example, suppose the following scenario: I use the DO API to start up a 256GB memory-optimized droplet. I use that droplet for 20 minutes and then I destroy the droplet (all of this done via the API). Then, the next day, I create another 256GB droplet of the same size and class and use it for another 20 minutes and destroy it.

      At this point I have used a total of 40 minutes of droplet time in the specific class of memory-optimized droplet that I’m using. But I did so across two independent droplets that each ran only for 20 minutes. At no time did more than one droplet exist in that price class however.

      How much will I be billed for this scenario? Will I be billed for 1 hour (aggregate usage across two droplets which did not exist simultaneously - 40 minutes total usage) or for 2 hours (minimum 1 hour billing granularity per droplet)?