Collisions, sudden fades, and wireless channel errors are a significant source of packet loss in wireless LANs. However, higher level protocols typically have no way to determine the cause of packet loss, and generally make assumptions about the source of packet failure that may be incorrect. Accurate information about the source of packet loss could be valuable information to an upper layer. In addition, collisions and fades adversely affect SNR estimation algorithms, which are also useful for higher level protocols. We propose a physical layer algorithm that can both isolate the cause of packet loss, be it noise, collision or fade, and accurately determine the actual SNR regardless if the packet has been corrupted by collision or fade.