Price Lists, Tax and Inventory Reports
Price lists with volume tiers or a percentage off, tax rates matched by where an order ships, and reports on sales, margin, slow stock, ABC and turnover.
Price Lists, Tax and Inventory Reports
Price lists decide what a particular customer pays; tax rates decide what is added (or already included) on an order; the reports say what sold, what earned, and what is sitting on the shelf. Every order line says which price it took, so nobody has to wonder later.
What you'll need
- Manage Inventory Settings, Locations & Stores (
inventory:config:manage) to open Price lists & tax and to change the tax settings. The seeded Manager role has it.
- View Sales & Purchase Orders (
inventory:orders:read) to open Inventory reports. The seeded Member role has it.
- Products with prices — see Products, Stock and the Reorder Plan.
Price lists
Inventory → Setup → Price lists & tax (/inventory/pricing), Price lists tab. With no lists, everyone pays the catalog price (the variant's Price).
How a line's price is chosen
For each line of a new order, in this order:
- A price typed on the line is used as it is. So is a price carried from an estimate or from a deal's product lines.
- Otherwise, the customer's price list. Only active lists in the order's currency count. A list assigned to the contact directly wins over one assigned to their company, which wins over one assigned through a contact tag; when several lists sit at the same step, the higher Priority wins.
- Within that list: the fixed price for the SKU with the highest From qty the line's quantity reaches (a volume tier), or, on a percentage list, the catalog price moved by the list's percent. A SKU a fixed-price list does not name sells at the catalog price.
- With no list, the catalog price.
This applies wherever an order line is priced without a typed price: the New order form, a line added with Edit lines, a deal's Products card, and an agent taking an order. An agent asked for a known customer's price gets the same answer, tiers included, from its inventory_get_price tool. Orders from a connected store keep the store's prices.
Create a price list
- Click New price list.
- Enter a Name (
Wholesale), the Currency (a list applies to orders in its currency) and an optional Description.
- Choose Prices:
- Fixed prices per SKU — click Price for each row and enter the SKU, the Price and From qty. Several rows for one SKU make volume tiers: from 1 at 9.00, from 10 at 7.50, from 50 at 6.00.
- % on the catalog price — enter the Percent:
-15 is 15% off, 10 is a 10% markup.
- Set a Priority — higher wins when several lists apply at the same step.
- Assign it: add Contacts, Companies (every contact at the company gets the list) and Contact tags (comma-separated; any contact carrying one of them gets the list).
- Leave Active ticked and click Save.
The list's row shows its prices, who it is assigned to, its priority and whether it is active. Deleting a list leaves orders already priced from it as they are.
Where you see which price applied
- The New order form: when you leave a SKU box, the line says the price and its source — for example 7.50 each — volume tier (Wholesale). Leave the price blank to use it.
- The order: under each line's price, catalog price, price list, volume tier or price list %.
- A deal's Products card: a blank Price (auto) is filled with the price the deal's contact would be quoted.
Tax
Tax on orders typed in the app, created by agents, or made from deals and estimates follows Inventory → Setup → Inventory Settings → Tax. Orders from a connected store keep the store's tax.
Turn on automatic tax
- In Inventory Settings → Tax, set Tax to From your tax rates, by where the order ships. The other choice, Typed on each order, uses the Tax figure entered on the order.
- Optionally tick Prices already include tax (tax is taken out of the price, and the total does not grow) and Tax shipping too, where the matching rate is marked as applying to shipping.
- Click Save settings.
Until Tax is set to use your rates, the Tax rates tab says the rates are not applied yet.
Add a tax rate
- On Price lists & tax, open the Tax rates tab and click New tax rate.
- Enter a Name (
HST Ontario) and the Rate %. For a combined tax printed as its parts, add Parts (for example GST 5% + PST 7%); the rate becomes their sum.
- Enter the Country (two letters, such as
CA) and, optionally, a Region (such as ON). Blank region covers the whole country.
- Optionally enter a Tax code — the rate then applies only to products carrying the same Tax code on their Details.
- Tick Shipping is taxed at this rate too where it applies.
- Tick The default — used when no other rate matches the destination on one rate. Making a rate the default clears it from any other.
- Click Save.
A rate with no country that is not the default never applies; its row says nowhere — set a country or make it the default.
How a rate is matched
For each taxable line, among the Active rates:
- A rate for the order's country and region.
- Else a rate for the country with no region.
- Else the default rate — for a destination no other rate names, and for an order with no shipping address.
A rate with a Tax code counts only for products carrying that code, and wins over an equally specific rate without one. A product with Taxable off pays no tax. Shipping is taxed when Tax shipping too is on and the rate matched for the destination is marked for shipping. An order-level discount is spread over the lines before tax, so tax is charged on what the customer pays.
The destination is the order's shipping address. Orders created on the New order form, from a deal or an estimate, or by an agent carry no shipping address today, so they take the default rate — set one.
When no rate matches
The order is left untaxed and says so in an amber notice: No tax rate covers … so the order is untaxed. Add a rate for it, or a default rate, on Price lists & tax. Add the rate, then Dismiss the notice. The order's Tax row reads (from your tax rates) when rates were used, and — included in prices when prices include tax.
Inventory reports
Inventory → Orders → Inventory reports (/inventory/reports). Four reports, each opening with one sentence that answers its question, over one table. CSV downloads the table (every report but Turnover). Figures come from the ledger and the orders; revenue stays in each order's own currency and is never converted.
| Report |
The question |
Controls |
Columns |
| Sales & margin |
What sold, and what it earned after cost of goods |
A date range (the last 30 days by default) and Every channel or one channel |
Units, Shipped, Returned, Orders, Revenue, Cost of goods, Margin, On hand, Sell-through |
| Not moving |
Stock that has not sold in a while, and the cash it holds |
No sale in 30 / 60 / 90 / 180 days or in a year |
On hand, Value at cost, Last sold |
| ABC |
Which items matter most |
— |
Class, On hand, Value at cost |
| Turnover |
How many times stock turns, and how long today's shelf lasts |
A date range |
Cost of goods sold, Stock value, start → now, Days on hand |
- Sales & margin counts every order placed in the range except cancelled and draft ones. Margin shows only where a product sold in the inventory currency; it turns amber under 15%. Sell-through is units sold ÷ (units sold + on hand).
- Not moving counts a sale or a use in a build as movement; never means the product has never sold.
- ABC ranks products by a year's consumption value (units used × unit cost): the items making the first 80% are A, the next 15% B, the rest — and anything that never sold — C. The same classes drive cycle counts — see Stock counts.
- Turnover is cost of goods sold ÷ the average of the opening and closing stock value. The opening value is today's value less what moved since the period began, so it is an estimate where stock arrived without a cost.
Margins, values and turnover all depend on costed stock — see Costing.
Troubleshooting
- A customer gets the catalog price despite a list. The list is inactive, is in another currency than the order, or does not name that SKU (a fixed-price list). A list assigned to the contact directly also beats one assigned to their company or tag, whatever the priorities.
- A volume tier did not apply. Tiers compare each line's own quantity with From qty; two lines of five do not reach a tier at ten.
- An order is untaxed. Tax is still Typed on each order, the product's Taxable is off, or no rate matches and there is no default.
- Margin shows —. The product sold in another currency than the inventory currency, or its stock has no cost yet.
Next steps