Pool Testing Calculator

What is pool testing?

The outbreak caused by the novel Coronavirus, SARS-CoV-2, has spread over almost all countries in the world and running diagnostic tests is required for the analysis of symptomatic individuals. Testing is also a powerful tool used in surveillance at sites of previous or potential outbreaks and for environmental monitoring. The early detection of asymptomatic or pre-symptomatic carriers is crucial to mitigate the spread of the infection, since contact tracing and isolation are required to interrupt the chain of transmission. For this, massive testing campaigns are being implemented, which demand the maximum efficiency in the use of the available resources. Mixing (pooling) multiple samples to test them in a single reaction is an option to increase testing capacity reducing costs and time at the same time.

The first proposal of a pooling strategy for this aim was made by Dorfman in 1943. In this strategy, pools are formed containing a number, m, of individual samples. One test is run on each pool to detect the presence of a defective or infected sample in it. Assuming that the detection is sensitive enough, the samples in the pools that test negative in this first stage are identified as non-infected. All the samples that belong to pools that test positive are tested individually at a second stage. The identification of the samples that belong to pools that test negative at first is done with only one test. The identification of those that belong to pools that test positive at first requires m+1 tests instead. A large reduction in the number of tests will then be achieved depending on the relative fraction of pools that test positive at the first stage.

How to run

The program takes 5 basic inputs

  • Minimum and maximum probability of individual infection: gives rough estimates about the probability of a sample to be infected by SARS-Cov-2
  • Number of best strategies: how many strategies, besides the optimal one, you are interested to receive
  • Maximum size of the first pool: indicates how many individual samples are allowed to be mixed to form the first pool. This usually is related to the precision of the equipment and each country's laws
  • Maximum number of stages: gives a limit to the maximum number of stages

As output, it gives test strategies in ascending order, according to the optimal cost: from the best strategy (lower cost) to the worse, up to the maximum number of strategies.

If memory errors occur, then the solution might not be optimal. If you really need to solve such instance, please contact the authors or the site administrator. Contact information here.


The program also performs simulations. For generating simulations, the user have to check the "Perform simulations" checkbox and provide the following information

  • Population size: the population where the tests will be performed
  • Parallel pools: how many parallel pools are possible to be tested. Usual PCR equipment allows up to 96 pools to be tested at the same time

About this project


This webpage is maintained by Francisco N. C. Sobral from State University of Maringá, Brazil. All the code can be freely downloaded from the GitHub repository. Doubts, suggestions and improvements, feel free to contact fncsobral at uem dot br.


Run and simulate