Pool Runs Docs
Settings

Tax Zones & Tax Management

How sales tax is configured and calculated on invoices and quotes in Pool Runs — flat-rate orgs, tax zones with ZIP-based resolution, line-item taxability, customer tax exemption, and per-line overrides.

Tax Zones & Tax Management

Sales tax in pool service is more complicated than it looks. A pool tech who replaces a salt cell crosses into multiple tax categories — parts (typically taxable), labor (sometimes taxable, sometimes not, depends on state), service (typically not taxable on a "pure service" billing). Different jurisdictions have different rules. Pool Runs supports two tax modes — flat and zone-based — plus per-line-item taxability flags and customer-level exemption, so most U.S. and Canadian pool operators can model their tax obligations cleanly.

Two Tax Modes

Each org chooses one mode in Settings → Invoicing:

ModeBest for
Flat rateSingle-jurisdiction organizations, such as one city or county
Tax zonesMulti-jurisdiction organizations spanning multiple counties or states

You can switch modes at any time. Existing invoices keep their original tax calculation; new invoices use the new mode.

Mode 1: Flat Rate

The simplest setup: one rate applies to every taxable line item across the org.

Set your default rate, such as 8.25%, and choose the label customers see, such as Sales Tax.

When an invoice is calculated:

  1. Add all line items marked Taxable to get the taxable subtotal
  2. Apply rate → tax amount
  3. Add to total

Done. No per-property logic, no ZIP lookups.

Mode 2: Tax Zones

A tax zone is a named geographic region with one or more tax rates attached. ZIP codes are mapped to zones. A property's address ZIP determines which zone applies.

Tax Zone: "Travis County, TX"
  Tax Rate: "Texas State"     6.25%
  Tax Rate: "Travis County"   1.00%
  Tax Rate: "City of Austin"  1.00%
                              ─────
                       Total: 8.25%

Tax Zone ZIP Codes: 78701, 78702, 78703, ...

When an invoice is calculated, Pool Runs:

  1. Matches the property's ZIP code to a tax zone.
  2. Uses the rates active on the invoice date.
  3. Applies each rate to the appropriate services, parts, chemicals, or labor.
  4. Saves the tax breakdown with the invoice.

This gives you a per-line, per-rate tax allocation — needed for filing returns where each rate is reported separately.

What Each Tax Rate Applies To

A single zone can have rates that apply to different line-item types:

RateApplies toLogic
State sales taxAll taxable itemsApplies to every taxable line
Local labor taxLaborOnly labor lines
Recyclable disposal feePartsOnly parts lines
Chemical surchargeChemicalsOnly chemicals

For most businesses, each rate applies to all taxable items.

Historical Tracking

Each tax rate has a start date and an optional end date. When a rate changes mid-year, end the old rate on the day before the change and add the new rate with its start date. Pool Runs then uses the correct rate for each invoice date while preserving your history.

Tax Breakdown on Invoices

When zone-based tax is active, every invoice keeps the name, rate, taxable amount, and tax amount for each part of the calculation. The customer-facing PDF can display the full breakdown or roll it up to a single Sales Tax line, depending on your settings.

Line-Item Taxability

Every line item has a Taxable setting. Defaults vary by source type:

Source TypeDefault
Route serviceBusiness setting (often not taxable in service-tax-exempt states)
Work-order serviceBusiness setting
Chemical productTaxable
Part or installed itemTaxable
LaborBusiness setting; varies by state
FeeBusiness setting; often not taxable
DiscountNot applicable; discounts reduce the base amount
Manual lineUser chooses

When you add a line item from the product picker, the Taxable setting fills from the product catalog. You can override it for that line.

Common Pattern: Repair Invoice

A salt cell replacement might look like:

LineTaxable
Salt cell (part)Yes
2 hours labordepends on state
Disposal feeNo
Travel chargeNo
Discount: 10% loyaltyapplies pre-tax to subtotal

After a 10% discount, Pool Runs taxes 90% of the taxable parts and labor, applies the configured rate, and adds that tax to the total.

Customer Tax Exemption

Customers (especially commercial, non-profits, government) can be flagged as tax-exempt:

  • Customer profile → Tax Exempt toggle
  • Optional: store the exemption certificate number on the customer profile

