The paradox of hybrid meetings

library(tidyverse)

Hybrid meetings – some people joining remotely, some in person – seem like they are going to be great. They are a perfect compromise between the accessibility of remote meetings and the real-ness of in-person meetings. Yet in many cases they end up being bad – worse than either of the alternatives! Why?

This notebook is a somewhat quick (perhaps entertaining?) attempt to create a utility-theoretic model of why hybrid meetings are terrible.

The three key flaws of hybrid meetings are:

  1. Fixed tech costs. Hybrid tech is expensive, takes some time to set up, and is often glitchy.
  2. The “hybrid hazard” - more people go remote than strictly need to, because remote is convenient.
  3. The “hybrid death spiral” - over time, as more people see that others go remote for convenience, they themselves are tempted to be remote.

All these together mean that eventually you end up with the fixed costs of hybrid combined with a remote meeting.

To be clear, there are cases where hybrid meetings can work very well. We’ll think about these at the end.

Assumptions

We have a meeting with a desired group of \(N\) people. Let’s assume that some number of people attend remotely (\(N_r\)) vs. attend in-person (\(N_p\)) vs. miss the meeting (\(N_0\)).

We want to compute average meeting utility \(U\) per person. Let’s assume:

  • remote quality \(R\) is lower quality than face to face quality \(P\);
  • but, accessibility is higher for remote and hybrid meetings, so the number of attendees is greater;
  • and of course, meeting quality is zero if you don’t attend.

Let’s call our naive estimate of hybrid quality,

\[ U_{naive} = \frac{R \times N_{r} + P \times N_{p}}{N} \]

Simple simulation: Hybrid meetings dominate

Here’s a simulation, following these assumptions. I’m varying the proportion of participants that will only join remote-only, the number of people overall, and the relative value of remote meetings.

df <- expand_grid(N = 5:25,
                  prop_remote_only = c(.1, .2, .4), 
                  R = c(.5,.7, .9),
                  P = 1, 
                  C = 2, 
                  H = 2) |>
  mutate(N_r = ceiling(N * prop_remote_only),
         N_h = ceiling(N * prop_remote_only * H),
         `in-person - default` = (N - N_r) * P,
         `hybrid - naive` = R * N_r + P * (N - N_r), 
         `hybrid - tech costs` = R * N_r + P * (N - N_r) - C, 
         `hybrid - hazard + costs` = R * N_h + P * (N - N_h) - C, 
         `remote - default` = R * N) |>
  pivot_longer(contains(" - "), 
               names_to = "measure", 
               values_to = "U") |>
  separate(measure, into = c("format","model"), sep = " - ")

A note about parameters. I’m cherry picking parameter values wildly throughout. The idea here is not to show realistic utility values, but instead to illustrate how factors combine.

ggplot(filter(df, model %in% c("default","naive")),
       aes(x = N, y = U/N, col = format, lty = model)) + 
  geom_smooth(se = FALSE, span = 1, size = 1) + 
  facet_grid(prop_remote_only~R) + 
  scale_y_continuous(limits = c(0,1), 
                     sec.axis = sec_axis(~ . , name = "Proportion of remote-only attendees", breaks = NULL, labels = NULL)) +
  scale_x_continuous(sec.axis = sec_axis(~ . , name = "Relative value of remote meetings", breaks = NULL, labels = NULL)) + 
  ylab("Average utility (U)") + 
  xlab("Total number of attendees (N)")  + 
  ggthemes::scale_color_colorblind(name = "Meeting type") + 
  scale_linetype(guide = "none") +
  theme_bw() +
  ggtitle("A naive model in which hybrid meetings dominate")

In these simulations, sometimes in-person meetings are better (orange above blue) and sometimes remote meetings are better (blue above orange). But the key thing is that hybrid strictly dominates: hybrid meetings are always better than either remote or in-person meetings.

