This virtual Experience is held by PwC (PricewaterhouseCoopers) Switzerland. In this virtual experience case, I have been given some tasks to simulate a condition in which I work together in a team to help client solve their problems by using technology. Power BI is used in the experience case to clean, wrangle, and visualize data so that client can better understand their customers and employees. There are 3 assigment topics in this case, i.e.: The Call Centre Trends, The Customer Retention, and the Diversity and Inclusion.
There are 3 Datasets used in this project, i.e.:
Create a dashboard in Power BI for Claire that reflects all relevant Key Performance Indicators (KPIs) and metrics in the dataset.
https://cdn.theforage.com/vinternships/companyassets/4sLyCPgmsy8DA6Dh3/01%20Call-Center-Dataset.xlsx
(The above dataset source links was last accessed in November 8, 2023)
Field Name | Data Type |
---|---|
Call Id | Text |
Agent | Text |
Date | Date |
Time | Time |
Topic | Text |
Answered (Y/N) | Text |
Resolved | Text |
Speed of answer in seconds | Decimal Number |
AvgTalkDuration | Time |
Satisfaction rating | Decimal Number |
Possible KPIs include (to get started, but not limited to):
Adding Calculated Fields and DAX (Data Analysis eXpression)
Abandoned Rate = DIVIDE([No of Abandoned Call],DISTINCTCOUNT(CallData[Call Id]))
Answ to Abandoned Rate = DIVIDE([No of Answered Call],[No of Abandoned Call])
Avg Speed of Answer = DIVIDE(SUM(CallData[Speed of answer in seconds]),[No of Answered Call])
Call Resolution Rate (%) = DIVIDE([Resolved Call],[No of Answered Call])
Duration per Answered Call = DIVIDE(CALCULATE(sum(CallData[CallDuration]),CallData[CallDuration]>0),[No of Answered Call])
No of Abandoned Call = CALCULATE(COUNT(CallData[Call Id]),'CallData'[Answered (Y/N)]="N")
No of Answered Call = CALCULATE(COUNT(CallData[Call Id]),'CallData'[Answered (Y/N)]="Y")
Resolved Call = CALCULATE(COUNT(CallData[Resolved]), AND(CallData[Answered (Y/N)]="Y",CallData[Resolved]="Y"))
Satisfaction Score = DIVIDE(CALCULATE(SUM(CallData[Satisfaction rating]),CallData[Answered (Y/N)]="Y"),[No of Answered Call])
Total Call = DISTINCTCOUNT(CallData[Call Id])
Total Duration = CALCULATE(SUM(CallData[CallDuration]),CallData[CallDuration]>0)
The Call Center Data Model
There are 2 pages were created for the solution. The KPI Dashboard and the Detail Page.
The KPI Dashboard
The Detail Page
The online report of the power bi can be found here
Customers in the telecom industry are hard-earned and the company doesn’t want to lose them. The retention department is here to get customers back in case of termination . Currently, they get in touch after they have terminated the contract, but this is reactionary. Therefore, it would be better to know in advance who is at risk . They have done customer analysis with Excel, buta it has always ended in a dead-end. They would like to know more about our customers and the Retentions Manager has provided some information in the resources.
https://cdn.theforage.com/vinternships/companyassets/4sLyCPgmsy8DA6Dh3/02%20Churn-Dataset.xlsx
(The above dataset source links were last accessed in November 8, 2023)
Field Name | Data Type |
---|---|
CustID | Text |
Gender | Text |
SeniorCitizen | Text |
Partner | Text |
Dependents | Text |
Tenure_(Month) | Whole Number |
Phone | Text |
MultipleLines | Text |
Internet | Text |
OnlineSecurity | Text |
OnlineBackup | Text |
DeviceProtection | Text |
TechSupport | Text |
StreamingTV | Text |
StreamingMovies | Text |
Contract | Text |
PaperlessBilling | Text |
PaymentMethod | Text |
MonthlyCharges | Decimal Number |
TotalCharges | Currency / Fixed Decimal Number |
#AdminTickets | Whole Number |
#TechTickets | Whole Number |
Churn | Text |
SubsPeriod | Text |
PaymentGroup | Text |
Adding Calculated Fields and DAX (Data Analysis eXpression)
# Customer = DISTINCTCOUNT(ChurnDataset[CustID])
# Dependents = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[Dependents]="Yes")
# DeviceProtection = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[DeviceProtection]="Yes")
# NonPaperless = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[PaperlessBilling]="No")
# OnlineBackup = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[OnlineBackup]="Yes")
# OnlineSecurity = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[OnlineSecurity]="Yes")
# Paperless = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[PaperlessBilling]="Yes")
# Partner = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[Partner]="Yes")
# Senior Citizen = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[SeniorCitizen]="Yes")
# StreamingMovies = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[StreamingMovies]="Yes")
# StreamingTV = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[StreamingTV]="Yes")
# TechSupport = CALCULATE(DISTINCTCOUNT(ChurnDataset[CustID]),ChurnDataset[TechSupport]="Yes")
#Churn = CALCULATE(count(ChurnDataset[Churn]),ChurnDataset[Churn]="Yes")
Churn Rate = DIVIDE('Measures Table'[#Churn],[# Customer])
The Call Center Data Model
The Churn Analysis Dashboard
The Curn Rate Dashboard to help analyze the Retention Rate
The online report of the power bi can be found here
Human Resources at our telecom client is highly into diversity and inclusion. They’ve been working hard to improve gender balance at the executive management level, but they’re not seeing any progress. They’re reaching out to PwC for seeking support with diversity and inclusion. Companies need a workforce of diverse talents and backgrounds to succeed in an increasingly complex and heterogeneous world. Diversity and inclusion are business imperatives, not just nice-to-haves. Achieving this and unlocking its potential involves a whole set of practical challenges.
https://cdn.theforage.com/vinternships/companyassets/4sLyCPgmsy8DA6Dh3/03%20Diversity-Inclusion-Dataset.xlsx
(The above dataset source links were last accessed in November 8, 2023)
Field Name | Data Type |
---|---|
Employee ID | Text |
Gender | Text |
Job Level after FY20 promotions | Text |
New hire FY20? | Text |
FY20 Performance Rating | Decimal Number |
Promotion in FY21? | Text |
In base group for Promotion FY21 | Text |
Target hire balance | Decimal Number |
FY20 leaver? | Text |
In base group for turnover FY20 | Text |
Department @01.07.2020 | Text |
Leaver FY | Text |
Job Level after FY21 promotions | Text |
Last Department in FY20 | Text |
FTE group | Decimal Number |
Time type | Text |
Department & JL group PRA status | Text |
Department & JL group for PRA | Text |
Job Level group PRA status | Text |
Job Level group for PRA | Text |
Time in Job Level @01.07.2020 | Whole Number |
Job Level before FY20 promotions | Text |
Promotion in FY20? | Text |
FY19 Performance Rating | Decimal Number |
Age group | Text |
Age @01.07.2020 | Whole Number |
Nationality 1 | Text |
Region group: nationality 1 | Text |
Broad region group: nationality 1 | Text |
Last hire date | Date |
Years since last hire | Whole Number |
Rand | Decimal Number |
Calculating the following measures could help to define proper KPIs:
Adding Calculated Fields and DAX (Data Analysis eXpression)
#Leaver FY20 = CALCULATE(DISTINCTCOUNT('Pharma Group AG'[Employee ID]),'Pharma Group AG'[FY20 leaver?]="Yes")
#Men = calculate(DISTINCTCOUNT('Pharma Group AG'[Employee ID]),'Pharma Group AG'[Gender]="Male")
#New Hire FY20 = CALCULATE(COUNT('Pharma Group AG'[Employee ID]),'Pharma Group AG'[New hire FY20?]="Y")
#New Hire Men = CALCULATE([#New Hire FY20],'Pharma Group AG'[Gender]="Male")
#Women = calculate(DISTINCTCOUNT('Pharma Group AG'[Employee ID]),'Pharma Group AG'[Gender]="Female")
#New Hire Women = CALCULATE([#New Hire FY20],'Pharma Group AG'[Gender]="Female")
#Promoted Employee = CALCULATE([Total Employee EO FY20],'Pharma Group AG'[Promotion in FY21?]="Yes")
#Promoted Men = CALCULATE([#Promoted Employee],'Pharma Group AG'[Gender]="Male")
#Promoted Women = CALCULATE([#Promoted Employee],'Pharma Group AG'[Gender]="Female")
%New Hire Men = DIVIDE([#New Hire Men],[#New Hire FY20])
%New Hire Women = DIVIDE([#New Hire Women],[#New Hire FY20])
Total Employee AB FY20 = CALCULATE(DISTINCTCOUNT('Pharma Group AG'[Employee ID]),'Pharma Group AG'[New hire FY20?]="N")
Total Employee EO FY20 = DISTINCTCOUNT('Pharma Group AG'[Employee ID])
Average # Employee = 0.5*([Total Employee AB FY20]+[Total Employee EO FY20])
Avg Performance = CALCULATE(AVERAGE('Pharma Group AG'[FY20 Performance Rating]),'Pharma Group AG'[FY20 Performance Rating]>0)
Avg Performance (Men) = CALCULATE(AVERAGE('Pharma Group AG'[FY20 Performance Rating]),'Pharma Group AG'[FY20 Performance Rating]>0,'Pharma Group AG'[Gender]="Male")
Avg Performance (Women) = CALCULATE(AVERAGE('Pharma Group AG'[FY20 Performance Rating]),'Pharma Group AG'[FY20 Performance Rating]>0,'Pharma Group AG'[Gender]="Female")
Turnover Rate = DIVIDE([#Leaver FY20],0.5*([Total Employee AB FY20]+[Total Employee EO FY20]))
Men Turnover Rate = DIVIDE(CALCULATE([#Leaver FY20],'Pharma Group AG'[Gender]="Male"),0.5*(CALCULATE([Total Employee AB FY20]+CALCULATE([Total Employee EO FY20]),'Pharma Group AG'[Gender]="Male")))
Women Turnover Rate = DIVIDE(CALCULATE([#Leaver FY20],'Pharma Group AG'[Gender]="Female"),0.5*(CALCULATE([Total Employee AB FY20]+CALCULATE([Total Employee EO FY20]),'Pharma Group AG'[Gender]="Female")))
Promotion Rate = DIVIDE([#Promoted Employee],[Total Employee EO FY20])
Promoted Men Rate = DIVIDE([#Promoted Men],[#Promoted Employee])
Promoted Women Rate = DIVIDE([#Promoted Women],[#Promoted Employee])
The Call Center Data Model
The Diversity and Inclusion Dashboard can be used to help improve gender balance at the executive management level.
The online report of the power bi can be found here