tTendlio
  • How it works
  • Why Tendlio
  • Pricing
  • Resources
    • Guides
    • Documentation
    • FAQ
  • Try Tendlio for Free
Try Tendlio for Free
  • How it works
  • Why Tendlio
  • Pricing
  • Resources
    • Guides
    • Documentation
    • FAQ
  • Try Tendlio for Free

Getting started

14
  • How to install Tendlio
  • What Tendlio does
  • What Tendlio can do for you automatically
  • How to check your tools on the Growth engine page
  • How to set up Tendlio with the Getting started guide
  • How to set up Tendlio and run your first analysis
  • How to compare your Dashboard numbers with earlier periods
  • How to choose and arrange your Dashboard cards
  • Understanding your scores
  • Where the scores come from
  • How to work through your to-do list
  • What your to-do list can catch
  • How to get a daily task from the Growth coach
  • How and when to re-scan your store

What the numbers mean

6
  • Product health colors (Fast / Steady / Slow / Dead)
  • ABC class (A / B / C)
  • Selling pace (Sales/mo)
  • Forecast & “runs out in”
  • AOV and gross profit
  • How Sales lift counts what Tendlio brought in

Inventory

13
  • How to use the Products table
  • How to read a product’s Insights page
  • How to boost a product, or hide it from recommendations
  • What the Inventory Score measures
  • How to decide what to restock and how much to order
  • Reading the Forecast page
  • How to set up Auto outlet to clear your dead stock
  • How to discount products yourself with Manual outlet
  • How to test a higher price on a best-seller
  • How to set up your suppliers and order from each one
  • How to use the Tendlio fields on a product
  • How to set up seasonal detection
  • If you also sell in a physical shop

Customers

11
  • What your customer segments mean
  • What the Customer Score measures
  • How to act on a customer segment
  • How to find and contact customers in the Customer list
  • How to send a campaign to your customers
  • How to welcome first-time buyers and nudge them to a second order
  • How to recover abandoned checkouts and carts
  • How to ask customers for a review after their order
  • How to thank your best customers with Customer recognition
  • Coupons the plugin creates (and cleans up)
  • How to build an email in the email editor

Storefront

9
  • How to show frequently bought together products on your product pages
  • How to suggest more products on your cart page
  • How Tendlio suggests a free-shipping threshold
  • How to show in-stock alternatives when a product is sold out
  • How to set up a Deals page and offer a free gift
  • How to sort your product listings by profit with Smart Product Sort
  • How to set up Recommended for you, Trending now, On-sale picks and 404 suggestions
  • Measuring what the widgets earn
  • Storefront widget positions and shortcodes

Email sending

4
  • How to set up email sending and switch it to Live
  • How to check that your emails reach the inbox (SPF, DKIM, DMARC)
  • Who you can email (consent, in plain words)
  • How sending works: waiting emails, the daily limit and email analytics

Reports

5
  • What’s in Reports
  • Views to sales (where shoppers drop off)
  • Are your discounts paying off? (Discount report)
  • How to read your Store summary and get it by email
  • How to track your net profit, CAC and ROAS

Settings & your data

7
  • How to give Tendlio your product costs
  • How to choose who can use Tendlio and how its menu looks
  • How to switch between Simple and Advanced mode
  • How to see your activity and cleared to-dos in History
  • Your data and privacy
  • How to use the System status page
  • How to contact support or send feedback

Troubleshooting & FAQ

13
  • The analysis looks stuck or is taking long
  • My numbers don’t match WooCommerce Analytics
  • Which orders count as a sale
  • Emails aren’t going out
  • Staging copies and moving your store
  • Tendlio isn’t recording product visits
  • A storefront widget doesn’t show up
  • Caching and optimization plugins: what to exclude for Tendlio
  • Cart recommendations show nothing
  • If a storefront feature is off, does it still load?
  • A score shows “-” instead of a number
  • A to-do I marked done came back
  • Starting over, or what happens if I uninstall
View Categories
  • Home
  • Docs
  • Reports
  • How to track your net profit, CAC and ROAS

How to track your net profit, CAC and ROAS

12 min read

