Inventory Profit Margin — Complete User Guide — Two Accounts Web
Comprehensive guide for the Inventory Profit Margin report — enabling it, creating the report, reading every column, drilling into the underlying transactions, and validating each figure against the General Ledger and accounting regulations
Table of Contents
- What Is the Inventory Profit Margin Report?
- Prerequisites — Enabling via the Customize Menu
- Navigating to the Report
- The Report List
- Creating the Report — Field-by-Field
- Report Output Columns
- How the Report Is Calculated
- Related Settings and Configuration
- Sample Data and Report Output
- General Ledger Verification
- Reporting and Accounting Impact
- Accounting Regulation Validation
- Common Issues and Best Practices
1. What Is the Inventory Profit Margin Report?
The Inventory Profit Margin report shows, for every inventory item (and inventory kit), how much it was sold for, what it cost to sell (the cost of goods sold), what profit it earned, and what margin (profit as a percentage of sales) it produced — all within a period you choose.
It answers the most important merchandising questions:
- Which items make the most money (not just revenue)?
- Which items are sold at a loss?
- Which items carry the best margin, and which have the weakest?
The report reads the actual General Ledger postings — the sales revenue lines and the cost-of-goods-sold lines — so every figure is auditable and reconciles to the Profit & Loss statement. A click on any item's Profit opens the underlying transactions, letting you trace exactly which sales documents produced the figure.
Profit ÷ Sales × 100. It measures how much of every 100 units of sale value is kept as gross profit before other expenses. A margin of 30 means 30 units of every 100 sold remain as gross profit.Like most reports here, it is a saved report: choose a period once, save it, and reopen it any time. The output is printable, emailable, and exportable.
2. Prerequisites — Enabling via the Customize Menu
The report appears under Reports only when the Inventory Items tab is enabled for the business. Inventory Items is not enabled by default.
How to Enable
- Open the Customize Menu from the navigation bar.
- Find the Inventory Items toggle and turn it on.
- Click Update / Save to apply.
Once enabled, the report is available under Reports → Inventory Items → Inventory Profit Margin.
3. Navigating to the Report
From the main navigation bar:
- Open Reports.
- Go to the Inventory Items category.
- Click Inventory Profit Margin.
This opens the report list — every saved Profit Margin report for the business appears here, sorted by its From Date.
4. The Report List
The list shows one row per saved report, with three columns:
| Column | Description |
|---|---|
| From (From Date) | The start of the reporting period. Rows are sorted by this date. |
| To (To Date) | The end of the reporting period. |
| Description | An optional note entered when the report was created (e.g. "Q1 2026 Gross Margin"). |
Each row is clickable:
- Click the row to open the report output (the per-item sales / cost / profit table).
- Edit opens the report form to change the period or description.
A New Report button at the top creates a fresh report.
5. Creating the Report — Field-by-Field
Click New Report to open the report form. It contains three fields:
5.1 From Date and To Date
| Field | Required? | What To Enter | Effect |
|---|---|---|---|
| From Date | ✅ Yes | The first day of the reporting period (e.g. 1-Jan-2026). | Only sales documents issued on or after this date are included. |
| To Date | ✅ Yes | The last day of the reporting period (e.g. 31-Jan-2026). | Only sales documents issued on or before this date are included. |
5.2 Description
| Field | Required? | What To Enter | Effect |
|---|---|---|---|
| Description | ❌ Optional | A note to identify the saved report (e.g. "Q1 2026 Gross Margin"). | Displayed in the report list only. Can be left blank. |
6. Report Output Columns
The report opens with a subtitle:
For the period from {From Date} to {To Date}
The table reads one row per inventory item (or kit), listed alphabetically by the item's Code - Name. The columns are:
| Column | Type | Meaning |
|---|---|---|
| Item (the row label) | Text | The inventory item or kit, shown as "Code - Name" when a code is set, otherwise just the name. |
| Sales | Amount | The item's sales revenue in the period — the sales-line postings (from sales invoices and receipts), net of any credit-note returns. |
| Cost of sales | Amount | The item's cost of goods sold in the period — the cost-of-sales postings that matched the sales quantities. |
| Profit | Amount | Sales − Cost of sales. This is the item's gross profit and is clickable — it opens the underlying transactions. |
| Margin | Percentage | Profit ÷ Sales × 100, rounded to 2 decimal places. Shown as a percentage. Not totalled at the bottom (a summed margin is meaningless). |
7. How the Report Is Calculated
7.1 Source of the Data
The report is built from the business's General Ledger, first run through the system's cost-of-goods-sold calculation so the cost figures are complete and correct. From the ledger it selects the lines that:
- belong to an inventory item or an inventory kit,
- are not inventory-on-hand postings (the stock-balance lines),
- are not tax transactions (VAT),
- have a non-zero amount, and
- come from a sales document dated within the period (see section 7.6).
The selected lines are then grouped by item (or kit).
7.2 Sales
Sales (per item) = sum of the item's sales-line GL amounts × −1
Sales lines are the revenue postings from the sales documents. Because revenue is credited (stored as a negative amount), the sign is reversed for display, giving a positive sales figure.
7.3 Cost of Sales
Cost of sales (per item) = sum of the item's cost-of-sales GL amounts × −1
Cost-of-sales lines are the COGS postings that carry a cost-of-goods-sold quantity — the amount of the item's inventory cost recognised as expense when the goods were sold (drawn from its cost layers). The sign is reversed for display, giving a positive cost figure.
7.4 Profit
Profit = Sales + Cost of sales
Since Cost of sales is presented as a positive amount in its own column but is a cost, the arithmetic is Sales − Cost of sales. This is the item's gross profit.
7.5 Margin
Margin = Profit ÷ (Sales ÷ 100)
= Profit ÷ Sales × 100
(rounded to 2 decimal places, half-away-from-zero;
blank when Sales is zero or Profit is zero)
Margin is the gross margin percentage. In the summary it is rounded to 2 decimals (e.g. 44.12 means 44.12%).
7.6 Which Documents Are Counted
A line is included in the period when its source document falls inside the From–To range:
- Sales Invoice — by its issue date,
- Credit Note — by its issue date (returns reduce sales and COGS in the period they are issued),
- Receipt — by its receipt date.
This means the report is aligned to when the sale was recorded, which is the right basis for a profit-margin view.
7.7 Total Row and Drill-Down
- A Total row at the bottom sums Sales, Cost of sales, and Profit across all items. The Margin column is not totalled (a summed margin is meaningless).
- Clicking an item's Profit opens the drill-down transactions page — one row per underlying document, with the same Sales / Cost of sales / Profit columns plus Date, Transaction, Description, and an integer Margin. Negative values are highlighted. Each document row opens its own Edit/View screens.
8. Related Settings and Configuration
| Setting / Record | Where | How It Affects the Report |
|---|---|---|
| Inventory Items tab | Customize Menu | Must be enabled for the report to appear. |
| Inventory Item — Item Code / Item Name | Inventory Items tab → New Item / edit | The row label is shown as "Code - Name" when a code is set, otherwise just the name. |
| Inventory valuation method | Inventory settings | Drives the cost-of-goods-sold calculation the report runs against, so Cost of sales reflects your valuation method. |
| Sales Invoices / Credit Notes / Receipts | Sales area | Provide the sales revenue lines. Returns via Credit Notes reduce sales and COGS. |
| Inventory valuation / costing method | Inventory settings (per item: FIFO / Moving Average / LIFO) | Determines which layers the COGS is drawn from, and therefore the Cost of sales figures. |
| Base currency | Business Details / Settings | All amounts are in the base currency. |
9. Sample Data and Report Output
9.1 Sample Setup
Business settings
| Setting | Value |
|---|---|
| Base currency | USD |
| Inventory Items tab | Enabled |
| Valuation / COGS | System cost-of-goods-sold calculation (FIFO / Moving Average / LIFO per item) |
Transactions
| ID | Type | Item | Detail | Qty | Value (USD) |
|---|---|---|---|---|---|
| T1 | Purchase | Widget-X | @ $10 | +100 | 1,000 |
| T2 | Purchase | Gadget-Y | @ $20 | +100 | 2,000 |
| T3 | Purchase | Component-Z | @ $30 | +100 | 3,000 |
| T4 | Purchase | Widget-X | @ $12 | +100 | 1,200 |
| T5 | Purchase | Gadget-Y | @ $22 | +100 | 2,200 |
| T6 | Purchase | Component-Z | @ $32 | +100 | 3,200 |
| T7 | Sale | Widget-X | 150 units | −150 | — |
| T8 | Sale | Gadget-Y | 50 units | −50 | — |
| T9 | Sale | Component-Z | 120 units | −120 | — |
| T10 | Purchase | Widget-X | @ $14 | +50 | 700 |
| T11 | Sale | Widget-X | 30 units | −30 | — |
| T12 | Sale | Gadget-Y | 60 units | −60 | — |
| T13 | Purchase | Component-Z | @ $34 | +50 | 1,700 |
| T14 | Write-off | Widget-X | 5 units | −5 | — |
| T15 | Transfer | Gadget-Y | 10 units → Location B | net 0 | — |
| T16 | Sale | Component-Z | 30 units | −30 | — |
| T17 | Return (Credit Note) | Widget-X | 10 units | +10 | +120 |
| T18 | Period end | Component-Z | Periodic COGS (50×34 + 100×32) | — | −4,900 |
Inventory items
| Item | Method / System | Units sold | Cost of sales |
|---|---|---|---|
| Widget-X | FIFO / Perpetual | 170 | 1,900 |
| Gadget-Y | Moving Average / Perpetual | 110 | 2,310 |
| Component-Z | LIFO / Periodic | 150 | 4,900 |
Sales prices (assumed to complete the walkthrough)
Assuming selling prices of 20 per Widget-X, 30 per Gadget-Y, and 45 per Component-Z:
| Item | Units sold | Selling price | Sales amount |
|---|---|---|---|
| Widget-X | 170 | 20 | 3,400 |
| Gadget-Y | 110 | 30 | 3,300 |
| Component-Z | 150 | 45 | 6,750 |
9.2 Creating the Report
From Reports → Inventory Items → Inventory Profit Margin, click New Report and enter:
| Field | Value Entered |
|---|---|
| From Date | The first day of the walkthrough period |
| To Date | The last day of the walkthrough period |
| Description | Inventory Walkthrough Profit Margin |
9.3 Report Output
For the period from {From Date} to {To Date}
| Item | Sales | Cost of sales | Profit | Margin |
|---|---|---|---|---|
| Component-Z | 6,750.00 | 4,900.00 | 1,850.00 | 27.41% |
| Gadget-Y | 3,300.00 | 2,310.00 | 990.00 | 30.00% |
| Widget-X | 3,400.00 | 1,900.00 | 1,500.00 | 44.12% |
| Total | 13,450.00 | 9,110.00 | 4,340.00 |
9.4 Drill-Down Transactions
Clicking Widget-X's Profit (1,500.00) opens the drill-down page for that item — one row per underlying document:
Widget-X — Profit
| Date | Transaction | Description | Sales | Cost of sales | Profit | Margin |
|---|---|---|---|---|---|---|
| {T7 date} | Sale T7 | Sale of Widget-X | 3,000.00 | 1,600.00 | 1,400.00 | 46 |
| {T11 date} | Sale T11 | Sale of Widget-X | 600.00 | 360.00 | 240.00 | 40 |
| {T17 date} | Credit Note T17 | Return of Widget-X | (200.00) | (120.00) | (80.00) | - |
| Total | 3,400.00 | 1,900.00 | 1,500.00 |
9.5 Calculation Verification
Widget-X (FIFO/Perpetual):
Units sold = 150 (T7) + 30 (T11) − 10 (T17 return) = 170 ✓
Sales = 170 × 20 = 3,400
Cost of sales = 1,600 (T7) + 360 (T11) + 60 (T14) − 120 (T17) = 1,900 ✓
Profit = 3,400 − 1,900 = 1,500 ✓
Margin = 1,500 ÷ (3,400 ÷ 100) = 44.12% ✓
Gadget-Y (Moving Average/Perpetual):
Units sold = 50 (T8) + 60 (T12) = 110 ✓
Sales = 110 × 30 = 3,300
Cost of sales = 1,050 (T8) + 1,260 (T12) = 2,310 ✓
Profit = 3,300 − 2,310 = 990 ✓
Margin = 990 ÷ (3,300 ÷ 100) = 30.00% ✓
Component-Z (LIFO/Periodic):
Units sold = 120 (T9) + 30 (T16) = 150 ✓
Sales = 150 × 45 = 6,750
Cost of sales = 50×34 + 100×32 (period-end LIFO, T18) = 4,900 ✓
Profit = 6,750 − 4,900 = 1,850 ✓
Margin = 1,850 ÷ (6,750 ÷ 100) = 27.41% ✓
Total row:
Sales = 6,750 + 3,300 + 3,400 = 13,450 ✓
Cost of sales = 4,900 + 2,310 + 1,900 = 9,110 ✓
Profit = 1,850 + 990 + 1,500 = 4,340 ✓
10. General Ledger Verification
Every figure in the report is a sum of General Ledger postings. For the Widget-X sales, the system posts revenue and COGS as follows (amounts per the walkthrough):
Dr Bank / Cash (or Accounts Receivable) 3,400
Cr Sales Revenue (Widget-X) 3,400 ← sales line
Dr Cost of Sales (Widget-X) 1,900
Cr InventoryOnHand (Widget-X) 1,900 ← COGS lines
────────── ──────────
Total Debits: 5,300 Total Credits: 5,300 ✓ Balanced
How each report column maps to the GL:
| Report column | GL source |
|---|---|
| Sales | The item's sales-revenue postings (no cost-of-sales quantity), sign-reversed. Widget-X = 3,400. |
| Cost of sales | The item's COGS postings (lines carrying a cost-of-sales quantity), sign-reversed. Widget-X = 1,900 (from the walkthrough's T7, T11, T14 and the T17 return). |
| Profit | Sales − Cost of sales = 3,400 − 1,900 = 1,500. |
| Margin | Profit ÷ Sales × 100 = 44.12%. |
Cross-check with the walkthrough's Trial Balance / P&L for the period:
Sales Revenue 13,450 ✓ (matches report Sales total)
Cost of Sales (Widget 1,900 + Gadget 2,310 + Component 4,900) = 9,110 ✓
Gross Profit 4,340 ✓ (matches report Profit total)
11. Reporting and Accounting Impact
- Profit & Loss: The report's Sales and Cost of sales totals reconcile to the P&L revenue and COGS lines. It is effectively the gross-profit section of the P&L, disaggregated item by item.
- Balance Sheet: The COGS postings reduce InventoryOnHand; the report shows the cost of the stock sold, which ties to the movement in the inventory balance for the period.
- Pricing decisions: Margin per item is the input for pricing, discounting, and product-line decisions — which items to push, which to reprize, and which are dragging overall margin.
- Cost control: The margin reflects the full unit cost carried in the item's cost layers (purchase price and attributable costs). Rising purchase costs or freight directly compress margin, which this report makes visible.
- Loss detection: Negative-profit items are surfaced immediately, enabling write-down and discontinuation decisions.
12. Accounting Regulation Validation
| Standard | Requirement | How the Report Complies |
|---|---|---|
| IAS 2 — Inventories §34 | Cost of sales is recognised as an expense in the period in which the related revenue is recognised. | The report matches sales revenue lines with the COGS lines produced by the system's COGS calculation, so revenue and cost are recognised together in the same period. |
| IAS 2 — §10, §13 | Cost of inventory includes purchase price, import duties, freight, and other directly attributable costs. | For each item, COGS is derived from its cost layers (purchase price and attributable costs, per the FIFO / Moving Average / LIFO method). |
| IFRS 15 / IAS 18 — Revenue Recognition | Revenue is recognised when control of goods transfers to the customer, at the transaction price. | Sales figures are taken from the actual sales-invoice and receipt postings dated within the period — the recorded, recognised revenue. |
| IAS 1 — Presentation of Financial Statements | An entity presents the line items that are relevant to understanding its financial performance, including gross profit. | The report disaggregates gross profit (Sales − Cost of sales) item by item, giving decision-useful, auditable gross-margin information. |
| IFRS for SMEs — Section 13: Inventories | Cost of sales is recognised as an expense when related revenue is recognised. | The same matching principle applies — the report pairs sales with the COGS recognised for those sales. |
| Double-entry principle | Debits equal credits for every posting. | Every sales posting is balanced (verified in section 10), and the report re-aggregates those balanced postings, so its totals tie to the ledger. |
| Consistency / comparability (IAS 8) | Financial information should be prepared on a consistent basis to be comparable. | The report always uses the same date rule (source-document date), the same COGS processing, and the same Sales − COGS = Profit formula, so periods are directly comparable. |
13. Common Issues and Best Practices
13.1 The Report Does Not Appear
Cause: The Inventory Items tab is not enabled, or the user lacks report permission.
Solution: Enable Inventory Items in the Customize Menu, or ask the administrator to grant report access.
13.2 An Item With Sales Is Missing From the Report
Cause: The item's sales document date is outside the From–To range, or the sale was recorded through a document type the report does not read.
Solution: Widen the date range. Remember the report uses the source document's date (sales invoice issue date, credit note issue date, or receipt date).
13.3 The Report Body Is Empty
Cause: No inventory items were sold in the period, or no sales documents exist.
Solution: Confirm sales invoices/receipts were issued for inventory items within the period.
13.4 Profit / Margin Looks Wrong
Cause: The COGS figure depends on the inventory valuation method and on whether the system's COGS calculation has run. If purchases were never recorded as inventory layers (or the layers carry zero cost), no meaningful COGS exists.
Solution: Confirm purchases are recorded as inventory (creating cost layers with their unit costs) and that the COGS calculation reflects your valuation method.
13.5 Why Is the Margin Blank in the Total Row?
Explanation: A summed percentage is meaningless — the Total row therefore sums only Sales, Cost of sales, and Profit. Read each item's margin from its own row.
13.6 Why Is the Drill-Down Margin an Integer?
Explanation: The summary page shows margin rounded to 2 decimals (e.g. 44.12%); the drill-down page shows it as a whole number (e.g. 44). The underlying ratio is the same.
Best Practices
- Run one report per accounting period (e.g. monthly or quarterly) with a clear Description — the saved list makes margin trend analysis easy.
- Reconcile the Sales and Cost of sales totals to the P&L for the same period.
- Use the drill-down to audit individual documents behind any item's profit before making decisions.
- Watch for negative-profit items — they are candidates for repricing, write-down review, or discontinuation.
- Remember the margin basis — it is gross margin on the cost carried in the item's inventory layers, before operating expenses.
End of Inventory Profit Margin Guide