SECTION 1: LEARNING OBJECTIVES
By the end of this lesson, you will be able to:
-
Define customer experience (CX) in the context of digital banking.
-
Understand the importance of CX as a competitive differentiator.
-
Apply customer journey mapping to identify pain points and opportunities.
-
Identify key touchpoints in the digital banking journey.
-
Use design thinking to improve customer experience.
-
Measure customer experience using NPS, CSAT, and CES.
-
Implement personalisation to enhance customer experience.
-
Develop a customer experience strategy for digital banking.
SECTION 2: THE IMPORTANCE OF CUSTOMER EXPERIENCE
2.1 Why CX Matters in Banking
| Statistic | Implication |
|---|---|
| 86% of customers are willing to pay more for a better experience. | CX drives revenue and loyalty. |
| 89% of customers switch to a competitor after a poor experience. | Poor CX leads to churn. |
| Banks with superior CX grow revenue 2x faster. | CX is a competitive advantage. |
| 73% of customers expect personalisation. | Personalisation is no longer optional. |
| 70% of buying experiences are based on how customers feel they are treated. | Emotional connection drives loyalty. |
2.2 The CX Maturity Model
| Level | Description | Characteristics |
|---|---|---|
| Level 1: Reactive | Respond to customer issues. | Complaint handling, reactive service. |
| Level 2: Responsive | Address customer needs. | Basic feedback collection, service recovery. |
| Level 3: Proactive | Anticipate customer needs. | Personalisation, proactive outreach. |
| Level 4: Predictive | Predict customer behaviour. | AI-driven insights, predictive analytics. |
| Level 5: Prescriptive | Shape customer behaviour. | Omnichannel orchestration, adaptive experiences. |
SECTION 3: CUSTOMER JOURNEY MAPPING
3.1 What is a Customer Journey Map?
A customer journey map is a visual representation of the customer’s experience with a bank across all touchpoints and channels. It helps identify pain points, opportunities, and moments of truth.
Key Components:
| Component | Description |
|---|---|
| Persona | The customer segment represented. |
| Stages | The phases of the journey (e.g., Awareness, Consideration, Purchase, Retention). |
| Touchpoints | Interactions between customer and bank (e.g., website, app, branch, call centre). |
| Channels | The medium of interaction (e.g., mobile, web, in-person, email). |
| Actions | What the customer does at each stage. |
| Thoughts | What the customer is thinking. |
| Feelings | What the customer is feeling (positive/negative). |
| Pain Points | Challenges and frustrations. |
| Opportunities | Areas for improvement. |
| Emotional Curve | Visualisation of emotional highs and lows. |
3.2 The Digital Banking Customer Journey
┌─────────────────────────────────────────────────────────────────────────────┐ │ DIGITAL BANKING CUSTOMER JOURNEY │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ AWARENESS │ CONSIDERATION │ ACQUISITION │ │ │ │ (Discover the │ (Research and │ (Open account, │ │ │ │ bank) │ compare) │ apply) │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ ONBOARDING │ USAGE │ RETENTION │ │ │ │ (Welcome, setup, │ (Daily banking, │ (Loyalty, advocacy, │ │ │ │ first deposit) │ transactions) │ cross-sell) │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ ADVOCACY │ DEPARTURE │ │ │ │ (Recommend, │ (Account closure, │ │ │ │ refer) │ churn) │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘
3.3 Touchpoints in Digital Banking
| Stage | Touchpoints | Channels |
|---|---|---|
| Awareness | Ads, social media, word-of-mouth, articles. | Social, search, email. |
| Consideration | Website, reviews, comparisons, branch visits. | Web, mobile, in-person. |
| Acquisition | Account opening, KYC, onboarding emails. | Mobile, web, email. |
| Onboarding | Welcome emails, app setup, first deposit. | Mobile, email, push notifications. |
| Usage | Mobile app, online banking, payments, transfers. | Mobile, web, API. |
| Retention | Personalised offers, rewards, customer service. | App, email, call centre. |
| Advocacy | Referral programs, reviews, social sharing. | App, social, email. |
| Departure | Account closure, feedback surveys. | Web, email, call centre. |
SECTION 4: DESIGN THINKING IN DIGITAL BANKING
4.1 The Design Thinking Process
┌─────────────────────────────────────────────────────────────────────────────┐ │ DESIGN THINKING PROCESS │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ EMPATHISE │ │ DEFINE │ │ IDEATE │ │ PROTOTYPE │ │ │ │ (Understand │ -> │ (Define the│ -> │ (Generate │ -> │ (Create │ │ │ │ users) │ │ problem) │ │ solutions)│ │ solutions)│ │ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ┌─────────────┐ │ │ │ TEST │ │ │ │ (Test and │ │ │ │ iterate) │ │ │ └─────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘
4.2 Applying Design Thinking to Digital Banking
| Phase | Activity | Banking Example |
|---|---|---|
| Empathise | Understand customer needs and pain points. | Customer interviews, journey mapping, surveys. |
| Define | Define the problem statement. | “Customers find account opening too slow and complex.” |
| Ideate | Brainstorm solutions. | “What if we could open an account in 5 minutes using AI?” |
| Prototype | Build a quick prototype. | Wireframe a simplified account opening flow. |
| Test | Test with real customers. | User testing, A/B testing, feedback collection. |
SECTION 5: PERSONALISATION IN DIGITAL BANKING
5.1 What is Personalisation?
Personalisation is the use of customer data to deliver tailored experiences, products, and communications.
Levels of Personalisation:
| Level | Description | Example |
|---|---|---|
| Basic | Use of name and basic segmentation. | “Welcome, John!” |
| Segmented | Based on customer segment. | Offers for students vs professionals. |
| Behavioural | Based on customer behaviour. | Recommendations based on transaction history. |
| Contextual | Based on time, location, and context. | Offer coffee shop discount near customer location. |
| Predictive | Anticipate customer needs. | Proactive savings advice. |
| Hyper-Personalisation | Real-time, AI-driven. | Dynamic product recommendations. |
5.2 Personalisation Use Cases
| Use Case | Description | Technology |
|---|---|---|
| Personalised Offers | Targeted product recommendations. | ML, recommendation engines. |
| Smart Notifications | Timely, relevant alerts. | AI, event-driven architecture. |
| Dynamic Content | Customised app and website content. | CMS, ML. |
| Personalised Advice | AI-powered financial guidance. | NLP, generative AI. |
| Adaptive UX | Interface adapts to user preferences. | ML, UI personalisation. |
SECTION 6: MEASURING CUSTOMER EXPERIENCE
6.1 Key CX Metrics
| Metric | Description | Calculation | Target |
|---|---|---|---|
| NPS (Net Promoter Score) | Customer loyalty and likelihood to recommend. | % Promoters – % Detractors. | > 50 (Excellent) |
| CSAT (Customer Satisfaction) | Satisfaction with a specific interaction. | % Satisfied / Total Responses. | > 80% |
| CES (Customer Effort Score) | Ease of completing a task. | Low effort = 1, High effort = 5. | < 2.5 |
| Churn Rate | Percentage of customers leaving. | Customers lost / Total customers. | < 10% |
| Customer Lifetime Value (CLV) | Total value a customer brings. | Average Purchase Value × Purchase Frequency × Customer Lifespan. | Increasing trend. |
| First Contact Resolution (FCR) | Percentage of issues resolved in one interaction. | Resolved at first contact / Total contacts. | > 80% |
6.2 CX Dashboard
| Metric | Current | Target | Status |
|---|---|---|---|
| NPS | 45 | 55 | 🟡 On Track |
| CSAT | 82% | 85% | 🟡 On Track |
| CES | 2.3 | 2.0 | 🔴 Needs Improvement |
| Churn Rate | 8% | 5% | 🔴 Needs Improvement |
| CLV | $2,500 | $3,000 | 🟡 On Track |
| FCR | 78% | 85% | 🟡 On Track |
SECTION 7: IMPLEMENTATION IN PYTHON – CX AND JOURNEY MAPPING TOOLS
# =================================================================== # MODULE 1, LESSON 3: CUSTOMER EXPERIENCE AND JOURNEY MAPPING # =================================================================== import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from datetime import datetime import warnings warnings.filterwarnings('ignore') print("="*70) print("CUSTOMER EXPERIENCE AND JOURNEY MAPPING") print("="*70) # ---------------------------------------------------------------- # PART A: CUSTOMER JOURNEY MAP # ---------------------------------------------------------------- print("\n" + "-"*60) print("PART A: Customer Journey Map") print("-"*60) # Define journey stages stages = ['Awareness', 'Consideration', 'Acquisition', 'Onboarding', 'Usage', 'Retention', 'Advocacy', 'Departure'] # Define touchpoints for each stage touchpoints = { 'Awareness': ['Social Media Ads', 'Google Search', 'Word of Mouth', 'Articles'], 'Consideration': ['Website', 'Reviews', 'Comparisons', 'Branch Visit'], 'Acquisition': ['Online Application', 'KYC Process', 'Email Confirmation', 'Verification'], 'Onboarding': ['Welcome Email', 'App Download', 'First Deposit', 'Card Activation'], 'Usage': ['Mobile App', 'Online Banking', 'Payments', 'Transfers'], 'Retention': ['Personalised Offers', 'Rewards', 'Customer Service', 'Newsletters'], 'Advocacy': ['Referral Program', 'Reviews', 'Social Sharing', 'Testimonials'], 'Departure': ['Account Closure', 'Feedback Survey', 'Final Communications'] } # Define emotions for each stage (scale -2 to +2) emotions = { 'Awareness': 1, 'Consideration': 0, 'Acquisition': -1, 'Onboarding': 0, 'Usage': 2, 'Retention': 1, 'Advocacy': 2, 'Departure': -2 } # Define pain points for each stage pain_points = { 'Awareness': ['Not finding relevant information', 'Confusing messaging'], 'Consideration': ['Overwhelming choices', 'Lack of transparency'], 'Acquisition': ['Lengthy application', 'Complex KYC'], 'Onboarding': ['Delayed activation', 'Confusing interface'], 'Usage': ['Slow transactions', 'App crashes'], 'Retention': ['Generic offers', 'Poor customer service'], 'Advocacy': ['No referral incentives', 'Limited sharing options'], 'Departure': ['Difficult closure process', 'Lack of feedback channels'] } # Create journey map DataFrame journey_data = [] for stage in stages: journey_data.append({ 'Stage': stage, 'Touchpoints': ', '.join(touchpoints[stage]), 'Emotion': emotions[stage], 'Pain Points': ', '.join(pain_points[stage]), 'Opportunities': f'Improve {stage.lower()} experience' }) journey_df = pd.DataFrame(journey_data) print("Customer Journey Map:") print(journey_df.to_string(index=False)) # ---------------------------------------------------------------- # PART B: EMOTIONAL JOURNEY VISUALISATION # ---------------------------------------------------------------- print("\n" + "-"*60) print("PART B: Emotional Journey Visualisation") print("-"*60) # Plot emotional journey fig, ax = plt.subplots(figsize=(12, 6)) # Create color map for emotions colors = ['red' if e < 0 else 'green' if e > 0 else 'gray' for e in emotions.values()] bars = ax.bar(emotions.keys(), emotions.values(), color=colors, alpha=0.7) ax.axhline(y=0, color='black', linestyle='-', alpha=0.3) ax.set_ylabel('Emotional Score') ax.set_title('Customer Emotional Journey') ax.grid(True, alpha=0.3) # Add value labels on bars for bar, value in zip(bars, emotions.values()): ax.text(bar.get_x() + bar.get_width()/2, value + (0.1 if value >= 0 else -0.3), str(value), ha='center', va='bottom' if value >= 0 else 'top', fontweight='bold') plt.tight_layout() plt.savefig('emotional_journey.png', dpi=300, bbox_inches='tight') plt.show() print("Emotional journey visualisation saved as 'emotional_journey.png'") # ---------------------------------------------------------------- # PART C: CX METRICS DASHBOARD # ---------------------------------------------------------------- print("\n" + "-"*60) print("PART C: CX Metrics Dashboard") print("-"*60) # Define CX metrics cx_metrics = { 'NPS': {'Value': 45, 'Target': 55, 'Status': 'On Track'}, 'CSAT': {'Value': 82, 'Target': 85, 'Status': 'On Track'}, 'CES': {'Value': 2.3, 'Target': 2.0, 'Status': 'Needs Improvement'}, 'Churn Rate': {'Value': 8, 'Target': 5, 'Status': 'Needs Improvement'}, 'CLV': {'Value': 2500, 'Target': 3000, 'Status': 'On Track'}, 'FCR': {'Value': 78, 'Target': 85, 'Status': 'On Track'} } # Create DataFrame cx_df = pd.DataFrame(cx_metrics).T print("CX Metrics Dashboard:") print(cx_df.to_string()) # ---------------------------------------------------------------- # PART D: NPS DISTRIBUTION # ---------------------------------------------------------------- print("\n" + "-"*60) print("PART D: NPS Distribution") print("-"*60) # Simulate NPS survey responses np.random.seed(42) n_responses = 1000 responses = np.random.choice([-1, 0, 1], n_responses, p=[0.2, 0.3, 0.5]) # 0-6 = Detractors, 7-8 = Passives, 9-10 = Promoters # Simplified: -1 = Detractor, 0 = Passive, 1 = Promoter detractors = sum(responses == -1) passives = sum(responses == 0) promoters = sum(responses == 1) nps = (promoters - detractors) / n_responses * 100 print(f"NPS Results:") print(f" Promoters: {promoters} ({promoters/n_responses*100:.1f}%)") print(f" Passives: {passives} ({passives/n_responses*100:.1f}%)") print(f" Detractors: {detractors} ({detractors/n_responses*100:.1f}%)") print(f" NPS: {nps:.1f}") # Visualise NPS distribution fig, ax = plt.subplots(figsize=(10, 6)) categories = ['Detractors', 'Passives', 'Promoters'] counts = [detractors, passives, promoters] colors = ['red', 'gray', 'green'] bars = ax.bar(categories, counts, color=colors, alpha=0.7) ax.set_ylabel('Number of Responses') ax.set_title(f'NPS Distribution (NPS = {nps:.1f})') for bar, count in zip(bars, counts): ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 10, str(count), ha='center', va='bottom', fontweight='bold') ax.axhline(y=n_responses/3, color='black', linestyle='--', alpha=0.3, label='Average') ax.legend() ax.grid(True, alpha=0.3) plt.tight_layout() plt.savefig('nps_distribution.png', dpi=300, bbox_inches='tight') plt.show() print("NPS distribution visualisation saved as 'nps_distribution.png'") # ---------------------------------------------------------------- # PART E: CUSTOMER PERSONA TEMPLATE # ---------------------------------------------------------------- print("\n" + "-"*60) print("PART E: Customer Persona Template") print("-"*60) persona_template = """ --- CUSTOMER PERSONA --- NAME: ________________________________ DEMOGRAPHICS: - Age: _______________ - Occupation: _______________ - Location: _______________ - Income: _______________ BEHAVIOUR: - Banking Habits: _______________ - Digital Literacy: _______________ - Financial Goals: _______________ PAIN POINTS: 1. ________________________________ 2. ________________________________ 3. ________________________________ GOALS AND NEEDS: 1. ________________________________ 2. ________________________________ 3. ________________________________ PREFERENCES: - Communication Channels: _______________ - Banking Channels: _______________ - Product Interests: _______________ JOURNEY: - Awareness: _______________ - Consideration: _______________ - Acquisition: _______________ - Usage: _______________ - Retention: _______________ """ print("Customer Persona Template:") print(persona_template) # Example persona example_persona = """ --- EXAMPLE PERSONA --- NAME: Sarah Chen DEMOGRAPHICS: - Age: 28 - Occupation: Marketing Manager - Location: San Francisco - Income: $85,000 BEHAVIOUR: - Banking Habits: Mobile-first, uses banking app daily - Digital Literacy: High, tech-savvy - Financial Goals: Save for a house, invest for retirement PAIN POINTS: 1. High fees on traditional accounts 2. Complex and confusing products 3. Slow response times for customer service GOALS AND NEEDS: 1. Simple, transparent banking 2. Low fees and competitive rates 3. Easy to use mobile app 4. Financial guidance and insights PREFERENCES: - Communication Channels: Push notifications, email - Banking Channels: Mobile app, online banking - Product Interests: Savings accounts, investment options, budgeting tools JOURNEY: - Awareness: Heard about bank through social media - Consideration: Compared with other digital banks - Acquisition: Opened account online in 10 minutes - Usage: Uses app for daily transactions and savings - Retention: Appreciates personalised offers and insights """ print("\nExample Persona:") print(example_persona) # ---------------------------------------------------------------- # PART F: CX IMPROVEMENT PRIORITIES # ---------------------------------------------------------------- print("\n" + "-"*60) print("PART F: CX Improvement Priorities") print("-"*60) cx_priorities = pd.DataFrame({ 'Priority': ['High', 'High', 'Medium', 'Medium', 'Low'], 'Area': [ 'Digital Onboarding', 'Mobile App Performance', 'Personalisation', 'Customer Service Response Time', 'Branch Experience' ], 'Impact (1-10)': [9, 8, 7, 7, 5], 'Effort (1-10)': [6, 4, 7, 5, 8], 'Action': [ 'Simplify KYC, reduce time to under 5 minutes', 'Optimise app performance, reduce crash rate', 'Implement ML for personalised offers', 'Implement AI chatbot for 24/7 support', 'Integrate digital and branch experiences' ] }) print("CX Improvement Priorities:") print(cx_priorities.to_string(index=False)) # ---------------------------------------------------------------- # PART G: SUMMARY AND RECOMMENDATIONS # ---------------------------------------------------------------- print("\n" + "="*70) print("PART G: Summary and Recommendations") print("="*70) print(""" Customer Experience – Key Takeaways: 1. CX is a critical competitive differentiator in digital banking. 2. Journey mapping helps identify pain points and opportunities. 3. Design thinking provides a framework for improving CX. 4. Personalisation enhances customer engagement and loyalty. 5. Key metrics: NPS, CSAT, CES, Churn Rate, CLV. 6. Customer personas help design targeted experiences. 7. Continuous improvement is essential for CX excellence. Recommendations: - Map your customer journey and identify pain points. - Create detailed customer personas. - Implement personalisation capabilities. - Measure CX metrics regularly and act on insights. - Invest in design thinking capabilities. - Continuously gather and act on customer feedback. """) print("="*70) print("END OF LESSON 3 – MODULE 1") print("="*70)
SECTION 8: SUMMARY FOR THE DATA PRACTITIONER
-
Customer experience (CX) is a critical competitive differentiator in digital banking.
-
Customer journey mapping helps identify pain points and opportunities across touchpoints.
-
Design thinking provides a human-centred framework for improving CX.
-
Personalisation enhances customer engagement and loyalty.
-
Key metrics include NPS, CSAT, CES, Churn Rate, and CLV.
-
Customer personas help design targeted experiences.
-
Continuous improvement is essential for CX excellence.
SECTION 9: RECOMMENDED NEXT STEPS
-
Map your organisation’s customer journey.
-
Create detailed customer personas.
-
Implement personalisation capabilities.
-
Measure CX metrics regularly.
-
Invest in design thinking capabilities.
-
Prepare for Lesson 4: Digital Channels and Omnichannel Banking.
[END OF LESSON 3 – MODULE 1]