Disclaimer: Treez Support can explain how tax configurations work within the Treez platform, but cannot create, edit, or manage tax settings on your behalf. Customers are responsible for ensuring their tax configurations are accurate and compliant with applicable tax laws. Treez is not liable for tax calculations, filings, penalties, or compliance issues. For guidance beyond this documentation, consult a qualified CPA or tax professional.
Overview
Treez uses a flexible tax engine that allows operators to model complex state and local tax requirements. Taxes are calculated using layers, compounding rules, and product subtypes to ensure the correct amounts are applied to each transaction.
This article explains the core tax logic used by Treez. These concepts apply to all markets and customer types and should be understood before configuring taxes in the system.
This article does not provide state-specific guidance or setup instructions. For configuration steps or market rules, see the related articles linked throughout this guide.
How Treez Calculates Taxes
At a high level, Treez calculates taxes in three stages:
Determine which taxes apply to each product based on product subtype and customer type
Calculate taxes layer by layer, following compounding rules
Add calculated taxes to the order total
Understanding how layers and subtypes work is key to configuring taxes correctly.
Tax Layers
Layers determine:
Which taxes compound together
Which taxes are calculated independently
The order in which taxes are applied
Taxes are always calculated starting from the first layer and moving downward, one layer at a time.
Compounding vs Non-Compounding Taxes
Option 1: Compounding Taxes
Taxes that appear in the same layer do not compound with each other.
Each tax in the layer is calculated independently using the same base amount.
If a layer is the first layer, taxes in that layer are calculated using the order subtotal.
For example, this photo displays Local Tax, Excise Tax, and Sales Tax in three different layers. Meaning, the Local Tax will be calculated off the subtotal, the excise tax will be calculated off the subtotal + Local Tax, and the Sales Tax will be calculated off the Subtotal + Local Tax + Excise Tax.
For example, let's assume you're selling a $100 cannabis item. Here's how the taxes would be calculated directly off of the subtotal and do not Compound together.
Subtotal: $100.00
Layer 1
Local Tax ($100 x 6%): $6.00
Layer 1 total: $106.00
Layer 2
Tax B ($106 x 15%): $15.90
Layer 2 total: $121.90
Layer 3
Tax C ($121.90 x 8.75%): $10.67
Final total: $132.57
Layer 2 compounds on Layer 1
Layer 3 compounds on Layer 2
*Using a non-arm's length distributor.
Option 2: Non-Compounding Tax Layers
Taxes that appear in the same layer do not compound with each other.
Each tax in the layer is calculated independently using the same base amount.
If a layer is the first layer, taxes in that layer are calculated using the order subtotal.
Each Tax Label does not affect each other’s calculation.
For example, this photo displays Local Tax, Excise Tax and Sales Tax in the first layer. Meaning, all taxes are calculated directly off the subtotal and do not compound together.
For example, let's assume you're selling a $100 cannabis item. Here's how the taxes would be calculated directly off of the subtotal and do not Compound together.
Subtotal: $100.00
Tax A (6%): $6.00
Tax B (15%): $15.00
Tax C (8.75%): $8.75
Total after layer: $129.75
*Using a non-arm's length distributor.
Product Subtypes and “Applies To”
Every tax in Treez includes an “Applies To” setting that controls which products the tax is calculated on.
Taxes can apply to:
Cannabis products only (Metrc, BioTrack Packages)
Non-cannabis products only (Merch)
All products (Everything)
This filtering happens before tax calculation begins.
Important behaviors to understand:
A tax will only calculate against products it applies to
Multiple taxes in the same layer can apply to different product groups
Taxes that do not apply to a product are skipped entirely for that product
Example:
If a layer includes:
A cannabis-only tax
A non-cannabis-only tax
Each tax will calculate only on the products it applies to, even though they exist in the same layer. This allows Treez to support mixed baskets with different tax treatments.
Customer Types (Medical vs Adult-Use)
Treez supports separate tax structures for medical and adult-use customers.
Each customer type has its own tax configuration, including:
Which taxes are enabled
How taxes are layered
What rates are applied
The system automatically applies the correct tax structure based on the customer’s classification at checkout.
Market-specific rules determine when one or both customer types must be configured.
Tax Labels and Rates (Conceptual Overview)
Tax labels
A tax label defines the behavior of a tax, such as:
Whether it is a sales tax, excise tax, or custom tax
Whether it supports automated rate behavior
How it interacts with customer exemptions
Each tax label can only be used once per customer type.
Tax rates
Rates define the percentage or value used to calculate a tax.
Some rates are:
Entered manually
Pulled from configured tax rates (Dynamic Sales Tax in CA Only)
Automatically calculated based on system values
The label controls how the rate behaves, while the rate controls how much is charged.
For instructions on entering rates or creating new taxes, learn more in Setting Up Tax Rates and Custom Taxes.
How the Final Total Is Calculated
For each transaction, Treez:
Groups items by product subtype and customer type
Applies eligible taxes in the first layer
Calculates each subsequent layer using the prior layer’s total
Adds all calculated taxes to the order
This process ensures taxes are calculated consistently and in the correct order.
Some states apply additional calculation rules that affect how taxes interact with discounts. For an example, learn more in Calculating Taxes on Pre-Discount Prices (New York).
What This Article Does Not Cover
This article does not explain:
How to add or edit taxes in the UI
State-specific tax requirements
Product modeling for tax compliance
Post-tax pricing behavior
For those topics, learn more in:
Next Steps
Once you understand how Treez calculates taxes, you’re ready to configure your tax structure.
Start with:


