Visualising An Outbreak: Mapping Confirmed Wuhan Coronavirus Cases In Singapore

It’s hard to get a clear picture of the worsening coronavirus outbreak from the daily drip of piecemeal information. Here are some charts for a better overview of the outbreak in Singapore.

If you are keeping track of the worsening Wuhan Coronavirus outbreak in Singapore, the flurry of daily media reports and Government statements are great for staying on top of the latest developments.

But you’ll likely struggle to picture the overall situation or remember the connections between some of the 40 confirmed cases Singapore has announced thus far, given the steady emergence of new cases and the piecemeal nature of the updates from the Singapore Health Ministry.

The charts here are my attempts at figuring out better ways of presenting the data and making them more understandable for the public. This current set is updated with information from the ministry’s press release on February 8, and I’ll keep the charts as up-to-date as possible.


The numbering convention for the confirmed Wuhan coronavirus cases in this post follows the chronological order of the all-text announcements by the Health Ministry since January 23, when the first confirmed case was announced. All the releases can be found here.

Do note that there is a difference in some cases between the date of the ministry’s announcement, and the actual time and date when a patient tested positive for the virus. The patient in the 17th confirmed case, for instance, tested positive at 11pm on January 31, but news of the case was published in the press release on February 1.

I included Malaysia’s first three cases in two of the charts as the patients are family members of Singapore’s first confirmed Wuhan coronavirus case. They travelled together from Wuhan to Singapore on January 20 before a splinter group travelled to Johor Bahru on January 23, and are in effect part of the same cluster. But the three cases in Malaysia don’t add to the official count in Singapore.

And importantly, the arrow lines in several of the charts below indicate relationships, and not the direction by which the infection had spread. It is unclear, for now, who infected whom in the various clusters.


Network graphs are generally complex, and can be hard to interpret when large number of cases are involved.

But in Singapore’s case, the relatively small number of patients who have tested positive for the Wuhan coronavirus, provisionally named 2019-nCoV, allow us to plot fairly readable “network graphs” that illustrate the connections and overall situation at a glance, as the chart below shows.

Chart updated as of Feb 8 2020. Arrows indicate relationships, *not* route of infection.

At a glance, we can tell which of the 40 cases are connected (how and to whom). There are at least three clusters and five families among these cases, illustrating the vulnerability of the closest contacts of an infected person.

