1 Notice

This report will no longer be produced after 29 July 2022. It appears some of the data sources continue to be updated and this report will continue if the case data continues to be updated.

2 Introduction

This paper contains estimates for the effective reproduction number \(R_{t,m}\) over time \(t\) in various provinces \(m\) of South Africa. This is done using the methodology as described in [1]. These have been implemented in R using EpiEstim package [2] which is what is used here. The methodology and assumptions are described in more detail here.

This paper and it’s results should be updated roughly daily and is available online.

3 Updates

As this paper is updated over time this section will summarise significant changes. The code producing this paper is tracked using Git. The Git commit hash for this project at the time of generating this paper was 6cab0e089bd06c9688728ab585072be9bce67169.

The following major updates have been made:

  • A major update made on 29 March 2021 was to switch from data based on cases reported as captured in [3] to a data source that contains cases by date the specimen was received [4].
  • A further update on 17 April 2021 was to adjust cases for public holidays and on 18 April 2021 basic testing data was also added.
  • On 30 April 2021 analysis of district municipality data was added.
  • On 2 May 2021 and update was made to include allowance for late reported cases. Instead of only reporting based on cases more than 3 days ago the report was adjusted to use all cases reported to date but specific provisions for late reported cases was added to allow for the fact that cases by specimen received date not complete for the most recent days and are revised upwards over subsequent days.
  • On 15 May 2021 the test results were adjusted as the source indicated tests were by specimen received date. However upon review it became clear the source is supplying tests by reported date and the calculation was adjusted to follow this.
  • On 17 May 2021 a fixed was made for an off by one day error when joining case data to test data when calculating the percentage testing positive.
  • On 29 May 2021 plots related to vaccinations (per [3]) were added to this report.
  • A further update on 29 May 2021 was made. All plots and maps were updated to consistently not plot reproduction number estimates where the 95% confidence interval associated with that estimate is wider than 1.
  • On 1 June 2021 the late reported cases allowance was updated to allow for trends in cases and consequently a weekday adjustment factor was also included in the model.
  • On 13 September 2021 vaccination plots were removed from this report.
  • On 12 December 2021 this was adjusted to allow for longer potential delays in case reporting and various other minor adjustments.
  • On 17 December 2021 trend adjustment was removed from late reported cases as it was producing high case estimates.
  • On 21 December 2021 the following changes were made:
    • Incorporate hospital admissions and hospital deaths reporting.
    • Also estimate \(R_t\) based on hospital admissions and hospital deaths.
    • Add crude ratios based on above.
    • Remove animated map.
  • On 23 December 2021 Excess Deaths were added to this report.
  • On 23 April 2022 Wave 5 was added.
  • On 28 July 2022 a notification about the report possibly ceasing was added.
  • Further tweaks were made on 8 August 2022 to ensure report works with intermittent data.

4 Data

4.1 Data Source

4.1.1 Cases

Case data is extracted from the NICD National COVID-19 Daily Report [4]. This contains the daily cases reported by the NICD for South Africa by province. Data is shown by specimen reported date. Most recent data is excluded due to incomplete reporting of tests in last number of days.

Further data with regard to cases by report date are extracted from [3].

This report contains data as released at 2023-04-02 19:04:34 and contains cases up to specimen received date 2023-03-30.

4.1.2 Hospital Admissions and Hospital Deaths

Hospital admissions and death data is extracted from [3] which captures the NICD Daily Hospital Surveillance (DATCOV) [5]. These contains reported cumulative admissions and cumulative reported hospital deaths on each day. This report contains data as reported up to 2022-12-23.

4.1.3 Excess Deaths

Excess deaths are extracted from [6] and later reports. This report contains data up until the week ending 2022-12-10.

4.2 Data Fixes

4.2.1 Case Data

The following fixes are applied to case data:

  1. Calculate daily new cases from cumulative data captured.
  2. Add records (with 0 case count) in periods where no cases were recorded.
  3. Data reported each day is stored to enable allowance for late reported cases to be estimated.
  4. The sum of the districts do not add up to provinces as not all cases are allocated to a district. These additional cases are allocated in proportion to other cases during 7 days prior (both for historic data and the latest data set).

