Metrics
The general structure of how Kleio organizes your data — not a full list of every available metric.
Kleio matches Shopify’s Total Sales to the cent, but defines a few rows differently on purpose. Here’s why.
The P&L Waterfall
| Metric | Definition | |
|---|---|---|
| Gross Sales | Product + shipping revenue before discounts are subtracted. | |
| − | Discounts | Total discounts applied to products and shipping lines. |
| = | Sales | Gross Sales − Discounts. The initial order value before returns. |
| − | Returns | Refunded amount for products and shipping. |
| + | Return Fees | Fees charged to customers for returns. |
| = | Revenue | Sales − Returns + Return Fees. What’s left in your bank account after returns. Matches Shopify’s Total Sales incl. tax. |
| − | Tax | Net tax collected (sale tax − refunded tax) on products and shipping. |
| − | COGS | Cost of Goods Sold. |
| = | Contribution Margin 1 | Revenue (excl. tax) − COGS. Your product margin. |
| − | Variable Costs | Costs that vary with sales volume (shipping, payment processing, etc.). |
| = | Contribution Margin 2 | CM1 − Variable Costs. Your margin after COGS and all variable costs. |
| − | Ad Spend | Total advertising and marketing spend. |
| = | Contribution Margin 3 | CM2 − Ad Spend. Your margin after all COGS, variable costs, and ad spend. |
| − | Fixed Costs | Costs that don’t vary with sales volume (rent, salaries, etc.). |
| = | Net Profit | CM3 − Fixed Costs. Your bottom line profit. |
Variable Costs Breakdown
Variable costs can be broken down into:
| Category | Definition |
|---|---|
| Shipping Costs | Shipping and fulfillment costs including delivery, packaging, and logistics. |
| Returns Costs | Costs related to processing returns and refunds. |
| Payment Costs | Payment processing fees from Stripe, PayPal, Shopify Payments, etc. |
| Customs Costs | Customs duties, import taxes, and international shipping fees. |
| Fulfillment Costs | Fulfillment costs including pick, pack, and warehouse handling fees. |
| Other Variable | Other variable costs not categorized above. |
| Agency Fees | Marketing agency fees calculated as a percentage of ad spend. |
Ad Spend Breakdown
Ad spend can be broken down by platform:
| Platform | Definition |
|---|---|
| Google Ads | Ad spend from Google Ads. |
| Meta Ads | Ad spend from Meta (Facebook/Instagram) Ads. |
| Snapchat Ads | Ad spend from Snapchat Ads. |
| TikTok Ads | Ad spend from TikTok Ads. |
| AppLovin | Ad spend from AppLovin. |
| GoAffPro | Ad spend from GoAffPro affiliate program. |
| Other Marketing | Fixed marketing costs (agency fees, banner ads, etc.) allocated to ad spend. |
Tax Toggle
You can switch between viewing metrics with or without tax using the tax toggle in the filter settings. This affects all metrics from Gross Sales through Revenue.
Metrics below Revenue (COGS, contribution margins, variable costs, ad spend, fixed costs, net profit) always exclude tax regardless of the toggle.
Order Date vs Accounting Date
By default, Kleio dates every cost and refund on the day it happened. If you process a refund today, Kleio subtracts it from today. This is the accounting date (or event date) view: it shows what hit your bank account on a given day.
Order-date metrics work differently. They move an order’s costs and refunds back to the day of the original order, so they sit with the sale that created them. You’ll see these as the (O) metrics in the Edit Metrics dialog, for example CM3 (O).
Why it helps with acquisition
Suppose you handle refunds once a week, in a batch. On the accounting date view, all of those refunds land on the single day you process them. That one day looks very bad, and the other six look good. To judge your acquisition, you now have to work out by hand whether that one bad day wipes out the profit from the other six. You can’t just look at the numbers and know.
Order date fixes this. It moves each refund back to the day of the order it came from, so the refund sits with the sale that caused it. Every day then shows its own real result, and you can read your acquisition straight off the numbers. That is why Kleio’s Acquisition page uses order-date metrics by default.
Seeing it on a timeline
An order comes in on day 1. You refund it on day 8, your weekly batch day.
day 1 day 8
Accounting +$100 −$30
Order date +$100 −$30
Accounting date leaves the refund on day 8, the day you processed it. Order date moves it back to day 1, onto the order it came from.
Comparing with Shopify
Most users compare Kleio’s numbers to Shopify’s Finance Summary overview. Here, Kleio’s Revenue equals Shopify’s Total sales down to the cent (remember that Shopify shows Total sales incl. tax and you can toggle tax on/off in Kleio).
The rows above (Gross sales, Discounts, Returns, Shipping) won’t always line up one-to-one with Shopify because Shopify excludes tax and anything shipping-related in those rows.
| Shopify Finance Summary row | Why Kleio’s number is different |
|---|---|
| Gross sales | Shopify only counts product sales. Kleio counts product sales and shipping revenue. |
| Discounts | Shopify only counts product discounts. Kleio also counts shipping discounts. |
| Returns | Shopify only counts product refunds. Kleio also counts shipping refunds. |
| Shipping charges | Shopify gives shipping its own row, combining shipping revenue and shipping refunds into one line. Kleio counts shipping inside the rows above instead. |
| Total sales | Matches Kleio’s Revenue when the tax toggle is set to incl. tax. Kleio defaults to your Shopify tax-display setting, so if your store displays prices excl. tax, switch the toggle to “incl. tax” to see the match. |
If you’ve enabled Skip orders with 0 in sales under Settings → Filters, your numbers might also differ from Shopify because free/100%-discount orders are excluded entirely in Kleio while Shopify still counts them.
Why Kleio includes shipping in the top rows
The final Revenue number comes out the same either way. We just think it’s more correct to include shipping in everything — shipping is money hitting your bank account just like product revenue, and for many stores it’s a meaningful revenue lever, so we want to be able to analyze it too.