SECTION 1: LEARNING OBJECTIVES

By the end of this lesson, you will be able to:

  • Define customer journey mapping and its role in digital banking.

  • Identify the key stages of the banking customer journey.

  • Map the customer journey across touchpoints and channels.

  • Identify pain points and opportunities for improvement.

  • Apply design thinking to improve customer experience.

  • Implement journey analytics to measure and optimise the journey.

  • Design personalised customer experiences using data and AI.

  • Develop a customer journey strategy for a bank.


SECTION 2: WHAT IS CUSTOMER JOURNEY MAPPING?

2.1 Definition and Importance

Definition: A customer journey map is a visual representation of the customer’s experience with a bank across all touchpoints and channels, from initial awareness to post-service.

Why Journey Mapping Matters:

 
 
Benefit Description
Customer Understanding Gain deep insight into customer needs and behaviours.
Pain Point Identification Identify friction points and frustrations.
Opportunity Discovery Uncover areas for innovation and improvement.
Cross-Functional Alignment Align teams around the customer experience.
Measurement Establish baseline for CX improvement.
2.2 Key Components of a Journey Map
text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    CUSTOMER JOURNEY MAP COMPONENTS                        │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    CUSTOMER PERSONA                                 │   │
│  │  (Who is the customer?)                                             │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    JOURNEY STAGES                                   │   │
│  │  (Awareness → Consideration → Acquisition → Onboarding →            │   │
│  │   Usage → Retention → Advocacy → Departure)                         │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    TOUCHPOINTS                                      │   │
│  │  (Website, mobile app, branch, call centre, etc.)                  │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    CHANNELS                                         │   │
│  │  (Digital, physical, human, self-service)                          │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    ACTIONS & THOUGHTS                               │   │
│  │  (What does the customer do and think?)                            │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    EMOTIONAL CURVE                                  │   │
│  │  (Positive and negative emotions throughout the journey)           │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    PAIN POINTS & OPPORTUNITIES                      │   │
│  │  (Where are the problems and what can we improve?)                 │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

SECTION 3: THE BANKING CUSTOMER JOURNEY

3.1 Journey Stages
 
 
Stage Description Key Activities
1. Awareness Customer becomes aware of the bank. Marketing, advertising, word-of-mouth.
2. Consideration Customer researches and compares. Website visits, reviews, comparisons.
3. Acquisition Customer opens an account or buys a product. Application, KYC, approval.
4. Onboarding Customer gets set up with the bank. Account activation, card issuance, app setup.
5. Usage Customer uses banking services. Transactions, payments, transfers.
6. Retention Customer stays and grows relationship. Loyalty programs, cross-sell, support.
7. Advocacy Customer recommends the bank. Referrals, reviews, social sharing.
8. Departure Customer leaves the bank. Account closure, feedback.
3.2 Touchpoints and Channels
 
 
Stage Key Touchpoints Channels
Awareness Ads, social media, articles, referrals. Social, search, email.
Consideration Website, reviews, comparisons, branch. Web, mobile, in-person.
Acquisition Application form, KYC, verification. Mobile, web, branch.
Onboarding Welcome email, app download, first deposit. Email, mobile, web.
Usage Mobile app, online banking, payments. Mobile, web, ATM.
Retention Personalised offers, loyalty, support. App, email, call centre.
Advocacy Referral program, reviews, social sharing. App, social, email.
Departure Account closure, feedback survey. Web, call centre.
3.3 Emotional Journey
text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    EMOTIONAL JOURNEY                                      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Positive                                                                    │
│     ^                                                                       │
│     |                                                                       │
│     |    Awareness      Consideration    Acquisition    Onboarding         │
│     |        |               |               |              |               │
│     |        |               |               |              |               │
│     |        *               *               *              *               │
│     |                                                           *           │
│     |                                                            *          │
│     |                     *                           *           *          │
│     |                     |                           |            \        │
│     |                     |                           |             \       │
│     |                     *                           *              *      │
│     |        *             *             *             *             *      │
│     |        |             |             |             |             |      │
│     |        |             |             |             |             |      │
│     |        |             |             |             |             |      │
│     |        |             |             |             |             |      │
│     |        |             |             |             |             |      │
│     +--------*-------------*-------------*-------------*-------------*------│
│     |        |             |             |             |             |      │
│  Negative   Awareness  Consideration  Acquisition  Onboarding     Usage     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

