Heart Framework for BI

The HEART framework is a methodology developed by Google for evaluating and improving user experience (UX). It uses five key metrics: Happiness, Engagement, Adoption, Retention, and Task success. This framework helps product teams understand how users experience a product or feature and identify areas for improvement. 

Business Intelligence(BI)

By using the HEART framework,  I try  to gain a deeper understanding of our users' experience, identify areas for improvement, and track the impact of changes made to the product. Based on  I am going to evaluate the BI  project which has designed by me.

All steps will be evaluated based on the Logs which I've designed the query for them.

Heart Framework Chart

😊Happiness:

Measures user satisfaction and positive feelings towards the product. Examples include feedback surveys, customer satisfaction scores (CSAT), and Net Promoter Score (NPS).

Goal:

 After just one interaction, users can quickly connect with BI diagrams and navigate them Effortlessly.

Signal : 

Take Good Feedback- Ease of use of the product

Metric: 

customer satisfaction scores (CSAT), and Net Promoter Score (NPS)(1-10)

  • Recommanded Formula: NPS=%Promoters-%Detractors/Total Respons
  • Promoters=9-10
  • Passives=7-8
  • Detractors=0-6
NPS = COUNT (Case_id
   WHERE Score> =9 THEN 1 END*100.0)/COUNT(*))-COUNT (Case_id
    WHERE Score< =6 THEN 1 END*100.0)/COUNT(*)) As
nps_Score
FROM  feedback
WHERE submitted_at>=NOW()-30 DAY;

Result of Happiness:

  • If the satisfaction rate is above 70%, it indicates a positive user experience with the features.
  • If the rate is between 30% and 70%, it shows that the features are adopted but still subject to criticism.
  • If the rate is below 30% or even negative, it indicates that the user experience has been poor, and the features should be redesigned or even removed.

🤝Engagement:

Focuses on the frequency, intensity, and depth of user interaction with the product. Metrics might include time spent in the app, number of actions taken, or frequency of use.

Goal:

 Users interacted actively with the product’s diagrams and features, indicating high engagement.

Signal : 

User interaction rate among logged-in users, Growth in the use of tools, features, and reporting capabilities

Metric: 

The number of interactions per week should be at least 3 times per active user.

This ratio should increase or at least be maintained at a high level.

Usage of tools should increase throughout the user’s session within the product.

Recommanded Formula:

  • Seen Users=Total number of entry_to_BI_page events within a specified period (without DISTINCT)
  • Interactions =Total number of click events on the feature selection keys:‘Zoom_Feature’, ‘Drill_Up’, ‘Drill_Down’, ‘Sort_Feature’
  • Engagement Rate = Interactions / Seen Users
SELECT User_id, COUNT (*) as Interactions
FROM logs
WHERE Event IN (‘Zoom_ Feature’, ‘Driil_Up’, ‘Drill_Down’,’ Sort_ Feature’, ‘Determine_Attribute’)
     AND Date BETWEEN Week_X_start AND Week_X_end
GROUP BY User_id
HAVING Interactions >= 3
Result of Engagement Rate
  • If the engagement rate is above 70%, it indicates that the user has established a high level of interaction with the features and is able to generate the reports they need through them. It also shows that these features have become part of the user’s behavior.
  • If the engagement rate is between 70% and 30%, it indicates that the features are useful but still have room for improvement and need to be reviewed again.
  • If the engagement rate is below 30%, a thorough redesign is required because the user has not been able to establish sufficient interaction with the features and the BI environment.

👆Adoption:

Tracks how new users start using the product. Metrics include the number of new users, the percentage of users who complete on boarding, or the number of users who try a specific feature.

Goal:

Users who discover and use the new feature.

Signal : 

Number of unique users who entered the BI page for the first time.

Metric: 

Increase in the number of distinct user_ids with the event type entry_to_BI_page on a weekly basis.

  • Adoption Rate=(Active Users_Week2 - Active Users_Week1) / Active Users_Week1 * 100
Active Users = COUNT (DISTINCT User_id)
WHERE Event = entry_to_BI_page
   AND   Date BETWEEN Week_X_start AND Week_X_end

