Finding the data

Understanding what to measure only gets us part of the way there. To assess the average time from registration to first purchase date per user, you need to identify all the data points that your measure is comprised of.

Break down your measure into its core components. You must know the count, or number, of people that registered, the count of people that made a purchase, and the time that elapsed between those two events.

At a higher level, you need to know where to find this data in the database, specifically:

  • The table that records a row of data every time someone registers
  • The table that records a data row that every time someone makes a purchase
  • The column that can be used to join or reference the purchase table to the customer table - this allows us to know who made a purchase

At a more granular level, you need to identify the exact data fields that are used for this analysis:

  • The data table and column that contain a customer’s registration date: for example user.created\_at
  • The data table and column that contain a purchase date: for example order.created\_at

Creating data columns for analysis

In addition to the native data columns outlined above, you also need a set of calculated data fields to enable this analysis, including:

  • Customer's first purchase date which returns a specific user’s MIN(order.created_at)

That is then used to create:

  • Time between a customer's registration date and first purchase date, which returns a specific user’s time lapsed between registration and first purchase date. This is the basis for your metric later.

Both of these fields need to be created at the user level (for example, on the user table). This enables the average analysis can be normalized by users (in other words, the denominator in this average calculation is the count of users).

This is where Commerce Intelligence steps in! You can use your Commerce Intelligence Data Warehouse to create the above columns. Contact the Adobe analyst team and provide us with the specific definition of your new columns for creation. You can also use the Column Editor.

It is a best practice to avoid creating these calculated data fields in your database directly as it puts an unnecessary burden on your production servers.