SECTION 4: DESIGN THINKING FOR BANKING

4.1 The Design Thinking Process
 
 
Phase Description Banking Example
Empathise Understand customer needs and pain points. Customer interviews, journey mapping.
Define Define the problem statement. “Account opening is too slow and complex.”
Ideate Brainstorm solutions. “What if we could open an account in 5 minutes?”
Prototype Build a quick prototype. Wireframe of simplified account opening flow.
Test Test with real customers. User testing, feedback collection.
4.2 Applying Design Thinking to Banking
 
 
Problem Solution Prototype Test
Slow Account Opening Digital KYC, automated verification. Simplified application flow. Pilot with 100 customers.
Complex Product Selection Personalised recommendations. AI-powered product selector. A/B testing with 500 users.
Poor Mobile Experience Mobile-first redesign. Prototype app with improved UX. User testing sessions.
Confusing Statements Simplified visual statements. Interactive statement prototype. Customer feedback survey.

SECTION 5: JOURNEY ANALYTICS

5.1 Key Journey Metrics
 
 
Metric Description Measurement
Conversion Rate % of users completing desired action. Funnel analysis.
Drop-off Rate % of users leaving the journey. Funnel analysis.
Time to Complete Time taken to complete a journey. Time tracking.
Effort Score How easy is the journey? Survey, analytics.
Satisfaction Score How satisfied is the customer? Survey, feedback.
NPS (Net Promoter Score) Likelihood to recommend. Survey.
Churn Rate % of customers leaving. Customer data.
Customer Lifetime Value Total value of customer relationship. Financial data.
5.2 Funnel Analysis
text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    FUNNEL ANALYSIS – ACCOUNT OPENING                      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  100,000                     ┌─────────────────────────────────────────┐   │
│  Website Visits              │                                         │   │
│       │                      │                                         │   │
│       ▼                      │                                         │   │
│  75,000                      │              ●                          │   │
│  Starts Application          │              │                          │   │
│       │                      │         ■    │                          │   │
│       ▼                      │         │    │                          │   │
│  50,000                      │    ●    │    │                          │   │
│  Completes Application       │    │    │    │                          │   │
│       │                      │    │    │    │                          │   │
│       ▼                      │    │    │    │                          │   │
│  35,000                      │    │    │    │                          │   │
│  Submits for Approval        │    │    │    │                          │   │
│       │                      │    │    │    │                          │   │
│       ▼                      │    │    │    │                          │   │
│  30,000                      │    │    │    │                          │   │
│  Approved                    │    │    │    │                          │   │
│       │                      │    │    │    │                          │   │
│       ▼                      │    │    │    │                          │   │
│  25,000                      │    │    │    │                          │   │
│  Account Activated           │    │    │    │                          │   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

SECTION 6: IMPLEMENTATION IN PYTHON – JOURNEY ANALYTICS

python
# ===================================================================
# MODULE 2, LESSON 2: CUSTOMER JOURNEY MAPPING AND EXPERIENCE DESIGN
# ===================================================================

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime, timedelta
import warnings
warnings.filterwarnings('ignore')

print("="*70)
print("CUSTOMER JOURNEY MAPPING AND EXPERIENCE DESIGN")
print("="*70)

# ----------------------------------------------------------------
# PART A: JOURNEY MAP TEMPLATE
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART A: Customer Journey Map Template")
print("-"*60)

journey_stages = ['Awareness', 'Consideration', 'Acquisition', 'Onboarding', 
                  'Usage', 'Retention', 'Advocacy', 'Departure']

