At a glance
Tax collected over time, plotted as a daily/weekly time series across the 90-day window. The pass-through liability owed to tax authorities, useful for VAT-return forecasting and sanity-checking against accounting.
| What it counts | SUM(totalTax) GROUP BY date(createdAt). Each point is one day of tax collected from customers. |
| VAT / tax treatment | This IS the tax view. For VAT-inclusive (UK / EU) stores, totalTax is the embedded VAT extracted server-side. For VAT-exclusive (US sales tax) stores, it’s the add-on tax charged on top of subtotal. |
| Shipping | Tax-on-shipping is included if Shopify tax engine charges shipping VAT. UK / EU typically yes; US varies by state. |
| Discounts | Tax is computed on post-discount subtotal in most jurisdictions; totalTax reflects this. |
| Refunds | NOT deducted. The card shows gross tax collected, not net of refunds. For HMRC / IRS net liability, subtract refund-tax separately. |
| Cancelled / voided orders | Included if Shopify indexed them. Voided orders typically show £0 tax already. |
| Currency | Multi-currency arithmetic without FX. Per-currency tax aggregation is correct; cross-currency aggregation is not. |
| Channels / sources | All channels. POS sales contribute their till-time tax; B2B with VAT-exempt customers contribute zero. |
| Time window | 90D (default 90D rolling) |
| Alert trigger | None directly; pair with VAT-return cycle for compliance alerts. |
| Roles | owner |
Calculation
Calculated automatically from your Shopify data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK skincare DTC brand on Shopify, VAT-registered (20% standard rate, £85k threshold), uses Shopify Tax engine. 90D window 12 Feb 26 to 12 May 26. Smoothed weekly view:| Week of | Revenue (gross) | Tax collected | Effective rate | Note |
|---|---|---|---|---|
| 16 Feb 26 | £58,400 | £9,733 | 16.7% | Standard mix |
| 23 Feb 26 | £52,800 | £8,800 | 16.7% | Steady |
| 02 Mar 26 | £61,200 | £10,200 | 16.7% | Steady |
| 09 Mar 26 | £71,400 | £11,900 | 16.7% | Spring drop launch |
| 16 Mar 26 | £68,800 | £11,467 | 16.7% | |
| 23 Mar 26 | £59,400 | £9,900 | 16.7% | Drop momentum fading |
| … | ||||
| 90D total | £780,400 | £130,067 | 16.7% |
totalTax = totalPrice × (20/120) ≈ 16.67%. The constant ratio across weeks confirms the tax engine is working correctly.
Six things to notice:
- Effective rate stability is the health check. Variations of more than 0.5 ppt week-over-week suggest:
- A new VAT-exempt customer cohort (B2B with valid VAT number).
- A reduced-rate product introduced (children’s clothing, books).
- Tax engine misconfiguration post-update.
- Total over 90D is your VAT return preview. £130k of tax over 90 days = ~£43k/month liability. Match against bookkeeping closing balance for sanity.
- Spring drop spike is reflected. Tax revenue scales with sales revenue. The week of 09 Mar shows a tax bump matching the sales bump; correct.
- Refund-adjusted is different. This card shows gross collected, not net liability. For VAT returns, subtract refund-tax (and recover from HMRC); fortunately Shopify’s Taxes report exposes this directly.
- Multi-currency stores split. A UK + US Shopify store will show two effective rates (UK 16.67%, US ~7-9% blended state tax). Filter by currency for a clean read; cross-jurisdiction blending is meaningless.
- Compliance signal. Persistent gaps between this card’s running total and your accounting record indicates either tax-engine misconfiguration or a sync issue between Shopify and your finance system. Reconcile monthly.
Sibling cards merchants should reference together
Tax over Time is the trend view. Companions:| Card | Why pair it with Tax Over Time |
|---|---|
| Total Tax Collected | The aggregate single-number version. |
| Revenue Over Time | The denominator; tax should track revenue at a stable ratio. |
| Total Revenue | Aggregate context. |
| Revenue Breakdown | Decomposition; tax is one of four slices. |
| Customer Countries | Tax varies by destination; international mix shifts effective rate. |
| Customer Segments | B2B-exempt customers lower effective rate. |
| Refunds Over Time | Refunds unwind tax; net VAT liability requires subtraction. |
Reconciling against the vendor’s own dashboard
Where to look in Shopify Admin:Shopify Admin → Analytics → Reports → “Taxes” (under Finance)The most direct equivalent. Pick the same window. Tax-by-period totals should match this card. Shopify’s report can also break by tax rate (e.g. UK Standard 20%, Reduced 5%, Zero) and by region. Other Shopify Admin views:
- Reports → “Sales by billing location”: tax-by-state/region for US sales tax compliance.
- Settings → Taxes and duties: the tax-engine configuration.
- Apps: Avalara, TaxJar, Quaderno produce their own tax reports; should match this card to within sync-lag.
| Reason | Direction | Why |
|---|---|---|
| Tax-engine differences | Either | If you use Avalara or TaxJar instead of Shopify Tax, the calculation may differ slightly during cutover periods. |
| Refund treatment | Theirs lower | Shopify’s tax report shows gross-vs-refunded split; we show gross only. |
| VAT-inclusive vs exclusive | Same shape, different absolute | Both follow the configured store mode. |
| Time zone | Boundary | UTC vs store time zone. |
| Multi-currency | Aggregate distortion | We don’t FX-normalise. |
| Sync lag | Ours lower for “today” | Most-recent 5-15 min may not be in. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
stripe.stripe_tax (when using Stripe Tax) | Should match Stripe-gateway slice | Stripe Tax is a separate engine; for stores using it on Stripe-gateway orders only, ratio holds for that subset. |
| Accounting / ERP (Xero, QuickBooks) tax balances | Should match within rounding | Bookkeeping reconciliation; persistent gaps indicate sync error. |
Known limitations / merchant FAQs
My effective rate dropped suddenly. What happened? Three usual causes:- VAT-exempt B2B order: a wholesale customer with valid VAT number placed a large zero-tax order, dragging the average down for the day/week.
- International shift: more orders shipping to non-VAT regions (US to Asia, etc.) reduce effective rate on a UK-only-VAT store.
- Tax-engine misconfiguration: a new product type was added without VAT classification; defaulted to zero.
- Standard-rate mix shift: a new product line in a higher-rate category (e.g. luxury goods at 20% vs reduced-rate cosmetics at 0% in some jurisdictions).
- Customer-mix shift: more standard-rate domestic orders, fewer reduced-rate or exempt.
- Shopify Tax: native, included in some plans. Adequate for most DTC and basic B2B. Limited custom rules.
- Avalara / TaxJar / Quaderno: third-party, more sophisticated rules (tax-exempt customer management, multi-state US, EU OSS, custom product classifications). Often required for complex catalogues.
Order.totalTax regardless of which engine populated it; the underlying source doesn’t change the metric.
My VAT returns require quarterly figures. Can I customise the window?
Yes. The default is 90D; configure to “calendar quarter” or specific date ranges in the chart’s options. For HMRC quarterly returns, align to standard quarters (Q1 Apr-Jun, Q2 Jul-Sep, etc.).
Can I see tax-by-jurisdiction?
Not directly on this card; it’s aggregate. For per-jurisdiction breakdown, use Shopify’s Sales by billing location report or your tax-engine’s reports. Multi-jurisdiction breakdown card is on the roadmap.
My subscription store, do recurring billings show tax?
Yes. Each subscription billing creates its own tax line; appears here on the billing date. Subscription-heavy brands see a steady tax curve with predictable peaks on monthly billing days.
Action playbook for using this card:
- Monthly compliance sanity check: compare 30D total to your accounting record’s VAT closing balance. Should match within rounding.
- Effective rate monitoring: stable rate is healthy; sudden shifts deserve investigation.
- VAT registration threshold tracking: small UK stores approaching £85k VAT-registration threshold should monitor running 12-month revenue closely; this card helps confirm tax flows are correctly configured once registered.
- Tax-engine spot-check: compare a single day’s tax here to a manual recalculation (sum of order-level totalTax) to verify engine accuracy.
- Refund-aware compliance: when filing, ALWAYS subtract refund-tax from the gross figure here; otherwise you over-pay HMRC / IRS.