The Marketing & profit report works out what’s left of a month’s sales after the cost of goods, payment fees, shipping and your ad spend, and what it costs you to win a new customer. It also shows where your online orders came from, so you can see which channels and ad platforms bring in the sales.

You will learn #

  • How to open the report and enter your ad spend
  • What the profit, CAC, ROAS and LTV : CAC figures tell you
  • How to compare your channels and ad platforms in Revenue by source
  • Where each order’s source comes from
  • What to do when almost every order shows as Direct
  • How to get your ads counted under Paid ads

Before you begin #

  • Turn on Experimental features. The report sits under Experimental, because its channel figures lean on where each order came from, which is a rough guide rather than an exact count. In Settings → Experimental & license, turn on Enable experimental features and click Save settings.
  • Give Tendlio your costs. Profit needs cost prices on your products, or an average margin under Settings → Costs & profit. Without either, the report asks you to add them before it shows any profit.
  • Check that WooCommerce Analytics is on. The New customers count, and the CAC worked out from it, come from WooCommerce Analytics. Without it, the card says “needs WooCommerce Analytics”.

Open the report #

  1. In your WordPress admin, open Tendlio → Reports.
  2. Click Marketing & profit. It’s with the other reports while Experimental features are on.

The report opens on the current month. Use the arrows on either side of the month to move to another one. You can go back about two years.

Enter your costs #

  1. Next to Total ad spend for month, type everything you spent that month to bring buyers in, across all platforms, and click Save. Tendlio saves ad spend month by month, so enter it for each month you want to read.
  2. In Settings → Costs & profit, under Other costs (net profit), set Transaction fee (your payment processor’s cut, as a percentage) and Avg shipping cost / order (what an order costs you to ship, which WooCommerce doesn’t record). Click Save settings.

Read the profit and the cards #

The figure at the top of the report is the month’s profit:

  • Until you’ve entered the month’s ad spend, the report calls the figure Profit before ad spend, and the line under it says the ad spend hasn’t been taken off. Once you enter it, the report calls it Net profit.
  • The line under the figure also names the average margin behind the profit and the date of the analysis that measured it. The profit breakdown explains that margin.
  • EST. next to the figure means some of your products have no cost price, so for those products the profit uses the average margin you set in Settings → Costs & profit. Hover over the mark to see how many products that covers.
  • View profit breakdown takes you to the lines behind the figure.

The cards under it:

  • Revenue shows the month’s sales without tax, with shipping included and refunds taken off, and the number of orders.
  • New customers counts the orders WooCommerce marked as a customer’s first purchase.
  • CAC is your ad spend divided by your new customers: what it costs to win one buyer.
  • ROAS is your revenue divided by your ad spend. 4× means four in revenue for every one you spent.
  • LTV : CAC compares what a new customer from this month brings you in profit over their first 12 months with what it cost to win them. For a month less than a year old, those 12 months aren’t over yet, so the ratio can still rise.

Once the month has ad spend and an LTV : CAC, the line under the cards says what that ratio means. At 3× or more, a customer is worth at least three times what you pay to win them. Under 1×, you’re paying more to win customers than they’ve been worth so far. In between, the line suggests aiming for 3× or higher.

Read the profit breakdown #

The Profit breakdown table shows the steps from revenue to profit: Revenue, minus Cost of goods, gives Gross profit. Then Tendlio takes off Transaction fees, Shipping cost and Ad spend.

Tendlio works out Gross profit by applying your store’s average margin, with bigger sellers counting more, to the part of the month’s revenue that came from products. The shipping your customers paid counts in full, because what shipping costs you comes off further down, as Shipping cost.

Tendlio measures that average margin at each analysis, across the products that sell: a product with a cost price brings its own margin, and a product without one brings the average margin you set in Settings. The line under the table gives the date of that analysis. When most of your selling products have no cost price, the line also says that the margin is mostly your own estimate.

When you haven’t entered the month’s ad spend, the Ad spend row shows a dash instead of a zero, because Tendlio doesn’t know the amount yet.

Compare your channels #

Revenue by source shows where this month’s online orders came from: Direct, Organic search, Paid ads, Social, Email, Referral, Manual / admin, Other campaigns or Unknown. A channel gets a row when it has orders that month. Each row shows the channel’s orders, revenue, average order value and share of the month’s revenue, and its new customers when WooCommerce Analytics is on.

