This project simulates an end-to-end real-time data pipeline and dashboarding system for a large bank (Bank of America) using synthetic data, Apache Spark, and Delta Live Tables (DLT) on Databricks.
It showcases how to monitor and optimize branch performance, operational costs, digital platform health, and employee efficiency using robust data engineering and analytics workflows.
- Build a synthetic but realistic simulation of banking operations.
- Use Delta Live Tables to create a Bronze → Silver → Gold data pipeline.
- Compute meaningful KPIs (Key Performance Indicators) and KRIs (Key Risk Indicators).
- Visualize insights with an interactive Databricks dashboard.
- Provide a curated data access layer using Genie Data Room.
- Apache Spark (Structured Streaming)
- Delta Lake & Delta Live Tables (DLT)
- Python (pandas, Faker)
- Databricks Notebooks & Dashboard
- Genie Data Room (Databricks SQL / Curated Access)
- Branches – location, region, staff, geo-coordinates
- Customers – demographics, account types, balances
- Transactions – timestamped activity by type & amount
- Digital Platforms – usage and issues across online systems
- Employee Performance – efficiency and feedback metrics
- Operational Costs – expenses tied to branches or platforms
- Synthetic Data Generation – via Python script (
data_generator.py) - Bronze Layer – Ingest raw JSON via Databricks Autoloader
- Silver Layer – Cleaned & typed tables with basic filters
- Gold Layer – Final KPIs and KRIs using business logic
- Genie Room – Curated views and natural-language Q&A for analysts (e.g., Top Performing Branches, High Risk Platforms)
- Dashboards – Databricks visuals powered by Gold + Genie tables
| KPI | Description |
|---|---|
| Profitability Index | Total transaction value - operational costs per branch |
| Profit per Transaction | Profitability index divided by txn count |
| Cost per Transaction | Operational cost per branch / txn count |
| Profit Tier | Classified branches as High, Medium, Low based on profitability |
| Employee Efficiency Score | Aggregate of performance × tasks × feedback per branch |
| KRI | Description |
|---|---|
| Transaction Value StdDev | Standard deviation in transaction amounts (volatility) |
| Overutilization Flag | Triggered if employee efficiency > threshold (5000) |
| Platform Issue Rate | issues_reported / active_users per platform |
| Platform Risk Flag | Triggered if issue rate > 0.03% |
Main metrics and visuals are shown below:
The Genie Room acts as the semantic layer for business users:
-
Exposes cleaned, filtered, and ranked views from Gold Layer
-
Includes business-friendly views like:
-
Enables secure, governed access to final metrics without raw data exposure
-
Built using Databricks SQL & views
boa-dlt-project/
├── data_generator.py # Generates all synthetic data
├── data_schema.md # Field-level schema reference
├── transformations/
│ ├── bronze_layer.py
│ ├── silver_layer_transformations.py
│ ├── gold_kpis.py
├── dashboards/
│ └── screenshots/
├── README.md
-
Clone this repo
-
Run
data_generator.pyto generate JSON -
In Databricks:
- Set up Autoloader paths to
/output/... - Deploy DLT pipelines (Bronze → Silver → Gold)
- Create Genie views on Gold tables
- Attach dashboard to Genie or Gold tables
- Set up Autoloader paths to
Built by Rohith Kukkadapu as a portfolio project simulating real-time banking analytics.
Feel free to fork, star ⭐, or connect on LinkedIn!



