These data should not be considered authoritative, complete or official in any way. They are are aggregated from multiple sources and provided on a best effort basis.
All datasets are currently only available as
.csv files below and on GitHub.
Missing data is indicated by an empty cell, dates are formated as
YYYY-MM-DD, date with time as ISO 8601 with local Luxembourg time. See the schema boxes for further details.
Time series contain one row for each day with available day since the start of the pandemic (~ end of February in Luxembourg). If a data point (i.e. column) isn't available for a given day it is not imputed or filled but left missing (i.e. blank)
Files are provided for every day since data collection representing what was known at that date. Unless you are trying to analyse reporting lag you probably want use the latest data.
Data published on the government's daily update doesn't include any information to which date it is applicable to. For example reproduction numbers are only updated every 2-3 days.
timeline.csv includes all revisions, updates and additional data for past dates. This is the most complete and accurate data and what most users want to use.
If multiple sources provide a data point for a given day the latest one (or most precise for proportions) is used. Every row is then assigned the
date_published of the newest source contributing to it.
as_reported.csv only includes data as it was known on a given date. This is useful if you want to report the change in total amount of cases, tests or deaths but not to accurately represent evolution of tests or cases.
|date||Date||Day the data is applicable to|
|date_published||DateTime||Date and time the data was published or revised by the source|
|cases||Int?||Confirmed/diagnosed cases. A person is only included once, no matter how often they test positive. It's unclear if patients diagnosed but not tested are included.|
|cases_residents||Int?||Cases among residents and non-residents. These are only published once and not revised by any source and thus do not agree with the revised total of cases on any given day.|
New cases on the give day. It is unclear if this is the day the test sample is take, the analysis is made or the result is reported. Revisions are made, implying that it is not the day the result is reported.
|cases_residents_prop||Float?||Proportion of cases among residents and non-residents. This column is calculated from |
|cases_sex_f_prop||Float?||Proportion of cases by sex (female, male, non-binary and unknown)|
|cases_age_mean||Float?||Mean age of all cases.|
|active||Int?||Total cases that are considered active.|
|active_change||Int?||Change in the number of active cases.|
|recovered||Int?||Total persons infected that are considered to have recovered. (Cases are ‘recovered’ 14 days after diagnoses and 48 hours after any symptoms have disappeared.)|
|recovered_new||Int?||Change in the number of recovered cases.|
|tests||Int?||Cumulative number of persons tested for COVID-19|
|tests_residents||Int?||Total number of residents/non-residents tested for COVID-19|
Daily new tests. It is unclear if this is the day the test sample is take, the analysis is made or the result is reported. Revisions are made, implying that it is not the day the result is reported.
|tests_residents_prop||Float?||Proportion of tests among residents and non-residents. This column is calculated from |
|tests_sex_f_prop||Float?||Proportion of tests by sex (female, male, non-binary and unknown)|
|deaths||Int?||Cumulative number of deaths from COVID-19|
|deaths_new||Int?||Daily new deaths from COVID-19|
|deaths_transfer||Int?||Persons transferred to Luxembourg from other regions that died as a result of COVID-19.|
|deaths_hospital_prop||Float?||Proportion of persons that died as a result of COVID-19 in hospital or elsewhere.|
|deaths_sex_f_prop||Float?||Proportion of deaths by sex (female, male, non-binary and unknown)|
|deaths_age_mean||Float?||Mean, median, lowest and highest age of patient succumbed to COVID-19|
|hospital_total||Int?||COVID-19 patients currently hospitalised.|
|hospital_normal||Int?||See above. In normal care|
|hospital_intensive||Int?||See above. In intensive care|
|hospital_total_transfer||Int?||Current hospitalised patients transferred to Luxembourg (e.g. from Grand-Est)|
|hospital_normal_transfer||Int?||See above. In normal care|
|hospital_intensive_transfer||Int?||See above. In intensive care|
|hospital_total_change||Int?||day-to-day change of the number of COVID-19 patients currently hospitalised.|
|hospital_normal_change||Int?||See above. In normal care|
|hospital_intensive_change||Int?||See above. In intensive care|
|hospital_total_transfer_change||Int?||day-to-day change of the number of COVID-19 patients currently hospitalised transferred to Luxembourg (e.g. from Grand-Est)|
|hospital_normal_transfer_change||Int?||See above. In normal care|
|hospital_intensive_transfer_change||Int?||See above. In intensive care|
|hospital_admissions||Int?||Total admissions to hospital. Only includes inpatients (“hospitalisations stationnaires”)|
|hospital_admissions_new||Int?||Daily admissions to hospital|
|hospital_admissions_new_all||Int?||Daily admissions to hospital including outpatients|
|hospital_admissions_new_ma7||Int?||7-day (centered?) moving average of hospital admissions|
|hospital_discharges||Int?||Total discharges from hospital. Only includes inpatients (“hospitalisations stationnaires”)|
|hospital_discharges_new||Int?||Daily discharges from hospital.|
|hospital_discharges_new_all||Int?||New discharges from hospital including outpatients|
|hospital_discharges_new_ma7||Int?||7-day (centered?) moving average of hospital discharges|
|reproduction_number_effective||Float?||Effective Reproduction Number. See for details on the definition used.|
|reproduction_number_effective_low||Float?||Lower or upper bound of the estimate. Unclear if these are 50%, 90% or 1 standard deviation intervals.|
|reproduction_number||Float?||Reproduction Number Rt. See above.|
|reproduction_number_low||Float?||Lower or upper bound of the estimate. Unclear if these are 50%, 90% or 1 standard deviation intervals.|
|state||String?||State of the pandemic, either |
Flags representing issues detected with the data.
Age distributions provide one row for every age group and date. These data have some unknown amount lag (likely 2-3 days) and are their accuracy is limited.
Age of persons that died as a result of COVID-19, binned into very large age groups. Available since mid April.
Ages of currently active infections.
Until, and including, May 17 this was the age of patients currently hospitalised and in intensive care. Since May 18 this is reflecting all patients having been in intensive care at one point.
Indications are that these data isn't complete, for example from May 13 to May 16, these data reported a patient in the age group of 0-5 which subsequently wasn't included in the age distribution of the total population.
Same as with intensive care data these switched from representing current to all hospitalised patients on May 18.
|date||Date||2020-05-11||Day the data is applicable to|
|date_published||DateTime||2020-05-12T17:30:00.000+02:00||Date and time the data was published or revised by the source|
|measure||String||active_age||Measure described, should be the same as the filename|
|group||String||80 - 85||Humanised name of the age group|
|interval||String||[80, 85)||Age interval of the group|
|min_age||Int?||80||Lower age bound (usually inclusive)|
|max_age||Int?||85||Upper age bound (usually exclusive)|
|proportion||Float||0.1234||Proportion of age group|
These data have been compiled from publicly available sources and media reports. Especially in the first few weeks of the pandemic data was very sparse and mostly available through media reports and press statements. Later on the data was scrapped from various government websites, as well as graphics and datasets released by the Ministry of Health. These sources do not provide clear documentation of the data presented and thus require assumptions (e.g. the date they are applicable to) to be made when ingested into this dataset.
- Latest numbers from the Ministry of Health's daily update (en). These represent the "as reported" numbers and used as the authoritative source for the latest figures.
- Corrections and missing data from earlier days from the graphics released by the Ministry of Health (en). Before May 5, additional data was digitized from images.
DailyWeekly updated dataset on data.public.lu.
- Early case numbers from announcements by the government (en).
- Press conferences of the government (Recordings)
- Starting Ministry of Health only updates
- : sources disagree on
deaths, 111 assumed to be correct. Revised to 110 the next day.
- : source for age distributions wasn't updated, no data available for this day.
hospital_intensive_transferdecreases to 0 on , is 1 on then 0 again on .
reproduction_numberhasn't been updated since .
- has a big increase in
tests, these are likely from earlier days.
active + recovered + deaths ≠ cases.
The following data is currently not publicly available
- Total number of cases hospitalised at one point as well as the total number of patients needing intensive care (estimated at around 90-100 on )
- Age distributions of all diagnosed cases (Distribution of active cases is only available since early May.)
- Total intensive care usage and capacity (including non-COVID-19)
- Cases that were successfully traced
- Cases that were associated with a cluster
- Cases that were a-/presymptomatic when tested
- Tests conducted as part of the “Large Scale Testing” campaign vs. tests conducted because of symptoms, possible contacts etc.
- Total tests conducted (only persons tested is known).
- Cases per date of onset of symptoms and/or probable infection