Why does it only work 90% of the time? The biggest reason is that carriers don't store the name for every number our there. The name is NOT sent with the number, it's stored in a database by the carriers. One of the biggest carriers that does not provide the name is Verizon Wireless.
Here are some of our default responses and why you'd be getting them back instead of a name.
Name Unavailable - The mobile app can't reach our servers. This is likely because you currently have no Internet connection. Use the manual look-up feature when you have good Internet access again. It should eventually return a response. If not, contact support.
No Name - Our servers can't figure out the name. We couldn't find a name nor provide a city/state/country response. The number may not exist (i.e. the number is spoofed or typed in incorrectly). We wont get better information if you try again.
800 Service - It's an 800/888/866/etc number. Unfortunately nobody stores a name for 800 numbers (and names aren't sent with a number). We are getting a list put together though, so at some point it may work.
City/State/Country - We couldn't find a name. Our really-cool name servers couldn't find a name. When we cannot find a name (like one of those dang Verizon Wireless numbers), we give you what we can and this is the most basic of information.