# Define touchpoints, emotions, pain points, and opportunities
touchpoints = {
    'Awareness': 'Social Media, Ads, Word of Mouth',
    'Consideration': 'Website, Reviews, Comparisons',
    'Acquisition': 'Online Application, KYC, Verification',
    'Onboarding': 'Welcome Email, App Download, Card Activation',
    'Usage': 'Mobile App, Online Banking, Payments',
    'Retention': 'Personalised Offers, Customer Service, Loyalty',
    'Advocacy': 'Referral Program, Reviews, Social Sharing',
    'Departure': 'Account Closure, Feedback Survey'
}

emotions = {
    'Awareness': 1,
    'Consideration': 0,
    'Acquisition': -1,
    'Onboarding': 0,
    'Usage': 2,
    'Retention': 1,
    'Advocacy': 2,
    'Departure': -2
}

pain_points = {
    'Awareness': 'Not finding relevant information',
    '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',
    'Departure': 'Difficult closure process'
}

opportunities = {
    'Awareness': 'Targeted marketing campaigns',
    'Consideration': 'Personalised product recommendations',
    'Acquisition': 'Simplified application, instant approval',
    'Onboarding': 'Guided setup, proactive education',
    'Usage': 'Real-time insights, personalised notifications',
    'Retention': 'AI-powered personalisation, loyalty rewards',
    'Advocacy': 'Referral program, customer appreciation',
    'Departure': 'Win-back offers, feedback collection'
}

# Create journey map DataFrame
journey_df = pd.DataFrame({
    'Stage': journey_stages,
    'Touchpoints': [touchpoints[s] for s in journey_stages],
    'Emotion': [emotions[s] for s in journey_stages],
    'Pain Points': [pain_points[s] for s in journey_stages],
    'Opportunities': [opportunities[s] for s in journey_stages]
})

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)

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: FUNNEL ANALYSIS
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART C: Funnel Analysis")
print("-"*60)

# Define funnel stages and counts
funnel_stages = ['Website Visits', 'Started Application', 'Completed Application', 
                 'Submitted for Approval', 'Approved', 'Account Activated']
funnel_counts = [100000, 75000, 50000, 35000, 30000, 25000]
conversion_rates = [100, 75, 50, 35, 30, 25]

funnel_df = pd.DataFrame({
    'Stage': funnel_stages,
    'Count': funnel_counts,
    'Conversion Rate (%)': conversion_rates
})

print("Account Opening Funnel:")
print(funnel_df.to_string(index=False))

# Visualise funnel
fig, ax = plt.subplots(figsize=(12, 6))
colors = ['#2ecc71', '#27ae60', '#f1c40f', '#e67e22', '#e74c3c', '#c0392b']
bars = ax.barh(funnel_stages, funnel_counts, color=colors, alpha=0.7)

# Add conversion rate labels
for bar, rate in zip(bars, conversion_rates):
    ax.text(bar.get_width() + 5000, bar.get_y() + bar.get_height()/2, 
            f'{rate}%', ha='left', va='center', fontweight='bold')

ax.set_xlabel('Number of Customers')
ax.set_title('Account Opening Funnel')
ax.grid(True, alpha=0.3, axis='x')

plt.tight_layout()
plt.savefig('funnel_analysis.png', dpi=300, bbox_inches='tight')
plt.show()
print("Funnel analysis visualisation saved as 'funnel_analysis.png'")

# ----------------------------------------------------------------
# PART D: JOURNEY METRICS DASHBOARD
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART D: Journey Metrics Dashboard")
print("-"*60)

