Profit widgets and cost settings
Add Net Profit, Net Margin, Cost Breakdown, Profit by Product and more to any dashboard (or start from the Profit template), enter your product and other costs in Cost settings, and see exactly how Cruva works out what you actually made.
For brands who want to know what they actually made from TikTok Shop, not just what they sold.
The short version
- Cruva already syncs your sales, affiliate commission, GMV Max spend and sample cost. Add what each product costs you (its landed cost) and Cruva turns all of it into profit.
- There are six profit widgets: Net Profit, Net Margin, Profit per Unit, Total Costs, Cost Breakdown and Profit by Product, plus four extra stats: Landed Cost, TikTok Fees, Ad Spend % of GMV and Contribution Margin.
- Your dashboard has a Profit tab with the main ones already on it. You can also start an empty dashboard from the Profit template, or add them from the Profit & costs section when you edit any dashboard.
- Profit is in Beta: the widgets, stats, template and Cost settings all carry a Beta tag while we refine the numbers.
- Enter costs in Cost settings (a dashboard's ⋯ menu → Cost settings). Products you haven't costed are left out of profit, so the numbers are never padded with guesses unless you turn on estimates.
- Profit needs the Scale plan (or a legacy Growth plan), and it's never shown on shared dashboard links.
Add profit widgets to a dashboard
- Open Dashboard and click the pencil (Edit) at the right of the tabs.
- In the Customize panel, open Profit & costs.
- Click a stat or widget to add it, or drag it onto the board where you want it. Click Save.
On an empty dashboard, the Profit template adds Net Profit, Net Margin, Profit per Unit, Total Costs, Cost Breakdown and Profit by Product in one click. You can change or remove any of them afterwards. It only shows its widgets on plans that include profit.
You can also turn a stat card you already have into a profit stat: open the card's settings and pick one from Profit & costs in the Stat list. When a profit stat is picked, Edit cost settings opens Cost settings straight from there.
The Profit tab is added for you on plans that include profit. Like any default tab, you can edit it, rename it or delete it (bring it back from Restore default boards). Team members only see it if they have access to Affiliate CRM › Reports. For how editing, resizing and arranging work, see Build custom dashboards.
They all follow the board's date range and product filter. The stat cards also show the change against the comparison period; Cost Breakdown and Profit by Product show the selected dates only.
What each widget shows
- Net Profit: GMV minus every cost (see the next section), with a trend line and the change against the comparison period. A Partial data chip means some of your sales are left out because those products have no cost yet. Includes estimates means some products are costed with your estimate % (see below).
- Net Margin: net profit as a share of GMV.
- Profit per Unit: net profit divided by units sold. Products with costs only under the number is a reminder that products without a cost aren't counted.
- Total Costs: every cost line added up, with its share of GMV underneath. For this card a drop is good, so a decrease shows in green.
- Cost Breakdown: one bar split into each cost line and what's left as net profit (in green), with a legend listing each line's amount and its share of GMV. The pencil on a line opens Cost settings at that line (commission has none, because it's the real commission on every order). With the product filter on, the monthly costs line is hidden (see below). Before any product has a cost, the legend already shows the costs Cruva tracks for you (TikTok fees, commission, GMV Max spend, sample cost), with landed cost marked Not set up and net profit Not available yet.
- Profit by Product: a table of every product that sold in the date range, with GMV, Per unit (profit per unit), Net profit and Margin. Click a column header to sort. Products with a cost are listed first; those without show Add cost instead of numbers. A product costed with your estimate % is tagged Estimated cost. Click Losing money to show only products with a negative net profit. Click a row to filter the whole dashboard to that product, and click it again to clear the filter. Net profit here is before monthly costs, because those don't belong to any one product.
The extra stats:
- Landed Cost: units sold × each product's landed cost.
- TikTok Fees: your estimated TikTok Shop fees (see below).
- Ad Spend % of GMV: GMV Max spend as a share of GMV (sometimes called TACoS).
- Contribution Margin: profit before ad spend and monthly costs, as a share of GMV. It shows what your products earn before you spend on growth and overheads.
Like Total Costs, a drop in Landed Cost, TikTok Fees or Ad Spend % of GMV shows in green. Margin and percentage stats are charted as a 3-day rolling average, so one odd day doesn't make the line jump.
Until at least one product has a cost, the profit stats show a prompt to add a landed cost instead of a number, and Cost Breakdown shows Product costs aren't included yet with net profit Not available yet.
How net profit is worked out
Net profit = GMV minus:
| Cost | Where it comes from |
|---|---|
| Landed cost | Units sold × the landed cost you set for each product (or SKU). |
| Fulfillment | Units sold × your fulfillment cost per unit, if you set one. |
| TikTok fees | An estimate: 6% of GMV unless you change it. TikTok doesn't share its fees with Cruva. |
| Commission | Affiliate commission on the orders, by order date. Settled orders use the actual commission, pending orders the estimated commission, and canceled orders are left out. |
| GMV Max spend | Synced from your TikTok Ads account. |
| Sample cost | Samples shipped in the range, at your product cost. |
| Monthly costs | The recurring costs you add, such as software or agency fees. |
A few things to know:
- Products without a cost are left out of both sides. Their GMV and their costs are both dropped, so an uncosted product doesn't make your margin look better or worse than it is. That's what Partial data means.
- Or estimate the missing ones. In Cost settings, turn on Estimate missing costs at and set a % of sale price (35% to start). Products without a cost then use that estimate and are counted, and Net Profit shows Includes estimates. A sold unit's landed cost never falls back to its retail price; that would make every uncosted product look like it breaks even.
- Sample cost falls back to the retail price when a sampled product has no cost, the same as the Sample Spend stat, so the two always match.
- GMV Max spend billed in another currency is converted to your shop's currency at current exchange rates (not the rate on each day). If a rate isn't available, ad spend is left out and the widget tells you.
- Cost changes apply to all past dates. Change a product's cost and every date range is recalculated with the new cost, not just sales from today.
- Monthly costs count only when no product filter is on, and they're prorated by day: a $3,000/month cost counts $100 a day in a 30-day month.
Set your costs
Open a dashboard's ⋯ menu (at the right of the tabs) and choose Cost settings. Every profit widget also has a small gear icon (⚙) that opens it straight to the costs behind that widget (TikTok Fees opens the fee, Ad Spend % of GMV opens GMV Max spend, the rest open Product costs). It also opens from Edit cost settings in a stat's settings, the pencils on Cost Breakdown and Profit by Product, and any Add cost link. It has two tabs. Nothing changes until you click Save costs. Saving keeps the window open so you can carry on; if you close it with unsaved changes, you're asked Discard unsaved changes? first.
Product costs
Landed cost is what one unit costs you: product cost plus shipping to your warehouse.
- The bar at the top shows how much of your GMV your costs cover and how many products have a landed cost. If you're missing a lot, Show them first lists your top-selling products without a cost, so a few entries cover most of your sales.
- Type a landed cost next to any product. Expand a product to set a cost per SKU; a SKU's cost wins over its product's.
- Search, filter to All, Missing or Added, and sort by Highest GMV, Name or Highest price.
- Set many at once: tick products, then Set landed cost to an amount or a % of price. Tick Skip N that already have a cost to leave the ones you've done alone. Undo reverses it.
- Estimate missing costs at: turn this on to cost every product you haven't filled in at a % of its sale price (see above).
- CSV: Download template (or Export) gives you every product with its current cost, and Upload CSV imports the filled-in file. It's the same file as Sample COGS, with the same rules (a blank cell leaves a product alone). An upload is saved as soon as it finishes.
These are the same costs Cruva uses for sample spend: set a product's cost here or in Sample COGS and both places update.
Other costs
- Automatically tracked costs: TikTok fees, commission, GMV Max spend and sample cost, each with its synced value for the dashboard's date range. Change the TikTok fee % if you know your real rate. Override replaces GMV Max spend or sample cost with your own amount per month; Use synced goes back to the synced data. Commission can't be overridden: Cruva has the commission on every affiliate order, so it's always the real number.
- Fulfillment: pick, pack and shipping per unit shipped.
- Monthly costs: costs TikTok doesn't know about, such as software, agency fees or warehousing. Click + Add a cost, give it a name and an amount per month, and set the month it starts (and ends, if it isn't ongoing). The hint under each one shows how much it counts in the current date range. Monthly costs only apply to the whole shop, not to a single product.
Changes to these settings are recorded in the shop's audit log.
Common questions
Why does Net Profit say Partial data? Some products that sold in the date range don't have a landed cost, so they're left out of both GMV and costs. Add the missing costs in Cost settings (start with Show them first, which lists your top sellers without a cost), or turn on Estimate missing costs at.
Why don't I see Profit & costs in the Customize panel? Profit needs the Scale plan (or a legacy Growth plan). On other plans you can't add the profit stats or widgets.
Why do the profit widgets say Beta? Profit is new, and some of its inputs are estimates (TikTok fees, and missing costs if you turn on estimates). The Beta tag is a reminder to check the numbers against your own books while we refine them.
Can I share profit on a dashboard link? No. Margins and costs are never shown on shared links. The profit stats and widgets are left off every link, even when they're on a dashboard you share.
Why is my GMV on the profit widgets lower than Total GMV? Profit only counts sales of products that have a cost (or an estimate). If you've only costed some of your catalog, the GMV in Cost Breakdown is the GMV of those products.
Are the TikTok fees real? No, they're an estimate. TikTok doesn't share fee data with Cruva, so Cruva uses 6% of GMV. If your rate is different, change it under Other costs.
Why is Profit by Product's total different from Net Profit? Profit by Product is before monthly costs, which belong to the shop, not any one product. Net Profit on the whole shop includes them.
I changed a cost. Why did last month's profit change too? Costs apply to all past dates. There's no cost history yet, so every date range uses the costs you have now.
Why did my ad spend drop out? Your TikTok Ads account bills in a different currency from your shop, and the exchange rate wasn't available. Ad spend is left out until it is, and the widget shows a warning.
Can I change the commission number? No. Cruva has the commission on every affiliate order: the actual amount once an order settles and TikTok's estimate until then. Since it's the real number, there's nothing to override.
Do sample costs use the same cost as profit? Yes. The cost you set in Cost settings or Sample COGS is the same number. For samples, a product with no cost falls back to its retail price, as it always has; for sold units it doesn't.
Related
Was this article helpful?
Related articles
- Welcome to CruvaCruva is the AI operating system for TikTok Shop affiliate growth — find creators, automate outreach, manage samples and content, and measure the GMV they drive, all in one place.
- Getting Started with CruvaYour first-run checklist, a map of where everything lives, and a plain-English glossary.
- Connect your TikTok ShopLink your TikTok Shop to Cruva, grant Affiliate Manager access with the right email, and fix 'link failed', 'linking', and 'login failed' statuses.
- Your dashboard: every stat explainedA guide to the main Cruva dashboard: every stat card, how to add or remove stats, filters, comparison periods, and what each tab (Analytics, Products, Creators, Videos, Outreach, Profit, Affiliate Orders) shows.
- Regions, markets, and languagesWhich 18 TikTok Shop markets Cruva supports, which markets are coming soon, cross-border selling, licensing across the EU, automation message languages, and changing your dashboard language.
- Build custom dashboards, set your default, and share themEvery dashboard tab is yours to edit: rearrange the defaults or make your own from any stat, chart or table in Cruva, pin Copilot answers, pick which one opens first, and share any of them with a password-protected link.