Paid ads by platform, under that table, splits the Paid ads row by the platform the ads ran on. Google and Meta always have a row. TikTok, Microsoft, Pinterest and Other paid get one once they have orders or spend that month, and until then you find them under More platforms.

  1. Under Paid ads by platform, enter what each ad platform cost you this month. The Paid ads row in Revenue by source adds them up.
  2. In the Ad spend column of Revenue by source, enter what you spent on any other channel you pay for, such as Social or Email. Leave Direct and Organic search empty.
  3. Click Save ad spend.

The CAC and ROAS columns then fill in for those channels and platforms. The spend you enter here is separate from the monthly total at the top, and the profit uses the total.

Where each order’s source comes from #

When a shopper lands on your store, Tendlio notes where they came from: the site that sent them, the tags on the link, and which ad network’s click id the link carried, never the id itself. It keeps that note for up to 90 days and writes it on the order they place, so a shopper who clicks your ad on Monday and comes back on Thursday by typing your address still counts under the ad.

Orders without that note use what WooCommerce recorded: orders from before Tendlio started noting sources, and orders created in wp-admin or taken by phone. When a month’s rows come from WooCommerce’s record, for example a month from before Tendlio started, a note above the table says so. Neither Tendlio nor WooCommerce notes a shopper who declines marketing cookies, so their order shows as Unknown.

Tendlio notes sources while Measure views, clicks, add-to-carts and purchases, for your widgets and for every product is on under Settings → Storefront, which it is unless you turned it off. While Experimental features are on, your WooCommerce Orders list also gets a Source (Tendlio) column that uses the same words as the table, for example “Paid ads · Google”.

The table credits the last link a shopper came through, and it covers online orders only. Direct means the visit arrived with no referrer, not that someone typed your address. Viber, WhatsApp, Messenger, the Instagram app, bookmarks and mail apps send none, so your organic and paid channels can be bigger than the table shows.

If almost every order shows as Direct #

A speed plugin that holds scripts back until the shopper clicks or scrolls stops both WooCommerce and Tendlio from seeing where a visit came from. A shopper who lands from Google and goes straight to a product has left that first page before the script runs, so the tracker records the order as Direct.

Tendlio checks your home page for WooCommerce’s scripts and its own, once a week, and every day while it finds the problem. While Experimental features are on and Tendlio finds scripts held back, it puts the card “A speed setting is hiding where your orders come from” on your to-do list, and names the plugin when it can tell which one it is. Help → System status shows the same check under Order sources.

To fix it, add these to the scripts your speed plugin must not delay: sourcebuster, order-attribution, wc_order_attribution and tendlio. The first three are WooCommerce’s and tendlio is Tendlio’s, and the card names only the ones your store holds back. Where to find that list:

  • FlyingPress: Delay JavaScript. Add them to its exclusions, or, if it delays only a list of specific scripts, take them off that list.
  • WP Rocket: File Optimization → Delay JavaScript Execution → Excluded JavaScript Files.
  • Perfmatters: JavaScript → Excluded from Delay.
  • LiteSpeed Cache: Page Optimization → Tuning → JS Deferred/Delayed Excludes, and Guest Mode JS Excludes too if Guest Mode is on.

Clear the plugin’s cache after saving. Orders placed from then on show where they came from, and orders already placed keep the source they have. Tendlio checks your home page again the next day, and the card goes away once the scripts run on time.

Get your ads counted under Paid ads #

  • Google Ads: with auto-tagging on, which is Google’s default, every ad link carries a click id, and the order counts under Paid ads, on the Google row. Tendlio also recognizes the ids Google puts on some iPhone clicks, which WooCommerce’s own tracking misses. To see which campaign an order came from, set this as your tracking template in Google Ads:

    {lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}

    {lpurl} has to come first, or Google escapes your landing page address. A template set on the account covers every ad, and a template on a single campaign overrides it. The campaign then shows as its id in the Order attribution box that WooCommerce puts on each order.

  • Facebook and Instagram: Meta adds the same click id to its ads and to links people share, so Tendlio can’t tell an ad from a shared post by the click id alone. A visit from an untagged link counts under Social, and a note under Paid ads by platform counts those orders. In Ads Manager, add these URL parameters to your ads: utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}.

  • TikTok: add these URL parameters to your ads: utm_source=tiktok&utm_medium=paid_social&utm_campaign=__CAMPAIGN_NAME__.

