Repeat purchase scoring quickstart

In this quickstart, we'll show you how to:

  • Add data representing your transaction events using a dataset.
  • Describe your One-time purchasers group formally using a cohort.
  • Describe your Repeat purchasers group formally using a cohort.
  • Describe your Customers group formally using a cohort.
  • Create a predictive model for likelihood to buy again using an outcome.
  • Deploy your repeat purchase scoring predictions using a pipeline

Let's dive in.

Transaction event stream

Add data

Create a transaction event stream

Using CSV as an easy example

This section describes how to add data securely using a CSV file that you export from your data infrastructure.

Most Faraday users eventually update their configuration to pull data directly from their data warehouses, cloud buckets, or databases. To do that, you’ll add your source as a Connection and then choose it below instead of CSV.

For more, see our docs on Datasets and Connections.

  1. Extract a CSV representing your transaction from your systems, or download the sample transactions file from Farazona. Either way, save it someplace memorable.
API via cURL
Dashboard

First, upload your data with a POST /uploads request:

curl --request POST \ --url https://api.faraday.ai/v1/uploads/transactions/YOUR_CSV_FILE.csv \ --header 'Accept: application/json' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/octet-stream' \ --data-binary "@YOUR_CSV_FILE.csv"

Then use a POST /datasets request to register the data:

curl https://api.faraday.ai/datasets --json '{
  "name": "Transaction",
  "identity_sets": {
    "shipping": {
      "city": "shipping_city",
      "house_number_and_street": [
        "shipping_address1",
        "shipping_address2"
      ],
      "person_first_name": "shipping_address_fn",
      "person_last_name": "shipping_address_ln",
      "postcode": "shipping_postcode",
      "state": "shipping_state"
    }
  },
  "options": {
    "type": "hosted_csv",
    "upload_directory": "transaction_data_files"
  },
  "output_to_streams": {
    "transaction": {
      "data_map": {
        "datetime": "created_at"
      },
      "value": "total"
    }
  }
}'

Your event stream will start building in the background. You can proceed immediately with the next set of instructions. When your stream is done building, you’ll get an email.

One-time purchasers cohort

  1. You'll need a Faraday account — signup is free!

Confirm your data

Event streams

Unless you’ve already created it for another quickstart or purpose, you’ll need to add the following event stream to your account:

  • Transaction

What’s an event stream?

Predicting a certain customer behavior requires historical examples of customers exhibiting that behavior. Faraday works best when that data comes in the form of “events” — specific actions or occurrences that happened at specific times.

Formulating data this way helps you define cohorts more expressively.

For example, a Customers cohort could be defined as the group of people who have all experienced a Transaction event at least once.

For more, see our docs on Cohorts, Events, Traits, and Datasets (which define how events and traits emerge from your data).

API via cURL
Dashboard

To verify, use a GET /streams request. Your response should look like this:

[{
  "name": "Transaction",
  "id": "$TRANSACTION_STREAM_ID"
, ...}]

Make note of the IDs of the necessary streams.

If the required stream isn’t there, follow the instructions using this button, then return here to resume.

Create cohort

Create a one-time purchasers cohort

API via cURL
Dashboard

Use a POST /cohorts request:

curl https://api.faraday.ai/cohorts --json '{
  "name": "One-time purchasers",
  "stream_name": "transaction",
  "max_count": 1
}'

Your cohort will start building in the background. You can proceed immediately with the next set of instructions. When your cohort is done building, you’ll get an email.

Repeat purchasers cohort

  1. You'll need a Faraday account — signup is free!

Confirm your data

Event streams

Unless you’ve already created it for another quickstart or purpose, you’ll need to add the following event stream to your account:

  • Transaction

What’s an event stream?

Predicting a certain customer behavior requires historical examples of customers exhibiting that behavior. Faraday works best when that data comes in the form of “events” — specific actions or occurrences that happened at specific times.

Formulating data this way helps you define cohorts more expressively.

For example, a Customers cohort could be defined as the group of people who have all experienced a Transaction event at least once.

For more, see our docs on Cohorts, Events, Traits, and Datasets (which define how events and traits emerge from your data).

API via cURL
Dashboard

To verify, use a GET /streams request. Your response should look like this:

[{
  "name": "Transaction",
  "id": "$TRANSACTION_STREAM_ID"
, ...}]

Make note of the IDs of the necessary streams.

If the required stream isn’t there, follow the instructions using this button, then return here to resume.

Create cohort

Create a repeat purchasers cohort

API via cURL
Dashboard

Use a POST /cohorts request:

curl https://api.faraday.ai/cohorts --json '{
  "name": "Repeat purchasers",
  "stream_name": "transaction",
  "min_count": 2
}'

Your cohort will start building in the background. You can proceed immediately with the next set of instructions. When your cohort is done building, you’ll get an email.

Customers cohort

  1. You'll need a Faraday account — signup is free!

Confirm your data

Event streams

Unless you’ve already created it for another quickstart or purpose, you’ll need to add the following event stream to your account:

  • Transaction

What’s an event stream?

Predicting a certain customer behavior requires historical examples of customers exhibiting that behavior. Faraday works best when that data comes in the form of “events” — specific actions or occurrences that happened at specific times.

Formulating data this way helps you define cohorts more expressively.

For example, a Customers cohort could be defined as the group of people who have all experienced a Transaction event at least once.

For more, see our docs on Cohorts, Events, Traits, and Datasets (which define how events and traits emerge from your data).

API via cURL
Dashboard

To verify, use a GET /streams request. Your response should look like this:

[{
  "name": "Transaction",
  "id": "$TRANSACTION_STREAM_ID"
, ...}]

Make note of the IDs of the necessary streams.

If the required stream isn’t there, follow the instructions using this button, then return here to resume.

