PROJECT 31Intermediate
Python to Power BI
Business scenario
Churn scores are produced in a Python notebook and pasted into Excel for the BI team.
Problem statement
Create a reproducible Python step that produces a clean churn-risk table and connect it to a Power BI report that refreshes without manual work.
Learning objectives
- Write a robust Python transformation
- Choose an integration method (file, database, Power BI Python source)
- Document refresh
Instructions
Python computes per-subscriber features and a simple risk score (e.g. logistic regression). Output to a database table or Parquet/CSV in a shared location. Power BI reads it; explain gateway needs if refreshed in the Service.
Tasks
- Python script with logging and error handling.
- Output table spec.
- Power BI model + report.
- Refresh documentation.
Deliverables
- Python script
- PBIX
- README
Evaluation rubric
| Criterion | Weight | Excellent | Proficient | Developing | Insufficient |
|---|---|---|---|---|---|
| Python quality | 25% | Robust, logged, reproducible. | Correct and complete with minor gaps in rigour or presentation. | Partly correct; important steps missing, unvalidated or unclear. | Missing, incorrect, or not supported by the data. |
| Integration design | 25% | Appropriate method, refresh explained. | Correct and complete with minor gaps in rigour or presentation. | Partly correct; important steps missing, unvalidated or unclear. | Missing, incorrect, or not supported by the data. |
| Report | 20% | Correct and clear. | Correct and complete with minor gaps in rigour or presentation. | Partly correct; important steps missing, unvalidated or unclear. | Missing, incorrect, or not supported by the data. |
| Documentation | 15% | Complete. | Correct and complete with minor gaps in rigour or presentation. | Partly correct; important steps missing, unvalidated or unclear. | Missing, incorrect, or not supported by the data. |
| Presentation | 15% | Concise, well-labelled outputs a manager can act on without explanation. | Correct and complete with minor gaps in rigour or presentation. | Partly correct; important steps missing, unvalidated or unclear. | Missing, incorrect, or not supported by the data. |