A link tagged utm_medium=paid_social or utm_medium=cpc counts as Paid ads. Tagging doesn’t change orders already placed: earlier months stay as they are, and the month you start tagging in is a mix.

While Experimental features are on, two more cards on your to-do list watch for this. The card Some of your ad orders can’t be told apart from other orders can appear when several of this month’s orders came through Facebook or Instagram links without a tag, or when you entered spend for an ad platform and none of that month’s orders came through its ads. The card Most of your orders show as Direct can appear when most of last month’s orders arrived with no referrer. Both open this report on the month they’re about, with the Learn more under Revenue by source open.

Why the report works this way #

One total for the whole store #

The ad spend at the top is one monthly total, so CAC and ROAS cover all your channels together, and the new customers include the ones who found you without an ad. Read those two as a rough check on the whole store, not as figures for one channel.

Net profit is the firmer number #

The profit comes from your own sales and costs. The channel figures depend on the last link each shopper came through, and they miss shoppers who decline tracking, so use them to rank your channels, and move budget by that ranking. A small gap between two channels doesn’t prove that one works better.

New customers can differ from the Customers report #

Here, Tendlio counts a new customer for each order WooCommerce marked as someone’s first purchase, on a status you count as a sale. The cohort table in the Customers report counts people instead, from their first order that counted as a sale, so its CAC for the same month can come out lower.

Additional resources #

  • How to give Tendlio your product costs: cost prices and the average margin the profit uses.
  • What’s in Reports
  • What your to-do list can catch: the cards about order sources, and the others.
  • Which orders count as a sale

Frequently asked questions #

Does Tendlio connect to my Google Ads or Meta account? #

No. You enter your ad spend yourself, and the channel figures come from where each shopper came from, as Tendlio or WooCommerce recorded it on the order.

Why does Google Ads report more conversions than the Paid ads row? #

Your ad platform counts conversions its own way, and the table reads the source Tendlio or WooCommerce recorded on each order. Each is right about what it can see. If the Google row under Paid ads by platform is far below what Google Ads reports, check your speed plugin first.

Why is the profit marked EST.? #

Some of your products have no cost price, so for those products the profit uses the average margin you set. Add real costs and the mark goes away.

Why is LTV : CAC still rising for last month? #

It compares the profit a new customer brings in their first 12 months, and for a month less than a year old, those 12 months aren't over yet.

Updated on September 28, 2026
How to read your Store summary and get it by emailWhat’s in Reports
Table of Contents
  • You will learn
  • Before you begin
  • Open the report
  • Enter your costs
  • Read the profit and the cards
  • Read the profit breakdown
  • Compare your channels
  • Where each order's source comes from
  • If almost every order shows as Direct
  • Get your ads counted under Paid ads
  • Why the report works this way
    • One total for the whole store
    • Net profit is the firmer number
    • New customers can differ from the Customers report
  • Additional resources
  • Frequently asked questions
    • Does Tendlio connect to my Google Ads or Meta account?
    • Why does Google Ads report more conversions than the Paid ads row?
    • Why is the profit marked EST.?
    • Why is LTV : CAC still rising for last month?
tTendlio

More profit from the WooCommerce store you already run.

Product

  • How it works
  • Why Tendlio
  • Pricing

Resources

  • Documentation
  • Guides
  • FAQ

Tendlio

  • About
  • Contact & support

Practical WooCommerce tips to help you sell more.

    An email when we publish a new guide, plus the news when Tendlio launches. Unsubscribe anytime. Privacy policy

    © 2026 Tendlio. Privacy Terms Refunds

    Cookie settings

    We'd like to use cookies to count visits and see how people use these pages. We set them only if you accept, and you can change your choice any time under Cookie settings.

    Functional Always active
    The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
    Preferences
    The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
    Statistics
    The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
    Marketing
    The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
    • Manage options
    • Manage services
    • Manage {vendor_count} vendors
    • Read more about these purposes
    Preferences
    • {title}
    • {title}
    • {title}