Skip to content

Interview Questions — COVID-19 Data Analysis

Questions an interviewer might ask about this project.


[Beginner] Why can't you compare total COVID cases between the US and Iceland directly?

Show answer

Because they have wildly different populations. The US has ~330 million people, Iceland ~370,000 — nearly 1,000× difference. The US will have more total cases simply because it has more people, regardless of how well either country managed the pandemic.

The fair comparison is per capita — cases per million people. This normalises for population size and lets you actually compare how intensely each country was affected.

cases_per_million = total_cases / population * 1_000_000

[Beginner] What's the difference between total_cases and new_cases, and why does it matter?

Show answer
  • total_cases is cumulative — a running total that only goes up
  • new_cases is the daily value — cases reported that specific day

It matters because if you want a monthly or yearly total, you must SUM(new_cases) — NOT SUM(total_cases). Summing the cumulative column would add running totals together, producing a meaningless number.

A classic beginner mistake is summing the cumulative column and reporting a number 100× too large.


[Mid-level] Why did you use a 7-day rolling average instead of the raw daily numbers?

Show answer

Raw daily COVID data had a strong weekly pattern — many countries reported fewer cases on weekends because labs and reporting offices were closed, then a catch-up spike on Mondays. This creates a sawtooth pattern that obscures the actual trend.

A 7-day rolling average smooths out this reporting artefact, revealing the genuine trajectory. It spans exactly one week, so it averages out the weekday/weekend effect.

df["new_cases_7d"] = df.groupby("location")["new_cases"].transform(
    lambda x: x.rolling(7, min_periods=1).mean()
)

Any time-series with periodic reporting noise benefits from a rolling average matched to the period of the noise.


[Mid-level] A journalist wants to publish that "Country X has the world's deadliest COVID outbreak" based on its high Case Fatality Rate. What would you tell them?

Show answer

I'd urge caution. CFR = deaths / confirmed cases. A high CFR can mean two very different things:

  1. The disease genuinely killed a high proportion of patients (severity), OR
  2. The country only tested severe/hospitalised cases, missing all the mild ones — shrinking the denominator and inflating the CFR

Many countries with "high CFR" simply had limited testing. They detected fewer total cases, so their deaths-to-cases ratio looked alarming, even if their actual outcomes were similar to better-testing countries.

I'd recommend: - Don't headline CFR as "deadliness" without the testing caveat - Use deaths per million population as a fairer severity measure - Use excess mortality if available — it's testing-independent

The responsible framing: "Country X has a high case fatality rate, but this partly reflects limited testing rather than disease severity alone."


[Mid-level] How did you handle missing values in this time-series data?

Show answer

Different columns needed different strategies based on what "missing" means:

  • new_cases / new_deaths: missing usually means "no report that day." Filling with 0 is reasonable, and the 7-day average absorbs gaps.
  • total_cases (cumulative): forward-fill within each country — a missing cumulative total is the same as the last known total.
  • Vaccination columns: these legitimately don't exist before 2021 (vaccines didn't exist). I left them NaN pre-rollout and forward-filled within the rollout period to handle reporting gaps — being careful NOT to fill pre-2021 with 0 in a way that implies vaccines existed.

The key principle: understand why a value is missing before deciding how to fill it. Blindly applying one strategy to all columns would corrupt the data.


[Senior] This project deals with data that influenced public behaviour and policy. How does that change your responsibilities as an analyst?

Show answer

It raises the stakes enormously. Most business analytics affects a quarterly report; pandemic data affected whether people wore masks, whether economies locked down, whether the public trusted institutions.

My heightened responsibilities:

  1. Default to the honest visualisation, not the dramatic one. A log scale, per-capita normalisation, and 7-day averaging are less viscerally shocking than raw exponential curves — but they're more honest. The temptation to use the scarier chart for impact must be resisted.

  2. Caveat aggressively. Every comparison needs its limitations stated: testing differences, reporting lags, attribution practices. Omitting caveats to make a cleaner story is a form of lying.

  3. Avoid false precision. Reporting "exactly 1,247,983 cases" implies a certainty the data doesn't have. Ranges and "approximately" are more honest.

  4. Consider how it will be misread. Even an honest chart can be screenshotted and shared out of context. I'd design for the misreading, not just the careful reading.

  5. Resist motivated reasoning. Whether my employer wants the data to look reassuring or alarming, my job is to present what's true, not what's wanted.

The general principle — analysts shape decisions, and presentation choices carry ethical weight — is always true. COVID just made it impossible to ignore.


← Insights and Recommendations · ← Project Overview