COVID-19 Sensemaking Journal: April 4, 2020

As I suggested might happen, I’ve stopped updating my spreadsheet, and I’ve started relying on two of the great dashboards that have emerged in recent weeks — Wade Fagen-Ulmschneider’s dashboard (which I mentioned last week) for international and state-wide comparisons and this dashboard (hat tip to Yangsze Choo).

The regular attempts at sensemaking, however, continue. Here’s what I’m learning this week. The usual disclaimer applies: I’m just an average citizen with above average (but very, very rusty) math skills trying to make sense of what’s going on. Don’t trust anything I say! I welcome corrections and pushback!

From the beginning, the main thing I’ve been tracking has been daily new cases country-by-country. Here’s Fagen-Ulmschneider’s latest log graph:

This week’s trend is essentially a continuation of last week’s, which is good news for Italy (whose growth rate is slowing), and bad news for the U.S. (whose growth rate seems more or less consistent.

Early on, I started using a log graph, because it showed the growth rate more clearly, especially in the early days of growth, when curves can look deceivingly flat and linear. Now that some time has passed, one of the challenges of the log graph is becoming apparent: It dulls your sensitivity to how bad things are as you get higher in the graph (and the scale increases by orders of magnitude). You could conceivably look at the above graph and say to yourself, “Well, our curve isn’t flattening, but we’re not that much worse than Italy is,” but that would be a mistake, because you have to pay attention to your scale markers. You don’t have this problem with a linear graph:

Yeah, that looks (and is) a lot worse. The other challenge with these graphs is that the daily points create a spikiness that’s not helpful at best and deceiving at worst. If you’re checking this daily (which I’m doing), you can see a drop one day and think to yourself, “Yay! We’re flattening!”, only to see the the curve rise rapidly the next two. That is, in fact, what happened over the last three days with the national numbers, and it’s an even worse problem as you look at regional data. It would probably be better to show averages over the previous week or even weekly aggregates instead of daily (which might make more sense after a few more weeks).

In addition to the nice interface, one of the main reasons I started using Fagen-Ulmschneider’s dashboard is that he’s tracking state-by-state data as well. He’s even normalizing the data by population. My original impetus for doing my own tracking was that I couldn’t find anyone else normalizing by population. What I quickly realized was that normalizing by population at a national level doesn’t tell you much for two reasons. First, I was mainly interested in the slope of the curve, and normalizing by population doesn’t impact that. Second, outbreaks are regional in nature, and so normalizing by a country’s population (which encompasses many regions) can be misleading. However, I think it starts to become useful if you’re normalizing by a region’s population. I think doing this by state, while not as granular as I would like, is better than nothing. Here’s the state-by-state log graph tracking daily new cases normalized by population:

California (my state) was one of the first in the U.S. to confirm a COVID-19 case. It was also the first to institute a state-wide shelter-in-place directive. And, you can see that the curve seems to have flattened over the past five days. If you play with the dashboard itself, you’ll notice that if you hover over any datapoint, you can see growth data. In the past week, California’s growth rate has gone down from 15% daily (the growth rate over the previous 24 days) to 7% daily. Yesterday, there were 30 new confirmed cases of novel coronavirus per million people. (There are 40 million people in California.)

An aside on growth rates. One of the things that’s hard about all these different graphs is that they use different measures for growth rates. Fagen-Ulmschneider chooses to use daily growth percentage, and he shows a 35% growth curve as his baseline, because that was the initial growth curve for most European countries. (Yikes!) Other folks, including the regional dashboard I started following this past week, show doubling rate — the number of days it takes to double.

Finance folks use a relatively straightforward way of estimating the conversion between doubling rate and growth rate. I have a computer, so there’s no reason to estimate. The formula is ln 2 / ln r, where r is the growth rate. (The base of the log doesn’t matter, but I use a natural log, because that’s how the Rule of 72 is derived.) However, what I really wanted was a more intuitive sense of how those two rates are related, so I graphed the function:

You can see that the 35% growth rate baseline is equivalent to a doubling of cases every 2.2ish days. (Yikes!) Over the past 24 days, California’s growth rate was 15%, which means there was a doubling of cases every five days. Over the past week, the growth rate was 7%, which is the equivalent of doubling approximately every 10 days. (Good job, California!)

Which brings me to the regional dashboard I’ve been using. I love that this dashboard has county data. I also like the overall interface. It’s very fast to find data, browse nearby data, and configure the graph in relatively clean ways. I don’t like how it normalizes the Y-axis based on each region’s curve, which makes it very hard to get a sense of how different counties compare. You really need to pay attention to the growth rate, which it shows as doubling rate. Unlike the above dashboard, it doesn’t show you how the growth rate over the previous seven days compares to the overall growth curve, so it’s hard to detect flattening. My biggest pet peeve is that it doesn’t say who made the dashboard, which makes it harder to assess whether or not to trust it (although it does attribute its data sources), and it doesn’t let me share feedback or suggestions. (Maybe the latter is by design.)

Here’s the California data for comparison:

Another nice thing about this dashboard is that it shows confirmed cases (orange), daily new cases (green), and daily deaths (black). I keep hearing from folks saying that the reported cases data is useless because of underreporting due to lack of tests. These graphs should help dispel this, because — as you browse through counties — the slopes (which indicate growth rates) consistently match. Also, the overall growth rate shown here (doubling every 5.1 days) is consistent with the data in the other dashboard, so that’s nice validation.

Here’s what the Bay Area looks like:

You can see what I meant above about being hard to compare. This graph looks mostly the same as the California graph, but if you look at the scale of the Y-axis and the doubling rate, it’s very different. The Bay Area (which declared shelter-in-place even before the state did) is doing even better, curve-wise. (Good job, Bay Area!)

My next project is to try and get a better sense of what all the death numbers mean. More on that in a future blog post, perhaps. In the meantime, here are some other COVID-19 things I’m paying attention to.

First and foremost, I’m interested in how quickly we create an alternative to shelter-in-place, most likely some variation on test-and-trace. Until we have this in place, lifting shelter-in-place doesn’t make sense, even if we get our curve under control, because the growth rate will just shoot up again. This is nicely explained in Tomas Pueyo’s essay, “Coronavirus: The Hammer and the Dance.” My favorite systems explainer, Nicky Case, has partnered with an epidemiologist to create a dashboard that lets regular folks play with different scenarios. They haven’t released it yet, but this video nicely gives us the gist:

Unfortunately, the media isn’t really talking about what’s happening in this regard (other than the complete clusterfuck that our national response has been), so I have no idea what’s happening. Hang tight, I suppose.

On the other hand, there are some things we can learn from past pandemics. This National Geographic article shares these lessons (and visualizations) from the 1918 flu pandemic, a good warning about lifting shelter-in-place prematurely. (Hat tip to Kevin Cheng.) Similarly, Dave Pollard shares some lessons learned from SARS, several of which are very sobering.

In the meantime, the most pressing concern is hospital capacity. Last week, I mentioned the Institute for Health Metrics and Evaluation’s dashboard, which got some national play too and apparently had a role in waking up our national leadership. Carl Bergstrom, an epidemiologist who also happens to study how disinformation spreads, tweeted some useful commentary on how to (and how not to) interpret this data.

Speaking of disinformation, these are interesting times, not just because of the horrific role that disinformation campaigns are playing in our inability to response, but also because it’s surfacing in a more nuanced way the complicated nature of expertise. FiveThirtyEight published an excellent piece explaining why it’s so hard to build a COVID-19 model. Zeynep Tufekci’s article, “Don’t Believe the COVID-19 Models,” complements the FiveThirtyEight piece nicely. Ed Yong demonstrates how this complexity plays out in his excellent piece on masks. And Philippe Lemoine nicely explains where common sense fits into all of this. (Hat tip to Carmen Medina.)

My Favorite Basketball Play Ever

A friend posted a video clip of his favorite basketball play ever on his Facebook page, and invited others to do the same. It made me curious if mine was online, so I did a quick search on YouTube for, “Magic no look pass nobody Portland.” The play I was looking for was the first to pop up. (The Internet is an amazing place.)

It’s from Game 7 of the 1991 Western Conference Finals between my Los Angeles Lakers and the Portland Trail Blazers. There’s 12 seconds left. The series is tied 3-3. The winner will go on to play the Chicago Bulls, Michael Jordan’s first NBA Finals. The Lakers are up by one. Portland is inbounding the ball. Portland gets the ball to Terry Porter for a jumper to win. He misses.

Magic Johnson rebounds the ball with two seconds left. The only thing Portland can do at this point is foul. Magic is very good at shooting free throws — he made over 90 percent of them that season — but even if he makes both of them, Portland would have a chance to advance the ball to half court and get a three off to tie the game. Three seconds is all the time in the world.

What happens next is still clearly emblazoned in my brain, as it showed Magic’s preternatural brilliance as a basketball player. As soon as Magic gets the rebound, he throws a cross-court, no-look pass over his head. To nobody. The ball slowly trickles out of bounds on the opposite side of the court with 0.1 seconds left on the clock. The game is sealed. Now there’s no way for Portland to come back.

If you look at the other players from both teams in that first split second, they have no idea what Magic has done. Then they see the ball trickle out of bounds, and stunned realization spreads across their faces.

Who even thinks of doing anything like this? I’ve never seen anything like it since.

In retrospect, that game was loaded with history. It was Magic’s first season playing without Kareem Abdul-Jabbar and Pat Riley. (Hello, Vlade Divac and Mike Dunleavy.) It would be his last playoff series win ever, as he and Byron Scott would bow out of the next series with injuries, allowing Michael Jordan to win his first NBA championship. (That’s right, I said it. Allowing.) The following year, he would make his stunning announcement that he had HIV and would be retiring immediately.

I can’t believe that game was almost 30 years ago. I can remember it like it was yesterday, and I love that this clip is on YouTube.

In other hoops news, ESPN just announced that its 10-part documentary on Jordan’s last championship season, The Last Dance, will now debut in April instead of June, thanks to everyone being cooped up inside without any sports to watch. That was only 22 years ago, and I can also remember that series like it was yesterday. Damn, I’m old.

My New Favorite COVID-19 Dashboard

TL;DR I’m now using this dashboard as a way to make sense of what’s happening with COVID-19. It’s still too soon to draw any conclusions about how well the U.S.’s interventions overall are working.

I started trying to make sense of the COVID-19 growth rate data myself on March 13, 16 days ago. I learned a lot along the way, and my daily ritual of looking up numbers and updating my spreadsheet has been strangely calming. Here’s my latest graph:

Three observations when comparing this to last week’s graph:

  1. Italy’s growth rate seems to be flattening, which is a positive sign
  2. U.S.’s growth curve continues to rise at a steady rate; more on this below
  3. Even though China and Korea’s growth rates have been steady for a while now, it’s not zero. They have this under control (for now), but it’s far from over, and it won’t be until we have a vaccine, which folks keep saying is at least 12-18 months away.

My friend, Scott Foehner, chided me last week for saying that the results are lagging by about a week. He’s right. Based on Tomas Pueyo’s analysis (which I cited in my original blog post), the lag is more like 12 days. This is why the Bay Area shelter-in-place ordinance was for three weeks — that’s how much time you need to see if you’re containing your growth rate.

Shelter-in-place in the Bay Area started on March 17, exactly 12 days ago and four days after I started tracking. California’s order started on March 20. Other states followed after that, but not all.

It’s hard to make sense of all this when aggregated as a country. I’ve been wanting regional data for a while now, but have felt too overwhelmed to parse it out myself. Fortunately, other people have been doing this.

One of the positive outcomes of me doing this for myself for the past few weeks is that it’s given me a better sense of how to interpret other people’s graphs, and it’s helped me separate the wheat from the chaff. It’s also made me realize how poor data literacy seems to be for many media outlets, including major ones. They’re contributing to the problem by overwhelming people with graphs that are either not relevant or are not contextualized.

One media outlet that’s been doing a great job, in my opinion, has been The Financial Times, thanks to John Burn-Murdoch. Inspired by John’s work, Wade Fagen-Ulmschneider has produced this excellent dashboard, which has provided me exactly what I’ve wanted. (Hat tip to Rashmi Sinha.) I may stop updating my spreadsheet as a result, although I might miss the ritual too much.

Wade’s dashboard is pretty configurable overall, although you have limited control over which region’s data you’re showing. Here’s the closest equivalent to what I’ve been tracking:

And here’s what I’ve really wanted to see: the state-by-state data:

What does this tell us about the interventions so far? Again, not much. It’s too soon. Check back in another week.

I’ve seen some articles floating around with graphs comparing California to New York, crowing that sheltering-in-place is already working here. That may be the case, but it’s still too early for us to know that, and it’s irresponsible to point to a chart and suggest that this is the case. There are lots of reasons why New York might be doing so poorly compared to California that have nothing to do with interventions, density being the obvious one. Regardless, history has proven that even a few days can make a huge difference when it comes to containing epidemics, and I feel incredibly grateful that our local leaders acted as quickly as they did.

I think there are two questions that are on people’s minds. One is about hospital capacity. I’ve seen various attempts to model this, including the Covid Act Now site I mentioned last week. The one I find easiest to browse is this dashboard from the Institute for Health Metrics and Evaluation. They publish their model, which I haven’t even attempted to parse yet. (I doubt that I have the expertise to evaluate it anyway.) It suggests that, even if our current measures have flattened the curve in California, we’ll still exceed our capacity of ICU beds needed in about two weeks, although we should be okay in terms of general hospital capacity.

The second question is how much longer we’ll need to shelter-in-place (or worse). Even if we flatten the curve, lifting shelter-in-place will just get that curve going again unless we have an alternative way of managing it (e.g. test-and-trace). I haven’t seen any indications of when that will happen, so we’ll just have to continue to be patient. I feel like every day is a grind, and I’m one of the lucky ones. I can’t imagine how folks on the frontlines and those far less fortunate than me are dealing right now.

The Anchovy Project

A few weeks ago, I discovered (via The Marshall Store) local pickled herrings. I’m not a huge fan of pickled herrings, but I was surprised to learn that they catch them here in the Bay Area, as I had never seen them in the markets or on a menu. I was telling this to my friend, Kate, my go-to person for all things related to oceans, and we got to talking about why we don’t eat more local fish, especially those lower on the food chain. She pointed me to State Bird Provisions’ Stuart Brioza and Nicole Krasinski’s brilliant Anchovy Project:

They were planning on opening Anchovy Bar in San Francisco before COVID-19 shut everything down. I hope this pandemic doesn’t kill the project. We need more places like this.

Updated COVID-19 Numbers (March 20, 2020) and Thoughts

Update: A new iteration is now available:

My morning ritual for the past week has been to update my COVID-19 spreadsheet and ponder my chart. Here’s the latest:

On the one hand, if you compare it to last week’s chart, it’s not a happy result for those of us in the U.S. (Italy’s curve might be flattening. We’ll see next week.) On the other hand, remember that this is a lagging indicator. This past week’s line was essentially pre-determined by what happened the previous week. Earlier this week, the Bay Area instituted shelter-in-place. Shortly thereafter, California made it state-wide, and New York and Illinois followed suit after that. We’ll see if this has any noticeable impact next week.

I made one slight tweak to the graph (adding labels to the axes; thanks to Kate Wing for the gentle scolding). I’d like to change the gridlines on the x-axis to every seven days, but can’t do that in Google Sheets. Not a huge deal. I’d also like to experiment with a log 2 graph (versus log 10) on the y-axis to more easily show how many days it takes for new cases to double, but again, can’t do that from Google Sheets. Again, not a big deal. I’d also like to do a region-by-region analysis, as suggested by many others and made possible by David Janes’ data, but haven’t gotten around to that yet.

I started doing all of this as an exercise in self-care. I wanted to understand what was happening, and I found what I was reading to be not just largely unhelpful, but actually debilitating. This has helped a lot. There is something very calming about looking up numbers, plugging them into a spreadsheet, and pondering the results, even if the results aren’t very good. (Come to think of it, this also played a huge role in helping me achieve better work-life balance, so it might be a pattern.) I haven’t been able to avoid the media as much as I hoped, but it’s helped me make sense of what I’m seeing and ignore articles and missives that are generally unhelpful or worse. It’s also validating when folks who understand this stuff far better than me are coming to similar conclusions.

I’ve loved seeing friends and others play with the data as well. One of the best websites I’ve seen is Covid Act Now, which shows state-by-state projections based on hospital capacity and what we understand about different interventions. They’ve also shared their model openly, and they’re posting the right disclaimers. (Good rule of thumb: Be skeptical of anyone who claims certainty about their conclusions unless they’re an epidemiologist, and even then, take everything with a grain of salt.)

I’m also inspired by everyone working on the front lines — from health care workers to domestic workers — and to those who are doing their part to support those who are. (Hat tip to Jon Stahl for sharing the amazing work that Carl Coryell-Martin instigated, for example.) Stay safe everyone, stay at home if you can, and be well.