Result of Adoption Rate

  • If the adoption rate is high (e.g., above 50%) : it indicates that most users have discovered the saved ads cart feature and found it useful or this means the feature has become part of users’ natural behavior.
  • If the adoption rate is low (below 50%) : the feature is valuable for some users, but not everyone has engaged with it yet or This requires education, promotion, or simplifying the saving flow or It may also suggest that the feature could eventually be removed, since users have not truly adopted it and redesign is required because the user has not been able to establish sufficient interaction with the features and the BI environment.

🔄Retention :

Measures how long users continue to use the product or feature. This can be measured by subscription renewals, returning users, and churn rate. 

Goal:

Users return to the BI dashboard after their first session to view visualizations and repeatedly use reporting features.

Signal : 

  • Repeated visits to the BI dashboard in consecutive weeks
  • Continued use of reporting tools or analytic features
  • Activity observed across specific timeframes (e.g., 7-day, 14-day)

Metric: 

  • 7-day and 14-day retention rates (returning users after 1st use)
  • Stability or growth of distinct user_ids week-over-week
  • 7-day retention rate > 40%, once the baseline is established
  • Plot of retention percentages over multiple time periods (e.g., X=D7, D30, D90).
  • Retention Rate=DAU(Daily Active Users) / MAU (Monthly Active Users)
WITH first_sessions AS (
  SELECT user_id, MIN(DATE(timestamp)) AS first_visit
  FROM event_logs
  WHERE event_type = 'entry_to_BI_page'
  GROUP BY user_id
),
next_sessions AS (
  SELECT e.user_id, DATE(e.timestamp) AS visit_day
  FROM event_logs e
  JOIN first_sessions fs ON e.user_id = fs.user_id
  WHERE e.event_type = 'entry_to_BI_page'
    AND DATE(e.timestamp) > fs.first_visit
COUNT(DISTINCT user_id) FILTER (WHERE visit_day <= fs.first_visit + INTERVAL 'X day') AS retained_7d,
  COUNT(DISTINCT user_id) AS total_returned,
  (COUNT(DISTINCT user_id) FILTER (WHERE visit_day <= fs.first_visit + INTERVAL 'X day') * 100.0 /
   COUNT(DISTINCT fs.user_id)) AS retention_rate_Xd
FROM first_sessions fs
JOIN next_sessions ns ON fs.user_id = ns.user_id;

Result of Engagement Rate
  • This result is for a 30-day period.
    The time frame can be extended from 7 to 30 or even 90 days.
    • If the retention rate is above 60%, it indicates that users are loyal to the product and actively use all its features.
    • If the retention rate is between 30% and 60%, it shows that there are still users who have not fully utilized the product or its features. Depending on the type of report, a monthly review may not be necessary, and these users should be evaluated on a quarterly basis.
    • If the retention rate is below 30%, it indicates that users are not interested in using the product, or the features are not suitable or engaging, and thus the product has failed to attract users effectively.

🎯Task Success:

Evaluates how easily users can complete specific tasks within the product. Metrics include task completion rate, time to complete a task, and error rates. 

Goal:

  • Generate a complete report
  • View charts without errors
  • Successfully download the data

Signal : 

  • Successful completion of the report (completed_report = TRUE)
  • No errors or failures during output generation
  • Number of users who reached the end of the process

Metric: 

  • Report Completion Rate
  • Successful Export Rate
  • Task Success Rate
  • Task Success Rate=users_with_completed_task/Total_Users_Attempt
SELECT
	COUNT(DISTINCT CASE WHEN report_status = 'completed' THEN user_id END) * 1.0 /
	COUNT(DISTINCT user_id) AS task_success_rate
FROM bi_reports
WHERE report_date BETWEEN '2025-mm1-dd1' AND '2025-mm2-dd2'; -- this query uses or reports

Result of Task Success Rate

  • If the success rate is above 80% : it indicates that users can easily complete the task and the feature is efficient.

  • If the success rate is between 80% and 50% :the feature is usable but needs improvements  (e.g., UX or performance).

  • If the success rate is below 50% : a redesign is required, as most users could not succeed