Setting up tax tables in detail

Beyond strategy: how to actually configure tax tables, stack state plus county plus district rates, and use thresholds for tiered taxes like single-article and luxury rates.

Setting up tax tables in detail

This article picks up where How tax categories work leaves off. That article covered the conceptual model — categories describe the kind of thing taxed, tables describe the rate. This article is the click-by-click on the tables side: how to enter rates, stack multiple jurisdictions on the same category, use thresholds for tiered taxes, and verify the math comes out right.

If you haven't yet decided which categories you need, read Picking the right tax category strategy first. Skipping the strategy step and diving into table entry is one of the most common reasons people end up with tax setups they have to rebuild six months later.

When you'd configure tax tables

  • Initial setup. Right after you create your tax categories, before you issue any real invoices.
  • Rate change. Your state, county, or city raises (or rarely lowers) a rate. Update the existing row; don't add a duplicate.
  • New jurisdiction. You expand into a new state or local taxing authority and need to charge their rate.
  • Tiered or threshold-based tax. A jurisdiction taxes the first portion of a sale at one rate and the portion above a threshold at another (Tennessee's "single article tax", Massachusetts luxury rules, some local hotel taxes).
  • Compounding fix. You discover the tax on your invoices is wrong because rates aren't stacking the way you thought; a careful rebuild of the rows is the fix.

The tax tables screen

You'll find the tax tables under the financial settings area of the sidebar. Each row represents one rate that applies to one tax category. A category can have many rows attached — that's how you stack state plus county plus special-district taxes — but each row covers exactly one rate.

The tax tables list — each row is one rate against one category

Each row carries four core fields:

  • Tax Category — which category this rate applies to. (You set up categories first; without a category to attach to, a tax row has nothing to do.)
  • Tax Threshold — a dollar amount this rate kicks in at. 0 means "applies to every dollar". 1600 means "applies only above the first $1,600".
  • Tax CalculationPercentage or Flat. Percentage takes a rate (6.5 = 6.5%); Flat takes a dollar amount (5.00 = $5 added to every taxable line or invoice).
  • Tax Value — the actual number, interpreted by the calculation method.

Rows also have a name or description column for your own reference. Use it. "FL State Sales 6%" is much more helpful in six months than the unlabeled rate 6 you'll be staring at when you've forgotten what it was for.

A typical single-rate setup

The simplest possible setup: one state, one rate, one category.

  1. Create one category called Taxable Goods (in the Tax Categories screen — see How tax categories work).
  2. Add one tax-table row:
    • Tax Category: Taxable Goods
    • Tax Threshold: 0
    • Tax Calculation: Percentage
    • Tax Value: 6.5
    • Description: "FL State Sales Tax 6.5%"

Every pricelist item tagged "Taxable Goods" now gets a flat 6.5% tax on the invoice. Items with no category, or with an exempt category that has no rows attached to it, get nothing.

That's the floor of tax setup. From here, every additional row addresses a real-world wrinkle.

Stacking multiple rates on one category

When state, county, and a special district all tax the same goods, you don't multiply categories — you add multiple rows to the same category. The rates are summed automatically when the invoice is created.

Example: Florida 6% state + Miami-Dade 1% surtax.

Tax Category Threshold Calc Value Description
Taxable Goods 0 Percentage 6.0 FL State Sales
Taxable Goods 0 Percentage 1.0 Miami-Dade Discretionary

A $100 line tagged "Taxable Goods" picks up $6.00 + $1.00 = $7.00 tax. Everything stays in one category, which keeps your pricelist tagging simple — items don't need to know which jurisdiction applies, only that they are taxable goods.

You can stack as many rows as you need. State + county + city + special district + transit-authority is five rows on the same category. Each row should be named for the authority it represents so audits and rate-change updates are obvious.

Using thresholds for tiered tax

Some jurisdictions use bracket-style rates: one rate up to a threshold, a different rate above it. Tennessee's "single article tax" is the classic example — 7% on the first $1,600 of any single article, then an additional 2.75% on the portion from $1,600 to $3,200.

Threshold-based rows look like this:

Tax Category Threshold Calc Value Description
Single Article Goods 0 Percentage 7.0 TN State + Local base
Single Article Goods 1600 Percentage 2.75 TN single article tier 2

The base row applies to the whole amount. The threshold row applies only to the portion above $1,600. So a $2,000 line is taxed:

  • 7% on the full $2,000 = $140
  • 2.75% on the $400 over $1,600 = $11
  • Total tax: $151

Whether the threshold is checked per line or against the invoice subtotal depends on the Tax Calculation Method set on the category (Per Item vs. Per Invoice). For single-article tax, you almost always want Per Item — the law applies to each individual article, not the whole invoice.

Flat-dollar taxes

Some taxes are a flat fee, not a percentage. Most commonly: bottle deposits, environmental fees, recycling fees that look like taxes on the invoice.

Use Flat as the Tax Calculation. The Tax Value is then a dollar amount, not a percent.

Tax Category Threshold Calc Value Description
Bottled Water 0 Flat 0.10 CA CRV per container

Combined with quantity-aware items, this becomes "10 cents per bottle on the bottled-water category". Fees like this often warrant their own tax category (so they only apply to the items that owe them) rather than being mixed in with general goods.

Rounding methods

The category — not the tax row — controls how fractions of a cent get rounded. Most US accountants prefer Banker's rounding (round half to even) because it's more fair across many transactions; Round Up is also common because it's slightly conservative for the tax-collecting business. Round Down is rare in tax settings and usually wrong for state remittance.

Pick one rounding method and apply it consistently across categories. Mixed rounding causes audit pain — your trial-balance sales-tax-collected won't match the per-line breakdown.

How rates apply to historical invoices

When you change a tax rate, historical invoices keep the rate they were issued at. The tax breakdown is captured onto each invoice line at the moment the invoice is created — it does not reread the table later. Closed and even open-but-already-issued invoices retain the old rate.

This is correct behavior, not a bug. A May invoice issued at 6% should still show 6% even after a July rate increase to 6.5% — that's what the customer was billed and what you collected. If you need the new rate on an old invoice, void the old invoice and issue a new one (which captures the new rate at creation time).

The practical implication: schedule rate changes for the moment they take effect, not before. If you raise the rate a week early to "get it ready", every invoice issued in that interim week will be billed at the new rate before the law required it.

Verifying your setup

Before you let any real invoice flow, run one synthetic invoice through:

  1. Create a test invoice with one line per category you've set up — a "Taxable Goods" line at $100, an "Exempt" line at $100, a "Single Article" line at $2,000 if you have brackets, etc.
  2. Save the invoice.
  3. Look at the tax breakdown. Does each line show the rate(s) you expect?
  4. Do the rates sum correctly? (e.g., state 6 + county 1 = 7.00 on a $100 line.)
  5. Does the threshold tier kick in only above the threshold?

If anything looks wrong, fix the table rows and re-save the test invoice — it'll recalculate. Repeat until the math is clean. Then void the test invoice so it doesn't pollute your reports.

Common mistakes

  • Building a separate category per jurisdiction. "Taxable Goods FL", "Taxable Goods GA", "Taxable Goods TN" sounds tidy but breaks down quickly — every pricelist item now needs its category set per state, which is impossible at the item level. Categories describe the type of thing; jurisdictions are stacked rows on each category. (For multi-state nexus, override the category at the customer-account or invoice level instead.)
  • Adding a new row when rates change instead of editing the existing one. That leaves the old rate row still active alongside the new one — they both apply, and your invoices double-tax. Always edit the existing row in place.
  • Setting threshold to a non-zero number when you meant "applies to everything". Threshold 0 is "applies to all dollars". Threshold 100 is "applies only above the first $100" — which is rarely what you want.
  • Mixing Percentage and Flat on the same category without thinking. A Percentage row of 5.0 adds 5%; a Flat row of 5.00 adds $5. They look similar in the input and produce wildly different invoices. Read the calculation method twice when entering the row.
  • Naming rows by their rate value. "6% Tax" becomes meaningless when the rate changes. Name by jurisdiction: "FL State Sales", "Miami-Dade Surtax", "TN Single Article Tier 2".
  • Forgetting to update both the rate and the description. When the state goes to 6.5%, change both the value field and the description text. Half-updated rows create confusion at audit.

Related articles