4.2.2 Hospital Admissions and Hospital Deaths

The daily cumulative admissions and hospital deaths reported in the daily PDFs were captured. There are some inconsistencies in that data though. To correct for this the following adjustments were made:

  1. Public and private figures are aggregated by province and day.
  2. Figures reported on 23 Nov are removed from the analysis as they are much higher than the cumulative figures reported the next day.
  3. Anywhere a cumulative figures that are lower than the day before are removed.
  4. Data capturing issues and the removal of figures under the point in above results in gaps in the daily data. These are filled by linear interpolation of cumulative figures between the available dates.
  5. Incremental daily admissions and hospital deaths are then calculated from the resulting cumulative data.

4.2.3 Excess Deaths

Excess deaths is transformed as follows:

  1. Province and district names are mapped to consistent naming.
  2. Given that all other data is daily, weekly data is converted to daily be uniformly allocating weekly excess deaths to days in the week.

4.3 Allowance for Late Reported Cases

Late reported cases play a role as the data we are using are by specimen received date. Cases are being added to dates in the past as the data gets updated. By keeping data released on a daily basis comparisons can be made to analyse reporting delays. In most cases those are only a couple of days later, but in some cases these are further out.

Late reported claims are estimated using a model that models the reporting of claims as a function of:

  • Delay since specimen received date assuming no cases are reported after 14 days.
  • The delay pattern is assumed to be consistent within provinces but potentially varied by day of week.
  • Province and district
  • The specimen reported date.

Only data that were reported in last 21 days are used, to ensure data reflects recent reporting delay patterns.

No allowance for late reported hopsital admissions and deaths is possible as data is only available by date reported.

4.4 Adjustments for Public Holidays

Public holidays tend to have lower number of cases received and results in distortions of the estimation of the reproduction number over time. Below we attempt to adjust for these discrepancies.

Public holiday dates are obtained from [7]

For each province counts of cases is then modelled as a function of:

  • Week
  • Day of Week
  • Public Holiday

The impact of public holidays are then removed by observing the impact of public holidays in the model and reversing that out in the data. This has the effect of increasing the observed cases on public holidays and reducing them slightly on all other days. This effect is dependent on the province and day of the week.

No adjustments for pulbic holidays are made for admissions and deaths. Data is by date reported which makes this difficult.

5 Methodology

The methodology is described in detail here. Here we estimate the effective reproduction number on cases and admissions but not hospital deaths as the quality of reporting of hospital deaths is not of sufficient quality.

6 Results

6.1 National

6.1.1 Tests

Below raw numbers of test by date reported are plotted. Note this is not by specimen received date, so, for example, no adjustment is made for old cases/tests that were loaded on 23 November 2021. A 7-day moving average is also plotted. No adjustment is made for public holidays for this data.

Tests

Tests

Tests for Last 30 Days

Tests for Last 30 Days

6.1.2 Percentage testing positive

Below the percentage testing positive is plotted by reported date, so, for example, no adjustment is made for old cases/tests that were loaded on 23 November 2021. A 7-day sliding window percentage is also plotted. No adjustment is made for public holidays or delays for this data as the assumption is that the numerator and denominator should be similarly impacted (both are by date reported).

Percentage Testing Positive

Percentage Testing Positive

Percentage Testing Positive for Last 30-days

Percentage Testing Positive for Last 30-days

6.1.3 Allowance for Late Reported Cases

Below the estimations for daily cases are plotted against the cases reported to date for the last 14 days. More recent dates are not fully reported yet and are increased more to the estimated levels.

Reported and Estimated Daily Cases for South Africa

Reported and Estimated Daily Cases for South Africa

6.1.4 Adjustments for Public Holidays to Cases

Cases before and after adjustment for public holidays for South Africa are shown below for last 60 days. Cases are increased on days of public holidays and reduced on other days. Weekends are not impacted significantly.

Further in this report the adjusted cases are used.

Unadjusted and Adjusted Daily Cases for South Africa for last 60 days

Unadjusted and Adjusted Daily Cases for South Africa for last 60 days

