> For the complete documentation index, see [llms.txt](https://docs.drivepoint.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drivepoint.io/changelog/updates/sales-tax-margin-calculations.md).

# Sales tax is no longer in net revenue

Sales tax is a passthrough, so it is no longer in net revenue or in margin calculations. Net revenue is net sales plus shipping.

*Published October 14, 2026*

You asked us for a contribution profit number that matches the revenue you keep. Sales tax is a passthrough. It sits on the balance sheet until it is remitted, and it is not revenue on a P\&L. We took it out of net revenue, and margin calculations now use that net revenue. We are glad you pushed on it. It makes the number easier to stand behind with your team and your board.

Gross profit, contribution profit, and the margins under them use net revenue. Net revenue is gross sales, minus discounts, minus returns, plus shipping income.

## What changed

Discounts and returns are taken out of both net sales and net revenue. Shipping is in net revenue. Sales tax is not.

| What you are looking at              | Before                                                                                                                                        | After                                                                                                                           |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Net sales                            | Gross sales, minus discounts, minus returns. Shipping and sales tax are not in this number.                                                   | No change. `Gross sales − Discounts − Returns`                                                                                  |
| Shipping income                      | What customers paid you for shipping.                                                                                                         | No change.                                                                                                                      |
| Sales tax                            | Included in net revenue, and included in the revenue we used for margin calculations.                                                         | On its own line. Not in net revenue, and not in gross margin, contribution margin, or the profit dollars those margins produce. |
| Net revenue                          | Gross sales − discounts − returns + shipping + sales tax.                                                                                     | `Gross sales − Discounts − Returns + Shipping`. Sales tax is not in this number. Past months are recalculated.                  |
| Revenue used for margin calculations | The old net revenue, which included sales tax.                                                                                                | Net revenue. The same number as the row above.                                                                                  |
| Contribution profit                  | Margin applied to revenue that still included sales tax, then minus product cost and the variable costs of getting the order to the customer. | The same costs, starting from net revenue.                                                                                      |
| Past months                          | Calculated with sales tax inside net revenue and inside the margin.                                                                           | Recalculated without sales tax. This is not only for new orders.                                                                |

{% hint style="success" %}
After this release, we rebuild history on this definition. Every past month in the live reports moves. An export or a board deck you already saved does not change on its own. Open the report again, or run the Excel import again, and you will see the new figures.
{% endhint %}

## Shopify's names and Drivepoint's names

Shopify's own analytics and Drivepoint's combined ecommerce tables are not the same labels for the same idea.

Shopify, in the Shopify admin, uses:

* **Net sales** = Gross sales − Discounts − Returns. Shipping and sales tax are not in Shopify net sales.
* **Total sales** = Net sales + Shipping + Taxes. Discounts and returns are already out. Sales tax is in.

Drivepoint puts Shopify, Amazon, and TikTok orders into two combined tables: `ecommerce_transactions_order_level` and `ecommerce_transactions_line_item_level`, in the `production_dwh_mart` dataset (your project may use `staging` or `dev` instead of `production`). Those tables use Drivepoint's column names, not each platform's report labels.

| Drivepoint column                  | Drivepoint definition                                                                                                     | How it lines up with Shopify                                                                                        |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `gross_sales`                      | Product sales before discounts, returns, shipping, and sales tax.                                                         | Shopify Gross sales.                                                                                                |
| `discounts`                        | Discounts. Stored as a negative amount, so adding this column subtracts discounts.                                        | Shopify Discounts.                                                                                                  |
| `returns`                          | Returns. Stored as a negative amount, so adding this column subtracts returns.                                            | Shopify Returns.                                                                                                    |
| `net_sales`                        | `gross_sales + discounts + returns`, which is Gross sales − Discounts − Returns. Shipping and sales tax are not included. | Shopify Net sales.                                                                                                  |
| `shipping`                         | Shipping income.                                                                                                          | Shopify Shipping.                                                                                                   |
| `taxes`                            | Sales tax collected. A passthrough, not revenue.                                                                          | Shopify Taxes.                                                                                                      |
| `net_revenue`                      | `net_sales + shipping`, which is Gross sales − Discounts − Returns + Shipping. Sales tax is not included.                 | Not a Shopify report total. This is Drivepoint net revenue, and it is the base for margin calculations.             |
| `net_revenue_plus_taxes_collected` | `net_revenue + taxes`.                                                                                                    | The same idea as Shopify Total sales. This column exists so you can tie out to Shopify. It is not used for margins. |

Amazon and TikTok Shop do not publish a "net sales" or "total sales" number under Shopify's names. Drivepoint maps their order amounts into these same columns so one table can hold all three platforms. When you read the combined tables, use the Drivepoint definitions above. Do not assume a column matches a total you exported from the platform's own admin.

## Reports in the app

Net revenue on these reports no longer includes sales tax, and the profit lines use that net revenue.

* [**DTC Customer Cohort**](/using-the-web-app/reports/cohort-analysis.md) bundle. This includes [N-Day LTV](/using-the-web-app/reports/cohort-analysis/n-day-ltv.md), [Cohorted Financials](/using-the-web-app/reports/cohort-analysis/cohorted-financials.md), and [LTV/Retention by Dimension](/using-the-web-app/reports/cohort-analysis/ltv-retention-by-dimension.md). Net revenue lifetime value and contribution-profit lifetime value both move. That includes contribution profit per customer, contribution profit after blended ad spend, and contribution profit after total marketing spend, at 30, 60, 90, 180, and 360 days, and across the customer's full life. Net sales lifetime value does not change.
* **Day 90 Contribution Profit LTV** and **Day 90 Contribution Profit LTV Less CAC** on your scorecard. **Day 90 Net Profit LTV** also moves.
* [**Financial Heartbeat**](/using-the-web-app/dashboards/financial-heartbeat.md), [**Monthly Review**](/using-the-web-app/reports/monthly-review.md), and [**DTC Performance vs. Plan**](/using-the-web-app/reports/performance-vs.-plan/dtc-performance-vs.-plan.md), on the net revenue line and on gross profit, contribution profit, contribution profit after marketing, EBITDA, and net income, and the margins on those lines.
* [**LTV Benchmarks**](/using-the-web-app/reports/benchmarks/ltv-benchmarks.md) for net sales, which do not change, and for net revenue and contribution-profit comparisons, which do. The peer comparison uses the same definition.

Customer retention, order retention, and segment crossover in the same cohort bundle do not use this profit figure. Those reports stay as they are.

## Excel

Your SmartModel workbook is not edited. The Contribution Profit row in the model is still your formula.

If you use the Excel add-in to pull data into a sheet, the next import brings the rebuilt history. That is the import of the LTV table, `cohorted_financials`, and the financial dashboard table, `financial_data`. A sheet you already imported stays as it is until you import again.

## Data you query directly

| Dataset                         | Tables                                                                                                                                     | What changes                                                                                                                                                                                                         |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `production_ltvReport`          | `cohorted_financials`, `ecommerce_orders_cohorted_for_ltv`, `ecommerce_orders_cohorted_with_financial_metrics`, `customers_lifetime_stats` | `net_revenue` no longer includes sales tax. Contribution profit, gross profit, product cost, and variable cost use that net revenue. `net_sales` is unchanged.                                                       |
| `production_executiveDashboard` | `financial_data`, `daily_data_by_stores`                                                                                                   | `net_revenue` no longer includes taxes collected. Gross profit, contribution profit, and the profit lines under them use that net revenue.                                                                           |
| `production_dwh_mart`           | `ecommerce_transactions_order_level`, `ecommerce_transactions_line_item_level`                                                             | `net_revenue` is net sales plus shipping. New column `net_revenue_plus_taxes_collected` is the Shopify total-sales check. `gross_sales`, `discounts`, `returns`, `net_sales`, `shipping`, and `taxes` do not change. |

`production_dwh_mart.smartmodel` and `smartmodel_actuals` are the numbers published from your Excel model. This update does not rewrite them.

If you have a board pack or a sheet built on the previous net revenue or contribution profit, we would love to walk through it with you. You should not have to line that up on your own.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.drivepoint.io/changelog/updates/sales-tax-margin-calculations.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
