SECTION 1: LEARNING OBJECTIVES

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

  • Understand the scope and objectives of the capstone project.

  • Define the business problem – a mid-sized bank’s need to modernise its lending operations.

  • Identify the key stakeholders and their requirements.

  • Understand the project phases – from data ingestion to deployment and change management.

  • Define success criteria and KPIs for the project.

  • Develop a project plan with timelines, milestones, and deliverables.

  • Access and understand the datasets that will be used.

  • Prepare for the hands-on work in Lesson 2.


SECTION 2: THE CAPSTONE CASE STUDY – ATLANTIC BANK

2.1 Background

Atlantic Bank is a mid-sized regional bank with $50 billion in assets, serving retail and commercial customers across 12 states. The bank has been operating for 50 years and has a traditional lending model:

  • Manual underwriting for most loan applications.

  • Legacy systems with data silos (core banking, CRM, loan origination).

  • Limited analytics capabilities; decisions are based on simple rules and expert judgment.

  • Growing competition from fintechs offering faster, digital-first lending experiences.

  • Regulatory pressure to improve risk management and transparency.

2.2 The Business Problem

Challenge: Atlantic Bank’s loan origination process is slow, inconsistent, and expensive. The bank’s manual underwriting process takes an average of 7-10 days for personal loans and 3-4 weeks for commercial loans. This is significantly slower than fintech competitors who approve loans in minutes.

Opportunity: By implementing a data-driven, AI-powered lending platform, the bank can:

  • Reduce approval time from days to hours (or minutes).

  • Improve risk assessment with more accurate default predictions.

  • Reduce operational costs through automation.

  • Increase loan volume and customer satisfaction.

  • Stay competitive and attract digital-first customers.

2.3 Project Objectives
 
 
Objective Description Success Metric
1. Modernise Data Infrastructure Build a unified data platform for lending data. Data accessible within 100ms; 99.9% uptime.
2. Develop Predictive Models Build models for default prediction and loan pricing. AUC > 0.80, KS > 0.35, calibration p > 0.05.
3. Automate Underwriting Implement a decision engine for automated approvals. 80% of applications automated.
4. Improve Risk Management Integrate stress testing and scenario analysis. Model validated; stress test results produced.
5. Enhance Customer Experience Provide faster decisions and transparent explanations. Customer NPS > 60, application time < 1 hour.
6. Ensure Compliance Meet SR 11-7, Fair Lending, and GDPR requirements. 100% regulatory compliance.
2.4 Key Stakeholders
 
 
Stakeholder Role Interests
CEO Executive Sponsor Strategic impact, ROI, competitive position.
Head of Retail Banking Business Owner Faster approvals, increased volume, customer satisfaction.
Chief Risk Officer Risk Oversight Model accuracy, regulatory compliance, risk management.
Head of IT Technology Integration, infrastructure, security.
Compliance Officer Regulatory Fair lending, SR 11-7, data privacy.
Loan Officers End Users Usability, decision support, trust in model.
Customers Beneficiaries Faster decisions, fair treatment, transparency.
Regulators External Compliance, transparency, consumer protection.

SECTION 3: PROJECT PHASES AND DELIVERABLES

