I had been working on something similar, but I haven't had time to do much with it lately. I like your module much better anyway. I have a test page that I was using to develop the latest methods before rolling them into a real module; I can PM the URL and source code if you want to see how it works.

For what it's worth, mine used ZIP+4, with the +4 stored in ranges (which is how Oklahoma provides the data). It might be possible to implement something like that using your module and wildcard characters. I'll have to do some testing on that. I suspect it'd be a lot of work to develop and maintain that list, so maybe it'd be better to go without the +4...

Minor feature suggestion: It would be good to update the tax table by uploading a comma delimited file or something similar. We can do that using mysql command line or phpmyadmin, but it's not as convenient. In my case there are 3,251 rows just with 5 digit zip codes.

Another useful thing would be tracking some kind of jurisdiction code. I don't know about other states, but Oklahoma requires filing tax reports with place code numbers so they know where the tax money goes. It would be nice to be able to store records of that for monthly reporting. (I had been experimenting with that too.)

Thanks for making this module!