6.1.5 Cases

This report uses cases by specimen received date. Below the cases are tabulated by reporting date and how many days before the report date the specimens were received. The “-1” column is the number of cases reported on a particular date where specimens were received the day before the report date. “-2” is the previous day etc.

On some days the report is not run in which case the reported cases may not be stored and thus the calculation below would not be possible. Those dates will be missing from the table.

The data used in the report is mainly captured from [4] as it contains data by specimen received date. Totals from the Department of Health / NICD as captured in [3] are also shown. There are minor differences from time to time.

Tabulation of cases by reporting date and days since specimen received
Report Date -1 -2 -3 -4 -5 -6 -7 Older Total DoH
2023-03-13 94 205 329 132 8 2 3 86 859 866
2023-03-14 NA 0 0 0 0 0 0 3 NA 0
2023-03-15 NA NA 0 0 0 0 0 -9 NA 0
2023-03-16 277 418 508 39 1 2 0 14 1,259 1,259
2023-03-17 NA 0 0 0 0 0 0 -12 NA 0
2023-03-18 NA NA 0 0 0 0 0 5 NA 0
2023-03-19 NA NA NA 0 0 0 0 11 NA 0
2023-03-20 1 0 0 0 0 0 0 -8 -7 1
2023-03-21 220 159 193 343 380 170 2 3 1,470 1,482
2023-03-22 109 85 2 1 0 0 0 -6 191 198
2023-03-23 330 39 4 0 0 0 0 5 378 380
2023-03-24 204 156 1 0 0 0 0 -7 354 359
2023-03-25 169 119 0 0 0 0 0 11 299 296
2023-03-26 NA 0 0 0 0 0 0 3 NA 0
2023-03-27 85 143 89 8 0 0 0 0 325 326
2023-03-28 219 35 5 8 0 0 0 5 272 272
2023-03-29 NA 0 0 0 0 0 0 -5 NA 0
2023-03-30 NA NA 0 0 0 0 0 -7 NA 0
2023-03-31 181 120 5 0 0 0 0 13 319 315
2023-04-01 NA 0 0 0 0 0 0 -15 NA 0
2023-04-02 NA NA 0 0 0 0 0 5 NA 0

Cases are tabulated by specimen received date below. Cases include estimates for late reporting in recent days as well as adjustments for any public holidays. A centred 7-day moving average is also shown. The peak daily cases in previous waves (as measured by the moving average) is also shown.

Tabulation of cases in South Africa by recent specimen received date (including peak cases in prior waves)
Specimen Received Date Cases 7-day Moving Average Comment
2020-07-11 7,836 11,476 Wave 1 Peak
2021-01-06 23,097 19,374 Wave 2 Peak
2021-07-03 12,487 19,537 Wave 3 Peak
2021-12-12 8,398 21,980 Wave 4 Peak
2022-05-06 8,173 7,575 Wave 5 Peak (to date)

The above are based on the following dates:

  • Wave 1 started on 2020-01-01.
  • Wave 2 started on 2020-10-01.
  • Wave 3 started on 2021-04-01.
  • Wave 4 started on 2021-11-01.
  • Wave 5 started on 2022-04-01.

Below a 7-day moving average daily case is plotted by on a log scale since start of the epidemic. Cases are plotted by specimen received date.

South African Daily Cases (7-day moving average)

South African Daily Cases (7-day moving average)

Below the above chart is repeated for the last 30-days:

South African Daily Cases for Last 30-days (7-day moving average)

South African Daily Cases for Last 30-days (7-day moving average)

Below a 7-day moving average daily case count is plotted by province on a log scale since start of the epidemic:

Daily Cases by Province (7-day moving average)

Daily Cases by Province (7-day moving average)

Below the above chart is repeated for the last 30-days:

Daily Cases for Last 30-days by Province (7-day moving average)

Daily Cases for Last 30-days by Province (7-day moving average)

6.1.6 Hospital Admissions

Admissions are tabulated by report date below. A centred 7-day moving average is also shown. The peak daily admissions in previous waves (as measured by the moving average) is also shown.