3.1 Phase Overview
 
 
Phase Duration Focus Key Activities Deliverables
Phase 1: Assessment 4 weeks Understand current state and define requirements. Stakeholder interviews, data audit, technology assessment. Project charter, requirements doc, data inventory.
Phase 2: Data Foundation 8 weeks Build data infrastructure and pipelines. Data ingestion, cleaning, warehousing, governance. Data platform, ETL pipelines, data quality framework.
Phase 3: Model Development 12 weeks Build and validate predictive models. Feature engineering, model training, validation. Models (PD, pricing), model validation reports.
Phase 4: Integration 8 weeks Integrate models with loan origination system. API development, testing, UAT. Decision engine, API, user interface.
Phase 5: Deployment 4 weeks Deploy and monitor models in production. Deployment, monitoring setup, training. Production models, monitoring dashboard.
Phase 6: Change Management 8 weeks Manage organisational change and adoption. Training, communication, stakeholder engagement. Training materials, adoption plan, NPS data.
Phase 7: Optimisation Ongoing Continuous improvement. Monitoring, feedback, retraining. Optimisation reports, model updates.
3.2 Detailed Deliverables
 
 
Deliverable Description Owner
Project Charter Business case, objectives, scope, stakeholders. Project Manager
Data Quality Report Assessment of data sources, quality, and gaps. Data Lead
Data Platform Cloud-based data lake + warehouse. Data Engineering
ETL Pipelines Automated data ingestion and transformation. Data Engineering
Feature Store Centralised repository of features. Data Science
Predictive Models Default prediction, pricing, and risk models. Data Science
Model Validation Reports Independent validation of all models. Validation Team
Decision Engine Automated underwriting system. ML Engineering
API RESTful API for model serving. ML Engineering
Monitoring Dashboard Real-time performance and drift monitoring. MLOps
Training Materials User guides, training videos, documentation. Change Management
Adoption Report Metrics on model usage and customer satisfaction. Change Management

SECTION 4: SUCCESS CRITERIA AND KPIS

4.1 Key Performance Indicators
 
 
Category Metric Target Measurement
Business Loan approval time < 1 hour (80% of loans) System logs
Business Loan volume +20% in Year 1 Origination system
Business Customer NPS > 60 Surveys
Model AUC > 0.80 Validation
Model KS > 0.35 Validation
Model Calibration p-value > 0.05 Validation
Operational Automation rate 80% of applications Decision engine
Operational Cost per loan -30% Financial system
Risk Default rate < 3% Portfolio monitoring
Compliance Validation findings 0 critical findings Audit reports
4.2 Project Success Criteria
 
 
Criteria Description
1. On-time Delivery Project delivered within 12 months.
2. On-budget Within 10% of $5M budget.
3. Model Performance All models meet performance thresholds.
4. Regulatory Approval Models approved by regulators.
5. User Adoption > 80% of loan officers use the system.
6. Customer Satisfaction NPS improvement of 10+ points.
7. ROI 200%+ ROI within 3 years.

SECTION 5: DATA OVERVIEW

5.1 Data Sources
 
 
Source Description Key Tables/Fields
Core Banking System Customer accounts, balances, transactions. Customer, Account, Transaction.
Loan Origination System Loan applications, approvals, rejections. Loan, Applicant, Collateral.
Credit Bureau External credit data. Credit Score, History, Inquiries.
CRM System Customer interactions, complaints. Customer Interaction, Case.
Transaction Data Payment history, spending patterns. Transaction, Payment.
Market Data Interest rates, economic indicators. Rates, Macroeconomic Indicators.
Regulatory Data Compliance and risk reports. Risk Ratings, Compliance Metrics.
5.2 Key Datasets (Simulated)

For the capstone project, you will work with simulated datasets that mimic real banking data:

 
 
Dataset Description Size Key Fields
loan_applications.csv Historical loan applications. 100,000 rows application_id, applicant_age, income, credit_score, dti, loan_amount, loan_term, employment_years, home_owner, marital_status, education, purpose, default (target)
customer_data.csv Customer demographics and behaviour. 50,000 rows customer_id, age, income, credit_score, account_balance, transaction_count, avg_transaction_amount, tenure, churn
transactions.csv Customer transactions over 3 years. 1,000,000 rows transaction_id, customer_id, date, amount, category, merchant, channel
macro_data.csv Quarterly macroeconomic indicators. 40 rows (10 years) date, gdp_growth, unemployment, inflation, interest_rate, consumer_confidence
loan_performance.csv Performance of historical loans. 50,000 rows loan_id, origination_date, maturity_date, current_balance, delinquency_status, default_date (if any)
5.3 Data Dictionary

