Summary Analysis of Laboratory Tests (SALT)

Incidence series surveillance of elevated liver transaminases

A series of cases of severe hepatitis in young children was recognised in central Scotland in March 2022. By the end of May, WHO had identified 650 cases worldwide, in some cases leading to liver transplant or death. The cause is unknown. It is possible that this outbreak has been more widespread. In particular, milder, self-limiting disease may not have been recognised, but might be evident from larger numbers of children having abnormal liver function tests.

In this analysis we are trying to detect changes in abnormal liver function tests (elevated AST/ALT), population wide, using non-disclosive summary data that is easily obtained and shared. Our pilot data (see below) suggests that an increase in abnormal AST/ALT values occurred in 2022, concurrently with an increase in life-threatening hepatitis of unknown cause. At larger scale this might reveal the geographical and temporal patterns in unexplained hepatitis in children.

The SALT analysis uses summary tables of data, of the type which are routinely published in academic journals and management reports. By using only summary data tables, we avoid the risk of disclosing any confidential clinical information about a person. We have generated a simple script to make it easy to extract the necessary summary tables from a large table of lab results. There is a team of research administrators and computational scientists available to support data collection - they can be contacted through

Analyses will be conducted in partnership with national public health agencies throughout the project.

Graph of averaged elevated transaminase levels (ALT & AST, >200iu/l) in children aged 3 weeks to 5 years, in all centres included so far (UK & Netherlands).

Contribute data from your centre

We urgently need clinical biochemists, paediatricians and public health agencies to contribute data from their regions to help track this outbreak worldwide.


We have written a script to read through a table of blood results and create a summary table in the right format for this analysis. The script works even if there are tens of millions of lines. It runs on your computer, doesn’t communicate with the internet in any way, and creates simple summary tables (see below) which you can then share with us.

The script is written in a computing language called python. Because python doesn’t come pre-installed on windows computers, we’ve bundled our script with a python version that can be used without any installation or special permissions.

Windows (standalone) download_windows
Windows (script only) download_script
Mac/Linux download_script

To read more about the script, please see the file

Data collection

In order to comply with information governance requirements, eliminate the risk of confidential disclosure, and make use of routine lab data, the following summary data will be collected in csv format from hospitals:

We will count the number of hospital inpatients tested for blood levels of AST or ALT for whom the result was >200iu/l on at least one occasion, and the total number of patients for whom AST or ALT was measured. We will also calculate the mean and variance of these measurements. So count, mean and variance will be collected for:

  • each month from Jan 2012 and March 2022 to the present
  • each age bracket in this list: <3wks, 3wks-5y, 6-10y, 11-16y, 17-30y, 31-50y, 51-70y, >70

Where the same patient has more than one result, the first result over the threshold is counted, or the first result from that patient, if no results over the threshold are present.

Sending data

If you are sending data from multiple hospitals, please use a separate file for each one. Please send your summary data files only, containing no patient identifiers, to this email address:

Please also include the following details so that we can credit you appopriately with your contribution:

  • location of hospital
  • institutional email addresses of contributing scientists

Ethical approval

This work is surveillance for public health using summary data only and so does not require ethical approval.

Summary table format

The table below shows the format of the summary data to be collected from each contributing laboratory. This can be downloaded in csv format here.

statistic test age_group Jan-15 Feb-15
count AST_all_tests <3wks 0 0
count AST_all_tests 3wks-5y 0 0
count AST_all_tests 6-10y 0 0
count AST_all_tests 11-16y 0 0
count AST_all_tests 17-30y 0 0
count AST_all_tests 31-50y 0 0
count AST_all_tests 51-70y 0 0
count AST_all_tests >70y 0 0
mean AST_all_tests <3wks 0 0
mean AST_all_tests 3wks-5y 0 0
mean AST_all_tests 6-10y 0 0
mean AST_all_tests 11-16y 0 0
mean AST_all_tests 17-30y 0 0
mean AST_all_tests 31-50y 0 0
mean AST_all_tests 51-70y 0 0
mean AST_all_tests >70y 0 0
var AST_all_tests <3wks 0 0
var AST_all_tests 3wks-5y 0 0
var AST_all_tests 6-10y 0 0
var AST_all_tests 11-16y 0 0
var AST_all_tests 17-30y 0 0
var AST_all_tests 31-50y 0 0
var AST_all_tests 51-70y 0 0
var AST_all_tests >70y 0 0
count AST_above200 <3wks 0 0
count AST_above200 3wks-5y 0 0
count AST_above200 6-10y 0 0
count AST_above200 11-16y 0 0
count AST_above200 17-30y 0 0
count AST_above200 31-50y 0 0
count AST_above200 51-70y 0 0
count AST_above200 >70y 0 0
mean AST_above200 <3wks 0 0
mean AST_above200 3wks-5y 0 0
mean AST_above200 6-10y 0 0
mean AST_above200 11-16y 0 0
mean AST_above200 17-30y 0 0
mean AST_above200 31-50y 0 0
mean AST_above200 51-70y 0 0
mean AST_above200 >70y 0 0
var AST_above200 <3wks 0 0
var AST_above200 3wks-5y 0 0
var AST_above200 6-10y 0 0
var AST_above200 11-16y 0 0
var AST_above200 17-30y 0 0
var AST_above200 31-50y 0 0
var AST_above200 51-70y 0 0
var AST_above200 >70y 0 0
count ALT_all_tests <3wks 0 0
count ALT_all_tests 3wks-5y 0 0
count ALT_all_tests 6-10y 0 0
count ALT_all_tests 11-16y 0 0
count ALT_all_tests 17-30y 0 0
count ALT_all_tests 31-50y 0 0
count ALT_all_tests 51-70y 0 0
count ALT_all_tests >70y 0 0
mean ALT_all_tests <3wks 0 0
mean ALT_all_tests 3wks-5y 0 0
mean ALT_all_tests 6-10y 0 0
mean ALT_all_tests 11-16y 0 0
mean ALT_all_tests 17-30y 0 0
mean ALT_all_tests 31-50y 0 0
mean ALT_all_tests 51-70y 0 0
mean ALT_all_tests >70y 0 0
var ALT_all_tests <3wks 0 0
var ALT_all_tests 3wks-5y 0 0
var ALT_all_tests 6-10y 0 0
var ALT_all_tests 11-16y 0 0
var ALT_all_tests 17-30y 0 0
var ALT_all_tests 31-50y 0 0
var ALT_all_tests 51-70y 0 0
var ALT_all_tests >70y 0 0
count ALT_above200 <3wks 0 0
count ALT_above200 3wks-5y 0 0
count ALT_above200 6-10y 0 0
count ALT_above200 11-16y 0 0
count ALT_above200 17-30y 0 0
count ALT_above200 31-50y 0 0
count ALT_above200 51-70y 0 0
count ALT_above200 >70y 0 0
mean ALT_above200 <3wks 0 0
mean ALT_above200 3wks-5y 0 0
mean ALT_above200 6-10y 0 0
mean ALT_above200 11-16y 0 0
mean ALT_above200 17-30y 0 0
mean ALT_above200 31-50y 0 0
mean ALT_above200 51-70y 0 0
mean ALT_above200 >70y 0 0
var ALT_above200 <3wks 0 0
var ALT_above200 3wks-5y 0 0
var ALT_above200 6-10y 0 0
var ALT_above200 11-16y 0 0
var ALT_above200 17-30y 0 0
var ALT_above200 31-50y 0 0
var ALT_above200 51-70y 0 0
var ALT_above200 >70y 0 0