Tabulation of Hospital Admissions in South Africa by reported date (including peak admissions in prior waves)
Reported Date Hospital Admissions 7-day Moving Average Comment
2020-07-31 694 1,436 Wave 1 Peak
2021-01-24 885 3,677 Wave 2 Peak
2021-07-12 1,890 2,129 Wave 3 Peak
2021-12-21 2,524 1,413 Wave 4 Peak
2022-05-12 537 732 Wave 5 Peak (to date)
2022-12-16 0 34
2022-12-17 25 31
2022-12-18 25 29
2022-12-19 19 27
2022-12-20 56 29
2022-12-21 29 NA
2022-12-22 33 NA
2022-12-23 16 NA

The above are based on the following dates:

  • Wave 1 started on 2020-01-01.
  • Wave 2 started on 2020-10-01.
  • Wave 3 started on 2021-04-01.
  • Wave 4 started on 2021-11-01.
  • Wave 5 started on 2022-04-01.

Below a 7-day moving average of daily hospital admissions is plotted by on a log scale since start of the epidemic. Note admissions are plotted by reported date.

South African Daily Hospital Admissions (7-day moving average)

South African Daily Hospital Admissions (7-day moving average)

Below the above chart is repeated for the last 30-days:

South African Daily Hospital Admissions for Last 30-days (7-day moving average)

South African Daily Hospital Admissions for Last 30-days (7-day moving average)

Below a 7-day moving average daily admissions are plotted by province on a log scale since start of the epidemic:

Daily Hospital Admissions by Province (7-day moving average)

Daily Hospital Admissions by Province (7-day moving average)

Below the above chart is repeated for the last 30-days:

Daily Hospital Admissions for Last 30-days by Province (7-day moving average)

Daily Hospital Admissions for Last 30-days by Province (7-day moving average)

6.1.7 Hospital Deaths

Hospital deaths are tabulated by report date below. A centred 7-day moving average is also shown. The peak daily deaths in previous waves (as measured by the moving average) is also shown.

Note that hospital deaths underestimates total COVID-19 deaths in South Africa.

Tabulation of Hospital Deaths in South Africa by reported date (including peak deaths in prior waves)
Reported Date Hospital Deaths 7-day Moving Average Comment
2020-08-04 204 218 Wave 1 Peak
2021-01-14 672 637 Wave 2 Peak
2021-07-23 642 542 Wave 3 Peak
2022-01-09 46 200 Wave 4 Peak
2022-04-17 1 64 Wave 5 Peak (to date)
2022-12-16 0 3
2022-12-17 1 2
2022-12-18 0 2
2022-12-19 1 2
2022-12-20 4 2
2022-12-21 5 NA
2022-12-22 1 NA
2022-12-23 1 NA

The above are based on the following dates:

  • Wave 1 started on 2020-01-01.
  • Wave 2 started on 2020-10-01.
  • Wave 3 started on 2021-04-01.
  • Wave 4 started on 2021-11-01.
  • Wave 5 started on 2022-04-01.

Below a 7-day moving average of daily hospital deaths is plotted by on a log scale since start of the epidemic. Note hospital deaths are plotted by reported date.

Daily Hospital Deaths (7-day moving average)

Daily Hospital Deaths (7-day moving average)

Below the above chart is repeated for the last 30-days:

South African Daily Hospital Deaths for Last 30-days (7-day moving average)

South African Daily Hospital Deaths for Last 30-days (7-day moving average)

Below a 7-day moving average daily hospital deaths are plotted by province on a log scale since start of the epidemic:

Daily Hospital Deaths by Province (7-day moving average)

Daily Hospital Deaths by Province (7-day moving average)

Below the above chart is repeated for the last 30-days:

Daily Hospital Deaths for Last 30-days by Province (7-day moving average)

Daily Hospital Deaths for Last 30-days by Province (7-day moving average)

6.1.8 Excess Deaths

Excess deaths are tabulated by report date below. A centred 7-day moving average is also shown. The peak daily deaths in previous waves (as measured by the moving average) is also shown.

