Inspired in our company name (where "Ubi" stands for Ubiquitous, and "dots" for, well, "dots"), a "dot" is a data point containing a value and a timestamp:

Every time a device variable is updated, then one data-point or "dot" is created. For example, if you have a weather station with 4 sensor variables sending data every 10 minutes (i.e. temperature, humidity, pressure and precipitation), then your device will generate a total of 17,280 dots every month: 

4 dots x 60/10 updates per hour x 24 hours x 30 days = 17,280 dots per month

Dots are billed at million-dots increments, both at the moment of ingestion, and extraction. Every Ubidots plan includes enough Dots In and Dots Out to power most IoT Applications, while avoiding overages. However, data-intensive applications might eventually experience overage costs.

Data Ingestion

Ubidots bills for incoming dots and their storage only at the moment they are received. After a dot is received and saved, it will remain in your account for a standard 2-year retention period, without generating further storage charges.

  • Dots In: $5 per million ingested dots

Data Extraction

Ubidots bills for extracted dots as it is a metric that, even though small, contributes to our own cost base (outbound data transfer + database query operations + processing server load).

  • Dots Out: $0.1 per million extracted dots

Billed Dots Out is the sum of the dots extracted through these two (2) outbound channels:

  • API / Front-end: Data requested through the API, either by the web interface (admin or end-users), or by external applications or devices. This includes all the queries required to render dashboards, CSV reports, variables, scheduled reports, etc. For example,  if you have 1,000 users accessing a dashboard every day, and such dashboard queries 10,000 dots to our database, then the total Dots Out would be:

        Dots Out (API) = 1,000 users x 10,000 dots x 30 days = 300 Million dots out

  • Synthetic Variables: Data requested by your synthetic variables, in order to compute formulas that include data ranges. See section 4: "Synthetic data range variables" in this article for a list of operations that will extract dots. For example, if you have 1,000 temperature-sensing devices sending data every 10 minutes, and create a variable to compute the daily average, then this synthetic variable will re-compute every time the temperature variable is updated, that is, every 10 minutes. The Dots Out count is then computed as follows:

        At 00:10 --> 1 dot is extracted to compute the daily average

At 00:20 --> 2 dots are extracted to compute the daily average

At 00:30 --> 3 dots are extracted to compute the daily average


At 23:50 --> 143 dots are extracted to compute the daily average

At 00:00 --> 144 dots are extracted to compute the daily average

The Dots Out required to compute this synthetic variable is then the sum from 1 to 144, which can be computed using the arithmetic series formula:

Dots Out = n/2 * (n + 1)

Dots Out = 144/2 * (144 + 1) = 10,400 per day or 313,200 per month

      For a deployment of 1,000 devices, this would mean 1,000 devices x 313,200 dots out = 313,200 Million dots out

Other users also found helpful: 

Did this answer your question?