Create cohort

Create a customers cohort

API via cURL
Dashboard

Use a POST /cohorts request:

curl https://api.faraday.ai/cohorts --json '{
  "name": "Customers",
  "stream_name": "transaction"
}'

Your cohort will start building in the background. You can proceed immediately with the next set of instructions. When your cohort is done building, you’ll get an email.

Likelihood to buy again outcome

  1. You'll need a Faraday account — signup is free!

Confirm your data

Cohorts

Unless you’ve already created them for another quickstart or purpose, you’ll need to add the following cohorts to your account:

  • Repeat purchasers
  • Customers

What’s a cohort?

A cohort is Faraday’s term for a commercially significant group of people — for example, a brand’s customers, leads, or even “people who bought X and Y and then cancelled.”

Cohort membership is fluid — continuously computed by Faraday — and is defined by events its members must all have experienced and/or traits its members must all share.

For example, a Customers cohort could be defined as the group of people who have all experienced a Transaction event at least once.

For more, see our docs on Cohorts, Events, Traits, and Datasets (which define how events and traits emerge from your data).

API via cURL
Dashboard

To verify, use a GET /cohorts request. Your response should look like this:

[{
  "name": "Repeat purchasers",
  "id": "$REPEAT_PURCHASERS_COHORT_ID"
, ...}{
  "name": "Customers",
  "id": "$CUSTOMERS_COHORT_ID"
, ...}]

Make note of the IDs of the necessary cohorts.

If the required cohorts aren’t there, follow the instructions using these buttons, then return here to resume.

Configure your prediction

Create a likelihood to buy again outcome

API via cURL
Dashboard

Use a POST /outcomes request:

curl https://api.faraday.ai/outcomes --json '{
  "name": "Likelihood to buy again",
  "attainment": "$REPEAT_PURCHASERS_COHORT_ID",
  "eligible": "$CUSTOMERS_COHORT_ID"
}'

Your outcome will start building in the background. You can proceed immediately with the next set of instructions. When your outcome is done building, you’ll get an email.

Repeat purchase scoring deployment

  1. You'll need a Faraday account — signup is free!

Confirm your data

Unless you’ve already created them for another quickstart or purpose, you’ll need to add the following cohorts to your account:

  • One-time purchasers
  • Repeat purchasers
  • Customers

Cohorts

What’s a cohort?

A cohort is Faraday’s term for a commercially significant group of people — for example, a brand’s customers, leads, or even “people who bought X and Y and then cancelled.”

Cohort membership is fluid — continuously computed by Faraday — and is defined by events its members must all have experienced and/or traits its members must all share.

For example, a Customers cohort could be defined as the group of people who have all experienced a Transaction event at least once.

For more, see our docs on Cohorts, Events, Traits, and Datasets (which define how events and traits emerge from your data).

API via cURL
Dashboard

To verify, use a GET /cohorts request. Your response should look like this:

[{
  "name": "One-time purchasers",
  "id": "$ONE-TIME_PURCHASERS_COHORT_ID"
, ...}{
  "name": "Repeat purchasers",
  "id": "$REPEAT_PURCHASERS_COHORT_ID"
, ...}{
  "name": "Customers",
  "id": "$CUSTOMERS_COHORT_ID"
, ...}]

Make note of the IDs of the necessary cohorts.

If the required cohorts aren’t there, follow the instructions using these buttons, then return here to resume.

Confirm your predictions

Unless you’ve already created it for another quickstart or purpose, you’ll need to add the following prediction in your account:

  • Outcome: Likelihood to buy again
Outcomes

What’s an outcome?

An outcome is what you use in Faraday to define a propensity objective, such as likelihood to convert, buy again, or churn.

For more, see our docs on Outcomes.

API via cURL
Dashboard

To verify, use a GET /outcomes request. Your response should look like this:

[{
  "name": "Likelihood to buy again",
  "id": "$LIKELIHOOD_TO_BUY_AGAIN_OUTCOME_ID"
, ...}]

If the required outcome isn’t there, follow the instructions using this button, then return here to resume.

Deploy your predictions

Now you’ll create the pipeline necessary to deploy your predictions.

Create a pipeline for repeat purchase scoring

API via cURL
Dashboard

Use a POST /scopes request:

curl https://api.faraday.ai/scopes --json '{
  "name": "Repeat purchase scoring",
  "population": {
    "include": [
      "$ONE-TIME_PURCHASERS_COHORT_ID"
    ]
  },
  "payload": {
    "outcome_ids": [
      "$LIKELIHOOD_TO_BUY_AGAIN_OUTCOME_ID"
    ]
  }
}'

Your pipeline will start building in the background. You can proceed immediately with the next set of instructions. When your pipeline is done building, you’ll get an email.

Deploy your repeat purchase scoring pipeline

Deploying to CSV as an easy example

This section describes how to deploy your predictions to a CSV file that Faraday securely hosts (and continuously updates) for you to retrieve either manually or on a scheduled basis using your existing data infrastructure.

Most Faraday users eventually update their pipelines to deploy to data warehouses, cloud buckets, or databases. To do that, you’ll add your destination as a Connection and then choose it instead of Hosted CSV.

For more, see our docs on Pipelines and Connections

API via cURL
Dashboard

Use a POST /targets request:

curl https://api.faraday.ai/targets --json '{
  "name": "Repeat purchase scoring in CSV",
  "scope_id": "$REPEAT_PURCHASE_SCORING_SCOPE_ID",
  "representation": {
    "mode": "identified"
  },
  "options": {
    "type": "hosted_csv"
  }
}'

Your pipeline will finish building in the background. You can proceed immediately with the next set of instructions. When it’s done, you’ll get an email—then you can return to this pipeline and click the Enable pipeline button to activate it.