This map uses COVID-19 data for the prior 14 days and shows where the trend in cases and deaths is increasing (red = bad) or decreasing (green = good). To learn more about what the symbols mean please scroll down and click the "Legend" button.

These daily counts are determined from the authoritative timeseries cumulative counts maintained by Johns Hopkins University. The map is updated once per day at 12:05 a.m. Pacific time.

If you are not using the map controls to turn different overlay layers on/off, then you are missing much of the information that the map can show you. The map has separate overlay layers for COVID-19 cases and deaths by county, by state and totals for the USA. There are also overlay layers that just show locations with a bad trend (i.e. increasing count) and overlays to show state and/or county boundaries.

Please read the rest of these tips so you know how to determine which overlay layer is 'on' when the map opens.

When you are looking at one of the county-level overlay layers, each symbol represents data for a county. That is the reason some symbols appear to be in the middle of nowhere.

If you found this page by an internet search and have not yet seen the interactive map, then here are two links that open the map.

The following link will open the map and display the overlay layer "County bad trend in cases":,-96.328125&zoom=4&basemap=USA_basemap&overlay=County_boundaries,State_boundary,State_boundary_black,State_recent_COVID_cases&txtfile=

Open the map short link:

Each overlay that shows COVID-19 cases or deaths will display two symbols at the same location.

Circle: trend over the prior 14 days.
Triangle: trend over the prior 7 days.

Green: The trend in the number of new cases (or deaths) is decreasing. Triangle will point down.
Red: The trend in the number of new cases (or deaths) is increasing. Triangle will point up.

County boundary lines are blue.
State boundary lines are orange.

All of the overlay layers that display COVID-19 data use the same colors and counts as follows. The size of the symbols is based on the total count of cases (or deaths) over the prior 14 days. The symbols slowly increase in size based on the following count ranges.

1 - 9
10 - 49
50 - 99
100 - 499
500 - 999
1,000 - 4,999
5,000 - 9,999
10,000 - 24,999
25,000 - 49,999
50,000 - 74,999
75,000 - 99,999
100,000 - 199,999

Using the Johns Hopkins data, I have produced two maps that both show recent COVID-19 trends. One map uses recent daily counts of cases and deaths. The other map uses 7 day averages of cases and deaths. Here is the reason for why I produced the second map based on averages.

Some counties and some states either do not report cases and deaths on weekends or only partial report. That practice results in a larger than 'normal' number of cases and deaths reported on Monday. That lack of daily reporting can distort the calculation that is performed to determine if the recent trend is increasing or decreasing.

As of November 8, 2020 states that do not report on Saturday and/or Sunday include Connecticut, Louisiana, Michigan, Rhode Island. Oklahoma might be starting to skip weekend reporting. Tennessee appears to only partially report on Sundays. Also, counties in those states might not report on weekends.

A common solution for that problem is to use a running 7 day average instead of focusing on daily count data. Each 7 day average is computed by taking the daily count for a given day and averaging it together with the daily count data for the preceding 6 days.

Below are links to the two maps I am producing so you can make your own comparison. First open the daily count map and look for a green triangle (decreasing trend over prior 7 days) on any of the states listed above. Next, open the 7 day average map and look at the same state. If the triangle for that state is red (increasing trend over prior 7 days) it shows a more realistic picture of the recent trend. Click the symbol on both maps to compare the daily counts to the 7 day averages.

Open the daily count map:,-96.328125&zoom=4&basemap=USA_basemap&overlay=County_boundaries,State_boundary,State_recent_COVID_cases&txtfile=

Open the 7 day average map:,-96.328125&zoom=4&basemap=USA_basemap&overlay=County_boundaries,State_boundary,State_7_day_average_cases&txtfile=

To see the list of GIS overlays the map can display, click the basemap button (next to the "Menu" button) and look under the "Overlay" heading. Mobile users might need to scroll down.

Click an overlay to turn it on and again to turn it off.

An overlay with a number in front is 'on'. Think of each overlay as a pane of glass with some information painted on it. When multiple overlays are 'on' at the same time then the panes of glass are stacked on top of each other and you are looking down through that stack.

The highest numbered overlay is 'on top' of the stack. The 'top' overlay can be clicked to see a display of all the attribute data the GIS server has for the thing that you clicked. Sometimes that attribute data includes a link that leads to more information.

If you turn on an overlay and data does not appear on the map then maybe the GIS server hosting that data is swamped with requests for data. You could try again later.

Here is how to make a custom map link that will open GISsurfer at any location and show the data you want to see.

1. Make the map look on your screen the way you want it to look when it opens. Pay attention to which overlay layer you want to have 'on top' since only that overlay is clickable.

2. Click Menu ==> Link to this map.

The link that is displayed will replicate the map on your screen.