journey_metrics = pd.DataFrame({
    'Metric': [
        'Time to Complete Account Opening',
        'Application Drop-off Rate',
        'Onboarding Completion Rate',
        'First Transaction Time',
        'App Adoption Rate',
        'Digital Engagement Score',
        'Journey NPS',
        'Churn Rate (First 30 Days)'
    ],
    'Current Value': [
        '12.5 min',
        '35%',
        '82%',
        '2.3 days',
        '78%',
        '7.2/10',
        '62',
        '8%'
    ],
    'Target Value': [
        '5 min',
        '< 20%',
        '> 90%',
        '< 1 day',
        '> 85%',
        '> 8.5/10',
        '> 70',
        '< 5%'
    ],
    'Status': ['🔴', '🔴', '🟡', '🟡', '🟡', '🟡', '🔴', '🔴']
})

print("Journey Metrics Dashboard:")
print(journey_metrics.to_string(index=False))

# ----------------------------------------------------------------
# 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. ________________________________

JOURNEY HIGHLIGHTS:
- Awareness: _______________
- Consideration: _______________
- Acquisition: _______________
- Usage: _______________
- Retention: _______________

PREFERRED CHANNELS:
- Mobile App: _____
- Online Banking: _____
- Branch: _____
- Contact Centre: _____
- Chatbot: _____
"""

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

JOURNEY HIGHLIGHTS:
- Awareness: Social media ad
- 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

PREFERRED CHANNELS:
- Mobile App: 5/5
- Online Banking: 4/5
- Branch: 1/5
- Contact Centre: 2/5
- Chatbot: 4/5
"""

print("\nExample Persona:")
print(example_persona)

# ----------------------------------------------------------------
# PART F: EXPERIENCE IMPROVEMENT PRIORITIES
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART F: Experience Improvement Priorities")
print("-"*60)

priorities = pd.DataFrame({
    'Priority': ['High', 'High', 'Medium', 'Medium', 'Low'],
    'Area': [
        'Onboarding Experience',
        'Mobile App Performance',
        'Personalisation',
        'Customer Support 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("Experience Improvement Priorities:")
print(priorities.to_string(index=False))

# ----------------------------------------------------------------
# PART G: SUMMARY AND RECOMMENDATIONS
# ----------------------------------------------------------------

print("\n" + "="*70)
print("PART G: Summary and Recommendations")
print("="*70)

print("""
Customer Journey Mapping – Key Takeaways:

1. Customer journey mapping visualises the end-to-end customer experience.
2. Key stages: Awareness → Consideration → Acquisition → Onboarding → Usage → Retention → Advocacy → Departure.
3. Touchpoints and channels vary across stages.
4. Emotional journey visualises customer feelings at each stage.
5. Funnel analysis identifies drop-off points and conversion opportunities.
6. Design thinking provides a framework for improving the journey.
7. Journey metrics (conversion, drop-off, satisfaction, NPS) measure performance.

Recommendations:
  - Map your customer journey end-to-end.
  - Identify and address pain points.
  - Use design thinking to prototype solutions.
  - Measure and monitor journey metrics.
  - Personalise the journey using data and AI.
  - Continuously gather and act on customer feedback.
""")

print("="*70)
print("END OF LESSON 2 – MODULE 2")
print("="*70)

SECTION 7: SUMMARY FOR THE DATA PRACTITIONER

  • Customer journey mapping visualises the end-to-end customer experience.

  • Key stages include Awareness, Consideration, Acquisition, Onboarding, Usage, Retention, Advocacy, and Departure.

  • Touchpoints and channels vary across each stage of the journey.

  • Emotional journey mapping helps identify highs and lows in customer experience.

  • Funnel analysis identifies drop-off points and conversion opportunities.

  • Design thinking provides a human-centred framework for improving the journey.

  • Journey metrics (conversion, drop-off, satisfaction, NPS) measure performance.


SECTION 8: RECOMMENDED NEXT STEPS

  1. Map your organisation’s customer journey.

  2. Identify pain points and areas for improvement.

  3. Create customer personas for your target segments.

  4. Implement journey analytics to measure performance.

  5. Use design thinking to prototype solutions.

  6. Prepare for Lesson 3: Personalisation in Digital Banking.