How to Use Tax Collection Analysis in Squarespace: Step-by-Step Tutorial
Updated October 2026
Introduction to Tax Collection Analysis
A Squarespace order export records the tax collected on each order next to where the order shipped. Summed by region, that shows how much tax your store collected from each place and how the effective rate differs from one place to the next.
This tutorial shows what that analysis can and cannot say. The order export tells you what was collected. It does not tell you what you owe, whether a region should have been taxed, or how customers would react to a price change. Those questions need other evidence, and the last sections say which.
The figures in the worked example below come from a small synthetic data set generated for this tutorial, not from any store. The code is short enough to check by hand.
Prerequisites and Data Requirements
What You'll Need Before Starting
- Access to the Orders panel in your Squarespace Commerce site, with permission to export data
- Orders that include taxes: the export has a "Taxes" column, but how Squarespace calculates it is not described on the export help page, so check your own tax settings before reading rates as statutory rates
- A date range with enough orders in each region you want to compare. There is no single minimum: a rate estimated from a handful of orders is imprecise, and one estimated from many orders is more stable
- Basic familiarity with CSV files
Understanding Your Tax Data Structure
According to Squarespace's help page on exporting Commerce orders, every order export includes these columns, among others:
Order ID, Email, Financial Status, Currency, Subtotal, Shipping, Taxes, Amount Refunded, Total, Discount Amount, Created at, Lineitem quantity, Lineitem name, Lineitem price, Lineitem sku, Lineitem taxable, Billing Province, Billing Country, Shipping Province, Shipping Country
The export does not contain a "Tax Rate" or "Tax Region" column. You derive the rate yourself:
- Taxes: the tax on the order, one value per order
- Subtotal: the order value used as the denominator for an effective rate
- Shipping Province and Shipping Country: the region to group by (billing columns are also exported; choose the one that matches how your taxes are determined)
- Lineitem taxable: whether each line was taxable, which helps explain orders with no tax
Data Quality Checklist
- The export has one row per line item. For an order with several products, the help page says order-wide details appear only in the first row with that order ID (it names Order ID, financial status and shipping address as examples). Check in your own file whether Taxes is blank on the later rows, then count orders by Order ID and take order-level fields from the first row of each order, or you will double count
- Orders in more than one currency (the Currency column) must be analyzed separately or converted
- Refunded and cancelled orders (see Financial Status, Amount Refunded and Cancelled at) need an explicit decision: include, exclude or net out
- Region values are spelled consistently (for example "CA" for one province and not "California" in other rows)
Step-by-Step Tax Collection Analysis
Step 1: Export Your Squarespace Order Data
These steps follow Squarespace's help page on exporting Commerce orders:
- Open the Products & Services panel and click Orders
- Click Export data, then Download CSV
- Choose the order statuses to include
- Choose a date range (the export covers orders created within it)
- Choose All products
- Click Download
Menu labels can change, so if yours differ, follow the help page.
Step 2: Compute the Effective Tax Rate by Region
The effective tax rate for a region is its total taxes divided by its total subtotal:
effective rate = 100 x (sum of Taxes) / (sum of Subtotal)
The code below groups a small synthetic export by shipping region. It also counts orders with no tax and shows the lowest and highest per-order rate in each region, because an effective rate is an average over orders and can hide a mix.
import pandas as pd
# Synthetic orders made up for this tutorial. The column names follow the Squarespace
# order export; the values do not come from any store.
orders = pd.DataFrame({
"Order ID": [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010],
"Shipping Country": ["US"] * 8 + ["GB"] * 2,
"Shipping Province": ["CA", "CA", "CA", "NY", "NY", "NY", "TX", "TX", "", ""],
"Subtotal": [100.00, 200.00, 60.00, 150.00, 50.00, 90.00, 80.00, 120.00, 120.00, 60.00],
"Taxes": [8.75, 17.50, 5.25, 12.00, 4.00, 0.00, 6.60, 9.90, 0.00, 0.00],
})
# A real export has one row per line item, with order-level fields such as Taxes on the first row of each
# order only (check your file). Keep one row per order before grouping. This synthetic table already has
# one row per order, so the line changes nothing here.
orders = orders.drop_duplicates(subset="Order ID", keep="first")
# One tax rate per order, then one row per region.
orders["order_rate_pct"] = 100 * orders["Taxes"] / orders["Subtotal"]
by_region = orders.groupby(["Shipping Country", "Shipping Province"]).agg(
orders=("Order ID", "nunique"),
subtotal=("Subtotal", "sum"),
taxes=("Taxes", "sum"),
zero_tax_orders=("Taxes", lambda s: int((s == 0).sum())),
lowest_order_rate=("order_rate_pct", "min"),
highest_order_rate=("order_rate_pct", "max"),
)
by_region["effective_rate_pct"] = 100 * by_region["taxes"] / by_region["subtotal"]
print(by_region.round(2).to_string())
Output:
orders subtotal taxes zero_tax_orders lowest_order_rate highest_order_rate effective_rate_pct
Shipping Country Shipping Province
GB 2 180.0 0.0 2 0.00 0.00 0.00
US CA 3 360.0 31.5 0 8.75 8.75 8.75
NY 3 290.0 16.0 1 0.00 8.00 5.52
TX 2 200.0 16.5 0 8.25 8.25 8.25
Step 3: Read the Result Carefully
- California and Texas: every order has the same rate (8.75% and 8.25% in this synthetic data), so the effective rate equals the per-order rate.
- New York: one order collected no tax, so the effective rate (5.52%) is lower than the 8.00% on the other two orders. The average mixes two situations. Look at the zero-tax orders and the Lineitem taxable column before treating 5.52% as the rate customers faced.
- GB: both orders collected $0.00. That tells you nothing was collected on these orders. It does not tell you whether tax was owed, whether the orders were exempt, or that you could lower prices there without losing margin. Those depend on your tax obligations and your costs, which are not in the export.
A rate computed from two or three orders, as here, is only an illustration. With real data, the more orders a region has, the more stable its effective rate is, and the spread between the lowest and highest per-order rates tells you whether one number describes the region at all.
Step 4: Know What the Order Export Cannot Answer
An effective tax rate from an order export is descriptive. These questions need more than the export:
- Are customers in high-tax regions abandoning carts more often? The export lists completed orders only. You need visitor or checkout-session counts by region as the denominator, joined to the order data.
- Would a price change in a region improve profit or conversion? Observed tax rates do not answer this. Test it with a defined experiment (for example, a price shown to a random half of visitors) and judge it on profit and conversion, not on the tax rate.
- Does a region owe tax that you are not collecting? That is a legal question about your obligations. Check your tax settings and the rules of the jurisdiction, or ask a tax professional. A zero in the Taxes column is not evidence either way.
Segmenting by Product
Because the export is line-item based and includes "Lineitem name", "Lineitem price", "Lineitem sku" and "Lineitem taxable", you can see which products were marked taxable. Order-level Taxes is not split by line in the export, so a per-product tax amount would have to be estimated, and the estimate depends on assumptions about how tax was calculated. State those assumptions next to any per-product figure.
To ask whether customers in higher-rate regions buy less or return less often, you would join the export to other data (traffic, or earlier orders by the same email) and compare groups with a method suited to that question. Rate differences between regions are not a randomized comparison, so differences in repeat purchasing may reflect who lives where rather than tax.
Run It on Your Own Squarespace Export
Export your orders from Squarespace as a CSV and upload it at MCP Analytics. The analysis runs a regional comparison of taxes against subtotals on your file and shows the result with the method used. You choose the columns; nothing connects to your Squarespace account.
Next Steps with Squarespace Analytics
1. Test Pricing Changes Properly
If the tax comparison raises a pricing question, evaluate it with a controlled test and a pre-agreed outcome measure. See A/B testing statistical significance for how to judge the result.
2. Check Tax Obligations Separately
Whether you should be collecting tax in a region is a compliance question. Use Squarespace's tax documentation and a tax professional, not the export, to answer it.
3. Re-run on Later Exports
Export again for a later period using the same filters and compare the effective rate by region. If a rate moves, look at orders, line items and settings before concluding that a rule changed.
Troubleshooting Common Issues
Issue 1: Taxes Are Zero or Missing
Symptoms: The Taxes column is empty or zero for many orders.
- Check "Lineitem taxable" to see whether the items were marked taxable.
- Check your store's tax settings for the period.
- Digital or exempt items may carry no tax; the export does not say why.
Issue 2: Totals Look Doubled
Cause: The export has one row per line item. Sum order-level columns such as Subtotal and Taxes once per Order ID, using the first row of each order. The help page names Order ID, financial status and shipping address as order-wide details; check your own file for the tax columns.
Issue 3: Regions Are Spelled Inconsistently
Symptoms: The same place appears as "CA" and "California", or some rows are blank.
- Standardize the spelling before grouping.
- Group blank-province orders separately, for example by country alone.
Issue 4: The Same Region Shows Different Rates in Different Periods
- Compare the per-order rates in each period. A shift in the mix of taxable and non-taxable items changes the effective rate even if no rate changed.
- Check whether tax rules or your tax settings changed in the period.
Getting Additional Support
- For the export itself, see Squarespace's help page on exporting Commerce orders.
- For a tax rule in a particular place, consult the tax authority for that place or a tax professional.
Conclusion
An order export lets you compute the effective tax rate by region from the Taxes and Subtotal columns. Read each rate together with the number of orders, the spread of per-order rates and the count of zero-tax orders. The export describes what was collected. Questions about what you owe, or what a price change would do, need other evidence.
Your turn
Bring your own data and the question you actually need answered.
MCP AnalyticsData science by email Send us your data and your question, and we will reply. ds@mcpanalytics.ai
Explore more: Squarespace Analytics: all tools, tutorials, and guides →
Not sure which plan? Compare plans →