When Tax Exempt is turned on:

  • All line items on that customer's invoices have effective tax = 0
  • The invoice PDF still shows the tax row (Tax: $0.00) for transparency
  • A small "Tax Exempt" badge appears on the invoice

Quick Steps

  1. Customers → Customer Profile → Edit
  2. Scroll to Tax.
  3. Toggle Tax Exempt: ON.
  4. Optionally enter the exemption certificate number.
  5. Save.

All future invoices for this customer will have $0 tax. Existing sent invoices are not retroactively recalculated.

Per-Invoice Tax Overrides

For one-off scenarios, you can override tax handling on a single invoice without changing customer or org settings:

  • Per-line Taxable toggle — change individual lines
  • Tax-exempt this invoice — turn off Taxable on every line

There's no single "exempt this invoice" toggle — toggling at the line level is the supported path.

Concepts

Why ZIP-based zone resolution

Sales tax in the U.S. is geographic — the property's location determines the rate, not the customer's billing address. ZIP-based mapping is the simplest workable proxy. It's not perfect (some ZIPs span multiple jurisdictions) but it's good enough for 99% of pool service billing. For edge cases, you can set the property's tax zone manually on the property profile to override ZIP resolution.

Why tax-rate history matters

Tax rates change. Start and end dates let you add rate revisions without losing history. Older invoices keep the rate that was active when the work was billed, while newer invoices use the updated rate.

Why discounts apply pre-tax (usually)

In most U.S. jurisdictions, sales tax is calculated on the net amount after discounts. Pool Runs follows this convention by default. If your jurisdiction taxes the gross amount, turn off Taxable on the discount adjustment so it does not reduce the taxable base.

Industry context: "service taxable" varies wildly

A few examples:

  • Texas: Pool service labor is not taxable. Parts are. Chemicals are.
  • California: Generally exempt from sales tax for "pure service," but if you bundle a tangible product, the entire bill might be taxable.
  • New York: Different rules for residential vs. commercial.
  • Florida: Service is non-taxable, parts are taxable, chemicals depend on whether they're "consumed" or "sold."

Pool Runs gives you the flexibility to model this — what it does not do is tell you which lines should be taxable. Consult your accountant or your state's department of revenue.

FAQ

Q: How do I find a customer's correct tax zone if their property's ZIP doesn't match any I've configured? A: The Invoice Generator and invoice form will show a warning: "No tax zone matched for ZIP 78704 — falling back to org default rate." Configure the ZIP in Settings → Tax Zones, or set the property's tax zone manually.

Q: A customer moved to a different ZIP. Do their old invoices change? A: No — invoices store the tax breakdown at the time they were generated. Past invoices keep their original calculation.

Q: My tax rate changed mid-month. How do I handle invoices for service spanning the change? A: For invoices spanning a rate change, the simplest practice is to use the rate in effect on the invoice date. If needed, generate two invoices.

Q: Can I model "tax-included pricing"? A: Not natively. Turn off Taxable for the line and enter the tax-inclusive price.

Q: Customer is exempt for parts but taxable for chemicals (rare, e.g., resale exemption). How? A: The customer-level Tax Exempt setting is all or nothing. For partial exemption, leave the customer taxable and turn off Taxable only for the exempt invoice lines.

Q: How do tax-exempt customers' invoices appear in QuickBooks? A: QBO has its own tax-exempt customer flag, which Pool Runs syncs. Tax-exempt customers' invoices in QBO show $0 tax automatically.

Troubleshooting

  • Invoice shows tax = $0 but my business has a default rate set. Check whether the customer is tax-exempt, every line has Taxable turned off, or no tax zone matches the property's ZIP code.
  • Tax zone resolution picks the wrong zone for a property. The property's ZIP is mapped to a different zone than expected. Check Settings → Tax Zones → ZIP Mapping.
  • Customer's invoice has tax even though they're exempt. The exemption applies to invoices generated after the flag is set. Refund and recreate if needed.
  • Tax breakdown shows multiple rates totaling more than expected. A new rate may overlap an old one. Check Settings → Tax Zones for overlapping date ranges in the same zone.
  • A discount is not reducing the taxable amount. Turn off Taxable on the discount so it reduces the taxable base.

On this page