A chart of daily cases of COVID-19 in a Russian region looks suspiciously level to me - is this so from the statistics viewpoint? Below is a daily chart of newly-detected COVID infections in Krasnodar Krai, a region of Russia, from April 29 to May 19. The population of the region is 5.5 million people.
I read about it and wondered - does this (relatively smooth dynamics of new cases) look okay from the statistical standpoint? Or does this look suspicious? Can a curve be so level during an epidemic without any tinkering with the data by authorities of the region? In my home region, Sverdlovsk Oblast, for example, the chart is much more chaotic.
I'm an amateur in statistics, so maybe I'm wrong and this chart is nothing out of the ordinary.



According to a news report from 18 May 2020, a total of 136695 tests for COVID-19 had been made in the region since the start of the epidemic period and up to that day.
As of 21 May 2020, a total of 2974 infections have been recorded in the region.
P.S. Here's a link I found to a page with better-looking statistics, and covering a longer period, specifically for Krasnodar Krai. On that page, you can hover your cursor over the chart to get specific numbers for the day. (The title uses term "daily elicited" number of cases, and the bar caption "daily confirmed" number of cases):



 A: It is decidedly out of the ordinary.
The reason is that counts like these tend to have Poisson distributions.  This implies their inherent variance equals the count.  For counts near $100,$ that variance of $100$ means the standard deviations are nearly $10.$ Unless there is extreme serial correlation of the results (which is not biologically or medically plausible), this means the majority of individual values ought to deviate randomly from the underlying hypothesized "true" rate by up to $10$ (above and below) and, in an appreciable number of cases (around a third of them all) should deviate by more than that.
This is difficult to test in a truly robust manner, but one way would be to overfit the data, attempting to describe them very accurately, and see how large the residuals tend to be.  Here, for instance, are two such fits, a lowess smooth and an overfit Poisson GLM:

The variance of the residuals for this Generalized Linear Model (GLM) fit (on a logit scale) is only $0.07.$  For other models with (visually) close fits the variance tends to be from $0.05$ to $0.10.$ This is too small.
How can you know?  Bootstrap it.  I chose a parametric bootstrap in which the data are replaced by independent Poisson values drawn from distributions whose parameters equal the predicted values.  Here is one such bootstrapped dataset:

You can see how much more the individual values fluctuate than before, and by how much.
Doing this $2000$ times produced $2001$ variances (in two or three seconds of computation).  Here is their histogram:

The vertical red line marks the value of the variance for the data.
(In a well-fit model, the mean of this histogram should be close to $1.$  The mean is $0.75,$ a little less than $1,$ giving an indication of the degree of overfitting.)
The p-value for this test is the fraction of those $2001$ variances that are equal to or less than the observed variance.  Since every bootstrapped variance was larger, the p-value is only $1/2001,$ essentially zero.
I repeated this calculation for other models.  In the R code below, the models vary according to the number of knots k and degree d of the spline.  In every case the p-value remained at $1/2001.$
This confirms the suspicious look of the data.  Indeed, if you hadn't stated that these are counts of cases, I would have guessed they were percentages of something.  For percentages near $100$ the variation will be very much less than in this Poisson model and the data would not look so suspicious.

This is the code that produced the first and third figures.  (A slight variant produced the second, replacing X by X0 at the beginning.)
y <- c(63, 66, 66, 79, 82, 96, 97, 97, 99, 99, 98, 99, 98, 
       99, 95, 97, 99, 92, 95, 94, 93)
X <- data.frame(x=seq_along(y), y=y)

library(splines)
k <- 6
d <- 4
form <- y ~ bs(x, knots=k, degree=d)
fit <- glm(form, data=X, family="poisson")
X$y.hat <- predict(fit, type="response")

library(ggplot2)
ggplot(X, aes(x,y)) + 
  geom_point() + 
  geom_smooth(span=0.4) + 
  geom_line(aes(x, y.hat), size=1.25) + 
  xlab("Day") + ylab("Count") + 
  ggtitle("Data with Smooth (Blue) and GLM Fit (Black)",
          paste(k, "knots of degree", d))

stat <- function(fit) var(residuals(fit))
X0 <- X
set.seed(17)
sim <- replicate(2e3, {
  X0$y <- rpois(nrow(X0), X0$y.hat)
  stat(glm(form, data=X0, family="poisson"))
})

z <- stat(fit)
p <- mean(c(1, sim <= z))
hist(c(z, sim), breaks=25, col="#f0f0f0",
     xlab = "Residual Variance", 
     main=paste("Bootstrapped variances; p =", round(p, log10(length(sim)))))
abline(v = z, col='Red', lwd=2)

A: Interesting points from everyone. Let me contradict some. 
1) Why Poisson? Cases generation process is intristically interdependent as a pandemic interaction between ill and healthy, so case occurence in a time interval maybe affected by the previous interval occurences. The dependency may be complicated but strong.
UDPATE (as of May 23rd)
1.1) Imagine the physics of the process. 


*

*a) A person is healthy ->

*b) They get infected from a covid-positive one ->

*c) they fill sick and go to a hospital ->

*d) they get screened after - and very likely - waiting in line, or
time table slot ->

*e) the lab processes tests and determines new positives ->

*f) a report goes to a ministry and gets summarized for a daily
report.