loan_applications.csv

 
 
Field Type Description Example
application_id INT Unique application identifier 10001
applicant_age INT Age of applicant 42
income FLOAT Annual income ($000s) 65.4
credit_score INT Credit score (300-850) 710
dti FLOAT Debt-to-income ratio (%) 28.5
loan_amount FLOAT Requested loan amount ($000s) 145
loan_term INT Loan term (months) 36
employment_years INT Years of employment 8
home_owner BOOLEAN 1 if owns home, 0 otherwise 1
marital_status INT 0=Single, 1=Married, 2=Other 1
education INT 0=HS, 1=Some College, 2=Bachelors, 3=Post-Grad 2
purpose STRING Loan purpose debt_consolidation
default INT 1 if defaulted, 0 otherwise 0

SECTION 6: IMPLEMENTATION IN PYTHON – PROJECT SETUP

python
# ===================================================================
# MODULE 9, LESSON 1: CAPSTONE PROJECT OVERVIEW
# ===================================================================

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

# Set style
sns.set_style("whitegrid")
np.random.seed(42)

print("="*70)
print("CAPSTONE PROJECT: DIGITAL TRANSFORMATION IN BANKING")
print("="*70)

# ----------------------------------------------------------------
# PART A: PROJECT CHARTER
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART A: Project Charter")
print("-"*60)

project_charter = """
--- PROJECT CHARTER: DIGITAL LENDING TRANSFORMATION ---

1. PROJECT TITLE: Digital Lending Transformation - Project Atlas

2. EXECUTIVE SUMMARY:
   Atlantic Bank seeks to modernise its lending operations by implementing 
   a data-driven, AI-powered underwriting platform. The project will reduce 
   loan approval times from days to hours, improve risk assessment accuracy, 
   reduce operational costs, and enhance customer satisfaction.

3. PROJECT OBJECTIVES:
   - Build a unified data platform for lending analytics.
   - Develop predictive models for default prediction and loan pricing.
   - Implement an automated underwriting decision engine.
   - Ensure regulatory compliance (SR 11-7, Fair Lending, GDPR).
   - Achieve 80% automation of loan applications.

4. SCOPE:
   - In-Scope: Personal and small business loans.
   - Out-of-Scope: Commercial real estate, large corporate loans.

5. SUCCESS CRITERIA:
   - Loan approval time < 1 hour for 80% of applications.
   - Model AUC > 0.80, KS > 0.35.
   - 80% automation rate.
   - 100% regulatory compliance.

6. SPONSOR:
   - Executive Sponsor: CEO
   - Project Sponsor: Head of Retail Banking
   - Project Manager: [Name]

7. TEAM:
   - Data Science Lead: [Name]
   - Data Engineering Lead: [Name]
   - ML Engineering Lead: [Name]
   - Risk & Compliance Lead: [Name]
   - Change Management Lead: [Name]

8. TIMELINE:
   - Assessment: 4 weeks
   - Data Foundation: 8 weeks
   - Model Development: 12 weeks
   - Integration: 8 weeks
   - Deployment: 4 weeks
   - Change Management: 8 weeks
   - Total: 12 months

9. BUDGET:
   - Personnel: $3.5M
   - Infrastructure: $1.0M
   - Data & External: $0.5M
   - Total: $5.0M

10. RISKS:
    - Data quality issues (High)
    - Regulatory rejection (Medium)
    - Talent shortage (Medium)
    - Change resistance (Medium)
"""

print(project_charter)

# ----------------------------------------------------------------
# PART B: STAKEHOLDER ANALYSIS
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART B: Stakeholder Analysis")
print("-"*60)

