Sales and Business Analytics in 10 minutes

SlicingDice Team
SlicingDice.com Blog
7 min readApr 21, 2017

Go from zero to sales and business analytics hero in less than 10 minutes, without managing any infrastructure or worrying about data size.

This guide will show how to use SlicingDice for sales and business analytics, a Serverless Data Warehouse and Analytics Database as a Service.

Everyday SlicingDice receives more than 1.1 billion data inserts and millions of queries from multiple indie devs and companies, many of them doing analytics on top of sales and business data, such as transactions.

Scenario description

Let’s imagine you have sales and business data from your company CRM and want to use it to run analytics and make data-oriented decisions.

Example of sales and business questions we want to answer:

  1. What is the average lead monetary value by status by salesperson in the last 48 hours?
  2. How many purchases by day were originated by people who bought at least 2 times in the past 30 days and are from “New York” or “San Francisco”?

Sending your sales and business data to SlicingDice

Sending data to SlicingDice is very simple and fast. You can use our easy-to-use API or any of our clients available in Python, Ruby, JavaScript, Java, .NET/C#, PHP, Go and Arduino.

In order to send your data, first you simply need to:
1. Define what your entity is going to be. We consider an entity to be like a car, a user, a server and so on. That’s basically a way of saying: who owns the data? So looking the first question above, the data is clearly produced by sales leads, and on the second, each entity could be a customer.

2. Once you know what is your entity, you simply need to specify the columns and values you want to associate to your entities.

Check this data insertion example below

Pro Tip: Click here to generate a personal free demo API Key, so you can copy & paste all the cURL command examples below on your own terminal and play with it live using our /test endpoint.

In this example our entities are sales leads and we will be inserting all the lead details, such as ticket size, salesperson and status.

Looking this data insertion command above, we can clearly see that we have three sales lead entities: lead-01, lead-02 and lead-03.

For these three entities we associated three columns: ticket, salesperson and lead-status.

As you can see, all entities lead-01, lead-02 and lead-03 have the same columns ticket, salesperson and lead-status, but each with different values.

What is happening here is that you are telling SlicingDice that the ticket of the entity lead-01 was “489745.12”, the salesperson is “Glenna” and also that lead-status was “first-contact” for the date “2017–xx–xxT00:33:09Z”, “negotiating” on “2017–xx–xxT04:30:18Z” and so on.

The exactly same thing is happening for the entities lead-02 and lead-03, but with different values for the columns.

Before starting to query this data, let’s see another insertion example:
Again: if you paste your personal demo API key on this cURL command below and execute it on your terminal, it will really work. Go ahead and try yourself.

In this example below our entities are customers and we will be inserting the city, actions and purchases for each of them.

Again, we can clearly see that we have four customers entities: customer-01, customer-02, customer-03 and customer-04.

Coincidentally all entities are sharing the same columns, city, actions and purchases, although each entity has its own values associated to the columns. It’s important to note that not all entities have to have the same columns.

What is happening here is that you are telling SlicingDice to store that the city of the customer-01 is “New York”, that he made multiple actions, such as “purchase” on “2017–xx–xxT06:42:42Z”, and also made multiple purchases, such as “600.00” on “2017–xx–xxT06:42:42Z”.

That’s it. Simple like that. As we now have some data stored, let’s answer the questions we defined in the beginning of this post:

  1. What is the average lead monetary value by status by salesperson in the last 48 hours?
  2. How many purchases by day were originated by people who bought at least 2 times in the past 30 days and are from “New York” or “San Francisco”?

Querying your data

Making queries on SlicingDice is simple and easy. It’s possible to do multiple types of analysis using our API and you can get to speed by seeing all the ready-to-use query examples we have on our Github clients repositories for Python, Ruby, JavaScript, Java, .NET/C#, PHP, and Go.

In order to answer the question What is the average lead monetary value by status by salesperson in the last 48 hours? we will be making a filtered aggregation analysis.

Aggregation is a powerful way to cross data in order to find insights and unexpected patterns. You can think about it like being an Excel Pivot Table.

What is happening under the hood on this aggregation query below is that we are asking SlicingDice to:
1. first filter just the sales leads that has “status” equals to “first-contact” between “now” and the “last 48 hours”.
2. next retrieve the all sales leads from the Top 20 most common values for the “salesperson” column;
2. then for the leads of each “salesperson”, make an intersection with the most common values for the “status” column values;
3. finally take the previous group of leads and make an average on the values of the “ticket” column of these leads.

Based on the data we inserted before, if you run this query above on your own terminal, you should be able to see these results below:

As you can see, the results are basically showing the average ticket value per lead status and salesperson. You can answer a lot of questions using aggregations and more importantly, discover insights out of your data.

Now let’s answer the second question we have: How many purchases by day were originated by people who bought at least 2 times in the past 30 days and are from “New York” or “San Francisco”?. We can easily answer this question by another filtered histogram aggregation.

Histogram aggregations are great to understand how a determined metric on a event column (like purchases) is distributed along a time interval.

Let’s take as example our query below, that we are asking SlicingDice to:
1. first filter just the customers that has “actions” column value equals to “purchase” between “now” and the “last 30 days” AND has “New York” or “San Francisco” as “city” values.
2. next make a count of events that happened for the “purchase” column between “now” and the “last 30 days”;
3. finally group the quantity of purchases per day.

Based on the data we inserted before, if you run this query above on your own terminal, you should be able to see these results below:

As you can see, the results are basically showing the quantity of purchases per day that were originated by customers that made at least two purchases in the past 30 days and that are from “New York” or “San Francisco”.

Now, if you want to know who these customers are, you can simply make this result data extraction query below:

As you can see below, the result is showing that the customer-01 and customer-03 are the ones that made more than two purchases in the past 30 days and are from “New York” or “San Francisco”.

What other questions and analysis can I make?

SlicingDice supports multiple types of data analysis, so you can basically answer any kind of question you may need for analytics purposes, for example:

  • What number of customers reached each sales funnel step?
  • What is the average revenue per customer in the past 30 days from customers that bought “product A“ and “product B” ?

You nailed it, hero! — Next steps

That’s it. You are now ready to start making as much sales and business analysis as you want.
If you are inclined to think that SlicingDice might work for you, we suggest you take a look on our documentation and at least follow our quickstart guide.

Please, don’t hesitate to contact our developer support team at any time, for any reason. We are here to support your needs.

Loved it… but, how much does it cost?

Our price is really innovative and cheap. We charge based on the quantity of columns you have, doesn’t matter how many rows you store for them.

So for example you can store unlimited data on SlicingDice for these two use cases presented above (customers, for example) for less $ 10.00 per month. It’s true. Check our website pricing page.

Why SlicingDice?

Developers want to store and query their data, but they hate having to manage complex data infrastructure, so we do it for them.
All they have to do is simply store and query billions of real-time and historical data, without managing any infrastructure.

High availability?
You don’t need to worry. We always replicate and backup your data on three different datacenters, located in France, Canada and Germany.

Query speed?
If any query takes longer than 10 seconds to complete, no matter the query complexity or data size, you receive a 10¢ discount for each query. We believe ensuring fast queries is our responsibility, not yours.

Not sure if we can support your needs?

Click here and schedule a 15-minute talk with our developers, totally free of charge, so we can evaluate your case together.

Don’t know how to model your data in order to send it to SlicingDice?
No problem at all, schedule a time so we can talk or let’s chat online now.

--

--

SlicingDice Team
SlicingDice.com Blog

Dev team of SlicingDice — Serverless Data Warehouse and Analytics Database-as-a-service