1 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.

2 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 95f53ecff8c47a6a6652398d3264b7ada8fcf399.

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.

3 Data

3.1 Data Source

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 2021-12-05 19:01:12.

3.2 Data Fixes

The following fixes are applied:

  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).

3.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 7 days. The delay pattern is assumed to be consistent between various provinces and districts.
  • Province and district
  • The specimen reported date.

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

3.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 [5]

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.

4 Methodology

The methodology is described in detail here.

5 Results

5.1 National

5.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

5.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

5.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

5.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

5.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
2021-11-20 393 400 86 3 0 0 0 6 888 887
2021-11-21 201 438 46 0 0 0 0 1 686 687
2021-11-22 160 144 4 0 0 0 0 3 311 312
2021-11-23 868 185 167 94 11 2 2 17,251 18,580 18,586
2021-11-24 686 584 5 3 0 0 0 4 1,282 1,275
2021-11-25 1,019 1,401 43 0 0 0 0 0 2,463 2,465
2021-11-26 1,176 1,583 67 -1 -1 1 -1 10 2,834 2,828
2021-11-27 1,266 1,686 246 7 0 0 0 -13 3,192 3,220
2021-11-28 876 1,657 334 1 4 0 0 7 2,879 2,858
2021-11-29 907 1,021 300 17 20 4 0 -1 2,268 2,273
2021-11-30 2,680 776 380 343 190 2 1 -7 4,365 4,373
2021-12-01 3,871 4,651 22 6 8 1 1 14 8,574 8,561
2021-12-04 5,274 9,849 1,170 70 5 0 -1 -5 16,362 16,366
2021-12-05 3,025 6,785 1,063 249 0 2 0 3 11,127 11,125

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,947 11,537 Wave 1 Peak
2021-01-06 23,199 19,476 Wave 2 Peak
2021-07-03 12,647 19,642 Wave 3 Peak
2021-11-28 1,702 6,454
2021-11-29 7,524 8,224
2021-11-30 11,787 9,479
2021-12-01 15,058 9,788 Wave 4 Peak (to date)
2021-12-02 15,722 NA
2021-12-03 12,281 NA
2021-12-04 4,440 NA

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

Daily Cases (7-day moving average)

Daily Cases (7-day moving average)

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

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

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)

5.1.6 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
Count (Per Day) Week Ending Reproduction Number [95% Confidence Interval]
South Africa 9,788 2021-12-04 2.45 [1.92 - 3.17]
Estimated Effective Reproduction Number by Province
Province Count (Per Day) Week Ending Reproduction Number [95% Confidence Interval]
Eastern Cape 169 2021-12-04 3.72 [2.53 - 5.22]
Free State 192 2021-12-04 3.27 [2.31 - 4.44]
Gauteng 7,033 2021-12-04 2.27 [1.77 - 2.84]
KwaZulu-Natal 568 2021-12-04 3.33 [2.33 - 4.60]
Limpopo 335 2021-12-04 2.97 [2.18 - 4.08]
Mpumalanga 392 2021-12-04 2.97 [2.12 - 4.08]
North West 412 2021-12-04 2.73 [2.07 - 3.56]
Northern Cape 55 2021-12-04 1.82 [1.52 - 2.14]
Western Cape 632 2021-12-04 2.98 [2.14 - 4.03]
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

5.1.7 Risk Quadrants

The plot 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

5.1.8 Maps

5.1.8.1 Provinces

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

5.1.8.2 District Municipalities

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