stakeholders = pd.DataFrame({
    'Stakeholder': ['CEO', 'Head of Retail Banking', 'Chief Risk Officer', 
                   'Head of IT', 'Compliance Officer', 'Loan Officers', 
                   'Customers', 'Regulators'],
    'Role': ['Executive Sponsor', 'Business Owner', 'Risk Oversight', 
             'Technology', 'Compliance', 'End Users', 'Beneficiaries', 'External'],
    'Interest (1-10)': [9, 10, 9, 8, 9, 7, 8, 10],
    'Influence (1-10)': [10, 9, 9, 8, 8, 5, 3, 9],
    'Engagement Strategy': [
        'Monthly updates, strategic alignment',
        'Weekly status, demos, business case',
        'Validation checkpoints, risk reporting',
        'Technical design reviews, integration planning',
        'Regular compliance checkpoints, documentation',
        'Training, user feedback sessions',
        'Communication, transparency, NPS tracking',
        'Quarterly reporting, transparency'
    ]
})

print("Stakeholder Analysis:")
print(stakeholders.to_string(index=False))

# ----------------------------------------------------------------
# PART C: PROJECT TIMELINE
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART C: Project Timeline")
print("-"*60)

# Create a simple Gantt chart
def create_project_gantt():
    """Create a Gantt chart for the project."""
    phases = ['Assessment', 'Data Foundation', 'Model Development', 
              'Integration', 'Deployment', 'Change Management', 'Optimisation']
    start_weeks = [0, 4, 12, 24, 32, 36, 44]
    durations = [4, 8, 12, 8, 4, 8, 999]  # 999 = ongoing
    
    fig, ax = plt.subplots(figsize=(14, 6))
    
    # Create bars
    for i, (phase, start, duration) in enumerate(zip(phases, start_weeks, durations)):
        if duration == 999:
            # Ongoing
            ax.barh(i, 52 - start, left=start, height=0.6, 
                    color='steelblue', edgecolor='black', alpha=0.6, hatch='///')
            ax.text(start + (52 - start)/2, i, f'{phase} (Ongoing)', 
                    ha='center', va='center', fontsize=10, color='white', fontweight='bold')
        else:
            ax.barh(i, duration, left=start, height=0.6, 
                    color='steelblue', edgecolor='black', alpha=0.8)
            ax.text(start + duration/2, i, f'{phase} ({duration} weeks)', 
                    ha='center', va='center', fontsize=10, color='white', fontweight='bold')
    
    ax.set_yticks(range(len(phases)))
    ax.set_yticklabels(phases)
    ax.set_xlabel('Weeks')
    ax.set_title('Project Timeline (12 months)')
    ax.set_xlim(0, 60)
    ax.grid(True, alpha=0.3, axis='x')
    
    # Mark milestones
    milestones = [4, 12, 24, 32, 36, 44]
    milestone_labels = ['Phase 1 Complete', 'Phase 2 Complete', 'Phase 3 Complete', 
                        'Phase 4 Complete', 'Phase 5 Complete', 'Phase 6 Complete']
    for m, label in zip(milestones, milestone_labels):
        ax.axvline(x=m, color='red', linestyle='--', alpha=0.5, linewidth=0.5)
        ax.text(m, -0.5, label, rotation=90, ha='center', va='top', fontsize=8, color='red')
    
    plt.tight_layout()
    plt.savefig('project_gantt.png', dpi=300, bbox_inches='tight')
    plt.show()

create_project_gantt()
print("Project Gantt chart saved as 'project_gantt.png'")

# ----------------------------------------------------------------
# PART D: DATA INVENTORY
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART D: Data Inventory")
print("-"*60)