If you are making a link that will be centered on a state, then you might want to turn on the overlay layer that displays state lines. But if you do so then that layer is 'on top' and is the clickable layer. To fix this, simply turn off the COVID layer you want 'on top' and then turn that layer back on.

The counts you see when you click a symbol are determined from data that is posted on the Johns Hopkins GitHub page (JHU CSSE COVID-19 Data) at

Each night at 12:05 a.m. Pacific time code runs on my server that reads the Johns Hopkins timeseries files for cases and deaths in the USA. Since these files have cumulative counts, a subtraction is performed to get the new cases and deaths for the prior day. One of the result of this nightly processing is a file with the daily counts for the prior 14 days. The map displays the data contained in that file.

If you turn on an overlay that displays data by county then some counties will not have any symbol. That is because the map only looks at the prior 14 days worth of data. Those counties did not record any deaths or cases during the prior 14 days.

Each day the map will look a bit different. Some symbols that were red before are now green and vice versa. But keep in mind that the map only updates once per day. The reason for this is that Johns Hopkins only updates their GitHub files once per day.

Also the daily counts you can display with this map will no doubt be a bit different than daily counts you will see elsewhere. Cases and deaths that local health authorities log into their systems late in the day might not show up on the Johns Hopkins data until the following day.

My code that runs each night determines whether the trend in cases and deaths is increasing or decreasing by doing linear regession. One calculation looks at the prior 14 days of data and a separate calculation looks at the prior 7 days. If the slope of the line is positive then the trend is increasing. If the slope of the line is negative then the trend is decreasing. The slope calculation can be verified using the slope function that is part of excel.

The map can display some data overlays that show a "bad trend". These overlays show symbols where the 7 day trend is increasing. The map can display this data for counties or for states.

To read more about the Johns Hopkins data see the following links.

Lancet Article by Johns Hopkins. An interactive web-based dashboard to track COVID-19 in real time.


The overlay with COVID-19 testing locations was compiled by volunteers with GIS Corps. Their disclaimer says "All information is sourced from the websites of local governments and health care providers and is not authoritative."

The Johns Hopkins GitHub site has two ‘timeseries’ files with cumulative counts for COVID cases and deaths for all USA counties. I wrote code that converts all that data into daily counts.

So far I know of two research teams that are using this daily count data. One team is using statistical methods to predict future hotspots. The other team is looking at calls to crisis lines. Anyone can use this daily count data for any non-commercial purpose. If you use this daily count data in a project please credit both myself and Johns Hopkins University.

Each month two new files will start with the daily count data. One file will have the number of new cases per day during that month for all USA counties. The other file will have that same type of data for deaths.

These are csv files and also include coordinates for each county centroid. This means the files are easy to import into spreadsheet or GIS software. The files have the standard windows-type line ending (carriage return + line feed). The county FIPS code is included so this data can be merged with other datasets that also include the county FIPS code.

The addresses for the November 2020 csv files with the daily count data are shown below. To download data for other months, replace '11' with the 2 digit code for other months. This daily count data starts March 24th. My code automatically runs at night and updates the csv files for the current month. I intend to keep this process running as long as the pandemic continues.

Download COVID cases per day:

Download COVID deaths per day:

Yes, the number of new COVID19 cases and deaths in these csv files might be different than the numbers reported by county health departments. There are various reasons for any differences. For example, Hopkins counts both confirmed and probable cases. Also Hopkins ‘scrapes' data from state health department websites and that data might lag a day or two behind data on county websites.

You also will sometimes see negative numbers in these csv files. That might indicate a person who was counted as probable but then removed from the count when a negative test result was returned in a few days. Or maybe a state or county changed its definition of what constitutes a case or a death.

The map is displayed by GISsurfer which is a general purpose browser map I developed that is based on the free open-source Leaflet API (Application Program Interface).

One of the big impact features of GISsurfer is the ability to display data that is hosted on GIS (Geographical Information System) servers. Government agencies at all levels operate GIS servers.

GISsurfer will display either a touch-friendly interface or a mouse-oriented interface depending on the type of device you use to open a map.

For more information please visit the GISsurfer homepage.

The basemap button is next to the "Menu" button and always displays the name of the current basemap. If you click the basemap button then you can change the basemap and also turn the overlays on/off. Mobile uses will need to tap the basemap button and then scroll down to the "Overlays" section.

As you change basemaps and turn overlays on/off, remember that it may take a few seconds (or longer) for the data to appear on your screen. The response time varies based on how busy the server is that is hosting that data. The bandwidth and congestion of your internet connection is also a factor.

If you want to turn on an aerial basemap then "ESRI aerial clarity" is usually the best quality. Also when you turn on an aerial basemap then you likely should also turn on the overlay "ESRI roads and labels".