3  Yearly value

There is great variation in the value of the commodities produced over the years and among the minerals/metals. These dynamics are the focus of this chapter.

Value is \(price \times quantity\).


3.1 Contributions in 2021 to total value

Using log scale since the range is very wide.

Show the code
product_levels <- dta_yearly_long |>
  filter(year == 2021,
         !is.na(value_2021)) |>
  slice_max(order_by = value_2021, n = 1,
            by = product_name) |>
  arrange(value_2021)

p1 <- dta_yearly_long |>
  filter(year == 2021) |>
  inner_join(product_levels |> select(product_name),
             by = "product_name") |>
  mutate(product_name = factor(product_name, levels = product_levels$product_name)) |>
  ggplot(aes(year, value_2021, label = product_name, color = product_name)) +
  geom_label_repel(na.rm = TRUE, show.legend = FALSE,
                   direction = "x", min.segment.length = 100) +
  scale_x_continuous(breaks = c(1900, 1950, 2000)) +
  scale_y_log10(labels = label_number(scale_cut = cut_short_scale(),
                                           prefix = "$"),
  ) +
  labs(
    subtitle = glue("Relative commodity value"),
    x = NULL,
    y = "AUD (log10 scale)"
  )

data_for_plot <- dta_yearly_long |>
  filter(year == 2021) |>
  inner_join(product_levels |> select(product_name),
             by = "product_name") |>
  arrange(desc(value_2021)) |>
  mutate(product_name = factor(product_name, levels = product_levels$product_name),
         cum_value = cumsum(value_2021))

max_cum_value = max(data_for_plot$cum_value)
  
p2 <- data_for_plot |>
  ggplot(aes(cum_value, product_name)) +
  #geom_path(aes(group = cum_value), alpha = 0.4, color = carolina_blue) +
  geom_point() +
  scale_x_continuous(labels = label_number(scale_cut = cut_short_scale()),
                     sec.axis = sec_axis(~ . / max_cum_value,
                                         labels = label_percent(accuracy = 1))) +
  expand_limits(x = 0) +
  labs(
    subtitle = glue("Commodity contribution to total value in 2021 (AUD {round(max_cum_value / 1e9, digits = 0)}B)"),
    x = "Cumulative value (AUD)",
    y = NULL
  )

p1 + p2 +
  plot_annotation(
    title = 'Australian mining: value of products produced in 2021',
    caption = my_caption
  )

Figure 3.1: Value extracted in 2021


3.2 Yearly value by commodity

Show the code
product_levels <- dta_yearly_long |>
  filter(!is.na(value_2021)) |>
  slice_max(order_by = value_2021, n = 1,
            by = product_name) |>
  arrange(desc(value_2021)) |>
  pull(product_name)

dta_yearly_long |>
  mutate(product_name = factor(product_name, levels = product_levels)) |>
  ggplot(aes(year, value_2021, color = product_name)) +
  geom_line(na.rm = TRUE, show.legend = FALSE) +
  scale_x_continuous(breaks = c(1900, 1950, 2000)) +
  scale_y_continuous(labels = label_number(scale_cut = cut_short_scale(),
                                           prefix = "$"),
  ) +
  facet_wrap(~ product_name, scales = "free_y") +
  labs(
    title = glue("Australian mining yearly value of products (2021 dollars)"),
    subtitle = glue("Arranged from highest to lowest peak value. {year_first}-{year_last}"),
    x = NULL,
    y = "AUD (2021 dollars) Y axis scale varies",
    caption = my_caption
  )

Figure 3.2: Value over time in 2021 dollars


3.3 Commodities at or near peak value of production

For the following, the value of production in 2021 was within 10% of historical peak value.

Show the code
peak_products <- dta_yearly_long |>
  filter(year == max(year, na.rm = TRUE) & value_2021_pct_of_max >= peak_production_cutoff) 

data_for_plot <- dta_yearly_long |>
  inner_join(peak_products %>% select(product_price),
             by = "product_price")

