Back to Case Studies
Machine Learning

ML Recommendation Engine

Built a 2-way ML coach recommendation system that outperformed rule-based matching by 80%

80%
Relative Lift
ML model vs rule-based matching
Intellect | Senior Data Analyst
1

The Problem

Intellect's mental health platform matched users with coaches and therapists using a rule-based algorithm. As the platform scaled to 36 countries, the matching quality was degrading — users were getting providers who didn't fit their preferences, language, or cultural context.

25%
Match-to-booking conversion
Stuck at this rate with rule-based matching
24%
Users with zero cost-efficient providers
Despite 48% of supply being affordable

Match-to-booking conversion was stuck at 25%. Additionally, 24% of users saw zero cost-efficient providers in their top 5 recommendations, despite 48% of the provider supply being affordable.

2

The Hypothesis

A machine learning model trained on actual session history, user preferences, language compatibility, and cultural factors would produce significantly better matches than rigid rules.

Separately, adding a cost-efficiency signal to the scoring algorithm would surface affordable providers without sacrificing match quality.

3

The Approach

2-Way Content-Based Filtering

Built a recommendation system using Python and scikit-learn that scored from both perspectives — user fit AND provider fit — creating a mutual compatibility score.

Rich Training Data

Trained on session completion rates, user feedback, provider ratings, language pairs, cultural affinity signals, and preference matches.

A/B Testing

A/B tested the ML model against the existing rule-based algorithm across a representative user cohort to measure the real-world lift.

Cost Optimisation Layer

Evaluated three approaches for cost optimisation: full rewrite, blended scoring, and penalty-only multiplier. Shipped the penalty-only multiplier on top of existing scoring as the least disruptive option.

Python scikit-learn Content-Based Filtering A/B Testing SQL
4

The Result

Match Conversion
25% 45%
80% relative lift
Same-Country Matches
63.8% 74.1%
After cost layer
Average Cost per Credit
27%
Cost reduction
Deployment Risk
Minimal
Penalty-only approach — easy rollback

The penalty-only approach was shipped because it required no changes to the base algorithm, making it easy to roll back if needed.

5

Business Impact

Better Clinical Outcomes

Higher match quality led to more sessions completed, directly improving clinical outcomes for users.

Significant Cost Savings

Cost optimisation layer saved significant operational spend without hurting match quality.

Scalable Across 36 Countries

The ML model handled 36 countries seamlessly, unlike the rule-based system which needed manual tuning per region.

Reduced Repeat-Matching

Users were happier with their first match, reducing repeat-matching behaviour and improving retention.