Source: ANZ FY2021 Results Investor Discussion Pack, p62
Objective and Audience
The objective of this data visualisation is to show Australia and New Zealand (ANZ) bank market share in three of its important product categories over the period from March 2019 through to August 2021. The visualisation is taken from a slide in an investor pack which contains three other visualisations. Each visualisation has a distinct objective from the others on the slide. They are grouped together due to size and time constraints when presenting the information and there is not clear or obvious relationship between each separate visualisation on the slide.
The target audience of the visualisation are investors in listed bank equities. Investor presentation materials are used by existing investors in the relevant company, but potential new investors who may be invested in a competitor and considering changing investments. ANZ banks main competitors are Commonwealth Bank of Australia (CBA), National Australia Bank (NAB) and Westpac Banking Corporation (WBC). One could argue that the target audience is professional analysts who have a deep understanding of the company, its competitors and product lines. Unsophisticated retail investors are also invited and encouraged to attend these presentations, therefore the visualisations provided should not be overly technical or assume implied knowledge that is required to understand key performance indicators that are being visualised.
Deconstruct/Critique
The visualisation had the following three main issues:
The date variable has been represented as a categorical variable through the use of a discrete colour scale when it is in fact a Quantitative (Interval) variable. This results in an excessive number of colours in the chart since there are only three categorical values, Housing Lending, Credit Cards and Household Deposits. This choice results in a bar chart being used when a line chart is a more accurate method to facilitate comparison of the market share variable over time.
The scale of the y-axis is deceptive and hides the relatively large reduction in Housing Lending share compared with the other products. The relative stability in values within each category of product and the difference in magnitude between each act to obscure what is a considerable fall in Housing Lending market share. The viewer is reliant on the data labels to observe the quantum of the drop in Housing Lending market share. It would be more informative to see the change in market share over the period, rather than the outright level of market share.
The visualisation is missing relevant data from ANZ’s main competitors, CBA, NAB and WBC, which is contained in the dataset used to create the visualisation. It is difficult to contextualise the market share values and trends in the context of ANZ’s performance against competitors. This results in the visualisation being potentially biased and deceptive. We are unable to compare ANZ relative performance over time in each of these categories to its main competitors.
Reference
The following code was used to fix the issues identified in the original.
apra <- read_excel('APRA Data.xlsx', sheet = 4, skip = 1) ## import data
dataf <- apra %>% rename('Housing Lending 1' = "Loans to households: Housing: Owner-occupied", 'Housing Lending 2' = 'Loans to households: Housing: Investment', 'Credit Cards' = 'Loans to households: Credit cards', 'Deposits' = 'Deposits by households', 'Month' = 'Period') %>% select('Month', 'Institution Name', 'Housing Lending 1', 'Housing Lending 2', 'Credit Cards', 'Deposits') ## stage 1 tidy column names and drop variables not interested in.
dataf2 <- dataf %>% mutate('Housing Lending' = `Housing Lending 1`+ `Housing Lending 2`) %>% select(-(c(`Housing Lending 1`, `Housing Lending 2`))) ## recreate ANZ product groupings.
ms <- dataf2 %>% group_by(Month) %>% mutate('Market Share Credit Card' = round((`Credit Cards` / sum(`Credit Cards`)*100),1), 'Market Share Deposits' = round((`Deposits` / sum(`Deposits`)*100),1), 'Market Share Housing Lending' = round((`Housing Lending` / sum(`Housing Lending`)*100),1)) %>% select(-c(`Credit Cards`, `Housing Lending`, Deposits)) %>% rename('Housing Lending' = `Market Share Housing Lending`, 'Credit Cards'= `Market Share Credit Card`, 'Household Deposits' = `Market Share Deposits`) ## tranform values to market share percenages.
filist <- c('Australia and New Zealand Banking Group Limited', 'Commonwealth Bank of Australia','National Australia Bank Limited', 'Westpac Banking Corporation') ## create list of competitors
msf <- ms %>% filter(`Institution Name` %in% filist) # filter data for relevant competitors
msf$`Institution Name` <- msf$`Institution Name` %>% as.factor()
msf$`Institution Name` <- msf$`Institution Name`%>% factor(levels = c('Australia and New Zealand Banking Group Limited', 'Commonwealth Bank of Australia','National Australia Bank Limited', 'Westpac Banking Corporation'), labels = (c('ANZ', 'CBA', 'NAB', 'WBC'))) # factorise and label in short form to save space on visualisation.
msfi <- msf %>% group_by(`Institution Name`) %>% arrange(Month) %>% mutate(CCI = 100*`Credit Cards`/`Credit Cards`[1], HDI = 100*`Household Deposits` / `Household Deposits`[1], HLI = 100 * `Housing Lending` / `Housing Lending`[1]) %>% select(-c(`Credit Cards`, `Household Deposits`, `Housing Lending`)) # convert market share percentage to indexed value
msfi <- msfi%>% rename('Credit Card' = CCI, 'Household Deposits' = HDI, 'Housing Lending' = HLI) # rename columns for easier understanding and to match original visualisation categories.
mffilong <- msfi %>% pivot_longer(cols = `Credit Card`:`Housing Lending`, names_to = "Product", values_to = 'Market Share Index') ## convert to long format as better for ggplot.
mffilong$Month <- as.Date(mffilong$Month) #ensuring date variable data type correct
mffilong$Product <- mffilong$Product %>% fct_relevel('Housing Lending', 'Household Deposits', 'Credit Card') # ordering factor so facet chart is in meaningful order.
mffilong <- mffilong %>% filter(Month >= "2019-03-01" & Month <= "2021-09-21") # filter to match relvant date range from original visualisation.
ploti <- ggplot(mffilong, aes(x=Month, y = `Market Share Index`, colour = `Institution Name`))
CPCOLS <- c("#1f78b4", "#EEC900", "#000000", "#EE0000") # set colour palet to match banks branding.
final <- ploti + geom_line(size = .75) +
scale_colour_manual(values = CPCOLS) +
facet_grid(Product ~ ., scales = 'free') +
theme_minimal() +
scale_x_date(date_breaks = "6 months", date_labels = '%b - %y') +
labs(
title = "Market Share Index - Key Retail Products (Mar 19 - Aug 21)",
subtitle = "ANZ has lost ~4% Housing Lending share during 2021, whilst competitors have fared better.",
caption = "Source: APRA Monthly Authorised Deposit-taking Institution Statistics"
) +
theme(
plot.title = element_text(size = 10),
plot.subtitle = element_text(size = 8),
axis.text.x = element_text(angle = 30, hjust = 1),
strip.text.y = element_text(size = 7),
axis.text.y.left = element_text(size = 8),
)
Data Reference
The following plot fixes the main issues in the original.