Tax Management
Automatic tax calculation with compound taxes, exemptions, reverse charges, and multi-jurisdiction support
Tax Management
AI-Native ERP handles automatic calculation and tracking of indirect taxes -- sales tax, VAT, GST, and more -- across all your business transactions. The system supports simple single-rate taxes, compound taxes, tax-inclusive pricing, exemptions, reverse charges, and multi-jurisdiction layered taxes.
Why Tax Management Matters#
- Compliance -- Collect and remit the right amount to the right authority
- Accuracy -- Eliminate manual calculation errors
- Audit Trail -- Every tax calculation is recorded with full detail
- Multi-Jurisdiction -- Handle complex layered tax rules across regions
- Automation -- Tax is calculated automatically on every transaction
Key Concepts#
| Term | Definition | Example |
|---|---|---|
| Tax Code | A single tax component | "CA_SALES_TAX_7.25%" |
| Tax Group | Multiple tax codes combined | "CA_TOTAL" (State + County + City) |
| Tax Rate | Percentage applied to the taxable amount | 7.25% |
| Compound Tax | Tax calculated on top of a previous tax | GST 5% + PST 7% on (base + GST) |
| Reverse Charge | Buyer self-assesses VAT (EU B2B) | Cross-border services |
| Tax Authority | Government body that collects and enforces tax | California CDTFA, Irish Revenue |
| Exemption Certificate | Documentation supporting tax-free treatment | 501(c)(3) non-profit certificate |
How Tax Calculation Works#
Tax calculation follows a four-step process on every transaction:
Step 1: Tax Code Resolution
Determine which tax code applies using a priority waterfall
Step 2: Tax Group Expansion
If the code is a group, expand to individual components
Step 3: Tax Amount Calculation
Calculate tax for each component, handling compound and inclusive rules
Step 4: Tax Transaction Records
Create detailed records for reporting, filing, and audit
Tax Code Resolution Priority#
When calculating tax for a transaction line, the system determines the applicable tax code using this priority order:
Priority 1: Line Override
User explicitly sets a tax code on a specific line
Use case: Special exemption or manual override
Priority 2: Item Default
The product or service has a default tax code
Use case: Standard product taxation
Priority 3: Customer Default
The customer has tax settings (e.g., exempt status)
Use case: Tax-exempt organizations
Priority 4: Entity Default
The legal entity's fallback tax group
Use case: General sales in the entity's jurisdiction
Priority 5: Error
No tax configuration found -- transaction is blocked
This waterfall ensures that specific overrides take precedence while providing sensible defaults for routine transactions.
Simple Tax Calculation#
The most straightforward case: a single tax rate applied to the transaction amount.
Example: US Sales Tax (7%)
| Component | Amount |
|---|---|
| Product price | $100.00 |
| Tax (7%) | $7.00 |
| Invoice total | $107.00 |
The system records the taxable amount ($100), tax amount ($7), tax direction (payable), and the GL account for the tax liability.
Compound Tax Calculation#
In some jurisdictions, a second tax is calculated on top of the base amount plus the first tax. This is called a compound or cascading tax.
Example: Canadian GST + PST (British Columbia)
| Step | Calculation | Amount |
|---|---|---|
| Base amount | Consulting service | $1,000.00 |
| GST (5%) | $1,000.00 x 5% | $50.00 |
| PST (7% compound) | ($1,000.00 + $50.00) x 7% | $73.50 |
| Total tax | $123.50 | |
| Invoice total | $1,123.50 |
Notice that PST is calculated on $1,050 (base + GST), not on $1,000 alone. Each tax component is recorded separately with its own taxable basis, making it clear how the total was derived.
Compound taxes are common in Canada (GST + PST), India (GST + Cess), and some US states with cascading local taxes.
Tax-Inclusive Pricing#
In many countries (especially in the EU and Australia), prices displayed to customers include tax. The system back-calculates the net amount and tax from the gross price.
Example: EU VAT 23% Inclusive
| Component | Amount |
|---|---|
| Displayed price (gross) | EUR 123.00 |
| Net amount (calculated) | EUR 100.00 |
| VAT 23% | EUR 23.00 |
Formula: Net amount = Gross amount / (1 + tax rate)
The customer invoice shows:
- Widget: EUR 100.00 (net)
- VAT 23%: EUR 23.00
- Total: EUR 123.00
Tax Exemptions#
Certain customers or transaction types are exempt from tax. The system validates exemptions using certificates.
Supported exemption types:
- Non-profit organizations (501(c)(3))
- Government entities
- Resale certificates
- Export sales
- Medical or food exemptions
How Exemptions Work#
- An exemption certificate is recorded with the customer profile, including certificate number, type, issuing authority, and expiration date
- When a transaction is created for an exempt customer, the system validates the certificate is active and not expired
- Tax is calculated as zero, with a full audit record noting the exemption reason and certificate reference
Example: Charity ABC holds a valid 501(c)(3) certificate. When you sell $500 of office supplies to them, the system automatically applies zero tax and records the exemption details.
Reverse Charge VAT#
For EU B2B cross-border services, the buyer self-assesses VAT instead of the seller charging it.
How it works:
- The seller invoices without VAT (0% on the invoice)
- The buyer records both output VAT (liability) and input VAT (receivable)
- The net cash effect is zero -- the two amounts cancel out
Example: Irish company buys consulting from Germany
| Component | Amount |
|---|---|
| Consulting services | EUR 48,000 |
| VAT on seller's invoice | EUR 0 (reverse charge) |
| Buyer self-assesses VAT 23% | EUR 11,040 |
The buyer records:
- Output VAT payable: EUR 11,040
- Input VAT recoverable: EUR 11,040
- Net cash impact: EUR 0
Both records are flagged as reverse charge for regulatory reporting (e.g., VIES in the EU).
Multi-Jurisdiction Tax#
In countries like the United States, multiple levels of government may each impose their own tax. The system handles layered taxes from federal, state, county, city, and district levels.
Example: San Francisco, California
| Jurisdiction | Rate | Tax on $1,000 |
|---|---|---|
| California State | 7.25% | $72.50 |
| San Francisco County | 0.25% | $2.50 |
| San Francisco City | 0.50% | $5.00 |
| Combined | 8.00% | $80.00 |
Each jurisdiction's tax is recorded as a separate transaction linked to its own tax authority and GL account, enabling accurate filing to each government body on their required schedule.
Tax Authorities and Filing#
Tax Authorities#
Each tax authority record captures:
- Authority name and code
- Jurisdiction and country
- Filing frequency (monthly, quarterly, annual)
- Filing due dates
- Payment due dates
- Registration number (your entity's tax ID with that authority)
Tax Reporting Periods#
Tax periods track the filing cycle for each authority:
- Period date range
- Filing and payment due dates
- Status (open, filed, locked)
- Total tax collected in the period
Period Locking#
After filing a tax return, lock the corresponding period to prevent changes:
- Complete and file the tax return
- Lock the period
- All transactions in the locked period become read-only
- Emergency unlock is available with manager approval for corrections
VAT Registration#
The system automatically adjusts tax posting behavior based on whether a legal entity is VAT-registered.
VAT-Registered Entities#
Standard behavior: input VAT is posted to a recoverable account, output VAT is posted to a payable account. Both appear as separate lines on journal entries.
Non-VAT Entities#
| Transaction | Behavior |
|---|---|
| Vendor bills (AP) | Tax amount is rolled into the expense -- no separate VAT line |
| Customer invoices (AR) | Tax posting is skipped entirely -- non-VAT entities cannot charge VAT |
| Journal entries | Tax is absorbed into the original GL line |
Important: Reverse charge tax codes are blocked for non-VAT entities, since reverse charge is a VAT self-assessment mechanism requiring active registration.
The same tax codes work for both VAT and non-VAT entities. The system uses the transaction date (not today's date) to determine registration status, so backdated entries to periods when the entity's VAT status was different are handled correctly.
Common Use Cases#
Standard US Sales Tax#
Configure a tax code for your state (e.g., California at 7.25%), set it as the entity default, and all sales automatically include the correct tax.
EU SaaS Sales#
Create tax codes per EU country (Ireland 23%, Germany 19%, France 20%). Tax determination rules automatically select the correct rate based on the customer's country. Non-EU customers receive zero-rated treatment.
Non-Profit Exemptions#
Record the customer's 501(c)(3) certificate with an expiration date. All sales to that customer automatically apply zero tax with full certificate documentation in the audit trail.
Canadian Provincial Taxes#
Set up a tax group with GST (5%) and the applicable provincial tax (e.g., BC PST 7% compound on GST). The system handles the compound calculation automatically.
Cross-Border B2B Services#
For EU cross-border sales, reverse charge is applied automatically. The seller's invoice shows zero VAT, and the buyer's system self-assesses the appropriate local rate.
Tax Code Properties#
Each tax code carries configuration that controls how it behaves during calculation:
| Property | Description |
|---|---|
| Tax code identifier | Unique code (e.g., "VAT_STANDARD_23") |
| Name | Human-readable description |
| Rate | Default percentage |
| Is compound | Whether this tax applies on base + prior taxes |
| Calculation order | Sequence within a tax group |
| Is recoverable | Whether input tax can be reclaimed |
| Is reverse charge | Whether the buyer self-assesses |
| Tax authority | Which authority this tax is remitted to |
| Tax type | Classification: sales_tax, vat, gst, withholding, exempt |
Rate Types#
Tax rates support effective dates, so rate changes can be scheduled in advance:
- Rate -- The percentage (0-100)
- Effective from -- When the rate takes effect
- Effective to -- When the rate expires (optional)
- Component type -- Federal, state, county, city, etc.
- Taxable basis -- Whether the rate applies to net amount, gross amount, or a previous tax component
Supported Tax Scenarios#
The system has been validated against these real-world scenarios:
| Scenario | Description |
|---|---|
| EU Reverse Charge VAT | Cross-border B2B with self-assessed VAT |
| Tax-Inclusive Pricing | EU-style gross pricing with VAT back-calculation |
| Compound Tax (GST + Cess) | Tax-on-tax for India and Canada |
| Non-Profit Exemption | 501(c)(3) certificate validation |
| Zero-Rated Export | 0% VAT for non-EU sales |
| Multi-Jurisdiction (US) | State + County + City layered taxes |
| Tax Group Expansion | Groups with multiple components |
| Period Locking | Enforcement of locked tax periods |
Subscribe to new posts
Get notified when we publish new insights on AI-native finance.