Lifetimely: Sales analysis reports
Sales analysis reports
At a glance
Sales Breakdown, Products, and Orders move from a Shopify-style sales reconciliation to merchandise and order-level economics. Use them together to identify whether a sales change came from pricing, returns, a product group, or specific orders—then use the Income Statement for company-level profitability.
Availability and data freshness
Availability and prerequisites: Products and Orders support Shopify and Amazon store contexts. Sales Breakdown reads Shopify orders and refunds and is intended for Shopify reconciliation. Product and order profit depends on configured product, shipping, handling, transaction, tax, and refund settings; missing cost setup normally contributes zero and can overstate profit.
Freshness and history: Lifetimely does not currently publish the source processing delay or earliest available date for these reports. Products and Orders initially cover the previous 30 days through yesterday, although a stored report range overrides that default. Sales Breakdown inherits the Income Statement fallback—first day of the month six months ago through yesterday—and also accepts a stored range.
On this page
- Choose the right report
- Reconcile Shopify-style sales
- Compare product performance
- Inspect individual orders
- Follow a sales change to its cause
- Resolve differences
Choose the right report
Open Profit & loss, then choose Products or Orders. Sales Breakdown is not listed in the current Profit & loss menu; open it directly at /profit_and_loss/sales_breakdown, or open Income Statement, use the information tooltip beside Net sales, and select View sales breakdown report.
| Report | Best used for | Output grain |
|---|---|---|
| Sales Breakdown | Reconcile gross sales through total sales against Shopify definitions and compare two periods. | One row per reconciliation metric for each period. |
| Products | Rank sales, product cost, margin, sell-through, and current inventory. | One product, variant, product type, or vendor per row, plus a total row. |
| Orders | Validate the revenue, refunds, and configured costs of individual orders. | One order per row; the detail sheet shows one line item per row. |
These reports do not share one population or formula set. Matching dates alone do not make their totals interchangeable.
Shared data contract
| Report | Population and date assignment | Settings applied automatically |
|---|---|---|
| Sales Breakdown | Non-deleted Shopify orders are selected by order processing time. Standard successful product refunds reduce net sales on refund processing time; edit adjustments reduce net sales on the original order processing time. | Store, selected/comparison dates, display timezone, display currency. Despite sharing a request shape with Income Statement, its query ignores P&L prefilters, complex filters, Amazon mode, and cost settings. |
| Products | Prefiltered orders and their line items are selected by order processing time. Refund quantities and amounts use refund processing time or original order time according to the refund profile. Only groups with a sale or refund in the range appear. | Prefilters, product/refund-cost rules, platform source, and current product records. The request carries a display currency, but the active Products calculation does not use it. |
| Orders | Prefiltered orders are selected by processing time, then narrowed by visible tag filters and search. Each row resolves that order's line items, refunds, product costs, shipping cost, handling cost, and transaction fee. | Prefilters, shop calculation profile, display timezone/currency, and Shopify or Amazon source mode. |
Sales Breakdown converts orders using the rate on the order date and refund activity using its applicable refund or order-edit date. Orders requests conversion to the selected display currency through the shared profitability calculation path; see shop calculation profiles. The Products UI formats values with the selected currency symbol, but the active Products API does not pass its requested display currency into the query.
Sales Breakdown
Sales Breakdown shows how Gross sales, Discounts, Returns, Shipping charges, and Taxes produce Total sales. It is sales-only: it does not calculate COGS or profit.
Use the controls and table
- Time period: Select custom dates or the same presets as Income Statement: Today, Yesterday, Last 7 Days, Last 30 Days, Last 365 Days, This Month, Last Month, Last 6 Months, This Quarter, Last Quarter, This Year, or Last Year.
- Compare to: The default is Previous period. Other options are Previous period, day of week, Same period, year prior, Year prior, day of week, and Custom period.
- Comparison time period: Editable only for a custom comparison; otherwise the calculated comparison dates are read-only.
- Table: Read Selected period, Comparison period, and Change for each metric. The How this is calculated pill on Net sales repeats its formula.
- Compare on Shopify: Opens the current shop's Shopify Total sales breakdown report for reconciliation.
- Ask AI: If available, the action receives the selected primary date range and the returned report data. The implementation does not explicitly pass the chosen comparison type as page context.
The page has no product, order, customer, channel, tag, or complex-filter control and no CSV export.
Metric reference
| Metric | Calculation and practical meaning |
|---|---|
| Gross sales | Product line-item sales before product discounts and returns. Shipping is excluded. For tax-inclusive orders, the product share of tax is removed proportionally. |
| Discounts | Order product discounts. For tax-inclusive orders, the proportional product-tax share is removed. |
| Returns | Returned product amount on refund processing time, net of product tax when the order is tax-inclusive. |
| Net sales | Product subtotal after discounts, successful standard product refunds, and order-edit adjustments. For ordinary non-edit activity, gross sales − discounts − returns. Standard refunds use refund processing time; edits use original order processing time. |
| Shipping charges | Shipping charged, net of refunded shipping. Tax is removed from the charge when the original order is tax-inclusive. |
| Taxes | Order tax minus standard refunded tax and edit-adjusted tax. |
| Total sales | net sales + shipping charges + taxes. |
| Change | (selected period − comparison period) / absolute comparison period × 100. The report returns 0% when the comparison value is zero and rounds the result to two decimals before display formatting. |
Example: Gross sales of $1,000, Discounts of $100, Returns of $50, Shipping charges of $40, and Taxes of $85 produce $850 Net sales and $975 Total sales when there are no edit-specific adjustments. If comparison Total sales were $900, Change is (975 − 900) / 900 × 100 = 8.33%.
Caution: A positive change in Returns means the returned amount increased, even though the UI colors every positive change green. Interpret the sign in the context of the row rather than treating green as always favorable.
Reconcile with Shopify
- Align the shop, selected dates, timezone, and display currency.
- Use Compare on Shopify and open Shopify's Total sales breakdown for the same period.
- Compare Gross sales first, then Discounts and Returns, before comparing Net sales, Shipping charges, Taxes, and Total sales.
- If only a refund differs, check whether its processing date falls in the range. If an edit differs, check the original order date.
- Do not enable or disable Lifetimely prefilters to force a match: this report does not apply them.
Products
Products ranks merchandise by period sales and product economics while placing current inventory beside those period metrics. Use it to find high-volume low-margin items or inventory that may run out; do not treat its gross profit as company gross profit.
Use the controls and table
- Time period: Choose custom dates or Last 7 days, Last 30 days, Last 180 days, Last 365 days, This month, or Last month. These presets end yesterday except Last month, which uses the complete prior calendar month.
- Breakdown by: Defaults to Product. Choose Variant, Product Type, or Vendor. Product groups variants and sums their values; Product Type and Vendor group variants by the current corresponding attribute.
- Product Tags: Include products matching any selected tag. This is a page filter in addition to store-wide prefilters.
- Search SKU, product name, variant: Search behavior follows the breakdown: Product searches product title; Variant searches variant title, product title, or SKU; Product Type and Vendor search their respective value.
- Sorting and pagination: Click a sortable heading to switch direction. The initial sort is Total Sales descending and the page initially shows 10 rows. The first column remains visible while scrolling horizontally.
- Export CSV: Queues all matching pages with the active dates, grouping, filters, search, and sort. Retrieve the generated file from Settings → Downloads.
- Ask AI: If available, the action receives the active dates, grouping, and returned table data.
The current Products page does not expose order-tag or general complex filters.
Field reference
| Field | Definition |
|---|---|
| Product / Variant / Product Type / Vendor | Current product-record value used to group the row. Blank values display as -. |
| SKU | Current SKU values in the group. Hidden for Product Type. |
| Total Sales | Tax-adjusted line-item price after line discounts, minus product refunds in the applicable refund-date range. |
| Orders | Distinct order-and-variant combinations represented by the group. |
| Qty Sold / Qty Refunded | Line-item quantity sold / refunded in the relevant period. Qty Sold is not reduced by Qty Refunded. |
| Product Costs | Product cost resolved from the product-cost hierarchy, with edited and refunded/restocked quantities handled by the refund settings. A missing source contributes zero. |
| Gross Profit | Total Sales minus product COGS and the implementation's restocked-cost adjustment. It excludes shipping, handling, transaction fees, marketing, operating expenses, and costs that cannot be assigned to a product. |
| Margin % | Gross Profit / Total Sales × 100; zero when Total Sales is not positive. It is calculated from aggregated amounts, not by averaging row percentages. |
| Price Reduction % | (total compare-at value − pre-refund line sales) / total compare-at value × 100; zero when compare-at value is zero. Because the numerator uses pre-refund sales while the displayed Total Sales is refund-adjusted, it cannot always be recomputed from visible columns. |
| Inventory | Current tracked inventory for qualifying variants, not inventory at the end of the selected period. Untracked inventory contributes zero. |
| Sales Velocity (7d / 30d) | Recent quantity sold per day, independent of the selected period. |
| Days of Stock Left (7d / 30d avg.) | Current inventory divided by the corresponding sales velocity. |
| Inventory Value (Cost) | Current inventory × resolved average product cost. |
| Inventory Value (Resell) | Current inventory × current product price. |
Example: A product with $500 Total Sales and $300 Product Costs would ordinarily show $200 Gross Profit and 40% Margin before any restocked-cost adjustment. Use the row to compare products, then check the Income Statement before making a company-profit decision.
Caution: Changing the selected sales period can change which products qualify, but Inventory, inventory values, and velocity remain current/recent measures. They are not period-end snapshots. The active Products calculation also ignores the requested display currency even though the UI applies its symbol; verify source currency before comparing or exporting monetary values.
Orders
Orders shows one qualifying order per row and makes its configured cost sources inspectable. Use it to validate an outlier after locating the affected sales component or product.
Use the controls and inspect an order
- Time period: Choose custom dates or Last 6 months, Last 12 months, This year, or a Since 2020 through Since 2025 preset. The initial 30-day-through-yesterday range is not itself one of these presets.
- Product Tags / Order Tags: Include orders matching any selected exact tag under each control. When both controls are set, both filter groups apply.
- Search order number, product name: Searches the order name or product title; matching is case-insensitive.
- Sorting and pagination: The initial sort is processed date descending and the page initially shows 10 rows. Most headings are sortable; Refunded is not.
- Show products: Opens order date, country, refund, revenue, tax, discount, cost, gross-margin, and profit-margin detail, followed by product name, SKU, original quantity, product cost, and cost source.
- Export CSV: Queues all matching rows with the active dates, filters, search, and sort. Retrieve the file from Settings → Downloads.
- Ask AI: If available, the action receives the active dates and returned table data.
Field reference
| Field | Definition |
|---|---|
| Order ID / Order total | Source order name and converted total order value. The selected range is based on processed time in the store timezone. |
| Order products | Product/SKU summary; Show products opens line-item quantity, resolved cost, and source. |
| Shipping — Cost / Source | Selected shipping cost after refunded shipping, and the winning provider in the shipping-cost hierarchy. Despite the table tooltip saying vendor or supplier, Source is the shipping provider. |
| Transaction — Payment Gateway / Cost | Payment processor and resolved transaction fee. Fully refunded orders use zero transaction fee; recent Shopify fees can temporarily remain zero while preprocessing catches up. |
| Handling cost | per-order handling cost + per-item handling cost × line-item quantity. This is separate from the Shipping cost column despite the current tooltip describing both. |
| Refunded | All successful non-edit product, shipping, and—unless taxes are configured as included in subtotal—tax refund amounts currently imported for the selected order, not only refunds processed inside the selected report range. |
| Gross margin | Currency profit: order total − tax − product cost − shipping cost − handling cost − transaction cost − refund amount. The detail sheet separately shows Profit margin as gross margin / (order total − tax − refund amount) × 100, or 0% when that denominator is not positive. |
The detail sheet also shows Order Discounts and Tax, but discounts are already reflected in Order total and are not subtracted again in Gross margin.
Verify an order
- Confirm the range, visible tag filters, search, store-wide prefilters, timezone, and display currency.
- Open Show products and compare Product Costs with each line's Cost Source.
N/Ameans no configured source applied and the cost is zero. - Check Shipping Cost/Source against the configured shipping hierarchy, then verify handling and payment-gateway settings.
- Compare the refund amount and refund profile. The row remains assigned by order processing date even when the refund profile changes refund timing elsewhere.
- Recompute Gross margin with the formula above. Use the percentage only from the detail sheet; the main table's Gross margin is a currency amount.
Example workflow
- Start in Sales Breakdown and identify whether Gross sales, Discounts, Returns, Shipping charges, or Taxes explains the Total sales movement.
- Open Products with an equivalent store-local range. Group by Product, then Variant, and use tags or search to locate the affected merchandise.
- Open Orders with equivalent filters where available. Search for a specific order and inspect its product, shipping, handling, transaction, and refund values.
- Finish in Income Statement to include marketing and operating expenses before drawing a company-profit conclusion.
Resolve differences
- Sales Breakdown versus Income Statement: Sales Breakdown uses Shopify-style ledger formulas and ignores Income Statement prefilters and cost settings. Income Statement uses its own net-sales contract and refund profile, so the reports can differ even with matching dates.
- Sales Breakdown versus Products: Sales Breakdown includes all non-deleted Shopify orders in its range; Products applies prefilters and product filters. Their tax, discount, refund, and edit calculations are also different.
- Products versus Orders: Products reports tax-adjusted line economics and cannot assign every order cost to a product. Orders begins with order total and subtracts order-level tax, product, shipping, handling, transaction, and refund values.
- Product totals versus visible rows: The Products total row covers all matching pages, not only the 10 visible rows. Its current inventory measures only products qualifying through selected-period sales/refunds.
- Missing or unexpectedly high profit: Check product cost sources, default margin, refund/restock policy, shipping hierarchy, handling settings, and transaction settings. Missing costs generally become zero rather than excluding the order.