Most of the confirmed cases are said to be in a stable condition, with two patients having been discharged (Case #7 on February 4 and Case #2 on February 7).

But four other patients have seen their conditions take a turn for the worse, and are in critical condition in the intensive care unit. The health ministry did not identify these four critically ill patients.

The overall chart has also been evolving. Between February 7 and January 23, the locally transmitted cases in Singapore had no known links to the imported cases.

That changed on February 8, when the health ministry announced a suspected cluster of five confirmed cases involving two Wuhan residents and three Singaporeans. Their common connection is having visited The Life Church and Missions Singapore at Paya Lebar Road. But it is unclear how these five patients are connected, or if they even knew other.

The biggest cluster so far involve four workers at health product shop Yong Thai Hang, as well as five of their family members and associates. This cluster was sparked off by extensive contact between the Yong Thai Hang staff and a Chinese tour group that had two 2019-nCoV infected travellers.

The third cluster involves three Singaporeans who attended a conference at the Grand Hyatt hotel in Orchard Road, which included participants from Hubei and other parts of China. Several other conference attendees, including those from Malaysia and South Korea, have subsequently tested positive for 2019-nCoV as well.

As the outbreak worsens in the coming days and weeks, charts like this could be a more efficient way of visualising the key clusters.

Note: This is not a traditional network graph of course, and was laid out manually on Google Sheets due to the need for detailed annotations. What I did instead was to borrow from the way data is organised in network charts. As the number of confirmed cases grow, it’ll make better sense to plot a “proper” network graph via tools like Gephi or Neo4j.


Here’s a closer look at the locally transmitted 2019-nCoV cases, the firsts of which were announced on February 4, about 12 days after the first imported case was announced on January 23.

Chart updated as of Feb 8 2020. Arrows indicate relationships, *not* route of infection.

I won’t rehash the details in the media reports and the Health Ministry press releases.

Cases #29, #37 and #35 are so far not linked to any known cases, though the connections could be established in the coming days, as we have seen with The Life Church and Missions Singapore cluster. Patient 35 is a taxi driver, and Patient 37 is a private hire car driver, meaning both could have picked up infected patients at some point.

What’s interesting about the main Yong Thai Hang cluster is the relatively long-period between contact with the source of infection (mainland Chinese tourists from southwestern Guanxi province) on January 23 and testing positive for the Sars-like coronavirus.

In fact, Patient #19, a 28-year-old Singapore permanent resident, was discharged from Tan Tock Seng Hospital on January 30 after her chest x-ray came back negative for pneumonia.

She had developed fever and a sore throat a day earlier, and sought treatment at a regular clinic that same day. It was only on her second visit to another hospital — Singapore General Hospital this time, on February 3 — that she was diagnosed with pneumonia and subsequently isolated as a suspect case, according to the health ministry.

By then, it appeared that Patient #19 had already passed the virus on to other members of her household — her husband, 45, their 6-month-old son, and their domestic helper, a 44-year-old Indonesian national who reported experiencing symptoms of the 2019-nCoV on February 2.

Patient #20, the colleague of Patient #19 at the Yong Thai Hang health products shop where they were exposed to mainland Chinese travellers, started experiencing symptoms of the coronavirus infection even earlier, on January 25. This is four days before Patient 19 said she developed a fever and sore throat.

The Health Ministry gave no information about what Patient #20 did in the nine days between January 25 and February 3, when the 48-year-old finally turned up at the National Centre for Infectious Diseases (NCID).

Much is unknown about this new strain of the coronavirus, with estimates of its incubation period ranging from two days to two weeks. An infected patient can unwittingly spread the virus within his or her family and social circle during this fairly long period, as we have seen with Patient 19.

As that classic saying goes: “Absence of evidence is not evidence of absence.”


One of the most popular travel itineraries for mainland Chinese tourists heading to Southeast Asia is the so-called “Xin-Ma-Tai” (新马泰) route involving Singapore, Malaysia, Thailand. It is no surprise then that Singapore and Malaysia’s respective first imported 2019-nCoV cluster would come from the same Wuhan family.

Chart updated as of Feb 6 2020. Arrows indicate relationships, *not* route of infection.

Patient 1 came down with fever and cough on January 22, two days after he and his family arrived in Singapore from Wuhan, the epicenter of the current coronavirus outbreak which has killed over 600 people and infected nearly 30,000 people, mostly in China.

His 37-year-old son was isolated as a suspect case a day later as he had also shown signs of infection. But the rest of Patient 1’s family continued on their travels, and headed to Malaysia via Johor Bahru on January 23.

Malaysian health authorities confirmed two days later, on January 25th, that Patient 1’s wife and two grandsons, aged two and 11, had tested positive for the coronavirus.


Details are scant for these four mini-clusters, beyond factual details about their time in Singapore prior to testing positive for the Wuhan coronavirus.

Again, the variance between the dates of their arrival in Singapore and the confirmation of their 2019-nCoV infection is striking. This can vary from three days, in case of Patient #2, to 10 days for Patient #9.

Take not that the second imported cluster, on the left of the chart below, is now part of a local transmission cluster as well involving three Singaporeans who went to the The Life Church and Missions Singapore.

Chart updated as of Feb 6 2020. Arrows indicate relationships, *not* route of infection.

It is unclear if the patients in Imported Clusters 4 and 5, all Wuhan residents who flew into Singapore on January 22, arrived on the same flight. If so, they should form a single cluster. But that’s no clarity on this from the authorities, for now.

Chart updated as of Feb 6 2020. Arrows indicate relationships, *not* route of infection.


On January 30, a specially arranged Scoot flight flew 92 Singaporeans back from Wuhan. Two of them tested positive for 2019-nCoV a day later, while the other pair did not do so until four days later on Feb 3.

The second pair of evacuees, Patients #22 and #23, showed no symptoms despite testing positive for the virus, the Health Ministry said, a development that points to the complexities involved in containing the outbreak.

Chart updated as of Feb 6 2020. Arrows indicate relationships, *not* route of infection.

Since January 23, the Health Ministry has also identified six “standalone” imported cases of 2019-nCoV infection, all involving Wuhan residents. One of them, Patient #7, has recovered and was discharged on February 4 — eight days after he tested positive for the virus.

I’ll be working on some interactive charts soon, and hope to share a detailed CSV file as well.

In the meantime, remember to wash your hands frequently and observe good personal hygiene.

As always, if you spot any errors, ping me @

Twitter: @chinhon


Data Science | Media | Politics

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store