In simple English
Calculating sales tax in America is hard because zip codes cross tax borders. This tool looks up exact street addresses to find the right sales tax rate. It uses official data published by each state government. If the address is unclear, it refuses to guess and reports an error. You can run it on your own server or pay to use their hosted version.
What it is
OpenTaxRate is an open-source tool that calculates US sales tax rates based on exact street addresses and dates. It combines state address ranges with PostgreSQL (a program that stores and retrieves data in tables) and PostGIS (an extension that adds map data to PostgreSQL) to find the correct tax jurisdiction.
What it is good for
Developers building online shops who need to charge correct sales tax without paying expensive commercial tax APIs. It removes the guesswork of zip-code-only tax calculations.
- Uses official data straight from state tax offices and Streamlined Sales Tax.
- Refuses to guess on ambiguous addresses instead of giving a wrong tax rate.
- Open source with an MIT licence, so you can run it yourself without limits.
- Initial setup requires Docker (a way to run a program inside its own sealed box, so it cannot break anything else on your server) and takes time to load state data.
- Loading all fifty states takes about 45 minutes and needs several gigabytes of disk space.
- Does not handle product exemptions, item caps, or taxability rules, only general rates.
commercial sales tax calculation services like Stripe Tax or Avalara
PostgreSQL for storing the address and tax boundary data
- btcpayserver/btcpayserver7.8k stars
Payment software you run yourself that takes Bitcoin into a wallet whose keys you hold.
- hledgerorg/hledger4.8k stars
Double-entry accounting over plain text files, with command-line, terminal, web and editor interfaces.
- akaunting/akaunting10k stars
Self-hosted invoicing and expense tracking, with the double-entry accounting sold separately as an add-on.
git clone https://github.com/equated-org/opentaxrate.git && cd opentaxrate lp .env.example .env docker compose up -d docker compose run --rm refresh OH