A new algorithm is presented for idealizing single channel data containing any number of conductance levels. The number of levels and their amplitudes do not have to be known a priori. No assumption has to be made about the behavior of the channel, other than that transitions between conductance levels are fast. The algorithm is relatively insensitive to the complexity of the underlying single channel behavior. Idealization may be reliable with signal-to-noise ratios as low as 3.5. The idealization algorithm uses a slope detector to localize transitions between levels and a relative amplitude criterion to remove spurious transitions. After estimating the number of conductances and their amplitudes, conductance states can be assigned to the idealized levels. In addition to improving the quality of the idealization, this "interpretation" allows a statistical analysis of individual (sub)conductance states.