My hypothesis is that this is roughly the simulation many people had in mind around academic year 2021-2022 when they selected hybrid meetings for many settings as a compromise between “going back to normal” and various covid- and non-covid related accommodations.

Hybrid meetings have costs

But wait. Hybrid meetings have a constant cost – you have to use particular rooms or devices to set up the meetings. These things have costs in money and in time. There’s also always that “can our online participants hear us?” moment.

So let’s add a term to our model: a constant cost \(C\) that lumps together monetary costs, time costs, and general tech issues.

\[ U_{cost} = \frac{R \times N_{r} + P \times N_{p} - C}{N} \] Let’s simulate this adjusted model. Here I’ve chosen one value for costs that produces a mixed set of strategies just for visualization convenience.

ggplot(filter(df, model %in% c("default","tech costs")),
       aes(x = N, y = U/N, col = format, lty = model)) + 
  geom_smooth(se = FALSE, span = 1, size = 1) + 
  facet_grid(prop_remote_only~R) + 
  scale_y_continuous(limits = c(0,1), 
                     sec.axis = sec_axis(~ . , name = "Proportion of remote-only attendees", breaks = NULL, labels = NULL)) +
  scale_x_continuous(sec.axis = sec_axis(~ . , name = "Relative value of remote meetings", breaks = NULL, labels = NULL)) + 
  ylab("Average utility (U)") + 
  xlab("Total number of attendees (N)")  + 
  ggthemes::scale_color_colorblind(name = "Meeting type") + 
  scale_linetype(guide = "none") +
  theme_bw() +
  ggtitle("Hybrid has fixed costs around tech setup")

Now we see a slightly more mixed picture. Hybrid meetings emerge as the best for 1) larger meetings or 2) meetings where in-person is desired but a significant number of people can’t be there.

Perhaps this setting reflects my department’s faculty meetings. It’s a big group, but mostly people show up (for the free food?) but some people have to call in, and that overall adds a little value.

The “hybrid hazard”

Yet there’s something that doesn’t fit. When you announce a hybrid meeting, the people that come remotely are not just those who absolutely can’t make it in person. There’s also a bit of a moral hazard (call it a “hybrid hazard” maybe): there are some people who would have come in person but now decide, usually for the sake of convenience, to come remotely.

We’re going to denote this hybrid hazard as \(H\), the multiplier on the number of people that join remotely. Here’s the model1:

\[ U_{hazard} = \frac{H \times R \times N_{r} + P \times N_{p} - C}{N} \]

Let’s see what this model looks like in terms of overall quality. I’ve chosen \(H=2\) here for convenience. If 2/10 attendees at a meeting can only make it remotely, then you’ll end up with 4/10 remote in this scenario.

ggplot(filter(df, model %in% c("default","hazard + costs")),
       aes(x = N, y = U/N, col = format, lty = model)) + 
  geom_smooth(se = FALSE, span = 1, size = 1) + 
  facet_grid(prop_remote_only~R) + 
  scale_y_continuous(limits = c(0,1), 
                     sec.axis = sec_axis(~ . , name = "Proportion of remote-only attendees", breaks = NULL, labels = NULL)) +
  scale_x_continuous(sec.axis = sec_axis(~ . , name = "Relative value of remote meetings", breaks = NULL, labels = NULL)) + 
  ylab("Average utility (U)") + 
  xlab("Total number of attendees (N)")  + 
  ggthemes::scale_color_colorblind(name = "Meeting type") + 
  scale_linetype(guide = FALSE) +
  theme_bw() +
  ggtitle("The hybrid hazard - more people choose remote \nthan strictly have to")

Now we see that hybrid looks - at best - as good as the better option. If in-person is better (because remote is hard) then hybrid will approach that level for a larger meeting. And if remote is better because many people can’t make it or because this meeting is well-suited for remote, then hybrid isn’t a particularly better option. In both cases, for smaller meetings, the extra tech costs dominate the accessibility benefits.

