TaxLite's Execution Model

TaxLite separates tax handling into three distinct steps:

Scope today

TaxLite currently covers general US sales tax (state/county/city/special district). VAT, excise, and income tax are not supported yet.

Tax calculation

TaxLite calculates the correct tax rate and jurisdictions when a rate is needed (typically during checkout).

Sale recording

After a payment succeeds, the completed transaction is recorded for reporting and audit purposes.

Reporting

Reports are generated later using the same jurisdiction data captured at calculation time.

This separation is intentional and ensures that:

Step 1: Calculate Tax

Use /api/calculate when you need to determine the correct tax for an address.

This endpoint:

What a calculation returns

Every calculation includes:

Jurisdiction codes

The exact filing jurisdictions that apply to the address.

Rate components

State and local rates expressed in basis points (bps).

Tax amount

The computed tax for the provided taxable base.

Confidence & source metadata

Signals how the result was determined (direct lookup vs fallback).

This data is designed to be reused downstream.

Step 2: Record the Sale

TaxLite does not automatically record transactions.

After a payment succeeds, you must explicitly call /api/record-sale.

This is deliberate.

Recording a sale:

Important rule

Only record sales that actually happened.

Use the jurisdiction codes and tax values returned from /api/calculate.

Do not recompute or modify them.

Why Jurisdiction Codes Matter

Tax filings are not submitted as a single "total tax" number.

They are filed per jurisdiction.

Each jurisdiction code represents:

When you file, authorities expect totals grouped by these codes.

TaxLite gives you this structure upfront so you don't have to reconstruct it later.

Confidence & Fallbacks

Not all addresses resolve equally.

TaxLite exposes:

This allows you to:

Nothing is hidden.

Reporting Model

Reports are generated from recorded sales, not calculations.

The reporting system:

If a transaction appears in a report, it means:

What TaxLite Is Optimized For

TaxLite is optimized for:

It is not designed to:

Recommended Flow (Summary)

  1. Call /api/calculate during checkout
  2. Charge the customer
  3. Call /api/record-sale after payment succeeds
  4. Generate reports when filing or auditing

This flow ensures your data stays correct, explainable, and defensible.

Final note

If you treat TaxLite as a rate oracle, you'll miss its value.

If you treat it as tax instrumentation, it will give you exactly what filings require.

That's how TaxLite thinks.