At press time, traders seemed to be over-leveraged at $0.342 on the lower side and $0.373 on the upper side
On-chain metrics revealed that exchanges have seen significant inflows of $3.9 millio
Bitcoin hit a new ATH last week when it peaked above $108,000 before losing a large chunk of its gains to stand below $95. What does that mean for the Bitcoin price prediction for 2025? Good news: not much! Bitcoin is merely consolidating and will skyrocket to even more new ATHs, taking altcoins like BNB […]
As January 2025 approaches, the crypto landscape is ripe with opportunities for exponential growth, and the search for the next breakout projects has never been more exciting. In particular, the virtual reality (VR) sector is gearing up for unprecedented expansion, with projections estimating the market will surpass $87 billion by 2025. Among the top contenders […]
Cryptocurrencies have reshaped the global landscape, offering exceptional opportunities for wealth creation. These digital assets present an avenue for substantial returns, often surpassing traditional coins. However, identifying the next crypto to explode is both an art and a science—requiring a keen understanding of market trends, technological advancements, and sentiment. The appeal lies in the potential […]
Are you ready to determine which coin will dominate the next crypto bull run? The re-election of Donald Trump and his talks about a potential national Bitcoin reserve have energized the market. Furthermore, his position on the appointment of crypto-supportive regulators creates further excitement. With a favorable regulatory environment emerging, now is the ideal time […]
The crypto market is constantly developing, and traders worldwide eagerly wait to discover the next crypto to explode. Aureal One is an exceptionally notable contender amidst such stiff competition. It is characterized by integrating leading blockchain scalability with the ultimate gaming ecosystem. The potential to return substantial, massive gains within an incomprehensibly short time scale […]
Enhancing cross-product insights within dbt workflows
Introduction
For multi-product companies, one critical metric is often what is called “cross-product adoption”. (i.e. understanding how users engage with multiple offerings in a given product portfolio)
One measure suggested to calculate cross-product or cross-feature usage in the popular book Hacking Growth [1] is the Jaccard Index. Traditionally used to measure the similarity between two sets, the Jaccard Index can also serve as a powerful tool for assessing product adoption patterns. It does this by quantifying the overlap in users between products, you can identify cross-product synergies and growth opportunities.
A dbt package dbt_set_similarity is designed to simplify the calculation of set similarity metrics directly within an analytics workflow. This package provides a method to calculate the Jaccard Indices within SQL transformation workloads.
To import this package into your dbt project, add the following to the packages.yml file. We will also need dbt_utils for the purposes of this articles example. Run a dbt deps command within your project to install the package.
The Jaccard Index, also known as the Jaccard Similarity Coefficient, is a metric used to measure the similarity between two sets. It is defined as the size of the intersection of the sets divided by the size of their union.
Mathematically, it can be expressed as:
The Jaccard Index represents the “Intersection” over the “Union” of two sets (image by author)
Where:
A and B are two sets (ex. users of product A and product B)
The numerator represents the number of elements in both sets
The denominator represents the total number of distinct elements across both sets
(image by author)
The Jaccard Index is particularly useful in the context of cross-product adoption because:
It focuses on the overlap between two sets, making it ideal for understanding shared user bases
It accounts for differences in the total size of the sets, ensuring that results are proportional and not skewed by outliers
For example:
If 100 users adopt Product A and 50 adopt Product B, with 25 users adopting both, the Jaccard Index is 25 / (100 + 50 — 25) = 0.2, indicating a 20% overlap between the two user bases by the Jaccard Index.
Example Data
The example dataset we will be using is a fictional SaaS company which offers storage space as a product for consumers. This company provides two distinct storage products: document storage (doc_storage) and photo storage (photo_storage). These are either true, indicating the product has been adopted, or false, indicating the product has not been adopted.
Additionally, the demographics (user_category) that this company serves are either tech enthusiasts or homeowners.
For the sake of this example, we will read this csv file in as a “seed” model named seed_example within the dbt project.
Simple Cross-Product Adoption
Now, let’s say we want to calculate the jaccard index (cross-adoption) between our document storage and photo storage products. First, we need to create an array (list) of the users who have the document storage product, alongside an array of the users who have the photo storage product. In the second cte, we apply the jaccard_coef function from the dbt_set_similarity package to help us easily compute the jaccard coefficient between the two arrays of user id’s.
with product_users as ( select array_agg(user_id) filter (where doc_storage = true) as doc_storage_users, array_agg(user_id) filter (where photo_storage = true) as photo_storage_users from {{ ref('seed_example') }} )
select doc_storage_users, photo_storage_users, {{ dbt_set_similarity.jaccard_coef( 'doc_storage_users', 'photo_storage_users' ) }} as cross_product_jaccard_coef from product_users
Output from the above dbt model (image by author)
As we can interpret, it seems that just over half (60%) of users who have adopted either of products, have adopted both. We can graphically verify our result by placing the user id sets into a Venn diagram, where we see three users have adopted both products, amongst five total users: 3/5 = 0.6.
What the collection of user id’s and product adoption would look like, verifying our result (image by author)
Segmented Cross-Product Adoption
Using the dbt_set_similarity package, creating segmented jaccard indices for our different user categories should be fairly natural. We will follow the same pattern as before, however, we will simply group our aggregations on the user category that a user belongs to.
with product_users as ( select user_category, array_agg(user_id) filter (where doc_storage = true) as doc_storage_users, array_agg(user_id) filter (where photo_storage = true) as photo_storage_users from {{ ref('seed_example') }} group by user_category )
select user_category, doc_storage_users, photo_storage_users, {{ dbt_set_similarity.jaccard_coef( 'doc_storage_users', 'photo_storage_users' ) }} as cross_product_jaccard_coef from product_users
Output from the above dbt model (image by author)
We can see from the data that amongst homeowners, cross-product adoption is higher, when considering jaccard indices. As shown in the output, all homeowners who have adopted one of the product, have adopted both. Meanwhile, only one-third of the tech enthusiasts who have adopted one product have adopted both of the products. Thus, in our very small dataset, cross-product adoption is higher amongst homeowners as opposed to tech enthusiasts.
We can graphically verify the output by again creating Venn diagram:
Venn diagrams split by the two segments (image by author)
Conclusion
dbt_set_similarity provides a straightforward and efficient way to calculate cross-product adoption metrics such as the Jaccard Index directly within a dbt workflow. By applying this method, multi-product companies can gain valuable insights into user behavior and adoption patterns across their product portfolio. In our example, we demonstrated the calculation of overall cross-product adoption as well as segmented adoption for distinct user categories.
Using the package for cross-product adoption is simply one straightforward application. In reality, there exists countless other potential applications of this technique, for example some areas are:
Feature usage analysis
Marketing campaign impact analysis
Support analysis
Additionally, this style of analysis is certainly not limited to just SaaS, but can apply to virtually any industry. Happy Jaccard-ing!
Key takeaways The iDEGEN team has raised nearly $10 million in its presale. The pre-market auction will end three days before $IDGN is listed on exchanges. What is iDEGEN? The cryptocurrency market experienced a boom in 2024, with several new projects hitting the market. New projects that could change how investors view the market in […]
PEPE Price Prediction – Can memecoin avoid a repeat of summer’s 60% retracement?
Originally appeared here:
PEPE Price Prediction – Can memecoin avoid a repeat of summer’s 60% retracement?
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.