I would like to insist again, after long discussion and downvotings I got, that when you see the stage F reports, you should understand that events occurred as a function of a lot of human interactions, and it is important they were accumulated  to pass a "bottleneck" of either: their own time to visit a doctor, the doctor appointment time table, or laboratory test processing limits. All of these make it non-Poissonian, as we don't use the Poisson for events that wait in a line. I think that it is mostly about lab tests that are made by humans who work with average capacity and cannot process too many per day. It is also possible that the final reporting stage accumulates information in a sort of buckets.
My point is that it is not Poisson, or generalization. It is the "Poisson with waiting in line and data accumulation in time periods". I don't see 100% evidence of "Soviet-style data manipulations". It could be just bulks of pre-processed data up to report.
2) For the Krasnodar region the daily mean seems to be non-stationary. It is not good at all to approach these data from Poisson view, or at least one should take only the stationary part of it.
These points are about 2 major Possion distribution assumptions violations.
3) Why 100 tests per day? It is official information that in Russia (and I am in Russia, reading news constantly) there were 7.5 million tests made so far, and about 330,000 cases confirmed (as of May 22nd). The proportion of positives is less than 5%. With this, you should expect at least 2,000 tests per day allowed. This could be real, as the tests are scarce and expensive items and not only in the Krasnodar, Russia, or Europe. It is everywhere the same. @Aksakal

(source: https://yandex.ru/covid19/stat?utm_source=main_title&geoId=225)
4) Why ever would you think these are "Soviet data"? Look at the World data for new covid cases. It is extremely low-variance if you think it must be Poisson (a sum of Poissons is a Poisson). Is the World "Soviet" (I guess you mean lying?) then? @Ben - Reinstate Monica

(source: https://yandex.ru/covid19/stat?utm_source=main_title&geoId=225)
So, it seems to me that Statistics application in the case of pandemic is a dangerous thing. Lots of assumptions of all kinds must be true to conclude what have been concluded.
UPDATE
To address the point about the world data under/overdispersion,
library(data.table)
library(magrittr)

dat <- read.csv(url('https://covid.ourworldindata.org/data/owid-covid-data.csv'))

setDT(dat)

dt <- 
    dat[location == 'World', sum(new_cases), date] %>%
    .[, date:= as.Date(date)] %>% 
    .[date >= '2020-04-01'] %>% 
    setorder(date)

min(dt$V1)

max(dt$V1)

mean(dt$V1)

var(dt$V1)

var(dt$V1) / mean(dt$V1) # huge overdispersion, indeed

plot(dt$V1,type='l')

acf(dt$V1)

I got data for April, 1st till today (as a more stationary, plateu phase).

The calculation showed that variance to dispersion ratio is 1083. This is huge overdispersion. My naked-eye analysis was wrong.
There is significant weekly autocorrelation present.

This can be one of the reasons for higher variance, but is it enough? And why is there a daily pattern? Is it still the Poisson process or lying statistics worldwide?
A: I will just mention one aspect that I haven't seen mentioned in the other answers. The problem with any analysis that states that this is significantly out of the ordinary is that it doesn't take into account that the data have been selected based on looking strange. At least I'd assume that the thread opener has not only seen these data but also other data sets of similar type (maybe not even consciously, but in the media without noticing because they didn't seem any special - but I would expect somebody who writes a posting like this to have seen more consciously). The question to address is therefore not whether the data, seen as isolated, are significantly different from what could be expected, but rather whether, if everything's normal (not meant as in "normally distributed", you know what I mean), any data set like this or with a different pattern that would also prompt the thread opener to post here could be expected to be among all those they see. As we don't know what they have seen, that's pretty hard to assess, unless we come up with a p-value of $10^{-10}$ which would still be significant adjusting for almost any number of multiple tests.
Another way of testing this would be to make predictions for the future based on what the data show, and then test whether the strange trend goes on with observations that were not part of those that led to picking this data set.
Of course also the other answer that states that this kind of dodgy pattern also occurs in other regions can contribute some reassurance that something meaningful is going on because it isn't then such a special thing to pick. However the point I want to make is that for whatever analysis, selection bias should not be forgotten.      
A: Krasnodar
The data for a region is clearly not realistic in terms of its dispersion. Here's a data on Krasnodar town. The sample average is 34 in May, and the dispersion is 8.7.

This is more than Poisson distribution would suggest, where the dispersion is the square root of average, i.e. 5.9. This is overdispersed but the sample size is quite small so it's hard to simply reject Poisson distribution.
The town has a population near 1M people.
However, when we jump into Kransodar krai with population of 5.5M, all of a sudden the dispersion collapses. In your plot the new cases average around 100, but the dispersion is 1-2. In Poisson you'd expect the dispersion of 10. Why would the capital be overdispersed but the whole region would be severy underdispersed? It doesnt make sense to me.
Also where did all the dispersion from the capital of the region go? "It's inconceivable!" (c) to think that the regional incidence is very strongly negatively correlated with its capital. Here's a scatter plot of the cases outside Krasnodar in the region vs Krasnodar town.

Source
chart: source: https://www.yuga.ru/media/d7/69/photo_2020-05-21_10-54-10__cr75et3.jpg
scraped data:
14
45
37
37
32
25
33
40
47
40
33
38
47
25
37
35
20
25
30
37
43
Russia
@AlexeyBurnakov pulled the chart for entire Russia:

I scraped the data for May, and it's severely overdispersed. The average is 10K but the variance is 756K, with dispersion 870 much higher than Poisson process would suggest. Hence, the overall Russia data supports my claim that Krasnodar Krai data is abnormal. 
9623
10633
10581
10102
10559
11231
10699
10817
11012
11656
10899
10028
9974
10598
9200
9709
8926
9263
8764
8849
8894
Source
https://yandex.ru/covid19/stat?utm_source=main_title&geoId=225
