This project simulates a real-world DataOps pipeline for processing daily loan collection call data and generating agent performance summaries.
Build a simplified end-to-end pipeline that:
- Ingests raw daily CSV dumps (call logs, agent roster, login summary)
- Validates and merges the data
- Computes metrics like connect rate, presence, and call durations
- Outputs a CSV report and Slack-style summary message
- Optional: UI to upload files and interact with the report
dpdzero_assignment/
├── data/ # Input CSV files
├── output/ # Final report gets saved here
├── src/ # Modular pipeline scripts
│ ├── ingest.py
│ ├── validate.py
│ ├── merge.py
│ ├── features.py
│ ├── report.py
│ └── logger.py
├── main.py # CLI entry point
├── streamlit_app.py # Streamlit UI app
├── requirements.txt # Python dependencies
├── .gitignore
└── README.md
- Install Dependencies:
pip install -r requirements.txt- Run the pipeline with default files and date:
python main.py --date 2025-04-28- Optional CLI arguments:
--call_logs Path to call_logs.csv
--agent_roster Path to agent_roster.csv
--disposition Path to disposition_summary.csv
--date Date to generate summary for (YYYY-MM-DD)- StreamLit UI:
streamlit run streamlit_app.pyUpload your files, pick a date, and generate summary.
- 📞 Total Calls Made
- 🔁 Unique Loans Contacted
- ✅ Connect Rate (% completed calls)
- ⏱️ Average Call Duration (in minutes)
- 👤 Presence (based on login time)
- output/agent_performance_summary.csv
- Slack-style summary printed to terminal or UI:
📊 Agent Summary for 2025-04-28
🏆 Top Performer: Ravi Sharma (98% connect rate)
👥 Total Active Agents: 45
⏱️ Average Duration: 6.5 min
✅ Modular code with reusable pipeline functions ✅ CLI and Web UI options ✅ Logging with timestamps ✅ Upload, run, and download from browser ✅ Graceful handling of missing data
This project was developed as part of a hiring assignment by DPDzero.
- Python
- Pandas
- Streamlit
- argparse, logging