Advanced Attribution Models
Last updated
Last updated
HockeyStack features out-of-the box attribution models that you can learn more about here:
Sometimes, companies using HockeyStack want to customize their attribution models a step further to get the insights they need. The following is a list of customizations you can either make on our frontend, or our support team can help you implement.
When creating reports, you can select one or many of the following models:
First Touch
Last Touch
Linear
Position-Based
Time Decay
Read more about their inner workings of each model here:
In HockeyStack, touchpoints included in attribution are controlled by the Property you select to attribute by within your reports.
You can create Defined Properties that include/exclude touchpoints from attribution, so that you can breakdown by the Defined Property and only give credit to the specific touchpoints you need.
Attribution models inherently have weights within them. For example, Position-Based inherently gives 40% of credit to first touch, 40% to last touch, and distributes the remaining 20% amongst middle touches. But sometimes you want to add weights in addition to this inherent weighting.
Custom weighting would be based on a 0-1 weight given to each type of touchpoint. By default, each touchpoint has a custom weight of 1.
You can use the "Custom Attribution Weights" option under "Advanced Options" of your defined property definitions to add these weights.
Note that weighting stacks on top of each other. Using Position Based + A custom weight would stack the position based weight times the custom weight. Similarly, if you breakdown a report by two properties that both have custom attribution weights, both properties' weights would be multiplied.
Therefore it is mostly suggested to use the Linear model, and only add weights to your Channel property.
Below are the most common methods used for deciding on custom weights by touchpoint. You can use one or a combination.
If you add new types of touchpoints to your touchpoint definition, you should recalculate weights.
Some touchpoints are inherently more frequent than others. For example, an Event touchpoint is inherently less frequent than an ad impression. So you might want to have each touchpoint be weighted by the inverse of its relative frequency.
That... might not be super intuitive. Let's unpack:
If the average number of ad impressions per company is 10, average number of event touchpoints is 1, and average number of organic search visits is 2:
Ad impressions are 5x as frequent compared to organic search. Therefore it should be weighted down by 5x. The relative weight of ad impressions against organic search should be 1 / 5 = 0.2
Organic search is 1x as frequent compared to organic search. It is the same touchpoint. The relative weight of organic search to organic search is 1. Duh...
Event touchpoints are 0.5x as frequent compared to organic search. Therefore it should be weighted up by that amount. The relative weight of event touchpoints against organic search should be 1 / 0.5 = 2.
So now we have Organic Search at 1, Ad impressions at 0.2, and Event touchpoints at 2.
Remember that weights should be between 0 to 1. We can use a process called "normalization" to get these numbers within the 0 to 1 range.
We take the maximum number out of all of our relative weights. The maximum number in this case is 2. Then we divide each number by the maximum number.
Organic Search custom weight = 1 / 2 = 0.5
Ad impressions custom weight = 0.2 / 2 = 0.1
Event touchpoints custom weight = 2 / 2 = 1
Conversion rates might be helpful to understand which touchpoint should be weighted down. Usually, targeted advertising and offline touchpoints have the highest conversion rate, vs organic and direct website visits, or things like email outreach and nurture have the lowest conversion rate. This introduces a bias towards those touchpoints that have higher conversion rates.
You can use the relative weight calculation from Method 1 on conversion rates.
First, you should select a conversion point. Let's say you select Deal Creation
Then, you calculate conversion rates of companies that touch each channel.
Let's say Organic Search has a conversion rate of 0.1% while Paid Search has a conversion rate of 1%.
The relative weight of Paid Search against Organic Search becomes 1/0.1 = 10x.
You can use the remainder of the calculation from Method 1 to get to a 0-1 number.
A lift report indicates the effectiveness of a touchpoint in increasing conversion rates.
Using this instead of conversion rates removes the potential bias towards touchpoints that inherently have high conversion rates, such as targeted advertising, but it adds bias towards touchpoints that are only done on the converted audience, such as Email Marketing, which will inherently have a high lift.
The calculation method is similar to the Conversion Rate method.
In HockeyStack, there are 4 types of entities that perform touchpoints within the buyer journey
Person-based actions
Primary contact tied to opportunity (only applies to Salesforce)
Secondary contacts tied to opportunity (only applies to Salesforce)
All other contacts within company
Company-based actions (The touchpoints for which we don't exactly know which person performed the touchpoint.)
Example: Reverse ip lookup on the website connects website data with companies. In this case, until the person is identified via an email by submitting a form, these website actions are company-based actions.
Example 2: LinkedIn Impressions and Engagements coming from the LinkedIn Ads integration are tied to the company, not the individual person that had the ad engagement, since LinkedIn does not share this data.
You can choose to add additional weighting or exclusions based on which entity performed the action.
You can notify your customer success manager to help implement the inclusion/exclusion schema you need.
Weighting would be based on a 0-1 weight given to each type of entity. By default, each entity has a weight of 1.
You can notify your customer success manager to help implement the weighting schema you need.
I want to weight company-based actions as 0.1. I use a position-based model. I have a deal worth $100k with the following touchpoints:
First touch = website visit from google ads from primary contact
Google Ads has the following weighting = 0.4 x 1 = 0.4
1 middle touch = website visit from linkedin ads from secondary contact
LinkedIn Ads has the following weighting = 0.2 x 1 = 0.2
Last Touch = website visit from facebook ads from reverse ip identified visitor
Facebook Ads has the following weighting = 0.4 x 0.1 = 0.04
Total of weights is 0.4 + 0.2 + 0.04 = 0.64. This is important, because the attribution each touchpoint gets is the % of total weight they have, times the total credit.
So attribution would be:
Google Ads: 0.4/0.64 x $100k = $625k
LinkedIn Ads: 0.2/0.64 x $100k = $312.5k
Facebook Ads: 0.04/0.64 x $100k = $62.5k