data_inventory = pd.DataFrame({
    'Dataset': ['loan_applications.csv', 'customer_data.csv', 'transactions.csv', 
                'macro_data.csv', 'loan_performance.csv'],
    'Description': ['Historical loan applications with default labels', 
                    'Customer demographics and behaviour',
                    'Customer transaction history (3 years)',
                    'Quarterly macroeconomic indicators',
                    'Historical loan performance data'],
    'Rows (estimate)': ['100,000', '50,000', '1,000,000', '40', '50,000'],
    'Key Fields': ['application_id, applicant_age, income, credit_score, dti, loan_amount, loan_term, employment_years, home_owner, marital_status, education, purpose, default',
                   'customer_id, age, income, credit_score, account_balance, transaction_count, avg_transaction_amount, tenure, churn',
                   'transaction_id, customer_id, date, amount, category, merchant, channel',
                   'date, gdp_growth, unemployment, inflation, interest_rate, consumer_confidence',
                   'loan_id, origination_date, maturity_date, current_balance, delinquency_status, default_date'],
    'Status': ['Available', 'Available', 'Available', 'Available', 'Available']
})

print("Data Inventory:")
print(data_inventory.to_string(index=False))

# ----------------------------------------------------------------
# PART E: SUCCESS CRITERIA AND KPIS
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART E: Success Criteria and KPIs")
print("-"*60)

success_criteria = pd.DataFrame({
    'Category': ['Business', 'Business', 'Business', 'Model', 'Model', 'Model', 
                 'Operational', 'Operational', 'Risk', 'Compliance'],
    'Metric': ['Loan approval time', 'Loan volume growth', 'Customer NPS', 
               'AUC', 'KS Statistic', 'Calibration p-value',
               'Automation rate', 'Cost per loan', 'Default rate', 'Validation findings'],
    'Target': ['< 1 hour (80%)', '+20% in Year 1', '> 60',
               '> 0.80', '> 0.35', '> 0.05',
               '80%', '-30%', '< 3%', '0 critical findings'],
    'Measurement': ['System logs', 'Origination system', 'Surveys',
                    'Validation', 'Validation', 'Validation',
                    'Decision engine', 'Financial system', 'Portfolio monitoring', 'Audit reports']
})

print("Success Criteria and KPIs:")
print(success_criteria.to_string(index=False))

# ----------------------------------------------------------------
# PART F: SUMMARY AND NEXT STEPS
# ----------------------------------------------------------------

print("\n" + "="*70)
print("PART F: Summary and Next Steps")
print("="*70)

print("""
CAPSTONE PROJECT OVERVIEW – KEY TAKEAWAYS:

1. Case Study: Atlantic Bank – a mid-sized bank modernising its lending operations.
2. Business Problem: Manual, slow, inconsistent loan origination.
3. Objectives: Speed, accuracy, automation, compliance, customer satisfaction.
4. Stakeholders: CEO, business owners, risk, IT, compliance, end users.
5. Timeline: 12 months across 7 phases.
6. Success Criteria: Clear KPIs for business, model, operational, and compliance performance.
7. Data: Simulated datasets covering loan applications, customers, transactions, macro data, and loan performance.

NEXT STEPS (Lesson 2):
- Data ingestion and exploratory analysis.
- Data quality assessment and preprocessing.
- Feature engineering.
- Building initial baseline models.
- Data visualisation and insights.

PREPARATION FOR LESSON 2:
- Review the data dictionary.
- Set up your Python environment (pandas, numpy, matplotlib, seaborn, scikit-learn).
- Download the datasets (provided).
- Familiarise yourself with the project objectives.
""")

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

SECTION 7: SUMMARY FOR THE DATA PRACTITIONER

  • The capstone project is a comprehensive case study of a mid-sized bank’s digital transformation.

  • The business problem is slow, manual lending operations that need modernisation.

  • Objectives include speed, accuracy, automation, compliance, and customer satisfaction.

  • Stakeholders range from the CEO to loan officers and regulators.

  • Success criteria are clear and measurable across business, model, operational, and compliance dimensions.

  • Data is provided in simulated datasets covering the full lending lifecycle.


SECTION 8: RECOMMENDED NEXT STEPS

  1. Review the project charter and understand your role.

  2. Explore the datasets and become familiar with the data structure.

  3. Set up your development environment.

  4. Prepare for Lesson 2: Data Exploration and Preprocessing.


[END OF LESSON 1 – MODULE 9]