Tabulation of Excess Deaths in South Africa by Date of Death (including peak deaths in prior waves)
Date of Death Excess Deaths 7-day Moving Average Comment
2020-07-22 954 954 Wave 1 Peak
2021-01-13 2,304 2,304 Wave 2 Peak
2021-07-14 1,479 1,479 Wave 3 Peak
2021-12-29 514 514 Wave 4 Peak
2022-05-25 296 296 Wave 5 Peak (to date)
2022-12-03 78 79
2022-12-04 82 80
2022-12-05 82 81
2022-12-06 82 81
2022-12-07 82 82
2022-12-08 82 NA
2022-12-09 82 NA
2022-12-10 82 NA

The above are based on the following dates:

  • Wave 1 started on 2020-01-01.
  • Wave 2 started on 2020-10-01.
  • Wave 3 started on 2021-04-01.
  • Wave 4 started on 2021-11-01.
  • Wave 5 started on 2022-04-01.

Below a 7-day moving average of daily excess deaths is plotted by on a log scale since start of the epidemic. Note excess deaths are plotted by date of death.

South African Daily Excess Deaths (7-day moving average)

South African Daily Excess Deaths (7-day moving average)

Below the above chart is repeated for the last 30-days:

South African Daily Excess Deaths for Last 30-days (7-day moving average)

South African Daily Excess Deaths for Last 30-days (7-day moving average)

Below a 7-day moving average daily excess deaths are plotted by province on a log scale since start of the epidemic:

Daily Excess Deaths by Province (7-day moving average)

Daily Excess Deaths by Province (7-day moving average)

Below the above chart is repeated for the last 30-days:

Daily Excess Deaths for Last 30-days by Province (7-day moving average)

Daily Excess Deaths for Last 30-days by Province (7-day moving average)

6.1.9 Cases, Admissions and Deaths Combined

Below a 7-day moving average daily case, admission and excess death counts are plotted by province on a log scale since start of the epidemic. Note admissions and excess deaths are plotted by reported date, whereas cases are plotted by specimen received date.

South African Daily Cases, Admissions and Deaths (7-day moving average)

South African Daily Cases, Admissions and Deaths (7-day moving average)

Below the above chart is repeated for the last 30-days:

South African Daily Cases, Admissions and Deaths for Last 30-days (7-day moving average)

South African Daily Cases, Admissions and Deaths for Last 30-days (7-day moving average)

6.1.10 Crude Ratios per Wave

Below crude rations are calculated between the waves. It’s based on the following starting dates:

  • Wave 1 started on 2020-01-01.
  • Wave 2 started on 2020-10-01.
  • Wave 3 started on 2021-04-01.
  • Wave 4 started on 2021-11-01.
  • Wave 5 started on 2022-04-01.

Below crude ratios are tabulated and plotted. These ratios are:

  • Case admissions ratio calculated as admissions divided by cases.
  • Case fatality ratio calculated as hospital deaths divided by cases (Note that COVID-19 deaths are under-reported by a significant factor in South Africa).
  • Case excess deaths ratio calculated as excess deaths divided by cases.
  • Hospital fatality ratio calculated as hospital deaths divided by admissions (Note that COVID-19 deaths are under-reported by a significant factor in South Africa).
  • Death reporting ratio calculated as hospital deaths divided by excess deaths.
Tabulation of Crude Ratios by Wave
Wave Case Admission Ratio Case Fatality Ratio Case Excess Deaths Ratio Hospital Fatality Ratio Death Reporting Ratio
South Africa Wave 1 10.2% 1.87% 6.77% 18.3% 27.6%
South Africa Wave 2 20.3% 4.40% 12.36% 21.7% 35.6%
South Africa Wave 3 13.4% 3.10% 8.37% 23.1% 37.0%
South Africa Wave 4 9.8% 0.95% 4.47% 9.7% 21.2%
South Africa Wave 5 10.5% 0.91% 10.77% 8.7% 8.5%

Below the rations above are plotted graphically:

Crude Ratios by Wave

Crude Ratios by Wave

6.1.11 Reproduction Number

Below current (last weekly) effective reproduction number estimates are tabulated for South Africa and by province.

