Using the solution on my larger, actual dataset, I realised a strange behaviour when adding scale_y_discrete. I'll illustrate with a reprex below.
Assume I have the following data:
library(tidyverse)
set.seed(123)
col <- tibble(
name = toupper(letters[1:20]),
share = round(rnorm(20, 0.5, 0.1), 2),
active_days = sample.int(50, 20)
)
Plotting this as per the code above without using scale_y_discrete(), we get:
col %>%
ggplot(aes(y = reorder(name, share), x = share)) +
geom_col() +
labs(x = "Share",
y = "Merchant")

Now, adding scale_y_discrete:
col %>%
ggplot(aes(y = reorder(name, share), x = share)) +
geom_col() +
labs(x = "Share",
y = "Merchant") +
scale_y_discrete(labels = paste0(col$name, " (", col$active_days, ")"))

Adding scale_y_discrete changes the order of the labels to reverse alphabetical order, but the values/bars are displayed correctly in descending order, giving the impression, in this case, that merchant T has the highest share, while it is in fact merchant P! This is obviously highly unwanted. Anyone got any idea what is happening here, and how it can be remedied?