The “hybrid death spiral”

This last model suggests that hybrid is not a great option. But perhaps the situation is worse than that!

In the last few years, many of us found that hybrid classes and meetings tended to go into some kind of death spiral. Although initially people attend in person, more and more people opt out for reasons of convenience, leading to meetings with many remote participants and very few in-person participants.2

My hypothesis is that the presence of a remote group increases the hybrid hazard over time. The more people are seen to opt for convenience, the more people will then choose the convenient option next time! We can simulate this process by exponentiation so that H increases over time:

\[ U_{death~spiral} = \frac{H^t \times R \times N_{r} + P \times N_{p} - C}{N} \]

df_t <- expand_grid(N = 5:25,
                  prop_remote_only = c(.1, .2, .4), 
                  R = c(.5,.7, .9),
                  P = 1, 
                  C = 2, 
                  H = 2, 
                  t = 1:5) |>
  mutate(N_r = ifelse(ceiling(N * prop_remote_only) > N, 
                      N, ceiling(N * prop_remote_only)),
         N_h = ifelse(ceiling(N * prop_remote_only * H^t) > N,
                      N, ceiling(N * prop_remote_only * H^t)),
         `in-person - default` = (N - N_r) * P,
         `hybrid - spiral` = R * N_h + P * (N - N_h) - C, 
         `remote - default` = R * N) |>
  pivot_longer(contains(" - "), names_to = "measure", values_to = "U") |>
  separate(measure, into = c("format","model"), sep = " - ")
ggplot(filter(df_t, N == 15),
       aes(x = t, y = U/N, col = format, lty = model)) + 
  geom_smooth(se = FALSE, span = 1, size = 1) + 
  facet_grid(prop_remote_only~R) + 
  scale_y_continuous(sec.axis = 
                       sec_axis(~ . , 
                                name = "Proportion of remote-only attendees", 
                                breaks = NULL, labels = NULL)) +
  scale_x_continuous(sec.axis = 
                       sec_axis(~ . , 
                                name = "Relative value of remote meetings", 
                                breaks = NULL, labels = NULL)) + 
  ylab("Average utility (U)") + 
  xlab("Total number of meetings (t)") + 
  ggthemes::scale_color_colorblind(limits = c("hybrid", "in-person","remote"),
                                   name = "Meeting type") + 
  scale_linetype(guide = "none") + 
  theme_bw() + 
  ggtitle("The hybrid death spiral - hybrid utility \n decreases over time")

The pattern here is that hybrid meetings start out somewhere between in-person and remote meetings (lower because of constant tech costs) but then decline in many cases to be worse than either. Successively more people take the remote option until you are almost fully remote – but still with the tech costs of hybrid!

Conclusion

Hybrid meetings have the promise of increasing accessibility, which is a very good thing. But three problems – fixed costs, the hybrid hazard, and the death spiral – means that hybrid meetings can end up worse than either alternative.

But that’s not always true. Our simulations yield insight into where hybrid meetings can thrive. In general, hybrid is better when:

  1. fixed costs are low (e.g., good in-room tech),
  2. meetings are large and only a few participants are (allowed to be) hybrid, and
  3. when you are in a scenario where remote attendance doesn’t increase – either one-off meetings or a case where there’s value to coming in person (free food?).

Hopefully this simulation helps give a sense of some of the strengths and weaknesses of the hybrid meeting format.

A final note: as with many simulations, you might think that we could have said some of this without the simulation. That’s probably true. The trouble is, I tried to say it without the simulation and failed! Then I did the simulation and it seemed clearer to me. YMMV.

Footnotes

  1. This model and the next one don’t really make sense in that \(H \times R\) could be bigger than 1 (random extra attendees?), so we put a condition that this product maxes out at \(N\).↩︎

  2. In practice, many of these remote participants have their cameras off and don’t participate, which is convenient of course, but further reduces relative meeting value. This could be an element for future work.↩︎