Margins report
The Margins report is the most data-heavy view in P2Lab Stats because it operates on three time series at once: revenue, purchase price and selling price. It lives under P2Lab Stats → Sales → Margins and relies on the daily product snapshot table for cost and price history.
Like every other report it uses the common chrome — chart, sortable table, filter sidebar, profile sidebar, date range with previous-period comparison — plus a table-type switch in the URL for the three sub-views.
Two prerequisites for meaningful results:
- Purchase prices on products — without
purchasePrices, margin = revenue and the report degrades to a sales view. Fill purchase prices in the product detail page or via import. - Daily snapshots enabled — without snapshots, you only see the current purchase price applied to historical orders, so margin trends from cost changes are invisible. Enable under Settings → Plugins → P2Lab Stats → Tasks → Snapshots.
Sub-views
Section titled “Sub-views”The report has three table types, switchable in the header:
Current low-margin
Section titled “Current low-margin”Products whose margin % in the current range is below the configured low-margin threshold. Each row shows revenue, average margin %, COGS and current vs previous-period delta.
Use cases:
- Spot products where the gap between purchase price and selling price is too narrow to be profitable after discounts.
- Build a “needs price review” list.
Deteriorating margins
Section titled “Deteriorating margins”Products where the margin % has dropped between the previous and current period — typically because purchase price went up faster than the selling price, or because the selling price was discounted without a matching cost cut.
Each row shows margin % then vs now, delta, the cost change and the price change.
Use cases:
- Detect cost-pressure on key products before it eats the year-end result.
- Negotiate with suppliers when their cost increases start showing.
Cost pressure tracker
Section titled “Cost pressure tracker”A focused view of products whose purchase price went up within the range, regardless of whether margin % has moved yet. Useful for early-warning when costs are rising but you haven’t passed them through to the customer yet.
Each row shows purchase price at start vs end of range, % cost change and the current margin %.
Use cases:
- Plan a price-list update before margin erodes.
- Justify pricing changes to stakeholders with data.
Filters specific to Margins
Section titled “Filters specific to Margins”In addition to the common filter sidebar, the margins report adds:
- Margin threshold (%) — products with margin % below this value are highlighted and counted in the low-margin KPI.
- Include products without purchase price — off by default; turn on if you want to see products with missing cost data flagged.
- Group by category / manufacturer / sales channel — roll-up modes.
The KPI cards above the table show:
- Total margin (currency) — revenue minus COGS in the range
- Average margin % — weighted by revenue
- Low-margin products — count below threshold
- Deteriorating products — count with Δ% < 0 vs previous period
All four show their Δ % against the previous period.
Tips & gotchas
Section titled “Tips & gotchas”Related
Section titled “Related”- Snapshots — what powers cost / price history
- Sales reports — the rest of the sales group
- Configuration → Stock — where the margin threshold is set