Measured is a nutrition and diet tracking app. It primarily offers personalized, low-carb plans for weight care, while also letting users choose other types of meal plans to fit their lifestyles. One of the app’s key features is easy shopping, where users choose recipes, view ingredients, and get printable grocery lists.
The Client was working with several data sources (Braintree, Stripe, Facebook) that they wanted to merge into one. This proved to be a difficult task for the Client to handle on their own because Braintree and Stripe (tech-driven payment processing platforms) contain different fields and formats.
Therefore, they contacted us at Valiotti to collect and combine data from several sources. We were also given a task to build several management reports and dashboards based on that data and to help the Client understand the app’s success metrics (user retention, acquisition cost, etc.).
We combined and transformed different data sources using the dbt ELT tool.
Based on the data marts it generated, we built charts in Metabase (charts demonstrating revenue, returns, and retention rate).
You need custom analytics if
Combining data from different sources
We combined data from three data sources (payment systems that Measured uses). For this, we used Fivetran to connect to various data sources and collect information from these sources in the Amazon Redshift cloud database.
Below, you can see how Fivetran connects to payment platforms and Facebook Ads.
Connectors in Fivetran
And here are the data schemas stored in the Amazon Redshift database after being integrated with Fivetran. As you can see, the data sources contain different fields after Fivetran connects to them and transfers the information to the database.
Braintree Entity-Relationship Diagram (ERD)
Stripe Entity-Relationship Diagram (ERD)
Transforming data
With the help of the dbt ETL tool, we were able to connect to the database and transform data in the warehouse.
Graph from dbt
This screenshot shows how a data mart is formed based on two payment systems (Braintree and Stripe, with measured_stripe as an old version of Stripe). This would later be used to build charts in Metabase. The data in the data marts are updated at an interval set by the user in dbt.
In the screenshot below, you can see how we created a data mart (shaped as a dbt model, bt_stripe_combined_subs on the graph).
Structure of the final data mart (assembled in stages)
We should also mention that dbt has a unique syntax – the screenshot below shows the processing of a subscription (the stg_mapping model in the graph).
Structure of the final data mart (assembled in stages)
Reporting
The main data marts were used as the basis for Metabase reports, such as:
For example, we generated a Retention Rate report with the use of cohort analysis and based on the final data mart for subscriptions (bt_stripe_combined_subs in the dbt graph).
Retention rate split by cohort
Also, we built a number of graphs and tables based on other data marts to show the dynamics of business metrics, revenue, and returns. See the examples below.
Dashboards for net revenue vs. refunds and new vs. repeat revenue
Pivot table with cohort analysis
Interactive UI to filter the dashboard
Getting a 360-degree view of the business
The project stages described above allow the Client to see a complete picture of the company’s processes. The graphs show the dynamic changes in various metrics, which inform the user if something is going wrong and they need to implement changes.
For example, the Client can promptly see issues with user retention in the app and take measures to correct them.
Boosting productivity
The Client is now able to make decisions in a data-informed way. For example, they can create new marketing experiments and see the results separately for each cohort.
If you need help with selecting or creating data analytics tools, feel free to contact us.
You can write directly to our CEO or submit a request on the site. We are looking forward to our collaboration!
Learn more about our case studies
This website uses cookies to ensure you get the best experience on our website. Learn more >