Skip to content

ashgithub0208/Credit_Card_Financial_Dashboard

Repository files navigation

💳 Credit Card Financial Dashboard | Power BI + PostgreSQL

An end-to-end BI project that transforms raw credit card and customer transaction data into an interactive Power BI dashboard, revealing weekly revenue trends, customer demographics, and card performance across a full fiscal year (2023).

The pipeline covers the complete analytics workflow: PostgreSQL (data warehousing) → SQL (ETL/joins) → Power BI (DAX + visualization).


📌 Project Overview

Credit card issuers need a single view of how revenue, transaction activity, and delinquency evolve week over week, and how they vary across customer segments. This project consolidates two raw datasets—card-level transactions and customer demographics—into a PostgreSQL database, models the relationship in Power BI, and builds a set of DAX measures to power a weekly financial performance dashboard.

Business questions answered:

  • How is weekly revenue trending, and what changed week-over-week?
  • Which card categories, states, and expenditure types drive the most transaction volume?
  • How do age, income, and gender segments differ in revenue contribution and credit utilization?
  • What is the customer activation rate within 30 days, and what is the delinquency rate?

Transaction Report

Credit Card Transaction Report

Customer Report

Credit Card Customer Report


🗂️ Dataset

Two related tables, joined on Client_Num, covering 10,293 unique customers across 53 weeks of 2023 (including a supplementary Week-53 data load).

Table Description Key Fields
cc_detail Weekly card & transaction activity Card_Category, Credit_Limit, Total_Revolving_Bal, Total_Trans_Amt, Total_Trans_Ct, Avg_Utilization_Ratio, Interest_Earned, Delinquent_Acc
cust_detail Customer demographics & profile Customer_Age, Gender, Income, Education_Level, Marital_Status, State, Car/House Owner, Cust_Satisfaction_Score

Source files:

  • credit_card.csv / cc_add.csv (Week-53 top-up)
  • customer.csv / cust_add.csv (Week-53 top-up)

🏗️ Architecture / Data Flow

CSV files (raw exports)
      │
      ▼
PostgreSQL  (ccdb database)
  ├─ CREATE TABLE cc_detail
  ├─ CREATE TABLE cust_detail
  └─ COPY ... FROM CSV  (bulk load, including Week-53 incremental load)
      │
      ▼
Power BI  (PostgreSQL connector)
  ├─ Data modeling (relationship on Client_Num)
  ├─ DAX calculated columns & measures
  └─ Interactive report pages

The full SQL used to provision the database, create both tables, and load all four CSVs (including the mid-project Week-53 incremental refresh) is in SQL Query - Financial Dashboard Data.sql.


🧮 DAX Measures

A few of the key calculated columns and measures built for this report:

AgeGroup = SWITCH(
    TRUE(),
    'cust_detail'[customer_age] < 30, "20-30",
    'cust_detail'[customer_age] >= 30 && 'cust_detail'[customer_age] < 40, "30-40",
    'cust_detail'[customer_age] >= 40 && 'cust_detail'[customer_age] < 50, "40-50",
    'cust_detail'[customer_age] >= 50 && 'cust_detail'[customer_age] < 60, "50-60",
    'cust_detail'[customer_age] >= 60, "60+",
    "unknown"
)

IncomeGroup = SWITCH(
    TRUE(),
    'cust_detail'[income] < 35000, "Low",
    'cust_detail'[income] >= 35000 && 'cust_detail'[income] < 70000, "Med",
    'cust_detail'[income] >= 70000, "High",
    "unknown"
)

Revenue = 'cc_detail'[annual_fees] + 'cc_detail'[total_trans_amt] + 'cc_detail'[interest_earned]

Current_week_Revenue = CALCULATE(
    SUM('cc_detail'[Revenue]),
    FILTER(ALL('cc_detail'), 'cc_detail'[week_num2] = MAX('cc_detail'[week_num2]))
)

Previous_week_Revenue = CALCULATE(
    SUM('cc_detail'[Revenue]),
    FILTER(ALL('cc_detail'), 'cc_detail'[week_num2] = MAX('cc_detail'[week_num2]) - 1)
)

Current_week_Revenue and Previous_week_Revenue power the week-over-week (WoW) revenue growth KPI on the dashboard.


📊 Key Insights (Full Year 2023, as of Week 53 — Dec 31)

Metric Value
Overall Revenue $56.5M
Total Interest Earned $8.0M
Total Transaction Amount $45.5M
Revenue by Gender Male $30.9M · Female $25.6M
Top Card Categories Blue & Silver ≈ 97% of all cards issued
Top 3 States by Revenue TX, NY, CA (≈ 38% combined)
Customer Activation Rate (30-day) 57.5%
Overall Delinquency Rate 6.1%
Avg. Credit Utilization Ratio 27.5%
Most Common Transaction Method Swipe (70%), Chip (24%), Online (6%)
Top Expense Category Bills (29%), followed by Entertainment (20%) & Fuel (17%)
Week-53 WoW Revenue Change +28.8%

📈 Dashboard Highlights

The Power BI report includes:

  • Weekly financial summary — revenue, transaction amount/count, and WoW % change trends
  • Customer segmentation — breakdowns by age group, income group, gender, education, and marital status
  • Card performance — revenue and utilization by card category (Blue/Silver/Gold/Platinum)
  • Geographic view — revenue and transaction volume by state
  • Risk indicators — activation rate and delinquent account rate
  • Drill-through and slicer-based filtering by quarter, card category, and expenditure type

🛠️ Tech Stack

  • Database: PostgreSQL
  • ETL: SQL (CREATE TABLE, COPY ... CSV)
  • BI / Visualization: Power BI Desktop, DAX
  • Data Source Format: CSV

🚀 How to Reproduce

  1. Set up PostgreSQL:
    CREATE DATABASE ccdb;
  2. Create the tables and load the data using the provided script: SQL Query - Financial Dashboard Data.sql
    • Update the file paths in each COPY statement to point to your local CSV files.
    • If you hit a date/time field value out of range error, run SET datestyle TO 'ISO, DMY'; before the COPY commands.
  3. Connect Power BI to PostgreSQL:
    • Open Credit_Card_Financial_Dashboard.pbix
    • Go to Home → Transform Data → Data Source Settings and point the PostgreSQL connector to your local ccdb database.
  4. Refresh the model to load cc_detail and cust_detail, then explore the report pages.

📁 Repository Structure

├── Credit_Card_Financial_Dashboard.pbix         # Power BI report
├── SQL Query - Financial Dashboard Data.sql      # DB setup + ETL script
├── credit_card.csv
├── cc_add.csv                                    # Week-53 incremental load
├── customer.csv
├── cust_add.csv                                  # Week-53 incremental load
├── dashboard-transaction-report (1).png
├── dashboard-customer-report (1).png
└── README.md

👤 Author

Ashmit Srivastava 📧 ashmitsrivastava0208@gmail.com 🔗 LinkedIn · GitHub

About

Interactive Power BI dashboard analyzing credit card revenue, transactions, and customer demographics using PostgreSQL and DAX

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors