At call2test we take randomization seriously. For best results we recommend settings a range for your test frequencies. For example a client may be required to test 3-5 times per month. This way the client is not sure how many times they will be called in.
In general, we do not recommend setting a maximum or minimum days between tests. While a maximum days between tests can assure that you never go to long without testing a client, it will also affect the randomization process. Therefore we recommend you set a high maximum days between tests in order to minimize this effect.
Our recommendations are as follows:
Test frequency should be greater than 60 divided by the max days between tests.
Or, equivalently you could say:
Max days between tests must be greater than 60 divided by the test frequency.
A subtle example of why we need this:
A facility has a profile with 1 test per month and 40 max days between tests. This seems like a long time to go between tests! However, say the user tests on the 15th. He must test within the next 40 days now. The next 15 days are off because he already tested this month. So the user must test within the first 25 days of the next month. This is not too bad, but according to randomization principles we really want to have each day given an equal probability of a test occurring. This cannot be the case because the last 5 days have a 0 probability of a test.
In order to have proper randomization the max days between tests should be greater than: 60 / 1 = 60. (So 61 days or more).
In this case 61 maximum days between tests is equivalent to not having any requirement at all (2 tests in different months can never be further than 61 days apart). Still, we recommend against profiles with lower maximum days between test values. With values lower than 61 there may be more tests clustered on specific days and less on others.
An extreme example of why we need this:
Let's consider a facility with a profile that has 3 tests per month and a max days between tests of 7. Your facility has 30 test days this month. Let’s say the user has to test on the first of the month (which has a probability of happening of 3 / 30 or 10% chance). Eight days later the user will be required to test again (We take the word between literally, so the user will test again on the 9th, because there have been 7 days between the 1st and the 9th). The client has now tested twice and it's only the 9th. Eight more days pass and the client is forced to test on on the 17th. The client should be done testing, but 8 days later he will be required to again (25th). The system will prioritize the maximum days between tests and test the client for a fourth time, even though the profile only called for 3.
To make matters worse, our randomization algorithm will attempt to mitigate the damage by not calling for a test until it is absolutely required (by the maximum days between tests). That means that every person who is scheduled to test on the 1st will be scheduled on the 9th, 17th, and 25th as well. Similarly every person scheduled to test on the 2nd will also test on the 10th, 28th, and 26th.
You can see that the wrong maximum days between tests value can actually make randomization quite predictable. For proper randomization we recommend:
60 / 2 = 30 => We recommend that the maximum days between tests be 21 or greater.