Declaring objectives

Now you're ready for the fun part: choosing the predictions you want Faraday to make.

Predicting consumer behavior

The Faraday API makes it easy to generate predictions about people—specifically customer behavior. Here are the broad types of predictions we provide:

  • Propensity — Want to predict whether a given person will take a specific action? Declare a propensity objective to compute the probability that a prospect will make a purchase, a lead will convert, a customer will re-engage, or any other action.

  • Persona — Want to organize a group of people into interesting, coherent subgroups? Declare a persona objective to enable a wide array of personalization techniques.

  • Potential (coming soon) — During the lifetime of a customer's relationship with you, many things can happen. Brands everywhere wish they could a sense of how long the relationship may last, and how valuable it will be along the way. Faraday helps you forecast this relationship for each one of your customers—even before they become a customer. You can use this forecast to predict LTV, churn, and more. Contact support for an invite to the closed beta.

Where's the models?

Most AI platforms require the user to manage "models" — technical AI artifacts that encode specific predictive patterns.

Faraday believes that models are like physical servers in a datacenter: users shouldn't have to worry about which specific box their website is running on; nor should they worry about specific models.

Instead, you will declare prediction objectives in an intuitive way that doesn't require data science experience. Faraday will assess your objectives, build candidate models for each of them, and select the highest performing models. Going forward, we continuously evaluate opportunities to "refresh" your models to take advantage of new data.

When you deploy predictions, you choose objectives rather than models for your payload — Faraday will use the best model at the time to compute the predictions for your deployment.

The machine-learning part of prediction is boring and messy—you don't have to worry about it with Faraday. (Of course, if you want to see model details, we're fully transparent.)

Propensity objectives

Propensity objectives allow you to predict whether a person will (or will not) take a well defined action.


Your customers will exhibit many behaviors over time—what if you could anticipate them? Faraday helps you predict the propensity that a given person will attain a certain outcome, such as a lead converting to a customer, a customer buying again, or a subscriber upgrading their service. Any "event" that has happened to people within your data in the past can be predicted for the future.

You will get detailed reporting on how effective your models are, and you can apply your propensity models to anybody you'd like. Faraday shares raw probability, as well as helpful ranks and quantiles to make prioritization easy.

Requirements for propensity

Faraday recommends that you have data describing at least 1,000 examples of a behavior occurring in the past in order to develop an outcome for it. This is a soft requirement: we will attempt to predict objectives with far fewer examples.

Defining a propensity objective

The configuration abstraction we use at Faraday to declare propensity objectives is called Outcome. You'll use the POST /outcomes endpoint to create them.

All you need to define an Outcome is the one or more cohorts you created in the previous step (Defining cohorts).

  • At a minimum, you will indicate which of your cohorts represents examples of this outcome, via the attainment_cohort_id parameter. For example, you could use a Customers cohort to represent examples of a "Purchase" outcome: your existing customers have previously achieved this outcome (they purchased something) and are therefore great examples.
  • In some cases, you will also be able to choose a cohort that represents explicit counterexamples of the outcome, via the attrition_cohort_id parameter. For example, a "Lead conversion" outcome could use a Customers cohort as examples and a "Stale leads" cohort as counterexamples.
  • Finally, you may encounter situations where you want to explicitly define an eligible population for this outcome, via the eligible_cohort_id parameter — you will choose another cohort to do this. For example, an "Upgrade" outcome may only be relevant to existing customers (your Customers cohort).

To summarize, defining an outcome (propensity objective) is as simple as choosing 1–3 cohorts. Faraday takes over from there.

Our ML approach

Behind the scenes, Faraday employs an ensemble of decision trees (a Random Decision Forest) to predict your outcome. This is a binary classification algorithm that yields an intuitive, explainable machine learning model. As always, Faraday models are exhaustively validated.

Persona objectives

Persona objectives allow you to organize people into interesting, coherent subgroups, each with a compelling identity.


There are likely important, interesting subgroups hiding within your customer base, although many brands struggle to identify them. Faraday uses time-tested ML techniques, along with the rich consumer data in our Faraday Identity Graph, to discover the handful of segments that make your company tick.

You will get detailed information on who your personas are, so you can produce variants of messaging, creative, ads, offers, and other material that are attuned to each individual persona. This typically requires research, agencies, and months of work to figure out—with Faraday, it takes minutes.

Finally, you can then apply your new persona segments to any population you want, including leads, brand new customers, and even prospects. This helps you personalize your communication throughout your relationship with each person.

Requirements for persona objectives

Faraday recommends building persona sets for groups with at least 100 members. Persona objectives will produce between 3–9 personas in your persona set.

Defining a persona objective

The configuration abstraction we use at Faraday to declare persona objectives is called Persona Set. You'll use the POST /persona_sets endpoint to create them.

All you need to define a Persona Set is a cohort you created in the previous step (Defining cohorts).

Our ML approach

Behind the scenes, Faraday employs the k-means++ algorithm to partition your cohort. Every k from 3–9 is attempted, with an optimization routine finding the ideal k.