Estimated Effective Reproduction Number for South Africa
Type Count (Per Day) Week Ending Reproduction Number [95% Confidence Interval]
South Africa cases 190 2022-12-25 0.91 [0.86 - 0.96]
South Africa hospital_admissions 29 2022-12-23 0.82 [0.71 - 0.94]
Estimated Effective Reproduction Number by Province
Province Type Count (Per Day) Week Ending Reproduction Number [95% Confidence Interval]
Eastern Cape cases 10 2022-12-25 0.92 [0.72 - 1.15]
Eastern Cape hospital_admissions 3 2022-12-23 1.57 [0.97 - 2.33]
Free State cases 5 2022-12-25 0.79 [0.55 - 1.06]
Free State hospital_admissions 1 2022-12-23 0.84 [0.41 - 1.46]
Gauteng cases 55 2022-12-25 0.86 [0.77 - 0.95]
Gauteng hospital_admissions 7 2022-12-23 0.61 [0.44 - 0.81]
KwaZulu-Natal cases 66 2022-12-25 0.99 [0.90 - 1.09]
KwaZulu-Natal hospital_admissions 9 2022-12-23 0.83 [0.64 - 1.06]
Limpopo cases 3 2022-12-25 1.02 [0.63 - 1.49]
Limpopo hospital_admissions 1 2022-12-23 2.45 [0.77 - 5.15]
Mpumalanga cases 8 2022-12-25 0.91 [0.69 - 1.15]
Mpumalanga hospital_admissions 2 2022-12-13 0.42 [0.24 - 0.67]
North West cases 3 2022-12-25 0.76 [0.49 - 1.10]
North West hospital_admissions 0 2022-09-26 0.53 [0.14 - 1.17]
Northern Cape cases 2 2022-12-25 0.64 [0.34 - 1.02]
Northern Cape hospital_admissions 1 2022-12-23 1.56 [0.50 - 3.19]
Western Cape cases 37 2022-12-25 0.93 [0.82 - 1.04]
Western Cape hospital_admissions 8 2022-12-23 0.96 [0.73 - 1.22]
Estimated Effective Reproduction Number based on Cases by Province

Estimated Effective Reproduction Number based on Cases by Province

Estimated Effective Reproduction Number based on Hospital Admissions by Province

Estimated Effective Reproduction Number based on Hospital Admissions by Province

Estimated Effective Reproduction Number by Province

Estimated Effective Reproduction Number by Province

Below the effective reproduction number for South Africa over the last 90 days are plotted together with a plot since start of the pandemic.

Estimated Effective Reproduction Number Based on Cases for South Africa over last 90 days

Estimated Effective Reproduction Number Based on Cases for South Africa over last 90 days

Estimated Effective Reproduction Number Based on Cases for South Africa since 1 April 2020

Estimated Effective Reproduction Number Based on Cases for South Africa since 1 April 2020

Estimated Effective Reproduction Number Based on Hospital Admissions for South Africa over last 90 days

Estimated Effective Reproduction Number Based on Hospital Admissions for South Africa over last 90 days

Estimated Effective Reproduction Number Based on Hospital Admissions for South Africa since 1 April 2020

Estimated Effective Reproduction Number Based on Hospital Admissions for South Africa since 1 April 2020

Estimated Effective Reproduction Number for South Africa over last 90 days

Estimated Effective Reproduction Number for South Africa over last 90 days

Estimated Effective Reproduction Number for South Africa since 1 April 2020

Estimated Effective Reproduction Number for South Africa since 1 April 2020

6.1.12 Risk Quadrants

The plots below show average daily cases over the last 7-days on the X-axis and the reproduction number on the Y-axis for each district municipality. By dividing this into 4 quadrants we can identify district municipalities with high numbers of cases and high reproduction numbers, or high cases and low reproduction numbers etc.

Values where the reproduction number exceeds 3 are plotted at 3.

Where there are very few cases (on the left of this chart), estimates for the reproduction number are more uncertain and volatile.

Risk Quadrants

6.1.13 Maps

6.1.13.1 Provinces

Below estimates of the reproductive number are plotted on a map of South Africa [8].