labels_for_plot <- data_for_plot |>
  filter(!is.na(mass)) |>
  mutate(final_year = max(year),
         .by = product_price) |>
  filter(year == max(year),
         .by = product_price)
  
data_for_plot |>
  ggplot(aes(year, mass, color = product_price, group = product_price)) +
  geom_line(na.rm = TRUE, show.legend = FALSE) +
  geom_text_repel(data = labels_for_plot,
                  aes(max(year) + 30, mass, label = product_price),
                  hjust = 1, vjust = 0.5, show.legend = FALSE, 
                  direction = "y", force = 0.4) +
  scale_x_continuous(breaks = c(1850, 1900, 1950, 2000)) +
  scale_y_log10(labels = label_number(scale_cut = cut_short_scale(),
                                      prefix = "$"),
  ) +
  labs(
    title = glue("Production near peak value in Australia"),
    subtitle = glue("{year_first}-{year_last}"),
    x = NULL,
    y = "AUD (2021 dollars) log10 scale",
    caption = my_caption
  )

Figure 3.3: Products at or near peak production: yearly Australian mining output


3.4 Table

Show the code
dta_yearly_long |>
  filter(year == 2021) |> 
  select(product_name, units_price, value_2021, value_max_2021) |>
  mutate(value_pct_of_max = value_2021 / value_max_2021) |>
  arrange(desc(value_2021), desc(value_pct_of_max)) |>
  mutate(cum_pct = cumsum(value_2021 / sum(value_2021, na.rm = TRUE)),
         rowid = row_number()) |>
  gt() |>
  tab_header(md("**Australian mining value extracted 2021**<br>*Australian dollars (AUD)*")) |>
  fmt_currency(columns = c(value_2021, value_max_2021),
             decimals = 0,
             currency = "AUD",
             suffixing = TRUE) |>
  fmt_percent(columns = c(value_pct_of_max, cum_pct),
             decimals = 0) |>
  sub_missing() |>
  tab_source_note(md("*Data: Gavin Mudd. Analysis: Daniel Moul*"))
Table 3.1: Australian mining value extracted in 2021
Australian mining value extracted 2021
Australian dollars (AUD)
product_name units_price value_2021 value_max_2021 value_pct_of_max cum_pct rowid
Iron-ore $/t $164B $164B 100% 50% 1
Black-Coal $/t $97B $101B 96% 80% 2
Gold $/kg $24B $27B 88% 88% 3
Copper $/t $10B $10B 100% 91% 4
Alumina $/t $7B $10B 72% 93% 5
Zinc $/t $5B $6B 91% 94% 6
Nickel $/t $4B $7B 51% 96% 7
Bauxite $/t $4B $4B 87% 97% 8
Lithium $/t $3B $3B 100% 98% 9
Rare-earths $/t $2B $2B 100% 98% 10
Lead $/t $1B $2B 71% 98% 11
Silver $/kg $1B $2B 76% 99% 12
Manganese $/t $1B $6B 23% 99% 13
Uranium $/t $384M $1B 37% 99% 14
Cobalt $/t $380M $503M 75% 100% 15
Tin $/t $377M $377M 100% 100% 16
Synthetic-rutile $/t $238M $490M 49% 100% 17
Diamonds $/carat $230M $926M 25% 100% 18
Garnet $/t $140M $399M 35% 100% 19
Ilmenite $/t $127M $206M 62% 100% 20
Rutile $/t $123M $303M 40% 100% 21
Antimony $/t $58M $73M 78% 100% 22
Phosphate-rock $/t $44M $317M 14% 100% 23
Tantalum $/t $24M $441M 5% 100% 24
Leucoxene $/t $22M $32M 68% 100% 25
Tungsten $/t $3M $56M 5% 100% 26
Chromium $/t $1B 27
Graphite $/t $3M 28
Molybdenum $/t $3M 29
Monazite $/t $10M 30
Data: Gavin Mudd. Analysis: Daniel Moul