A binomial ladder filter maps elements keys to H indexes in an n bit table of bits, which are initially set at random with a probability 0.5. Each index represents a rung on the element's ladder. The indexes set to 1/true are rungs that are below that element on the ladder and the indexes that are 0/false are rungs above the element, or which the element has yet to climb. On avarege, an element that has not been seen before will map to, on average, H/2 index that are set to 1 (true) and H/2 indexes that are set to 0 (false). This means that half the rungs are below the element and half are above it, and so the element is half way up the ladder. If a non-empty subset of the indexes that an element maps to contains 0, observing that element (the Step() method) will cause a random member of that subset to be changed from 0 to 1, causing the element to move one rung up the ladder. To ensure that the fraction of bits set to 1 stays constant, the step operation willsimultaneously clear a random bit selected from subset of indexes in the entire sketch that have value 1. The more times an element has been observed, the higher the expected number of indexes that will have been set, the higher it moves up the ladder until reaching the top (when all of its bits are set). To count the subset of a keys indexes that have been set, one can call the GetRungsBelow method. Natural variance will cause some never-before-seen keys to have more than k/2 bits set and keys that have been observed very rarely (or only in the distant past) to have fewer than k/2 bit set. an element that is observed only a few times (with ~ k/2 + epsilon bits set) will be among ~ .5^{epsilon} false-positive keys that have as many bits set by chance. Thus, until an element has been observed a more substantial number of times it is hard to differentiate from false positives. To have confidence greater than one in a million that an element has been observed, it will take an average of 20 observations.