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?

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
text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    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
text
┌─────────────────────────────────────────────────────────────────────────────┐
│                         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

python
# ===================================================================
# 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

  1. Map your organisation’s customer journey.

  2. Create detailed customer personas.

  3. Implement personalisation capabilities.

  4. Measure CX metrics regularly.

  5. Invest in design thinking capabilities.

  6. Prepare for Lesson 4: Digital Channels and Omnichannel Banking.


[END OF LESSON 3 – MODULE 1]